[jboss-svn-commits] JBL Code SVN: r18190 - in labs/jbosslabs/labs-3.0-build: core/core-api/src/main/java/org/jboss/labs/exception/admin and 6 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jan 29 10:33:37 EST 2008
Author: wrzep
Date: 2008-01-29 10:33:37 -0500 (Tue, 29 Jan 2008)
New Revision: 18190
Added:
labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/exception/admin/ProjectNotFoundException.java
labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ViewProject.java
labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project.xhtml
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/Project.java
labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Username.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/ReviewProjectRequest.java
labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/WEB-INF/components.xml
labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/WEB-INF/pages.xml
labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/error.xhtml
labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/hibernate.cfg.xml
labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml
labs/jbosslabs/labs-3.0-build/views/project-test-view/src/main/java/org/jboss/labs/view/ProjectTestServlet.java
Log:
JBLAB-904
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 15:32:09 UTC (rev 18189)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/core/service/ProjectService.java 2008-01-29 15:33:37 UTC (rev 18190)
@@ -3,6 +3,7 @@
import org.jboss.labs.core.model.Project;
import org.jboss.labs.core.model.admin.ProjectRequest;
import org.jboss.labs.exception.admin.CreateProjectException;
+import org.jboss.labs.exception.admin.ProjectNotFoundException;
import javax.ejb.Local;
import java.util.List;
@@ -14,7 +15,7 @@
public List<Project> getProjects();
- public Project getProject(String projectId);
+ public Project getProject(String projectId) throws ProjectNotFoundException;
void createProject(ProjectRequest projectRequest) throws CreateProjectException;
}
Added: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/exception/admin/ProjectNotFoundException.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/exception/admin/ProjectNotFoundException.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/exception/admin/ProjectNotFoundException.java 2008-01-29 15:33:37 UTC (rev 18190)
@@ -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 ProjectNotFoundException extends LabsException {
+
+ private static final long serialVersionUID = 4183531789003701360L;
+
+ public ProjectNotFoundException(String msg) {
+ super(msg);
+ }
+}
\ No newline at end of file
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 15:32:09 UTC (rev 18189)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java 2008-01-29 15:33:37 UTC (rev 18190)
@@ -4,7 +4,6 @@
import java.io.Serializable;
import java.util.List;
-
@Entity
public class Project implements Serializable {
@@ -43,9 +42,9 @@
private Forum userForum;
@OneToOne(cascade = CascadeType.PERSIST)
private Blog mainBlog;
- @ManyToMany(cascade = CascadeType.PERSIST)
+ @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
private List<Username> contributors;
- @ManyToMany(cascade = CascadeType.PERSIST)
+ @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
private List<Username> projectLeads;
public Project() {
Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Username.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Username.java 2008-01-29 15:32:09 UTC (rev 18189)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Username.java 2008-01-29 15:33:37 UTC (rev 18190)
@@ -29,6 +29,10 @@
public Username() {
}
+ public Username(String username) {
+ this.username = username;
+ }
+
public Integer getId() {
return id;
}
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 15:32:09 UTC (rev 18189)
+++ labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceBean.java 2008-01-29 15:33:37 UTC (rev 18190)
@@ -1,14 +1,18 @@
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;
+import org.jboss.labs.exception.admin.ProjectNotFoundException;
import javax.ejb.Stateless;
import javax.jws.WebService;
import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
+import java.util.Arrays;
import java.util.List;
@Stateless(name="ProjectService")
@@ -34,6 +38,22 @@
p.setProjectId(projectId);
p.setName(projectRequest.getName());
+ Username leadUsername = null;
+ try {
+ leadUsername = (Username) em.createQuery("SELECT u FROM Username u WHERE u.username = :username")
+ .setParameter("username", projectRequest.getLeadUsername())
+ .getResultList();
+ } catch (NoResultException e) {
+ // do nothing
+ }
+
+ if (leadUsername == null) {
+ leadUsername = new Username(projectRequest.getLeadUsername());
+ em.persist(leadUsername);
+ }
+
+ p.setProjectLeads(Arrays.asList(leadUsername));
+
/* if (repository) {
Repository r = new Repository(RepositoryType.SVN);
p.setAnonymusRepository(r);
@@ -60,9 +80,18 @@
return em.createQuery("SELECT p FROM Project p").getResultList();
}
- public Project getProject(String projectId) {
+ public Project getProject(String projectId) throws ProjectNotFoundException {
- return (Project) em.createQuery("SELECT p FROM Project p WHERE p.projectId = :projectId").setParameter("projectId", projectId).getSingleResult();
+ Object o;
+
+ try {
+ o = em.createQuery("SELECT p FROM Project p WHERE p.projectId = :projectId").setParameter("projectId", projectId).getSingleResult();
+ } catch (NoResultException e) {
+ throw new ProjectNotFoundException("Project not found: '" + projectId + "'");
+ }
+
+ return (Project) o;
+
}
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 15:32:09 UTC (rev 18189)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ReviewProjectRequest.java 2008-01-29 15:33:37 UTC (rev 18190)
@@ -2,7 +2,6 @@
import com.google.inject.Inject;
import org.jboss.labs.core.service.ProjectService;
-import org.jboss.labs.foo.FooService;
import org.jboss.labs.injection.seam.Guice;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Logger;
@@ -23,16 +22,12 @@
@Out(required = false, scope= ScopeType.CONVERSATION) private long tId;
@Out(required = false, scope= ScopeType.CONVERSATION) private AdminProjectRequest prjRequest;
- @Inject private FooService fooService;
-
@Inject private ProjectService projectService;
@Logger private Log log;
public String select(Long taskId, AdminProjectRequest prjRequest) {
- log.info("ProjectService: " + projectService + " fooService: " + fooService);
-
this.tId = taskId;
this.prjRequest = prjRequest;
Added: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ViewProject.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ViewProject.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ViewProject.java 2008-01-29 15:33:37 UTC (rev 18190)
@@ -0,0 +1,31 @@
+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.labs.exception.admin.ProjectNotFoundException;
+import org.jboss.seam.annotations.Logger;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.web.RequestParameter;
+import org.jboss.seam.log.Log;
+
+
+ at Name("viewProject")
+ at Guice
+public class ViewProject {
+
+ @RequestParameter private String projectId;
+
+ @Inject private ProjectService projectService;
+
+ @Logger private Log log;
+
+ public Project getProject() throws ProjectNotFoundException {
+
+ log.info("Project Id: " + projectId);
+
+ return projectService.getProject(projectId);
+ }
+
+}
\ No newline at end of file
Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/WEB-INF/components.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/WEB-INF/components.xml 2008-01-29 15:32:09 UTC (rev 18189)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/WEB-INF/components.xml 2008-01-29 15:33:37 UTC (rev 18190)
@@ -21,7 +21,7 @@
<core:manager concurrent-request-timeout="500"
conversation-timeout="120000"
conversation-id-parameter="cid"/>
-
+
<event type="org.jboss.seam.security.notLoggedIn">
<action execute="#{redirect.captureCurrentView}"/>
</event>
Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/WEB-INF/pages.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/WEB-INF/pages.xml 2008-01-29 15:32:09 UTC (rev 18189)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/WEB-INF/pages.xml 2008-01-29 15:33:37 UTC (rev 18190)
@@ -4,14 +4,14 @@
xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.0.xsd"
no-conversation-view-id="/home.xhtml">
- <page view-id="*">
- <navigation>
- <rule if-outcome="home">
- <redirect view-id="/home.xhtml"/>
- </rule>
- </navigation>
- </page>
+ <exception class="org.jboss.labs.exception.admin.ProjectNotFoundException">
+ <redirect view-id="/error.xhtml">
+ <message>Project not found</message>
+ </redirect>
+ </exception>
+ <!-- default configuration -->
+
<exception class="org.jboss.seam.framework.EntityNotFoundException">
<redirect view-id="/error.xhtml">
<message>Not found</message>
Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/error.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/error.xhtml 2008-01-29 15:32:09 UTC (rev 18189)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/error.xhtml 2008-01-29 15:33:37 UTC (rev 18190)
@@ -11,7 +11,7 @@
<ui:define name="body">
<rich:panel>
- Error.
+ Error
<h:messages styleClass="message"/>
</rich:panel>
Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/hibernate.cfg.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/hibernate.cfg.xml 2008-01-29 15:32:09 UTC (rev 18189)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/hibernate.cfg.xml 2008-01-29 15:33:37 UTC (rev 18190)
@@ -8,7 +8,7 @@
<session-factory>
<property name="show_sql">false</property>
- <property name="connection.datasource">java:/LabsDS</property>
+ <property name="connection.datasource">java:/DefaultDS</property>
<property name="transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
<property name="transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
<property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
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 15:32:09 UTC (rev 18189)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml 2008-01-29 15:33:37 UTC (rev 18190)
@@ -31,6 +31,7 @@
action="#{reviewProjectRequest.select(task.id, task.variables['projectRequest'])}" />
</h:column>
</h:dataTable>
+ <ui:remove>
<h:dataTable value="#{projectManager.projects}"
rendered="#{! empty projectManager.projects}"
var="project">
@@ -41,11 +42,13 @@
</h:column>
<h:column>
<f:facet name="header">Name</f:facet>
- #{project.name}
+ <h:outputLink value="project.seam">
+ #{project.name}
+ <f:param name="projectId" value="#{project.projectId}" />
+ </h:outputLink>
</h:column>
</h:dataTable>
-
-
+ </ui:remove>
</h:form>
</rich:panel>
Added: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project.xhtml (rev 0)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project.xhtml 2008-01-29 15:33:37 UTC (rev 18190)
@@ -0,0 +1,44 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:rich="http://richfaces.org/rich"
+ template="layout/template.xhtml">
+
+<ui:define name="body">
+
+ <h:messages globalOnly="true" styleClass="message"/>
+
+ <rich:panel>
+ <f:facet name="header">Project Details</f:facet>
+ <h:form id="mainForm">
+ <table>
+ <tr>
+ <th>Project Name:</th>
+ <td>#{viewProject.project.name}</td>
+ </tr>
+ <tr>
+ <th>Leads:</th>
+ <td>
+ <ui:repeat var="lead" value="#{viewProject.project.projectLeads}">
+ #{lead.username}
+ </ui:repeat>
+ </td>
+ </tr>
+ <tr>
+ <th>Contributors:</th>
+ <td>
+ <ui:repeat var="contributor" value="#{viewProject.project.contributors}">
+ #{contributor.username}
+ </ui:repeat>
+ </td>
+ </tr>
+ </table>
+ </h:form>
+ </rich:panel>
+
+</ui:define>
+</ui:composition>
Modified: labs/jbosslabs/labs-3.0-build/views/project-test-view/src/main/java/org/jboss/labs/view/ProjectTestServlet.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/project-test-view/src/main/java/org/jboss/labs/view/ProjectTestServlet.java 2008-01-29 15:32:09 UTC (rev 18189)
+++ labs/jbosslabs/labs-3.0-build/views/project-test-view/src/main/java/org/jboss/labs/view/ProjectTestServlet.java 2008-01-29 15:33:37 UTC (rev 18190)
@@ -3,7 +3,6 @@
import org.jboss.labs.core.service.ProjectService;
import javax.naming.InitialContext;
-import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
@@ -31,7 +30,7 @@
.println(
"<html><head><title>hello world</title></head><body><h1>Hello World !</h1>Project service says: "
+ projectService.getProject("jbosslabs").getName() + "<br/></body></html>");
- } catch (NamingException e) {
+ } catch (Exception e) {
log(e.getMessage(), e);
resp
.getWriter()
More information about the jboss-svn-commits
mailing list