This is an automated email from the ASF dual-hosted git repository. kwin pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-servlets-annotations-it.git
commit 126f87de862d00b108d9cbd97275d691d4edfdb6 Author: Konrad Windszus <[email protected]> AuthorDate: Fri May 25 10:31:01 2018 +0200 update IT for changed annotations, also add test for filters --- pom.xml | 11 ++++- .../testservletfilters/SimpleServletFilter.java | 47 ++++++++++++++++++++++ .../annotations/testservlets/PathBoundServlet.java | 18 +++++++-- .../testservlets/PathBoundServletWithPrefix.java | 6 ++- .../testservlets/ResourceTypeBoundServlet.java | 4 +- .../ResourceTypeBoundServletWithExtension.java | 4 +- .../ResourceTypeBoundServletWithMethods.java | 4 +- .../ResourceTypeBoundServletWithPrefix.java | 6 ++- .../ResourceTypeBoundServletWithSelectors.java | 4 +- .../annotations/ServletRegistrationIT.java | 17 ++++++-- src/test/provisioning/model.txt | 29 ------------- 11 files changed, 101 insertions(+), 49 deletions(-) diff --git a/pom.xml b/pom.xml index 00b95d8..5161587 100644 --- a/pom.xml +++ b/pom.xml @@ -74,6 +74,8 @@ <!-- the Sling instance is provisioned from the model in src/main/provisioning/model.txt --> <groupId>org.apache.sling</groupId> <artifactId>slingstart-maven-plugin</artifactId> + <!-- for https://issues.apache.org/jira/browse/SLING-7662 --> + <version>1.8.1-SNAPSHOT</version> <extensions>true</extensions> <executions> <execution> @@ -110,7 +112,7 @@ </server> </servers> <!-- this configuration only applies to 'prepare-package' and 'package' --> - <!-- <disableExtendingMavenClasspath>true</disableExtendingMavenClasspath> --> + <disableExtendingMavenClasspath>true</disableExtendingMavenClasspath> </configuration> </plugin> <plugin> @@ -167,6 +169,13 @@ </dependency> <dependency> <groupId>org.apache.sling</groupId> + <artifactId>org.apache.sling.testing.clients</artifactId> + <!-- for https://issues.apache.org/jira/browse/SLING-7680 --> + <version>1.2.1-SNAPSHOT</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.testing.rules</artifactId> <version>1.0.8</version> <scope>test</scope> diff --git a/src/main/java/org/apache/sling/servlets/annotations/testservletfilters/SimpleServletFilter.java b/src/main/java/org/apache/sling/servlets/annotations/testservletfilters/SimpleServletFilter.java new file mode 100644 index 0000000..e1a56f6 --- /dev/null +++ b/src/main/java/org/apache/sling/servlets/annotations/testservletfilters/SimpleServletFilter.java @@ -0,0 +1,47 @@ +package org.apache.sling.servlets.annotations.testservletfilters; + +import java.io.IOException; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; + +import org.apache.sling.api.SlingHttpServletRequest; +import org.apache.sling.api.SlingHttpServletResponse; +import org.apache.sling.servlets.annotations.SlingServletFilter; +import org.apache.sling.servlets.annotations.SlingServletFilterScope; +import org.osgi.service.component.annotations.Component; + +@Component +@SlingServletFilter(scope=SlingServletFilterScope.REQUEST) +public class SimpleServletFilter implements Filter { + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + chain.doFilter(request, response); + if ((request instanceof SlingHttpServletRequest) && (response instanceof SlingHttpServletResponse)) { + afterDoFilter((SlingHttpServletRequest) request, (SlingHttpServletResponse) response, chain); + } else { + throw new ServletException("Not a Sling HTTP request/response"); + } + } + + private void afterDoFilter(SlingHttpServletRequest request, SlingHttpServletResponse response, FilterChain chain) { + if (request.getRequestURI().endsWith("simplefilter")) { + // increase status by 1 + response.setStatus(response.getStatus()+1); + } + } + + @Override + public void destroy() { + } + +} diff --git a/src/main/java/org/apache/sling/servlets/annotations/testservlets/PathBoundServlet.java b/src/main/java/org/apache/sling/servlets/annotations/testservlets/PathBoundServlet.java index 09f9cca..34fd242 100644 --- a/src/main/java/org/apache/sling/servlets/annotations/testservlets/PathBoundServlet.java +++ b/src/main/java/org/apache/sling/servlets/annotations/testservlets/PathBoundServlet.java @@ -23,13 +23,13 @@ import javax.servlet.ServletException; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.SlingHttpServletResponse; -import org.apache.sling.api.servlets.SlingSafeMethodsServlet; -import org.apache.sling.servlets.annotations.SlingServletByPath; +import org.apache.sling.api.servlets.SlingAllMethodsServlet; +import org.apache.sling.servlets.annotations.SlingServletPaths; import org.osgi.service.component.annotations.Component; @Component(service=Servlet.class) -@SlingServletByPath(paths="/bin/PathBoundServlet") -public class PathBoundServlet extends SlingSafeMethodsServlet { +@SlingServletPaths("/bin/PathBoundServlet") +public class PathBoundServlet extends SlingAllMethodsServlet { /** * @@ -40,4 +40,14 @@ public class PathBoundServlet extends SlingSafeMethodsServlet { protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { response.setStatus(555); } + + @Override + protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { + response.setStatus(555); + } + + @Override + protected void doPut(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { + response.setStatus(555); + } } diff --git a/src/main/java/org/apache/sling/servlets/annotations/testservlets/PathBoundServletWithPrefix.java b/src/main/java/org/apache/sling/servlets/annotations/testservlets/PathBoundServletWithPrefix.java index 357db2d..0f32e1c 100644 --- a/src/main/java/org/apache/sling/servlets/annotations/testservlets/PathBoundServletWithPrefix.java +++ b/src/main/java/org/apache/sling/servlets/annotations/testservlets/PathBoundServletWithPrefix.java @@ -24,11 +24,13 @@ import javax.servlet.ServletException; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.SlingHttpServletResponse; import org.apache.sling.api.servlets.SlingSafeMethodsServlet; -import org.apache.sling.servlets.annotations.SlingServletByPath; +import org.apache.sling.servlets.annotations.SlingServletPaths; +import org.apache.sling.servlets.annotations.SlingServletPrefix; import org.osgi.service.component.annotations.Component; @Component(service=Servlet.class) -@SlingServletByPath(paths="PathBoundServletWithPrefix", prefix="/bin") +@SlingServletPrefix("/bin/") +@SlingServletPaths("PathBoundServletWithPrefix") public class PathBoundServletWithPrefix extends SlingSafeMethodsServlet { /** diff --git a/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServlet.java b/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServlet.java index a991ae4..412ff1f 100644 --- a/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServlet.java +++ b/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServlet.java @@ -24,11 +24,11 @@ import javax.servlet.ServletException; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.SlingHttpServletResponse; import org.apache.sling.api.servlets.SlingAllMethodsServlet; -import org.apache.sling.servlets.annotations.SlingServletByResourceType; +import org.apache.sling.servlets.annotations.SlingServletResourceTypes; import org.osgi.service.component.annotations.Component; @Component(service=Servlet.class) -@SlingServletByResourceType(resourceTypes="/apps/sling/testservlets/ResourceTypeBoundServlet") +@SlingServletResourceTypes(resourceTypes="/apps/sling/testservlets/ResourceTypeBoundServlet") public class ResourceTypeBoundServlet extends SlingAllMethodsServlet { /** diff --git a/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServletWithExtension.java b/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServletWithExtension.java index eefdf76..3e02bc5 100644 --- a/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServletWithExtension.java +++ b/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServletWithExtension.java @@ -24,11 +24,11 @@ import javax.servlet.ServletException; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.SlingHttpServletResponse; import org.apache.sling.api.servlets.SlingAllMethodsServlet; -import org.apache.sling.servlets.annotations.SlingServletByResourceType; +import org.apache.sling.servlets.annotations.SlingServletResourceTypes; import org.osgi.service.component.annotations.Component; @Component(service=Servlet.class) -@SlingServletByResourceType(resourceTypes="/apps/sling/testservlets/ResourceTypeBoundServletWithExtension", extensions= {"ext1", "ext2"}) +@SlingServletResourceTypes(resourceTypes="/apps/sling/testservlets/ResourceTypeBoundServletWithExtension", extensions= {"ext1", "ext2"}) public class ResourceTypeBoundServletWithExtension extends SlingAllMethodsServlet { /** diff --git a/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServletWithMethods.java b/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServletWithMethods.java index 874c4cd..6a37056 100644 --- a/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServletWithMethods.java +++ b/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServletWithMethods.java @@ -24,11 +24,11 @@ import javax.servlet.ServletException; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.SlingHttpServletResponse; import org.apache.sling.api.servlets.SlingAllMethodsServlet; -import org.apache.sling.servlets.annotations.SlingServletByResourceType; +import org.apache.sling.servlets.annotations.SlingServletResourceTypes; import org.osgi.service.component.annotations.Component; @Component(service=Servlet.class) -@SlingServletByResourceType(resourceTypes="/apps/sling/testservlets/ResourceTypeBoundServletWithMethods", methods= {"PUT", "POST"}) +@SlingServletResourceTypes(resourceTypes="/apps/sling/testservlets/ResourceTypeBoundServletWithMethods", methods= {"PUT", "POST"}) public class ResourceTypeBoundServletWithMethods extends SlingAllMethodsServlet { /** diff --git a/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServletWithPrefix.java b/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServletWithPrefix.java index 519c576..454b61b 100644 --- a/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServletWithPrefix.java +++ b/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServletWithPrefix.java @@ -24,11 +24,13 @@ import javax.servlet.ServletException; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.SlingHttpServletResponse; import org.apache.sling.api.servlets.SlingAllMethodsServlet; -import org.apache.sling.servlets.annotations.SlingServletByResourceType; +import org.apache.sling.servlets.annotations.SlingServletPrefix; +import org.apache.sling.servlets.annotations.SlingServletResourceTypes; import org.osgi.service.component.annotations.Component; @Component(service=Servlet.class) -@SlingServletByResourceType(resourceTypes="ResourceTypeBoundServletWithPrefix", prefix="/apps/sling/testservlets") +@SlingServletPrefix("/apps/sling/testservlets/") +@SlingServletResourceTypes(resourceTypes="ResourceTypeBoundServletWithPrefix") public class ResourceTypeBoundServletWithPrefix extends SlingAllMethodsServlet { /** diff --git a/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServletWithSelectors.java b/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServletWithSelectors.java index 9cc3bbd..7a3b02a 100644 --- a/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServletWithSelectors.java +++ b/src/main/java/org/apache/sling/servlets/annotations/testservlets/ResourceTypeBoundServletWithSelectors.java @@ -24,11 +24,11 @@ import javax.servlet.ServletException; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.SlingHttpServletResponse; import org.apache.sling.api.servlets.SlingAllMethodsServlet; -import org.apache.sling.servlets.annotations.SlingServletByResourceType; +import org.apache.sling.servlets.annotations.SlingServletResourceTypes; import org.osgi.service.component.annotations.Component; @Component(service=Servlet.class) -@SlingServletByResourceType(resourceTypes="/apps/sling/testservlets/ResourceTypeBoundServletWithSelectors", selectors= {"selector1.selector2", "selector3"}) +@SlingServletResourceTypes(resourceTypes="/apps/sling/testservlets/ResourceTypeBoundServletWithSelectors", selectors= {"selector1.selector2", "selector3"}) public class ResourceTypeBoundServletWithSelectors extends SlingAllMethodsServlet { /** diff --git a/src/test/java/org/apache/sling/servlets/annotations/ServletRegistrationIT.java b/src/test/java/org/apache/sling/servlets/annotations/ServletRegistrationIT.java index 7f1b32a..6db10ba 100644 --- a/src/test/java/org/apache/sling/servlets/annotations/ServletRegistrationIT.java +++ b/src/test/java/org/apache/sling/servlets/annotations/ServletRegistrationIT.java @@ -68,6 +68,10 @@ public class ServletRegistrationIT { CLIENT.waitExists("/index.html", SERVICE_START_TIMEOUT, 500); CLIENT.waitServiceRegistered("javax.servlet.Servlet", BUNDLE_SYMBOLICNAME, SERVICE_START_TIMEOUT, 500); + CLIENT.waitComponentRegistered("org.apache.sling.servlets.annotations.testservlets.PathBoundServlet", SERVICE_START_TIMEOUT, 500); + CLIENT.waitComponentRegistered("org.apache.sling.servlets.annotations.testservletfilters.SimpleServletFilter", SERVICE_START_TIMEOUT, 500); + // wait a bit longer to make sure really all servlets and filters are active + //Thread.sleep(500); } @AfterClass @@ -76,13 +80,21 @@ public class ServletRegistrationIT { } @Test - public void testPathBoundServlet() throws ClientException { + public void testPathBoundServlet() throws ClientException, UnsupportedEncodingException { CLIENT.doGet("/bin/PathBoundServlet", 555); CLIENT.doGet("/bin/PathBoundServlet.with.some.selector.and.extension", 555); + CLIENT.doGet("/bin/PathBoundServlet.with.some.selector.and.extension/suffix", 555); + // other methods should work as well + CLIENT.doPut("/bin/PathBoundServlet", new StringEntity("some text"), Collections.emptyList(), 555); + } + + @Test + public void testPathBoundServletWithFilter() throws ClientException { + CLIENT.doGet("/bin/PathBoundServlet.html/simplefilter", 556); + CLIENT.doGet("/bin/PathBoundServlet.with.some.selector.and.extension/simplefilter", 556); } @Test - @Ignore("Prefix is ignored!") public void testPathBoundServletWithPrefix() throws ClientException { CLIENT.doGet("/bin/PathBoundServletWithPrefix", 555); CLIENT.doGet("/bin/PathBoundServletWithPrefix.with.some.selector.and.extension", 555); @@ -98,7 +110,6 @@ public class ServletRegistrationIT { } @Test - @Ignore("Prefix is not working somehow") public void testResourceTypeBoundServletWithPrefix() throws ClientException, UnsupportedEncodingException { CLIENT.doGet("/content/servlettest/resourceTypeBoundServletWithPrefix", 555); CLIENT.doGet("/content/servlettest/resourceTypeBoundServletWithPrefix.html", 555); diff --git a/src/test/provisioning/model.txt b/src/test/provisioning/model.txt deleted file mode 100644 index d2ea981..0000000 --- a/src/test/provisioning/model.txt +++ /dev/null @@ -1,29 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -# This model is not actually used, it is only necessary due to https://issues.apache.org/jira/browse/SLING-7662 - -[feature name=models.validation-impl.it] -# Dependencies -[artifacts] - org.apache.sling/org.apache.sling.launchpad/9/slingstart - # this is necessary to execute the tests - org.apache.sling/org.apache.sling.junit.core/1.0.26 - -[settings] - org.apache.sling.commons.log.julenabled=true -- To stop receiving notification emails like this one, please contact [email protected].
