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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jan 29 05:30:34 EST 2008


Author: wrzep
Date: 2008-01-29 05:30:34 -0500 (Tue, 29 Jan 2008)
New Revision: 18182

Added:
   labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/exception/admin/
   labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/exception/admin/CreateProjectException.java
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/
   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/views/admin/src/main/java/org/jboss/labs/admin/AdminProjectRequest.java
Removed:
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ProjectRequest.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/Forum.java
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/IssueTracker.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/Repository.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/pom.xml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/Notifier.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ProjectManager.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/RequestProject.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ReviewProjectRequest.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/createProject.jpdl.xml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/createProject.xhtml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml
Log:
JBLAB-904 create project


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-01-29 07:47:57 UTC (rev 18181)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/core/service/ProjectService.java	2008-01-29 10:30:34 UTC (rev 18182)
@@ -1,10 +1,20 @@
 package org.jboss.labs.core.service;
 
 import org.jboss.labs.core.model.Project;
+import org.jboss.labs.core.model.admin.ProjectRequest;
+import org.jboss.labs.exception.admin.CreateProjectException;
 
 import javax.ejb.Local;
+import java.util.List;
 
 @Local
 public interface ProjectService {
+
+    public List<String> getProjectIds();
+
+    public List<Project> getProjects();
+
     public Project getProject(String projectId);
+
+    void createProject(ProjectRequest projectRequest) throws CreateProjectException;
 }

Added: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/exception/admin/CreateProjectException.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/exception/admin/CreateProjectException.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/exception/admin/CreateProjectException.java	2008-01-29 10:30:34 UTC (rev 18182)
@@ -0,0 +1,15 @@
+package org.jboss.labs.exception.admin;
+
+import org.jboss.labs.exception.LabsException;
+
+/**
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+public class CreateProjectException extends LabsException {
+
+    private static final long serialVersionUID = -2581633483286436366L;
+
+    public CreateProjectException(String msg) {
+        super(msg);
+    }
+}

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Forum.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Forum.java	2008-01-29 07:47:57 UTC (rev 18181)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Forum.java	2008-01-29 10:30:34 UTC (rev 18182)
@@ -1,16 +1,10 @@
 package org.jboss.labs.core.model;
 
-import java.io.Serializable;
-
-import java.util.List;
-
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
-import javax.persistence.ManyToOne;
-import javax.persistence.OneToMany;
-import javax.persistence.OneToOne;
 import javax.persistence.Version;
+import java.io.Serializable;
 
 @Entity
 public class Forum implements Serializable {
@@ -27,6 +21,11 @@
     public Forum() {
     }
 
+    public Forum(String name, String forumId) {
+        this.name = name;
+        this.forumId = forumId;
+    }
+
     public Integer getId() {
         return id;
     }

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/IssueTracker.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/IssueTracker.java	2008-01-29 07:47:57 UTC (rev 18181)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/IssueTracker.java	2008-01-29 10:30:34 UTC (rev 18182)
@@ -1,11 +1,10 @@
 package org.jboss.labs.core.model;
 
-import java.io.Serializable;
-
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.Version;
+import java.io.Serializable;
 
 @Entity
 public class IssueTracker implements Serializable {
@@ -19,6 +18,11 @@
     public IssueTracker() {
     }
 
+    public IssueTracker(String key, IssueTrackerType type) {
+        this.key = key;
+        this.type = type;
+    }
+
     @Id @GeneratedValue
     public Integer getId() {
         return id;

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-01-29 07:47:57 UTC (rev 18181)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java	2008-01-29 10:30:34 UTC (rev 18182)
@@ -1,19 +1,10 @@
 package org.jboss.labs.core.model;
 
+import javax.persistence.*;
 import java.io.Serializable;
-
 import java.util.List;
 
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.ManyToMany;
-import javax.persistence.OneToMany;
-import javax.persistence.OneToOne;
-import javax.persistence.Transient;
-import javax.persistence.Version;
 
-
 @Entity
 public class Project implements Serializable {
     
@@ -30,31 +21,31 @@
     private String documentationURL;
     private String ohlohId;
     
-    @OneToOne
+    @OneToOne(cascade = CascadeType.PERSIST)
     private Repository anonymusRepository;
-    @OneToOne
+    @OneToOne(cascade = CascadeType.PERSIST)
     private Repository commiterRepository;
-    @OneToOne
+    @OneToOne(cascade = CascadeType.PERSIST)
     private IssueTracker issueTracker;
-    @ManyToMany
+    @ManyToMany(cascade = CascadeType.PERSIST)
     private List<License> licenseList;
-    @ManyToMany
+    @ManyToMany(cascade = CascadeType.PERSIST)
     private List<ContributorAgreement> requiredContributorAgreementList;
-    @OneToMany(mappedBy = "project")
+    @OneToMany(mappedBy = "project", cascade = CascadeType.PERSIST)
     private List<ProjectMembership> projectMembershipList;
-    @OneToMany
+    @OneToMany(cascade = CascadeType.PERSIST)
     private List<Link> linkList;
-    @OneToMany(mappedBy = "project")
+    @OneToMany(mappedBy = "project", cascade = CascadeType.PERSIST)
     private List<Blog> blogList;
-    @OneToMany(mappedBy = "project")
+    @OneToMany(mappedBy = "project", cascade = CascadeType.PERSIST)
     private List<Release> releaseList;
-    @OneToOne
+    @OneToOne(cascade = CascadeType.PERSIST)
     private Forum devForum;
-    @OneToOne
+    @OneToOne(cascade = CascadeType.PERSIST)
     private Forum userForum;
-    @OneToOne
+    @OneToOne(cascade = CascadeType.PERSIST)
     private Blog mainBlog;
-    @OneToMany
+    @OneToMany(cascade = CascadeType.PERSIST)
     private List<ProjectRole> projectRoleList;
 
 

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Repository.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Repository.java	2008-01-29 07:47:57 UTC (rev 18181)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Repository.java	2008-01-29 10:30:34 UTC (rev 18182)
@@ -1,11 +1,10 @@
 package org.jboss.labs.core.model;
 
-import java.io.Serializable;
-
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.Version;
+import java.io.Serializable;
 
 @Entity
 public class Repository implements Serializable {
@@ -18,6 +17,10 @@
     public Repository() {
     }
 
+    public Repository(RepositoryType type) {
+        this.type = type;
+    }
+
     @Id @GeneratedValue
     public Integer getId() {
         return id;

Added: 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	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/ProjectRequest.java	2008-01-29 10:30:34 UTC (rev 18182)
@@ -0,0 +1,103 @@
+package org.jboss.labs.core.model.admin;
+
+import java.io.Serializable;
+
+/**
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+
+public class ProjectRequest implements Serializable {
+
+    protected String name;
+    protected String leadUsername;
+    protected String projectId;
+    protected String email;
+    protected String jiraKey;
+    protected boolean repository = true;
+    protected boolean jira = true;
+    protected boolean devForum = true;
+    protected boolean userForum = true;
+    protected boolean announceForum = true;
+
+    /* getters and setters */
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(String projectId) {
+        this.projectId = projectId;
+    }
+    
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getJiraKey() {
+        return jiraKey;
+    }
+
+    public void setJiraKey(String jiraKey) {
+        this.jiraKey = jiraKey;
+    }
+
+    public boolean isRepository() {
+        return repository;
+    }
+
+    public void setRepository(boolean repository) {
+        this.repository = repository;
+    }
+
+    public boolean isJira() {
+        return jira;
+    }
+
+    public void setJira(boolean jira) {
+        this.jira = jira;
+    }
+
+    public boolean isDevForum() {
+        return devForum;
+    }
+
+    public void setDevForum(boolean devForum) {
+        this.devForum = devForum;
+    }
+
+    public boolean isUserForum() {
+        return userForum;
+    }
+
+    public void setUserForum(boolean userForum) {
+        this.userForum = userForum;
+    }
+
+    public boolean isAnnounceForum() {
+        return announceForum;
+    }
+
+    public void setAnnounceForum(boolean announceForum) {
+        this.announceForum = announceForum;
+    }
+
+    public String getLeadUsername() {
+        return leadUsername;
+    }
+
+    public void setLeadUsername(String leadUsername) {
+        this.leadUsername = leadUsername;
+    }
+}
\ 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-01-29 07:47:57 UTC (rev 18181)
+++ labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceBean.java	2008-01-29 10:30:34 UTC (rev 18182)
@@ -1,28 +1,70 @@
 package org.jboss.labs.core.service.impl;
 
+import org.jboss.labs.core.model.Project;
+import org.jboss.labs.core.model.admin.ProjectRequest;
 import org.jboss.labs.core.service.ProjectService;
-import org.jboss.labs.core.model.Project;
+import org.jboss.labs.exception.admin.CreateProjectException;
 
 import javax.ejb.Stateless;
-
-//import javax.jws.WebService;
-
+import javax.jws.WebService;
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceContext;
-import javax.jws.WebService;
+import java.util.List;
 
 @Stateless(name="ProjectService")
 @WebService(endpointInterface="org.jboss.labs.core.service.ProjectWebService")
 public class ProjectServiceBean implements ProjectService {
                                          //  ProjectServiceWebService {
+    
     @PersistenceContext(unitName = "core_model")
     private EntityManager em;
 
     public ProjectServiceBean() {
     }
 
+    public void createProject(ProjectRequest projectRequest) throws CreateProjectException {
+         
+        String projectId = projectRequest.getProjectId();
+
+        if (getProjectIds().contains(projectId)) {
+            throw new CreateProjectException("Project with id '" + projectId +"' already exists.");        
+        }
+
+        Project p = new Project();
+        p.setProjectId(projectId);
+        p.setName(projectRequest.getName());
+
+       /* if (repository) {
+            Repository r = new Repository(RepositoryType.SVN);
+            p.setAnonymusRepository(r);
+            p.setCommiterRepository(r);
+        }
+
+        if (jira) {
+            IssueTracker it = new IssueTracker(jiraKey, IssueTrackerType.JIRA);
+            p.setIssueTracker(it);
+        }*/
+
+        // TODO forums
+
+        em.persist(p);
+    }
+
+    @SuppressWarnings("unchecked")
+    public List<String> getProjectIds() {
+        return em.createQuery("SELECT p.projectId FROM Project p").getResultList();
+    }
+
+    @SuppressWarnings("unchecked")
+    public List<Project> getProjects() {
+        return em.createQuery("SELECT p FROM Project p").getResultList();
+    }
+
     public Project getProject(String projectId) {
 
         return (Project) em.createQuery("SELECT p FROM Project p WHERE p.projectId = :projectId").setParameter("projectId", projectId).getSingleResult();
     }
+
+
+
 }

Modified: labs/jbosslabs/labs-3.0-build/views/admin/pom.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/pom.xml	2008-01-29 07:47:57 UTC (rev 18181)
+++ labs/jbosslabs/labs-3.0-build/views/admin/pom.xml	2008-01-29 10:30:34 UTC (rev 18182)
@@ -98,6 +98,10 @@
             <groupId>javax.transaction</groupId>
 			<artifactId>jta</artifactId>
       </exclusion>
+             <exclusion>
+                <groupId>org.hibernate</groupId>
+                <artifactId>hibernate</artifactId>
+            </exclusion>
         </exclusions>
     </dependency>
     <dependency>
@@ -109,12 +113,22 @@
                 <groupId>javax.transaction</groupId>
                 <artifactId>jta</artifactId>
             </exclusion>
+            <exclusion>
+                <groupId>org.hibernate</groupId>
+                <artifactId>hibernate</artifactId>
+            </exclusion>
         </exclusions>
     </dependency>
      <dependency>
       <groupId>org.hibernate</groupId>
       <artifactId>hibernate-commons-annotations</artifactId>
       <version>3.3.0.ga</version>
+         <exclusions>
+      <exclusion>
+                <groupId>org.hibernate</groupId>
+                <artifactId>hibernate</artifactId>
+            </exclusion>
+        </exclusions>
     </dependency>
     <!-- jbpm -->
      <dependency>

Added: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/AdminProjectRequest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/AdminProjectRequest.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/AdminProjectRequest.java	2008-01-29 10:30:34 UTC (rev 18182)
@@ -0,0 +1,78 @@
+package org.jboss.labs.admin;
+
+import org.hibernate.validator.Email;
+import org.jboss.labs.core.model.admin.ProjectRequest;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.intercept.BypassInterceptors;
+
+import java.io.Serializable;
+
+/**
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+ at Name("projectRequest")
+ at BypassInterceptors
+ at Scope(ScopeType.BUSINESS_PROCESS) //TODO id only
+public class AdminProjectRequest extends ProjectRequest implements Serializable {
+
+    private String escape(String string, String w) {
+
+        StringBuilder sb = new StringBuilder();
+
+        for (int i = 0; i < string.length(); i++) {
+            char c = string.charAt(i);
+            if (Character.isLetterOrDigit(c)) {
+                sb.append(c);
+            } else {
+                if (Character.isWhitespace(c)) {
+                    sb.append(w);
+                }
+            }
+        }
+
+        return sb.toString();
+    }
+
+    /* getters and setters */
+
+     public String getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(String projectId) {
+        if (projectId != null) {
+            this.projectId = projectId.toLowerCase();   
+        }
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+
+        if (name != null) {
+            if (projectId == null) {
+
+                String projectId = escape(name.toLowerCase(), "-");
+                setProjectId(projectId);
+            }
+            if (jiraKey == null) {
+                String jiraKey = escape(name.toUpperCase().replace("JBOSS", "JB"), "");
+                setJiraKey(jiraKey);
+            }
+        }
+    }
+
+    @Email
+    public String getEmail() {
+        return email;
+    }                                                                                                                                                                                    
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+}

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/Notifier.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/Notifier.java	2008-01-29 07:47:57 UTC (rev 18181)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/Notifier.java	2008-01-29 10:30:34 UTC (rev 18182)
@@ -10,7 +10,8 @@
 @Name("notifier")
 public class Notifier {
     
-    @In(scope= ScopeType.BUSINESS_PROCESS) ProjectRequest projectRequest;
+    @In(scope= ScopeType.BUSINESS_PROCESS)
+    AdminProjectRequest projectRequest;
 
     @Logger private Log log;
 
@@ -28,4 +29,14 @@
 
         log.info("Project rejected: " + projectRequest.getName());
     }
+
+     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

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ProjectManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ProjectManager.java	2008-01-29 07:47:57 UTC (rev 18181)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ProjectManager.java	2008-01-29 10:30:34 UTC (rev 18182)
@@ -1,24 +1,41 @@
 package org.jboss.labs.admin;
 
+import com.google.inject.Inject;
+import org.jboss.labs.core.model.Project;
+import org.jboss.labs.core.service.ProjectService;
+import org.jboss.labs.injection.seam.Guice;
 import org.jboss.seam.ScopeType;
 import org.jboss.seam.annotations.In;
 import org.jboss.seam.annotations.Logger;
 import org.jboss.seam.annotations.Name;
 import org.jboss.seam.log.Log;
 
+import java.util.List;
 
+
 @Name("projectManager")
+ at Guice
 public class ProjectManager {
 
-    @In(scope= ScopeType.BUSINESS_PROCESS) private ProjectRequest projectRequest;
+    @In(scope= ScopeType.BUSINESS_PROCESS, required = false) private AdminProjectRequest projectRequest;
 
-  
+    @Inject private ProjectService projectService;
 
     @Logger private Log log;
 
-    public void createProject() {
+    public boolean createProject() {
 
-        log.info("New project request: " + projectRequest.getName());
+        try {
+            projectService.createProject(projectRequest);
+        } catch (Exception e) {
+            log.warn(e);
+            return false;
+        }
+        
+        return true;
+    }
 
+    public List<Project> getProjects() {
+        return projectService.getProjects();
     }
 }
\ No newline at end of file

Deleted: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ProjectRequest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ProjectRequest.java	2008-01-29 07:47:57 UTC (rev 18181)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ProjectRequest.java	2008-01-29 10:30:34 UTC (rev 18182)
@@ -1,133 +0,0 @@
-package org.jboss.labs.admin;
-
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Scope;
-import org.jboss.seam.annotations.intercept.BypassInterceptors;
-import org.jboss.seam.ScopeType;
-import org.hibernate.validator.Email;
-
-import java.io.Serializable;
-
-/**
- * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
- */
- at Name("projectRequest")
- at BypassInterceptors
- at Scope(ScopeType.BUSINESS_PROCESS) //TODO id only
-public class ProjectRequest implements Serializable {
-
-    private String name;
-    private String projectId;
-    private String email;
-    private String jiraKey;
-    private boolean repository = true;
-    private boolean jira = true;
-    private boolean devForum = true;
-    private boolean userForum = true;
-    private boolean announceForum = true;
-
-    private String escape(String string, String w) {
-
-        StringBuilder sb = new StringBuilder();
-
-        for (int i = 0; i < string.length(); i++) {
-            char c = string.charAt(i);
-            if (Character.isLetterOrDigit(c)) {
-                sb.append(c);
-            } else {
-                if (Character.isWhitespace(c)) {
-                    sb.append(w);
-                }
-            }
-        }
-
-        return sb.toString();
-    }
-
-    /* getters and setters */
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-
-        if (name != null) {
-            if (projectId == null) {
-
-                String projectId = escape(name.toLowerCase(), "-");
-                setProjectId(projectId);
-            }
-            if (jiraKey == null) {
-                String jiraKey = escape(name.toUpperCase().replace("JBOSS", "JB"), "");
-                setJiraKey(jiraKey);
-            }
-        }
-    }
-
-    public String getProjectId() {
-        return projectId;
-    }
-
-    public void setProjectId(String projectId) {
-        this.projectId = projectId;
-    }
-
-    @Email
-    public String getEmail() {
-        return email;
-    }                                                                                                                                                                                    
-
-    public void setEmail(String email) {
-        this.email = email;
-    }
-
-    public String getJiraKey() {
-        return jiraKey;
-    }
-
-    public void setJiraKey(String jiraKey) {
-        this.jiraKey = jiraKey;
-    }
-
-    public boolean isRepository() {
-        return repository;
-    }
-
-    public void setRepository(boolean repository) {
-        this.repository = repository;
-    }
-
-    public boolean isJira() {
-        return jira;
-    }
-
-    public void setJira(boolean jira) {
-        this.jira = jira;
-    }
-
-    public boolean isDevForum() {
-        return devForum;
-    }
-
-    public void setDevForum(boolean devForum) {
-        this.devForum = devForum;
-    }
-
-    public boolean isUserForum() {
-        return userForum;
-    }
-
-    public void setUserForum(boolean userForum) {
-        this.userForum = userForum;
-    }
-
-    public boolean isAnnounceForum() {
-        return announceForum;
-    }
-
-    public void setAnnounceForum(boolean announceForum) {
-        this.announceForum = announceForum;
-    }
-}

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/RequestProject.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/RequestProject.java	2008-01-29 07:47:57 UTC (rev 18181)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/RequestProject.java	2008-01-29 10:30:34 UTC (rev 18182)
@@ -5,6 +5,7 @@
 import org.jboss.seam.annotations.Name;
 import org.jboss.seam.annotations.Out;
 import org.jboss.seam.annotations.bpm.CreateProcess;
+import org.jboss.seam.bpm.Actor;
 import org.jboss.seam.faces.FacesMessages;
 
 /**
@@ -13,12 +14,16 @@
 @Name("requestProject")
 public class RequestProject {
 
-    @In @Out(scope= ScopeType.BUSINESS_PROCESS) private ProjectRequest projectRequest;
+    @In @Out(scope= ScopeType.BUSINESS_PROCESS) private AdminProjectRequest projectRequest;
+    @In
+    Actor actor;
     @In private FacesMessages facesMessages;
 
     @CreateProcess(definition = "createProject")
     public String request() {
 
+        projectRequest.setLeadUsername(actor.getId());
+
         facesMessages.add("You request has been sent to BMW.");  
 
         return Pages.CONFIRMATION_PAGE;

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ReviewProjectRequest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ReviewProjectRequest.java	2008-01-29 07:47:57 UTC (rev 18181)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ReviewProjectRequest.java	2008-01-29 10:30:34 UTC (rev 18182)
@@ -21,7 +21,7 @@
 public class ReviewProjectRequest {
 
     @Out(required = false, scope= ScopeType.CONVERSATION) private long tId;
-    @Out(required = false, scope= ScopeType.CONVERSATION) private ProjectRequest prjRequest;
+    @Out(required = false, scope= ScopeType.CONVERSATION) private AdminProjectRequest prjRequest;
 
     @Inject private FooService fooService;
 
@@ -29,7 +29,7 @@
 
     @Logger private Log log;
 
-    public String select(Long taskId, ProjectRequest prjRequest) {
+    public String select(Long taskId, AdminProjectRequest prjRequest) {
 
         log.info("ProjectService: " + projectService + " fooService: " + fooService);
 

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/createProject.jpdl.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/createProject.jpdl.xml	2008-01-29 07:47:57 UTC (rev 18181)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/createProject.jpdl.xml	2008-01-29 10:30:34 UTC (rev 18182)
@@ -10,19 +10,27 @@
       </transition>
    </start-state>
 
-   <task-node name="decide" end-tasks="true">
+   <task-node name="decide">
         <task name="approve" description="Review project request: #{projectRequest.name}">
            <assignment pooled-actors="reviewer"/>
         </task>
-        <transition name="approve" to="done">
-            <action expression="#{projectManager.createProject}"/>
-            <action expression="#{notifier.projectApproved}"/>
+        <transition name="approve" to="create">
+             <action expression="#{notifier.projectApproved}"/>
         </transition>
         <transition name="reject"  to="done">
             <action expression="#{notifier.projectRejected}"/>
         </transition>
     </task-node>
 
+    <decision name="create" expression="#{projectManager.createProject}">
+        <transition name="true" to="done">
+            <action expression="#{notifier.projectCreated}"/>
+        </transition>
+        <transition name="false" to="done">
+            <action expression="#{notifier.createProjectFailed}"/>
+        </transition>
+    </decision>
+
    <end-state name="done"/>
 
 </process-definition>
\ No newline at end of file

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/createProject.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/createProject.xhtml	2008-01-29 07:47:57 UTC (rev 18181)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/createProject.xhtml	2008-01-29 10:30:34 UTC (rev 18182)
@@ -18,7 +18,10 @@
              <table>
                 <tr>
                     <th>Email:</th>
-                    <td><h:inputText value="#{projectRequest.email}" required="true" id="email" requiredMessage="Email is required"/>
+                    <td>
+                        <s:validateAll>
+                            <h:inputText value="#{projectRequest.email}" required="true" id="email" requiredMessage="Email is required"/>
+                        </s:validateAll>
                     </td>
                 </tr>
                  <tr>

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml	2008-01-29 07:47:57 UTC (rev 18181)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml	2008-01-29 10:30:34 UTC (rev 18182)
@@ -31,6 +31,21 @@
                                   action="#{reviewProjectRequest.select(task.id, task.variables['projectRequest'])}" />
               </h:column>
           </h:dataTable>
+          <h:dataTable value="#{projectManager.projects}"
+                                   rendered="#{! empty projectManager.projects}"
+                                   var="project">
+               <f:facet name="header">Projects</f:facet>
+               <h:column>
+                   <f:facet name="header">Project ID</f:facet>
+                   #{project.projectId}
+               </h:column>
+               <h:column>
+                   <f:facet name="header">Name</f:facet>
+                   #{project.name}
+               </h:column>
+           </h:dataTable>
+
+         
         </h:form>
     </rich:panel>
 




More information about the jboss-svn-commits mailing list