Author: dkulp
Date: Fri Mar 29 17:02:37 2013
New Revision: 1462535

URL: http://svn.apache.org/r1462535
Log:
[CXF-4898] Allow specify extra "types" for WS-Discovery registration

Modified:
    
cxf/trunk/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/internal/WSDiscoveryServiceImpl.java

Modified: 
cxf/trunk/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/internal/WSDiscoveryServiceImpl.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/internal/WSDiscoveryServiceImpl.java?rev=1462535&r1=1462534&r2=1462535&view=diff
==============================================================================
--- 
cxf/trunk/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/internal/WSDiscoveryServiceImpl.java
 (original)
+++ 
cxf/trunk/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/internal/WSDiscoveryServiceImpl.java
 Fri Mar 29 17:02:37 2013
@@ -125,10 +125,28 @@ public class WSDiscoveryServiceImpl impl
         ht.setScopes(new ScopesType());
         ht.setMetadataVersion(1);
         
-        QName sn = 
ServiceModelUtil.getServiceQName(server.getEndpoint().getEndpointInfo());
-        ht.getTypes().add(sn);
+
+        Object o = server.getEndpoint().get("ws-discovery-types");
+        if (o instanceof QName) {
+            ht.getTypes().add((QName)o);
+        } else if (o instanceof List) {
+            for (Object o2: (List<?>)o) {
+                if (o2 instanceof QName) {
+                    ht.getTypes().add((QName)o2);
+                } else if (o2 instanceof String) {
+                    ht.getTypes().add(QName.valueOf((String)o2));
+                }
+            }
+        } else if (o instanceof String) {
+            ht.getTypes().add(QName.valueOf((String)o));
+        } 
+        if (ht.getTypes().isEmpty()) {
+            QName sn = 
ServiceModelUtil.getServiceQName(server.getEndpoint().getEndpointInfo());
+            ht.getTypes().add(sn);
+        }
+
         
-        Object o = server.getEndpoint().get("ws-discovery-scopes");
+        o = server.getEndpoint().get("ws-discovery-scopes");
         if (o != null) {
             setScopes(ht, o);
         }


Reply via email to