[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(" " + ppp.getName() + "<br />");
+ w.println(" " + ppp.getDefault() + "<br />");
+ w.println(" " + ppp.isRequired() + "<br />");
+
+ for (String value : ppp.getValues()) {
+ w.println(" " + 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