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])) {