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

pauls pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-servlets-resolver.git


The following commit(s) were added to refs/heads/master by this push:
     new cae3d46  SLING-9406 - Add bundled script support to the servlets 
resolver
cae3d46 is described below

commit cae3d46521bc0ecc6537684a4a162fee587a2c36
Author: Karl Pauls <[email protected]>
AuthorDate: Wed May 20 00:19:10 2020 +0200

    SLING-9406 - Add bundled script support to the servlets resolver
    
    * add a property to servlet resources metadata to mark them as such
    * don't register default methods for resource type servlets that have a 
path as well
---
 .../resolver/internal/resource/ServletResource.java        |  1 +
 .../internal/resource/ServletResourceProviderFactory.java  | 14 +++++++++-----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/servlets/resolver/internal/resource/ServletResource.java
 
b/src/main/java/org/apache/sling/servlets/resolver/internal/resource/ServletResource.java
index 01521a5..ab63f8b 100644
--- 
a/src/main/java/org/apache/sling/servlets/resolver/internal/resource/ServletResource.java
+++ 
b/src/main/java/org/apache/sling/servlets/resolver/internal/resource/ServletResource.java
@@ -62,6 +62,7 @@ public class ServletResource extends AbstractResource {
         this.resourceType = 
ServletResourceProviderFactory.ensureServletNameExtension(path);
         this.resourceSuperType = StringUtils.isEmpty(resourceSuperType) ? 
"sling/bundle/resource" : resourceSuperType;
         this.metadata = new ResourceMetadata();
+        this.metadata.put("sling.servlet.resource", "true");
     }
 
     void setWrappedResource(Resource wrapped) {
diff --git 
a/src/main/java/org/apache/sling/servlets/resolver/internal/resource/ServletResourceProviderFactory.java
 
b/src/main/java/org/apache/sling/servlets/resolver/internal/resource/ServletResourceProviderFactory.java
index b2f17b4..11198bc 100644
--- 
a/src/main/java/org/apache/sling/servlets/resolver/internal/resource/ServletResourceProviderFactory.java
+++ 
b/src/main/java/org/apache/sling/servlets/resolver/internal/resource/ServletResourceProviderFactory.java
@@ -262,12 +262,16 @@ public class ServletResourceProviderFactory {
 
             // SLING-512 only, set default methods if no extensions are 
declared
             if (extensions == null || extensions.length == 0) {
-                if (log.isDebugEnabled()) {
-                    log.debug(
-                        "addByType({}): No methods declared, assuming 
GET/HEAD",
-                        getServiceReferenceInfo(ref));
+                String[] paths = 
PropertiesUtil.toStringArray(ref.getProperty(SLING_SERVLET_PATHS));
+                if (paths == null || paths.length == 0) {
+                    if (log.isDebugEnabled())
+                    {
+                        log.debug(
+                            "addByType({}): No methods declared, assuming 
GET/HEAD",
+                            getServiceReferenceInfo(ref));
+                    }
+                    methods = DEFAULT_SERVLET_METHODS;
                 }
-                methods = DEFAULT_SERVLET_METHODS;
             }
 
         } else if (methods.length == 1 && ALL_METHODS.equals(methods[0])) {

Reply via email to