How to get assets from DAM in a java class?

Avatar

Avatar

frankml_ve

Avatar

frankml_ve

frankml_ve

31-10-2019

Hello.

I'm trying to make a java class that use the script to get image from the DAM posted here Adobe Experience Manager Help | Creating an Adobe Experience Manager DAM Image component

but I'm having troubles with the Sling variable, because on th JSP file, the sling variable is declared in  the global.jsp file.

<%@include file="/libs/foundation/global.jsp"%>

SlingRepository slingRep = sling.getService(SlingRepository.class);

Session session = slingRep.loginAdministrative(null);

QueryBuilder qb ;

Map<String, String> map = new HashMap<String,String>();

map.put("type", "dam:Asset");

map.put("property", "jcr:content/metadata/dc:format");

map.put("property.value", "image/jpeg");

qb=resource.getResourceResolver().adaptTo(QueryBuilder.class);

Query query = qb.createQuery(PredicateGroup.create(map), session);

SearchResult sr= query.getResult();

String assetPath=null;

// iterating over the results

  for (Hit hit : sr.getHits()) {

      String path = hit.getPath();

      Resource rs = resourceResolver.getResource(path);

      Asset asset = rs.adaptTo(Asset.class);    

     assetPath = asset.getPath();

In the code above the sling variable is on the line 01.

When I paste this code on my java class, I get an error because Eclipse IDE can't reach the Sling API library.

How can I initialize this variable to make my code work?

View Entire Topic

Avatar

Avatar

frankml_ve

Avatar

frankml_ve

frankml_ve

12-11-2019

Thanks a to all!

My team and I solve the problem using a QueryBuilder API to get the metadata info from asset.