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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Feb 15 18:50:01 EST 2007


Author: adamw
Date: 2007-02-15 18:50:01 -0500 (Thu, 15 Feb 2007)
New Revision: 9543

Added:
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectsPortletsService.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/exceptions/
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/exceptions/ServiceRetrievalException.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/ObjectFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/ProjectsPortlet.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/ProjectsPortletPreference.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/ProjectsPortlets.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/package-info.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/web/WEB-INF/projectsPortlets.xsd
   labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/portlets/
   labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/portlets/ProjectsPortletsCacheItem.java
   labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/portlets/ProjectsPortletsServiceImpl.java
   labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/freezone/TestServlet3.java
Removed:
   labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesPortletsWatcher.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/ejb3/LabsServices.java
   labs/jbosslabs/trunk/portal-extensions/forge-ejb3/project.xml
   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/projectpages/ProjectPagesServiceBean.java
   labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/web.xml
Log:
Projects pages service

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 23:04:56 UTC (rev 9542)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ConfigurationService.java	2007-02-15 23:50:01 UTC (rev 9543)
@@ -19,5 +19,11 @@
     public String getProjectLevel (String projectId) ;
     
     public String getProjectEditPermission (String projectId) ;
+
+    //	 Life cycle methods
+
+    public void start () throws Exception;
+
+	public void stop () throws Exception;
     
 }
\ No newline at end of file

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-15 23:04:56 UTC (rev 9542)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/LabsServices.java	2007-02-15 23:50:01 UTC (rev 9543)
@@ -26,11 +26,9 @@
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 
-import org.jboss.forge.common.ejb3.PropertyService;
-import org.jboss.forge.common.ejb3.PrimatesService;
-import org.jboss.forge.common.ejb3.ProjectsService;
 import org.jboss.mx.util.MBeanProxyExt;
 import org.jboss.mx.util.MBeanServerLocator;
+import org.jboss.forge.common.exceptions.ServiceRetrievalException;
 
 /**
  * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
@@ -39,22 +37,48 @@
  */
 
 public class LabsServices {
+    private static Object getService(Class serviceClass, String serviceName)
+            throws MalformedObjectNameException {
+        return MBeanProxyExt.create(serviceClass, serviceName, MBeanServerLocator.locate());
+    }
+
+    private static Object getStatelessBean(String beanName) throws NamingException {
+        return (new InitialContext()).lookup(beanName);
+    }
+
     public static PrimatesService getPrimatesService() throws MalformedObjectNameException {
-        return (PrimatesService) MBeanProxyExt.create(PrimatesService.class,
-                PrimatesService.PRIMATES_SERVICE, MBeanServerLocator.locate());
+        return (PrimatesService) getService(PrimatesService.class,
+                PrimatesService.PRIMATES_SERVICE);
     }
 
     public static PropertyService getPropertyService() throws NamingException {
-        return (PropertyService)(new InitialContext()).lookup(PropertyService.PROPERTY_SERVICE);
+        return (PropertyService) getStatelessBean(PropertyService.PROPERTY_SERVICE);
     }
 
     public static ProjectsService getProjectsService() throws MalformedObjectNameException {
-        return (ProjectsService) MBeanProxyExt.create(ProjectsService.class,
-                ProjectsService.PROJECTS_SERVICE, MBeanServerLocator.locate());
+        return (ProjectsService) getService(ProjectsService.class,
+                ProjectsService.PROJECTS_SERVICE);
     }
 
     public static ProjectPagesService getProjectPagesService() throws NamingException {
-        return (ProjectPagesService)(new InitialContext()).lookup(
-                ProjectPagesService.PROJECT_PAGES_SERVICE);
+        return (ProjectPagesService) getStatelessBean(ProjectPagesService.PROJECT_PAGES_SERVICE);
     }
+
+    public static ProjectsPortletsService getProjectsPortletsService() throws ServiceRetrievalException {
+        try {
+            return (ProjectsPortletsService) getService(ProjectsPortletsService.class,
+                    ProjectsPortletsService.PROJECTS_PORTLETS_SERVICE);
+        } catch (MalformedObjectNameException e) {
+            throw new ServiceRetrievalException(e);
+        }
+    }
+
+    public static ConfigurationService getConfigurationService() throws ServiceRetrievalException {
+        try {
+            return (ConfigurationService) getService(ConfigurationService.class,
+                    ConfigurationService.CONFIGURATION_SERVICE);
+        } catch (MalformedObjectNameException e) {
+            throw new ServiceRetrievalException(e);
+        }
+    }
 }

Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectsPortletsService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectsPortletsService.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectsPortletsService.java	2007-02-15 23:50:01 UTC (rev 9543)
@@ -0,0 +1,34 @@
+package org.jboss.forge.common.ejb3;
+
+import org.jboss.forge.common.projects.portlets.ProjectsPortlets;
+import org.jboss.forge.common.projects.portlets.ProjectsPortlet;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public interface ProjectsPortletsService {
+    public static final String PROJECTS_PORTLETS_SERVICE = "labs:service=projectsportlets";
+
+    /**
+     * Gets full information about available portlets for projects pages.
+     * This is read-only information. The <code>setXXX()</code> methods
+     * should not be used, as the changes won't be persisted.
+     * @return A projects portlets bean instance.
+     */
+    public ProjectsPortlets getProjectsPortlets();
+
+    /**
+     * Gets information about one specific portlet that can be used on
+     * a projects page.
+     * @param projectsPortletName Name of the portlet.
+     * @return A projects portlet bean instance or null, if a portlet
+     * with the given name does not exist.
+     */
+    public ProjectsPortlet getProjectsProtlet(String projectsPortletName);
+
+    //	 Life cycle methods
+
+    public void start () throws Exception;
+
+	public void stop () throws Exception;
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/exceptions/ServiceRetrievalException.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/exceptions/ServiceRetrievalException.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/exceptions/ServiceRetrievalException.java	2007-02-15 23:50:01 UTC (rev 9543)
@@ -0,0 +1,22 @@
+package org.jboss.forge.common.exceptions;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class ServiceRetrievalException extends Exception {
+    public ServiceRetrievalException() {
+        super();
+    }
+
+    public ServiceRetrievalException(String message) {
+        super(message);
+    }
+
+    public ServiceRetrievalException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public ServiceRetrievalException(Throwable cause) {
+        super(cause);
+    }
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/ObjectFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/ObjectFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/ObjectFactory.java	2007-02-15 23:50:01 UTC (rev 9543)
@@ -0,0 +1,63 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.1.2-b01-fcs 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2007.02.15 at 11:54:09 PM CET 
+//
+
+
+package org.jboss.forge.common.projects.portlets;
+
+import javax.xml.bind.annotation.XmlRegistry;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.jboss.forge.common.projects.portlets package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.jboss.forge.common.projects.portlets
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link ProjectsPortlets }
+     * 
+     */
+    public ProjectsPortlets createProjectsPortlets() {
+        return new ProjectsPortlets();
+    }
+
+    /**
+     * Create an instance of {@link ProjectsPortletPreference }
+     * 
+     */
+    public ProjectsPortletPreference createProjectsPortletPreference() {
+        return new ProjectsPortletPreference();
+    }
+
+    /**
+     * Create an instance of {@link ProjectsPortlet }
+     * 
+     */
+    public ProjectsPortlet createProjectsPortlet() {
+        return new ProjectsPortlet();
+    }
+
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/ProjectsPortlet.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/ProjectsPortlet.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/ProjectsPortlet.java	2007-02-15 23:50:01 UTC (rev 9543)
@@ -0,0 +1,125 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.1.2-b01-fcs 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2007.02.15 at 11:54:09 PM CET 
+//
+
+
+package org.jboss.forge.common.projects.portlets;
+
+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.XmlType;
+
+
+/**
+ * 
+ *                         Information about one portlet available for project pages.
+ *                         PLEASE, DO NOT MODIFY THIS CLASS UNLESS YOU KNOW JAXB.
+ *                         @author Adam Warski
+ *                     
+ * 
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "portlet", propOrder = {
+    "name",
+    "portalId",
+    "preferences"
+})
+public class ProjectsPortlet
+    implements Serializable
+{
+
+    private final static long serialVersionUID = 1L;
+    @XmlElement(required = true)
+    protected String name;
+    @XmlElement(required = true)
+    protected String portalId;
+    @XmlElement(name = "preference")
+    protected List<ProjectsPortletPreference> preferences;
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the portalId property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getPortalId() {
+        return portalId;
+    }
+
+    /**
+     * Sets the value of the portalId property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setPortalId(String value) {
+        this.portalId = value;
+    }
+
+    /**
+     * Gets the value of the preferences 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 preferences property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getPreferences().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link ProjectsPortletPreference }
+     * 
+     * 
+     */
+    public List<ProjectsPortletPreference> getPreferences() {
+        if (preferences == null) {
+            preferences = new ArrayList<ProjectsPortletPreference>();
+        }
+        return this.preferences;
+    }
+
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/ProjectsPortletPreference.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/ProjectsPortletPreference.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/ProjectsPortletPreference.java	2007-02-15 23:50:01 UTC (rev 9543)
@@ -0,0 +1,152 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.1.2-b01-fcs 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2007.02.15 at 11:54:09 PM CET 
+//
+
+
+package org.jboss.forge.common.projects.portlets;
+
+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.XmlType;
+
+
+/**
+ * 
+ *                         Information about one preference of portlet available for project pages.
+ *                         PLEASE, DO NOT MODIFY THIS CLASS UNLESS YOU KNOW JAXB.
+ *                         @author Adam Warski
+ *                     
+ * 
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "preference", propOrder = {
+    "name",
+    "required",
+    "_default",
+    "values"
+})
+public class ProjectsPortletPreference
+    implements Serializable
+{
+
+    private final static long serialVersionUID = 1L;
+    @XmlElement(required = true)
+    protected String name;
+    @XmlElement(defaultValue = "false")
+    protected Boolean required;
+    @XmlElement(name = "default")
+    protected String _default;
+    @XmlElement(name = "value")
+    protected List<String> values;
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the required property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *     
+     */
+    public Boolean isRequired() {
+        return required;
+    }
+
+    /**
+     * Sets the value of the required property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *     
+     */
+    public void setRequired(Boolean value) {
+        this.required = value;
+    }
+
+    /**
+     * Gets the value of the default property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDefault() {
+        return _default;
+    }
+
+    /**
+     * Sets the value of the default property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDefault(String value) {
+        this._default = value;
+    }
+
+    /**
+     * Gets the value of the values 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 values property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getValues().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * 
+     * 
+     */
+    public List<String> getValues() {
+        if (values == null) {
+            values = new ArrayList<String>();
+        }
+        return this.values;
+    }
+
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/ProjectsPortlets.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/ProjectsPortlets.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/ProjectsPortlets.java	2007-02-15 23:50:01 UTC (rev 9543)
@@ -0,0 +1,73 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.1.2-b01-fcs 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2007.02.15 at 11:54:09 PM CET 
+//
+
+
+package org.jboss.forge.common.projects.portlets;
+
+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;
+
+
+/**
+ * 
+ *                         Portlets available for project pages.
+ *                         PLEASE, DO NOT MODIFY THIS CLASS UNLESS YOU KNOW JAXB.
+ *                         @author Adam Warski
+ *                     
+ * 
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "portlets"
+})
+ at XmlRootElement(name = "portlets")
+public class ProjectsPortlets
+    implements Serializable
+{
+
+    private final static long serialVersionUID = 1L;
+    @XmlElement(name = "portlet")
+    protected List<ProjectsPortlet> portlets;
+
+    /**
+     * Gets the value of the portlets 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 portlets property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getPortlets().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link ProjectsPortlet }
+     * 
+     * 
+     */
+    public List<ProjectsPortlet> getPortlets() {
+        if (portlets == null) {
+            portlets = new ArrayList<ProjectsPortlet>();
+        }
+        return this.portlets;
+    }
+
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/package-info.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/package-info.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/portlets/package-info.java	2007-02-15 23:50:01 UTC (rev 9543)
@@ -0,0 +1,9 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.1.2-b01-fcs 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2007.02.15 at 11:54:09 PM CET 
+//
+
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://jboss.org", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.jboss.forge.common.projects.portlets;

Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/web/WEB-INF/projectsPortlets.xsd
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/web/WEB-INF/projectsPortlets.xsd	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/web/WEB-INF/projectsPortlets.xsd	2007-02-15 23:50:01 UTC (rev 9543)
@@ -0,0 +1,114 @@
+<?xml version="1.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.
+-->
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+           xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
+           targetNamespace="http://jboss.org"
+           xmlns="http://jboss.org"
+           elementFormDefault="qualified"
+           jxb:version="2.0">
+    <xs:annotation>
+        <xs:appinfo>
+            <jxb:globalBindings>
+                <jxb:serializable uid="1" />
+            </jxb:globalBindings>
+        </xs:appinfo>
+    </xs:annotation>
+
+    <xs:element name="portlets">
+        <xs:annotation>
+            <xs:appinfo>
+                <jxb:class name="projectsPortlets">
+                    <jxb:javadoc>
+                        Portlets available for project pages.
+                        PLEASE, DO NOT MODIFY THIS CLASS UNLESS YOU KNOW JAXB.
+                        @author Adam Warski
+                    </jxb:javadoc>
+                </jxb:class>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element name="portlet" type="portlet" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation>
+                        <xs:appinfo>
+                            <jxb:property name="portlets" />
+                        </xs:appinfo>
+                    </xs:annotation>
+                </xs:element>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:complexType name="portlet">
+        <xs:annotation>
+            <xs:appinfo>
+                <jxb:class name="projectsPortlet">
+                    <jxb:javadoc>
+                        Information about one portlet available for project pages.
+                        PLEASE, DO NOT MODIFY THIS CLASS UNLESS YOU KNOW JAXB.
+                        @author Adam Warski
+                    </jxb:javadoc>
+                </jxb:class>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1" />
+            <xs:element name="portalId" type="xs:string" minOccurs="1" maxOccurs="1" />
+            <xs:element name="preference" type="preference" minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:appinfo>
+                        <jxb:property name="preferences" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="preference">
+        <xs:annotation>
+            <xs:appinfo>
+                <jxb:class name="projectsPortletPreference">
+                    <jxb:javadoc>
+                        Information about one preference of portlet available for project pages.
+                        PLEASE, DO NOT MODIFY THIS CLASS UNLESS YOU KNOW JAXB.
+                        @author Adam Warski
+                    </jxb:javadoc>
+                </jxb:class>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1" />
+            <xs:element name="required" type="xs:boolean" default="false" minOccurs="0" maxOccurs="1" />
+            <xs:element name="default" type="xs:string" minOccurs="0" maxOccurs="1" />
+            <xs:element name="value" type="xs:string" minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:appinfo>
+                        <jxb:property name="values" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:complexType>
+</xs:schema>
\ No newline at end of file

Modified: labs/jbosslabs/trunk/portal-extensions/forge-ejb3/project.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-ejb3/project.xml	2007-02-15 23:04:56 UTC (rev 9542)
+++ labs/jbosslabs/trunk/portal-extensions/forge-ejb3/project.xml	2007-02-15 23:50:01 UTC (rev 9543)
@@ -82,5 +82,11 @@
             <version>2.0</version>
             <jar>jaxb-xjc.jar</jar>
         </dependency>
+
+        <dependency>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+            <version>1.2.9</version>
+        </dependency>
     </dependencies>
 </project>

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 23:04:56 UTC (rev 9542)
+++ labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/configuration/ConfigurationServiceImpl.java	2007-02-15 23:50:01 UTC (rev 9543)
@@ -1,45 +1,24 @@
 package org.jboss.forge.ejb3.configuration;
 
-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.annotation.ejb.Management;
 import org.jboss.forge.common.ejb3.ConfigurationService;
 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;
 
+import javax.ejb.Remote;
+
 @Service(objectName = ConfigurationService.CONFIGURATION_SERVICE)
+ at Management(ConfigurationService.class)
+ at Remote(ConfigurationService.class)
 public class ConfigurationServiceImpl implements ConfigurationService {
     
-    private static final Logger log = Logger.getLogger(ConfigurationService.class);
-    
-    private static final JAXBContext jc;
-    
-    static {
-        
-        JAXBContext temp = null;
-        try {
-            temp = JAXBContext.newInstance("org.jboss.forge.common.projects.configuration");
-        } catch (JAXBException e) {
-            log.warn("I could not create JAXBContext."+e.getCause());
-        } finally {
-            jc = temp;
-        }
-        
-    }
-    
-    @Inject
-    private ContentManager cm;
-    
     public Configuration getConfiguration () {
         Projects projectsClass = ProjectsHelper.getProjects(Constants.LABS_PORTAL);
         return projectsClass.getProjectsDescriptor().getConfiguration();
@@ -98,6 +77,14 @@
         }
         return project.getEditPermission();
     }
-    
-    
+
+    public void start() throws Exception {
+
+    }
+
+    public void stop() throws Exception {
+
+    }
+
+
 }

Deleted: labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesPortletsWatcher.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesPortletsWatcher.java	2007-02-15 23:04:56 UTC (rev 9542)
+++ labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesPortletsWatcher.java	2007-02-15 23:50:01 UTC (rev 9543)
@@ -1,18 +0,0 @@
-package org.jboss.forge.ejb3.projectpages;
-
-import org.jboss.shotoku.cache.ShotokuPropertiesWatcher;
-
-import java.util.Properties;
-
-/**
- * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
- */
-public class ProjectPagesPortletsWatcher extends ShotokuPropertiesWatcher<String> {
-    protected String getConfigFileName() {
-        return "configuration/portlets.properties";
-    }
-
-    public Properties getProperties() {
-        return get("");
-    }
-}

Modified: labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesServiceBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesServiceBean.java	2007-02-15 23:04:56 UTC (rev 9542)
+++ labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesServiceBean.java	2007-02-15 23:50:01 UTC (rev 9543)
@@ -1,7 +1,10 @@
 package org.jboss.forge.ejb3.projectpages;
 
 import org.jboss.forge.common.ejb3.ProjectPagesService;
+import org.jboss.forge.common.ejb3.LabsServices;
 import org.jboss.forge.common.Constants;
+import org.jboss.forge.common.exceptions.ServiceRetrievalException;
+import org.jboss.forge.common.projects.portlets.ProjectsPortlet;
 import org.jboss.portal.core.model.portal.*;
 import org.jboss.portal.core.model.instance.InstanceContainer;
 import org.jboss.portal.core.model.instance.DuplicateInstanceException;
@@ -41,12 +44,6 @@
     @Depends("portal:service=AuthorizationDomainRegistry")
     private AuthorizationDomainRegistry adr;
 
-    private ProjectPagesPortletsWatcher pppw;
-
-    public ProjectPagesServiceBean() {
-        pppw = new ProjectPagesPortletsWatcher();
-    }
-
     /*
      * Exceptions.
      */
@@ -256,11 +253,19 @@
                                                String portletName)
             throws UnknownPortletException, UnknownPortalException {
         // Determining the portlet id.
-        String portletId = pppw.getProperties().getProperty(portletName);
-        if (portletId == null) {
+        ProjectsPortlet portlet;
+        try {
+            portlet = LabsServices.getProjectsPortletsService().getProjectsProtlet(portletName);
+        } catch (ServiceRetrievalException e) {
+            throw new UnknownPortalException(e);
+        }
+
+        if (portlet == null) {
             throw new UnknownPortletException(portletName);
         }
 
+        String portletId = portlet.getPortalId();
+
         // Constructing the instance id.
         String instanceId = createCamelCase(portletName, projectId, pageName, "instance");
 

Added: labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/portlets/ProjectsPortletsCacheItem.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/portlets/ProjectsPortletsCacheItem.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/portlets/ProjectsPortletsCacheItem.java	2007-02-15 23:50:01 UTC (rev 9543)
@@ -0,0 +1,53 @@
+package org.jboss.forge.ejb3.projects.portlets;
+
+import org.jboss.shotoku.cache.ShotokuResourceWatcher;
+import org.jboss.shotoku.exceptions.ResourceDoesNotExist;
+import org.jboss.forge.common.projects.portlets.ProjectsPortlets;
+import org.apache.log4j.Logger;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+import java.util.Map;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class ProjectsPortletsCacheItem
+        extends ShotokuResourceWatcher<String, ProjectsPortlets> {
+    private static final String CONFIGURATION_PATH = "configuration/portlets.xml";
+    private static final Logger log = Logger.getLogger(ProjectsPortletsCacheItem.class);
+
+    private static JAXBContext context;
+
+    static {
+        try {
+            context = JAXBContext.newInstance("org.jboss.forge.common.projects.portlets");
+        } catch (JAXBException e) {
+            log.warn("Exception while creating JAXBContext.", e);
+        }
+    }
+
+    private ProjectsPortlets parseProjectsPortlets(String key) {
+        try {
+            Unmarshaller un = context.createUnmarshaller();
+            return (ProjectsPortlets) un.unmarshal(getContentManager(key).
+                    getNode(CONFIGURATION_PATH).getContentInputStream());
+        } catch (JAXBException e1) {
+            log.warn("Unable to unmarshall projects portlets.", e1);
+        } catch (ResourceDoesNotExist e2) {
+            log.warn("Unable to unmarshall projects portlets.", e2);
+        }
+
+        return null;
+    }
+
+    protected void update(String key, ProjectsPortlets currentObject, Map changes) {
+        put(key, parseProjectsPortlets(key));
+    }
+
+    public ProjectsPortlets init(String key) {
+        addWatchedPath(key, CONFIGURATION_PATH);
+        return parseProjectsPortlets(key);
+    }
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/portlets/ProjectsPortletsServiceImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/portlets/ProjectsPortletsServiceImpl.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/portlets/ProjectsPortletsServiceImpl.java	2007-02-15 23:50:01 UTC (rev 9543)
@@ -0,0 +1,49 @@
+package org.jboss.forge.ejb3.projects.portlets;
+
+import org.jboss.forge.common.ejb3.ProjectsPortletsService;
+import org.jboss.forge.common.projects.portlets.ProjectsPortlets;
+import org.jboss.forge.common.projects.portlets.ProjectsPortlet;
+import org.jboss.annotation.ejb.Service;
+import org.jboss.annotation.ejb.Management;
+import org.jboss.annotation.ejb.Depends;
+
+import javax.ejb.Remote;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+ at Service(objectName = ProjectsPortletsService.PROJECTS_PORTLETS_SERVICE)
+ at Management(ProjectsPortletsService.class)
+ at Remote(ProjectsPortletsService.class)
+ at Depends(org.jboss.shotoku.tools.Constants.SHOTOKU_SERVICE_NAME)
+public class ProjectsPortletsServiceImpl implements ProjectsPortletsService {
+    ProjectsPortletsCacheItem ppci;
+
+    public ProjectsPortlets getProjectsPortlets() {
+        return ppci.get("");
+    }
+
+    public ProjectsPortlet getProjectsProtlet(String projectsPortletName) {
+        if (projectsPortletName == null) {
+            return null;
+        }
+
+        ProjectsPortlets pp = getProjectsPortlets();
+
+        for (ProjectsPortlet portlet : pp.getPortlets()) {
+            if (projectsPortletName.equals(portlet.getName())) {
+                return portlet;
+            }
+        }
+
+        return null;
+    }
+
+    public void start() throws Exception {
+        ppci = new ProjectsPortletsCacheItem();
+    }
+
+    public void stop() throws Exception {
+        ppci.remove();
+    }
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/freezone/TestServlet3.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/freezone/TestServlet3.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/freezone/TestServlet3.java	2007-02-15 23:50:01 UTC (rev 9543)
@@ -0,0 +1,50 @@
+package org.jboss.forge.projects.freezone;
+
+import org.jboss.forge.common.ejb3.LabsServices;
+import org.jboss.forge.common.projects.portlets.ProjectsPortlets;
+import org.jboss.forge.common.projects.portlets.ProjectsPortlet;
+import org.jboss.forge.common.projects.portlets.ProjectsPortletPreference;
+
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.ServletException;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+/**
+ * TO REMOVE! Just for testing.
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class TestServlet3 extends HttpServlet {
+
+    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        response.setContentType("text/html");
+
+        PrintWriter w = response.getWriter();
+
+        try {
+            w.println("Calling project portlets service. <br />");
+            ProjectsPortlets pp = LabsServices.getProjectsPortletsService().getProjectsPortlets();
+            for (ProjectsPortlet portlet : pp.getPortlets()) {
+                w.println(portlet.getName() + "<br />");
+                w.println(portlet.getPortalId() + "<br />");
+
+                for (ProjectsPortletPreference ppp : portlet.getPreferences()) {
+                    w.println("&nbsp;&nbsp;&nbsp;" + ppp.getName() + "<br />");
+                    w.println("&nbsp;&nbsp;&nbsp;" + ppp.getDefault() + "<br />");
+                    w.println("&nbsp;&nbsp;&nbsp;" + ppp.isRequired() + "<br />");
+
+                    for (String value : ppp.getValues()) {
+                        w.println("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + value + "<br />");    
+                    }
+                }
+
+                w.println("<br /><br /><br />");
+            }
+            w.println();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}

Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/web.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/web.xml	2007-02-15 23:04:56 UTC (rev 9542)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/web.xml	2007-02-15 23:50:01 UTC (rev 9543)
@@ -38,4 +38,14 @@
         <servlet-name>Test2</servlet-name>
         <url-pattern>/test2/*</url-pattern>
     </servlet-mapping>
+
+    <servlet>
+        <servlet-name>Test3</servlet-name>
+        <servlet-class>org.jboss.forge.projects.freezone.TestServlet3</servlet-class>
+    </servlet>
+
+    <servlet-mapping>
+        <servlet-name>Test3</servlet-name>
+        <url-pattern>/test3/*</url-pattern>
+    </servlet-mapping>
 </web-app>
\ No newline at end of file




More information about the jboss-svn-commits mailing list