Author: mes
Date: 2010-08-31 16:42:42 -0700 (Tue, 31 Aug 2010)
New Revision: 21648
Modified:
core3/event-impl/trunk/src/main/java/org/cytoscape/event/internal/CyListenerAdapter.java
core3/event-impl/trunk/src/main/java/org/cytoscape/event/internal/CyMicroListenerAdapter.java
core3/event-impl/trunk/src/test/java/org/cytoscape/event/CyEventHelperTest.java
Log:
slightly improved unit tests
Modified:
core3/event-impl/trunk/src/main/java/org/cytoscape/event/internal/CyListenerAdapter.java
===================================================================
---
core3/event-impl/trunk/src/main/java/org/cytoscape/event/internal/CyListenerAdapter.java
2010-08-31 23:42:10 UTC (rev 21647)
+++
core3/event-impl/trunk/src/main/java/org/cytoscape/event/internal/CyListenerAdapter.java
2010-08-31 23:42:42 UTC (rev 21648)
@@ -54,10 +54,9 @@
public class CyListenerAdapter {
private static final Logger logger =
LoggerFactory.getLogger(CyListenerAdapter.class);
-
private static final Executor EXEC = Executors.newCachedThreadPool();
+
private final Map<Class<?>,ServiceTracker> serviceTrackers;
-
private final BundleContext bc;
/**
@@ -74,19 +73,14 @@
* Calls each listener found in the Service Registry identified by the
listenerClass
* and filter with the supplied event.
*
- * @param <E> DOCUMENT ME!
- * @param <L> DOCUMENT ME!
- * @param event DOCUMENT ME!
- * @param listenerClass DOCUMENT ME!
+ * @param <E> The type of event.
+ * @param event The event object.
*/
public <E extends CyEvent> void fireSynchronousEvent(final E event) {
final Class<?> listenerClass = event.getListenerClass();
-// logger.debug("ATTEMPTING TO FIRE SYNC: " + event.toString() + "
for " + listenerClass.getName());
-
final Object[] listeners = getListeners(listenerClass);
if ( listeners == null ) {
-// logger.debug("Sync listeners is null");
return;
}
@@ -94,7 +88,6 @@
final Method method =
listenerClass.getMethod("handleEvent", event.getClass());
for (final Object listener : listeners) {
-// logger.debug("SYNC firing event: " +
event.getClass().toString() + " for listener: " + listener.toString());
method.invoke(listenerClass.cast(listener),
event);
}
} catch (NoSuchMethodException e) {
@@ -115,17 +108,14 @@
* and filter with the supplied event in a new thread.<p>This method
should <b>ONLY</b>
* ever be called with a thread safe event object!</p>
*
- * @param <E> DOCUMENT ME!
- * @param <L> DOCUMENT ME!
- * @param event DOCUMENT ME!
- * @param listenerClass DOCUMENT ME!
+ * @param <E> The type of event.
+ * @param event The event object.
*/
public <E extends CyEvent> void fireAsynchronousEvent(final E event) {
final Class listenerClass = event.getListenerClass();
- // logger.debug("ATTEMPTING TO FIRE async: " + event.toString() +
" for " + listenerClass.getName());
+
final Object[] listeners = getListeners(listenerClass);
if ( listeners == null ) {
- // logger.debug("async listeners is null");
return;
}
@@ -133,7 +123,6 @@
final Method method =
listenerClass.getMethod("handleEvent", event.getClass());
for (final Object listener : listeners) {
- // logger.debug("async firing event: " +
event.getClass().toString() + " for listener: " +
listener.getClass().getName());
EXEC.execute(new Runner(method, listener,
event, listenerClass));
}
} catch (NoSuchMethodException e) {
@@ -143,6 +132,17 @@
}
}
+ private Object[] getListeners(Class<?> listenerClass) {
+ if ( !serviceTrackers.containsKey( listenerClass ) ) {
+ //logger.debug("added new service tracker for " +
listenerClass);
+ final ServiceTracker st = new ServiceTracker(bc,
listenerClass.getName(), null);
+ st.open();
+ serviceTrackers.put( listenerClass, st );
+ }
+
+ return serviceTrackers.get(listenerClass).getServices();
+ }
+
private static class Runner implements Runnable {
private final Method method;
private final Object listener;
@@ -168,16 +168,4 @@
}
}
}
-
-
- private Object[] getListeners(Class<?> listenerClass) {
- if ( !serviceTrackers.containsKey( listenerClass ) ) {
- //logger.debug("added new service tracker for " +
listenerClass);
- final ServiceTracker st = new ServiceTracker(bc,
listenerClass.getName(), null);
- st.open();
- serviceTrackers.put( listenerClass, st );
- }
-
- return serviceTrackers.get(listenerClass).getServices();
- }
}
Modified:
core3/event-impl/trunk/src/main/java/org/cytoscape/event/internal/CyMicroListenerAdapter.java
===================================================================
---
core3/event-impl/trunk/src/main/java/org/cytoscape/event/internal/CyMicroListenerAdapter.java
2010-08-31 23:42:10 UTC (rev 21647)
+++
core3/event-impl/trunk/src/main/java/org/cytoscape/event/internal/CyMicroListenerAdapter.java
2010-08-31 23:42:42 UTC (rev 21648)
@@ -151,7 +151,7 @@
// Simply iterates over the provided list of Listeners and
// executes the specified method on each Listener.
- private class ListenerHandler implements InvocationHandler {
+ private static class ListenerHandler implements InvocationHandler {
private final Set<Object> ol;
public ListenerHandler() {
Modified:
core3/event-impl/trunk/src/test/java/org/cytoscape/event/CyEventHelperTest.java
===================================================================
---
core3/event-impl/trunk/src/test/java/org/cytoscape/event/CyEventHelperTest.java
2010-08-31 23:42:10 UTC (rev 21647)
+++
core3/event-impl/trunk/src/test/java/org/cytoscape/event/CyEventHelperTest.java
2010-08-31 23:42:42 UTC (rev 21648)
@@ -57,7 +57,8 @@
*/
public class CyEventHelperTest extends AbstractCyEventHelperTest {
- private ServiceReference serviceRef;
+ private ServiceReference stubServiceRef;
+ private ServiceReference fakeServiceRef;
private BundleContext bc;
/**
@@ -65,20 +66,35 @@
*/
public void setUp() {
service = new StubCyListenerImpl();
- serviceRef = new MockServiceReference();
+ stubServiceRef = new MockServiceReference();
+ fakeServiceRef = new MockServiceReference();
+
bc = new MockBundleContext() {
public ServiceReference
getServiceReference(String clazz) {
- return serviceRef;
+ if ( clazz.equals(
FakeCyListener.class.getName() ) )
+ return fakeServiceRef;
+ else if ( clazz.equals(
StubCyListener.class.getName() ) )
+ return stubServiceRef;
+ else
+ return null;
}
public ServiceReference[]
getServiceReferences(String clazz, String filter)
throws InvalidSyntaxException {
- return new ServiceReference[] {
serviceRef };
+ if ( clazz.equals(
FakeCyListener.class.getName() ) )
+ return new ServiceReference[] {
fakeServiceRef };
+ else if ( clazz.equals(
StubCyListener.class.getName() ) )
+ return new ServiceReference[] {
stubServiceRef };
+ else
+ return null;
}
public Object getService(ServiceReference ref) {
+ if ( ref == stubServiceRef )
return service;
+ else
+ return null;
}
};
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.