[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