[jboss-svn-commits] JBL Code SVN: r18530 - in labs/jbosslabs/labs-3.0-build: core/core-model/src/main/java/org/jboss/labs/core/model and 4 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Feb 20 11:52:36 EST 2008


Author: wrzep
Date: 2008-02-20 11:52:36 -0500 (Wed, 20 Feb 2008)
New Revision: 18530

Modified:
   labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/core/service/ProjectService.java
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java
   labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceBean.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/UserManager.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/Authenticator.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/joinProject.xhtml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project.xhtml
Log:
JBLAB-913 finished join project impl 


Modified: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/core/service/ProjectService.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/core/service/ProjectService.java	2008-02-20 15:30:43 UTC (rev 18529)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/core/service/ProjectService.java	2008-02-20 16:52:36 UTC (rev 18530)
@@ -26,6 +26,7 @@
 import org.jboss.labs.core.model.Project;
 import org.jboss.labs.core.model.ContributorAgreement;
 import org.jboss.labs.core.model.admin.ProjectRequest;
+import org.jboss.labs.core.model.admin.JoinRequest;
 import org.jboss.labs.exception.admin.CreateProjectException;
 import org.jboss.labs.exception.admin.ProjectNotFoundException;
 
@@ -46,4 +47,6 @@
     boolean canJoin(String name, Project project);
 
     List<ContributorAgreement> getCAsRequiredToJoin(String name, Project project);
+
+    void addUserToProject(JoinRequest joinRequest) throws ProjectNotFoundException;
 }

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java	2008-02-20 15:30:43 UTC (rev 18529)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java	2008-02-20 16:52:36 UTC (rev 18530)
@@ -281,6 +281,31 @@
         }
     }
 
+     public void addContributor(Username contributor) {
+        if (projectLeads == null) {
+            setProjectLeads(Arrays.asList(contributor));
+        } else {
+            projectLeads.add(contributor);
+        }
+    }
+
+    public boolean canJoin(String username) {
+
+        for (Username contributor : contributors) {
+            if (contributor.getUsername().equals(username)) {
+                return false;
+            }
+        }
+
+        for (Username projectLead : projectLeads) {
+            if (projectLead.getUsername().equals(username)) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
     @Transient
     public String getJira() {
         if ((issueTracker == null) || (!IssueTrackerType.JIRA.equals(issueTracker.getType()))) {

Modified: labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceBean.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceBean.java	2008-02-20 15:30:43 UTC (rev 18529)
+++ labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceBean.java	2008-02-20 16:52:36 UTC (rev 18530)
@@ -2,6 +2,7 @@
 
 import org.jboss.labs.core.model.*;
 import org.jboss.labs.core.model.admin.ProjectRequest;
+import org.jboss.labs.core.model.admin.JoinRequest;
 import org.jboss.labs.core.service.ProjectService;
 import org.jboss.labs.exception.admin.CreateProjectException;
 import org.jboss.labs.exception.admin.ProjectNotFoundException;
@@ -41,11 +42,7 @@
         String lu = projectRequest.getLeadUsername();
         Username leadUsername = null;
         try {
-            leadUsername = (Username) em.createQuery("SELECT u FROM Username u WHERE u.username = :username")
-                                                .setParameter("username", lu)
-                                                .getSingleResult();
-
-            System.out.println("leadUsername: " + (leadUsername == null ? "" : leadUsername.getUsername()));
+            leadUsername = getUsername(lu);
         } catch (NoResultException e) {
             // do nothing
         }
@@ -144,6 +141,13 @@
         return em.createQuery("SELECT p FROM Project p").getResultList();
     }
 
+    private Username getUsername(String username) {
+
+        return (Username) em.createQuery("SELECT u FROM Username u WHERE u.username = :username")
+                                                .setParameter("username", username)
+                                                .getSingleResult();
+    }
+
     public Project getProject(String projectId) throws ProjectNotFoundException {
 
         Object o;
@@ -158,6 +162,12 @@
 
     }
 
+    public void addUserToProject(JoinRequest joinRequest) throws ProjectNotFoundException {
 
+        Project p = getProject(joinRequest.getProjectId()); // Yes, we don't need EJB3 call here
 
+        Username u = getUsername(joinRequest.getUsername());
+
+        p.getContributors().add(u);
+    }
 }

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/UserManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/UserManager.java	2008-02-20 15:30:43 UTC (rev 18529)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/UserManager.java	2008-02-20 16:52:36 UTC (rev 18530)
@@ -26,8 +26,10 @@
 import com.google.inject.Inject;
 import org.jboss.labs.core.model.Project;
 import org.jboss.labs.core.model.admin.ProjectRequest;
+import org.jboss.labs.core.model.admin.JoinRequest;
 import org.jboss.labs.core.service.ProjectService;
 import org.jboss.labs.injection.seam.Guice;
+import org.jboss.labs.exception.admin.ProjectNotFoundException;
 import org.jboss.seam.annotations.In;
 import org.jboss.seam.annotations.Logger;
 import org.jboss.seam.annotations.Name;
@@ -40,11 +42,20 @@
 @Guice
 public class UserManager {
 
-    @Logger private Log log;
+    @In(create = true) private JoinRequest joinRequest;
 
+    @Logger Log log;
+
+    @Inject private ProjectService projectService;
+
     public boolean addUserToProject() {
 
-        log.info("addUserToProject");
+        try {
+            projectService.addUserToProject(joinRequest);
+        } catch (ProjectNotFoundException e) {
+            log.warn(e);
+            return false;
+        }
 
         return true;
     }

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/Authenticator.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/Authenticator.java	2008-02-20 15:30:43 UTC (rev 18529)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/Authenticator.java	2008-02-20 16:52:36 UTC (rev 18530)
@@ -77,7 +77,8 @@
             try {
             user = userService.getUserByLogin(login);
             } catch (NoSuchUserException e) {
-                user = new User(); //TODO get rid of this line
+                user = new User(); //TODO get rid of this 2 lines
+                user.setName(actor.getId());
             }
         }
     }

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/joinProject.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/joinProject.xhtml	2008-02-20 15:30:43 UTC (rev 18529)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/joinProject.xhtml	2008-02-20 16:52:36 UTC (rev 18530)
@@ -15,8 +15,8 @@
         <f:facet name="header">Join Project</f:facet>
         <h:form id="mainForm" >
             Do you want to apply to join project #{project.name}?
-            <h:commandButton value="OK" action="#{joinProject.createRequest}"/>
-            <h:commandButton value="Cancel" action="/project.seam"/>
+            <h:commandButton value="Yes" action="#{joinProject.createRequest}"/>
+            <h:commandButton value="No" action="/project.seam"/>
         </h:form>
     </rich:panel>
     

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project.xhtml	2008-02-20 15:30:43 UTC (rev 18529)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project.xhtml	2008-02-20 16:52:36 UTC (rev 18530)
@@ -45,7 +45,8 @@
                         <ui:repeat var="contributor" value="#{project.contributors}">
                             #{contributor.username}
                         </ui:repeat>
-                        <h:commandLink action="#{joinProject.join}" value="Join!" />
+                        <h:commandLink action="#{joinProject.join}" value="Join!"
+                                       rendered="#{project.canJoin(user.name)}"/>
                     </td>
                 </tr>
             </table>




More information about the jboss-svn-commits mailing list