You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by dk...@apache.org on 2021/03/12 03:01:00 UTC

[sling-org-apache-sling-app-cms] branch dklco/preview-img created (now 524db15)

This is an automated email from the ASF dual-hosted git repository.

dklco pushed a change to branch dklco/preview-img
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git.


      at 524db15  Working on having a specific preview servlet to have authenticated previews of images rather than using the mapped image URLs

This branch includes the following new commits:

     new 524db15  Working on having a specific preview servlet to have authenticated previews of images rather than using the mapped image URLs

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[sling-org-apache-sling-app-cms] 01/01: Working on having a specific preview servlet to have authenticated previews of images rather than using the mapped image URLs

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch dklco/preview-img
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit 524db15a6bac323c641a58054ed468ac49d7279c
Author: Dan Klco <dk...@apache.org>
AuthorDate: Thu Mar 11 21:58:55 2021 -0500

    Working on having a specific preview servlet to have authenticated previews of images rather than using the mapped image URLs
---
 .../listeners/FileMetadataExtractorListener.java   | 31 +++++++---------------
 .../components/cms/contentgrid/contentgrid.jsp     | 12 ++++-----
 .../sling-cms/components/cms/tilecard/tilecard.jsp |  2 +-
 3 files changed, 17 insertions(+), 28 deletions(-)

diff --git a/core/src/main/java/org/apache/sling/cms/core/internal/listeners/FileMetadataExtractorListener.java b/core/src/main/java/org/apache/sling/cms/core/internal/listeners/FileMetadataExtractorListener.java
index 7d78b3b..ee5e0d5 100644
--- a/core/src/main/java/org/apache/sling/cms/core/internal/listeners/FileMetadataExtractorListener.java
+++ b/core/src/main/java/org/apache/sling/cms/core/internal/listeners/FileMetadataExtractorListener.java
@@ -19,16 +19,16 @@ package org.apache.sling.cms.core.internal.listeners;
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.sling.api.SlingConstants;
 import org.apache.sling.api.resource.LoginException;
-import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceResolverFactory;
 import org.apache.sling.api.resource.observation.ExternalResourceChangeListener;
 import org.apache.sling.api.resource.observation.ResourceChange;
 import org.apache.sling.api.resource.observation.ResourceChangeListener;
 import org.apache.sling.cms.CMSConstants;
-import org.apache.sling.cms.File;
-import org.apache.sling.cms.FileMetadataExtractor;
+import org.apache.sling.cms.core.internal.jobs.FileMetadataExtractorConsumer;
+import org.apache.sling.event.jobs.JobManager;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
@@ -47,32 +47,21 @@ public class FileMetadataExtractorListener implements ResourceChangeListener, Ex
     private static final Logger log = LoggerFactory.getLogger(FileMetadataExtractorListener.class);
 
     @Reference
-    private FileMetadataExtractor extractor;
+    private JobManager jobManager;
 
     @Reference
     private ResourceResolverFactory factory;
 
-    private void handleChange(Resource changed) {
-        if (CMSConstants.NT_FILE.equals(changed.getResourceType())) {
-            log.debug("Extracting metadata from changed resource: {}", changed);
-            try {
-                extractor.updateMetadata(changed.adaptTo(File.class), true);
-            } catch (Exception e) {
-                log.warn("Failed to extract metadata from change: {}", changed, e);
-            }
-        } else {
-            log.trace("Not extracting metadata from changed resource: {}", changed);
-        }
-    }
-
     @Override
     public void onChange(List<ResourceChange> changes) {
         try (ResourceResolver serviceResolver = factory.getServiceResourceResolver(
                 Collections.singletonMap(ResourceResolverFactory.SUBSERVICE, "sling-cms-metadata"))) {
-            for (ResourceChange rc : changes) {
-                Resource changed = serviceResolver.getResource(rc.getPath());
-                handleChange(changed);
-            }
+            changes.stream().map(rc -> serviceResolver.getResource(rc.getPath()))
+                    .filter(r -> CMSConstants.NT_FILE.equals(r.getResourceType())).forEach(r -> {
+                        log.debug("Queueing resource {}", r);
+                        jobManager.addJob(FileMetadataExtractorConsumer.TOPIC,
+                                Collections.singletonMap(SlingConstants.PROPERTY_PATH, r.getPath()));
+                    });
         } catch (LoginException e) {
             log.error("Exception getting service user", e);
         }
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentgrid/contentgrid.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentgrid/contentgrid.jsp
index 64f2c3a..376426d 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentgrid/contentgrid.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentgrid/contentgrid.jsp
@@ -45,27 +45,27 @@
                             <figure class="image is-5by4">
                                 <c:choose>
                                     <c:when test="${child.resourceType == 'sling:File' || child.resourceType == 'nt:file'}">
-                                        <img src="${child.path}.transform/sling-cms-thumbnail.png" loading="lazy" alt="${child.name}">
+                                        <img src="/cms/file/preview.html${child.path}.transform/sling-cms-thumbnail.png" loading="lazy" alt="${child.name}">
                                     </c:when>
                                     <c:when test="${child.resourceType == 'sling:Site'}">
-                                        <img src="${branding.gridIconsBase}/site.png" loading="lazy" alt="${sling:encode(child.name, 'HTML_ATTR')}">
+                                        <img src="/cms/file/preview.html${branding.gridIconsBase}/site.png" loading="lazy" alt="${sling:encode(child.name, 'HTML_ATTR')}">
                                     </c:when>
                                     <c:when test="${child.resourceType == 'sling:OrderedFolder' || child.resourceType == 'sling:Folder' || child.resourceType == 'nt:folder'}">
-                                        <img src="${branding.gridIconsBase}/folder.png" loading="lazy" alt="${sling:encode(child.name, 'HTML_ATTR')}">
+                                        <img src="/cms/file/preview.html${branding.gridIconsBase}/folder.png" loading="lazy" alt="${sling:encode(child.name, 'HTML_ATTR')}">
                                     </c:when>
                                     <c:when test="${child.resourceType == 'sling:Page'}">
                                         <c:set var="templateThumbnail" value="${child.valueMap['jcr:content/sling:template']}/thumbnail"/>
                                         <c:choose>
                                             <c:when test="${sling:getResource(resourceResolver, templateThumbnail) != null}">
-                                                <img src="${templateThumbnail}.transform/sling-cms-thumbnail.png" loading="lazy" alt="${sling:encode(child.name, 'HTML_ATTR')}">
+                                                <img src="/cms/file/preview.html${templateThumbnail}.transform/sling-cms-thumbnail.png" loading="lazy" alt="${sling:encode(child.name, 'HTML_ATTR')}">
                                             </c:when>
                                             <c:otherwise>
-                                                <img src="${branding.gridIconsBase}/page.png" loading="lazy" alt="${child.name}">
+                                                <img src="/cms/file/preview.html${branding.gridIconsBase}/page.png" loading="lazy" alt="${child.name}">
                                             </c:otherwise>
                                         </c:choose>
                                     </c:when>
                                     <c:otherwise>
-                                        <img src="${branding.gridIconsBase}/file.png" loading="lazy" alt="${child.name}">
+                                        <img src="/cms/file/preview.html${branding.gridIconsBase}/file.png" loading="lazy" alt="${child.name}">
                                     </c:otherwise>
                                 </c:choose>
                             </figure>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/tilecard/tilecard.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/tilecard/tilecard.jsp
index 10d95d5..7972b59 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/tilecard/tilecard.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/tilecard/tilecard.jsp
@@ -22,7 +22,7 @@
         <div class="card is-linked" title="${sling:encode(properties.title,'HTML_ATTR')}" data-value="${resource.path}">
             <div class="card-image">
                 <figure class="image is-5by4">
-                    <img src="${branding.gridIconsBase}${sling:encode(properties.icon,'HTML_ATTR')}" loading="lazy" alt="${sling:encode(properties.title,'HTML_ATTR')}">
+                    <img src="/cms/file/preview.html${branding.gridIconsBase}${sling:encode(properties.icon,'HTML_ATTR')}" loading="lazy" alt="${sling:encode(properties.title,'HTML_ATTR')}">
                 </figure>
             </div>
             <footer class="card-footer">