SLING-10911 Update to Parent 46 (#2)
Also migration to the standard scr annotations
diff --git a/bnd.bnd b/bnd.bnd
new file mode 100644
index 0000000..08fe365
--- /dev/null
+++ b/bnd.bnd
@@ -0,0 +1,20 @@
+Sling-Nodetypes:\
+ SLING-INF/nodetypes/test.cnd
+
+Sling-Initial-Content:\
+ SLING-INF/content;path:=/sling-test;overwrite=true;uninstall=true,\
+ SLING-INF/install;path:=/apps/sling-test/install;overwrite=true;uninstall=true,\
+ SLING-INF/root;path:=/;overwrite=false;uninstall=false
+
+Sling-Bundle-Resources:\
+ /sling-test/sling/from-bundle;path:=/SLING-INF/res/sling-test/sling/from-bundle,\
+ /system;path:=/SLING-INF/res/sling-test/sling/SLING-1733
+
+Sling-Test-Regexp:\
+ org.apache.sling.launchpad.testservices.serversidetests.*Test
+
+Sling-Model-Packages:\
+ org.apache.sling.launchpad.testservices.models
+
+-includeresource:\
+ @org.apache.felix.utils-*.jar!/org/apache/felix/utils/json/JSONWriter*
diff --git a/pom.xml b/pom.xml
index e3902c7..9cacb96 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,13 +22,12 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.sling</groupId>
- <artifactId>sling</artifactId>
- <version>26</version>
+ <artifactId>sling-bundle-parent</artifactId>
+ <version>46</version>
<relativePath />
</parent>
<artifactId>org.apache.sling.launchpad.test-services</artifactId>
- <packaging>bundle</packaging>
<version>12-SNAPSHOT</version>
<name>Apache Sling Launchpad Testing Services</name>
@@ -43,51 +42,12 @@
<tag>HEAD</tag>
</scm>
+ <properties>
+ <project.build.outputTimestamp>2021-07-16T18:32:08Z</project.build.outputTimestamp>
+ </properties>
<build>
<plugins>
<plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-scr-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <extensions>true</extensions>
- <configuration>
- <instructions>
- <Export-Package>
- org.apache.sling.launchpad.testservices.exported,
- org.apache.sling.launchpad.testservices.models,
- org.apache.sling.launchpad.testservices.events
- </Export-Package>
- <Private-Package>
- org.apache.sling.launchpad.testservices.*
- </Private-Package>
- <Sling-Nodetypes>
- SLING-INF/nodetypes/test.cnd
- </Sling-Nodetypes>
- <Sling-Initial-Content>
- SLING-INF/content;path:=/sling-test;overwrite=true;uninstall=true,
- SLING-INF/install;path:=/apps/sling-test/install;overwrite=true;uninstall=true,
- SLING-INF/root;path:=/;overwrite=false;uninstall=false,
- </Sling-Initial-Content>
- <Sling-Bundle-Resources>
- /sling-test/sling/from-bundle;path:=/SLING-INF/res/sling-test/sling/from-bundle,
- /system;path:=/SLING-INF/res/sling-test/sling/SLING-1733
- </Sling-Bundle-Resources>
- <Sling-Test-Regexp>
- org.apache.sling.launchpad.testservices.serversidetests.*Test
- </Sling-Test-Regexp>
- <Embed-Dependency>
- org.apache.felix.utils;inline=org/apache/felix/utils/json/JSONWriter.class
- </Embed-Dependency>
- <Sling-Model-Packages>
- org.apache.sling.launchpad.testservices.models
- </Sling-Model-Packages>
- </instructions>
- </configuration>
- </plugin>
- <plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<configuration>
@@ -100,19 +60,6 @@
</excludes>
</configuration>
</plugin>
- <plugin>
- <groupId>org.apache.sling</groupId>
- <artifactId>maven-sling-plugin</artifactId>
- <executions>
- <execution>
- <id>generate-adapter-metadata</id>
- <phase>process-classes</phase>
- <goals>
- <goal>generate-adapter-metadata</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
</plugins>
</build>
<dependencies>
@@ -135,13 +82,8 @@
<scope>compile</scope>
</dependency>
<dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.scr.annotations</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
+ <artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
@@ -182,11 +124,7 @@
</dependency>
<dependency>
<groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.compendium</artifactId>
+ <artifactId>org.osgi.service.component.annotations</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
@@ -195,7 +133,6 @@
<dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
- <version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
@@ -220,11 +157,23 @@
<scope>compile</scope>
</dependency>
<dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.utils</artifactId>
- <version>1.9.0</version>
- <scope>provided</scope>
- </dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.utils</artifactId>
+ <version>1.9.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.servicemix.specs</groupId>
+ <artifactId>org.apache.servicemix.specs.jaxb-api-2.2</artifactId>
+ <version>2.9.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.servlets.annotations</artifactId>
+ <version>1.2.6</version>
+ </dependency>
+
</dependencies>
</project>
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/adapter/NotReallyAnAdapterFactory.java b/src/main/java/org/apache/sling/launchpad/testservices/adapter/NotReallyAnAdapterFactory.java
index 9b5e54a..c01d423 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/adapter/NotReallyAnAdapterFactory.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/adapter/NotReallyAnAdapterFactory.java
@@ -16,21 +16,18 @@
*/
package org.apache.sling.launchpad.testservices.adapter;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.adapter.AdapterFactory;
+import org.osgi.service.component.annotations.Component;
/**
* Service which looks like an adapter factory, but isn't. See SLING-2522.
*/
-@Component
-@Service(NotReallyAnAdapterFactory.class)
-@Properties({
- @Property(name=AdapterFactory.ADAPTABLE_CLASSES, value="org.apache.sling.api.resource.Resource"),
- @Property(name=AdapterFactory.ADAPTER_CLASSES, value="something_which_shouldnt_appear")
-})
+@Component(
+ service = NotReallyAnAdapterFactory.class,
+ property = {
+ AdapterFactory.ADAPTABLE_CLASSES + ":String=org.apache.sling.api.resource.Resource",
+ AdapterFactory.ADAPTER_CLASSES + ":String=something_which_shouldnt_appear"
+ })
public class NotReallyAnAdapterFactory implements AdapterFactory {
public <AdapterType> AdapterType getAdapter(Object adaptable, Class<AdapterType> type) {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/adapter/ReallyAnAdapterFactory.java b/src/main/java/org/apache/sling/launchpad/testservices/adapter/ReallyAnAdapterFactory.java
index 9aced43..12a0b5e 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/adapter/ReallyAnAdapterFactory.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/adapter/ReallyAnAdapterFactory.java
@@ -16,20 +16,17 @@
*/
package org.apache.sling.launchpad.testservices.adapter;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.adapter.AdapterFactory;
+import org.osgi.service.component.annotations.Component;
/**
* Service which actually is an adapter factory. See SLING-2522.
*/
-@Component
-@Service(AdapterFactory.class)
-@Properties({
- @Property(name=AdapterFactory.ADAPTABLE_CLASSES, value="org.apache.sling.api.resource.Resource"),
- @Property(name=AdapterFactory.ADAPTER_CLASSES, value="something_which_should_appear")
-})
+@Component(
+ service = AdapterFactory.class,
+ property = {
+ AdapterFactory.ADAPTABLE_CLASSES + ":String=org.apache.sling.api.resource.Resource",
+ AdapterFactory.ADAPTER_CLASSES + ":String=something_which_should_appear"
+ })
public class ReallyAnAdapterFactory implements AdapterFactory {
public <AdapterType> AdapterType getAdapter(Object adaptable, Class<AdapterType> type) {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/events/EventsCounterImpl.java b/src/main/java/org/apache/sling/launchpad/testservices/events/EventsCounterImpl.java
index fac8928..53ea8a5 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/events/EventsCounterImpl.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/events/EventsCounterImpl.java
@@ -23,15 +23,12 @@
import javax.servlet.ServletException;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.felix.utils.json.JSONWriter;
import org.apache.sling.api.SlingConstants;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
+import org.osgi.service.component.annotations.Component;
import org.osgi.service.event.Event;
import org.osgi.service.event.EventHandler;
import org.slf4j.Logger;
@@ -41,32 +38,30 @@
* report them to clients.
*/
@SuppressWarnings("serial")
-@Component(immediate=true, metatype=false)
-@Service
-@Properties({
- @Property(name="service.description", value="Paths Test Servlet"),
- @Property(name="service.vendor", value="The Apache Software Foundation"),
- @Property(name="sling.servlet.paths", value="/testing/EventsCounter"),
- @Property(name="sling.servlet.extensions", value="json"),
- @Property(
- name=org.osgi.service.event.EventConstants.EVENT_TOPIC,
- value= {
- SlingConstants.TOPIC_RESOURCE_ADDED,
- SlingConstants.TOPIC_RESOURCE_RESOLVER_MAPPING_CHANGED
- })
-})
+@Component(
+ immediate=true,
+ service = {
+ javax.servlet.Servlet.class,
+ org.osgi.service.event.EventHandler.class,
+ org.apache.sling.launchpad.testservices.events.EventsCounter.class
+ },
+ property = {
+ "service.description:String=Paths Test Servlet",
+ "service.vendor:String=The Apache Software Foundation",
+ "sling.servlet.paths:String=/testing/EventsCounter",
+ "sling.servlet.extensions:String=json",
+ org.osgi.service.event.EventConstants.EVENT_TOPIC + ":String=" + SlingConstants.TOPIC_RESOURCE_ADDED,
+ org.osgi.service.event.EventConstants.EVENT_TOPIC + ":String=" + SlingConstants.TOPIC_RESOURCE_RESOLVER_MAPPING_CHANGED
+ }
+)
public class EventsCounterImpl extends SlingSafeMethodsServlet implements EventHandler,EventsCounter {
- private final Map<String, AtomicInteger> counters = new HashMap<String, AtomicInteger>();
+ private final Map<String, AtomicInteger> counters = new HashMap<>();
private final Logger log = LoggerFactory.getLogger(getClass());
public synchronized void handleEvent(Event event) {
final String topic = event.getTopic();
- AtomicInteger counter = counters.get(topic);
- if(counter == null) {
- counter = new AtomicInteger();
- counters.put(topic, counter);
- }
+ AtomicInteger counter = counters.computeIfAbsent(topic, k -> new AtomicInteger());
counter.incrementAndGet();
log.debug("{} counter is now {}", topic, counter.get());
}
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/events/package-info.java b/src/main/java/org/apache/sling/launchpad/testservices/events/package-info.java
new file mode 100644
index 0000000..0541ae8
--- /dev/null
+++ b/src/main/java/org/apache/sling/launchpad/testservices/events/package-info.java
@@ -0,0 +1,21 @@
+/*
+ * 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.
+ */
+
+@org.osgi.annotation.versioning.Version("2.0.17")
+package org.apache.sling.launchpad.testservices.events;
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/exported/FakeSlingHttpServletRequest.java b/src/main/java/org/apache/sling/launchpad/testservices/exported/FakeSlingHttpServletRequest.java
index 75a44df..3a66388 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/exported/FakeSlingHttpServletRequest.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/exported/FakeSlingHttpServletRequest.java
@@ -17,17 +17,29 @@
package org.apache.sling.launchpad.testservices.exported;
import java.io.BufferedReader;
+import java.io.IOException;
import java.security.Principal;
+import java.util.Collection;
+import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
+import javax.servlet.AsyncContext;
+import javax.servlet.DispatcherType;
import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpUpgradeHandler;
+import javax.servlet.http.Part;
public class FakeSlingHttpServletRequest implements HttpServletRequest {
@@ -41,7 +53,7 @@
private final int port;
- private final Map<String, Object> attrs = new HashMap<String, Object>();
+ private final Map<String, Object> attrs = new HashMap<>();
private String contextPath;
@@ -79,8 +91,8 @@
return attrs.get(name);
}
- public Enumeration<?> getAttributeNames() {
- return null;
+ public Enumeration<String> getAttributeNames() {
+ return Collections.emptyEnumeration();
}
public String getCharacterEncoding() {
@@ -115,7 +127,7 @@
return null;
}
- public Enumeration<?> getLocales() {
+ public Enumeration<Locale> getLocales() {
return null;
}
@@ -123,11 +135,11 @@
return null;
}
- public Map<?, ?> getParameterMap() {
- return null;
+ public Map<String, String[]> getParameterMap() {
+ return Collections.emptyMap();
}
- public Enumeration<?> getParameterNames() {
+ public Enumeration<String> getParameterNames() {
return null;
}
@@ -209,11 +221,11 @@
return null;
}
- public Enumeration<?> getHeaderNames() {
+ public Enumeration<String> getHeaderNames() {
return null;
}
- public Enumeration<?> getHeaders(String name) {
+ public Enumeration<String> getHeaders(String name) {
return null;
}
@@ -284,4 +296,81 @@
public boolean isUserInRole(String role) {
return false;
}
+
+ @Override
+ public long getContentLengthLong() {
+ return -1;
+ }
+
+ @Override
+ public ServletContext getServletContext() {
+ return null;
+ }
+
+ @Override
+ public AsyncContext startAsync() throws IllegalStateException {
+ return null;
+ }
+
+ @Override
+ public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse)
+ throws IllegalStateException {
+ return null;
+ }
+
+ @Override
+ public boolean isAsyncStarted() {
+ return false;
+ }
+
+ @Override
+ public boolean isAsyncSupported() {
+ return false;
+ }
+
+ @Override
+ public AsyncContext getAsyncContext() {
+ return null;
+ }
+
+ @Override
+ public DispatcherType getDispatcherType() {
+ return null;
+ }
+
+ @Override
+ public String changeSessionId() {
+ return null;
+ }
+
+ @Override
+ public boolean authenticate(HttpServletResponse response) throws IOException, ServletException {
+ return false;
+ }
+
+ @Override
+ public void login(String username, String password) throws ServletException {
+ //no-op
+ }
+
+ @Override
+ public void logout() throws ServletException {
+ //no-op
+ }
+
+ @Override
+ public Collection<Part> getParts() throws IOException, ServletException {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public Part getPart(String name) throws IOException, ServletException {
+ return null;
+ }
+
+ @Override
+ public <T extends HttpUpgradeHandler> T upgrade(Class<T> handlerClass) throws IOException, ServletException {
+ return null;
+ }
+
}
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/exported/MappingsFacade.java b/src/main/java/org/apache/sling/launchpad/testservices/exported/MappingsFacade.java
index 52f426a..6ee2a74 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/exported/MappingsFacade.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/exported/MappingsFacade.java
@@ -32,7 +32,7 @@
// How long to wait for mapping updates
public static final String MAPPING_UPDATE_TIMEOUT_MSEC = "ResourceResolverTest.mapping.update.timeout.msec";
- private static final long updateTimeout = Long.valueOf(System.getProperty(MAPPING_UPDATE_TIMEOUT_MSEC, "10000"));
+ private static final long updateTimeout = Long.parseLong(System.getProperty(MAPPING_UPDATE_TIMEOUT_MSEC, "10000"));
public MappingsFacade(EventsCounter c) {
if(firstInstance) {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/exported/package-info.java b/src/main/java/org/apache/sling/launchpad/testservices/exported/package-info.java
index 3ac4cd6..eb4573e 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/exported/package-info.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/exported/package-info.java
@@ -17,5 +17,5 @@
* under the License.
*/
-@org.osgi.annotation.versioning.Version("2.1.0")
+@org.osgi.annotation.versioning.Version("2.2.0")
package org.apache.sling.launchpad.testservices.exported;
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/filters/NoPropertyFilter.java b/src/main/java/org/apache/sling/launchpad/testservices/filters/NoPropertyFilter.java
index 8809409..37cfbf4 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/filters/NoPropertyFilter.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/filters/NoPropertyFilter.java
@@ -16,19 +16,17 @@
*/
package org.apache.sling.launchpad.testservices.filters;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
+import org.osgi.service.component.annotations.Component;
/** Example/test filter */
-@Component(metatype=false)
-@Service(value=javax.servlet.Filter.class)
-@Properties({
- @Property(name="service.description", value="NoProperty Test Filter"),
- @Property(name="service.vendor", value="The Apache Software Foundation"),
- @Property(name="sling.filter.scope", value="request")
-})
+@Component(
+ service = javax.servlet.Filter.class,
+ property = {
+ "service.description:String=NoProperty Test Filter",
+ "service.vendor:String=The Apache Software Foundation",
+ "sling.filter.scope:String=request"
+ }
+ )
public class NoPropertyFilter extends TestFilter {
@Override
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/filters/SlingFilter.java b/src/main/java/org/apache/sling/launchpad/testservices/filters/SlingFilter.java
index ed807b1..7bf7c01 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/filters/SlingFilter.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/filters/SlingFilter.java
@@ -16,20 +16,18 @@
*/
package org.apache.sling.launchpad.testservices.filters;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
+import org.osgi.service.component.annotations.Component;
/** Example/test Filter */
-@Component(immediate=true, metatype=false)
-@Service(value=javax.servlet.Filter.class)
-@Properties({
- @Property(name="service.description", value="SlingFilter Test Filter"),
- @Property(name="service.vendor", value="The Apache Software Foundation"),
- @Property(name="filter.scope", value="request"),
- @Property(name="sling.filter.scope", value="request")
-})
+@Component(immediate=true,
+ service = javax.servlet.Filter.class,
+ property = {
+ "service.description:String=SlingFilter Test Filter",
+ "service.vendor:String=The Apache Software Foundation",
+ "filter.scope:String=request",
+ "sling.filter.scope:String=request"
+ }
+)
public class SlingFilter extends TestFilter {
@Override
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/filters/SlingFilterWithPattern.java b/src/main/java/org/apache/sling/launchpad/testservices/filters/SlingFilterWithPattern.java
index c7ba64a..2cf8506 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/filters/SlingFilterWithPattern.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/filters/SlingFilterWithPattern.java
@@ -16,21 +16,19 @@
*/
package org.apache.sling.launchpad.testservices.filters;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
+import org.osgi.service.component.annotations.Component;
/** Example/test Filter with sling.filter.pattern see also SLING-4294 */
-@Component(immediate=true, metatype=false)
-@Service(value=javax.servlet.Filter.class)
-@Properties({
- @Property(name="service.description", value="SlingFilter Test Filter"),
- @Property(name="service.vendor", value="The Apache Software Foundation"),
- @Property(name="filter.scope", value="request"),
- @Property(name="sling.filter.scope", value="request"),
- @Property(name="sling.filter.pattern", value="/system.*")
-})
+@Component(
+ immediate=true,
+ service = javax.servlet.Filter.class,
+ property = {
+ "service.description:String=SlingFilter Test Filter",
+ "service.vendor:String=The Apache Software Foundation",
+ "filter.scope:String=request",
+ "sling.filter.scope:String=request",
+ "sling.filter.pattern:String=/system.*"
+ })
public class SlingFilterWithPattern extends TestFilter {
@Override
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestDeleteHandler1.java b/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestDeleteHandler1.java
index 4943b13..3de8bcd 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestDeleteHandler1.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestDeleteHandler1.java
@@ -18,21 +18,16 @@
*/
package org.apache.sling.launchpad.testservices.handlers;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
-import org.apache.jackrabbit.server.io.DeleteContext;
import org.apache.jackrabbit.server.io.DeleteHandler;
-import org.apache.jackrabbit.webdav.DavException;
-import org.apache.jackrabbit.webdav.DavResource;
import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
-import javax.jcr.Node;
-import javax.jcr.RepositoryException;
-
-@Component(metatype = true)
-@Property(name = Constants.SERVICE_RANKING, intValue = 2, propertyPrivate = false)
-@Service(value = { DeleteHandler.class })
+@Component(
+ service = DeleteHandler.class,
+ property = {
+ Constants.SERVICE_RANKING + ":Integer=2"
+ }
+ )
public class TestDeleteHandler1 extends AbstractDeleteHandler{
public TestDeleteHandler1() {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestDeleteHandler2.java b/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestDeleteHandler2.java
index defb3cf..e5d8970 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestDeleteHandler2.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestDeleteHandler2.java
@@ -18,21 +18,16 @@
*/
package org.apache.sling.launchpad.testservices.handlers;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
-import org.apache.jackrabbit.server.io.DeleteContext;
import org.apache.jackrabbit.server.io.DeleteHandler;
-import org.apache.jackrabbit.webdav.DavException;
-import org.apache.jackrabbit.webdav.DavResource;
import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
-import javax.jcr.Node;
-import javax.jcr.RepositoryException;
-
-@Component(metatype = true)
-@Property(name = Constants.SERVICE_RANKING, intValue = 2, propertyPrivate = false)
-@Service(value = { DeleteHandler.class })
+@Component(
+ service = DeleteHandler.class,
+ property = {
+ Constants.SERVICE_RANKING + ":Integer=2"
+ }
+ )
public class TestDeleteHandler2 extends AbstractDeleteHandler {
public TestDeleteHandler2() {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestHandler1.java b/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestHandler1.java
index 829ccae..d1c413c 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestHandler1.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestHandler1.java
@@ -18,16 +18,18 @@
*/
package org.apache.sling.launchpad.testservices.handlers;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
-@Component(metatype = true)
-@Property(name = Constants.SERVICE_RANKING, intValue = 3, propertyPrivate = false)
-@Service(value = {
- org.apache.jackrabbit.server.io.IOHandler.class,
- org.apache.jackrabbit.server.io.PropertyHandler.class})
+@Component(
+ service = {
+ org.apache.jackrabbit.server.io.IOHandler.class,
+ org.apache.jackrabbit.server.io.PropertyHandler.class
+ },
+ property = {
+ Constants.SERVICE_RANKING + ":Integer=3"
+ }
+ )
public class TestHandler1 extends AbstractHandler {
@Override
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestHandler2.java b/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestHandler2.java
index 115be73..63e617e 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestHandler2.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestHandler2.java
@@ -18,16 +18,18 @@
*/
package org.apache.sling.launchpad.testservices.handlers;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
-@Component(metatype = true)
-@Property(name = Constants.SERVICE_RANKING, intValue = 2, propertyPrivate = false)
-@Service(value = {
- org.apache.jackrabbit.server.io.IOHandler.class,
- org.apache.jackrabbit.server.io.PropertyHandler.class})
+@Component(
+ service = {
+ org.apache.jackrabbit.server.io.IOHandler.class,
+ org.apache.jackrabbit.server.io.PropertyHandler.class
+ },
+ property = {
+ Constants.SERVICE_RANKING + ":Integer=2"
+ }
+ )
public class TestHandler2 extends AbstractHandler {
@Override
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestHandler3.java b/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestHandler3.java
index 6562ceb..ce61d9f 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestHandler3.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/handlers/TestHandler3.java
@@ -18,16 +18,18 @@
*/
package org.apache.sling.launchpad.testservices.handlers;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
-@Component(metatype = true)
-@Property(name = Constants.SERVICE_RANKING, intValue = 1, propertyPrivate = false)
-@Service(value = {
- org.apache.jackrabbit.server.io.IOHandler.class,
- org.apache.jackrabbit.server.io.PropertyHandler.class})
+@Component(
+ service = {
+ org.apache.jackrabbit.server.io.IOHandler.class,
+ org.apache.jackrabbit.server.io.PropertyHandler.class
+ },
+ property = {
+ Constants.SERVICE_RANKING + ":Integer=1"
+ }
+ )
public class TestHandler3 extends AbstractHandler {
@Override
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/jcr/FullTextQueryServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/jcr/FullTextQueryServlet.java
index 8adb71c..97f1698 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/jcr/FullTextQueryServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/jcr/FullTextQueryServlet.java
@@ -28,24 +28,20 @@
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
+import org.osgi.service.component.annotations.Component;
/** Servlet used to test HtmlResponse escaping */
-@Component(immediate=true, metatype=false)
-@Service(value=javax.servlet.Servlet.class)
-@Properties({
- @Property(name="service.description", value="FullText Query Servlet"),
- @Property(name="service.vendor", value="The Apache Software Foundation"),
- @Property(name="sling.servlet.paths", value={
- "/testing/fullTextQuery"
- })
-})
+@Component(
+ immediate=true,
+ service = javax.servlet.Servlet.class,
+ property = {
+ "service.description:String=FullText Query Servlet",
+ "service.vendor:String=The Apache Software Foundation",
+ "sling.servlet.paths:String=/testing/fullTextQuery"
+ })
/**
* Outputs paths of nodes matching the specified full-text search
*
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/jcr/TestNamespaceMapper.java b/src/main/java/org/apache/sling/launchpad/testservices/jcr/TestNamespaceMapper.java
index 111c6f7..9786c24 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/jcr/TestNamespaceMapper.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/jcr/TestNamespaceMapper.java
@@ -19,23 +19,21 @@
import javax.jcr.RepositoryException;
import javax.jcr.Session;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.jcr.api.NamespaceMapper;
+import org.osgi.service.component.annotations.Component;
/**
* Test Implementation of NamespaceMapper
*/
-@Component(immediate=true, metatype=false)
-@Service(value=org.apache.sling.jcr.api.NamespaceMapper.class)
-@Properties({
- @Property(name="service.description", value="Test NamespaceMapper"),
- @Property(name="service.vendor", value="The Apache Software Foundation"),
- @Property(name="filter.scope", value="request"),
- @Property(name="sling.filter.scope", value="request")
-})
+@Component(
+ immediate=true,
+ service = org.apache.sling.jcr.api.NamespaceMapper.class,
+ property = {
+ "service.description:String=Test NamespaceMapper",
+ "service.vendor:String=The Apache Software Foundation",
+ "filter.scope:String=request",
+ "sling.filter.scope:String=request"
+ })
public class TestNamespaceMapper implements NamespaceMapper {
public void defineNamespacePrefixes(Session session) throws RepositoryException {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/jcr/WorkspaceCreator.java b/src/main/java/org/apache/sling/launchpad/testservices/jcr/WorkspaceCreator.java
index ae98738..532721b 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/jcr/WorkspaceCreator.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/jcr/WorkspaceCreator.java
@@ -21,16 +21,17 @@
import javax.jcr.Session;
import javax.jcr.Workspace;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
import org.apache.sling.jcr.api.SlingRepository;
import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
-@Component
-@Property(name = Constants.SERVICE_DESCRIPTION, value = "Generates Test Workspaces ws1, ws2, ws3")
+@Component(
+ property = {
+ Constants.SERVICE_DESCRIPTION + ":String=Generates Test Workspaces ws1, ws2, ws3"
+ })
public class WorkspaceCreator {
@Reference
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/models/package-info.java b/src/main/java/org/apache/sling/launchpad/testservices/models/package-info.java
new file mode 100644
index 0000000..5445b90
--- /dev/null
+++ b/src/main/java/org/apache/sling/launchpad/testservices/models/package-info.java
@@ -0,0 +1,21 @@
+/*
+ * 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.
+ */
+
+@org.osgi.annotation.versioning.Version("2.0.16")
+package org.apache.sling.launchpad.testservices.models;
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/post/OldStylePostOperationExample.java b/src/main/java/org/apache/sling/launchpad/testservices/post/OldStylePostOperationExample.java
index a6dfd5b..832818a 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/post/OldStylePostOperationExample.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/post/OldStylePostOperationExample.java
@@ -19,23 +19,20 @@
import javax.jcr.Node;
import javax.jcr.RepositoryException;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.SlingException;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.servlets.HtmlResponse;
import org.apache.sling.servlets.post.SlingPostOperation;
import org.apache.sling.servlets.post.SlingPostProcessor;
+import org.osgi.service.component.annotations.Component;
/** Example using the now deprecated SlingPostOperation */
-@Component(immediate=true)
-@Service
-@Properties({
- @Property(name=SlingPostOperation.PROP_OPERATION_NAME, value="test:OldStylePostOperationExample")
-})
+@Component(
+ immediate=true,
+ property = {
+ SlingPostOperation.PROP_OPERATION_NAME + ":String=test:OldStylePostOperationExample"
+ })
public class OldStylePostOperationExample implements SlingPostOperation {
public void run(SlingHttpServletRequest request, HtmlResponse response, SlingPostProcessor[] processors) {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/post/SlingPostOperationExample.java b/src/main/java/org/apache/sling/launchpad/testservices/post/SlingPostOperationExample.java
index 494c98d..35c68e0 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/post/SlingPostOperationExample.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/post/SlingPostOperationExample.java
@@ -19,20 +19,20 @@
import javax.jcr.Node;
import javax.jcr.RepositoryException;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.SlingException;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.servlets.post.PostOperation;
import org.apache.sling.servlets.post.PostResponse;
import org.apache.sling.servlets.post.SlingPostProcessor;
+import org.osgi.service.component.annotations.Component;
/** Example PostOperation used in integration tests */
-@Component(immediate=true)
-@Service
-@Property(name=PostOperation.PROP_OPERATION_NAME, value="test:SlingPostOperationExample")
+@Component(
+ immediate=true,
+ property = {
+ PostOperation.PROP_OPERATION_NAME + ":String=test:SlingPostOperationExample"
+ })
public class SlingPostOperationExample implements PostOperation {
public void run(SlingHttpServletRequest request, PostResponse response, SlingPostProcessor[] processors) {
final Resource r = request.getResource();
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/post/SlingPostProcessorOne.java b/src/main/java/org/apache/sling/launchpad/testservices/post/SlingPostProcessorOne.java
index 103c5d9..e1c49aa 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/post/SlingPostProcessorOne.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/post/SlingPostProcessorOne.java
@@ -18,18 +18,17 @@
import java.util.List;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.servlets.post.Modification;
import org.apache.sling.servlets.post.SlingPostProcessor;
import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
/** Example SlingPostProcessor used in integration tests */
-@Component
-@Service
-@Property(name=Constants.SERVICE_RANKING, intValue=2)
+@Component(
+ property = {
+ Constants.SERVICE_RANKING + ":Integer=2"
+ })
public class SlingPostProcessorOne implements SlingPostProcessor {
@Override
public void process(SlingHttpServletRequest request, List<Modification> mods)
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/post/SlingPostProcessorTwo.java b/src/main/java/org/apache/sling/launchpad/testservices/post/SlingPostProcessorTwo.java
index 00addbf..6ef3f23 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/post/SlingPostProcessorTwo.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/post/SlingPostProcessorTwo.java
@@ -18,18 +18,17 @@
import java.util.List;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.servlets.post.Modification;
import org.apache.sling.servlets.post.SlingPostProcessor;
import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
/** Example SlingPostProcessor used in integration tests */
-@Component
-@Service
-@Property(name=Constants.SERVICE_RANKING, intValue=1)
+@Component(
+ property = {
+ Constants.SERVICE_RANKING + ":Integer=1"
+ })
public class SlingPostProcessorTwo implements SlingPostProcessor {
@Override
public void process(SlingHttpServletRequest request, List<Modification> mods)
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/repository/FirstRepositoryInitializer.java b/src/main/java/org/apache/sling/launchpad/testservices/repository/FirstRepositoryInitializer.java
index e9011b1..369f1f8 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/repository/FirstRepositoryInitializer.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/repository/FirstRepositoryInitializer.java
@@ -18,13 +18,10 @@
import javax.jcr.Session;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.jcr.api.SlingRepository;
import org.apache.sling.jcr.api.SlingRepositoryInitializer;
import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -32,12 +29,12 @@
* SlingRepositoryInitializer that creates a node to which SecondRepositoryInitializer
* can add a property, to verify that they are executed in order of their service ranking.
*/
-@Component
-@Service(SlingRepositoryInitializer.class)
-@Properties({
- // Execute this before SecondRepositoryInitializer
- @Property(name=Constants.SERVICE_RANKING, intValue=100)
-})
+@Component(
+ service = SlingRepositoryInitializer.class,
+ property = {
+ // Execute this before SecondRepositoryInitializer
+ Constants.SERVICE_RANKING + ":Integer=100"
+ })
public class FirstRepositoryInitializer implements SlingRepositoryInitializer {
private final Logger log = LoggerFactory.getLogger(getClass());
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/repository/SecondRepositoryInitializer.java b/src/main/java/org/apache/sling/launchpad/testservices/repository/SecondRepositoryInitializer.java
index 4f30d0e..84a6bf1 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/repository/SecondRepositoryInitializer.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/repository/SecondRepositoryInitializer.java
@@ -18,13 +18,10 @@
import javax.jcr.Session;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.jcr.api.SlingRepository;
import org.apache.sling.jcr.api.SlingRepositoryInitializer;
import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -32,12 +29,12 @@
* SlingRepositoryInitializer that adds a property to the node created by
* FirstRepositoryInitializer.
*/
-@Component
-@Service(SlingRepositoryInitializer.class)
-@Properties({
- // Execute this after FirstRepositoryInitializer
- @Property(name=Constants.SERVICE_RANKING, intValue=200)
-})
+@Component(
+ service = SlingRepositoryInitializer.class,
+ property = {
+ // Execute this after FirstRepositoryInitializer
+ Constants.SERVICE_RANKING + ":Integer=200"
+ })
public class SecondRepositoryInitializer implements SlingRepositoryInitializer {
private final Logger log = LoggerFactory.getLogger(getClass());
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/repository/SystemUsersInitializer.java b/src/main/java/org/apache/sling/launchpad/testservices/repository/SystemUsersInitializer.java
index b0b0ad4..5927895 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/repository/SystemUsersInitializer.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/repository/SystemUsersInitializer.java
@@ -20,18 +20,18 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
+import java.nio.charset.StandardCharsets;
import java.util.List;
import javax.jcr.Session;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.jcr.api.SlingRepository;
import org.apache.sling.jcr.api.SlingRepositoryInitializer;
import org.apache.sling.jcr.repoinit.JcrRepoInitOpsProcessor;
import org.apache.sling.repoinit.parser.RepoInitParser;
import org.apache.sling.repoinit.parser.operations.Operation;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -40,8 +40,8 @@
* Meant to be used for our integration tests until we can create those from
* the provisioning model.
*/
-@Component
-@Service(SlingRepositoryInitializer.class)
+@Component(
+ service = SlingRepositoryInitializer.class)
public class SystemUsersInitializer implements SlingRepositoryInitializer {
private final Logger log = LoggerFactory.getLogger(getClass());
@@ -59,17 +59,21 @@
final Session s = repo.loginAdministrative(null);
final InputStream is = getClass().getResourceAsStream(REPOINIT_FILE);
try {
- if(is == null) {
+ if (is == null) {
throw new IOException("Class Resource not found:" + REPOINIT_FILE);
}
- final Reader r = new InputStreamReader(is, "UTF-8");
- final List<Operation> ops = parser.parse(r);
+ final List<Operation> ops;
+ try (final Reader r = new InputStreamReader(is, StandardCharsets.UTF_8)) {
+ ops = parser.parse(r);
+ }
log.info("Executing {} repoinit Operations", ops.size());
processor.apply(s, ops);
s.save();
} finally {
s.logout();
- is.close();
+ if (is != null) {
+ is.close();
+ }
}
}
}
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/resource/TestResourceDecorator.java b/src/main/java/org/apache/sling/launchpad/testservices/resource/TestResourceDecorator.java
index 0d2dc8e..ac263bd 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/resource/TestResourceDecorator.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/resource/TestResourceDecorator.java
@@ -18,22 +18,20 @@
import javax.servlet.http.HttpServletRequest;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceDecorator;
import org.apache.sling.api.resource.ResourceWrapper;
+import org.osgi.service.component.annotations.Component;
/** Test ResourceDecorator that sets a specific resource type
* for resources having a path that starts
* with /testing + simple name of this class + /
*/
@Component
-@Service
public class TestResourceDecorator implements ResourceDecorator {
private final String PATH = "/testing/" + getClass().getSimpleName() + "/";
- private final String RESOURCE_TYPE = "TEST_RESOURCE_DECORATOR_RESOURCE_TYPE";
+ private static final String RESOURCE_TYPE = "TEST_RESOURCE_DECORATOR_RESOURCE_TYPE";
public Resource decorate(Resource resource, HttpServletRequest request) {
return decorate(resource);
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/resourceprovider/PlanetResource.java b/src/main/java/org/apache/sling/launchpad/testservices/resourceprovider/PlanetResource.java
index ec5a05e..051d319 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/resourceprovider/PlanetResource.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/resourceprovider/PlanetResource.java
@@ -42,7 +42,7 @@
static class PlanetValueMap extends ValueMapDecorator {
PlanetValueMap(String name, int distance) {
- super(new HashMap<String, Object>());
+ super(new HashMap<>());
put("name", name);
put("distance", distance);
}
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/resourceprovider/PlanetsResourceProvider.java b/src/main/java/org/apache/sling/launchpad/testservices/resourceprovider/PlanetsResourceProvider.java
index 9e6c7f2..d820c16 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/resourceprovider/PlanetsResourceProvider.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/resourceprovider/PlanetsResourceProvider.java
@@ -22,10 +22,6 @@
import java.util.List;
import java.util.Map;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.SyntheticResource;
import org.apache.sling.api.resource.ValueMap;
@@ -33,6 +29,7 @@
import org.apache.sling.spi.resource.provider.ResolveContext;
import org.apache.sling.spi.resource.provider.ResourceContext;
import org.apache.sling.spi.resource.provider.ResourceProvider;
+import org.osgi.service.component.annotations.Component;
/** Test/example ResourceProvider that provides info about
* the Solar System's planets at /planets.
@@ -42,17 +39,17 @@
* If you need an example based on the old ResourceProvider interface,
* see this code at svn revision 1727946.
*/
-@Component
-@Service(value=ResourceProvider.class)
-@Properties({
- @Property(name = ResourceProvider.PROPERTY_NAME, value = "Planets"),
- @Property(name = ResourceProvider.PROPERTY_ROOT, value=PlanetsResourceProvider.ROOT)
-})
+@Component(
+ service = ResourceProvider.class,
+ property = {
+ ResourceProvider.PROPERTY_NAME + ":String=Planets",
+ ResourceProvider.PROPERTY_ROOT + ":String=" + PlanetsResourceProvider.ROOT
+ })
public class PlanetsResourceProvider extends ResourceProvider<DoesNotNeedAContext> {
/** Our planet data. PlanetResource is created when resolving, as
* it points to a specific ResourceResolver. */
- private static final Map<String, ValueMap> PLANETS = new HashMap<String, ValueMap>();
+ private static final Map<String, ValueMap> PLANETS = new HashMap<>();
/** This can be configurable of course */
public static final String ROOT = "/planets";
@@ -98,7 +95,7 @@
public Iterator<Resource> listChildren(ResolveContext<DoesNotNeedAContext> ctx, Resource parent) {
if(parent.getPath().startsWith(ROOT)) {
// Not the most efficient thing...good enough for this example
- final List<Resource> kids = new ArrayList<Resource>();
+ final List<Resource> kids = new ArrayList<>();
for(Map.Entry<String, ValueMap> e : PLANETS.entrySet()) {
if(parent.getPath().equals(parentPath(e.getKey()))) {
kids.add(new PlanetResource(parent.getResourceResolver(), e.getKey(), e.getValue()));
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/scripting/GroovyBindingsValuesProvider.java b/src/main/java/org/apache/sling/launchpad/testservices/scripting/GroovyBindingsValuesProvider.java
index 7200646..e114fd9 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/scripting/GroovyBindingsValuesProvider.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/scripting/GroovyBindingsValuesProvider.java
@@ -18,19 +18,16 @@
import javax.script.Bindings;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.scripting.api.BindingsValuesProvider;
+import org.osgi.service.component.annotations.Component;
/** Example/test BindingsValuesProvider targeting groovy scripts */
-@Component(immediate=true, metatype=false)
-@Service
-@Properties({
- @Property(name="service.description", value="Groovy BindingsValuesProvider"),
- @Property(name="service.vendor", value="The Apache Software Foundation"),
- @Property(name="javax.script.name", value="groovy")
-})
+@Component(
+ immediate=true,
+ property = {
+ "service.description:String=Groovy BindingsValuesProvider",
+ "service.vendor:String=The Apache Software Foundation",
+ "javax.script.name:String=groovy"
+ })
public class GroovyBindingsValuesProvider implements BindingsValuesProvider {
public void addBindings(Bindings bindings) {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/scripting/JSPBindingsValuesProvider.java b/src/main/java/org/apache/sling/launchpad/testservices/scripting/JSPBindingsValuesProvider.java
index 7e4eeed..d18669a 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/scripting/JSPBindingsValuesProvider.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/scripting/JSPBindingsValuesProvider.java
@@ -18,19 +18,16 @@
import javax.script.Bindings;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.scripting.api.BindingsValuesProvider;
+import org.osgi.service.component.annotations.Component;
/** Example/test BindingsValuesProvider targeting JSP scripts */
-@Component(immediate=true, metatype=false)
-@Service
-@Properties({
- @Property(name="service.description", value="JSP BindingsValuesProvider"),
- @Property(name="service.vendor", value="The Apache Software Foundation")
-})
+@Component(
+ immediate=true,
+ property = {
+ "service.description:String=JSP BindingsValuesProvider",
+ "service.vendor:String=The Apache Software Foundation"
+ })
public class JSPBindingsValuesProvider implements BindingsValuesProvider {
public void addBindings(Bindings bindings) {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/scripting/StandaloneScriptExecutionServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/scripting/StandaloneScriptExecutionServlet.java
index ea5d7e3..193bf81 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/scripting/StandaloneScriptExecutionServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/scripting/StandaloneScriptExecutionServlet.java
@@ -21,30 +21,28 @@
import javax.servlet.ServletException;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.scripting.SlingBindings;
import org.apache.sling.api.scripting.SlingScript;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
+import org.osgi.service.component.annotations.Component;
/**
* Test Servlet that executes a named script in standalone mode, i.e.
* without a request or response.
*/
-@Component(immediate=true, metatype=false)
-@Service(value=javax.servlet.Servlet.class)
-@Properties({
- @Property(name="service.description", value="StandaloneScriptExecutionServlet Test Servlet"),
- @Property(name="service.vendor", value="The Apache Software Foundation"),
- @Property(name="sling.servlet.resourceTypes", value="sling/servlet/default"),
- @Property(name="sling.servlet.selectors", value = "StandaloneScriptExecutionServlet"),
- @Property(name="sling.servlet.extensions",value = "txt")
-})
+@Component(
+ immediate=true,
+ service = javax.servlet.Servlet.class,
+ property = {
+ "service.description:String=StandaloneScriptExecutionServlet Test Servlet",
+ "service.vendor:String=The Apache Software Foundation",
+ "sling.servlet.resourceTypes:String=sling/servlet/default",
+ "sling.servlet.selectors:String=StandaloneScriptExecutionServlet",
+ "sling.servlet.extensions:String=txt"
+ })
@SuppressWarnings("serial")
public class StandaloneScriptExecutionServlet extends SlingSafeMethodsServlet {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/scripting/StringBindingsValuesProvider.java b/src/main/java/org/apache/sling/launchpad/testservices/scripting/StringBindingsValuesProvider.java
index fae7b0a..66236ec 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/scripting/StringBindingsValuesProvider.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/scripting/StringBindingsValuesProvider.java
@@ -18,18 +18,15 @@
import javax.script.Bindings;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.scripting.api.BindingsValuesProvider;
+import org.osgi.service.component.annotations.Component;
/** Example/test BindingsValuesProvider targeting all scripts */
-@Component(immediate=true, metatype=false)
-@Service
-@Properties({
- @Property(name="service.description", value="StringBindingsValuesProvider"),
- @Property(name="service.vendor", value="The Apache Software Foundation")
-})
+@Component(
+ immediate=true,
+ property = {
+ "service.description:String=StringBindingsValuesProvider",
+ "service.vendor:String=The Apache Software Foundation"
+ })
public class StringBindingsValuesProvider implements BindingsValuesProvider {
public void addBindings(Bindings bindings) {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/LowerRankingStringTransformer.java b/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/LowerRankingStringTransformer.java
index 5f9eac7..497f1f5 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/LowerRankingStringTransformer.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/LowerRankingStringTransformer.java
@@ -16,19 +16,15 @@
*/
package org.apache.sling.launchpad.testservices.serversidetests;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.launchpad.testservices.exported.StringTransformer;
+import org.osgi.service.component.annotations.Component;
-@Component
-@Service
-@Properties({
- @Property(name="mode", value="lowercase"),
- @Property(name="service.ranking", intValue=-10)
-})
-
+@Component(
+ property = {
+ "mode:String=lowercase",
+ "service.ranking:Integer=-10"
+ }
+ )
public class LowerRankingStringTransformer implements StringTransformer {
public String transform(String str) {
throw new UnsupportedOperationException("This " + getClass().getSimpleName() + " shouldn't be called in tests due to lower ranking");
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/LowercaseStringTransformer.java b/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/LowercaseStringTransformer.java
index 4c564de..c78a38e 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/LowercaseStringTransformer.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/LowercaseStringTransformer.java
@@ -16,14 +16,14 @@
*/
package org.apache.sling.launchpad.testservices.serversidetests;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.launchpad.testservices.exported.StringTransformer;
+import org.osgi.service.component.annotations.Component;
-@Component
-@Service
-@Property(name="mode", value="lowercase")
+@Component(
+ property = {
+ "mode:String=lowercase"
+ }
+ )
public class LowercaseStringTransformer implements StringTransformer {
public String transform(String str) {
return str.toLowerCase();
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/MappingEventsTest.java b/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/MappingEventsTest.java
index df1052d..4c78438 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/MappingEventsTest.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/MappingEventsTest.java
@@ -46,7 +46,7 @@
private static final Logger logger = LoggerFactory.getLogger(MappingEventsTest.class);
private static Session session;
private Node mapRoot;
- private static List<String> toDelete = new ArrayList<String>();
+ private static List<String> toDelete = new ArrayList<>();
private static final int N_STEPS = 20;
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/ResourceResolverWithVanityBloomFilterTest.java b/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/ResourceResolverWithVanityBloomFilterTest.java
index 75a5455..1330d16 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/ResourceResolverWithVanityBloomFilterTest.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/ResourceResolverWithVanityBloomFilterTest.java
@@ -69,7 +69,7 @@
private Node rootNode;
private Node mapRoot;
private String [] vanity;
- private static List<String> toDelete = new ArrayList<String>();
+ private static List<String> toDelete = new ArrayList<>();
private static ResourceResolverFactory cleanupResolverFactory;
private MappingsFacade mappingsFacade;
@@ -192,7 +192,7 @@
anon1.close();
// same workspace but admin user
- final Map<String, Object> admin0Cred = new HashMap<String, Object>();
+ final Map<String, Object> admin0Cred = new HashMap<>();
admin0Cred.put(ResourceResolverFactory.USER, "admin");
admin0Cred.put(ResourceResolverFactory.PASSWORD, "admin".toCharArray());
final ResourceResolver admin0 = anon0.clone(admin0Cred);
@@ -203,13 +203,13 @@
admin0.close();
// same user but different workspace
- final Map<String, Object> anon2Cred = new HashMap<String, Object>();
+ final Map<String, Object> anon2Cred = new HashMap<>();
final ResourceResolver anon2 = anon0.clone(anon2Cred);
assertEquals("anonymous", anon2.getUserID());
anon2.close();
// different user and workspace
- final Map<String, Object> admin1Cred = new HashMap<String, Object>();
+ final Map<String, Object> admin1Cred = new HashMap<>();
admin1Cred.put(ResourceResolverFactory.USER, "admin");
admin1Cred.put(ResourceResolverFactory.PASSWORD, "admin".toCharArray());
final ResourceResolver admin1 = anon0.clone(admin1Cred);
@@ -233,7 +233,7 @@
admin1.close();
// same workspace but anonymous user
- final Map<String, Object> anon0Cred = new HashMap<String, Object>();
+ final Map<String, Object> anon0Cred = new HashMap<>();
anon0Cred.put(ResourceResolverFactory.USER, "anonymous");
final ResourceResolver anon0 = admin0.clone(anon0Cred);
final Session anon0Session = anon0.adaptTo(Session.class);
@@ -243,13 +243,13 @@
anon0.close();
// same user but different workspace
- final Map<String, Object> admin2Cred = new HashMap<String, Object>();
+ final Map<String, Object> admin2Cred = new HashMap<>();
final ResourceResolver admin2 = admin0.clone(admin2Cred);
assertEquals("admin", admin2.getUserID());
admin2.close();
// different user and workspace
- final Map<String, Object> anon1Cred = new HashMap<String, Object>();
+ final Map<String, Object> anon1Cred = new HashMap<>();
anon1Cred.put(ResourceResolverFactory.USER, "anonymous");
final ResourceResolver anon1 = admin0.clone(anon1Cred);
assertEquals("anonymous", anon1.getUserID());
@@ -326,7 +326,7 @@
}*/
@Test public void test_attributes_from_authInfo() throws Exception {
- final Map<String, Object> authInfo = new HashMap<String, Object>();
+ final Map<String, Object> authInfo = new HashMap<>();
authInfo.put(ResourceResolverFactory.USER, "admin");
authInfo.put(ResourceResolverFactory.PASSWORD, "admin".toCharArray());
authInfo.put("testAttributeString", "AStringValue");
@@ -347,7 +347,7 @@
assertEquals("admin", rr.getAttribute(ResourceResolverFactory.USER));
assertNull(rr.getAttribute(ResourceResolverFactory.PASSWORD));
- final HashSet<String> validNames = new HashSet<String>();
+ final HashSet<String> validNames = new HashSet<>();
validNames.add(ResourceResolverFactory.USER);
validNames.add("testAttributeString");
validNames.add("testAttributeNumber");
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/UppercaseStringTransformer.java b/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/UppercaseStringTransformer.java
index ffbcf3e..ce6cabd 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/UppercaseStringTransformer.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/UppercaseStringTransformer.java
@@ -16,14 +16,14 @@
*/
package org.apache.sling.launchpad.testservices.serversidetests;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.launchpad.testservices.exported.StringTransformer;
+import org.osgi.service.component.annotations.Component;
-@Component
-@Service
-@Property(name="mode", value="uppercase")
+@Component(
+ property = {
+ "mode:String=uppercase"
+ }
+ )
public class UppercaseStringTransformer implements StringTransformer {
public String transform(String str) {
return str.toUpperCase();
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/AnonymousAccessConfigServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/AnonymousAccessConfigServlet.java
index f0f5fc8..5c34012 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/AnonymousAccessConfigServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/AnonymousAccessConfigServlet.java
@@ -22,16 +22,13 @@
import javax.servlet.ServletException;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import org.osgi.service.event.Event;
import org.osgi.service.event.EventHandler;
@@ -40,13 +37,20 @@
* that the authenticator service has accepted the configuration change.
*/
@SuppressWarnings("serial")
-@Component(immediate = true)
-@Service
-@Properties({ @Property(name = "service.description", value = "Anonymous Access Config Servlet"),
- @Property(name = "service.vendor", value = "The Apache Software Foundation"),
- @Property(name = "sling.servlet.paths", value = "/testing/AnonymousAccessConfigServlet"),
- @Property(name = "sling.servlet.extensions", value = "txt"),
- @Property(name = "event.topics", value = "org/osgi/framework/ServiceEvent/MODIFIED") })
+@Component(
+ immediate = true,
+ service = {
+ org.osgi.service.event.EventHandler.class,
+ javax.servlet.Servlet.class
+ },
+ property = {
+ "service.description:String=Anonymous Access Config Servlet",
+ "service.vendor:String=The Apache Software Foundation",
+ "sling.servlet.paths:String=/testing/AnonymousAccessConfigServlet",
+ "sling.servlet.extensions:String=txt",
+ "event.topics:String=org/osgi/framework/ServiceEvent/MODIFIED"
+ }
+ )
public class AnonymousAccessConfigServlet extends SlingAllMethodsServlet implements EventHandler {
private static final String PROP_AUTH_ANNONYMOUS = "auth.annonymous";
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/CustomPostResponseCreatorImpl.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/CustomPostResponseCreatorImpl.java
index 713626a..210e713 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/CustomPostResponseCreatorImpl.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/CustomPostResponseCreatorImpl.java
@@ -20,18 +20,16 @@
import javax.servlet.http.HttpServletResponse;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.servlets.post.AbstractPostResponse;
import org.apache.sling.servlets.post.PostResponse;
import org.apache.sling.servlets.post.PostResponseCreator;
+import org.osgi.service.component.annotations.Component;
/**
* Sample implementation of the PostResponseCreator interface.
*/
@Component
-@Service
public class CustomPostResponseCreatorImpl implements PostResponseCreator {
public PostResponse createPostResponse(SlingHttpServletRequest req) {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/DomServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/DomServlet.java
index 0e83539..b35eb25 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/DomServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/DomServlet.java
@@ -19,15 +19,17 @@
import java.io.IOException;
import java.io.StringReader;
+import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
-import org.apache.felix.scr.annotations.sling.SlingServlet;
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.SlingServletPathsStrict;
+import org.osgi.service.component.annotations.Component;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
@@ -38,7 +40,10 @@
* The <tt>DomServlet</tt> evaluates a simple XML document using DOM APIs.
*
*/
-@SlingServlet(paths = "/bin/dom", extensions = "xml")
+@Component(service=Servlet.class)
+@SlingServletPathsStrict(
+ paths = "/bin/dom",
+ extensions = "xml")
public class DomServlet extends SlingAllMethodsServlet {
private static final long serialVersionUID = 1L;
@@ -51,6 +56,9 @@
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ // completely disable external entities declarations:
+ factory.setFeature("http://xml.org/sax/features/external-general-entities", false);
+ factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new InputSource(new StringReader(XML_INPUT)));
@@ -62,9 +70,7 @@
response.setContentType("text/plain");
response.getWriter().write(result);
- } catch (ParserConfigurationException e) {
- throw new ServletException(e);
- } catch (SAXException e) {
+ } catch (SAXException | ParserConfigurationException e) {
throw new ServletException(e);
}
}
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/ExportedPackageServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/ExportedPackageServlet.java
index b0a61e0..5543573 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/ExportedPackageServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/ExportedPackageServlet.java
@@ -21,27 +21,25 @@
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import org.osgi.service.packageadmin.ExportedPackage;
import org.osgi.service.packageadmin.PackageAdmin;
/** Test servlet for SLING-2808 */
-@Component(immediate=true, metatype=false)
-@Service(value=javax.servlet.Servlet.class)
-@Properties({
- @Property(name="service.description", value="Exported packages Test Servlet"),
- @Property(name="service.vendor", value="The Apache Software Foundation"),
- @Property(name="sling.servlet.resourceTypes", value="sling/servlet/default"),
- @Property(name="sling.servlet.selectors", value="EXPORTED_PACKAGES"),
- @Property(name="sling.servlet.extensions", value="txt")
-})
+@Component(
+ immediate=true,
+ service = javax.servlet.Servlet.class,
+ property = {
+ "service.description:String=Exported packages Test Servlet",
+ "service.vendor:String=The Apache Software Foundation",
+ "sling.servlet.resourceTypes:String=sling/servlet/default",
+ "sling.servlet.selectors:String=EXPORTED_PACKAGES",
+ "sling.servlet.extensions:String=txt"
+ })
@SuppressWarnings("serial")
public class ExportedPackageServlet extends SlingSafeMethodsServlet {
@Reference
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/ExtensionServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/ExtensionServlet.java
index 7170529..04d73ea 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/ExtensionServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/ExtensionServlet.java
@@ -16,20 +16,19 @@
*/
package org.apache.sling.launchpad.testservices.servlets;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
+import org.osgi.service.component.annotations.Component;
/** Example/test Sling Servlet registered with two extensions */
-@Component(immediate=true, metatype=false)
-@Service(value=javax.servlet.Servlet.class)
-@Properties({
- @Property(name="service.description", value="Extension Test Servlet"),
- @Property(name="service.vendor", value="The Apache Software Foundation"),
- @Property(name="sling.servlet.resourceTypes", value="sling/servlet/default"),
- @Property(name="sling.servlet.extensions", value={ "TEST_EXT_1", "TEST_EXT_2" })
-})
+@Component(
+ immediate=true,
+ service = javax.servlet.Servlet.class,
+ property = {
+ "service.description:String=Extension Test Servlet",
+ "service.vendor:String=The Apache Software Foundation",
+ "sling.servlet.resourceTypes:String=sling/servlet/default",
+ "sling.servlet.extensions:String=TEST_EXT_1",
+ "sling.servlet.extensions:String=TEST_EXT_2"
+ })
@SuppressWarnings("serial")
public class ExtensionServlet extends TestServlet {
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/GetConfigServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/GetConfigServlet.java
index 219bc5c..df3e3e7 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/GetConfigServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/GetConfigServlet.java
@@ -17,35 +17,31 @@
package org.apache.sling.launchpad.testservices.servlets;
import java.io.IOException;
-import java.util.Arrays;
import java.util.Dictionary;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
import org.apache.felix.utils.json.JSONWriter;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
/** GET returns the contents of an OSGi config by PID */
@SuppressWarnings("serial")
-@Component
-@Service
-@Properties({
- @Property(name="service.description", value="GetConfig Test Servlet"),
- @Property(name="service.vendor", value="The Apache Software Foundation"),
- @Property(name="sling.servlet.paths",value="/testing/GetConfigServlet"),
- @Property(name="sling.servlet.extensions",value="json")
-})
+@Component(
+ service = javax.servlet.Servlet.class,
+ property = {
+ "service.description:String=GetConfig Test Servlet",
+ "service.vendor:String=The Apache Software Foundation",
+ "sling.servlet.paths:String=/testing/GetConfigServlet",
+ "sling.servlet.extensions:String=json"
+ })
public class GetConfigServlet extends SlingSafeMethodsServlet {
@Reference
@@ -71,6 +67,7 @@
final Dictionary<?, ?> props = cfg.getProperties();
if(props == null) {
response.sendError(HttpServletResponse.SC_NOT_FOUND, "Properties of config with pid=" + pid + " not found");
+ return;
}
// Dump config in JSON
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/HtmlDefaultServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/HtmlDefaultServlet.java
index fc20355..67a6fa6 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/HtmlDefaultServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/HtmlDefaultServlet.java
@@ -16,11 +16,8 @@
*/
package org.apache.sling.launchpad.testservices.servlets;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.ConfigurationPolicy;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.ConfigurationPolicy;
/**
* Default servlet for the html extension, see SLING-1069.
@@ -29,15 +26,17 @@
* disabled by default and must be enabled (by creating a config) for testing
* in the HtmlDefaultServletTest class.
*/
-@Component(immediate=true, metatype=true, policy=ConfigurationPolicy.REQUIRE)
-@Service(value=javax.servlet.Servlet.class)
-@Properties({
- @Property(name="service.description", value="HTML Default Test Servlet",propertyPrivate=true),
- @Property(name="service.vendor", value="The Apache Software Foundation",propertyPrivate=true),
- @Property(name="sling.servlet.resourceTypes", value="sling/servlet/default",propertyPrivate=true),
- @Property(name="sling.servlet.extensions", value="html",propertyPrivate=true),
- @Property(name="sling.servlet.methods", value="GET")
-})
+@Component(
+ immediate=true,
+ service = javax.servlet.Servlet.class,
+ configurationPolicy = ConfigurationPolicy.REQUIRE,
+ property = {
+ "service.description:String=HTML Default Test Servlet",
+ "service.vendor:String=The Apache Software Foundation",
+ "sling.servlet.resourceTypes:String=sling/servlet/default",
+ "sling.servlet.extensions:String=html",
+ "sling.servlet.methods:String=GET"
+ })
@SuppressWarnings("serial")
public class HtmlDefaultServlet extends TestServlet {
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/HtmlResponseServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/HtmlResponseServlet.java
index 3208261..0c4f065 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/HtmlResponseServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/HtmlResponseServlet.java
@@ -21,25 +21,21 @@
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.HtmlResponse;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
+import org.osgi.service.component.annotations.Component;
/** Servlet used to test HtmlResponse escaping */
-@Component(immediate=true, metatype=false)
-@Service(value=javax.servlet.Servlet.class)
-@Properties({
- @Property(name="service.description", value="Paths Test Servlet"),
- @Property(name="service.vendor", value="The Apache Software Foundation"),
- @Property(name="sling.servlet.paths", value={
- "/testing/HtmlResponseServlet"
- })
-})
+@Component(
+ immediate=true,
+ service = javax.servlet.Servlet.class,
+ property = {
+ "service.description:String=Paths Test Servlet",
+ "service.vendor:String=The Apache Software Foundation",
+ "sling.servlet.paths:String=/testing/HtmlResponseServlet"
+ })
@SuppressWarnings("serial")
public class HtmlResponseServlet extends SlingSafeMethodsServlet {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/JaxbServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/JaxbServlet.java
index c3d690c..9ec1146 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/JaxbServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/JaxbServlet.java
@@ -20,22 +20,27 @@
import java.io.IOException;
+import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlValue;
-import org.apache.felix.scr.annotations.sling.SlingServlet;
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.SlingServletPathsStrict;
+import org.osgi.service.component.annotations.Component;
/**
* The <tt>JaxbServlet</tt> serializes a basic JAXB-annotated class
*
*/
-@SlingServlet(paths = "/bin/jaxb", extensions = "xml")
+@Component(service=Servlet.class)
+@SlingServletPathsStrict(
+ paths = "/bin/jaxb",
+ extensions = "xml")
public class JaxbServlet extends SlingAllMethodsServlet {
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/MiscUnsafeServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/MiscUnsafeServlet.java
index 9d90ebe..7b847b3 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/MiscUnsafeServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/MiscUnsafeServlet.java
@@ -20,18 +20,23 @@
import java.io.IOException;
+import javax.servlet.Servlet;
import javax.servlet.ServletException;
-import org.apache.felix.scr.annotations.sling.SlingServlet;
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.SlingServletPathsStrict;
+import org.osgi.service.component.annotations.Component;
/**
* Validates that the <tt>sun.misc.Unsafe</tt> class can be accessed
*
*/
-@SlingServlet(paths = "/bin/miscUnsafe", extensions = "txt")
+@Component(service=Servlet.class)
+@SlingServletPathsStrict(
+ paths = "/bin/miscUnsafe",
+ extensions = "txt")
public class MiscUnsafeServlet extends SlingAllMethodsServlet {
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/NamespaceTestServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/NamespaceTestServlet.java
index 95a2bb7..180a88e 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/NamespaceTestServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/NamespaceTestServlet.java
@@ -20,19 +20,21 @@
import javax.jcr.RepositoryException;
import javax.jcr.Session;
+import javax.servlet.Servlet;
import javax.servlet.ServletException;
-import org.apache.felix.scr.annotations.sling.SlingServlet;
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.SlingServletPaths;
+import org.osgi.service.component.annotations.Component;
/**
* Test Servlet which outputs the current namespace mappings.
*/
-@SlingServlet(
- paths="/testing/NamespaceTestServlet/output"
- )
+@Component(service=Servlet.class)
+@SlingServletPaths(
+ value = "/testing/NamespaceTestServlet/output")
@SuppressWarnings("serial")
public class NamespaceTestServlet extends SlingSafeMethodsServlet {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PathsServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PathsServlet.java
index 3e10211..6ada38a 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PathsServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PathsServlet.java
@@ -16,22 +16,18 @@
*/
package org.apache.sling.launchpad.testservices.servlets;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
+import org.osgi.service.component.annotations.Component;
/** Servlet that registers itself for specific paths */
-@Component(immediate=true, metatype=false)
-@Service(value=javax.servlet.Servlet.class)
-@Properties({
- @Property(name="service.description", value="Paths Test Servlet"),
- @Property(name="service.vendor", value="The Apache Software Foundation"),
- @Property(name="sling.servlet.paths", value={
- "/testing/PathsServlet/foo",
- "/testing/PathsServlet/bar/more/foo.html"
- })
-})
+@Component(
+ immediate=true,
+ service = javax.servlet.Servlet.class,
+ property = {
+ "service.description:String=Paths Test Servlet",
+ "service.vendor:String=The Apache Software Foundation",
+ "sling.servlet.paths:String=/testing/PathsServlet/foo",
+ "sling.servlet.paths:String=/testing/PathsServlet/bar/more/foo.html"
+ })
@SuppressWarnings("serial")
public class PathsServlet extends TestServlet {
}
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PathsServletNodeServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PathsServletNodeServlet.java
index b2be224..4074401 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PathsServletNodeServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PathsServletNodeServlet.java
@@ -24,14 +24,11 @@
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.commons.JcrUtils;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
+import org.osgi.service.component.annotations.Component;
/**
* Servlet which can create and delete a node at /testing/PathsServlet/foo in
@@ -39,11 +36,13 @@
* exists.
*/
@SuppressWarnings("serial")
-@Component
-@Service
-@Properties({ @Property(name = "service.description", value = "Paths Servlet Node Servlet"),
- @Property(name = "service.vendor", value = "The Apache Software Foundation"),
- @Property(name = "sling.servlet.paths", value = "/testing/PathsServletNodeServlet") })
+@Component(
+ service = javax.servlet.Servlet.class,
+ property = {
+ "service.description:String=Paths Servlet Node Servlet",
+ "service.vendor:String=The Apache Software Foundation",
+ "sling.servlet.paths:String=/testing/PathsServletNodeServlet"
+ })
public class PathsServletNodeServlet extends SlingAllMethodsServlet {
@Override
protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException,
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PlanetResourceRenderingServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PlanetResourceRenderingServlet.java
index a044a82..f6a6e78 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PlanetResourceRenderingServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PlanetResourceRenderingServlet.java
@@ -21,27 +21,24 @@
import javax.servlet.ServletException;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
+import org.osgi.service.component.annotations.Component;
/**
* Test HTML rendering of resources provided by our PlanetResourceProvider
*/
-@Component
-@Service(value=javax.servlet.Servlet.class)
-@Properties({
- @Property(name="service.description", value="HTML renderer for Planet resources"),
- @Property(name="service.vendor", value="The Apache Software Foundation"),
- @Property(name="sling.servlet.resourceTypes", value="sling/test-services/planet"),
- @Property(name="sling.servlet.extensions", value="html"),
- @Property(name="sling.servlet.methods", value="GET")
-})
+@Component(
+ service = javax.servlet.Servlet.class,
+ property = {
+ "service.description:String=HTML renderer for Planet resources",
+ "service.vendor:String=The Apache Software Foundation",
+ "sling.servlet.resourceTypes:String=sling/test-services/planet",
+ "sling.servlet.extensions:String=html",
+ "sling.servlet.methods:String=GET"
+ })
@SuppressWarnings("serial")
public class PlanetResourceRenderingServlet extends SlingSafeMethodsServlet {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PrefixServletMinusOne.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PrefixServletMinusOne.java
index 6becbc3..37bc6a3 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PrefixServletMinusOne.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PrefixServletMinusOne.java
@@ -16,23 +16,22 @@
*/
package org.apache.sling.launchpad.testservices.servlets;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
+import org.osgi.service.component.annotations.Component;
/** Example/test Sling Servlet using a prefix to demonstrate how
* PrefixServletZero overrides PrefixServletMinusOne
*/
-@Component(immediate=true, metatype=false)
-@Service(value=javax.servlet.Servlet.class)
-@Properties({
- @Property(name="service.description", value="Prefix Test Servlet Minus One"),
- @Property(name="service.vendor", value="The Apache Software Foundation"),
- @Property(name="sling.servlet.prefix", intValue=-1),
- @Property(name="sling.servlet.resourceTypes", value="sling/servlet/default"),
- @Property(name="sling.servlet.extensions", value={ "TEST_EXT_3", "TEST_EXT_4" })
-})
+@Component(
+ immediate=true,
+ service = javax.servlet.Servlet.class,
+ property = {
+ "service.description:String=Prefix Test Servlet Minus One",
+ "service.vendor:String=The Apache Software Foundation",
+ "sling.servlet.prefix:Integer=-1",
+ "sling.servlet.resourceTypes:String=sling/servlet/default",
+ "sling.servlet.extensions:String=TEST_EXT_3",
+ "sling.servlet.extensions:String=TEST_EXT_4"
+ })
@SuppressWarnings("serial")
public class PrefixServletMinusOne extends TestServlet {
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PrefixServletZero.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PrefixServletZero.java
index a3fdb16..71609d3 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PrefixServletZero.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PrefixServletZero.java
@@ -16,23 +16,22 @@
*/
package org.apache.sling.launchpad.testservices.servlets;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
+import org.osgi.service.component.annotations.Component;
/** Example/test Sling Servlet using a prefix to demonstrate how
* PrefixServletZero overrides PrefixServletMinusOne
*/
-@Component(immediate=true, metatype=false)
-@Service(value=javax.servlet.Servlet.class)
-@Properties({
- @Property(name="service.description", value="Prefix Test Servlet Zero"),
- @Property(name="service.vendor", value="The Apache Software Foundation"),
- @Property(name="sling.servlet.prefix", intValue=0),
- @Property(name="sling.servlet.resourceTypes", value="sling/servlet/default"),
- @Property(name="sling.servlet.extensions", value={ "TEST_EXT_3", "TEST_EXT_5" })
-})
+@Component(
+ immediate=true,
+ service = javax.servlet.Servlet.class,
+ property = {
+ "service.description:String=Prefix Test Servlet Zero",
+ "service.vendor:String=The Apache Software Foundation",
+ "sling.servlet.prefix:Integer=0",
+ "sling.servlet.resourceTypes:String=sling/servlet/default",
+ "sling.servlet.extensions:String=TEST_EXT_3",
+ "sling.servlet.extensions:String=TEST_EXT_5"
+ })
@SuppressWarnings("serial")
public class PrefixServletZero extends TestServlet {
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PutMethodServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PutMethodServlet.java
index 6f206e7..50e7337 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/PutMethodServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/PutMethodServlet.java
@@ -20,24 +20,22 @@
import javax.servlet.ServletException;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
+import org.osgi.service.component.annotations.Component;
/** Example/test Sling Servlet registered for the PUT method
* on a specific resource type
*/
-@Component(immediate=true, metatype=false)
-@Service(value=javax.servlet.Servlet.class)
-@Properties({
- @Property(name="service.description", value="Put Method Test Servlet"),
- @Property(name="service.vendor", value="The Apache Software Foundation"),
- @Property(name="sling.servlet.methods", value="PUT"),
- @Property(name="sling.servlet.resourceTypes", value="LAUNCHPAD_TEST_ResourceType")
-})
+@Component(
+ immediate=true,
+ service = javax.servlet.Servlet.class,
+ property = {
+ "service.description:String=Put Method Test Servlet",
+ "service.vendor:String=The Apache Software Foundation",
+ "sling.servlet.methods:String=PUT",
+ "sling.servlet.resourceTypes:String=LAUNCHPAD_TEST_ResourceType"
+ })
@SuppressWarnings("serial")
public class PutMethodServlet extends TestServlet {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/R6WhiteboardServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/R6WhiteboardServlet.java
index ad164e2..38d1898 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/R6WhiteboardServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/R6WhiteboardServlet.java
@@ -23,21 +23,18 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
+import org.osgi.service.component.annotations.Component;
/**
* Example Sling servlets registered using the R6 HTTP Whiteboard
*
*/
-@Service(javax.servlet.Servlet.class)
-@Component
-@Properties({
- @Property(name="osgi.http.whiteboard.servlet.pattern", value="/whiteboard_r6"),
- @Property(name="osgi.http.whiteboard.context.select", value="(osgi.http.whiteboard.context.name=org.apache.sling)"),
-})
+@Component(
+ service = javax.servlet.Servlet.class,
+ property = {
+ "osgi.http.whiteboard.servlet.pattern:String=/whiteboard_r6",
+ "osgi.http.whiteboard.context.select:String=(osgi.http.whiteboard.context.name=org.apache.sling)"
+ })
public class R6WhiteboardServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/RepositoryDescriptorsServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/RepositoryDescriptorsServlet.java
index 22a0214..a1bc7e7 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/RepositoryDescriptorsServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/RepositoryDescriptorsServlet.java
@@ -17,29 +17,28 @@
package org.apache.sling.launchpad.testservices.servlets;
import java.io.IOException;
-import java.util.Arrays;
import javax.jcr.Repository;
import javax.servlet.ServletException;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
import org.apache.felix.utils.json.JSONWriter;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
/** Test servlet that dumps our repository descriptors */
@SuppressWarnings("serial")
-@Component(immediate = true)
-@Service
-@Properties({ @Property(name = "service.description", value = "Repository Descriptors Servlet"),
- @Property(name = "service.vendor", value = "The Apache Software Foundation"),
- @Property(name = "sling.servlet.paths", value = "/testing/RepositoryDescriptors"),
- @Property(name = "sling.servlet.extensions", value = "json")})
+@Component(
+ immediate = true,
+ service = javax.servlet.Servlet.class,
+ property = {
+ "service.description:String=Repository Descriptors Servlet",
+ "service.vendor:String=The Apache Software Foundation",
+ "sling.servlet.paths:String=/testing/RepositoryDescriptors",
+ "sling.servlet.extensions:String=json"
+ })
public class RepositoryDescriptorsServlet extends SlingSafeMethodsServlet {
@Reference
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/RequestUriOptingServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/RequestUriOptingServlet.java
index 48ed8ed..f678c7d 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/RequestUriOptingServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/RequestUriOptingServlet.java
@@ -16,25 +16,22 @@
*/
package org.apache.sling.launchpad.testservices.servlets;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.servlets.OptingServlet;
+import org.osgi.service.component.annotations.Component;
/** OptingServlet that uses the RequestURI to opt in */
-@Component(immediate=true, metatype=false)
-@Service(value=javax.servlet.Servlet.class)
-@Properties({
- @Property(name="service.description", value="Request URI Opting Test Servlet"),
- @Property(name="service.vendor", value="The Apache Software Foundation"),
- @Property(name="sling.servlet.resourceTypes", value={
- "sling/servlet/default",
- "sling/nonexisting"
- }),
- @Property(name="sling.servlet.methods", value={"POST","GET"})
-})
+@Component(
+ immediate=true,
+ service = javax.servlet.Servlet.class,
+ property = {
+ "service.description:String=Request URI Opting Test Servlet",
+ "service.vendor:String=The Apache Software Foundation",
+ "sling.servlet.resourceTypes:String=sling/servlet/default",
+ "sling.servlet.resourceTypes:String=sling/nonexisting",
+ "sling.servlet.methods:String=POST",
+ "sling.servlet.methods:String=GET",
+ })
@SuppressWarnings("serial")
public class RequestUriOptingServlet extends TestServlet implements OptingServlet {
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/SaxServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/SaxServlet.java
index 49cafed..6a88c34 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/SaxServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/SaxServlet.java
@@ -21,16 +21,17 @@
import java.io.IOException;
import java.io.StringReader;
+import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
-import javax.xml.xpath.XPathExpressionException;
-import org.apache.felix.scr.annotations.sling.SlingServlet;
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.SlingServletPathsStrict;
+import org.osgi.service.component.annotations.Component;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@@ -40,7 +41,10 @@
* The <tt>SaxServlet</tt> evaluates a simple XML document using a SAX handler
*
*/
-@SlingServlet(paths = "/bin/sax", extensions = "xml")
+@Component(service=Servlet.class)
+@SlingServletPathsStrict(
+ paths = "/bin/sax",
+ extensions = "xml")
public class SaxServlet extends SlingAllMethodsServlet {
private static final long serialVersionUID = 1L;
@@ -60,9 +64,7 @@
response.setContentType("text/plain");
response.getWriter().write(handler.getValue());
- } catch (ParserConfigurationException e) {
- throw new ServletException(e.getMessage(), e);
- } catch (SAXException e) {
+ } catch (SAXException | ParserConfigurationException e) {
throw new ServletException(e.getMessage(), e);
}
}
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/SelectorServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/SelectorServlet.java
index dc0537f..2f49eeb 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/SelectorServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/SelectorServlet.java
@@ -16,15 +16,18 @@
*/
package org.apache.sling.launchpad.testservices.servlets;
-import org.apache.felix.scr.annotations.sling.SlingServlet;
+import javax.servlet.Servlet;
+
+import org.apache.sling.servlets.annotations.SlingServletResourceTypes;
+import org.osgi.service.component.annotations.Component;
/** Example/test Sling Servlet registered with two selectors */
-@SlingServlet(
- resourceTypes="sling/servlet/default",
- methods={"GET","POST"},
- selectors={"TEST_SEL_1","TEST_SEL_2"},
- extensions="txt"
- )
+@Component(service=Servlet.class)
+@SlingServletResourceTypes(
+ resourceTypes = "sling/servlet/default",
+ methods = {"GET","POST"},
+ selectors = {"TEST_SEL_1","TEST_SEL_2"},
+ extensions = "txt")
@SuppressWarnings("serial")
public class SelectorServlet extends TestServlet {
}
diff --git a/src/main/java/org/apache/sling/launchpad/testservices/servlets/XpathServlet.java b/src/main/java/org/apache/sling/launchpad/testservices/servlets/XpathServlet.java
index 3947f81..edf516b 100644
--- a/src/main/java/org/apache/sling/launchpad/testservices/servlets/XpathServlet.java
+++ b/src/main/java/org/apache/sling/launchpad/testservices/servlets/XpathServlet.java
@@ -21,22 +21,27 @@
import java.io.IOException;
import java.io.StringReader;
+import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
-import org.apache.felix.scr.annotations.sling.SlingServlet;
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.SlingServletPathsStrict;
+import org.osgi.service.component.annotations.Component;
import org.xml.sax.InputSource;
/**
* The <tt>XpathServlet</tt> evaluates a simple XML document using an XPath expression
*
*/
-@SlingServlet(paths = "/bin/xpath", extensions = "xml")
+@Component(service=Servlet.class)
+@SlingServletPathsStrict(
+ paths = "/bin/xpath",
+ extensions = "xml")
public class XpathServlet extends SlingAllMethodsServlet {
private static final long serialVersionUID = 1L;