[jboss-svn-commits] JBL Code SVN: r7101 - in labs/jbosslabs/trunk/portal-extensions: forge-common forge-common/src/java/org/jboss/forge/common/projects forge-common/src/java/org/jboss/forge/common/soa forge-common/src/java/org/jboss/forge/common/soa/projects jboss-as-binaries/to-copy/server/all/lib

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Oct 25 08:39:30 EDT 2006


Author: unibrew
Date: 2006-10-25 08:39:05 -0400 (Wed, 25 Oct 2006)
New Revision: 7101

Added:
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/projects/
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/projects/ProjectsService.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/projects/ProjectsServiceImpl.java
   labs/jbosslabs/trunk/portal-extensions/jboss-as-binaries/to-copy/server/all/lib/jaxb-api.jar
   labs/jbosslabs/trunk/portal-extensions/jboss-as-binaries/to-copy/server/all/lib/jaxb-impl.jar
   labs/jbosslabs/trunk/portal-extensions/jboss-as-binaries/to-copy/server/all/lib/jsr173_1.0_api.jar
Modified:
   labs/jbosslabs/trunk/portal-extensions/forge-common/project.xml
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectDescriptor.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/Projects.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/soa/LabsServices.java
Log:
[JBLAB-734] I turned on new project.xml parsers and created ProjectsService for it as a part of SOA Labs.

Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/project.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/project.xml	2006-10-25 12:30:52 UTC (rev 7100)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/project.xml	2006-10-25 12:39:05 UTC (rev 7101)
@@ -127,6 +127,12 @@
 	    <version></version>
 	    <jar>jboss-j2ee.jar</jar>
         </dependency>
+	<dependency>
+		<groupId>jboss</groupId>
+		<artifactId>jboss-annotations-ejb3</artifactId>
+		<version>1.0</version>
+		<jar>jboss-annotations-ejb3.jar</jar>
+    </dependency>
     </dependencies>
     
     <build>

Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectDescriptor.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectDescriptor.java	2006-10-25 12:30:52 UTC (rev 7100)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectDescriptor.java	2006-10-25 12:39:05 UTC (rev 7101)
@@ -43,6 +43,8 @@
 import org.jboss.forge.common.projects.elements.PropertiesHandlerStack;
 import org.jboss.forge.common.projects.elements.PropertiesMap;
 import org.jboss.forge.common.projects.permissions.PermissionsChecker;
+import org.jboss.forge.common.projects.test.ObjectFactory;
+import org.jboss.forge.common.projects.test.Project;
 import org.jboss.logging.Logger;
 import org.jboss.portal.common.context.DelegateContext;
 import org.jboss.shotoku.ContentManager;
@@ -134,13 +136,31 @@
                     try {
                         //JAXBContext jc = JAXBContext.newInstance("org.jboss.forge.common.projects.test");
                         JAXBContext jc = JAXBContext.newInstance("org.jboss.forge.common.projects.test");
+                 System.out.println("NODE: "+cm.getNode("default/members/jbosswiki/project.xml").getContent());
                         Unmarshaller un = jc.createUnmarshaller();
                         Project project = (Project)un.unmarshal(cm.getNode("default/members/jbosswiki/project.xml").getContentInputStream());
-                        project.toString();
+                        System.out.println("Project: "+project);
+                        System.out.println("Project.id: "+project.getId());
+                        System.out.println("Project.name: "+project.getName());
+                        System.out.println("Project.companyName: "+project.getCompanyName());
+                        System.out.println("Project.logo: "+project.getLogo());
+                        System.out.println("Project.description: "+project.getDescription());
+                        System.out.println("Project.developers: "+project.getDevelopers());
+                        System.out.println("Project.jems: "+project.getJems());
+                        System.out.println("Project.repository: "+project.getRepository());
+                        System.out.println("Project.repomonitor: "+project.getRepoMonitor());
+                        System.out.println("Project.issueTracker: "+project.getIssueTracker());
+                        System.out.println("Project.buildResults: "+project.getBuildResults());
+                        System.out.println("Project.supportServices: "+project.getSupportServices());
+                        System.out.println("Project.forums: "+project.getForums());
+                        System.out.println("Project.documentation: "+project.getDocumentation());
+                        System.out.println("Project.polls: "+project.getPolls());
+                        System.out.println("Project.downloads: "+project.getDownloads());
+                        System.out.println("Project.menu: "+project.getMenu());
                     } catch (Exception e) {
                         e.printStackTrace();
                     }
-                    new ObjectFactory().createProject();
+                    //new ObjectFactory().createProject();
                 }*/
 
 		// Trying to create a downloads descriptor.

Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/Projects.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/Projects.java	2006-10-25 12:30:52 UTC (rev 7100)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/Projects.java	2006-10-25 12:39:05 UTC (rev 7101)
@@ -55,7 +55,7 @@
     /**
      * Reads and if necessary, updates, a projects descriptor.
      */
-    private ProjectsDescriptor getProjectsDescriptor() {
+    public ProjectsDescriptor getProjectsDescriptor() {
         return pcw.get(portalName);
     }
 

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	2006-10-25 12:30:52 UTC (rev 7100)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java	2006-10-25 12:39:05 UTC (rev 7101)
@@ -21,9 +21,14 @@
  */
 package org.jboss.forge.common.projects;
 
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.util.*;
 
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+
 import org.apache.xerces.parsers.DOMParser;
 import org.jboss.forge.common.ForgeHelper;
 import org.jboss.forge.common.SearchTools;
@@ -39,6 +44,8 @@
 import org.jboss.forge.common.projects.elements.PropertiesMap;
 import org.jboss.forge.common.projects.permissions.NullPermissionsChecker;
 import org.jboss.forge.common.projects.permissions.PermissionsChecker;
+import org.jboss.forge.common.projects.test.Project;
+import org.jboss.forge.common.projects.test.Test;
 import org.jboss.logging.Logger;
 import org.jboss.portal.common.context.DelegateContext;
 import org.w3c.dom.Document;
@@ -50,6 +57,7 @@
  * Holds information about all projects.
  * 
  * @author adamw
+ * @author <a href="ryszard.kozmik at jboss.com">Ryszard Kozmik</a>
  */
 public class ProjectsDescriptor extends AbstractDescriptor {
     /**
@@ -76,6 +84,11 @@
     private Map<String, ProjectDescriptor> projects;
 
     /**
+     * Project id --> Corresponding NEW project descriptor object
+     */
+    private Map<String, Project> newProjects;
+
+    /**
      * Permissions descriptor --> Corresponding global context
      */
     private Map<String, DelegateContext> contexts;
@@ -116,6 +129,7 @@
     public ProjectsDescriptor(XmlInputFactory isf, String portalName) {
         this.portalName = portalName;
         projects = new LinkedHashMap<String, ProjectDescriptor>();
+        newProjects = new LinkedHashMap<String, Project>();
         projectWithErrorsDescriptors = new HashSet<String>();
 
         projectsContexts = Collections
@@ -300,6 +314,14 @@
         Node n;
         NodeList nodes = root.getChildNodes();
 
+        JAXBContext jc=null;
+        
+        try {
+            jc = JAXBContext.newInstance("org.jboss.forge.common.projects.test");
+        } catch (JAXBException e) {
+            log.warn("I could not create JAXBContext."+e.getCause());
+        }
+
         for (int i = 0; i < nodes.getLength(); i++) {
             n = nodes.item(i);
 
@@ -310,11 +332,24 @@
 
                 String projectId = XmlTools.unmarshallText(n);
                 ProjectDescriptor pd;
+                
                 try {
                     pd = new ProjectDescriptor(projectId, isf, xht, opm,
                             portalName, adminProperties);
-
                     projects.put(projectId, pd);
+                    
+                    if (jc!=null) {
+                        try {
+                            Unmarshaller un = jc.createUnmarshaller();
+                            Project newProject = (Project)un.unmarshal(
+                                isf.getInputSource(projectId+"/" + ProjectsHelper.PROJECT_DESC));
+                            newProjects.put(projectId,newProject);
+                            log.info("I created Project "+projectId+".");
+                        } catch (Exception e) {
+                            log.warn("I could not create Project "+projectId+".");
+                        }
+                    }
+                    
                 } catch (Exception e) {
                     // In case of any exception, we just don't put the
                     // project into the map. We only add its descriptor
@@ -769,4 +804,8 @@
         }
         return ret;		
 	}
+        
+        public Map<String,Project> getNewProjects() {
+            return newProjects;
+        }
 }

Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/LabsServices.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/LabsServices.java	2006-10-25 12:30:52 UTC (rev 7100)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/LabsServices.java	2006-10-25 12:39:05 UTC (rev 7101)
@@ -28,11 +28,13 @@
 
 import org.jboss.forge.common.propertypersistance.PropertyService;
 import org.jboss.forge.common.soa.primates.PrimatesService;
+import org.jboss.forge.common.soa.projects.ProjectsService;
 import org.jboss.mx.util.MBeanProxyExt;
 import org.jboss.mx.util.MBeanServerLocator;
 
 /**
  * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ * @author <a href="mailto:ryszard.kozmik at jboss.com">Ryszard Kozmik</a>
  */
 
 public class LabsServices {
@@ -49,5 +51,10 @@
 	public static PropertyService getPropertyService() throws NamingException {
 		return (PropertyService)(new InitialContext()).lookup(PROP_SERVICE); 
 	}
+        
+        public static ProjectsService getProjectsService() throws MalformedObjectNameException {
+            return (ProjectsService) MBeanProxyExt.create(ProjectsService.class,
+                            ProjectsService.PROJECTS_SERVICE, MBeanServerLocator.locate());
+        }
 	
 }

Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/projects/ProjectsService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/projects/ProjectsService.java	2006-10-25 12:30:52 UTC (rev 7100)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/projects/ProjectsService.java	2006-10-25 12:39:05 UTC (rev 7101)
@@ -0,0 +1,75 @@
+ /*
+  * 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.soa.projects;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.jboss.forge.common.projects.test.BuildResult;
+import org.jboss.forge.common.projects.test.Developers;
+import org.jboss.forge.common.projects.test.Documentation;
+import org.jboss.forge.common.projects.test.Downloads;
+import org.jboss.forge.common.projects.test.Forum;
+import org.jboss.forge.common.projects.test.IssueTracker;
+import org.jboss.forge.common.projects.test.Menu;
+import org.jboss.forge.common.projects.test.Polls;
+import org.jboss.forge.common.projects.test.Project;
+import org.jboss.forge.common.projects.test.RepoMonitor;
+import org.jboss.forge.common.projects.test.Repository;
+import org.jboss.forge.common.projects.test.SupportService;
+
+/**
+ * @author <a href="ryszard.kozmik at jboss.com">Ryszard Kozmik</a>
+ */
+public interface ProjectsService {
+
+    public static final String PROJECTS_SERVICE = "labs:service=projects";
+
+    public Collection<Project> getProjects();
+
+    public Project getProjectByName (String projectName);
+    
+    public Polls getProjectPolls (String projectName);
+    
+    public Downloads getProjectDownloads (String projectName);
+    
+    public Menu getProjectMenu (String projectName);
+    
+    public Developers getProjectDevelopers (String projectName);
+    
+    public List<String> getProjectJems (String projectName);
+    
+    public List<Repository> getProjectRepositories (String projectName);
+    
+    public List<RepoMonitor> getProjectRepoMonitors (String projectName);
+    
+    public List<IssueTracker> getProjectIssueTrackers (String projectName);
+    
+    public List<BuildResult> getProjectBuildresults (String projectName);
+    
+    public List<SupportService> getProjectSupportServices (String projectName);
+    
+    public List<Forum> getProjectForums (String projectName);
+    
+    public List<Documentation> getProjectDocumentation (String projectName);
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/projects/ProjectsServiceImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/projects/ProjectsServiceImpl.java	2006-10-25 12:30:52 UTC (rev 7100)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/projects/ProjectsServiceImpl.java	2006-10-25 12:39:05 UTC (rev 7101)
@@ -0,0 +1,120 @@
+ /*
+  * 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.soa.projects;
+
+import java.util.Collection;
+import java.util.List;
+
+import java.util.Map;
+
+import org.jboss.annotation.ejb.Management;
+import org.jboss.annotation.ejb.Service;
+import org.jboss.forge.common.projects.Projects;
+import org.jboss.forge.common.projects.ProjectsHelper;
+import org.jboss.forge.common.projects.test.BuildResult;
+import org.jboss.forge.common.projects.test.Developers;
+import org.jboss.forge.common.projects.test.Documentation;
+import org.jboss.forge.common.projects.test.Downloads;
+import org.jboss.forge.common.projects.test.Forum;
+import org.jboss.forge.common.projects.test.IssueTracker;
+import org.jboss.forge.common.projects.test.Menu;
+import org.jboss.forge.common.projects.test.Polls;
+import org.jboss.forge.common.projects.test.Project;
+import org.jboss.forge.common.projects.test.RepoMonitor;
+import org.jboss.forge.common.projects.test.Repository;
+import org.jboss.forge.common.projects.test.SupportService;
+import org.jboss.logging.Logger;
+
+
+/**
+ * @author <a href="mailto:ryszard.kozmik at jboss.com">Ryszard Kozmik</a>
+ */
+
+ at Service(objectName = ProjectsService.PROJECTS_SERVICE)
+ at Management(ProjectsService.class)
+public class ProjectsServiceImpl implements ProjectsService {
+
+    private static final Logger log = Logger.getLogger(ProjectsService.class);
+    
+    private static final String PORTAL_NAME = "default";
+    
+    public Collection<Project> getProjects() {
+        Projects projectsClass = ProjectsHelper.getProjects(PORTAL_NAME);
+        Map<String,Project> projects = projectsClass.getProjectsDescriptor().getNewProjects();
+        return projects.values();
+    }
+    
+    public Project getProjectByName(String projectName) {
+        Projects projectsClass = ProjectsHelper.getProjects(PORTAL_NAME);
+        Map<String,Project> projects = projectsClass.getProjectsDescriptor().getNewProjects();
+        return projects.get(projectName);
+    }
+    
+    public Polls getProjectPolls (String projectName) { 
+        return getProjectByName(projectName).getPolls();
+    }
+
+    public Downloads getProjectDownloads(String projectName) {
+        return getProjectByName(projectName).getDownloads();
+    }
+
+    public Menu getProjectMenu(String projectName) {
+        return getProjectByName(projectName).getMenu();
+    }
+
+    public Developers getProjectDevelopers(String projectName) {
+        return getProjectByName(projectName).getDevelopers();
+    }
+
+    public List<String> getProjectJems(String projectName) {
+        return getProjectByName(projectName).getJems();
+    }
+
+    public List<Repository> getProjectRepositories(String projectName) {
+        return getProjectByName(projectName).getRepository();
+    }
+
+    public List<RepoMonitor> getProjectRepoMonitors(String projectName) {
+        return getProjectByName(projectName).getRepoMonitor();
+    }
+
+    public List<IssueTracker> getProjectIssueTrackers(String projectName) {
+        return getProjectByName(projectName).getIssueTracker();
+    }
+
+    public List<BuildResult> getProjectBuildresults(String projectName) {
+        return getProjectByName(projectName).getBuildResults();
+    }
+
+    public List<SupportService> getProjectSupportServices(String projectName) {
+        return getProjectByName(projectName).getSupportServices();
+    }
+
+    public List<Forum> getProjectForums(String projectName) {
+        return getProjectByName(projectName).getForums();
+    }
+
+    public List<Documentation> getProjectDocumentation(String projectName) {
+        return getProjectByName(projectName).getDocumentation();
+    }
+}

Added: labs/jbosslabs/trunk/portal-extensions/jboss-as-binaries/to-copy/server/all/lib/jaxb-api.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbosslabs/trunk/portal-extensions/jboss-as-binaries/to-copy/server/all/lib/jaxb-api.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosslabs/trunk/portal-extensions/jboss-as-binaries/to-copy/server/all/lib/jaxb-impl.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbosslabs/trunk/portal-extensions/jboss-as-binaries/to-copy/server/all/lib/jaxb-impl.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosslabs/trunk/portal-extensions/jboss-as-binaries/to-copy/server/all/lib/jsr173_1.0_api.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbosslabs/trunk/portal-extensions/jboss-as-binaries/to-copy/server/all/lib/jsr173_1.0_api.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream




More information about the jboss-svn-commits mailing list