You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cs...@apache.org on 2018/01/30 08:17:45 UTC
[1/2] aries-jax-rs-whiteboard git commit: Harmonize capitalization
Repository: aries-jax-rs-whiteboard
Updated Branches:
refs/heads/master f2b2bf187 -> 8ef88acf2
Harmonize capitalization
Project: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/repo
Commit: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/commit/0c2fbebf
Tree: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/tree/0c2fbebf
Diff: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/diff/0c2fbebf
Branch: refs/heads/master
Commit: 0c2fbebf649018aa9e8593af1c6bed2c0bb379a0
Parents: f2b2bf1
Author: Carlos Sierra <cs...@apache.org>
Authored: Mon Jan 29 14:28:54 2018 +0100
Committer: Carlos Sierra <cs...@apache.org>
Committed: Mon Jan 29 14:28:54 2018 +0100
----------------------------------------------------------------------
.../jax/rs/whiteboard/internal/AriesJaxRSServiceRuntime.java | 2 +-
.../apache/aries/jax/rs/whiteboard/internal/Whiteboard.java | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/0c2fbebf/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/AriesJaxRSServiceRuntime.java
----------------------------------------------------------------------
diff --git a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/AriesJaxRSServiceRuntime.java b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/AriesJaxRSServiceRuntime.java
index 69e78b0..c08ee69 100644
--- a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/AriesJaxRSServiceRuntime.java
+++ b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/AriesJaxRSServiceRuntime.java
@@ -55,7 +55,7 @@ import org.osgi.service.jaxrs.whiteboard.JaxrsWhiteboardConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class AriesJaxRSServiceRuntime implements JaxrsServiceRuntime {
+public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
private static final long serialVersionUID = 1L;
private static final Logger _LOGGER = LoggerFactory.getLogger(
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/0c2fbebf/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java
----------------------------------------------------------------------
diff --git a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java
index 7ceacb8..01ce73c 100644
--- a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java
+++ b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java
@@ -66,7 +66,7 @@ import java.util.function.Function;
import java.util.function.Supplier;
import static java.lang.String.format;
-import static org.apache.aries.jax.rs.whiteboard.internal.AriesJaxRSServiceRuntime.getApplicationName;
+import static org.apache.aries.jax.rs.whiteboard.internal.AriesJaxrsServiceRuntime.getApplicationName;
import static org.apache.aries.jax.rs.whiteboard.internal.Utils.canonicalize;
import static org.apache.aries.jax.rs.whiteboard.internal.Utils.generateApplicationName;
import static org.apache.aries.jax.rs.whiteboard.internal.Utils.getProperties;
@@ -126,7 +126,7 @@ public class Whiteboard {
private static final Function<CachingServiceReference<Application>, String>
APPLICATION_NAME = sr -> getApplicationName(sr::getProperty);
- private final AriesJaxRSServiceRuntime _runtime;
+ private final AriesJaxrsServiceRuntime _runtime;
private final Map<String, ?> _configurationMap;
private final BundleContext _bundleContext;
private final ServiceRegistrationChangeCounter _counter;
@@ -140,7 +140,7 @@ public class Whiteboard {
BundleContext bundleContext, Dictionary<String, ?> configuration) {
_bundleContext = bundleContext;
- _runtime = new AriesJaxRSServiceRuntime();
+ _runtime = new AriesJaxrsServiceRuntime();
_configurationMap = Maps.from(configuration);
_endpoints = new ArrayList<>();
_runtimeRegistration = registerJaxRSServiceRuntime(
[2/2] aries-jax-rs-whiteboard git commit: Add support for static
resources method information
Posted by cs...@apache.org.
Add support for static resources method information
Project: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/repo
Commit: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/commit/8ef88acf
Tree: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/tree/8ef88acf
Diff: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/diff/8ef88acf
Branch: refs/heads/master
Commit: 8ef88acf2db60b1b6ed232d07c3d88a4ecb217f2
Parents: 0c2fbeb
Author: Carlos Sierra <cs...@apache.org>
Authored: Tue Jan 30 09:16:39 2018 +0100
Committer: Carlos Sierra <cs...@apache.org>
Committed: Tue Jan 30 09:16:39 2018 +0100
----------------------------------------------------------------------
jax-rs.itests/src/main/java/test/JaxrsTest.java | 50 ++++++++++-
.../internal/AriesJaxRSServiceRuntime.java | 93 ++++++++++++++++----
.../internal/CXFJaxRsServiceRegistrator.java | 39 ++++++--
.../jax/rs/whiteboard/internal/Whiteboard.java | 47 +++++-----
.../introspection/ClassIntrospector.java | 5 +-
.../introspection/ClassIntrospectorTest.java | 24 +++--
6 files changed, 204 insertions(+), 54 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/8ef88acf/jax-rs.itests/src/main/java/test/JaxrsTest.java
----------------------------------------------------------------------
diff --git a/jax-rs.itests/src/main/java/test/JaxrsTest.java b/jax-rs.itests/src/main/java/test/JaxrsTest.java
index 9bb74c7..d2aa9f3 100644
--- a/jax-rs.itests/src/main/java/test/JaxrsTest.java
+++ b/jax-rs.itests/src/main/java/test/JaxrsTest.java
@@ -121,6 +121,29 @@ public class JaxrsTest extends TestHelper {
assertEquals("Hello application",
response.readEntity(String.class));
+
+ RuntimeDTO runtimeDTO = _runtime.getRuntimeDTO();
+
+ ApplicationDTO[] applicationDTOs = runtimeDTO.applicationDTOs;
+
+ assertEquals(1, applicationDTOs.length);
+
+ ApplicationDTO applicationDTO = applicationDTOs[0];
+ ResourceMethodInfoDTO[] resourceMethods =
+ applicationDTO.resourceMethods;
+
+ assertEquals(1, resourceMethods.length);
+
+ ResourceMethodInfoDTO resourceMethod = resourceMethods[0];
+ assertEquals(HttpMethod.GET, resourceMethod.method);
+ assertEquals("/", resourceMethod.path);
+ assertArrayEquals(
+ new String[]{MediaType.WILDCARD}, resourceMethod.consumingMimeType);
+ assertArrayEquals(
+ new String[]{MediaType.TEXT_PLAIN},
+ resourceMethod.producingMimeType);
+ assertArrayEquals(new String[0], resourceMethod.nameBindings);
+
}
@Test
@@ -193,6 +216,29 @@ public class JaxrsTest extends TestHelper {
assertEquals(
"Hello extended",
webTarget.request().get().readEntity(String.class));
+
+ RuntimeDTO runtimeDTO = _runtime.getRuntimeDTO();
+
+ ApplicationDTO[] applicationDTOs = runtimeDTO.applicationDTOs;
+
+ assertEquals(1, applicationDTOs.length);
+
+ ApplicationDTO applicationDTO = applicationDTOs[0];
+
+ ResourceMethodInfoDTO[] resourceMethods =
+ applicationDTO.resourceMethods;
+
+ assertEquals(1, resourceMethods.length);
+
+ ResourceMethodInfoDTO resourceMethod = resourceMethods[0];
+ assertEquals(HttpMethod.GET, resourceMethod.method);
+ assertEquals("/", resourceMethod.path);
+ assertArrayEquals(
+ new String[]{MediaType.WILDCARD}, resourceMethod.consumingMimeType);
+ assertArrayEquals(
+ new String[]{MediaType.TEXT_PLAIN},
+ resourceMethod.producingMimeType);
+ assertArrayEquals(new String[0], resourceMethod.nameBindings);
}
@Test
@@ -653,12 +699,12 @@ public class JaxrsTest extends TestHelper {
ServiceRegistration<?> erroredRegistration = registerApplication(
new TestApplication() {
-
+
@Override
public Set<Object> getSingletons() {
throw new RuntimeException();
}
-
+
}, "service.ranking", 10);
runtimeDTO = getRuntimeDTO();
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/8ef88acf/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/AriesJaxRSServiceRuntime.java
----------------------------------------------------------------------
diff --git a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/AriesJaxRSServiceRuntime.java b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/AriesJaxRSServiceRuntime.java
index c08ee69..ebfeb1a 100644
--- a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/AriesJaxRSServiceRuntime.java
+++ b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/AriesJaxRSServiceRuntime.java
@@ -27,7 +27,6 @@ import static org.osgi.service.jaxrs.whiteboard.JaxrsWhiteboardConstants.JAX_RS_
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -50,6 +49,7 @@ import org.osgi.service.jaxrs.runtime.dto.FailedApplicationDTO;
import org.osgi.service.jaxrs.runtime.dto.FailedExtensionDTO;
import org.osgi.service.jaxrs.runtime.dto.FailedResourceDTO;
import org.osgi.service.jaxrs.runtime.dto.ResourceDTO;
+import org.osgi.service.jaxrs.runtime.dto.ResourceMethodInfoDTO;
import org.osgi.service.jaxrs.runtime.dto.RuntimeDTO;
import org.osgi.service.jaxrs.whiteboard.JaxrsWhiteboardConstants;
import org.slf4j.Logger;
@@ -338,24 +338,32 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
return _shadowedApplications.remove(serviceReference);
}
- public Map<String, Object> setApplicationForPath(
- String path, Map<String, Object> properties) {
+ public ApplicationRuntimeInformation setApplicationForPath(
+ String path,
+ CachingServiceReference<Application> serviceReference,
+ CXFJaxRsServiceRegistrator cxfJaxRsServiceRegistrator) {
+
+ ApplicationRuntimeInformation ari = new ApplicationRuntimeInformation(
+ serviceReference, cxfJaxRsServiceRegistrator);
return _applications.compute(
path,
(__, prop) -> {
- if (DEFAULT_NAME.equals(getApplicationName(properties::get))) {
- _defaultApplicationProperties = properties;
+ if (DEFAULT_NAME.equals(
+ getApplicationName(
+ ari._cachingServiceReference::getProperty))) {
+
+ _defaultApplicationProperties = ari;
}
- return properties;
+ return ari;
});
}
- public Map<String, Object> unsetApplicationForPath(String path) {
+ public ApplicationRuntimeInformation unsetApplicationForPath(String path) {
return _applications.remove(path);
}
- private ConcurrentHashMap<String, Map<String, Object>>
+ private ConcurrentHashMap<String, ApplicationRuntimeInformation>
_applications = new ConcurrentHashMap<>();
private ConcurrentHashMap<String, Collection<EndpointRuntimeInformation>>
_applicationEndpoints = new ConcurrentHashMap<>();
@@ -389,7 +397,7 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
new CopyOnWriteArrayList<>();
private Collection<CachingServiceReference<?>> _invalidExtensions =
new CopyOnWriteArrayList<>();
- private volatile Map<String, Object> _defaultApplicationProperties;
+ private volatile ApplicationRuntimeInformation _defaultApplicationProperties;
private static FailedApplicationDTO buildFailedApplicationDTO(
int reason, CachingServiceReference<Application> serviceReference) {
@@ -467,7 +475,10 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
resourceDTO.resourceMethods = ClassIntrospector.getResourceMethodInfos(
endpointRuntimeInformation._class,
- endpointRuntimeInformation._bus);
+ endpointRuntimeInformation._bus
+ ).toArray(
+ new ResourceMethodInfoDTO[0]
+ );
return resourceDTO;
}
@@ -490,7 +501,8 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
private Stream<ApplicationDTO> applicationDTOStream() {
return _applications.values().stream().
- filter(p -> !(".default".equals(p.get(JAX_RS_NAME)))).
+ filter(p -> !(".default".equals(
+ p._cachingServiceReference.getProperty(JAX_RS_NAME)))).
map(
this::buildApplicationDTO
);
@@ -511,13 +523,16 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
}
private ApplicationDTO buildApplicationDTO(
- Map<String, Object> properties) {
+ ApplicationRuntimeInformation ari) {
ApplicationDTO applicationDTO = new ApplicationDTO(){};
- applicationDTO.name = getApplicationName(properties::get);
- applicationDTO.base = getApplicationBase(properties::get);
- applicationDTO.serviceId = (Long)properties.get("service.id");
+ applicationDTO.name = getApplicationName(
+ ari._cachingServiceReference::getProperty);
+ applicationDTO.base = getApplicationBase(
+ ari._cachingServiceReference::getProperty);
+ applicationDTO.serviceId =
+ (Long)ari._cachingServiceReference.getProperty("service.id");
applicationDTO.resourceDTOs = getApplicationEndpointsStream(
applicationDTO.name).toArray(
@@ -529,6 +544,24 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
ExtensionDTO[]::new
);
+ CXFJaxRsServiceRegistrator cxfJaxRsServiceRegistrator =
+ ari._cxfJaxRsServiceRegistrator;
+
+ Bus bus = cxfJaxRsServiceRegistrator.getBus();
+ Iterable<Class<?>> resourceClasses =
+ cxfJaxRsServiceRegistrator.getStaticResourceClasses();
+
+ ArrayList<ResourceMethodInfoDTO> resourceMethodInfoDTOS =
+ new ArrayList<>();
+
+ for (Class<?> resourceClass : resourceClasses) {
+ resourceMethodInfoDTOS.addAll(
+ ClassIntrospector.getResourceMethodInfos(resourceClass, bus));
+ }
+
+ applicationDTO.resourceMethods = resourceMethodInfoDTOS.toArray(
+ new ResourceMethodInfoDTO[0]);
+
return applicationDTO;
}
@@ -700,4 +733,34 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
Class<?> _class;
}
+ private static class ApplicationRuntimeInformation {
+ public ApplicationRuntimeInformation(
+ CachingServiceReference cachingServiceReference,
+ CXFJaxRsServiceRegistrator cxfJaxRsServiceRegistrator) {
+
+ _cachingServiceReference = cachingServiceReference;
+ _cxfJaxRsServiceRegistrator = cxfJaxRsServiceRegistrator;
+ }
+
+ @Override
+ public int hashCode() {
+ return _cachingServiceReference.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ EndpointRuntimeInformation that = (EndpointRuntimeInformation) o;
+
+ return _cachingServiceReference.equals(
+ that._cachingServiceReference);
+ }
+
+ CachingServiceReference _cachingServiceReference;
+ CXFJaxRsServiceRegistrator _cxfJaxRsServiceRegistrator;
+
+ }
+
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/8ef88acf/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/CXFJaxRsServiceRegistrator.java
----------------------------------------------------------------------
diff --git a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/CXFJaxRsServiceRegistrator.java b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/CXFJaxRsServiceRegistrator.java
index 2adf92b..a92f714 100644
--- a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/CXFJaxRsServiceRegistrator.java
+++ b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/CXFJaxRsServiceRegistrator.java
@@ -23,6 +23,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.TreeSet;
import java.util.stream.Collectors;
@@ -40,6 +41,7 @@ import org.apache.aries.osgi.functional.CachingServiceReference;
import org.apache.cxf.Bus;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
+import org.apache.cxf.jaxrs.JAXRSServiceFactoryBean;
import org.apache.cxf.jaxrs.ext.ResourceComparator;
import org.apache.cxf.jaxrs.impl.ConfigurableImpl;
import org.apache.cxf.jaxrs.lifecycle.ResourceProvider;
@@ -159,6 +161,7 @@ public class CXFJaxRsServiceRegistrator {
private Map<String, Object> _properties;
private volatile boolean _closed = false;
private Server _server;
+ private JAXRSServerFactoryBean _jaxRsServerFactoryBean;
private static class ComparableResourceComparator
implements ResourceComparator {
@@ -217,10 +220,10 @@ public class CXFJaxRsServiceRegistrator {
return;
}
- JAXRSServerFactoryBean jaxRsServerFactoryBean = createEndpoint(
+ _jaxRsServerFactoryBean = createEndpoint(
_application, JAXRSServerFactoryBean.class);
- jaxRsServerFactoryBean.setBus(_bus);
+ _jaxRsServerFactoryBean.setBus(_bus);
_bus.setExtension(
context -> {
@@ -237,9 +240,9 @@ public class CXFJaxRsServiceRegistrator {
},
ServerConfigurableFactory.class);
- jaxRsServerFactoryBean.setStart(false);
+ _jaxRsServerFactoryBean.setStart(false);
- jaxRsServerFactoryBean.setProvider(
+ _jaxRsServerFactoryBean.setProvider(
(Feature) featureContext -> {
for (ServiceTuple<?> provider : _providers) {
CachingServiceReference<?> cachingServiceReference =
@@ -290,17 +293,17 @@ public class CXFJaxRsServiceRegistrator {
});
for (ResourceProvider resourceProvider: _services) {
- jaxRsServerFactoryBean.setResourceProvider(resourceProvider);
+ _jaxRsServerFactoryBean.setResourceProvider(resourceProvider);
}
- if (jaxRsServerFactoryBean.getResourceClasses().isEmpty()) {
+ if (_jaxRsServerFactoryBean.getResourceClasses().isEmpty()) {
return;
}
- jaxRsServerFactoryBean.setResourceComparator(
+ _jaxRsServerFactoryBean.setResourceComparator(
new ComparableResourceComparator());
- _server = jaxRsServerFactoryBean.create();
+ _server = _jaxRsServerFactoryBean.create();
ApplicationInfo applicationInfo = (ApplicationInfo)
_server.getEndpoint().get(Application.class.getName());
@@ -312,4 +315,24 @@ public class CXFJaxRsServiceRegistrator {
_server.start();
}
+ protected Iterable<Class<?>> getStaticResourceClasses() {
+ JAXRSServiceFactoryBean serviceFactory =
+ _jaxRsServerFactoryBean.getServiceFactory();
+
+ List<ClassResourceInfo> classResourceInfo =
+ serviceFactory.getClassResourceInfo();
+
+ ArrayList<Class<?>> classes = new ArrayList<>();
+
+ for (ClassResourceInfo resourceInfo : classResourceInfo) {
+ if (!ServiceReferenceResourceProvider.class.isAssignableFrom(
+ resourceInfo.getResourceProvider().getClass())) {
+
+ classes.add(resourceInfo.getResourceClass());
+ }
+ }
+
+ return classes;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/8ef88acf/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java
----------------------------------------------------------------------
diff --git a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java
index 01ce73c..17e9d80 100644
--- a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java
+++ b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java
@@ -257,17 +257,19 @@ public class Whiteboard {
).then(
nothing()
)
- ).flatMap(
- this::deployApplication
- ).map(
- ServiceTuple::getCachingServiceReference
- ).map(
- Utils::getProperties
- ).foreach(
- p -> _runtime.setApplicationForPath(
- getApplicationBase(p::get), p),
- p -> _runtime.unsetApplicationForPath(
- getApplicationBase(p::get))
+ ).flatMap(at ->
+ deployApplication(at).
+ foreach(
+ registrator ->
+ _runtime.setApplicationForPath(
+ getApplicationBase(
+ at.getCachingServiceReference()::getProperty),
+ at.getCachingServiceReference(), registrator),
+ registrator ->
+ _runtime.unsetApplicationForPath(
+ getApplicationBase(
+ at.getCachingServiceReference()::getProperty))
+ )
);
}
@@ -300,7 +302,7 @@ public class Whiteboard {
);
}
- private OSGi<ServiceTuple<Application>> deployApplication(
+ private OSGi<CXFJaxRsServiceRegistrator> deployApplication(
ServiceTuple<Application> tuple) {
return
@@ -318,21 +320,24 @@ public class Whiteboard {
return properties;
}).flatMap(properties ->
- deployRegistrator(bus, tuple, properties).then(
- registerCXFServletService(bus, properties)).then(
- just(tuple)
- )));
+ deployRegistrator(bus, tuple, properties).flatMap(registrator ->
+ registerCXFServletService(bus, properties).then(
+ just(registrator)
+ ))));
}
- private OSGi<?> deployRegistrator(
- Bus bus, ServiceTuple<Application> tuple, Map<String, Object> props) {
+ private OSGi<CXFJaxRsServiceRegistrator> deployRegistrator(
+ Bus bus, ServiceTuple<Application> tuple,
+ Map<String, Object> props) {
return
- just(() -> new CXFJaxRsServiceRegistrator(
- bus, tuple.getService(), props)).
+ just(() ->
+ new CXFJaxRsServiceRegistrator(bus, tuple.getService(), props)).
flatMap(registrator ->
onClose(registrator::close).then(
- register(CXFJaxRsServiceRegistrator.class, registrator, props)));
+ register(CXFJaxRsServiceRegistrator.class, registrator, props).then(
+ just(registrator)
+ )));
}
private OSGi<CachingServiceReference<Object>>
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/8ef88acf/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/introspection/ClassIntrospector.java
----------------------------------------------------------------------
diff --git a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/introspection/ClassIntrospector.java b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/introspection/ClassIntrospector.java
index 6a3ff7f..e596b30 100644
--- a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/introspection/ClassIntrospector.java
+++ b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/introspection/ClassIntrospector.java
@@ -29,6 +29,7 @@ import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import java.nio.file.Paths;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
@@ -41,7 +42,7 @@ public class ClassIntrospector {
private static final List<MediaType> _ALL_TYPES_LIST =
Collections.singletonList(JAXRSUtils.ALL_TYPES);
- public static ResourceMethodInfoDTO[] getResourceMethodInfos(
+ public static Collection<ResourceMethodInfoDTO> getResourceMethodInfos(
Class<?> clazz, Bus bus) {
ClassResourceInfo classResourceInfo =
@@ -52,7 +53,7 @@ public class ClassIntrospector {
new HashSet<>(), "/", null, _ALL_TYPES_LIST, _ALL_TYPES_LIST,
Collections.emptySet(), true, classResourceInfo);
- return convert.toArray(ResourceMethodInfoDTO[]::new);
+ return convert.collect(Collectors.toList());
}
private static Stream<ResourceMethodInfoDTO> convert(
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/8ef88acf/jax-rs.whiteboard/src/test/java/org/apache/aries/jax/rs/whiteboard/internal/introspection/ClassIntrospectorTest.java
----------------------------------------------------------------------
diff --git a/jax-rs.whiteboard/src/test/java/org/apache/aries/jax/rs/whiteboard/internal/introspection/ClassIntrospectorTest.java b/jax-rs.whiteboard/src/test/java/org/apache/aries/jax/rs/whiteboard/internal/introspection/ClassIntrospectorTest.java
index de35ab6..2cfea49 100644
--- a/jax-rs.whiteboard/src/test/java/org/apache/aries/jax/rs/whiteboard/internal/introspection/ClassIntrospectorTest.java
+++ b/jax-rs.whiteboard/src/test/java/org/apache/aries/jax/rs/whiteboard/internal/introspection/ClassIntrospectorTest.java
@@ -49,7 +49,9 @@ public class ClassIntrospectorTest {
Bus bus = BusFactory.getDefaultBus(true);
ResourceMethodInfoDTO[] resourceMethodInfoDTOS =
- ClassIntrospector.getResourceMethodInfos(PlainResource.class, bus);
+ ClassIntrospector.getResourceMethodInfos(PlainResource.class, bus).toArray(
+ new ResourceMethodInfoDTO[0]
+ );
assertEquals(1, resourceMethodInfoDTOS.length);
@@ -71,7 +73,9 @@ public class ClassIntrospectorTest {
ResourceMethodInfoDTO[] resourceMethodInfoDTOS =
ClassIntrospector.getResourceMethodInfos(
- PlainResourceSeveralOperationsWithNameBinding.class, bus);
+ PlainResourceSeveralOperationsWithNameBinding.class, bus).toArray(
+ new ResourceMethodInfoDTO[0]
+ );
assertEquals(2, resourceMethodInfoDTOS.length);
@@ -108,7 +112,9 @@ public class ClassIntrospectorTest {
ResourceMethodInfoDTO[] resourceMethodInfoDTOS =
ClassIntrospector.getResourceMethodInfos(
- PlainResourceSeveralOperations.class, bus);
+ PlainResourceSeveralOperations.class, bus).toArray(
+ new ResourceMethodInfoDTO[0]
+ );
assertEquals(2, resourceMethodInfoDTOS.length);
@@ -140,7 +146,9 @@ public class ClassIntrospectorTest {
ResourceMethodInfoDTO[] resourceMethodInfoDTOS =
ClassIntrospector.getResourceMethodInfos(
- PlainResourceSeveralOperationsCommonPath.class, bus);
+ PlainResourceSeveralOperationsCommonPath.class, bus).toArray(
+ new ResourceMethodInfoDTO[0]
+ );
assertEquals(2, resourceMethodInfoDTOS.length);
@@ -172,7 +180,9 @@ public class ClassIntrospectorTest {
ResourceMethodInfoDTO[] resourceMethodInfoDTOS =
ClassIntrospector.getResourceMethodInfos(
- PlainResourceSeveralOperationsDifferentPath.class, bus);
+ PlainResourceSeveralOperationsDifferentPath.class, bus).toArray(
+ new ResourceMethodInfoDTO[0]
+ );
assertEquals(2, resourceMethodInfoDTOS.length);
@@ -204,7 +214,9 @@ public class ClassIntrospectorTest {
ResourceMethodInfoDTO[] resourceMethodInfoDTOS =
ClassIntrospector.getResourceMethodInfos(
- ResourceWithSubResource.class, bus);
+ ResourceWithSubResource.class, bus).toArray(
+ new ResourceMethodInfoDTO[0]
+ );
assertEquals(5, resourceMethodInfoDTOS.length);