You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by kw...@apache.org on 2018/05/29 15:10:10 UTC
[sling-org-apache-sling-servlets-annotations-it] 03/06: update IT
for changed annotations, also add test for filters
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 <kw...@apache.org>
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
kwin@apache.org.