[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