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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Feb 8 10:06:36 EST 2008


Author: wrzep
Date: 2008-02-08 10:06:36 -0500 (Fri, 08 Feb 2008)
New Revision: 18417

Added:
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/validator/
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/validator/UniqueProjectIdValidator.java
Modified:
   labs/jbosslabs/labs-3.0-build/core/core-model/pom.xml
   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/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/ProjectRequestWrapper.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/CreateProjectRequest.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/RequestProject.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/ReviewProjectRequest.java
   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-909 create new project


Modified: labs/jbosslabs/labs-3.0-build/core/core-model/pom.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/pom.xml	2008-02-08 13:23:44 UTC (rev 18416)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/pom.xml	2008-02-08 15:06:36 UTC (rev 18417)
@@ -18,7 +18,7 @@
 			<version>3.8.1</version>
 			<scope>test</scope>
 		</dependency>
-	</dependencies>
+    </dependencies>
 	<build>
 		<plugins>
 			<plugin>

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-02-08 13:23:44 UTC (rev 18416)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/ProjectRequest.java	2008-02-08 15:06:36 UTC (rev 18417)
@@ -14,14 +14,13 @@
     
  private static final long serialVersionUID = -7477176000123883280L;
 
-    @Id
-    @GeneratedValue
-    private int id;
-    protected String name;
+    @Id @GeneratedValue private int id;
+    protected String name = "New Project";
     protected String leadUsername;
-    protected String projectId;
+    protected String projectId = "newproject";
+    //@Email
     protected String email;
-    protected String jiraKey;
+    protected String jiraKey = "NEWPROJECT";
     protected boolean repository = true;
     protected boolean jira = true;
     protected boolean devForum = true;
@@ -74,7 +73,7 @@
     public void setName(String name) {
         this.name = name;
 
-        if (name != null) {
+       /* if (name != null) {
             if (projectId == null) {
 
                 String projectId = escape(name.toLowerCase(), "-");
@@ -84,7 +83,7 @@
                 String jiraKey = escape(name.toUpperCase().replace("JBOSS", "JB"), "");
                 setJiraKey(jiraKey);
             }
-        }
+        }*/
     }
 
     public String getEmail() {

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-08 13:23:44 UTC (rev 18416)
+++ labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceBean.java	2008-02-08 15:06:36 UTC (rev 18417)
@@ -1,6 +1,7 @@
 package org.jboss.labs.core.service.impl;
 
 import org.jboss.labs.core.model.Project;
+import org.jboss.labs.core.model.Username;
 import org.jboss.labs.core.model.admin.ProjectRequest;
 import org.jboss.labs.core.service.ProjectService;
 import org.jboss.labs.exception.admin.CreateProjectException;
@@ -34,19 +35,19 @@
 
         Project p = new Project();
         p.setProjectId(projectId);
-       // p.setName(projectRequest.getName());
+        p.setName(projectRequest.getName());
 
-       /* String lu = projectRequest.getLeadUsername();
+        String lu = projectRequest.getLeadUsername();
         Username leadUsername = null;
         try {
             leadUsername = (Username) em.createQuery("SELECT u FROM Username u WHERE u.username = :username")
                                                 .setParameter("username", lu)
-                                                .getResultList();
+                                                .getSingleResult();
 
             System.out.println("leadUsername: " + leadUsername);
         } catch (NoResultException e) {
             // do nothing
-        }*/
+        }
 
        /* if (leadUsername == null) {
             leadUsername = new Username(projectRequest.getLeadUsername());

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-02-08 13:23:44 UTC (rev 18416)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ProjectManager.java	2008-02-08 15:06:36 UTC (rev 18417)
@@ -29,7 +29,6 @@
             projectService.createProject(projectRequest);
         } catch (Exception e) {
             log.warn(e);
-            e.printStackTrace();
             return false;
         }
         

Modified: 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-08 13:23:44 UTC (rev 18416)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ProjectRequestWrapper.java	2008-02-08 15:06:36 UTC (rev 18417)
@@ -23,11 +23,11 @@
 
     @Unwrap
     public ProjectRequest getProjectRequest() {
-        
+
         if (projectRequestId != null) {
             return entityManager.find(ProjectRequest.class, projectRequestId);
         }
 
-        return null;
+        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/CreateProjectRequest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/CreateProjectRequest.java	2008-02-08 13:23:44 UTC (rev 18416)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/CreateProjectRequest.java	2008-02-08 15:06:36 UTC (rev 18417)
@@ -1,9 +1,8 @@
 package org.jboss.labs.admin.action;
 
-import org.jboss.labs.core.model.admin.ProjectRequest;
 import org.jboss.labs.admin.Pages;
+import org.jboss.labs.core.model.admin.ProjectRequest;
 import org.jboss.seam.ScopeType;
-import org.jboss.seam.annotations.Begin;
 import org.jboss.seam.annotations.Name;
 import org.jboss.seam.annotations.Out;
 
@@ -11,13 +10,12 @@
 @Name("createProject")
 public class CreateProjectRequest {
 
-    @Out(scope= ScopeType.CONVERSATION) private ProjectRequest projectRequest;
+    @Out(scope= ScopeType.SESSION) private ProjectRequest req;
 
-    @Begin
     public String create() {
 
-        projectRequest = new ProjectRequest();
-        
+        req = new ProjectRequest();
+
         return Pages.CREATE_PROJECT_PAGE;
     }
 }
\ No newline at end of file

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/RequestProject.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/RequestProject.java	2008-02-08 13:23:44 UTC (rev 18416)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/RequestProject.java	2008-02-08 15:06:36 UTC (rev 18417)
@@ -1,9 +1,8 @@
 package org.jboss.labs.admin.action;
 
-import org.jboss.labs.core.model.admin.ProjectRequest;
 import org.jboss.labs.admin.Pages;
+import org.jboss.labs.core.model.admin.ProjectRequest;
 import org.jboss.seam.ScopeType;
-import org.jboss.seam.annotations.End;
 import org.jboss.seam.annotations.In;
 import org.jboss.seam.annotations.Name;
 import org.jboss.seam.annotations.Out;
@@ -17,9 +16,11 @@
  * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
  */
 @Name("requestProject")
+//@Scope(ScopeType.CONVERSATION)
 public class RequestProject {
 
-    @In private ProjectRequest projectRequest;
+    @In private ProjectRequest req;
+
     @Out(scope= ScopeType.BUSINESS_PROCESS) private Integer projectRequestId;
 
     @In private Actor actor;
@@ -27,20 +28,17 @@
 
     @In(create = true) private EntityManager entityManager;
 
-    @End
     @CreateProcess(definition = "createProject")
     public String request() {
 
-        projectRequest.setLeadUsername(actor.getId());
+        req.setLeadUsername(actor.getId());
 
-        entityManager.persist(projectRequest);
+        entityManager.persist(req);
 
-        projectRequestId = projectRequest.getId();
+        projectRequestId = req.getId();
 
-        System.out.println("Project Request Id: " + projectRequestId);
+        facesMessages.add("Your request has been sent to BMW.");
 
-        facesMessages.add("You request has been sent to BMW.");  
-
         return Pages.CONFIRMATION_PAGE;
     }
 }
\ No newline at end of file

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/ReviewProjectRequest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/ReviewProjectRequest.java	2008-02-08 13:23:44 UTC (rev 18416)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/ReviewProjectRequest.java	2008-02-08 15:06:36 UTC (rev 18417)
@@ -28,14 +28,4 @@
 
         return Pages.TICKET_PAGE;
     }
-
- /*   @StartTask @EndTask(transition = "approve")
-    public String accept() {
-        return Pages.HOME_PAGE;
-    }
-
-    @StartTask @EndTask(transition = "reject")
-    public String reject() {
-        return Pages.HOME_PAGE;
-    }*/
 }
\ No newline at end of file

Added: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/validator/UniqueProjectIdValidator.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/validator/UniqueProjectIdValidator.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/validator/UniqueProjectIdValidator.java	2008-02-08 15:06:36 UTC (rev 18417)
@@ -0,0 +1,38 @@
+package org.jboss.labs.admin.validator;
+
+import com.google.inject.Inject;
+import org.jboss.labs.core.service.ProjectService;
+import org.jboss.labs.exception.admin.ProjectNotFoundException;
+import org.jboss.labs.injection.seam.Guice;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.faces.Validator;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.validator.ValidatorException;
+
+/**
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+ at Name("uniqueProjectIdValidator")
+ at Validator
+ at Guice
+public class UniqueProjectIdValidator implements javax.faces.validator.Validator {
+
+    @Inject private ProjectService projectService;
+
+    public void validate(FacesContext facesContext, UIComponent uiComponent, Object o) throws ValidatorException {
+
+        String projectId = (String) o;
+
+        try {
+            projectService.getProject(projectId);
+        } catch (ProjectNotFoundException e) {
+            // do nothing
+            return;
+        }
+
+        throw new ValidatorException(new FacesMessage("Project '" + projectId + "' already exsists."));
+    }
+}

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-02-08 13:23:44 UTC (rev 18416)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/createProject.xhtml	2008-02-08 15:06:36 UTC (rev 18417)
@@ -19,45 +19,41 @@
                 <tr>
                     <th>Email:</th>
                     <td>
-                        <s:validateAll>
-                            <h:inputText value="#{projectRequest.email}" required="true" id="email" requiredMessage="Email is required"/>
-                        </s:validateAll>
+                        <h:inputText value="#{req.email}" required="true" id="email" requiredMessage="Email is required"/>
                     </td>
                 </tr>
                  <tr>
                     <th>Project Name:</th>
                     <td>
-                        <a4j:region>
-                            <h:inputText value="#{projectRequest.name}" id="projectName" required="true" requiredMessage="Project Name is required.">
-                              <a4j:support  event="onkeyup" reRender="projectId, jiraKey, messages"/>
-                            </h:inputText>
-                        </a4j:region>
+                        <h:inputText value="#{req.name}" id="projectName" required="true" requiredMessage="Project Name is required."/>
                     </td>
                 </tr>
                 <tr>
                     <th>Project ID:</th>
                     <td>
-                        <h:inputText value="#{projectRequest.projectId}" id="projectId" required="true" requiredMessage="Project ID is required."/>
+                        <h:inputText value="#{req.projectId}" id="projectId" required="true" requiredMessage="Project ID is required.">
+                            <f:validator validatorId="uniqueProjectIdValidator"/>
+                        </h:inputText>
                     </td>
                 </tr>
                 <tr>
                     <th>JIRA key:</th>
-                    <td><h:inputText value="#{projectRequest.jiraKey}" id="jiraKey" required="true" requiredMessage="JIRA key is required."/></td>
+                    <td><h:inputText value="#{req.jiraKey}" id="jiraKey" required="true" requiredMessage="JIRA key is required."/></td>
                 </tr>
                 <tr>
                     <th>Code repository?</th>
-                    <td><h:selectBooleanCheckbox value="#{projectRequest.repository}"/></td>
+                    <td><h:selectBooleanCheckbox value="#{req.repository}"/></td>
                 </tr>
                  <tr>
                     <th>JIRA?</th>
-                    <td><h:selectBooleanCheckbox value="#{projectRequest.jira}"/></td>
+                    <td><h:selectBooleanCheckbox value="#{req.jira}"/></td>
                 </tr>
                 <tr>
                     <th>Forums and Mailing Lists?</th>
                     <td>
-                        dev <h:selectBooleanCheckbox value="#{projectRequest.devForum}"/><br/>
-                        user <h:selectBooleanCheckbox value="#{projectRequest.userForum}"/><br/>
-                        announce <h:selectBooleanCheckbox value="#{projectRequest.announceForum}"/>
+                        dev <h:selectBooleanCheckbox value="#{req.devForum}"/><br/>
+                        user <h:selectBooleanCheckbox value="#{req.userForum}"/><br/>
+                        announce <h:selectBooleanCheckbox value="#{req.announceForum}"/>
                     </td>
                 </tr>
             </table>

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-02-08 13:23:44 UTC (rev 18416)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml	2008-02-08 15:06:36 UTC (rev 18417)
@@ -15,7 +15,7 @@
     <rich:panel>
         <f:facet name="header">Welcome!</f:facet>
         <h:form id="mainForm">
-          <h:commandButton action="#{createProject.create}" value="Create Project Request" />
+          <h:commandButton action="#{createProject.create}" value="Request New Project" />
           <br/>
           <h:dataTable value="#{pooledTaskInstanceList}"
                        rendered="#{! empty pooledTaskInstanceList}"




More information about the jboss-svn-commits mailing list