[jboss-svn-commits] JBL Code SVN: r9726 - in labs/jbosslabs/trunk/portal-extensions: forge-common/src/java/org/jboss/forge/common/projects and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Feb 23 17:29:38 EST 2007


Author: wrzep
Date: 2007-02-23 17:29:38 -0500 (Fri, 23 Feb 2007)
New Revision: 9726

Added:
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectsServiceRW.java
   labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectsServiceRWImpl.java
Modified:
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/LabsServices.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectsService.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/project/rw/ProjectRW.java
   labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoEditBean.java
   labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoTools.java
Log:
JBLAB-840
RW mode handling - initial classes
-Pawel


Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/LabsServices.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/LabsServices.java	2007-02-23 21:03:48 UTC (rev 9725)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/LabsServices.java	2007-02-23 22:29:38 UTC (rev 9726)
@@ -34,6 +34,7 @@
  * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
  * @author <a href="mailto:ryszard.kozmik at jboss.com">Ryszard Kozmik</a>
  * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ * @author <a href="mailto:pawel . wrzeszcz [at] jboss . com">Pawel Wrzeszcz</a>
  */
 
 public class LabsServices {
@@ -59,6 +60,11 @@
         return (ProjectsService) getService(ProjectsService.class,
                 ProjectsService.PROJECTS_SERVICE);
     }
+    
+    public static ProjectsServiceRW getProjectsServiceRW() throws MalformedObjectNameException {
+        return (ProjectsServiceRW) getService(ProjectsServiceRW.class,
+                ProjectsServiceRW.PROJECTS_RW_SERVICE);
+    }
 
     public static ProjectPagesService getProjectPagesService() throws ServiceRetrievalException {
         try {

Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectsService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectsService.java	2007-02-23 21:03:48 UTC (rev 9725)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectsService.java	2007-02-23 22:29:38 UTC (rev 9726)
@@ -39,6 +39,8 @@
 /**
  * @author <a href="mailto:ryszard.kozmik at jboss.com">Ryszard Kozmik</a>
  * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ * 
+ * Please remember this service provides read-only info about projects. 
  */
 public interface ProjectsService {
 

Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectsServiceRW.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectsServiceRW.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectsServiceRW.java	2007-02-23 22:29:38 UTC (rev 9726)
@@ -0,0 +1,92 @@
+ /*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2005, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY 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 along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+
+package org.jboss.forge.common.ejb3;
+
+import org.jboss.forge.common.projects.project.rw.DevelopersRW;
+import org.jboss.forge.common.projects.project.rw.DownloadsRW;
+import org.jboss.forge.common.projects.project.rw.PagesRW;
+import org.jboss.forge.common.projects.project.rw.PollsRW;
+import org.jboss.forge.common.projects.project.rw.ProjectRW;
+
+/**
+ * @author <a href="mailto:ryszard.kozmik at jboss.com">Ryszard Kozmik</a>
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ * @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
+ */
+public interface ProjectsServiceRW {
+
+    public static final String PROJECTS_RW_SERVICE = "labs:service=projectsRW";
+
+    public ProjectRW getProjectByNameRW(String projectId);
+    
+    public PollsRW getProjectPollsRW(String projectId);
+    
+    public DownloadsRW getProjectDownloadsRW(String projectId);
+    
+    public PagesRW getProjectPagesRW(String projectId);
+    
+    public DevelopersRW getProjectDevelopersRW(String projectId);
+
+    /**
+     * This method will overwrite existing project definition in xml file
+     * with a new one generated from data contained in given Project object.
+     * Be aware, data is NOT merged but overwritten!
+     */
+    public void persistProject(ProjectRW project);
+    
+    /**
+     * This method will overwrite existing project Polls definition in xml file
+     * with a new one generated from data contained in given Polls object.
+     * Be aware, data is NOT merged but overwritten!
+     */
+    public void persistPolls(PollsRW polls, String projectId);
+    
+    /**
+     * This method will overwrite existing project Downloads definition in xml file
+     * with a new one generated from data contained in given Downloads object.
+     * Be aware, data is NOT merged but overwritten!
+     */
+    public void persistDownloads (DownloadsRW downloads, String projectId);
+    
+    /**
+     * This method will overwrite existing project Pages definition in xml file
+     * with a new one generated from data contained in given Pages object.
+     * Be aware, data is NOT merged but overwritten!
+     */
+    public void persistPages (PagesRW pages, String projectId);
+    
+    /**
+     * This method will overwrite existing project Developers definition
+     * in xml file with a new one generated from data contained in given Developers object.
+     * Be aware, data is NOT merged but overwritten!
+     */
+    public void persistDevelopers (DevelopersRW developers, String projectId);
+    
+    
+    //	 Life cycle methods
+	
+    public void start () throws Exception;
+	
+	public void stop () throws Exception;
+
+}

Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java	2007-02-23 21:03:48 UTC (rev 9725)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java	2007-02-23 22:29:38 UTC (rev 9726)
@@ -27,7 +27,6 @@
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Unmarshaller;
-import javax.naming.NamingException;
 
 import org.apache.xerces.parsers.DOMParser;
 import org.jboss.forge.common.ForgeHelper;
@@ -48,6 +47,7 @@
 import org.jboss.forge.common.projects.permissions.NullPermissionsChecker;
 import org.jboss.forge.common.projects.permissions.PermissionsChecker;
 import org.jboss.forge.common.projects.project.Project;
+import org.jboss.forge.common.projects.project.rw.ProjectRW;
 import org.jboss.forge.common.projects.configuration.Configuration;
 import org.jboss.logging.Logger;
 import org.jboss.portal.core.servlet.jsp.taglib.context.DelegateContext;
@@ -90,6 +90,7 @@
      * Project id --> Corresponding NEW project descriptor object
      */
     private Map<String, Project> newProjects;
+    private Map<String, ProjectRW> newProjectsRW;
     
     /**
      * Configuration from projects.xml descriptor.
@@ -138,6 +139,7 @@
         this.portalName = portalName;
         projects = new LinkedHashMap<String, ProjectDescriptor>();
         newProjects = new LinkedHashMap<String, Project>();
+        newProjectsRW = new LinkedHashMap<String,ProjectRW>();
         projectWithErrorsDescriptors = new HashSet<String>();
 
         projectsContexts = Collections
@@ -305,6 +307,7 @@
         NodeList nodes = root.getChildNodes();
 
         JAXBContext projectJC=null;
+        JAXBContext projectRWJC=null;
         JAXBContext projectsJC=null;
         
         try {
@@ -326,6 +329,7 @@
         
         try {
             projectJC = JAXBContext.newInstance("org.jboss.forge.common.projects.project");
+            projectRWJC = JAXBContext.newInstance("org.jboss.forge.common.projects.project.rw");
         } catch (JAXBException e) {
             log.warn("I could not create JAXBContext."+e.getCause());
         }
@@ -339,41 +343,78 @@
                         = XmlTools.getPropertiesFromNodeAttributes(n);
 
                 String projectId = XmlTools.unmarshallText(n);
-                ProjectDescriptor pd;
-                
-                try {
-                    pd = new ProjectDescriptor(projectId, isf, xht, opm,
-                            portalName, adminProperties);
-                    projects.put(projectId, pd);
-                    
-                    if (projectJC!=null) {
-                        try {
-                            Unmarshaller un = projectJC.createUnmarshaller();
-                            Project newProject = (Project)un.unmarshal(
-                                isf.getInputSource(projectId+"/" + ProjectsHelper.PROJECT_DESC));
-                            newProjects.put(projectId,newProject);
-                            log.info("Project "+projectId+" created.");
-                        } catch (Exception e) {
-                            log.warn("I could not create Project "+projectId+".",e);
-                        }
-                    }
-                    
-                } catch (Exception e) {
-                    // In case of any exception, we just don't put the
-                    // project into the map. We only add its descriptor
-                    // to the set of projects with errors to monitor
-                    // any changes in it.
-                    projectWithErrorsDescriptors.add(projectId + "/"
-                            + ProjectsHelper.PROJECT_DESC);
-
-                    log.warn("Project " + projectId + " parse error: " + e);
-                    e.printStackTrace();
-                }
+                               
+                unmarshallProject(projectId, isf, xht, portalName, adminProperties, projectJC);
+                unmarshallProjectRW(projectId, isf, xht, portalName, adminProperties, projectRWJC);
             }
         }
     }
+    
+	private void unmarshallProject(String projectId, XmlInputFactory isf, DomToXmlTransformer xht, String portalName2, PropertiesMap adminProperties, JAXBContext projectJC) {
+    	  
+    	 	ProjectDescriptor pd;
+    	
+    	 	try {
+              pd = new ProjectDescriptor(projectId, isf, xht, opm,
+                      portalName, adminProperties);
+              projects.put(projectId, pd);
+              
+              if (projectJC!=null) {
+                  try {
+                      Unmarshaller un = projectJC.createUnmarshaller();
+                      Project newProject = (Project)un.unmarshal(
+                          isf.getInputSource(projectId+"/" + ProjectsHelper.PROJECT_DESC));
+                      newProjects.put(projectId,newProject);
+                      log.info("Project "+projectId+" created.");
+                  } catch (Exception e) {
+                      log.warn("I could not create Project "+projectId+".",e);
+                  }
+              }
+              
+          } catch (Exception e) {
+              // In case of any exception, we just don't put the
+              // project into the map. We only add its descriptor
+              // to the set of projects with errors to monitor
+              // any changes in it.
+              projectWithErrorsDescriptors.add(projectId + "/"
+                      + ProjectsHelper.PROJECT_DESC);
 
-    private boolean projectAdmissable(String projectId) {
+              log.warn("Project " + projectId + " parse error: " + e);
+              e.printStackTrace();
+          }    
+	}
+	
+	 private void unmarshallProjectRW(String projectId, XmlInputFactory isf, DomToXmlTransformer xht, String portalName2, PropertiesMap adminProperties, JAXBContext projectRWJC) {
+		 	
+ 	 	try {
+                    
+           if (projectRWJC!=null) {
+               try {
+                   Unmarshaller un = projectRWJC.createUnmarshaller();
+                   ProjectRW newProject = (ProjectRW)un.unmarshal(
+                       isf.getInputSource(projectId+"/" + ProjectsHelper.PROJECT_DESC));
+                   newProjectsRW.put(projectId,newProject);
+                   log.info("Project "+projectId+" (RW mode) created.");
+               } catch (Exception e) {
+                   log.warn("I could not create Project "+projectId+" (RW mode).",e);
+               }
+           }
+           
+       } catch (Exception e) {
+           // In case of any exception, we just don't put the
+           // project into the map. We only add its descriptor
+           // to the set of projects with errors to monitor
+           // any changes in it.
+           projectWithErrorsDescriptors.add(projectId + "/"
+                   + ProjectsHelper.PROJECT_DESC);
+
+           log.warn("Project " + projectId + " (RW mode) parse error: " + e);
+           e.printStackTrace();
+       }    
+	}
+
+
+	private boolean projectAdmissable(String projectId) {
         return !"default".equals(projectId);
     }
 
@@ -813,10 +854,14 @@
         return ret;		
 	}
         
-        public Map<String,Project> getNewProjects() {
-            return newProjects;
-        }
+    public Map<String,Project> getNewProjects() {
+    		return newProjects;
+    }
         
+    public Map<String,ProjectRW> getNewProjectsRW() {
+    		return newProjectsRW;
+    }
+    
     public Configuration getConfiguration () {
         return this.configuration;
     }

Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/project/rw/ProjectRW.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/project/rw/ProjectRW.java	2007-02-23 21:03:48 UTC (rev 9725)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/project/rw/ProjectRW.java	2007-02-23 22:29:38 UTC (rev 9726)
@@ -68,7 +68,7 @@
     "downloads",
     "polls"
 })
- at XmlRootElement(name = "projectRW")
+ at XmlRootElement(name = "project")
 public class ProjectRW
     implements Serializable
 {

Added: labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectsServiceRWImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectsServiceRWImpl.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectsServiceRWImpl.java	2007-02-23 22:29:38 UTC (rev 9726)
@@ -0,0 +1,228 @@
+ /*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2005, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY 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 along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+
+package org.jboss.forge.ejb3.projects;
+
+import java.io.OutputStream;
+import java.util.Map;
+
+import javax.ejb.Remote;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+
+import org.jboss.annotation.ejb.Management;
+import org.jboss.annotation.ejb.Service;
+import org.jboss.annotation.ejb.Depends;
+
+import org.jboss.forge.common.projects.Projects;
+import org.jboss.forge.common.projects.ProjectsHelper;
+import org.jboss.forge.common.projects.project.Project;
+import org.jboss.forge.common.projects.project.rw.DevelopersRW;
+import org.jboss.forge.common.projects.project.rw.DownloadsRW;
+import org.jboss.forge.common.projects.project.rw.PagesRW;
+import org.jboss.forge.common.projects.project.rw.PollsRW;
+import org.jboss.forge.common.projects.project.rw.ProjectRW;
+import org.jboss.forge.common.ejb3.ProjectsServiceRW;
+import org.jboss.forge.common.Constants;
+
+import org.jboss.logging.Logger;
+
+import org.jboss.shotoku.ContentManager;
+import org.jboss.shotoku.Node;
+import org.jboss.shotoku.aop.Inject;
+
+
+/**
+ * @author <a href="mailto:ryszard.kozmik at jboss.com">Ryszard Kozmik</a>
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ * @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
+ */
+ at Service(objectName = ProjectsServiceRW.PROJECTS_RW_SERVICE)
+ at Management(ProjectsServiceRW.class)
+ at Remote(ProjectsServiceRW.class)
+ at Depends(org.jboss.shotoku.tools.Constants.SHOTOKU_SERVICE_NAME)
+public class ProjectsServiceRWImpl implements ProjectsServiceRW {
+	
+    private static final Logger log = Logger.getLogger(ProjectsServiceRW.class);
+    
+    private static final JAXBContext jc;
+    
+    static {
+        
+        JAXBContext temp = null;
+        try {
+            temp = JAXBContext.newInstance("org.jboss.forge.common.projects.project.rw");
+        } catch (JAXBException e) {
+            log.warn("I could not create JAXBContext."+e.getCause());
+        } finally {
+            jc = temp;
+        }
+        
+    }
+    
+    @Inject
+    private ContentManager cm;
+    
+    public ProjectRW getProjectByNameRW(String projectId) {
+    	 Projects projectsClass = ProjectsHelper.getProjects(Constants.LABS_PORTAL);
+         Map<String,ProjectRW> projects = projectsClass.getProjectsDescriptor().getNewProjectsRW();
+         return projects.get(projectId);
+    }
+    
+    public PollsRW getProjectPollsRW(String projectId) {
+        ProjectRW project = getProjectByNameRW(projectId);
+        if (project==null) return null;
+        return project.getPolls();
+    }
+
+    public DownloadsRW getProjectDownloadsRW(String projectId) {
+        ProjectRW project = getProjectByNameRW(projectId);
+        if (project==null) return null;
+        return project.getDownloads();
+    }
+
+    public PagesRW getProjectPagesRW(String projectId) {
+        ProjectRW project = getProjectByNameRW(projectId);
+        if (project==null) return null;
+        return project.getPages();
+    }
+
+    public DevelopersRW getProjectDevelopersRW(String projectId) {
+        ProjectRW project = getProjectByNameRW(projectId);
+        if (project==null) return null;
+        return project.getDevelopers();
+    }
+
+    /**
+     * This method will overwrite existing project definition in xml file
+     * with a new one generated from data contained in given ProjectRW object.
+     * Be aware, data is NOT merged but overwritten!
+     */
+    public void persistProject(ProjectRW project) {
+        if (project.getId()==null) return;
+
+        if (jc==null) return ;
+            
+        try {
+            
+            Marshaller m = jc.createMarshaller();
+            m.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
+            m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
+            
+            Node node = cm.getRootDirectory().
+                           getDirectory(Constants.LABS_PORTAL).
+                           getDirectory(ProjectsHelper.MEMBERS_DIR).
+                           getDirectory(project.getId()).
+                           getNode(ProjectsHelper.PROJECT_DESC);
+            
+            OutputStream os = node.getOutputStream();
+            m.marshal(project,os);
+            
+            node.save("[PROJECTSSERVICE] Persisting "+project.getId()+" project.");
+            log.info("ProjectRW "+project.getId()+" has been updated.");
+            
+        } catch (Exception e) {
+            log.warn("I could not update project "+project.getId()+".");
+        }
+        
+    }
+    
+    /**
+     * This method will overwrite existing project PollsRW definition in xml file
+     * with a new one generated from data contained in given PollsRW object.
+     * Be aware, data is NOT merged but overwritten!
+     */
+    public void persistPolls(PollsRW polls, String projectId) {
+        if (polls==null || projectId==null || projectId.trim().length()==0) return;
+        
+        ProjectRW project = getProjectByNameRW(projectId);
+        
+        if (project==null) return;
+        
+        project.setPolls(polls);
+        
+        persistProject(project);
+    }
+    
+    /**
+     * This method will overwrite existing project DownloadsRW definition in xml file
+     * with a new one generated from data contained in given DownloadsRW object.
+     * Be aware, data is NOT merged but overwritten!
+     */
+    public void persistDownloads(DownloadsRW downloads, String projectId) {
+        if (downloads==null || projectId==null || projectId.trim().length()==0) return;
+        
+        ProjectRW project = getProjectByNameRW(projectId);
+        
+        if (project==null) return;
+        
+        project.setDownloads(downloads);
+        
+        persistProject(project);
+    }
+    
+    /**
+     * This method will overwrite existing project Menu definition in xml file
+     * with a new one generated from data contained in given Menu object.
+     * Be aware, data is NOT merged but overwritten!
+     */
+    public void persistPages(PagesRW pages, String projectId) {
+        if (pages==null || projectId==null || projectId.trim().length()==0) return;
+        
+        ProjectRW project = getProjectByNameRW(projectId);
+        
+        if (project==null) return;
+        
+        project.setPages(pages);
+        
+        persistProject(project);
+    }
+    
+    /**
+     * This method will overwrite existing project DevelopersRW definition
+     * in xml file with a new one generated from data contained in given DevelopersRW object.
+     * Be aware, data is NOT merged but overwritten!
+     */
+    public void persistDevelopers(DevelopersRW developers, String projectId) {
+        if (developers==null || projectId==null || projectId.trim().length()==0) return;
+        
+        ProjectRW project = getProjectByNameRW(projectId);
+        
+        if (project==null) return;
+        
+        project.setDevelopers(developers);
+        
+        persistProject(project);
+        
+    }
+    
+	public void start() throws Exception {
+		
+		log.info("Projects service started");
+	}
+	
+	public void stop() throws Exception {
+		
+		log.info("Projects service stopped");
+	}
+}

Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoEditBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoEditBean.java	2007-02-23 21:03:48 UTC (rev 9725)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoEditBean.java	2007-02-23 22:29:38 UTC (rev 9726)
@@ -32,6 +32,7 @@
 import org.jboss.forge.common.projects.project.MonitorType;
 import org.jboss.forge.common.projects.project.Project;
 import org.jboss.forge.common.projects.project.RepoMonitor;
+import org.jboss.forge.common.projects.project.rw.ProjectRW;
 
 public class ProjectInfoEditBean  {
 
@@ -48,6 +49,7 @@
 	private BuildType newBuildResultsType = 
 							ProjectInfoConstants.DEFAULT_BUILD_TYPE;
 	
+	
 	public ProjectInfoEditBean() {
 
 		project = ProjectInfoTools.getProjectByName(FacesTools.getSelectedProjectId());
@@ -67,6 +69,12 @@
 		}
 		
 		jems = project.getJems();
+		
+		//DEBUG
+		ProjectRW projectRW = ProjectInfoTools.
+					getProjectRWByName(FacesTools.getSelectedProjectId());
+		System.out.println("Project: " + project + " ProjectRW: " + projectRW +
+				" (" + projectRW.getName() + ")");
 	}	
 	
 	/* Business methods */

Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoTools.java	2007-02-23 21:03:48 UTC (rev 9725)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoTools.java	2007-02-23 22:29:38 UTC (rev 9726)
@@ -27,20 +27,35 @@
 import java.util.Map;
 
 import javax.faces.model.SelectItem;
+import javax.management.MalformedObjectNameException;
 
+import org.jboss.forge.common.ejb3.LabsServices;
 import org.jboss.forge.common.ejb3.ProjectsService;
+import org.jboss.forge.common.ejb3.ProjectsServiceRW;
 import org.jboss.forge.common.projects.ProjectsHelper;
 
 import org.jboss.forge.common.projects.project.Documentation;
 import org.jboss.forge.common.projects.project.DocumentationType;
 import org.jboss.forge.common.projects.project.Project;
+import org.jboss.forge.common.projects.project.rw.ProjectRW;
+import org.jboss.logging.Logger;
 
 
 public class ProjectInfoTools  {
 
-
+	private static Logger log = Logger.getLogger(ProjectInfoTools.class);
+	
 	private static ProjectsService projectsService = null;
-
+	private static ProjectsServiceRW projectsServiceRW = null;
+	
+	static {
+		try {
+			projectsServiceRW = LabsServices.getProjectsServiceRW();
+		} catch (MalformedObjectNameException e) {
+			log.warn("Cannot get ProjectsServiceRW");
+		}
+	}
+	
 	public static Project getProjectByName(String projectId) {
 		
 		if (projectsService == null) {
@@ -50,6 +65,11 @@
 		return projectsService.getProjectByName(projectId);
 	}
 
+	public static ProjectRW getProjectRWByName(String projectId) {
+		
+		return projectsServiceRW.getProjectByNameRW(projectId);
+	}
+	
 	public static List<SelectItem> getAllProjects() {
 		
 		if (projectsService == null) {
@@ -99,4 +119,6 @@
 		
 	private ProjectInfoTools() {	}
 
+	
+
 }




More information about the jboss-svn-commits mailing list