I've got a servlet that does bulk image upload, creates asset pages for the images, then calls Replicator.replicate to activate the new images and pages on the publish. The logs indicate that the activate is successful (both on author and publish) but the images are not actually being published correctly.
Here's the code where the image asset itself is created:
log.info("---->INFO Creating high-res asset for image: " + metadata.getCatalogNumber() + " in " + assetPath); Asset asset = assetManager.createAsset(assetPath + "/" + metadata.getCatalogNumber(), fis, mimeType, true); Resource metadataRes = asset.adaptTo( Resource.class ).getChild( "jcr:content/metadata" ); addMetadataToAsset( metadataRes, metadata ); replicator.replicate(session, ReplicationActionType.ACTIVATE, asset.getPath());
And this is the code that creates the asset page:
imagePage = pageManager.create( parentPage.getPath(), imageName, imageTemplate, imageTitle ); // At this point the page is created, but does not have the image associated with it; the next // method will add the media info to the jcr:content of the page String imagePath = LOW_RES_PATH + getAssetContainerName( metadata, null ) + "/" + imageTitle; addMediaInfoToImagePage( imagePage, imagePath ); // session.save is called in the addMediaInfoToImagePage method replicator.replicate( session, ReplicationActionType.ACTIVATE, imagePage.getPath() );
The asset pages are published correctly but the images are not - they do not show as activated when I look at the DAM assets on the publisher and the thumbnail images are not created. If I go back to the author and use the 'activate tree', then they are published as expected.
Does anyone have any suggestions as to what I'm doing wrong? I'm beginning to wonder if I should be doing the activation right after the creation - is the author creation completed when the activate is called.
Solved! Go to Solution.
Views
Replies
Total Likes
Hi Randy,
if you activate pages on the UI, the UI displays all referenced assets and ask you if you want to activate them (and does the activation). The page activation workflow doesn't have this implemented, and you need to add your own workflow step to achieve the same behaviour. You can use the AssetReferenceSearch[0] to search for all referenced assets, see [2] for an example. If you have know the assets, you can activate them also.
kind regards,
Jörg
[1] http://docs.adobe.com/docs/br/aem/6-0/develop/ref/javadoc/com/day/cq/dam/commons/util/AssetReference...
[2] http://wemcode.wemblog.com/get_asset_reference_in_page
Views
Replies
Total Likes
One area you can explore is using Workflows to manage assets. Then you can programmatically invoke the workflow. See this topic for more information:
http://docs.adobe.com/docs/en/aem/6-0/develop/extending/assets/media-handlers.html
Views
Replies
Total Likes
Hi Randy,
if you activate pages on the UI, the UI displays all referenced assets and ask you if you want to activate them (and does the activation). The page activation workflow doesn't have this implemented, and you need to add your own workflow step to achieve the same behaviour. You can use the AssetReferenceSearch[0] to search for all referenced assets, see [2] for an example. If you have know the assets, you can activate them also.
kind regards,
Jörg
[1] http://docs.adobe.com/docs/br/aem/6-0/develop/ref/javadoc/com/day/cq/dam/commons/util/AssetReference...
[2] http://wemcode.wemblog.com/get_asset_reference_in_page
Views
Replies
Total Likes
I appreciate the input. I suppose it makes sense, but do you activate the assets contained by the page before or after the page itself is activated? Or does the order of activation matter?
Views
Replies
Total Likes