[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