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");