Java Examples for com.day.cq.dam.api.Asset
The following java examples will help you to understand the usage of com.day.cq.dam.api.Asset. These source code samples are taken from different open source projects.
Example 1
| Project: ease-master File: AssetIndexer.java View source code |
@Override
public void indexData(Map<String, Object> data, Resource resource, String containerPath) {
Asset asset = resource.adaptTo(Asset.class);
if (asset != null) {
data.put(IndexFields.PATH, asset.getPath());
Object tagsArr = asset.getMetadata(NameConstants.PN_TAGS);
if (tagsArr != null && tagsArr instanceof Object[]) {
Object[] tags = (Object[]) tagsArr;
for (Object tag : tags) {
putMultiValue(data, IndexFields.TAGS, tag.toString());
}
}
String title = StringUtils.trimToNull((String) asset.getMetadataValue("dc:title"));
if (title == null || title.trim().length() == 0) {
title = asset.getName();
}
data.put(IndexFields.TITLE, title);
}
}Example 2
| Project: acs-aem-commons-master File: NamedTransformImageServlet.java View source code |
/**
* Intelligently determines how to find the Image based on the associated SlingRequest.
*
* @param request the SlingRequest Obj
* @return the Image object configured w the info of where the image to render is stored in CRX
*/
protected final Image resolveImage(final SlingHttpServletRequest request) {
final Resource resource = request.getResource();
final ResourceResolver resourceResolver = request.getResourceResolver();
final PageManager pageManager = resourceResolver.adaptTo(PageManager.class);
final Page page = pageManager.getContainingPage(resource);
if (DamUtil.isAsset(resource)) {
// For assets, pick the configured rendition if it exists
// If rendition does not exist, use original
final Asset asset = DamUtil.resolveToAsset(resource);
Rendition rendition = asset.getRendition(renditionPatternPicker);
if (rendition == null) {
log.warn("Could not find rendition [ {} ] for [ {} ]", renditionPatternPicker.toString(), resource.getPath());
rendition = asset.getOriginal();
}
final Resource renditionResource = request.getResourceResolver().getResource(rendition.getPath());
final Image image = new Image(resource);
image.set(Image.PN_REFERENCE, renditionResource.getPath());
return image;
} else if (DamUtil.isRendition(resource) || resourceResolver.isResourceType(resource, JcrConstants.NT_FILE) || resourceResolver.isResourceType(resource, JcrConstants.NT_RESOURCE)) {
// For renditions; use the requested rendition
final Image image = new Image(resource);
image.set(Image.PN_REFERENCE, resource.getPath());
return image;
} else if (page != null) {
if (resourceResolver.isResourceType(resource, NameConstants.NT_PAGE) || StringUtils.equals(resource.getPath(), page.getContentResource().getPath())) {
// Is a Page or Page's Content Resource; use the Page's image resource
return new Image(page.getContentResource(), NAME_IMAGE);
} else {
return new Image(resource);
}
} else {
if (resourceResolver.isResourceType(resource, RT_LOCAL_SOCIAL_IMAGE) && resource.getValueMap().get("mimetype", StringUtils.EMPTY).startsWith("image/")) {
// Is a UGC image
return new SocialImageImpl(resource, NAME_IMAGE);
} else if (resourceResolver.isResourceType(resource, RT_REMOTE_SOCIAL_IMAGE)) {
// Is a UGC image
return new SocialRemoteImageImpl(resource, NAME_IMAGE);
}
}
return new Image(resource);
}Example 3
| Project: aem-samples-master File: ReferencedAssetsServlet.java View source code |
@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException {
response.setContentType("application/json");
try {
JSONObject jsonOut = new JSONObject();
Node jcrNode = request.getResource().adaptTo(Node.class);
if (jcrNode == null) {
// every adaptTo() can return null, so let's handle that case here
// although it's very unlikely
LOG.error("cannot adapt resource {} to a node", request.getResource().getPath());
response.getOutputStream().print(new JSONObject().toString());
return;
}
// let's use the specialized assetReferenceSearch, which does all the work for us
AssetReferenceSearch search = new AssetReferenceSearch(jcrNode, DAM_ROOT, request.getResourceResolver());
Map<String, Asset> result = search.search();
for (String key : result.keySet()) {
Asset asset = result.get(key);
JSONObject assetDetails = new JSONObject();
assetDetails.put("path", asset.getPath());
assetDetails.put("mimetype", asset.getMimeType());
jsonOut.put(asset.getName(), assetDetails);
}
response.getOutputStream().print(jsonOut.toString(2));
} catch (JSONException e) {
LOG.error("Cannot serialize JSON", e);
response.getOutputStream().print(new JSONObject().toString());
}
}Example 4
| Project: com.activecq.samples-master File: ContentFinderHitBuilder.java View source code |
/**
* @param hit
* @param map
* @return
* @throws RepositoryException
*/
private static Map<String, Object> addAssetData(final Hit hit, Map<String, Object> map) throws RepositoryException {
final Resource resource = hit.getResource();
final Asset asset = DamUtil.resolveToAsset(resource);
String title = resource.getName();
if (StringUtils.isNotBlank(asset.getMetadataValue(DamConstants.DC_TITLE))) {
title = asset.getMetadataValue(DamConstants.DC_TITLE);
}
map.put("title", title);
map.put("lastModified", getLastModified(asset));
map.put("mimeType", asset.getMimeType());
map.put("size", getSize(asset));
map.put("ck", getCK(asset));
map.put("type", "Asset");
return map;
}Example 5
| Project: jackalope-master File: NodeResourceImpl.java View source code |
@Override
@SuppressWarnings({ "unchecked", "deprecation" })
public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
if (type.equals(Node.class))
return (AdapterType) node;
if (type.equals(ValueMap.class) || type.equals(Map.class))
return (AdapterType) new JcrPropertyMap(node);
if (type.equals(PersistableValueMap.class))
return (AdapterType) new JcrModifiablePropertyMap(node);
if (type.equals(ModifiableValueMap.class))
return (AdapterType) new JcrModifiableValueMap(node, null);
if (type.equals(Page.class)) {
try {
ValueMap properties = this.adaptTo(ValueMap.class);
if (properties == null)
return null;
String primaryType = properties.get(JCR_PRIMARYTYPE, String.class);
if (primaryType == null || !primaryType.equals(JcrConstants.CQ_PAGE))
return null;
if (!node.hasNode(JCR_CONTENT))
return null;
return (AdapterType) new PageImpl(new NodeResourceImpl(resourceResolver, node));
} catch (RepositoryException e) {
return null;
}
}
if (type.equals(Asset.class)) {
try {
ValueMap properties = ResourceUtil.getValueMap(this);
return !"dam:Asset".equals(properties.get(JCR_PRIMARYTYPE, String.class)) ? null : !node.hasNode(JCR_CONTENT) ? null : (AdapterType) new AssetImpl(this);
} catch (RepositoryException e) {
return null;
}
}
if (type.equals(InputStream.class)) {
try {
Node content = node.isNodeType(NT_FILE) ? node.getNode(JCR_CONTENT) : node;
Property data = content.hasProperty(JCR_DATA) ? content.getProperty(JCR_DATA) : null;
return data != null ? (AdapterType) data.getBinary().getStream() : null;
} catch (RepositoryException e) {
return null;
}
}
return super.adaptTo(type);
}Example 6
| Project: acs-aem-tools-master File: CsvAssetImporterServlet.java View source code |
@Override
protected final void doPost(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws IOException {
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
final JSONObject jsonResponse = new JSONObject();
final Parameters params = new Parameters(request);
if (params.getFile() != null) {
final long start = System.currentTimeMillis();
final Iterator<String[]> rows = this.getRowsFromCsv(params);
try {
// First row is property names
// Get the required properties for this tool (source and dest)
final String[] requiredProperties = new String[] { //params.getRelSrcPathProperty(),
params.getAbsTargetPathProperty() };
// Get the columns from the first row of the CSV
final Map<String, Column> columns = Column.getColumns(rows.next(), params.getMultiDelimiter(), params.getIgnoreProperties(), requiredProperties);
// Process Asset row entries
final List<String> result = new ArrayList<String>();
final List<String> batch = new ArrayList<String>();
final List<String> failures = new ArrayList<String>();
log.info(params.toString());
request.getResourceResolver().adaptTo(Session.class).getWorkspace().getObservationManager().setUserData("acs-aem-tools.csv-asset-importer");
while (rows.hasNext()) {
final String[] row = rows.next();
log.debug("Processing row {}", Arrays.asList(row));
try {
if (!this.isSkippedRow(params, columns, row)) {
batch.add(this.importAsset(request.getResourceResolver(), params, columns, row));
}
} catch (FileNotFoundException e) {
failures.add(row[columns.get(params.getAbsTargetPathProperty()).getIndex()]);
log.error("Could not find file for row ", Arrays.asList(row), e);
} catch (CsvAssetImportException e) {
failures.add(row[columns.get(params.getAbsTargetPathProperty()).getIndex()]);
log.error("Could not import the row due to ", e.getMessage(), e);
}
log.debug("Processed row {}", Arrays.asList(row));
if (batch.size() % params.getBatchSize() == 0) {
this.save(request.getResourceResolver(), batch.size());
result.addAll(batch);
batch.clear();
// Throttle saves
if (params.getThrottle() > 0) {
log.info("Throttling CSV Asset Importer batch processing for {} ms", params.getThrottle());
Thread.sleep(params.getThrottle());
}
}
}
// Final save to catch any non-modulo stragglers; will only invoke persist if there are changes
this.save(request.getResourceResolver(), batch.size());
result.addAll(batch);
if (log.isInfoEnabled()) {
log.info("Imported as TOTAL of [ {} ] assets in {} ms", result.size(), System.currentTimeMillis() - start);
}
try {
jsonResponse.put("assets", result);
jsonResponse.put("failures", failures);
} catch (JSONException e) {
log.error("Could not serialized Excel Importer results into JSON", e);
this.addMessage(jsonResponse, "Could not serialized Excel Importer results into JSON");
response.setStatus(SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR);
}
} catch (RepositoryException e) {
log.error("Could not save Assets to JCR", e);
this.addMessage(jsonResponse, "Could not save assets. " + e.getMessage());
response.setStatus(SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR);
} catch (Exception e) {
log.error("Could not process CSV import", e);
this.addMessage(jsonResponse, "Could not process CSV import. " + e.getMessage());
response.setStatus(SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR);
}
} else {
log.error("Could not find CSV file in request.");
this.addMessage(jsonResponse, "CSV file is missing");
response.setStatus(SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR);
}
response.getWriter().print(jsonResponse.toString());
}Example 7
| Project: Slice-CQ56-master File: DamModule.java View source code |
@Provides public Asset getAsset(@Nullable Resource resource) { if (null != resource) { return resource.adaptTo(Asset.class); } return null; }
Example 8
| Project: Slice-CQ55-master File: DamModule.java View source code |
@Provides public Asset getAsset(@Nullable Resource resource) { if (null != resource) { return resource.adaptTo(Asset.class); } return null; }