Тест AEM JUnit с активом DAM

Я пытаюсь протестировать некоторые активы DAM с помощью теста JUnit в AEM.

Сначала я скопировал существующий актив как JSON в файл ресурсов. Затем я использую ContentLoader для записи файла JSON в смоделированный репозиторий.

final ContentLoader contentLoader = new ContentLoader(this.getResourceResolver());
contentLoader.json("content/assets/testAsset.json", "/content/assets/testAsset");

Затем я использую ResourceResolver для разрешения ресурса в destinationPath.

Resource assetRecource = resourceResolver.resolve("/content/assets/testAsset");

Все идет нормально. Когда я пытаюсь адаптировать assetRecource к Asset.class, результат равен нулю.

Asset asset = assetRecource.adaptTo(Asset.class); // is null

На мой взгляд, это из-за отсутствия перформансов.

Есть у кого-нибудь идеи как это исправить? Может быть, с ContentLoader # binaryResource ()?


person Unkall    schedule 28.06.2017    source источник
comment
Я полагаю, что testAsset json имеет primaryType dam:Asset. Вы также можете попытаться проверить, что разрешенный ресурс имеет тот же тип ресурса.   -  person Abhishek    schedule 28.06.2017


Ответы (2)


Убедитесь, что resourceType должен быть dam: Asset.

Resource assetRecource = resourceResolver.resolve("/content/assets/testAsset");
DamUtil.isAsset(assetRecource);   // This would be true if the asset is dam:Asset
assetRecource.getResourceType();  // This would return the resourceType of the resource.

Возможная причина, по которой AdapTo имеет значение NULL, только в том случае, если ресурс не адаптируется к классу активов.

Ссылки:

  1. https://docs.adobe.com/content/docs/en/cq/5-6-1/javadoc/com/day/cq/dam/api/Asset.html
  2. http://sling.apache.org/apidocs/sling5/org/apache/sling/api/adapter/Adaptable.html#adaptTo(java.lang.Class)
person phemanthkumar28    schedule 28.06.2017
comment
К сожалению, это не вина. Тип ресурса - «плотина: актив». - person Unkall; 29.06.2017
comment
Но DamUtil выдает NoClassDefFoundError с причиной ImageReadException. - person Unkall; 29.06.2017
comment
@Unkall - метод isAsset для DamUtil, просто проверьте resourceType. Он не должен вызывать NoClassDefFoundError. Было бы неплохо, если бы вы могли предоставить какой-то код, который вы действительно используете, и журнал ошибок. Справочник по NoClassDefFoundError - person phemanthkumar28; 29.06.2017

Вам необходимо добавить приведенную ниже зависимость для тестирования сборок DAM:

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-imaging -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-imaging</artifactId>
            <version>1.0-R1534292</version>
        </dependency>
person Ekta Aggarwal    schedule 11.07.2017