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/02/16 16:52:40 UTC
[1/5] aries-jax-rs-whiteboard git commit: Not needed
Repository: aries-jax-rs-whiteboard
Updated Branches:
refs/heads/master 4d04b13b3 -> 082b64a6f
Not needed
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/d91f87ae
Tree: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/tree/d91f87ae
Diff: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/diff/d91f87ae
Branch: refs/heads/master
Commit: d91f87ae6a3a72bb1ff956ec31c8a49f100ff667
Parents: 4d04b13
Author: Carlos Sierra <cs...@apache.org>
Authored: Thu Feb 15 16:01:03 2018 +0100
Committer: Carlos Sierra <cs...@apache.org>
Committed: Thu Feb 15 16:01:03 2018 +0100
----------------------------------------------------------------------
.../rs/whiteboard/internal/introspection/ClassIntrospector.java | 3 ---
1 file changed, 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/d91f87ae/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 968eaef..50ac499 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
@@ -44,9 +44,6 @@ import java.util.stream.Stream;
public class ClassIntrospector {
- private static final List<MediaType> _ALL_TYPES_LIST =
- Collections.singletonList(JAXRSUtils.ALL_TYPES);
-
public static Collection<ResourceMethodInfoDTO> getResourceMethodInfos(
Class<?> clazz, Bus bus) {
[2/5] aries-jax-rs-whiteboard git commit: Fully implement extension
runtime DTO
Posted by cs...@apache.org.
Fully implement extension runtime DTO
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/872fc001
Tree: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/tree/872fc001
Diff: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/diff/872fc001
Branch: refs/heads/master
Commit: 872fc0010fe1d1960d6b46bb00ebd16426775d2a
Parents: d91f87a
Author: Carlos Sierra <cs...@apache.org>
Authored: Fri Feb 16 12:41:59 2018 +0100
Committer: Carlos Sierra <cs...@apache.org>
Committed: Fri Feb 16 12:41:59 2018 +0100
----------------------------------------------------------------------
.../internal/AriesJaxrsServiceRuntime.java | 191 +++++++++++++++----
.../jax/rs/whiteboard/internal/Whiteboard.java | 5 +-
2 files changed, 158 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/872fc001/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 a54accd..2c1f082 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,18 +27,27 @@ 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.HashMap;
+import java.util.HashSet;
+import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.function.BiFunction;
+import java.util.stream.Collectors;
import java.util.stream.Stream;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Produces;
import javax.ws.rs.core.Application;
+import javax.ws.rs.core.MediaType;
import org.apache.aries.jax.rs.whiteboard.internal.Utils.PropertyHolder;
import org.apache.aries.jax.rs.whiteboard.internal.introspection.ClassIntrospector;
import org.apache.aries.osgi.functional.CachingServiceReference;
import org.apache.cxf.Bus;
+import org.apache.cxf.jaxrs.utils.AnnotationUtils;
+import org.apache.cxf.jaxrs.utils.JAXRSUtils;
import org.osgi.service.jaxrs.runtime.JaxrsServiceRuntime;
import org.osgi.service.jaxrs.runtime.dto.ApplicationDTO;
import org.osgi.service.jaxrs.runtime.dto.BaseDTO;
@@ -97,10 +106,14 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
public void addApplicationExtension(
String applicationName,
- CachingServiceReference<?> extensionImmutableServiceReference) {
+ CachingServiceReference<?> extensionImmutableServiceReference,
+ Class<?> theClass) {
_applicationExtensions.compute(
- applicationName, merger(extensionImmutableServiceReference));
+ applicationName,
+ merger(
+ new ExtensionRuntimeInformation(
+ extensionImmutableServiceReference, theClass)));
}
public void addClashingApplication(
@@ -261,15 +274,20 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
_applicationEndpoints.compute(
applicationName,
- remover(new EndpointRuntimeInformation(
+ remover(
+ new EndpointRuntimeInformation(
cachingServiceReference, null, null)));
}
public void removeApplicationExtension(
- String applicationName, CachingServiceReference<?> extensionImmutableServiceReference) {
+ String applicationName,
+ CachingServiceReference<?> extensionImmutableServiceReference) {
_applicationExtensions.computeIfPresent(
- applicationName, remover(extensionImmutableServiceReference));
+ applicationName,
+ remover(
+ new ExtensionRuntimeInformation(
+ extensionImmutableServiceReference, null)));
}
public void removeClashingApplication(
@@ -278,6 +296,12 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
_clashingApplications.remove(serviceReference);
}
+ public void removeClashingResource(
+ CachingServiceReference<?> serviceReference) {
+
+ _clashingResources.remove(serviceReference);
+ }
+
public void removeDependentApplication(
CachingServiceReference<Application> applicationReference) {
@@ -363,22 +387,19 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
public ApplicationRuntimeInformation unsetApplicationForPath(String path) {
return _applications.remove(path);
}
- private ConcurrentHashMap<String, ApplicationRuntimeInformation>
- _applications = new ConcurrentHashMap<>();
- private ConcurrentHashMap<String, Collection<EndpointRuntimeInformation>>
- _applicationEndpoints = new ConcurrentHashMap<>();
- private ConcurrentHashMap<String, Collection<CachingServiceReference<?>>>
- _applicationExtensions = new ConcurrentHashMap<>();
- private Collection<CachingServiceReference<Application>>
- _ungettableApplications = new CopyOnWriteArrayList<>();
- private Collection<CachingServiceReference<Application>> _shadowedApplications =
- new CopyOnWriteArrayList<>();
private Set<CachingServiceReference<?>> _applicationDependentExtensions =
ConcurrentHashMap.newKeySet();
private Set<CachingServiceReference<?>> _applicationDependentResources =
ConcurrentHashMap.newKeySet();
+ private ConcurrentHashMap<String, Collection<EndpointRuntimeInformation>>
+ _applicationEndpoints = new ConcurrentHashMap<>();
+ private ConcurrentHashMap<String, Collection<ExtensionRuntimeInformation>>
+ _applicationExtensions = new ConcurrentHashMap<>();
+ private ConcurrentHashMap<String, ApplicationRuntimeInformation>
+ _applications = new ConcurrentHashMap<>();
private Collection<CachingServiceReference<Application>> _clashingApplications =
new CopyOnWriteArrayList<>();
+ private volatile ApplicationRuntimeInformation _defaultApplicationProperties;
private Set<CachingServiceReference<Application>> _dependentApplications =
ConcurrentHashMap.newKeySet();
private Set<CachingServiceReference<?>> _dependentExtensions =
@@ -391,13 +412,16 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
new CopyOnWriteArrayList<>();
private Collection<CachingServiceReference<?>> _erroredExtensions =
new CopyOnWriteArrayList<>();
+ private Collection<CachingServiceReference<?>> _invalidExtensions =
+ new CopyOnWriteArrayList<>();
+ private Collection<CachingServiceReference<Application>> _shadowedApplications =
+ new CopyOnWriteArrayList<>();
+ private Collection<CachingServiceReference<Application>>
+ _ungettableApplications = new CopyOnWriteArrayList<>();
private Collection<CachingServiceReference<?>> _ungettableEndpoints =
new CopyOnWriteArrayList<>();
private Collection<CachingServiceReference<?>> _ungettableExtensions =
new CopyOnWriteArrayList<>();
- private Collection<CachingServiceReference<?>> _invalidExtensions =
- new CopyOnWriteArrayList<>();
- private volatile ApplicationRuntimeInformation _defaultApplicationProperties;
private static FailedApplicationDTO buildFailedApplicationDTO(
int reason, CachingServiceReference<Application> serviceReference) {
@@ -458,10 +482,35 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
}
private static ExtensionDTO populateExtensionDTO(
- ExtensionDTO extensionDTO,
- CachingServiceReference<?> serviceReference) {
-
- populateBaseExtensionDTO(extensionDTO, serviceReference);
+ ExtensionDTO extensionDTO, ExtensionRuntimeInformation eri) {
+
+ populateBaseExtensionDTO(extensionDTO, eri._cachingServiceReference);
+
+ Consumes consumes = AnnotationUtils.getClassAnnotation(
+ eri._class, Consumes.class);
+ Produces produces = AnnotationUtils.getClassAnnotation(
+ eri._class, Produces.class);
+ Set<String> nameBindings = AnnotationUtils.getNameBindings(
+ eri._class.getAnnotations());
+
+ extensionDTO.consumes = consumes == null ? null :
+ JAXRSUtils.getConsumeTypes(consumes).stream().
+ map(
+ MediaType::toString
+ ).toArray(
+ String[]::new
+ );
+
+ extensionDTO.produces = produces == null ? null :
+ JAXRSUtils.getProduceTypes(produces).stream().
+ map(
+ MediaType::toString
+ ).toArray(
+ String[]::new
+ );
+
+ extensionDTO.nameBindings = nameBindings == null ? null :
+ nameBindings.toArray(new String[0]);
return extensionDTO;
}
@@ -544,6 +593,51 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
ExtensionDTO[]::new
);
+ Map<String, Set<ExtensionDTO>> nameBoundExtensions =
+ new HashMap<>();
+
+ Map<ExtensionDTO, Set<ResourceDTO>> extensionResources =
+ new HashMap<>();
+
+ for (ExtensionDTO extensionDTO : applicationDTO.extensionDTOs) {
+ for (String nameBinding : extensionDTO.nameBindings) {
+ Set<ExtensionDTO> extensionDTOS =
+ nameBoundExtensions.computeIfAbsent(
+ nameBinding,
+ __ -> new HashSet<>()
+ );
+
+ extensionDTOS.add(extensionDTO);
+ }
+ }
+
+ for (ResourceDTO resourceDTO : applicationDTO.resourceDTOs) {
+ for (ResourceMethodInfoDTO resourceMethodInfo :
+ resourceDTO.resourceMethods) {
+
+ for (String nameBinding : resourceMethodInfo.nameBindings) {
+ Set<ExtensionDTO> extensionDTOS = nameBoundExtensions.get(
+ nameBinding);
+
+ if (extensionDTOS != null) {
+ for (ExtensionDTO extensionDTO : extensionDTOS) {
+ Set<ResourceDTO> resourceDTOS =
+ extensionResources.computeIfAbsent(
+ extensionDTO, __ -> new HashSet<>());
+
+ resourceDTOS.add(resourceDTO);
+ }
+ }
+ }
+ }
+ }
+
+ extensionResources.forEach(
+ (extensionDTO, resourceDTOS) ->
+ extensionDTO.filteredByName = resourceDTOS.toArray(
+ new ResourceDTO[0])
+ );
+
CxfJaxrsServiceRegistrator cxfJaxRsServiceRegistrator =
ari._cxfJaxRsServiceRegistrator;
@@ -654,12 +748,12 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
}
private Stream<ExtensionDTO> getApplicationExtensionsStream(String name) {
- Collection<CachingServiceReference<?>> applicationExtensions =
+ Collection<ExtensionRuntimeInformation> extensionRuntimeInformations =
_applicationExtensions.get(name);
- Stream<CachingServiceReference<?>> applicationExtensionStream =
- applicationExtensions != null ?
- applicationExtensions.stream() :
+ Stream<ExtensionRuntimeInformation> applicationExtensionStream =
+ extensionRuntimeInformations != null ?
+ extensionRuntimeInformations.stream() :
Stream.empty();
return
@@ -717,8 +811,7 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
public int hashCode() {
return _cachingServiceReference.hashCode();
}
-
- @Override
+ CachingServiceReference _cachingServiceReference; @Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
@@ -728,9 +821,36 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
return _cachingServiceReference.equals(
that._cachingServiceReference);
}
- CachingServiceReference _cachingServiceReference;
Bus _bus;
Class<?> _class;
+
+ }
+
+ private static class ExtensionRuntimeInformation {
+ public ExtensionRuntimeInformation(
+ CachingServiceReference<?> cachingServiceReference,
+ Class<?> aClass) {
+
+ _cachingServiceReference = cachingServiceReference;
+ _class = aClass;
+ }
+ CachingServiceReference _cachingServiceReference; @Override
+ public int hashCode() {
+ return _cachingServiceReference.hashCode();
+ }
+ Class<?> _class; @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ ExtensionRuntimeInformation that = (ExtensionRuntimeInformation) o;
+
+ return _cachingServiceReference.equals(
+ that._cachingServiceReference);
+ }
+
+
+
}
private static class ApplicationRuntimeInformation {
@@ -741,25 +861,24 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
_cachingServiceReference = cachingServiceReference;
_cxfJaxRsServiceRegistrator = cxfJaxRsServiceRegistrator;
}
-
- @Override
+ CachingServiceReference _cachingServiceReference; @Override
public int hashCode() {
return _cachingServiceReference.hashCode();
}
-
- @Override
+ CxfJaxrsServiceRegistrator _cxfJaxRsServiceRegistrator; @Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
- EndpointRuntimeInformation that = (EndpointRuntimeInformation) o;
+ ApplicationRuntimeInformation that =
+ (ApplicationRuntimeInformation) o;
return _cachingServiceReference.equals(
that._cachingServiceReference);
}
- CachingServiceReference _cachingServiceReference;
- CxfJaxrsServiceRegistrator _cxfJaxRsServiceRegistrator;
+
+
}
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/872fc001/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 0b3e122..de7ca7d 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
@@ -486,8 +486,9 @@ public class Whiteboard {
registrator::addProvider,
registrator::removeProvider
).effects(
- __ -> _runtime.addApplicationExtension(
- applicationName, serviceReference),
+ t -> _runtime.addApplicationExtension(
+ applicationName, serviceReference,
+ t.getService().getClass()),
__ -> _runtime.removeApplicationExtension(
applicationName, serviceReference)
).then(
[5/5] aries-jax-rs-whiteboard git commit: Fix application shadowing
default application
Posted by cs...@apache.org.
Fix application shadowing default application
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/082b64a6
Tree: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/tree/082b64a6
Diff: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/diff/082b64a6
Branch: refs/heads/master
Commit: 082b64a6fa22b2027ef2556dc2f8ca6fbfa22668
Parents: 27399b0
Author: Carlos Sierra <cs...@apache.org>
Authored: Fri Feb 16 17:24:08 2018 +0100
Committer: Carlos Sierra <cs...@apache.org>
Committed: Fri Feb 16 17:24:08 2018 +0100
----------------------------------------------------------------------
jax-rs.itests/src/main/java/test/JaxrsTest.java | 22 ++++++++++++++++++++
.../jax/rs/whiteboard/internal/Whiteboard.java | 2 +-
2 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/082b64a6/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 0dbd57a..f47a348 100644
--- a/jax-rs.itests/src/main/java/test/JaxrsTest.java
+++ b/jax-rs.itests/src/main/java/test/JaxrsTest.java
@@ -485,6 +485,28 @@ public class JaxrsTest extends TestHelper {
}
@Test
+ public void testApplicationShadowsDefault() {
+ assertEquals(0, getRuntimeDTO().applicationDTOs.length);
+ assertEquals(0, getRuntimeDTO().failedApplicationDTOs.length);
+
+ registerAddon(new TestAddon());
+
+ assertEquals(
+ "Hello test",
+ createDefaultTarget().path("/test").request().get(String.class));
+
+ registerApplication(
+ new TestApplication(), JAX_RS_APPLICATION_BASE, "/");
+
+ assertEquals(1, getRuntimeDTO().applicationDTOs.length);
+ assertEquals(1, getRuntimeDTO().failedApplicationDTOs.length);
+
+ assertEquals(
+ "Hello application",
+ createDefaultTarget().request().get(String.class));
+ }
+
+ @Test
public void testApplicationReplaceDefault() {
assertEquals(0, getRuntimeDTO().applicationDTOs.length);
assertEquals(0, getRuntimeDTO().failedApplicationDTOs.length);
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/082b64a6/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 de7ca7d..b74faa0 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
@@ -753,7 +753,7 @@ public class Whiteboard {
String contextName;
- if (JAX_RS_DEFAULT_APPLICATION.equals(applicationName)) {
+ if ("".equals(address)) {
contextName = HTTP_WHITEBOARD_DEFAULT_CONTEXT_NAME;
}
else {
[4/5] aries-jax-rs-whiteboard git commit: Fix bug unregistering
dependent extensions
Posted by cs...@apache.org.
Fix bug unregistering dependent extensions
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/27399b09
Tree: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/tree/27399b09
Diff: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/diff/27399b09
Branch: refs/heads/master
Commit: 27399b0964f8832e120d60822a73c44e24ba404d
Parents: 08c4cf7
Author: Carlos Sierra <cs...@apache.org>
Authored: Fri Feb 16 13:19:32 2018 +0100
Committer: Carlos Sierra <cs...@apache.org>
Committed: Fri Feb 16 13:19:32 2018 +0100
----------------------------------------------------------------------
.../aries/jax/rs/whiteboard/internal/AriesJaxrsServiceRuntime.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/27399b09/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 3c29f32..11cb1ba 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
@@ -311,7 +311,7 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
public void removeDependentExtension(
CachingServiceReference<?> cachingServiceReference) {
- _dependentExtensions.add(cachingServiceReference);
+ _dependentExtensions.remove(cachingServiceReference);
}
public void removeDependentService(CachingServiceReference<?> serviceReference) {
[3/5] aries-jax-rs-whiteboard git commit: Make namebindings also be
null when not specified
Posted by cs...@apache.org.
Make namebindings also be null when not specified
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/08c4cf71
Tree: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/tree/08c4cf71
Diff: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/diff/08c4cf71
Branch: refs/heads/master
Commit: 08c4cf71e9f5c2a23410e5e878ab950f692baf5c
Parents: 872fc00
Author: Carlos Sierra <cs...@apache.org>
Authored: Fri Feb 16 13:05:33 2018 +0100
Committer: Carlos Sierra <cs...@apache.org>
Committed: Fri Feb 16 13:05:33 2018 +0100
----------------------------------------------------------------------
jax-rs.itests/src/main/java/test/JaxrsTest.java | 6 ++---
.../internal/AriesJaxrsServiceRuntime.java | 12 +++++++++
.../introspection/ClassIntrospector.java | 8 +++---
.../introspection/ClassIntrospectorTest.java | 26 +++++++++-----------
4 files changed, 31 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/08c4cf71/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 3d70015..0dbd57a 100644
--- a/jax-rs.itests/src/main/java/test/JaxrsTest.java
+++ b/jax-rs.itests/src/main/java/test/JaxrsTest.java
@@ -144,7 +144,7 @@ public class JaxrsTest extends TestHelper {
assertArrayEquals(
new String[]{MediaType.TEXT_PLAIN},
resourceMethod.producingMimeType);
- assertArrayEquals(new String[0], resourceMethod.nameBindings);
+ assertNull(resourceMethod.nameBindings);
}
@@ -239,7 +239,7 @@ public class JaxrsTest extends TestHelper {
assertArrayEquals(
new String[]{MediaType.TEXT_PLAIN},
resourceMethod.producingMimeType);
- assertArrayEquals(new String[0], resourceMethod.nameBindings);
+ assertNull(resourceMethod.nameBindings);
}
@Test
@@ -266,7 +266,7 @@ public class JaxrsTest extends TestHelper {
assertEquals("/{name}", resourceMethod.path);
assertNull(resourceMethod.consumingMimeType);
assertNull(resourceMethod.producingMimeType);
- assertArrayEquals(new String[]{}, resourceMethod.nameBindings);
+ assertNull(resourceMethod.nameBindings);
}
@Test
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/08c4cf71/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 2c1f082..3c29f32 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
@@ -493,6 +493,10 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
Set<String> nameBindings = AnnotationUtils.getNameBindings(
eri._class.getAnnotations());
+ if (nameBindings.isEmpty()) {
+ nameBindings = null;
+ }
+
extensionDTO.consumes = consumes == null ? null :
JAXRSUtils.getConsumeTypes(consumes).stream().
map(
@@ -600,6 +604,10 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
new HashMap<>();
for (ExtensionDTO extensionDTO : applicationDTO.extensionDTOs) {
+ if (extensionDTO.nameBindings == null) {
+ continue;
+ }
+
for (String nameBinding : extensionDTO.nameBindings) {
Set<ExtensionDTO> extensionDTOS =
nameBoundExtensions.computeIfAbsent(
@@ -615,6 +623,10 @@ public class AriesJaxrsServiceRuntime implements JaxrsServiceRuntime {
for (ResourceMethodInfoDTO resourceMethodInfo :
resourceDTO.resourceMethods) {
+ if (resourceMethodInfo.nameBindings == null) {
+ continue;
+ }
+
for (String nameBinding : resourceMethodInfo.nameBindings) {
Set<ExtensionDTO> extensionDTOS = nameBoundExtensions.get(
nameBinding);
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/08c4cf71/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 50ac499..6063e13 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
@@ -52,7 +52,7 @@ public class ClassIntrospector {
clazz, clazz, true, true, bus);
Stream<ResourceMethodInfoDTO> convert = convert(
- new HashSet<>(), "/", null, null, null, Collections.emptySet(),
+ new HashSet<>(), "/", null, null, null, null,
true, classResourceInfo);
return convert.collect(Collectors.toList());
@@ -97,7 +97,7 @@ public class ClassIntrospector {
List<MediaType> consumeParam = consumeMime == null ? null : new ArrayList<>(consumeMime);
List<MediaType> produceParam = produceMime == null ? null : new ArrayList<>(produceMime);
- HashSet<String> nameBindingsParam = new HashSet<>(nameBindings);
+ HashSet<String> nameBindingsParam = nameBindings == null ? null : new HashSet<>(nameBindings);
Stream<ResourceMethodInfoDTO> stream =
operationResourceInfos.stream().
@@ -192,8 +192,8 @@ public class ClassIntrospector {
String[]::new
);
- resourceMethodInfoDTO.nameBindings = nameBindings.toArray(
- new String[0]);
+ resourceMethodInfoDTO.nameBindings = nameBindings == null ? null :
+ nameBindings.toArray(new String[0]);
try {
resourceMethodInfoDTO.path = Paths.get(path).normalize().toString();
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/08c4cf71/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 867d5a2..d8abb38 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
@@ -43,8 +43,6 @@ import static org.junit.Assert.assertTrue;
public class ClassIntrospectorTest {
- private static final String[] ALL_TYPES = {MediaType.WILDCARD};
-
@Test
public void testPlainResource() {
Bus bus = BusFactory.getDefaultBus(true);
@@ -65,7 +63,7 @@ public class ClassIntrospectorTest {
assertNull(resourceMethodInfoDTO.consumingMimeType);
assertNull(resourceMethodInfoDTO.producingMimeType);
assertEquals("/", resourceMethodInfoDTO.path);
- assertArrayEquals(new String[]{}, resourceMethodInfoDTO.nameBindings);
+ assertNull(resourceMethodInfoDTO.nameBindings);
}
@Test
@@ -143,7 +141,7 @@ public class ClassIntrospectorTest {
resourceMethodInfoDTO.consumingMimeType = null;
resourceMethodInfoDTO.producingMimeType = null;
resourceMethodInfoDTO.path = "/";
- resourceMethodInfoDTO.nameBindings = new String[]{};
+ resourceMethodInfoDTO.nameBindings = null;
assertTrue(
wrappers.remove(
@@ -155,7 +153,7 @@ public class ClassIntrospectorTest {
resourceMethodInfoDTO.consumingMimeType = null;
resourceMethodInfoDTO.producingMimeType = null;
resourceMethodInfoDTO.path = "/";
- resourceMethodInfoDTO.nameBindings = new String[]{};
+ resourceMethodInfoDTO.nameBindings = null;
assertTrue(
wrappers.remove(
@@ -190,7 +188,7 @@ public class ClassIntrospectorTest {
resourceMethodInfoDTO.consumingMimeType = null;
resourceMethodInfoDTO.producingMimeType = null;
resourceMethodInfoDTO.path = "/common";
- resourceMethodInfoDTO.nameBindings = new String[]{};
+ resourceMethodInfoDTO.nameBindings = null;
assertTrue(
wrappers.remove(
@@ -203,7 +201,7 @@ public class ClassIntrospectorTest {
resourceMethodInfoDTO.consumingMimeType = null;
resourceMethodInfoDTO.producingMimeType = null;
resourceMethodInfoDTO.path = "/common";
- resourceMethodInfoDTO.nameBindings = new String[]{};
+ resourceMethodInfoDTO.nameBindings = null;
assertTrue(
wrappers.remove(
@@ -238,7 +236,7 @@ public class ClassIntrospectorTest {
resourceMethodInfoDTO.consumingMimeType = null;
resourceMethodInfoDTO.producingMimeType = null;
resourceMethodInfoDTO.path = "/common";
- resourceMethodInfoDTO.nameBindings = new String[]{};
+ resourceMethodInfoDTO.nameBindings = null;
assertTrue(
wrappers.remove(
@@ -250,7 +248,7 @@ public class ClassIntrospectorTest {
resourceMethodInfoDTO.consumingMimeType = null;
resourceMethodInfoDTO.producingMimeType = null;
resourceMethodInfoDTO.path = "/common/different";
- resourceMethodInfoDTO.nameBindings = new String[]{};
+ resourceMethodInfoDTO.nameBindings = null;
assertTrue(
wrappers.remove(
@@ -286,7 +284,7 @@ public class ClassIntrospectorTest {
resourceMethodInfoDTO.producingMimeType =
new String[]{MediaType.APPLICATION_XML};
resourceMethodInfoDTO.path = "/resource";
- resourceMethodInfoDTO.nameBindings = new String[]{};
+ resourceMethodInfoDTO.nameBindings = null;
assertTrue(
wrappers.remove(
@@ -300,7 +298,7 @@ public class ClassIntrospectorTest {
resourceMethodInfoDTO.producingMimeType =
new String[]{MediaType.APPLICATION_JSON};
resourceMethodInfoDTO.path = "/resource/subresource";
- resourceMethodInfoDTO.nameBindings = new String[]{};
+ resourceMethodInfoDTO.nameBindings = null;
assertTrue(
wrappers.remove(
@@ -317,7 +315,7 @@ public class ClassIntrospectorTest {
MediaType.APPLICATION_JSON
};
resourceMethodInfoDTO.path = "/resource/subresource";
- resourceMethodInfoDTO.nameBindings = new String[]{};
+ resourceMethodInfoDTO.nameBindings = null;
assertTrue(
wrappers.remove(
@@ -331,7 +329,7 @@ public class ClassIntrospectorTest {
resourceMethodInfoDTO.producingMimeType =
new String[]{MediaType.APPLICATION_JSON};
resourceMethodInfoDTO.path = "/resource/subresource/{path}";
- resourceMethodInfoDTO.nameBindings = new String[]{};
+ resourceMethodInfoDTO.nameBindings = null;
assertTrue(
wrappers.remove(
@@ -347,7 +345,7 @@ public class ClassIntrospectorTest {
MediaType.APPLICATION_JSON
};
resourceMethodInfoDTO.path = "/resource/subresource/{path}";
- resourceMethodInfoDTO.nameBindings = new String[]{};
+ resourceMethodInfoDTO.nameBindings = null;
assertTrue(
wrappers.remove(