You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by cs...@apache.org on 2013/08/28 10:23:41 UTC
svn commit: r1518100 - in /cxf/dosgi/trunk:
discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/internal/
discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/util/
discovery/local/src/test/java/org/apache/cxf/dosgi/discove...
Author: cschneider
Date: Wed Aug 28 08:23:41 2013
New Revision: 1518100
URL: http://svn.apache.org/r1518100
Log:
Fxi warnings about generics
Modified:
cxf/dosgi/trunk/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/internal/LocalDiscovery.java
cxf/dosgi/trunk/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/util/Utils.java
cxf/dosgi/trunk/discovery/local/src/test/java/org/apache/cxf/dosgi/discovery/local/internal/LocalDiscoveryTest.java
cxf/dosgi/trunk/systests2/multi-bundle/src/test/java/org/apache/cxf/dosgi/systests2/multi/AbstractDosgiTest.java
Modified: cxf/dosgi/trunk/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/internal/LocalDiscovery.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/internal/LocalDiscovery.java?rev=1518100&r1=1518099&r2=1518100&view=diff
==============================================================================
--- cxf/dosgi/trunk/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/internal/LocalDiscovery.java (original)
+++ cxf/dosgi/trunk/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/internal/LocalDiscovery.java Wed Aug 28 08:23:41 2013
@@ -51,36 +51,37 @@ public class LocalDiscovery implements B
final BundleContext bundleContext;
EndpointDescriptionBundleParser bundleParser;
- ServiceTracker listenerTracker;
+ ServiceTracker<EndpointListener, EndpointListener> listenerTracker;
public LocalDiscovery(BundleContext bc) {
this.bundleParser = new EndpointDescriptionBundleParser();
bundleContext = bc;
- listenerTracker = new ServiceTracker(bundleContext, EndpointListener.class.getName(), null) {
+ listenerTracker = new ServiceTracker<EndpointListener, EndpointListener>(bundleContext,
+ EndpointListener.class, null) {
@Override
- public Object addingService(ServiceReference reference) {
- Object svc = super.addingService(reference);
- registerTracker(reference, svc);
+ public EndpointListener addingService(ServiceReference<EndpointListener> reference) {
+ EndpointListener svc = super.addingService(reference);
+ addListener(reference, svc);
return svc;
}
@Override
- public void modifiedService(ServiceReference reference, Object service) {
+ public void modifiedService(ServiceReference<EndpointListener> reference, EndpointListener service) {
super.modifiedService(reference, service);
- clearTracker(service);
+ removeListener(service);
// This may cause duplicate registrations of remote services,
// but that's fine and should be filtered out on another level.
- // See Remove Service Admin spec section 122.6.3
- registerTracker(reference, service);
+ // See Remote Service Admin spec section 122.6.3
+ addListener(reference, service);
}
@Override
- public void removedService(ServiceReference reference, Object service) {
+ public void removedService(ServiceReference<EndpointListener> reference, EndpointListener service) {
super.removedService(reference, service);
- clearTracker(service);
+ removeListener(service);
}
};
listenerTracker.open();
@@ -102,29 +103,11 @@ public class LocalDiscovery implements B
}
}
- void registerTracker(ServiceReference reference, Object svc) {
- if (svc instanceof EndpointListener) {
- EndpointListener endpointListener = (EndpointListener) svc;
- Collection<String> filters = addListener(reference, endpointListener);
- triggerCallbacks(filters, endpointListener);
- }
- }
-
- void clearTracker(Object svc) {
- if (svc instanceof EndpointListener) {
- EndpointListener endpointListener = (EndpointListener) svc;
- removeListener(endpointListener);
- // If the tracker was removed or the scope was changed this doesn't require
- // additional callbacks on the tracker. Its the responsibility of the tracker
- // itself to clean up any orphans. See Remote Service Admin spec 122.6.3
- }
- }
-
- private Collection<String> addListener(ServiceReference endpointListenerRef, EndpointListener endpointListener) {
+ void addListener(ServiceReference<EndpointListener> endpointListenerRef, EndpointListener endpointListener) {
List<String> filters = Utils.getStringPlusProperty(endpointListenerRef,
EndpointListener.ENDPOINT_LISTENER_SCOPE);
if (filters.isEmpty()) {
- return filters;
+ return;
}
listenerToFilters.put(endpointListener, filters);
@@ -138,11 +121,16 @@ public class LocalDiscovery implements B
filterToListeners.put(filter, list);
}
}
-
- return filters;
+ triggerCallbacks(filters, endpointListener);
}
- private void removeListener(EndpointListener endpointListener) {
+ /**
+ * If the tracker was removed or the scope was changed this doesn't require
+ * additional callbacks on the tracker. Its the responsibility of the tracker
+ * itself to clean up any orphans. See Remote Service Admin spec 122.6.3
+ * @param endpointListener
+ */
+ void removeListener(EndpointListener endpointListener) {
Collection<String> filters = listenerToFilters.remove(endpointListener);
if (filters == null) {
return;
Modified: cxf/dosgi/trunk/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/util/Utils.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/util/Utils.java?rev=1518100&r1=1518099&r2=1518100&view=diff
==============================================================================
--- cxf/dosgi/trunk/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/util/Utils.java (original)
+++ cxf/dosgi/trunk/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/util/Utils.java Wed Aug 28 08:23:41 2013
@@ -49,7 +49,7 @@ public final class Utils {
// prevent instantiation
}
- public static List<String> getStringPlusProperty(ServiceReference sr, String key) {
+ public static List<String> getStringPlusProperty(ServiceReference<?> sr, String key) {
Object value = sr.getProperty(key);
if (value == null) {
return Collections.emptyList();
Modified: cxf/dosgi/trunk/discovery/local/src/test/java/org/apache/cxf/dosgi/discovery/local/internal/LocalDiscoveryTest.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/discovery/local/src/test/java/org/apache/cxf/dosgi/discovery/local/internal/LocalDiscoveryTest.java?rev=1518100&r1=1518099&r2=1518100&view=diff
==============================================================================
--- cxf/dosgi/trunk/discovery/local/src/test/java/org/apache/cxf/dosgi/discovery/local/internal/LocalDiscoveryTest.java (original)
+++ cxf/dosgi/trunk/discovery/local/src/test/java/org/apache/cxf/dosgi/discovery/local/internal/LocalDiscoveryTest.java Wed Aug 28 08:23:41 2013
@@ -156,7 +156,8 @@ public class LocalDiscoveryTest extends
// Create an EndpointListener
final Map<String, Object> props = new Hashtable<String, Object>();
props.put(EndpointListener.ENDPOINT_LISTENER_SCOPE, "(objectClass=*)");
- ServiceReference sr = EasyMock.createMock(ServiceReference.class);
+ @SuppressWarnings("unchecked")
+ ServiceReference<EndpointListener> sr = EasyMock.createMock(ServiceReference.class);
EasyMock.expect(sr.getPropertyKeys()).andReturn(props.keySet().toArray(new String[] {})).anyTimes();
EasyMock.expect(sr.getProperty((String) EasyMock.anyObject())).andAnswer(new IAnswer<Object>() {
public Object answer() throws Throwable {
@@ -169,7 +170,7 @@ public class LocalDiscoveryTest extends
endpointListener.endpointAdded((EndpointDescription) EasyMock.anyObject(), EasyMock.eq("(objectClass=*)"));
EasyMock.expectLastCall();
EasyMock.replay(endpointListener);
- ld.registerTracker(sr, endpointListener);
+ ld.addListener(sr, endpointListener);
// Start the bundle
BundleEvent be = new BundleEvent(BundleEvent.STARTED, bundle);
@@ -213,7 +214,8 @@ public class LocalDiscoveryTest extends
final Map<String, Object> props = new Hashtable<String, Object>();
props.put(EndpointListener.ENDPOINT_LISTENER_SCOPE, new String[] {"(objectClass=org.example.ClassA)"});
- ServiceReference sr = EasyMock.createMock(ServiceReference.class);
+ @SuppressWarnings("unchecked")
+ ServiceReference<EndpointListener> sr = EasyMock.createMock(ServiceReference.class);
EasyMock.expect(sr.getPropertyKeys()).andReturn(props.keySet().toArray(new String[] {})).anyTimes();
EasyMock.expect(sr.getProperty((String) EasyMock.anyObject())).andAnswer(new IAnswer<Object>() {
public Object answer() throws Throwable {
@@ -296,7 +298,8 @@ public class LocalDiscoveryTest extends
final Map<String, Object> props = new Hashtable<String, Object>();
props.put(EndpointListener.ENDPOINT_LISTENER_SCOPE, "(objectClass=Aaaa)");
- ServiceReference sr = EasyMock.createMock(ServiceReference.class);
+ @SuppressWarnings("unchecked")
+ ServiceReference<EndpointListener> sr = EasyMock.createMock(ServiceReference.class);
EasyMock.expect(sr.getPropertyKeys()).andReturn(props.keySet().toArray(new String[] {})).anyTimes();
EasyMock.expect(sr.getProperty((String) EasyMock.anyObject())).andAnswer(new IAnswer<Object>() {
public Object answer() throws Throwable {
@@ -310,7 +313,7 @@ public class LocalDiscoveryTest extends
assertEquals("Precondition failed", 0, ld.listenerToFilters.size());
assertEquals("Precondition failed", 0, ld.filterToListeners.size());
- ld.registerTracker(sr, endpointListener);
+ ld.addListener(sr, endpointListener);
assertEquals(1, ld.listenerToFilters.size());
assertEquals(Collections.singletonList("(objectClass=Aaaa)"), ld.listenerToFilters.get(endpointListener));
@@ -318,7 +321,8 @@ public class LocalDiscoveryTest extends
assertEquals(Collections.singletonList(endpointListener), ld.filterToListeners.get("(objectClass=Aaaa)"));
// Add another one with the same scope filter
- ServiceReference sr2 = EasyMock.createMock(ServiceReference.class);
+ @SuppressWarnings("unchecked")
+ ServiceReference<EndpointListener> sr2 = EasyMock.createMock(ServiceReference.class);
EasyMock.expect(sr2.getPropertyKeys()).andReturn(props.keySet().toArray(new String[] {})).anyTimes();
EasyMock.expect(sr2.getProperty((String) EasyMock.anyObject())).andAnswer(new IAnswer<Object>() {
public Object answer() throws Throwable {
@@ -329,7 +333,7 @@ public class LocalDiscoveryTest extends
EndpointListener endpointListener2 = EasyMock.createMock(EndpointListener.class);
EasyMock.replay(endpointListener2);
- ld.registerTracker(sr2, endpointListener2);
+ ld.addListener(sr2, endpointListener2);
assertEquals(2, ld.listenerToFilters.size());
assertEquals(Collections.singletonList("(objectClass=Aaaa)"), ld.listenerToFilters.get(endpointListener));
@@ -342,7 +346,8 @@ public class LocalDiscoveryTest extends
// Add another listener with a multi-value scope
final Map<String, Object> props2 = new Hashtable<String, Object>();
props2.put(EndpointListener.ENDPOINT_LISTENER_SCOPE, Arrays.asList("(objectClass=X)", "(objectClass=Y)"));
- ServiceReference sr3 = EasyMock.createMock(ServiceReference.class);
+ @SuppressWarnings("unchecked")
+ ServiceReference<EndpointListener> sr3 = EasyMock.createMock(ServiceReference.class);
EasyMock.expect(sr3.getPropertyKeys()).andReturn(props2.keySet().toArray(new String[] {})).anyTimes();
EasyMock.expect(sr3.getProperty((String) EasyMock.anyObject())).andAnswer(new IAnswer<Object>() {
public Object answer() throws Throwable {
@@ -353,7 +358,7 @@ public class LocalDiscoveryTest extends
EndpointListener endpointListener3 = EasyMock.createMock(EndpointListener.class);
EasyMock.replay(endpointListener3);
- ld.registerTracker(sr3, endpointListener3);
+ ld.addListener(sr3, endpointListener3);
assertEquals(3, ld.listenerToFilters.size());
assertEquals(Collections.singletonList("(objectClass=Aaaa)"), ld.listenerToFilters.get(endpointListener));
@@ -376,16 +381,14 @@ public class LocalDiscoveryTest extends
ld.filterToListeners.put("(objectClass=foo.bar.Bheuaark)",
new ArrayList<EndpointListener>(Arrays.asList(endpointListener)));
- ld.clearTracker("foobar"); // should not barf
-
assertEquals(1, ld.listenerToFilters.size());
assertEquals(2, ld.filterToListeners.size());
assertEquals(1, ld.filterToListeners.values().iterator().next().size());
- ld.clearTracker(EasyMock.createMock(EndpointListener.class));
+ ld.removeListener(EasyMock.createMock(EndpointListener.class));
assertEquals(1, ld.listenerToFilters.size());
assertEquals(2, ld.filterToListeners.size());
assertEquals(1, ld.filterToListeners.values().iterator().next().size());
- ld.clearTracker(endpointListener);
+ ld.removeListener(endpointListener);
assertEquals(0, ld.listenerToFilters.size());
assertEquals(2, ld.filterToListeners.size());
assertEquals(0, ld.filterToListeners.values().iterator().next().size());
Modified: cxf/dosgi/trunk/systests2/multi-bundle/src/test/java/org/apache/cxf/dosgi/systests2/multi/AbstractDosgiTest.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/systests2/multi-bundle/src/test/java/org/apache/cxf/dosgi/systests2/multi/AbstractDosgiTest.java?rev=1518100&r1=1518099&r2=1518100&view=diff
==============================================================================
--- cxf/dosgi/trunk/systests2/multi-bundle/src/test/java/org/apache/cxf/dosgi/systests2/multi/AbstractDosgiTest.java (original)
+++ cxf/dosgi/trunk/systests2/multi-bundle/src/test/java/org/apache/cxf/dosgi/systests2/multi/AbstractDosgiTest.java Wed Aug 28 08:23:41 2013
@@ -61,6 +61,9 @@ public class AbstractDosgiTest {
Thread.sleep(interval);
}
+ @SuppressWarnings({
+ "rawtypes", "unchecked"
+ })
protected ServiceReference waitService(BundleContext bc, Class cls, String filter, int timeout)
throws Exception {
System.out.println("Waiting for service: " + cls + " " + filter);