[jboss-svn-commits] JBL Code SVN: r18238 - in labs/jbosslabs/labs-3.0-build: services/events-service/src/main/java/org/jboss/labs/events/service and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Feb 1 04:39:06 EST 2008


Author: unibrew
Date: 2008-02-01 04:39:06 -0500 (Fri, 01 Feb 2008)
New Revision: 18238

Modified:
   labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/events/service/EventsService.java
   labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/service/EventListenersStorageServiceRemote.java
   labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/service/impl/EventListenersStorageService.java
   labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/service/impl/EventsServiceBean.java
Log:
[JBLAB-898] JMS Eventing engine.

Modified: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/events/service/EventsService.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/events/service/EventsService.java	2008-02-01 06:32:55 UTC (rev 18237)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/events/service/EventsService.java	2008-02-01 09:39:06 UTC (rev 18238)
@@ -1,13 +1,41 @@
+/*
+* JBoss Labs. http://labs.jboss.com/jbosslabs
+*
+* Copyright © 2008  Red Hat Middleware, LLC. All rights reserved.
+*
+* This copyrighted material is made available to anyone wishing to use,
+* modify, copy, or redistribute it subject to the terms and conditions
+* of the GNU Lesser General Public License, v. 2.1.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT A WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License, v.2.1 along with this distribution; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+* 02110-1301, USA.
+*
+* Red Hat Author(s): Bob McWhirter, Przemyslaw Dej, Ryszard Kozmik,
+*     Tomasz Szymanski, Adam Warski, Pawel Wrzeszcz
+*/
+
 package org.jboss.labs.events.service;
 
+import java.util.EventListener;
+
 import javax.ejb.Local;
 
 import org.jboss.labs.events.ProjectEventsListener;
 
+/**
+ * @author <a href="mailto:rkozmik at redhat.com">Ryszard Kozmik</a>
+ */
 @Local
 public interface EventsService {
 
-    public void addProjectEventsListener(ProjectEventsListener listener);
-    public void removeProjectEventsListener(ProjectEventsListener listener);
+    public boolean addEventsListener( Class clazz , EventListener listener );
+    public boolean removeEventListener( Class clazz , EventListener listener );
 
 }

Modified: labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/service/EventListenersStorageServiceRemote.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/service/EventListenersStorageServiceRemote.java	2008-02-01 06:32:55 UTC (rev 18237)
+++ labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/service/EventListenersStorageServiceRemote.java	2008-02-01 09:39:06 UTC (rev 18238)
@@ -1,4 +1,43 @@
+/*
+* JBoss Labs. http://labs.jboss.com/jbosslabs
+*
+* Copyright © 2008  Red Hat Middleware, LLC. All rights reserved.
+*
+* This copyrighted material is made available to anyone wishing to use,
+* modify, copy, or redistribute it subject to the terms and conditions
+* of the GNU Lesser General Public License, v. 2.1.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT A WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License, v.2.1 along with this distribution; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+* 02110-1301, USA.
+*
+* Red Hat Author(s): Bob McWhirter, Przemyslaw Dej, Ryszard Kozmik,
+*     Tomasz Szymanski, Adam Warski, Pawel Wrzeszcz
+*/
+
 package org.jboss.labs.events.service;
 
+import java.util.EventListener;
+
+import java.util.List;
+
+import org.jboss.labs.events.service.impl.EventListenersStorageService;
+
+/**
+ * @author <a href="mailto:rkozmik at redhat.com">Ryszard Kozmik</a>
+ */
 public interface EventListenersStorageServiceRemote {
+
+    public boolean addEventListener (Class clazz, EventListener listener);
+    
+    public boolean removeEventListener( EventListener listener);
+    
+    public <T extends EventListener> List<T> findAllListeners ();
+
 }

Modified: labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/service/impl/EventListenersStorageService.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/service/impl/EventListenersStorageService.java	2008-02-01 06:32:55 UTC (rev 18237)
+++ labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/service/impl/EventListenersStorageService.java	2008-02-01 09:39:06 UTC (rev 18238)
@@ -1,40 +1,117 @@
+ /*
+ * JBoss Labs. http://labs.jboss.com/jbosslabs
+ *
+ * Copyright © 2008  Red Hat Middleware, LLC. All rights reserved.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT A WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License, v.2.1 along with this distribution; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ * Red Hat Author(s): Bob McWhirter, Przemyslaw Dej, Ryszard Kozmik,
+ *     Tomasz Szymanski, Adam Warski, Pawel Wrzeszcz
+ */
+
 package org.jboss.labs.events.service.impl;
 
 import java.util.EventListener;
+import java.util.LinkedList;
+import java.util.List;
 import java.util.Set;
 
 import javax.ejb.Remote;
 
 import org.jboss.annotation.ejb.Service;
+import org.jboss.labs.events.ProjectEventsListener;
 import org.jboss.labs.events.service.EventListenersStorageServiceRemote;
 
 
+/**
+ * @author <a href="mailto:rkozmik at redhat.com">Ryszard Kozmik</a>
+ */
 @Service
 @Remote(EventListenersStorageServiceRemote.class)
-public class EventListenersStorageService {
+public class EventListenersStorageService implements EventListenersStorageServiceRemote {
 
     private Set<Entry> listeners;
 
     public EventListenersStorageService() {
     }
+    
+    public boolean addEventListener (Class clazz, EventListener listener) {
+        if (clazz == null || listener==null) {
+            return false;
+        }
+        return listeners.add(new Entry(clazz,listener));
+    }
+    
+    public boolean removeEventListener( EventListener listener) {
+        Entry entry = findListenersEntry( listener );
+        if (entry==null) {
+            return false;
+        }
+        return listeners.remove(entry);
+    }
+    
+    public <T extends EventListener> List<T> findAllListeners () {
+        List<T> list = new LinkedList<T>();
+        for ( Entry entry : listeners ) {
+            if ( entry.getListener().getClass().getName().equals(T.class.getName())) {
+                list.add(entry.getListener());
+            }
+        }
+    }
+    
+    private Entry findListenersEntry ( EventListener listener ) {
+        for ( Entry entry : this.listeners ) {
+            if ( entry.getListener().equals(listener) ) {
+                return entry;
+            }
+        }
+        return null;
+    }
 
     private class Entry {
         
         private Class clazz;
         private EventListener listener;
         
+        public Entry (Class clazz, EventListener listener) {
+            this.clazz = clazz;
+            this.listener = listener;
+        }
+        
         public boolean equals(Object object) {
-            return super.equals(object);
+            Entry entry = (Entry)object;
+            return entry.getClazz().getName().equals(this.getClazz().getName())
+                && entry.getListener().getClass().getName().equals(this.getListener().getClass().getName());
         }
 
         public String toString() {
-            return super.toString();
+            return "EventListener: "+listener.toString()+" Registered by: "+clazz.toString();
         }
 
         public int hashCode() {
-            return super.hashCode();
+            return listener.hashCode()+clazz.hashCode();
         }
         
+        public Class getClazz() {
+            return this.clazz;
+        }
+        
+        public EventListener getListener() {
+            return this.listener;
+        }
+        
     }
 
 }

Modified: labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/service/impl/EventsServiceBean.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/service/impl/EventsServiceBean.java	2008-02-01 06:32:55 UTC (rev 18237)
+++ labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/service/impl/EventsServiceBean.java	2008-02-01 09:39:06 UTC (rev 18238)
@@ -1,17 +1,51 @@
+/*
+* JBoss Labs. http://labs.jboss.com/jbosslabs
+*
+* Copyright © 2008  Red Hat Middleware, LLC. All rights reserved.
+*
+* This copyrighted material is made available to anyone wishing to use,
+* modify, copy, or redistribute it subject to the terms and conditions
+* of the GNU Lesser General Public License, v. 2.1.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT A WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License, v.2.1 along with this distribution; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+* 02110-1301, USA.
+*
+* Red Hat Author(s): Bob McWhirter, Przemyslaw Dej, Ryszard Kozmik,
+*     Tomasz Szymanski, Adam Warski, Pawel Wrzeszcz
+*/
+
 package org.jboss.labs.events.service.impl;
 
+import java.util.EventListener;
+
+import javax.ejb.EJB;
 import javax.ejb.Stateless;
 
 import org.jboss.labs.events.ProjectEventsListener;
+import org.jboss.labs.events.service.EventListenersStorageServiceRemote;
 import org.jboss.labs.events.service.EventsService;
 
+/**
+ * @author <a href="mailto:rkozmik at redhat.com">Ryszard Kozmik</a>
+ */
 @Stateless(name="EventsService")
 public class EventsServiceBean implements EventsService {
 
-    public void addProjectEventsListener(ProjectEventsListener listener) {
+    @EJB EventListenersStorageServiceRemote storage;
+
+    public boolean addEventsListener( Class clazz, EventListener listener ) {
+        return storage.addEventListener( clazz , listener );
     }
 
-    public void removeProjectEventsListener(ProjectEventsListener listener) {
+    public boolean removeEventListener( Class clazz , EventListener listener ) {
+        return storage.removeEventListener( listener );
     }
     
 }




More information about the jboss-svn-commits mailing list