[jboss-svn-commits] JBL Code SVN: r19590 - in labs/jbosslabs/labs-3.0-build: core/core-api/src/main/java/org/jboss/labs/injection and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Apr 16 06:57:35 EDT 2008


Author: wrzep
Date: 2008-04-16 06:57:34 -0400 (Wed, 16 Apr 2008)
New Revision: 19590

Added:
   labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/events/AdminEvents.java
   labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/AdminEventsConsumer.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/AdminEventsGenerator.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/AdminEventsListener.java
Removed:
   labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/events/ProjectEventsListener.java
Modified:
   labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/LabsGuiceModule.java
   labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceEventListenerBean.java
   labs/jbosslabs/labs-3.0-build/views/admin/pom.xml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ClearspaceManager.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/Mailer.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/AcceptProject.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/Notifier.java
Log:
JBLAB-904 admin events - to be used in notifications feed implementation

Copied: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/events/AdminEvents.java (from rev 19556, labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/events/ProjectEvents.java)
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/events/AdminEvents.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/events/AdminEvents.java	2008-04-16 10:57:34 UTC (rev 19590)
@@ -0,0 +1,52 @@
+/*
+* 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;
+
+import org.jboss.annotation.ejb.Producer;
+
+import java.util.EventListener;
+
+/**
+ * An interface which defines asynchronous(JMS calls) methods that will
+ * raise events informing about changes in project's structure.
+ *
+ * @author <a href="mailto:rkozmik at redhat.com">Ryszard Kozmik</a>
+ * @author Pawel Wrzeszcz
+ */
+ at Producer
+public interface AdminEvents extends EventListener {
+
+    public void newProjectRequest(String projectId, String projectName, String username);
+
+    public void projectRequestAccepted(String projectId, String projectName, String username);
+    
+    public void projectRequestRejected(String projectId, String projectName, String username);
+
+    public void newJoinRequest(String projectId, String projectName, String username);
+
+    public void joinRequestAccepted(String projectId, String projectName, String username);
+
+    public void joinRequestRejected(String projectId, String projectName, String username);
+
+}
\ No newline at end of file

Deleted: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/events/ProjectEventsListener.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/events/ProjectEventsListener.java	2008-04-16 07:05:05 UTC (rev 19589)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/events/ProjectEventsListener.java	2008-04-16 10:57:34 UTC (rev 19590)
@@ -1,30 +0,0 @@
-/*
-* 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;
-
-public interface ProjectEventsListener {
-
-    public void updated ( Class clazz , Integer id );
-
-}

Modified: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/LabsGuiceModule.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/LabsGuiceModule.java	2008-04-16 07:05:05 UTC (rev 19589)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/LabsGuiceModule.java	2008-04-16 10:57:34 UTC (rev 19590)
@@ -25,11 +25,12 @@
 import com.google.inject.Binder;
 import com.google.inject.Module;
 import org.jboss.labs.auth.AuthenticationService;
+import org.jboss.labs.auth.RoleBinderService;
 import org.jboss.labs.auth.UserService;
-import org.jboss.labs.auth.RoleBinderService;
 import org.jboss.labs.auth.custom.CustomIDService;
+import org.jboss.labs.core.service.LicenseService;
 import org.jboss.labs.core.service.ProjectService;
-import org.jboss.labs.core.service.LicenseService;
+import org.jboss.labs.events.service.EventsService;
 import org.jboss.labs.foo.FooService;
 
 public class LabsGuiceModule implements Module {
@@ -51,6 +52,8 @@
 				new JNDIProvider<LicenseService>("LicenseService/local"));
 		binder.bind(CustomIDService.class).toProvider(
 				new JNDIProvider<CustomIDService>("CustomIDServiceImpl/local"));
-	}
+        binder.bind(EventsService.class).toProvider(
+                new JNDIProvider<EventsService>("EventsServiceBean/local"));
+    }
 
 }

Copied: labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/AdminEventsConsumer.java (from rev 19556, labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/ProjectEventsConsumer.java)
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/AdminEventsConsumer.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/AdminEventsConsumer.java	2008-04-16 10:57:34 UTC (rev 19590)
@@ -0,0 +1,121 @@
+/*
+* 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;
+
+import org.jboss.annotation.ejb.Consumer;
+import org.jboss.labs.events.service.EventListenersStorageServiceInterface;
+
+import javax.ejb.ActivationConfigProperty;
+import javax.ejb.EJB;
+import java.util.List;
+
+/**
+ * Project events consumer which receives all events and propagets them to all listeners.
+ *
+ * @author <a href="mailto:rkozmik at redhat.com">Ryszard Kozmik</a>
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+ at Consumer(activationConfig =
+    {
+        @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue"),
+        @ActivationConfigProperty(propertyName="destination", propertyValue="queue/adminEvents")
+    })
+public class AdminEventsConsumer implements AdminEvents {
+
+    @EJB EventListenersStorageServiceInterface storage;
+
+    public AdminEventsConsumer() {}
+
+    public void newProjectRequest(final String projectId, final String projectName, final String username) {
+        triggerListeners(
+                new Message() {
+                    public void trigger(AdminEvents adminEvents) {
+                        adminEvents.newProjectRequest(projectId, projectName, username);
+                    }
+                }
+        );
+    }
+
+    public void projectRequestAccepted(final String projectId, final String projectName, final String username) {
+        triggerListeners(
+                new Message() {
+                    public void trigger(AdminEvents adminEvents) {
+                        adminEvents.projectRequestAccepted(projectId, projectName, username);
+                    }
+                }
+        );
+    }
+
+    public void projectRequestRejected(final String projectId, final String projectName, final String username) {
+        triggerListeners(
+                new Message() {
+                    public void trigger(AdminEvents adminEvents) {
+                        adminEvents.projectRequestRejected(projectId, projectName, username);
+                    }
+                }
+        );
+    }
+
+    public void newJoinRequest(final String projectId, final String projectName, final String username) {
+        triggerListeners(
+                new Message() {
+                    public void trigger(AdminEvents adminEvents) {
+                        adminEvents.newJoinRequest(projectId, projectName, username);
+                    }
+                }
+        );
+    }
+
+    public void joinRequestAccepted(final String projectId, final String projectName, final String username) {
+         triggerListeners(
+                new Message() {
+                    public void trigger(AdminEvents adminEvents) {
+                        adminEvents.joinRequestAccepted(projectId, projectName, username);
+                    }
+                }
+        );
+    }
+
+    public void joinRequestRejected(final String projectId, final String projectName, final String username) {
+        triggerListeners(
+                new Message() {
+                    public void trigger(AdminEvents adminEvents) {
+                        adminEvents.joinRequestRejected(projectId, projectName, username);
+                    }
+                }
+        );
+    }
+
+    private void triggerListeners(Message message) {
+        @SuppressWarnings("unchecked")
+        List<AdminEvents> list = storage.findAllListeners (this.getClass().getInterfaces()[0]);
+            for ( AdminEvents listener : list ) {
+                message.trigger(listener);
+            }
+    }
+
+    private interface Message {
+        public void trigger(AdminEvents adminEvents);
+    }
+}
\ No newline at end of file

Modified: labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceEventListenerBean.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceEventListenerBean.java	2008-04-16 07:05:05 UTC (rev 19589)
+++ labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceEventListenerBean.java	2008-04-16 10:57:34 UTC (rev 19590)
@@ -23,14 +23,14 @@
 
 package org.jboss.labs.core.service.impl;
 
+import org.jboss.annotation.ejb.Management;
+import org.jboss.annotation.ejb.Service;
 import org.jboss.labs.auth.RoleBinderService;
 import org.jboss.labs.auth.UserService;
-import org.jboss.labs.events.service.EventsService;
 import org.jboss.labs.events.ProjectEvents;
+import org.jboss.labs.events.service.EventsService;
 import org.jboss.labs.exception.auth.NoSuchUserException;
 import org.jboss.labs.exception.auth.NoSuchUserRoleException;
-import org.jboss.annotation.ejb.Management;
-import org.jboss.annotation.ejb.Service;
 import org.jboss.logging.Logger;
 
 import javax.ejb.EJB;
@@ -81,7 +81,6 @@
         public void projectLeadAdded(String username, String projectId) {
             log.info("Added project lead: " + username + " project: " + projectId);
 
-            // TODO uncomment when auth start working properly
             try {
                   roleBinderService.grantUserProjectSuperrole(
                            userService.getUserByLogin(username),

Modified: labs/jbosslabs/labs-3.0-build/views/admin/pom.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/pom.xml	2008-04-16 07:05:05 UTC (rev 19589)
+++ labs/jbosslabs/labs-3.0-build/views/admin/pom.xml	2008-04-16 10:57:34 UTC (rev 19590)
@@ -230,6 +230,25 @@
             </exclusion>
         </exclusions>
     </dependency>
+    <!-- JMS -->
+    <dependency>
+      <groupId>jboss</groupId>
+      <artifactId>jboss-ejb-api</artifactId>
+      <version>4.2.0.GA</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>jboss</groupId>
+      <artifactId>jboss-jaxws</artifactId>
+      <version>1.2.1.GA</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>jboss</groupId>
+      <artifactId>jbossall-client</artifactId>
+      <version>4.2.2.GA</version>
+      <scope>provided</scope>
+    </dependency>
     <!-- Intellij IDEA -->
     <dependency>
         <groupId>javax.faces</groupId>

Added: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/AdminEventsGenerator.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/AdminEventsGenerator.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/AdminEventsGenerator.java	2008-04-16 10:57:34 UTC (rev 19590)
@@ -0,0 +1,150 @@
+/*
+* 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.admin;
+
+import org.jboss.ejb3.mdb.ProducerManager;
+import org.jboss.ejb3.mdb.ProducerObject;
+import org.jboss.labs.events.AdminEvents;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.AutoCreate;
+import org.jboss.seam.annotations.Logger;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.log.Log;
+
+import javax.jms.JMSException;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+
+/**
+ * This class generates admin events by executing asynchronous methods of AdminEvents producer.
+ *
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ * @author <a href="mailto:rkozmik at redhat.com">Ryszard Kozmik</a>
+ */
+ at Name("adminEventsGenerator")
+ at Scope(ScopeType.APPLICATION)
+ at AutoCreate
+public class AdminEventsGenerator implements AdminEvents {
+
+    @Logger private Log log;
+
+    public void newProjectRequest(final String projectId, final String projectName, final String username)  {
+
+        send(
+                new Message() {
+                    public void send(AdminEvents adminEvents) {
+                        adminEvents.newProjectRequest(projectId, projectName, username);
+                    }
+                }
+        );
+    }
+
+    public void projectRequestAccepted(final String projectId, final String projectName, final String username) {
+
+        send(
+                new Message() {
+                    public void send(AdminEvents adminEvents) {
+                        adminEvents.projectRequestAccepted(projectId, projectName, username);
+                    }
+                }
+        );
+    }
+
+    public void projectRequestRejected(final String projectId, final String projectName, final String username) {
+
+        send(
+                new Message() {
+                    public void send(AdminEvents adminEvents) {
+                        adminEvents.projectRequestRejected(projectId, projectName, username);
+                    }
+                }
+        );
+    }
+
+    public void newJoinRequest(final String projectId, final String projectName, final String username) {
+
+        send(
+                new Message() {
+                    public void send(AdminEvents adminEvents) {
+                        adminEvents.newJoinRequest(projectId, projectName, username);
+                    }
+                }
+        );
+    }
+
+    public void joinRequestAccepted(final String projectId, final String projectName, final String username) {
+
+        send(
+                new Message() {
+                    public void send(AdminEvents adminEvents) {
+                        adminEvents.joinRequestAccepted(projectId, projectName, username);
+                    }
+                }
+        );
+    }
+
+    public void joinRequestRejected(final String projectId, final String projectName, final String username) {
+
+        send(
+                new Message() {
+                    public void send(AdminEvents adminEvents) {
+                        adminEvents.joinRequestRejected(projectId, projectName, username);
+                    }
+                }
+        );
+    }
+
+    private void send(Message m) {
+
+        AdminEvents adminEvents;
+        try {
+            InitialContext ctx = new InitialContext();
+            adminEvents = (AdminEvents)ctx.lookup(AdminEvents.class.getName());
+        } catch (NamingException e) {
+            log.warn("AdminEvents not found", e);
+            return;
+        }
+
+        ProducerObject po = (ProducerObject)adminEvents;
+        ProducerManager manager = po.getProducerManager();
+
+        try {
+            manager.connect(); // internally create a JMS connection
+            try{
+                m.send(adminEvents);
+            } finally {
+                manager.close(); // clean up the JMS connection
+            }
+        } catch (JMSException e) {
+            log.warn("JMS connection error", e);
+        }
+    }
+
+    private interface Message {
+        public void send(AdminEvents adminEvents);
+    }
+
+}
\ No newline at end of file

Added: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/AdminEventsListener.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/AdminEventsListener.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/AdminEventsListener.java	2008-04-16 10:57:34 UTC (rev 19590)
@@ -0,0 +1,81 @@
+/*
+* 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.admin;
+
+import com.google.inject.Inject;
+import org.jboss.labs.events.AdminEvents;
+import org.jboss.labs.events.service.EventsService;
+import org.jboss.labs.injection.seam.Guice;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.*;
+import org.jboss.seam.log.Log;
+
+import java.io.Serializable;
+
+
+/**
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ *
+ * Listens for admin events. For testing purposes only.
+ */
+ at Name("adminEventsListener")
+ at Scope(ScopeType.APPLICATION)
+ at Startup
+ at Guice
+public class AdminEventsListener implements AdminEvents, Serializable {
+
+    @Logger private Log log;
+
+    @Inject EventsService eventsService;
+
+    @Create
+    public void onCreate() {
+        eventsService.addEventsListener(this.getClass(), this);
+        log.info("Registered for admin events");
+    }
+
+    public void newProjectRequest(String projectId, String projectName, String username) {
+        log.info("New project request");
+    }
+
+    public void projectRequestAccepted(String projectId, String projectName, String username) {
+        log.info("Project request accepted");
+    }
+
+    public void projectRequestRejected(String projectId, String projectName, String username) {
+        log.info("Project request rejected");
+    }
+
+    public void newJoinRequest(String projectId, String projectName, String username) {
+        log.info("New join project request");
+    }
+
+    public void joinRequestAccepted(String projectId, String projectName, String username) {
+        log.info("Join request accepted");
+    }
+
+    public void joinRequestRejected(String projectId, String projectName, String username) {
+        log.info("Join request rejected");
+    }
+}
\ No newline at end of file

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ClearspaceManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ClearspaceManager.java	2008-04-16 07:05:05 UTC (rev 19589)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ClearspaceManager.java	2008-04-16 10:57:34 UTC (rev 19590)
@@ -68,7 +68,7 @@
                                        user.getID(),
                                        DOCUMENT_TYPE_ID,
                                        null,
-                                       "Main",
+                                       name,
                                        description);
         } catch (Exception e) {
             log.error("Error creating Clearspace space and project page", e);

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/Mailer.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/Mailer.java	2008-04-16 07:05:05 UTC (rev 19589)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/Mailer.java	2008-04-16 10:57:34 UTC (rev 19590)
@@ -27,6 +27,7 @@
 import org.jboss.seam.annotations.In;
 import org.jboss.seam.annotations.Logger;
 import org.jboss.seam.annotations.Name;
+import org.jboss.seam.faces.FacesMessages;
 import org.jboss.seam.faces.Renderer;
 import org.jboss.seam.log.Log;
 
@@ -37,14 +38,20 @@
 
     @In(create=true) private Renderer renderer;
     @Logger private Log log;
+    @In private FacesMessages facesMessages;
 
-    public void send(String emailPage)  {
+    public void send(String emailPage) {
+        send(emailPage, "Failed to send email");
+    }
+
+    public void send(String emailPage, String errorMsg)  {
            try {
               renderer.render(emailPage);
               log.info("Email sent.");
           }
           catch (Exception e) {
-              log.warn(e);
+              facesMessages.add(errorMsg);
+              log.warn("Failed to send email: " + errorMsg, e);
           }
      } 
 

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/AcceptProject.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/AcceptProject.java	2008-04-16 07:05:05 UTC (rev 19589)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/AcceptProject.java	2008-04-16 10:57:34 UTC (rev 19590)
@@ -86,6 +86,8 @@
             return null;
         }
 
+        facesMessages.add("Project '" + projectRequest.getName() + "' created");      
+
         clearspaceManager.createSpace(projectRequest.getProjectId(), projectRequest.getName());
 
         cleanRequest(projectRequest);
@@ -99,8 +101,6 @@
 
         conversation.end();
 
-        facesMessages.add("Project '" + projectRequest.getName() + "' created successfully");
-
         return Pages.REQUESTS_PAGE;
     }
 

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/Notifier.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/Notifier.java	2008-04-16 07:05:05 UTC (rev 19589)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/Notifier.java	2008-04-16 10:57:34 UTC (rev 19590)
@@ -23,6 +23,7 @@
 
 package org.jboss.labs.admin.action.project;
 
+import org.jboss.labs.admin.AdminEventsGenerator;
 import org.jboss.labs.core.model.admin.ProjectRequest;
 import org.jboss.seam.annotations.In;
 import org.jboss.seam.annotations.Logger;
@@ -35,30 +36,39 @@
     
     @In(create = true) private ProjectRequest projectRequest;
 
+    @In private AdminEventsGenerator adminEventsGenerator;
+
     @Logger private Log log;
 
      public void newRequest() {
 
         log.info("New project request: " + projectRequest.getName());
+         
+        adminEventsGenerator.newProjectRequest(projectRequest.getProjectId(),
+                                               projectRequest.getName(),
+                                               projectRequest.getUsername());
     }
 
     public void projectApproved() {
         
         log.info("Project approved: " + projectRequest.getName());
+
+        adminEventsGenerator.projectRequestAccepted(projectRequest.getProjectId(),
+                                               projectRequest.getName(),
+                                               projectRequest.getUsername());
     }
 
     public void projectRejected() {
 
         log.info("Project rejected: " + projectRequest.getName());
+
+        adminEventsGenerator.projectRequestRejected(projectRequest.getProjectId(),
+                                               projectRequest.getName(),
+                                               projectRequest.getUsername());
     }
 
      public void projectCreated() {
 
         log.info("Project created: " + projectRequest.getName());
     }
-
-    public void createProjectFailed() {
-
-        log.info("Create project failed: " + projectRequest.getName());
-    }
 }
\ No newline at end of file




More information about the jboss-svn-commits mailing list