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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Mar 29 12:57:19 EDT 2008


Author: wrzep
Date: 2008-03-29 12:57:19 -0400 (Sat, 29 Mar 2008)
New Revision: 19312

Added:
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Group.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/common/
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/common/GroupsFactory.java
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/License.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/core/core-model/src/main/java/org/jboss/labs/core/model/admin/ProjectRequest.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/services/project-service/src/main/resources/META-INF/persistence.xml
   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/CreateProjectRequest.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/META-INF/persistence.xml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/createProject.xhtml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/overview.xhtml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/ticket.xhtml
Log:
JBLAB-937 Project Groups

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-03-29 16:54:12 UTC (rev 19311)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/core/service/ProjectService.java	2008-03-29 16:57:19 UTC (rev 19312)
@@ -25,6 +25,7 @@
 
 import org.jboss.labs.core.model.ContributorAgreement;
 import org.jboss.labs.core.model.Project;
+import org.jboss.labs.core.model.Group;
 import org.jboss.labs.core.model.admin.JoinRequest;
 import org.jboss.labs.core.model.admin.ProjectRequest;
 import org.jboss.labs.exception.LabsRollbackException;
@@ -58,4 +59,6 @@
     public void addUserToProject(JoinRequest joinRequest) throws NoSuchUserException, LabsRollbackException;
 
     public Project promoteToLead(String projectId, String username) throws NoSuchUserException, LabsRollbackException;
+
+    List<Group> getGroups();
 }

Copied: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Group.java (from rev 19306, 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/Group.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Group.java	2008-03-29 16:57:19 UTC (rev 19312)
@@ -0,0 +1,105 @@
+/*
+* 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.core.model;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.List;
+
+ at Entity
+ at Table(name = "ProjectGroup")
+public class Group implements Serializable {
+
+    @Id @GeneratedValue
+    private Integer id;
+
+    @Version private Integer version;
+
+    private String name;
+
+    @ManyToMany(mappedBy = "groups")
+    
+    private List<Project> projects;
+
+    private static final long serialVersionUID = 7761750715150642005L;
+
+    public Group() {
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getVersion() {
+        return version;
+    }
+
+    public void setVersion(Integer version) {
+        this.version = version;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public List<Project> getProjects() {
+        return projects;
+    }
+
+    public void setProjects(List<Project> projects) {
+        this.projects = projects;
+    }
+
+    public boolean equals(Object o) {
+
+        if (this == o) {
+            return true;
+        }
+        if (!(o instanceof Group)) {
+            return false;
+        }
+
+        Group group = (Group) o;
+
+        return !(name != null ? !name.equals(group.name) : group.name != null);
+
+    }
+
+    public int hashCode() {
+        return (name != null ? name.hashCode() : 0);
+    }
+
+    @Override
+    public String toString() {
+        return "Group(" + id + ", " + name + ")";
+    }
+}
\ No newline at end of file

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/License.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/License.java	2008-03-29 16:54:12 UTC (rev 19311)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/License.java	2008-03-29 16:57:19 UTC (rev 19312)
@@ -148,10 +148,7 @@
 
         License license = (License) o;
 
-        if (licenseVersion != null ? !licenseVersion.equals(license.licenseVersion) : license.licenseVersion != null) {
-            return false;
-        }
-        return !(name != null ? !name.equals(license.name) : license.name != null);
+        return !(licenseVersion != null ? !licenseVersion.equals(license.licenseVersion) : license.licenseVersion != null) && !(name != null ? !name.equals(license.name) : license.name != null);
 
     }
 

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-03-29 16:54:12 UTC (rev 19311)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java	2008-03-29 16:57:19 UTC (rev 19312)
@@ -74,6 +74,9 @@
     @ManyToMany(cascade = {PERSIST, MERGE})
     @JoinTable(name = "Project_ProjectLead")
     private List<Username> projectLeads;
+    @ManyToMany(cascade = PERSIST)
+    @JoinTable(name ="Project_Group")
+    private List<Group> groups;
     
     private static final long serialVersionUID = -7838752150170172376L;
 
@@ -278,6 +281,14 @@
         this.projectLeads = projectLeads;
     }
 
+    public List<Group> getGroups() {
+        return groups;
+    }
+
+    public void setGroups(List<Group> groups) {
+        this.groups = groups;
+    }
+
     @Transient
     public String getOhlohURL() {
         return null; //TODO
@@ -366,15 +377,7 @@
     }
 
     public boolean equals(Object o) {
-    	if (o == null) {
-    		return false;
-    	}
-    	
-    	if (o instanceof Project) {
-    		return id.equals(((Project)o).getId());
-    	}
-    	
-    	return false;
+        return o != null && o instanceof Project && id.equals(((Project) o).getId());
     }
     
     public int hashCode() {

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/ProjectRequest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/ProjectRequest.java	2008-03-29 16:54:12 UTC (rev 19311)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/ProjectRequest.java	2008-03-29 16:57:19 UTC (rev 19312)
@@ -24,9 +24,11 @@
 package org.jboss.labs.core.model.admin;
 
 import org.hibernate.validator.Email;
+import org.jboss.labs.core.model.Group;
 import org.jboss.labs.core.model.License;
 
 import javax.persistence.*;
+import java.util.List;
 
 /**
  * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
@@ -45,9 +47,12 @@
     protected boolean userForum = true;
     protected boolean announceForum = true;
 
-    @OneToOne(cascade = CascadeType.PERSIST)
+    @OneToOne
     protected License license;
 
+    @ManyToMany
+    protected List<Group> groups;
+
     protected String oldProjectUrl;
 
     private static final long serialVersionUID = 3910013618117772511L;
@@ -142,6 +147,14 @@
         this.license = license;
     }
 
+    public List<Group> getGroups() {
+        return groups;
+    }
+
+    public void setGroups(List<Group> groups) {
+        this.groups = groups;
+    }
+
     @Transient
     public boolean isJoinRequest() {
         return true;

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-03-29 16:54:12 UTC (rev 19311)
+++ labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceBean.java	2008-03-29 16:57:19 UTC (rev 19312)
@@ -47,8 +47,7 @@
         p.setName(projectRequest.getName());
 
         String lu = projectRequest.getUsername();
-        Username leadUsername = null;
-        leadUsername = getUsername(lu, true);
+        Username leadUsername = getUsername(lu, true);
 
         leadUsername.addLeadProject(p);
         p.addProjectLead(leadUsername);
@@ -249,4 +248,9 @@
 
         return p;
     }
+
+    @SuppressWarnings(value = "unchecked")
+    public List<Group> getGroups() {
+        return em.createQuery("SELECT g FROM Group g ORDER BY g.name ").getResultList();
+    }
 }

Modified: labs/jbosslabs/labs-3.0-build/services/project-service/src/main/resources/META-INF/persistence.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/project-service/src/main/resources/META-INF/persistence.xml	2008-03-29 16:54:12 UTC (rev 19311)
+++ labs/jbosslabs/labs-3.0-build/services/project-service/src/main/resources/META-INF/persistence.xml	2008-03-29 16:57:19 UTC (rev 19312)
@@ -18,6 +18,7 @@
                 <class>org.jboss.labs.core.model.ReleaseCategory</class>
                 <class>org.jboss.labs.core.model.SignedContributorAgreement</class>
                 <class>org.jboss.labs.core.model.Username</class>
+                <class>org.jboss.labs.core.model.Group</class>
         </persistence-unit>
 </persistence>
 

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-03-29 16:54:12 UTC (rev 19311)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/AcceptProject.java	2008-03-29 16:57:19 UTC (rev 19312)
@@ -26,11 +26,10 @@
 import com.google.inject.Inject;
 import org.jboss.labs.admin.Pages;
 import org.jboss.labs.core.model.admin.ProjectRequest;
-import org.jboss.labs.core.model.admin.JoinRequest;
 import org.jboss.labs.core.model.admin.Request;
 import org.jboss.labs.core.service.ProjectService;
-import org.jboss.labs.injection.seam.Guice;
 import org.jboss.labs.exception.LabsRollbackException;
+import org.jboss.labs.injection.seam.Guice;
 import org.jboss.seam.annotations.In;
 import org.jboss.seam.annotations.Logger;
 import org.jboss.seam.annotations.Name;
@@ -112,6 +111,6 @@
 
         private void cleanRequest(Request request) {
             request.setFinished(true);
-            entityManager.merge(request);
+            //entityManager.merge(request);
     }
 }
\ No newline at end of file

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/CreateProjectRequest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/CreateProjectRequest.java	2008-03-29 16:54:12 UTC (rev 19311)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/CreateProjectRequest.java	2008-03-29 16:57:19 UTC (rev 19312)
@@ -23,25 +23,24 @@
 
 package org.jboss.labs.admin.action.project;
 
+import com.google.inject.Inject;
 import org.jboss.labs.admin.Pages;
+import org.jboss.labs.core.model.License;
 import org.jboss.labs.core.model.admin.ProjectRequest;
 import org.jboss.labs.core.model.auth.User;
-import org.jboss.labs.core.model.License;
+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.injection.seam.Guice;
 import org.jboss.seam.ScopeType;
-import org.jboss.seam.core.Conversation;
+import org.jboss.seam.annotations.Begin;
 import org.jboss.seam.annotations.In;
 import org.jboss.seam.annotations.Name;
 import org.jboss.seam.annotations.Out;
-import org.jboss.seam.annotations.Begin;
+import org.jboss.seam.core.Conversation;
 
 import java.util.List;
 
-import com.google.inject.Inject;
 
-
 @Name("createProject")
 @Guice
 public class CreateProjectRequest {
@@ -55,10 +54,14 @@
 
     @In private LicenseService licenseService;
     @Out(scope = ScopeType.CONVERSATION) private List<License> licenses;
+    //@Out(scope = ScopeType.CONVERSATION) private List<Group> groups;
 
     @In private Conversation conversation;
 
+   // @In private EntityManager entityManager;
+
     @Begin(nested = true)
+    @SuppressWarnings(value = "unchecked")
     public String create() {
 
         req = new ProjectRequest();
@@ -67,7 +70,11 @@
         projectIds = projectService.getProjectIds();
 
         licenses = licenseService.getLicenses();
+        
+     //   groups = entityManager.createQuery("SELECT g FROM Group g ORDER BY g.name").getResultList();
 
+      //  groups = projectService.getGroups();
+
         conversation.setDescription("New Project Request");
 
         return Pages.CREATE_PROJECT_PAGE;

Added: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/common/GroupsFactory.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/common/GroupsFactory.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/common/GroupsFactory.java	2008-03-29 16:57:19 UTC (rev 19312)
@@ -0,0 +1,26 @@
+package org.jboss.labs.admin.common;
+
+import org.jboss.labs.core.model.Group;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.Factory;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+
+import javax.persistence.EntityManager;
+import java.util.List;
+
+/**
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+ at Name("groupsFactory")
+public class GroupsFactory {
+
+    @In(create = true) private EntityManager entityManager;
+
+    @Factory(value = "groups", scope = ScopeType.CONVERSATION)
+    @SuppressWarnings("unchecked")
+    public List<Group> getGroups() {
+
+        return entityManager.createQuery("SELECT g FROM Group g ORDER BY g.name").getResultList();
+    }
+}
\ No newline at end of file

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/META-INF/persistence.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/META-INF/persistence.xml	2008-03-29 16:54:12 UTC (rev 19311)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/META-INF/persistence.xml	2008-03-29 16:57:19 UTC (rev 19312)
@@ -26,6 +26,7 @@
                 <class>org.jboss.labs.core.model.ReleaseCategory</class>
                 <class>org.jboss.labs.core.model.SignedContributorAgreement</class>
                 <class>org.jboss.labs.core.model.Username</class>
+                <class>org.jboss.labs.core.model.Group</class>
         </persistence-unit>
 </persistence>
 

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/createProject.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/createProject.xhtml	2008-03-29 16:54:12 UTC (rev 19311)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/createProject.xhtml	2008-03-29 16:57:19 UTC (rev 19312)
@@ -61,6 +61,16 @@
                     </td>
                 </tr>
                 <tr>
+                    <th>Desired groups</th>
+                    <td>
+                        <h:selectManyListbox value="#{req.groups}" required="true">
+                            <s:selectItems value="#{groups}" var="g"
+                                         label="#{g.name}"/>
+                             <s:convertEntity/>
+                        </h:selectManyListbox>
+                    </td>
+                </tr>
+                <tr>
                     <th>Current project URL (optional)</th>
                     <td><h:inputText value="#{req.oldProjectUrl}"/></td>
                 </tr>
@@ -72,7 +82,6 @@
             </s:validateAll>
             <h:commandButton value="Submit" action="#{requestProject.request}" />
         </h:form>
-
     
 </ui:define> 
 </ui:composition>

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/overview.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/overview.xhtml	2008-03-29 16:54:12 UTC (rev 19311)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/overview.xhtml	2008-03-29 16:57:19 UTC (rev 19312)
@@ -50,6 +50,16 @@
                 </td>
             </tr>
             <tr>
+                    <th>Groups</th>
+                    <td>
+                        <h:selectManyListbox value="#{project.groups}" required="true">
+                            <s:selectItems value="#{groups}" var="g"
+                                         label="#{g.name}"/>
+                             <s:convertEntity/>
+                        </h:selectManyListbox>
+                    </td>
+                </tr>
+            <tr>
                 <th>Quick links:</th>
                 <td>
                     <h:dataTable value="#{project.linkList}" var="link">

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/ticket.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/ticket.xhtml	2008-03-29 16:54:12 UTC (rev 19311)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/ticket.xhtml	2008-03-29 16:57:19 UTC (rev 19312)
@@ -59,6 +59,16 @@
                     <td>#{prjRequest.license.toLicenseString()}</td>
                 </tr>
                 <tr>
+                    <th>Groups</th>
+                    <td>
+                        <h:selectManyListbox value="#{prjRequest.groups}" required="true">
+                            <s:selectItems value="#{groups}" var="g"
+                                         label="#{g.name}"/>
+                             <s:convertEntity/>
+                        </h:selectManyListbox>
+                    </td>
+                </tr>
+                <tr>
                     <th>Current project URL (optional)</th>
                     <td>
                         <h:outputLink value="#{prjRequest.oldProjectUrl}">




More information about the jboss-svn-commits mailing list