[jboss-svn-commits] JBL Code SVN: r9535 - 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
Thu Feb 15 09:19:57 EST 2007
Author: unibrew
Date: 2007-02-15 09:19:56 -0500 (Thu, 15 Feb 2007)
New Revision: 9535
Added:
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/configuration/Configuration.java
Removed:
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/configuration/Projects.java
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ConfigurationService.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/ProjectsHelper.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/configuration/ObjectFactory.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/configuration/Project.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/web/WEB-INF/projects.xsd
labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/configuration/ConfigurationServiceImpl.java
Log:
[JBLAB-832] I added code for executing projects.xml parsers, I finished ConfigurationService and modified a bit parser classes together with XMLSchema file.
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ConfigurationService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ConfigurationService.java 2007-02-15 14:15:40 UTC (rev 9534)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ConfigurationService.java 2007-02-15 14:19:56 UTC (rev 9535)
@@ -1,20 +1,21 @@
package org.jboss.forge.common.ejb3;
-import org.jboss.forge.common.projects.configuration.Projects;
+import org.jboss.forge.common.projects.configuration.Configuration;
+import org.jboss.forge.common.projects.configuration.Project;
+import java.util.List;
+
public interface ConfigurationService
{
public static final String CONFIGURATION_SERVICE = "labs:service=configuration";
- public Projects getConfiguredProjects ();
+ public Configuration getConfiguration();
+ public List<Project> getConfiguredProjects ();
+
public String getProjectPermission (String projectId) ;
- public String getProjectInfoPage (String projectId) ;
-
- public String getProjectMainPage (String projectId) ;
-
public String getProjectLevel (String projectId) ;
public String getProjectEditPermission (String projectId) ;
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-15 14:15:40 UTC (rev 9534)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java 2007-02-15 14:19:56 UTC (rev 9535)
@@ -47,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.configuration.Configuration;
import org.jboss.logging.Logger;
import org.jboss.portal.core.servlet.jsp.taglib.context.DelegateContext;
import org.w3c.dom.Document;
@@ -88,6 +89,11 @@
* Project id --> Corresponding NEW project descriptor object
*/
private Map<String, Project> newProjects;
+
+ /**
+ * Configuration from projects.xml descriptor.
+ */
+ private Configuration configuration;
/**
* Permissions descriptor --> Corresponding global context
@@ -297,13 +303,31 @@
Node n;
NodeList nodes = root.getChildNodes();
- JAXBContext jc=null;
+ JAXBContext projectJC=null;
+ JAXBContext projectsJC=null;
try {
- jc = JAXBContext.newInstance("org.jboss.forge.common.projects.project");
+ projectsJC = JAXBContext.newInstance("org.jboss.forge.common.projects.configuration");
} catch (JAXBException e) {
log.warn("I could not create JAXBContext."+e.getCause());
}
+
+ if (projectsJC!=null) {
+ try {
+ Unmarshaller un = projectsJC.createUnmarshaller();
+ this.configuration = (Configuration)un.unmarshal(
+ isf.getInputSource(ProjectsHelper.PROJECTS_DESC));
+ log.info("Projects.xml configuration created.");
+ } catch (Exception e) {
+ log.warn("I could not create projects.xml configuration.");
+ }
+ }
+
+ try {
+ projectJC = JAXBContext.newInstance("org.jboss.forge.common.projects.project");
+ } catch (JAXBException e) {
+ log.warn("I could not create JAXBContext."+e.getCause());
+ }
for (int i = 0; i < nodes.getLength(); i++) {
n = nodes.item(i);
@@ -321,13 +345,13 @@
portalName, adminProperties);
projects.put(projectId, pd);
- if (jc!=null) {
+ if (projectJC!=null) {
try {
- Unmarshaller un = jc.createUnmarshaller();
+ Unmarshaller un = projectJC.createUnmarshaller();
Project newProject = (Project)un.unmarshal(
isf.getInputSource(projectId+"/" + ProjectsHelper.PROJECT_DESC));
newProjects.put(projectId,newProject);
- log.info("I created Project "+projectId+".");
+ log.info("Project "+projectId+" created.");
} catch (Exception e) {
log.warn("I could not create Project "+projectId+".");
}
@@ -791,4 +815,8 @@
public Map<String,Project> getNewProjects() {
return newProjects;
}
+
+ public Configuration getConfiguration () {
+ return this.configuration;
+ }
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsHelper.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsHelper.java 2007-02-15 14:15:40 UTC (rev 9534)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsHelper.java 2007-02-15 14:19:56 UTC (rev 9535)
@@ -117,11 +117,15 @@
* Name of the portal.
* @return An appropriate instance of class Projects.
*/
- public static synchronized Projects getProjects(String portalName) {
+ public static Projects getProjects(String portalName) {
Projects projects = projectsObjects.get(portalName);
if (projects == null) {
- projects = new Projects(portalName);
- projectsObjects.put(portalName, projects);
+ synchronized (ProjectsHelper.class) {
+ if (projects == null) {
+ projects = new Projects(portalName);
+ projectsObjects.put(portalName, projects);
+ }
+ }
}
return projects;
Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/configuration/Configuration.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/configuration/Configuration.java (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/configuration/Configuration.java 2007-02-15 14:19:56 UTC (rev 9535)
@@ -0,0 +1,87 @@
+/*
+ * 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.projects.configuration;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ *
+ * Root class and a placeholder for all projects.
+ * PLEASE, DO NOT MODIFY THIS CLASS UNLESS YOU KNOW JAXB.
+ * @author Ryszard Kozmik
+ *
+ *
+ *
+ *
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+ "projects"
+})
+ at XmlRootElement(name = "projects")
+public class Configuration
+ implements Serializable
+{
+
+ private final static long serialVersionUID = 1L;
+ @XmlElement(name = "project")
+ protected List<Project> projects;
+
+ /**
+ * Gets the value of the projects property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the projects property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getProjects().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Project }
+ *
+ *
+ */
+ public List<Project> getProjects() {
+ if (projects == null) {
+ projects = new ArrayList<Project>();
+ }
+ return this.projects;
+ }
+
+}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/configuration/ObjectFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/configuration/ObjectFactory.java 2007-02-15 14:15:40 UTC (rev 9534)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/configuration/ObjectFactory.java 2007-02-15 14:19:56 UTC (rev 9535)
@@ -51,11 +51,11 @@
}
/**
- * Create an instance of {@link Projects }
+ * Create an instance of {@link Configuration }
*
*/
- public Projects createProjects() {
- return new Projects();
+ public Configuration createConfiguration() {
+ return new Configuration();
}
/**
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/configuration/Project.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/configuration/Project.java 2007-02-15 14:15:40 UTC (rev 9534)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/configuration/Project.java 2007-02-15 14:19:56 UTC (rev 9535)
@@ -27,26 +27,31 @@
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
/**
*
- * This class describes main info about project availability,
- * permissions, level in navigation etc.
- * PLEASE, DO NOT MODIFY THIS CLASS UNLESS YOU KNOW JAXB.
- * @author Ryszard Kozmik
- *
+ * This class describes main info about project availability,
+ * permissions, level in navigation etc.
+ * PLEASE, DO NOT MODIFY THIS CLASS UNLESS YOU KNOW JAXB.
+ * @author Ryszard Kozmik
+ *
*
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
- at XmlType(name = "project")
+ at XmlType(name = "project", propOrder = {
+ "content"
+})
public class Project
implements Serializable
{
private final static long serialVersionUID = 1L;
+ @XmlValue
+ protected String content;
@XmlAttribute(required = true)
protected String level;
@XmlAttribute(name = "edit-permission")
@@ -55,6 +60,30 @@
protected String permission;
/**
+ * Gets the value of the content property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getContent() {
+ return content;
+ }
+
+ /**
+ * Sets the value of the content property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setContent(String value) {
+ this.content = value;
+ }
+
+ /**
* Gets the value of the level property.
*
* @return
Deleted: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/configuration/Projects.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/configuration/Projects.java 2007-02-15 14:15:40 UTC (rev 9534)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/configuration/Projects.java 2007-02-15 14:19:56 UTC (rev 9535)
@@ -1,87 +0,0 @@
-/*
- * 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.projects.configuration;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- *
- * Root class and a placeholder for all projects.
- * PLEASE, DO NOT MODIFY THIS CLASS UNLESS YOU KNOW JAXB.
- * @author Ryszard Kozmik
- *
- *
- *
- *
- */
- at XmlAccessorType(XmlAccessType.FIELD)
- at XmlType(name = "", propOrder = {
- "projects"
-})
- at XmlRootElement(name = "projects")
-public class Projects
- implements Serializable
-{
-
- private final static long serialVersionUID = 1L;
- @XmlElement(name = "project")
- protected List<Project> projects;
-
- /**
- * Gets the value of the projects property.
- *
- * <p>
- * This accessor method returns a reference to the live list,
- * not a snapshot. Therefore any modification you make to the
- * returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the projects property.
- *
- * <p>
- * For example, to add a new item, do as follows:
- * <pre>
- * getProjects().add(newItem);
- * </pre>
- *
- *
- * <p>
- * Objects of the following type(s) are allowed in the list
- * {@link Project }
- *
- *
- */
- public List<Project> getProjects() {
- if (projects == null) {
- projects = new ArrayList<Project>();
- }
- return this.projects;
- }
-
-}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/web/WEB-INF/projects.xsd
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/web/WEB-INF/projects.xsd 2007-02-15 14:15:40 UTC (rev 9534)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/web/WEB-INF/projects.xsd 2007-02-15 14:19:56 UTC (rev 9535)
@@ -40,7 +40,7 @@
<xs:element name="projects" >
<xs:annotation>
<xs:appinfo>
- <jxb:class>
+ <jxb:class name="configuration" >
<jxb:javadoc>
Root class and a placeholder for all projects.
PLEASE, DO NOT MODIFY THIS CLASS UNLESS YOU KNOW JAXB.
@@ -62,22 +62,22 @@
</xs:complexType>
</xs:element>
- <xs:complexType name="project" >
- <xs:annotation>
- <xs:appinfo>
- <jxb:class>
- <jxb:javadoc>
- This class describes main info about project availability,
- permissions, level in navigation etc.
- PLEASE, DO NOT MODIFY THIS CLASS UNLESS YOU KNOW JAXB.
- @author Ryszard Kozmik
- </jxb:javadoc>
- </jxb:class>
- </xs:appinfo>
- </xs:annotation>
- <xs:attribute name="level" type="xs:string" use="required" />
- <xs:attribute name="edit-permission" type="xs:string" use="optional" />
- <xs:attribute name="permission" type="xs:string" use="optional" />
+ <xs:complexType name="project" mixed="true" >
+ <xs:annotation>
+ <xs:appinfo>
+ <jxb:class>
+ <jxb:javadoc>
+ This class describes main info about project availability,
+ permissions, level in navigation etc.
+ PLEASE, DO NOT MODIFY THIS CLASS UNLESS YOU KNOW JAXB.
+ @author Ryszard Kozmik
+ </jxb:javadoc>
+ </jxb:class>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:attribute name="level" type="xs:string" use="required" />
+ <xs:attribute name="edit-permission" type="xs:string" use="optional" />
+ <xs:attribute name="permission" type="xs:string" use="optional" />
</xs:complexType>
Modified: labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/configuration/ConfigurationServiceImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/configuration/ConfigurationServiceImpl.java 2007-02-15 14:15:40 UTC (rev 9534)
+++ labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/configuration/ConfigurationServiceImpl.java 2007-02-15 14:19:56 UTC (rev 9535)
@@ -3,9 +3,16 @@
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
+import java.util.List;
+import java.util.ArrayList;
+
import org.jboss.annotation.ejb.Service;
import org.jboss.forge.common.ejb3.ConfigurationService;
-import org.jboss.forge.common.projects.configuration.Projects;
+import org.jboss.forge.common.projects.configuration.Configuration;
+import org.jboss.forge.common.projects.configuration.Project;
+import org.jboss.forge.common.projects.ProjectsHelper;
+import org.jboss.forge.common.projects.Projects;
+import org.jboss.forge.common.Constants;
import org.jboss.logging.Logger;
import org.jboss.shotoku.ContentManager;
import org.jboss.shotoku.aop.Inject;
@@ -33,28 +40,63 @@
@Inject
private ContentManager cm;
- public Projects getConfiguredProjects () {
- return null;
+ public Configuration getConfiguration () {
+ Projects projectsClass = ProjectsHelper.getProjects(Constants.LABS_PORTAL);
+ return projectsClass.getProjectsDescriptor().getConfiguration();
}
- public String getProjectPermission (String projectId) {
- return null;
+ public List<Project> getConfiguredProjects() {
+ Configuration configuration = getConfiguration();
+ if (configuration==null) {
+ return new ArrayList<Project>();
+ }
+ return configuration.getProjects();
}
- public String getProjectInfoPage (String projectId) {
+ public Project getConfiguredProject(String projectId) {
+ if (projectId==null || projectId.trim().length()==0) {
+ return null;
+ }
+ List<Project> projects = getConfiguredProjects();
+ for (Project project : projects) {
+ if (project.getContent().compareTo(projectId)==0) {
+ return project;
+ }
+ }
return null;
}
- public String getProjectMainPage (String projectId) {
- return null;
+ public String getProjectPermission (String projectId) {
+ if (projectId==null || projectId.trim().length()==0) {
+ return null;
+ }
+ Project project = getConfiguredProject(projectId);
+ if (project==null) {
+ return null;
+ }
+ return project.getPermission();
}
public String getProjectLevel (String projectId) {
- return null;
+ if (projectId==null || projectId.trim().length()==0) {
+ return null;
+ }
+ Project project = getConfiguredProject(projectId);
+ if (project==null) {
+ return null;
+ }
+ return project.getLevel();
}
public String getProjectEditPermission (String projectId) {
- return null;
+ if (projectId==null || projectId.trim().length()==0) {
+ return null;
+ }
+ Project project = getConfiguredProject(projectId);
+ if (project==null) {
+ return null;
+ }
+ return project.getEditPermission();
}
More information about the jboss-svn-commits
mailing list