Author: sergeyb
Date: Thu Jan 31 12:15:44 2013
New Revision: 1440927
URL: http://svn.apache.org/viewvc?rev=1440927&view=rev
Log:
Merged revisions 1440922 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1440922 | sergeyb | 2013-01-31 12:07:18 +0000 (Thu, 31 Jan 2013) | 1 line
[CXF-4767] Fixing one more NPE when JAX-RS endpoints register with
WS-Discovery service
........
Modified:
cxf/branches/2.7.x-fixes/ (props changed)
cxf/branches/2.7.x-fixes/api/src/main/java/org/apache/cxf/service/model/ServiceModelUtil.java
cxf/branches/2.7.x-fixes/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/internal/WSDiscoveryServiceImpl.java
cxf/branches/2.7.x-fixes/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/listeners/WSDiscoveryServerListener.java
Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
Merged /cxf/trunk:r1440922
Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
cxf/branches/2.7.x-fixes/api/src/main/java/org/apache/cxf/service/model/ServiceModelUtil.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/api/src/main/java/org/apache/cxf/service/model/ServiceModelUtil.java?rev=1440927&r1=1440926&r2=1440927&view=diff
==============================================================================
---
cxf/branches/2.7.x-fixes/api/src/main/java/org/apache/cxf/service/model/ServiceModelUtil.java
(original)
+++
cxf/branches/2.7.x-fixes/api/src/main/java/org/apache/cxf/service/model/ServiceModelUtil.java
Thu Jan 31 12:15:44 2013
@@ -183,4 +183,16 @@ public final class ServiceModelUtil {
return best;
}
+
+ public static QName getServiceQName(EndpointInfo ei) {
+ InterfaceInfo ii = ei.getInterface();
+ if (ii != null) {
+ return ii.getName();
+ } else if (ei.getService() != null) {
+ return ei.getService().getName();
+ } else {
+ return ei.getName();
+ }
+
+ }
}
Modified:
cxf/branches/2.7.x-fixes/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/internal/WSDiscoveryServiceImpl.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/internal/WSDiscoveryServiceImpl.java?rev=1440927&r1=1440926&r2=1440927&view=diff
==============================================================================
---
cxf/branches/2.7.x-fixes/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/internal/WSDiscoveryServiceImpl.java
(original)
+++
cxf/branches/2.7.x-fixes/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/internal/WSDiscoveryServiceImpl.java
Thu Jan 31 12:15:44 2013
@@ -55,6 +55,7 @@ import org.apache.cxf.BusFactory;
import org.apache.cxf.common.jaxb.JAXBContextCache;
import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.endpoint.Server;
+import org.apache.cxf.service.model.ServiceModelUtil;
import org.apache.cxf.staxutils.StaxUtils;
import org.apache.cxf.staxutils.transform.InTransformReader;
import org.apache.cxf.ws.discovery.WSDiscoveryClient;
@@ -123,7 +124,10 @@ public class WSDiscoveryServiceImpl impl
HelloType ht = new HelloType();
ht.setScopes(new ScopesType());
ht.setMetadataVersion(1);
-
ht.getTypes().add(server.getEndpoint().getEndpointInfo().getInterface().getName());
+
+ QName sn =
ServiceModelUtil.getServiceQName(server.getEndpoint().getEndpointInfo());
+ ht.getTypes().add(sn);
+
Object o = server.getEndpoint().get("ws-discovery-scopes");
if (o != null) {
setScopes(ht, o);
Modified:
cxf/branches/2.7.x-fixes/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/listeners/WSDiscoveryServerListener.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/listeners/WSDiscoveryServerListener.java?rev=1440927&r1=1440926&r2=1440927&view=diff
==============================================================================
---
cxf/branches/2.7.x-fixes/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/listeners/WSDiscoveryServerListener.java
(original)
+++
cxf/branches/2.7.x-fixes/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/listeners/WSDiscoveryServerListener.java
Thu Jan 31 12:15:44 2013
@@ -25,14 +25,16 @@ import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.endpoint.ServerLifeCycleListener;
-import org.apache.cxf.service.model.EndpointInfo;
-import org.apache.cxf.service.model.InterfaceInfo;
+import org.apache.cxf.service.model.ServiceModelUtil;
import org.apache.cxf.ws.discovery.internal.WSDiscoveryServiceImpl;
/**
*
*/
public class WSDiscoveryServerListener implements ServerLifeCycleListener {
+ private static final String WS_DISCOVERY_SERVICE_NS =
+ "http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01";
+
final Bus bus;
volatile WSDiscoveryServiceImpl service;
@@ -65,31 +67,22 @@ public class WSDiscoveryServerListener i
}
public void startServer(Server server) {
- QName sn = getServiceQName(server);
- if
("http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01".equals(sn.getNamespaceURI()))
{
+ if (isWsDiscoveryServer(server)) {
return;
}
getService().serverStarted(server);
}
public void stopServer(Server server) {
- QName sn = getServiceQName(server);
- if
("http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01".equals(sn.getNamespaceURI()))
{
+ if (isWsDiscoveryServer(server)) {
return;
}
getService().serverStopped(server);
}
- private QName getServiceQName(Server server) {
- EndpointInfo ei = server.getEndpoint().getEndpointInfo();
- InterfaceInfo ii = ei.getInterface();
- if (ii != null) {
- return ii.getName();
- } else if (ei.getService() != null) {
- return ei.getService().getName();
- } else {
- return ei.getName();
- }
+ private boolean isWsDiscoveryServer(Server server) {
+ QName sn =
ServiceModelUtil.getServiceQName(server.getEndpoint().getEndpointInfo());
+ return WS_DISCOVERY_SERVICE_NS.equals(sn.getNamespaceURI());
}
}