Add extension interfaces to ExtensionDTO
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/b117b6f2 Tree: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/tree/b117b6f2 Diff: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/diff/b117b6f2 Branch: refs/heads/master Commit: b117b6f22e39bfa261399ccfde079fdbfe365403 Parents: 638ebef Author: Carlos Sierra <[email protected]> Authored: Mon Sep 4 12:44:14 2017 +0200 Committer: Carlos Sierra <[email protected]> Committed: Mon Sep 4 12:44:14 2017 +0200 ---------------------------------------------------------------------- .../rs/whiteboard/internal/AriesJaxRSServiceRuntime.java | 10 ++++++++++ .../apache/aries/jax/rs/whiteboard/internal/Utils.java | 4 ++++ 2 files changed, 14 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/b117b6f2/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 9a79da8..a3c53c9 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 @@ -33,6 +33,7 @@ import org.osgi.service.jaxrs.whiteboard.JaxRSWhiteboardConstants; import javax.ws.rs.core.Application; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -45,8 +46,10 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.function.BiFunction; import java.util.stream.Stream; +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.Whiteboard.DEFAULT_NAME; +import static org.apache.aries.jax.rs.whiteboard.internal.Whiteboard.SUPPORTED_EXTENSION_INTERFACES; import static org.apache.aries.jax.rs.whiteboard.internal.Whiteboard.getApplicationBase; import static org.osgi.service.jaxrs.whiteboard.JaxRSWhiteboardConstants.JAX_RS_NAME; @@ -490,6 +493,13 @@ public class AriesJaxRSServiceRuntime implements JaxRSServiceRuntime { toString(); extensionDTO.serviceId = (Long)serviceReference.getProperty( "service.id"); + extensionDTO.extensionTypes = + Arrays.stream( + canonicalize(serviceReference.getProperty("objectClass"))). + filter( + SUPPORTED_EXTENSION_INTERFACES::contains + ). + toArray(String[]::new); return extensionDTO; } http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/b117b6f2/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Utils.java ---------------------------------------------------------------------- diff --git a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Utils.java b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Utils.java index 1e5d15a..637353a 100644 --- a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Utils.java +++ b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Utils.java @@ -24,6 +24,7 @@ import org.apache.cxf.message.Message; import org.osgi.framework.ServiceObjects; import org.osgi.framework.ServiceReference; +import java.util.Collection; import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; @@ -50,6 +51,9 @@ public class Utils { if (propertyValue instanceof String[]) { return (String[]) propertyValue; } + if (propertyValue instanceof Collection) { + return ((Collection<String>) propertyValue).toArray(new String[0]); + } return new String[]{propertyValue.toString()}; }
