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 2017/09/04 13:52:19 UTC

[2/4] aries-jax-rs-whiteboard git commit: Add extension interfaces to ExtensionDTO

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 <cs...@apache.org>
Authored: Mon Sep 4 12:44:14 2017 +0200
Committer: Carlos Sierra <cs...@apache.org>
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()};
     }