You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by am...@apache.org on 2013/05/30 12:46:57 UTC
svn commit: r1487811 - in /cxf/dosgi/trunk:
discovery/distributed/cxf-discovery/src/main/java/org/apache/cxf/dosgi/discovery/zookeeper/
dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/
dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/ dsw/...
Author: amichai
Date: Thu May 30 10:46:56 2013
New Revision: 1487811
URL: http://svn.apache.org/r1487811
Log:
Fix ServiceTracker usages
Modified:
cxf/dosgi/trunk/discovery/distributed/cxf-discovery/src/main/java/org/apache/cxf/dosgi/discovery/zookeeper/EndpointListenerTrackerCustomizer.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportRegistrationImpl.java
cxf/dosgi/trunk/dsw/cxf-topology-manager/src/main/java/org/apache/cxf/dosgi/topologymanager/exporter/EndpointListenerNotifier.java
cxf/dosgi/trunk/dsw/cxf-topology-manager/src/main/java/org/apache/cxf/dosgi/topologymanager/exporter/TopologyManagerExport.java
cxf/dosgi/trunk/dsw/cxf-topology-manager/src/test/java/org/apache/cxf/dosgi/topologymanager/exporter/ExportServiceTest.java
cxf/dosgi/trunk/samples/greeter/client/src/main/java/org/apache/cxf/dosgi/samples/greeter/client/Activator.java
cxf/dosgi/trunk/samples/greeter_rest/client/src/main/java/org/apache/cxf/dosgi/samples/greeter/client/rest/Activator.java
Modified: cxf/dosgi/trunk/discovery/distributed/cxf-discovery/src/main/java/org/apache/cxf/dosgi/discovery/zookeeper/EndpointListenerTrackerCustomizer.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/discovery/distributed/cxf-discovery/src/main/java/org/apache/cxf/dosgi/discovery/zookeeper/EndpointListenerTrackerCustomizer.java?rev=1487811&r1=1487810&r2=1487811&view=diff
==============================================================================
--- cxf/dosgi/trunk/discovery/distributed/cxf-discovery/src/main/java/org/apache/cxf/dosgi/discovery/zookeeper/EndpointListenerTrackerCustomizer.java (original)
+++ cxf/dosgi/trunk/discovery/distributed/cxf-discovery/src/main/java/org/apache/cxf/dosgi/discovery/zookeeper/EndpointListenerTrackerCustomizer.java Thu May 30 10:46:56 2013
@@ -49,6 +49,11 @@ public class EndpointListenerTrackerCust
handleEndpointListener(sref);
}
+ public void removedService(ServiceReference sref, Object service) {
+ LOG.info("removedService: {}", sref);
+ imManager.removeInterest(sref);
+ }
+
private void handleEndpointListener(ServiceReference sref) {
if (isOurOwnEndpointListener(sref)) {
LOG.debug("Skipping our own endpointListener");
@@ -68,19 +73,13 @@ public class EndpointListenerTrackerCust
}
}
- private boolean isOurOwnEndpointListener(ServiceReference sref) {
+ private static boolean isOurOwnEndpointListener(ServiceReference sref) {
return Boolean.parseBoolean(String.valueOf(
sref.getProperty(PublishingEndpointListenerFactory.DISCOVERY_ZOOKEEPER_ID)));
}
- private String getObjectClass(String scope) {
+ private static String getObjectClass(String scope) {
Matcher m = OBJECTCLASS_PATTERN.matcher(scope);
return m.matches() ? m.group(1) : null;
}
-
- public void removedService(ServiceReference sref, Object service) {
- LOG.info("removedService: {}", sref);
- imManager.removeInterest(sref);
- }
-
}
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java?rev=1487811&r1=1487810&r2=1487811&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java Thu May 30 10:46:56 2013
@@ -57,6 +57,7 @@ public class Activator implements Manage
private ServiceRegistration rsaFactoryReg;
private ServiceRegistration decoratorReg;
private IntentTracker intentTracker;
+ private HttpServiceManager httpServiceManager;
private BundleContext bc;
public void start(BundleContext bundlecontext) throws Exception {
@@ -76,7 +77,7 @@ public class Activator implements Manage
intentTracker = new IntentTracker(bc, intentMap);
intentTracker.open();
IntentManager intentManager = new IntentManagerImpl(intentMap, DEFAULT_INTENT_TIMEOUT);
- HttpServiceManager httpServiceManager = new HttpServiceManager(bc, httpBase, cxfServletAlias);
+ httpServiceManager = new HttpServiceManager(bc, httpBase, cxfServletAlias);
ConfigTypeHandlerFactory configTypeHandlerFactory
= new ConfigTypeHandlerFactory(bc, intentManager, httpServiceManager);
RemoteServiceAdminCore rsaCore = new RemoteServiceAdminCore(bc, configTypeHandlerFactory);
@@ -122,6 +123,8 @@ public class Activator implements Manage
// This also triggers the unimport and unexport of the remote services
rsaFactoryReg.unregister();
decoratorReg.unregister();
+ httpServiceManager.close();
+ httpServiceManager = null;
intentTracker = null;
rsaFactoryReg = null;
decoratorReg = null;
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportRegistrationImpl.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportRegistrationImpl.java?rev=1487811&r1=1487810&r2=1487811&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportRegistrationImpl.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportRegistrationImpl.java Thu May 30 10:46:56 2013
@@ -88,6 +88,11 @@ public class ExportRegistrationImpl impl
server = null;
}
exportReference.close();
+
+ if (serviceTracker != null) {
+ serviceTracker.close();
+ serviceTracker = null;
+ }
}
private void instanceClosed() {
Modified: cxf/dosgi/trunk/dsw/cxf-topology-manager/src/main/java/org/apache/cxf/dosgi/topologymanager/exporter/EndpointListenerNotifier.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-topology-manager/src/main/java/org/apache/cxf/dosgi/topologymanager/exporter/EndpointListenerNotifier.java?rev=1487811&r1=1487810&r2=1487811&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-topology-manager/src/main/java/org/apache/cxf/dosgi/topologymanager/exporter/EndpointListenerNotifier.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-topology-manager/src/main/java/org/apache/cxf/dosgi/topologymanager/exporter/EndpointListenerNotifier.java Thu May 30 10:46:56 2013
@@ -81,15 +81,21 @@ public class EndpointListenerNotifier {
stEndpointListeners.close();
}
- void nofifyEndpointListenersOfAdding(Collection<EndpointDescription> endpoints) {
- for (ServiceReference eplistener : stEndpointListeners.getServiceReferences()) {
- notifyListenerOfAdding(eplistener, endpoints);
+ void notifyListenersOfAdding(Collection<EndpointDescription> endpoints) {
+ ServiceReference[] listeners = stEndpointListeners.getServiceReferences();
+ if (listeners != null) {
+ for (ServiceReference eplistener : listeners) {
+ notifyListenerOfAdding(eplistener, endpoints);
+ }
}
}
void notifyListenersOfRemoval(Collection<EndpointDescription> endpoints) {
- for (ServiceReference epListenerReference : stEndpointListeners.getServiceReferences()) {
- notifyListenerOfRemoval(epListenerReference, endpoints);
+ ServiceReference[] listeners = stEndpointListeners.getServiceReferences();
+ if (listeners != null) {
+ for (ServiceReference epListenerReference : listeners) {
+ notifyListenerOfRemoval(epListenerReference, endpoints);
+ }
}
}
Modified: cxf/dosgi/trunk/dsw/cxf-topology-manager/src/main/java/org/apache/cxf/dosgi/topologymanager/exporter/TopologyManagerExport.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-topology-manager/src/main/java/org/apache/cxf/dosgi/topologymanager/exporter/TopologyManagerExport.java?rev=1487811&r1=1487810&r2=1487811&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-topology-manager/src/main/java/org/apache/cxf/dosgi/topologymanager/exporter/TopologyManagerExport.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-topology-manager/src/main/java/org/apache/cxf/dosgi/topologymanager/exporter/TopologyManagerExport.java Thu May 30 10:46:56 2013
@@ -172,7 +172,7 @@ public class TopologyManagerExport {
endpoints.add(getExportedEndpoint(exportReg));
}
LOG.info("TopologyManager: export successful Endpoints: {}", endpoints);
- epListenerNotifier.nofifyEndpointListenersOfAdding(endpoints);
+ epListenerNotifier.notifyListenersOfAdding(endpoints);
}
endpointRepo.addEndpoints(sref, remoteServiceAdmin, endpoints);
}
Modified: cxf/dosgi/trunk/dsw/cxf-topology-manager/src/test/java/org/apache/cxf/dosgi/topologymanager/exporter/ExportServiceTest.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-topology-manager/src/test/java/org/apache/cxf/dosgi/topologymanager/exporter/ExportServiceTest.java?rev=1487811&r1=1487810&r2=1487811&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-topology-manager/src/test/java/org/apache/cxf/dosgi/topologymanager/exporter/ExportServiceTest.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-topology-manager/src/test/java/org/apache/cxf/dosgi/topologymanager/exporter/ExportServiceTest.java Thu May 30 10:46:56 2013
@@ -75,8 +75,7 @@ public class ExportServiceTest {
simulateUserServicePublished(bctx, sref);
EasyMock.expect(rsa.exportService(EasyMock.same(sref), (Map<String, Object>)EasyMock.anyObject()))
.andReturn(Collections.singletonList(exportRegistration)).once();
- mockEpListenerNotifier.nofifyEndpointListenersOfAdding(EasyMock.eq(Collections
- .singletonList(endpoint)));
+ mockEpListenerNotifier.notifyListenersOfAdding(EasyMock.eq(Collections.singletonList(endpoint)));
EasyMock.expectLastCall().once();
c.replay();
Modified: cxf/dosgi/trunk/samples/greeter/client/src/main/java/org/apache/cxf/dosgi/samples/greeter/client/Activator.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/samples/greeter/client/src/main/java/org/apache/cxf/dosgi/samples/greeter/client/Activator.java?rev=1487811&r1=1487810&r2=1487811&view=diff
==============================================================================
--- cxf/dosgi/trunk/samples/greeter/client/src/main/java/org/apache/cxf/dosgi/samples/greeter/client/Activator.java (original)
+++ cxf/dosgi/trunk/samples/greeter/client/src/main/java/org/apache/cxf/dosgi/samples/greeter/client/Activator.java Thu May 30 10:46:56 2013
@@ -36,33 +36,27 @@ public class Activator implements Bundle
tracker = new ServiceTracker(bc, GreeterService.class.getName(), null) {
@Override
public Object addingService(ServiceReference reference) {
- Object result = super.addingService(reference);
-
- useService(bc, reference);
-
- return result;
+ Object service = super.addingService(reference);
+ if (service instanceof GreeterService) {
+ useService((GreeterService) service);
+ }
+ return service;
}
};
tracker.open();
}
- protected void useService(final BundleContext bc, ServiceReference reference) {
- Object svc = bc.getService(reference);
- if (!(svc instanceof GreeterService)) {
- return;
- }
- final GreeterService greeter = (GreeterService) svc;
-
+ protected void useService(final GreeterService greeter) {
Thread t = new Thread(new Runnable() {
public void run() {
- greeterUI(bc, greeter);
+ greeterUI(greeter);
}
});
t.start();
}
- private void greeterUI(final BundleContext bc, final GreeterService greeter) {
+ private void greeterUI(final GreeterService greeter) {
while (true) {
System.out.println("*** Opening greeter client dialog ***");
Object gd = getGreeterData();
Modified: cxf/dosgi/trunk/samples/greeter_rest/client/src/main/java/org/apache/cxf/dosgi/samples/greeter/client/rest/Activator.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/samples/greeter_rest/client/src/main/java/org/apache/cxf/dosgi/samples/greeter/client/rest/Activator.java?rev=1487811&r1=1487810&r2=1487811&view=diff
==============================================================================
--- cxf/dosgi/trunk/samples/greeter_rest/client/src/main/java/org/apache/cxf/dosgi/samples/greeter/client/rest/Activator.java (original)
+++ cxf/dosgi/trunk/samples/greeter_rest/client/src/main/java/org/apache/cxf/dosgi/samples/greeter/client/rest/Activator.java Thu May 30 10:46:56 2013
@@ -38,11 +38,11 @@ public class Activator implements Bundle
tracker = new ServiceTracker(bc, GreeterService.class.getName(), null) {
@Override
public Object addingService(ServiceReference reference) {
- Object result = super.addingService(reference);
-
- useGreeterService(bc, reference);
-
- return result;
+ Object service = super.addingService(reference);
+ if (service instanceof GreeterService) {
+ useGreeterService((GreeterService) service);
+ }
+ return service;
}
};
tracker.open();
@@ -50,47 +50,35 @@ public class Activator implements Bundle
tracker2 = new ServiceTracker(bc, GreeterService2.class.getName(), null) {
@Override
public Object addingService(ServiceReference reference) {
- Object result = super.addingService(reference);
-
- useGreeterService2(bc, reference);
-
- return result;
+ Object service = super.addingService(reference);
+ if (service instanceof GreeterService2) {
+ useGreeterService2((GreeterService2) service);
+ }
+ return service;
}
};
tracker2.open();
}
- protected void useGreeterService(final BundleContext bc, ServiceReference reference) {
- Object svc = bc.getService(reference);
- if (!(svc instanceof GreeterService)) {
- return;
- }
- final GreeterService greeter = (GreeterService) svc;
-
+ protected void useGreeterService(final GreeterService greeter) {
Thread t = new Thread(new Runnable() {
public void run() {
- greeterUI(bc, greeter);
+ greeterUI(greeter);
}
});
t.start();
}
- protected void useGreeterService2(final BundleContext bc, ServiceReference reference) {
- Object svc = bc.getService(reference);
- if (!(svc instanceof GreeterService2)) {
- return;
- }
- final GreeterService2 greeter = (GreeterService2) svc;
-
+ protected void useGreeterService2(final GreeterService2 greeter) {
Thread t = new Thread(new Runnable() {
public void run() {
- greeter2UI(bc, greeter);
+ greeter2UI(greeter);
}
});
t.start();
}
- private void greeterUI(final BundleContext bc, final GreeterService greeter) {
+ private void greeterUI(final GreeterService greeter) {
while (true) {
System.out.println("*** Opening greeter client dialog ***");
String name = JOptionPane.showInputDialog("Enter name:");
@@ -113,7 +101,7 @@ public class Activator implements Bundle
}
}
- private void greeter2UI(final BundleContext bc, final GreeterService2 greeter) {
+ private void greeter2UI(final GreeterService2 greeter) {
while (true) {
System.out.println("*** Opening greeter2 client dialog ***");
String name = JOptionPane.showInputDialog("Greeter2 : Enter name");