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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Feb 20 10:30:43 EST 2008


Author: wrzep
Date: 2008-02-20 10:30:43 -0500 (Wed, 20 Feb 2008)
New Revision: 18529

Added:
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/JoinRequest.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/ProjectRequestWrapper.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/JoinRequestWrapper.java
Removed:
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ProjectRequestWrapper.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/ContributorAgreement.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/JoinNotifier.java
Log:
JBLAB-913 fixed broken build :]


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:11:55 UTC (rev 18528)
+++ 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)
@@ -24,6 +24,7 @@
 package org.jboss.labs.core.service;
 
 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.exception.admin.CreateProjectException;
 import org.jboss.labs.exception.admin.ProjectNotFoundException;
@@ -41,4 +42,8 @@
     public Project getProject(String projectId) throws ProjectNotFoundException;
 
     void createProject(ProjectRequest projectRequest) throws CreateProjectException;
+
+    boolean canJoin(String name, Project project);
+
+    List<ContributorAgreement> getCAsRequiredToJoin(String name, Project project);
 }

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/ContributorAgreement.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/ContributorAgreement.java	2008-02-20 15:11:55 UTC (rev 18528)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/ContributorAgreement.java	2008-02-20 15:30:43 UTC (rev 18529)
@@ -34,7 +34,8 @@
     private Integer id;
     @Version
     private Integer version;
-    
+
+    private String name;
     private String url;
     @ManyToMany(mappedBy = "requiredContributorAgreementList")
     private List<Project> projectList;
@@ -103,4 +104,12 @@
     public void setSignedContributorAgreementList(List<SignedContributorAgreement> signedContributorAgreementList) {
         this.signedContributorAgreementList = signedContributorAgreementList;
     }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
 }

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:11:55 UTC (rev 18528)
+++ 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)
@@ -23,6 +23,8 @@
 
 package org.jboss.labs.core.model;
 
+import org.jboss.labs.core.model.auth.User;
+
 import javax.persistence.*;
 import java.io.Serializable;
 import java.util.Arrays;

Added: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/JoinRequest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/JoinRequest.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/JoinRequest.java	2008-02-20 15:30:43 UTC (rev 18529)
@@ -0,0 +1,83 @@
+/*
+* 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.admin;
+
+import org.hibernate.validator.Email;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+/**
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+
+ at Entity
+public class JoinRequest implements Serializable {
+
+ private static final long serialVersionUID = -7477176000123883280L;
+
+    @Id @GeneratedValue private int id;
+    private String projectId;
+    private String username;
+
+    public JoinRequest() {}
+
+    public JoinRequest(String projectId, String username) {
+        this.projectId = projectId;
+        this.username = username;
+    }
+
+    /* getters and setters */
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(String projectId) {
+        this.projectId = projectId;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    @Override
+    public String toString() {
+        return "JoinRequest(" + username + ", " + projectId + ")";
+    }
+}
\ 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/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:11:55 UTC (rev 18528)
+++ 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)
@@ -7,18 +7,20 @@
 import org.jboss.labs.exception.admin.ProjectNotFoundException;
 
 import javax.ejb.Stateless;
+import javax.ejb.Stateful;
 import javax.jws.WebService;
 import javax.persistence.EntityManager;
 import javax.persistence.NoResultException;
 import javax.persistence.PersistenceContext;
-import java.util.List;
+import javax.persistence.PersistenceContextType;
+import java.util.*;
 
- at Stateless(name="ProjectService")
+ at Stateful(name="ProjectService")
 @WebService(endpointInterface="org.jboss.labs.core.service.ProjectWebService")
 public class ProjectServiceBean implements ProjectService {
                                          //  ProjectServiceWebService {
     
-    @PersistenceContext(unitName = "core_model")
+    @PersistenceContext(unitName = "core_model", type = PersistenceContextType.EXTENDED)
     private EntityManager em;
 
     public ProjectServiceBean() {
@@ -73,6 +75,65 @@
         em.persist(p);
     }
 
+    public boolean canJoin(String username, Project project) {
+
+        List<ContributorAgreement> rca = project.getRequiredContributorAgreementList();
+
+        if ((rca == null) || (rca.isEmpty())) {
+            return true;
+        }
+
+        @SuppressWarnings("unchecked")
+        List<SignedContributorAgreement> sca = (List<SignedContributorAgreement>)
+                em.createQuery("SELECT u.signedContributorAgreementList FROM Username u WHERE u.username = :username")
+                .setParameter("username", username).getResultList();
+
+        if (sca.isEmpty()) {
+            return false;
+        }
+
+        Set<ContributorAgreement> ca = new HashSet<ContributorAgreement>();
+
+        for (SignedContributorAgreement signedContributorAgreement : sca) {
+            ca.add(signedContributorAgreement.getContributorAgreement());
+        }
+
+        for (ContributorAgreement contributorAgreement : rca) {
+            if (!ca.contains(contributorAgreement)) {
+                return false;    
+            }
+        }
+
+        return true;
+    }
+
+    public List<ContributorAgreement> getCAsRequiredToJoin(String username, Project project) {
+
+        List<ContributorAgreement> rcal = project.getRequiredContributorAgreementList();
+
+        if ((rcal == null) || (rcal.isEmpty())) {
+            return new ArrayList<ContributorAgreement>();
+        }
+
+        List<ContributorAgreement> rca = new ArrayList<ContributorAgreement>();
+        Collections.copy(rca, rcal);
+
+        @SuppressWarnings("unchecked")
+        List<SignedContributorAgreement> sca = (List<SignedContributorAgreement>)
+                em.createQuery("SELECT u.signedContributorAgreementList FROM Username u WHERE u.username = :username")
+                .setParameter("username", username).getResultList();
+
+        Set<ContributorAgreement> ca = new HashSet<ContributorAgreement>();
+
+        for (SignedContributorAgreement signedContributorAgreement : sca) {
+            ca.add(signedContributorAgreement.getContributorAgreement());
+        }
+
+        rca.removeAll(ca);
+
+        return rca;
+    }
+
     @SuppressWarnings("unchecked")
     public List<String> getProjectIds() {
         return em.createQuery("SELECT p.projectId FROM Project p").getResultList();

Deleted: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ProjectRequestWrapper.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ProjectRequestWrapper.java	2008-02-20 15:11:55 UTC (rev 18528)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ProjectRequestWrapper.java	2008-02-20 15:30:43 UTC (rev 18529)
@@ -1,56 +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.admin;
-
-import org.jboss.labs.core.model.admin.ProjectRequest;
-import org.jboss.seam.ScopeType;
-import org.jboss.seam.annotations.In;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Unwrap;
-
-import javax.persistence.EntityManager;
-import java.io.Serializable;
-
-/**
- * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
- */
- at Name("projectRequest")
-public class ProjectRequestWrapper implements Serializable {
-    
-    private static final long serialVersionUID = -3179237574473130507L;
-
-    @In(required = false, scope = ScopeType.BUSINESS_PROCESS) private Integer projectRequestId;
-
-    @In(create = true) private EntityManager entityManager;
-
-    @Unwrap
-    public ProjectRequest getProjectRequest() {
-
-        if (projectRequestId != null) {
-            return entityManager.find(ProjectRequest.class, projectRequestId);
-        }
-
-        return new ProjectRequest();
-    }
-}
\ No newline at end of file

Added: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/ProjectRequestWrapper.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/ProjectRequestWrapper.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/ProjectRequestWrapper.java	2008-02-20 15:30:43 UTC (rev 18529)
@@ -0,0 +1,56 @@
+/*
+* 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.action.project;
+
+import org.jboss.labs.core.model.admin.ProjectRequest;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Unwrap;
+
+import javax.persistence.EntityManager;
+import java.io.Serializable;
+
+/**
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+ at Name("projectRequest")
+public class ProjectRequestWrapper implements Serializable {
+    
+    private static final long serialVersionUID = -3179237574473130507L;
+
+    @In(required = false, scope = ScopeType.BUSINESS_PROCESS) private Integer projectRequestId;
+
+    @In(create = true) private EntityManager entityManager;
+
+    @Unwrap
+    public ProjectRequest getProjectRequest() {
+
+        if (projectRequestId != null) {
+            return entityManager.find(ProjectRequest.class, projectRequestId);
+        }
+
+        return new ProjectRequest();
+    }
+}
\ No newline at end of file

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/JoinNotifier.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/JoinNotifier.java	2008-02-20 15:11:55 UTC (rev 18528)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/JoinNotifier.java	2008-02-20 15:30:43 UTC (rev 18529)
@@ -24,6 +24,7 @@
 package org.jboss.labs.admin.action.user;
 
 import org.jboss.labs.core.model.admin.ProjectRequest;
+import org.jboss.labs.core.model.admin.JoinRequest;
 import org.jboss.seam.annotations.In;
 import org.jboss.seam.annotations.Logger;
 import org.jboss.seam.annotations.Name;
@@ -33,21 +34,23 @@
 @Name("joinNotifier")
 public class JoinNotifier {
 
+    @In(create = true) private JoinRequest joinRequest;
+
     @Logger private Log log;
 
     public void newRequest() {
-        log.info("New join request.");
+        log.info("New join request " + joinRequest);
     }
 
     public void approved() {
-        log.info("Reqest approved.");
+        log.info("Reqest approved " + joinRequest);
     }
 
     public void rejected() {
-        log.info("Request rejected.");
+        log.info("Request rejected " + joinRequest);
     }
 
     public void userAdded() {
-        log.info("User added");
+        log.info("User added " + joinRequest);
     }
 }
\ No newline at end of file

Added: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/JoinRequestWrapper.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/JoinRequestWrapper.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/JoinRequestWrapper.java	2008-02-20 15:30:43 UTC (rev 18529)
@@ -0,0 +1,57 @@
+/*
+* 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.action.user;
+
+import org.jboss.labs.core.model.admin.ProjectRequest;
+import org.jboss.labs.core.model.admin.JoinRequest;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Unwrap;
+
+import javax.persistence.EntityManager;
+import java.io.Serializable;
+
+/**
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+ at Name("joinRequest")
+public class JoinRequestWrapper implements Serializable {
+
+    private static final long serialVersionUID = -9172347574473130507L;
+
+    @In(required = false, scope = ScopeType.BUSINESS_PROCESS) private Integer joinRequestId;
+
+    @In(create = true) private EntityManager entityManager;
+
+    @Unwrap
+    public JoinRequest getJoinRequest() {
+
+        if (joinRequestId != null) {
+            return entityManager.find(JoinRequest.class, joinRequestId);
+        }
+
+        return new JoinRequest();
+    }
+}
\ No newline at end of file




More information about the jboss-svn-commits mailing list