You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsrp4j-dev@portals.apache.org by es...@apache.org on 2007/08/25 21:35:37 UTC
svn commit: r569721 [1/3] - in /portals/wsrp4j/trunk/producer: ./
src/java/org/apache/wsrp4j/producer/configapp/controller/
src/java/org/apache/wsrp4j/producer/configapp/exception/
src/java/org/apache/wsrp4j/producer/configapp/model/delegate/ src/java/...
Author: esm
Date: Sat Aug 25 12:35:34 2007
New Revision: 569721
URL: http://svn.apache.org/viewvc?rev=569721&view=rev
Log:
[WSRP4J-94]: Merging in Pluto 1.1 and Spring changes from the wsrp4j-pluto11 branch.
Two merge operations:
Merge the diff of trunk to branch creation
-r 559322:559323
Merge the diff from branch creation to head
-r 559323:HEAD
Only conflict was in pom.xml (since resolved).
Added:
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/ContainerServicesImpl.java
- copied unchanged from r559323, portals/wsrp4j/branches/wsrp4j-pluto11/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/ContainerServicesImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/Messages.java
- copied unchanged from r569719, portals/wsrp4j/branches/wsrp4j-pluto11/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/Messages.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/ModesMap.java
- copied unchanged from r569719, portals/wsrp4j/branches/wsrp4j-pluto11/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/ModesMap.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortalCallbackServiceImpl.java
- copied, changed from r559323, portals/wsrp4j/branches/wsrp4j-pluto11/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortalCallbackServiceImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortalContextImpl.java
- copied unchanged from r559323, portals/wsrp4j/branches/wsrp4j-pluto11/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortalContextImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortletWindowIDImpl.java
- copied unchanged from r559323, portals/wsrp4j/branches/wsrp4j-pluto11/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortletWindowIDImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortletWindowImpl.java
- copied unchanged from r559323, portals/wsrp4j/branches/wsrp4j-pluto11/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortletWindowImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/WindowStateMap.java
- copied unchanged from r569719, portals/wsrp4j/branches/wsrp4j-pluto11/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/WindowStateMap.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/interfaces/AttrKeys.java
- copied unchanged from r569719, portals/wsrp4j/branches/wsrp4j-pluto11/src/java/org/apache/wsrp4j/producer/provider/pluto/interfaces/AttrKeys.java
portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/classes/ProducerMessages.properties
- copied unchanged from r569719, portals/wsrp4j/branches/wsrp4j-pluto11/src/webapp/WEB-INF/classes/ProducerMessages.properties
portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/classes/applicationContext.xml
- copied, changed from r559323, portals/wsrp4j/branches/wsrp4j-pluto11/src/webapp/WEB-INF/classes/applicationContext.xml
portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/classes/logging.properties
- copied unchanged from r559323, portals/wsrp4j/branches/wsrp4j-pluto11/src/webapp/WEB-INF/classes/logging.properties
Removed:
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/DynamicInformationProviderImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/InformationProviderServiceFactoryImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortletActionProviderImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/ServletRequestFactoryImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPPortletEntityImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFactoryImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseImpl.java
portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/config/
portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/data/
Modified:
portals/wsrp4j/trunk/producer/pom.xml
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/controller/DeployApp.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/exception/ConfigAppException.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/ProviderServicesDelegateFactory.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/impl/ProviderServicesDelegateImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/services/DeployAppService.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandlerImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortletPoolImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortletURLProviderImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderFactoryImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/ResourceURLProviderImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPServletRequestWrapperImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/interfaces/PlutoProvider.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/interfaces/WSRPDynamicInformationProvider.java
portals/wsrp4j/trunk/producer/src/webapp/META-INF/context.xml
portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/persistence/descriptions/org.apache.wsrp4j.commons.persistence.driver.WSRPServiceDescription.xml
portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/web.xml
Modified: portals/wsrp4j/trunk/producer/pom.xml
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/pom.xml?rev=569721&r1=569720&r2=569721&view=diff
==============================================================================
--- portals/wsrp4j/trunk/producer/pom.xml (original)
+++ portals/wsrp4j/trunk/producer/pom.xml Sat Aug 25 12:35:34 2007
@@ -29,11 +29,16 @@
</parent>
<modelVersion>4.0.0</modelVersion>
-
+ <groupId>org.apache.wsrp4j</groupId>
<artifactId>wsrp4j-producer</artifactId>
<packaging>war</packaging>
<name>WSRP4J Producer</name>
- <description>WSRP4J Producer allows JSR-168 portlets to be exposed as WSRP-compliant portlets. </description>
+ <description>WSRP4J Producer allows JSR-168 portlets to be exposed as WSRP-compliant portlets.</description>
+
+ <properties>
+ <spring.version>2.0.6</spring.version>
+ <pluto.version>1.1.4</pluto.version>
+ </properties>
<build>
@@ -83,11 +88,11 @@
</plugins>
- </build>
+ </build>
<dependencies>
- <!-- Compile-time dependencies ============================ -->
+ <!-- Compile ========================================== -->
<dependency>
<artifactId>wsrp4j-commons-producer</artifactId>
@@ -96,21 +101,21 @@
</dependency>
<dependency>
- <artifactId>axis-saaj</artifactId>
- <groupId>org.apache.axis</groupId>
- <version>${axis.version}</version>
+ <artifactId>commons-fileupload</artifactId>
+ <groupId>commons-fileupload</groupId>
+ <version>${commons-fileupload.version}</version>
</dependency>
-
+
<dependency>
- <artifactId>wsdl4j</artifactId>
- <groupId>wsdl4j</groupId>
- <version>${wsdl4j.version}</version>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging-api</artifactId>
+ <version>${commons-logging.version}</version>
</dependency>
<dependency>
- <artifactId>commons-discovery</artifactId>
- <groupId>commons-discovery</groupId>
- <version>${commons-discovery.version}</version>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>${commons-lang.version}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
@@ -119,59 +124,98 @@
</exclusions>
</dependency>
- <dependency>
- <artifactId>commons-fileupload</artifactId>
- <groupId>commons-fileupload</groupId>
- <version>${commons-fileupload.version}</version>
- </dependency>
-
- <dependency>
- <artifactId>pluto-portal</artifactId>
- <groupId>org.apache.pluto</groupId>
- <version>${pluto.version}</version>
- </dependency>
+ <!-- Runtime ============================================ -->
<dependency>
- <artifactId>pluto-deploy</artifactId>
- <groupId>org.apache.pluto</groupId>
- <version>${pluto.version}</version>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>${spring.version}</version>
+ <scope>runtime</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
- <artifactId>pluto-descriptors</artifactId>
- <groupId>org.apache.pluto</groupId>
- <version>${pluto.version}</version>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ <version>${spring.version}</version>
+ <scope>runtime</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
- <artifactId>jstl</artifactId>
- <groupId>javax.servlet</groupId>
- <version>${jstl.version}</version>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${spring.version}</version>
+ <scope>runtime</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
- <artifactId>standard</artifactId>
- <groupId>taglibs</groupId>
- <version>${jstl.version}</version>
- </dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ <version>${spring.version}</version>
+ <scope>runtime</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
<!-- Runtime dependencies ================================= -->
<dependency>
- <artifactId>wsrp4j-persistence-db</artifactId>
+ <artifactId>wsrp4j-persistence-xml</artifactId>
<groupId>org.apache.wsrp4j</groupId>
<version>${pom.version}</version>
<scope>runtime</scope>
- </dependency>
+ </dependency>
+
+ <dependency>
+ <artifactId>standard</artifactId>
+ <groupId>taglibs</groupId>
+ <version>${taglibs.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <artifactId>jstl</artifactId>
+ <groupId>javax.servlet</groupId>
+ <version>${jstl.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
- <artifactId>wsrp4j-persistence-xml</artifactId>
- <groupId>org.apache.wsrp4j</groupId>
- <version>${pom.version}</version>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ <version>${xerces.version}</version>
<scope>runtime</scope>
</dependency>
-
- <!-- Provided dependencies ================================ -->
+
+ <dependency>
+ <groupId>xerces</groupId>
+ <artifactId>xmlParserAPIs</artifactId>
+ <version>${xerces.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <!-- Provided ========================================= -->
<dependency>
<artifactId>portlet-api</artifactId>
@@ -188,11 +232,11 @@
</dependency>
<dependency>
- <artifactId>pluto</artifactId>
+ <artifactId>pluto-container</artifactId>
<groupId>org.apache.pluto</groupId>
<version>${pluto.version}</version>
<scope>provided</scope>
- </dependency>
+ </dependency>
</dependencies>
Modified: portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/controller/DeployApp.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/controller/DeployApp.java?rev=569721&r1=569720&r2=569721&view=diff
==============================================================================
--- portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/controller/DeployApp.java (original)
+++ portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/controller/DeployApp.java Sat Aug 25 12:35:34 2007
@@ -17,18 +17,14 @@
import java.io.IOException;
-import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.wsrp4j.producer.configapp.services.DeployAppService;
-
import org.apache.wsrp4j.producer.configapp.exception.ConfigAppException;
-
+import org.apache.wsrp4j.producer.configapp.services.DeployAppService;
import org.apache.wsrp4j.producer.configapp.util.Constants;
-import org.apache.wsrp4j.producer.configapp.util.ServletUtils;
/**
Modified: portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/exception/ConfigAppException.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/exception/ConfigAppException.java?rev=569721&r1=569720&r2=569721&view=diff
==============================================================================
--- portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/exception/ConfigAppException.java (original)
+++ portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/exception/ConfigAppException.java Sat Aug 25 12:35:34 2007
@@ -15,12 +15,7 @@
*/
package org.apache.wsrp4j.producer.configapp.exception;
-import java.io.PrintStream;
-import java.io.PrintWriter;
-
import org.apache.commons.lang.exception.NestableException;
-
-import org.apache.wsrp4j.commons.exception.WSRPException;
/**
Modified: portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/ProviderServicesDelegateFactory.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/ProviderServicesDelegateFactory.java?rev=569721&r1=569720&r2=569721&view=diff
==============================================================================
--- portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/ProviderServicesDelegateFactory.java (original)
+++ portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/ProviderServicesDelegateFactory.java Sat Aug 25 12:35:34 2007
@@ -16,7 +16,6 @@
package org.apache.wsrp4j.producer.configapp.model.delegate;
import org.apache.wsrp4j.commons.util.configuration.ConfigurationParametersManager;
-
import org.apache.wsrp4j.producer.configapp.exception.ConfigAppException;
Modified: portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/impl/ProviderServicesDelegateImpl.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/impl/ProviderServicesDelegateImpl.java?rev=569721&r1=569720&r2=569721&view=diff
==============================================================================
--- portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/impl/ProviderServicesDelegateImpl.java (original)
+++ portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/impl/ProviderServicesDelegateImpl.java Sat Aug 25 12:35:34 2007
@@ -25,16 +25,11 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
-import org.apache.pluto.driver.deploy.CLI;
-
import org.apache.wsrp4j.commons.exception.WSRPException;
-
-import org.apache.wsrp4j.commons.producer.provider.interfaces.PortletPool;
import org.apache.wsrp4j.commons.producer.provider.interfaces.Portlet;
+import org.apache.wsrp4j.commons.producer.provider.interfaces.PortletPool;
import org.apache.wsrp4j.commons.producer.provider.interfaces.Provider;
import org.apache.wsrp4j.commons.producer.provider.interfaces.ProviderAccess;
-
import org.apache.wsrp4j.producer.configapp.exception.ConfigAppException;
import org.apache.wsrp4j.producer.configapp.model.delegate.ProviderServicesDelegate;
@@ -114,7 +109,7 @@
String[] argsString =
(String[]) args.toArray(new String[args.size()]);
- CLI.main(argsString);
+ //CLI.main(argsString);
} catch (Exception e) {
throw new ConfigAppException(e);
Modified: portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/services/DeployAppService.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/services/DeployAppService.java?rev=569721&r1=569720&r2=569721&view=diff
==============================================================================
--- portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/services/DeployAppService.java (original)
+++ portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/services/DeployAppService.java Sat Aug 25 12:35:34 2007
@@ -16,10 +16,7 @@
package org.apache.wsrp4j.producer.configapp.services;
import java.io.File;
-import java.io.FileNotFoundException;
import java.io.IOException;
-
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
@@ -31,25 +28,15 @@
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
-import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
-import org.apache.pluto.driver.deploy.CLI;
-
import org.apache.wsrp4j.commons.util.configuration.ConfigurationParametersManager;
import org.apache.wsrp4j.commons.util.configuration.MissingConfigurationParameterException;
-
-import org.apache.wsrp4j.commons.producer.util.ServletAccess;
-
import org.apache.wsrp4j.producer.configapp.exception.ConfigAppException;
-
import org.apache.wsrp4j.producer.configapp.model.delegate.ProviderServicesDelegate;
import org.apache.wsrp4j.producer.configapp.model.delegate.ProviderServicesDelegateFactory;
-
import org.apache.wsrp4j.producer.configapp.util.Constants;
import org.apache.wsrp4j.producer.configapp.util.ServletUtils;
Modified: portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandlerImpl.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandlerImpl.java?rev=569721&r1=569720&r2=569721&view=diff
==============================================================================
--- portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandlerImpl.java (original)
+++ portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandlerImpl.java Sat Aug 25 12:35:34 2007
@@ -15,17 +15,14 @@
*/
package org.apache.wsrp4j.producer.provider.pluto.driver;
-import java.util.ArrayList;
+import java.text.MessageFormat;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
-import java.util.Set;
-import java.util.Vector;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import java.util.StringTokenizer;
import oasis.names.tc.wsrp.v1.types.CookieProtocol;
import oasis.names.tc.wsrp.v1.types.LocalizedString;
@@ -35,756 +32,844 @@
import oasis.names.tc.wsrp.v1.types.ServiceDescription;
import oasis.names.tc.wsrp.v1.types.UserContext;
-import org.apache.pluto.om.common.Description;
-import org.apache.pluto.om.common.DisplayName;
-import org.apache.pluto.om.common.Language;
-import org.apache.pluto.om.entity.PortletEntity;
-import org.apache.pluto.om.portlet.ContentType;
-import org.apache.pluto.om.portlet.PortletDefinition;
-import org.apache.pluto.portalImpl.services.portletentityregistry.
- PortletEntityRegistry;
-import org.apache.pluto.portalImpl.util.ObjectID;
-
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.pluto.PortletContainerException;
+import org.apache.pluto.descriptors.common.DescriptionDD;
+import org.apache.pluto.descriptors.common.DisplayNameDD;
+import org.apache.pluto.descriptors.portlet.PortletAppDD;
+import org.apache.pluto.descriptors.portlet.PortletDD;
+import org.apache.pluto.descriptors.portlet.PortletInfoDD;
+import org.apache.pluto.descriptors.portlet.SupportsDD;
+import org.apache.pluto.spi.optional.PortletRegistryEvent;
+import org.apache.pluto.spi.optional.PortletRegistryListener;
+import org.apache.pluto.spi.optional.PortletRegistryService;
import org.apache.wsrp4j.commons.exception.ErrorCodes;
import org.apache.wsrp4j.commons.exception.WSRPException;
import org.apache.wsrp4j.commons.exception.WSRPXHelper;
-
import org.apache.wsrp4j.commons.persistence.PersistentDataObject;
-import org.apache.wsrp4j.commons.persistence.ProducerPersistentFactory;
import org.apache.wsrp4j.commons.persistence.PersistentHandler;
-import org.apache.wsrp4j.commons.persistence.driver.PersistentAccess;
+import org.apache.wsrp4j.commons.persistence.ProducerPersistentFactory;
import org.apache.wsrp4j.commons.persistence.driver.WSRPServiceDescription;
-
-import org.apache.wsrp4j.commons.producer.provider.interfaces.Portlet;
+import org.apache.wsrp4j.commons.producer.provider.interfaces.ConsumerConfiguredPortlet;
import org.apache.wsrp4j.commons.producer.provider.interfaces.DescriptionHandler;
-import org.apache.wsrp4j.commons.producer.provider.interfaces.Provider;
-
-import org.apache.wsrp4j.producer.provider.pluto.interfaces.PlutoProvider;
-
-import org.apache.wsrp4j.commons.util.Constants;
-import org.apache.wsrp4j.commons.util.Utility;
+import org.apache.wsrp4j.commons.producer.provider.interfaces.Portlet;
+import org.apache.wsrp4j.commons.producer.provider.interfaces.PortletPool;
import org.apache.wsrp4j.commons.util.WindowStates;
import org.apache.wsrp4j.commons.util.configuration.ConfigurationParametersManager;
-
/**
* @see DescriptionHandler
* @version $Id$
+ * @todo Unit tests against well-formed and mal-formed portlet.xml. Especially when optional elements
+ * of portlet.xml are missing.
*/
-public class DescriptionHandlerImpl implements DescriptionHandler {
-
- private static final Log log =
- LogFactory.getLog(DescriptionHandlerImpl.class);
+public class DescriptionHandlerImpl implements DescriptionHandler
+{
- // Provider
- private PlutoProvider provider;
+ private static final Log LOG = LogFactory.getLog( DescriptionHandlerImpl.class );
+ private static final Log LOG_PORTLETXML = LogFactory.getLog( DescriptionHandlerImpl.class.getName() + "_portletxml" );
+ private static final Locale DEFAULT_LOCALE = Locale.US;
- //persistence
+
+ /**
+ * The portlet pool
+ */
+ private PortletPool portletPool = null;
+
+ /**
+ * Portlet registry service
+ */
+ private PortletRegistryService portletRegistrySvc = null;
+
+ /**
+ * Persistence
+ */
private PersistentDataObject persistentDataObject;
private PersistentHandler persistentHandler;
- // ServiceDescription
+ /**
+ * The service description
+ */
private ServiceDescription serviceDescription;
// name of the properties which is read
- // private static final String WSRP_SERVICE_PROP =
- // "wsrp4j-config.properties";
+ // private static final String WSRP_SERVICE_PROP =
+ // "wsrp4j-config.properties";
- //defines an internal property name/key
- private static final String URL_TEMPLATE_PROCESSING =
- "wsrp4j.producer.provider.doesurltemplateprocessing";
+ // defines an internal property name/key
+ private static final String URL_TEMPLATE_PROCESSING = "wsrp4j.producer.provider.doesurltemplateprocessing";
- //indicates if a producer supports URL template processing
+ // indicates if a producer supports URL template processing
private Boolean doesUrlTemplateProcessing = Boolean.FALSE;
-
- //holds all portlet descriptions
+
+ // holds all portlet descriptions
private Map portletDescs = new HashMap();
-
-
+
/**
* Default constructor of DescriptionHandler implementation
- *
+ *
* @see DescriptionHandler
*/
- private DescriptionHandlerImpl() {
-
- String MN = "DescriptionHandlerImpl";
-
- if (log.isDebugEnabled()) {
- log.debug(Utility.strEnter(MN));
- }
-
- try {
-
- ProducerPersistentFactory persistentFactory =
- PersistentAccess.getProducerPersistentFactory();
- persistentHandler = persistentFactory.getPersistentHandler();
- persistentDataObject =
- persistentFactory.getServiceDescriptionList();
-
+ DescriptionHandlerImpl( PortletPool portletPool, PortletRegistryService portletRegistrySvc,
+ ProducerPersistentFactory persistenceFactory )
+ {
+ if ( portletPool == null )
+ {
+ final String msg = "Portlet pool must not be null";
+ LOG.error( msg );
+ throw new IllegalArgumentException( msg );
+ }
+
+ if ( portletRegistrySvc == null )
+ {
+ final String msg = "Portlet registry service must not be null";
+ LOG.error( msg );
+ throw new IllegalArgumentException( msg );
+ }
+
+ if ( persistenceFactory == null )
+ {
+ final String msg = "Producer persistence factory must not be null";
+ LOG.error( msg );
+ throw new IllegalArgumentException( msg );
+ }
+
+ this.portletPool = portletPool;
+ this.portletRegistrySvc = portletRegistrySvc;
+
+ portletRegistrySvc.addPortletRegistryListener( new PortletRegistryListenerImpl() );
+
+ try
+ {
+ persistentHandler = persistenceFactory.getPersistentHandler();
+ persistentDataObject = persistenceFactory.getServiceDescriptionList();
+
// restore the service description from persistent store
restore();
-
- } catch (WSRPException e) {
-
- if (log.isErrorEnabled()) {
- log.error("Restore ServiceDescription failed. " +
- "Check persistent XML file and content.", e);
- }
}
-
- if (log.isDebugEnabled()) {
- log.debug(Utility.strExit(MN));
+ catch ( WSRPException e )
+ {
+ LOG.warn( "Restore ServiceDescription failed. Check persistent XML file and content: "
+ + e.getMessage(), e );
}
-
- }
-
- /**
- * Creates a new DescriptionHandlerImpl-object. To be called within
- * an implementation of the abstract factory PortletPoolFactory.
- *
- * @param provider The provider for this DescriptionHandlerImpl
- *
- * @return DescriptionHandler
- */
- public static DescriptionHandler create(Provider provider) {
-
- DescriptionHandlerImpl descriptionHandler =
- new DescriptionHandlerImpl();
-
- descriptionHandler.provider = (PlutoProvider) provider;
-
- try {
-
- String urlTemplProcStr =
- ConfigurationParametersManager.getParameter(
- URL_TEMPLATE_PROCESSING);
- descriptionHandler.doesUrlTemplateProcessing =
- Boolean.valueOf(urlTemplProcStr);
-
- } catch(Exception e) {
- log.error("Error setting url template processing", e);
+
+ try
+ {
+ String urlTemplProcStr = ConfigurationParametersManager.getParameter( URL_TEMPLATE_PROCESSING );
+ this.doesUrlTemplateProcessing = Boolean.valueOf( urlTemplProcStr );
}
-
- return descriptionHandler;
-
+ catch ( Exception e )
+ {
+ LOG.error( "Error setting url template processing: " + e.getMessage(), e );
+ }
+
}
-
+
/**
- *
- * @param regContext RegistrationContext
- * @param desiredLocales String[]
- *
- *
+ *
+ * @param regContext
+ * RegistrationContext
+ * @param desiredLocales
+ * String[]
+ *
+ *
*/
- public ServiceDescription getServiceDescription(
- RegistrationContext regContext, String[] desiredLocales)
- throws WSRPException {
-
- String MN = "getServiceDescription";
-
- if (log.isDebugEnabled()) {
- log.debug(Utility.strEnter(MN));
- }
-
- if (serviceDescription != null) {
-
+ public ServiceDescription getServiceDescription( RegistrationContext regContext, String[] desiredLocales )
+ throws WSRPException
+ {
+ LOG.debug( "Obtaining service description for registration context [" + regContext + "] (reg required: [" + isRegistrationRequired() + "]), locales [" + desiredLocales + "]" );
+ if ( serviceDescription != null )
+ {
// check if full description is required
- if (regContext != null | !isRegistrationRequired()) {
-
+ if ( regContext != null || !isRegistrationRequired() )
+ {
// get all portlet descriptions from portlet pool
- serviceDescription.setOfferedPortlets(
- getProducerOfferedPortletDescriptions(regContext,
- desiredLocales));
-
- serviceDescription.setRequiresInitCookie(
- CookieProtocol.perGroup);
-
+ serviceDescription.setOfferedPortlets( getProducerOfferedPortletDescriptions( regContext,
+ desiredLocales ) );
+ // TODO: make the cookie protocol configurable
+ serviceDescription.setRequiresInitCookie( CookieProtocol.none );
+ }
+ else
+ {
+ LOG.debug( "Can't obtain service descriptions." );
}
-
- } else {
-
- // serviceDescription not available
- WSRPXHelper.throwX(log, ErrorCodes.LOAD_SERVICEDESCRIPTION_FAILED);
}
-
- if (log.isDebugEnabled()) {
- log.debug(Utility.strExit(MN));
+ else
+ {
+ // serviceDescription not available
+ WSRPXHelper.throwX( LOG, ErrorCodes.LOAD_SERVICEDESCRIPTION_FAILED );
}
-
return serviceDescription;
-
+
// TODO: return descriptions according to configuration
-
}
-
+
/**
* Returns true, if registration is required on this producer
- *
- * @return true - registration is required
- * false - registration is not required
- *
+ *
+ * @return true - registration is required false - registration is not
+ * required
+ *
*/
- public boolean isRegistrationRequired() throws WSRPException {
-
- String MN = "isRegistrationRequired";
-
- if (log.isDebugEnabled()) {
- log.debug(Utility.strEnter(MN));
- }
-
+ public boolean isRegistrationRequired( ) throws WSRPException
+ {
boolean bRetVal = true;
-
- if (serviceDescription != null) {
-
+
+ if ( serviceDescription != null )
+ {
bRetVal = serviceDescription.isRequiresRegistration();
-
- } else {
-
- WSRPXHelper.throwX(log, ErrorCodes.LOAD_SERVICEDESCRIPTION_FAILED);
}
-
- if (log.isDebugEnabled()) {
- log.debug(Utility.strExit(MN));
+ else
+ {
+ WSRPXHelper.throwX( LOG, ErrorCodes.LOAD_SERVICEDESCRIPTION_FAILED );
}
-
+
return bRetVal;
}
-
+
/**
* Adds/replaces the ServiceDescription object in the DescriptionHandler and
* stores the object for persistency.
- *
- * @param newServiceDescription ServiceDescription
+ *
+ * @param newServiceDescription
+ * ServiceDescription
*/
- public void put(ServiceDescription newServiceDescription)
- throws WSRPException {
-
- String MN = "put";
-
- if (log.isDebugEnabled()) {
- log.debug(Utility.strEnter(MN));
- }
-
+ public void put( ServiceDescription newServiceDescription ) throws WSRPException
+ {
serviceDescription = newServiceDescription;
- WSRPServiceDescription wsrpServDesc =
- new WSRPServiceDescription(newServiceDescription);
+ WSRPServiceDescription wsrpServDesc = new WSRPServiceDescription( newServiceDescription );
persistentDataObject.clear();
- persistentDataObject.addObject(wsrpServDesc);
-
- try {
-
- store(persistentDataObject);
-
- } catch (WSRPException e) {
-
- serviceDescription = null;
- WSRPXHelper.throwX(log,
- ErrorCodes.SAVE_SERVICEDESCRIPTION_FAILED,
- e);
+ persistentDataObject.addObject( wsrpServDesc );
+
+ try
+ {
+ store( persistentDataObject );
}
-
- if (log.isDebugEnabled()) {
- log.debug(Utility.strExit(MN));
+ catch ( WSRPException e )
+ {
+ serviceDescription = null;
+ WSRPXHelper.throwX( LOG, ErrorCodes.SAVE_SERVICEDESCRIPTION_FAILED, e );
}
-
}
-
+
/**
* Returns an array containing portlet descriptions, i.e. one portlet
- * description per producer offered portlet. The array will contains
- * only those descriptions, which match the RegistrationContext criteria.
- * In addition, proxy portlets are not part of the list.
- *
- * @param regContext RegistrationContext
- *
- * @return Array of portlet description objects.
- */
- public PortletDescription[] getProducerOfferedPortletDescriptions(
- RegistrationContext regContext,
- String[] desiredLocales)
- throws WSRPException {
-
- String MN = "getProducerOfferedPortletDescriptions";
-
- if (log.isDebugEnabled()) {
- log.debug(Utility.strEnter(MN));
- }
-
+ * description per producer offered portlet. The array will contains only
+ * those descriptions, which match the RegistrationContext criteria. In
+ * addition, proxy portlets are not part of the list.
+ *
+ * @param regContext
+ * RegistrationContext
+ *
+ * @return Array of portlet description objects.
+ */
+ public PortletDescription[] getProducerOfferedPortletDescriptions( RegistrationContext regContext,
+ String[] desiredLocales ) throws WSRPException
+ {
+ LOG.debug( "Obtaining producer offered portlet descriptions for registration context [" + regContext + "] and locales [" + desiredLocales + "]" );
// check if we got all available descs
- // TODO: check also if there are descs in the Map that are not valid
- // anymore...
+ // TODO: check also if there are descs in the Map that are not valid anymore...
// but only if size is different after filling in.
-
- Iterator portlets =
- provider.getPortletPool().getAllProducerOfferedPortlets();
-
- while (portlets.hasNext()) {
- String id =
- ((Portlet) portlets.next()).getPortletHandle();
-
- PortletDescription desc = (PortletDescription)portletDescs.get(id);
-
- // check, if the PortletDescription is already buffered in the
- // internal Map
- if (desc == null) {
- ObjectID objectID = ObjectID.createFromString(id);
- PortletEntity portletEntity =
- PortletEntityRegistry.getPortletEntity(objectID);
-
- if (portletEntity != null) {
- PortletDefinition portlet =
- portletEntity.getPortletDefinition();
-
- if (portlet != null) {
- desc = this.getPortletDescription(id, regContext, null,
- desiredLocales);
- portletDescs.put(id, desc);
- }
- }
+
+ Iterator portlets = portletPool.getAllProducerOfferedPortlets();
+
+ while ( portlets.hasNext() )
+ {
+ String id = ( (Portlet)portlets.next() ).getPortletHandle();
+ PortletDescription desc = (PortletDescription) portletDescs.get( id );
+
+ // if the description is not in the map, create it
+ if ( desc == null )
+ {
+ desc = getPortletDescription( id, regContext, null, desiredLocales );
+ LOG.debug( "Successfully retrieved and cached service description for portlet handle [" + id + "]" );
+ portletDescs.put( id, desc );
+ }
+ else
+ {
+ LOG.debug( "Successfully retrieved service description from cache for portlet handle [" + id + "]" );
}
}
-
- PortletDescription[] portletDescriptionArray =
- new PortletDescription[portletDescs.values().size()];
-
+
+ PortletDescription[] portletDescriptionArray = new PortletDescription[ portletDescs.values().size() ];
Iterator descs = portletDescs.values().iterator();
-
- for (int i = 0; descs.hasNext(); i++) {
- portletDescriptionArray[i] = (PortletDescription)descs.next();
- }
-
- if (log.isDebugEnabled()) {
- log.debug(Utility.strExit(MN));
+
+ for ( int i = 0; descs.hasNext(); i++ )
+ {
+ portletDescriptionArray[i] = (PortletDescription) descs.next();
}
-
+ LOG.debug( "Obtained [" + portletDescriptionArray.length + "] producer offered portlet descriptions." );
return portletDescriptionArray;
-
}
-
+
/**
* Returns an PortletDescription for the given PortletHandle, only if the
* registration context allows this action
- *
- * @param portletHandle PortletHandle
- * @param regContext the registration context
- * @param userContext the user context
- * @param desiredLocales the locales for which the description should be
- * returned
- *
+ *
+ * @param portletHandle
+ * PortletHandle
+ * @param regContext
+ * the registration context
+ * @param userContext
+ * the user context
+ * @param desiredLocales
+ * the locales for which the description should be returned
+ *
* @return PortletDescriptionb
*/
- public PortletDescription getPortletDescription(
- String portletHandle,
- RegistrationContext regContext,
- UserContext userContext,
- String[] desiredLocales)
- throws WSRPException {
+ public PortletDescription getPortletDescription( String portletHandle, RegistrationContext regContext,
+ UserContext userContext, String[] desiredLocales ) throws WSRPException
+ {
+ // TODO: It would be nice to easily be able to get the CCP's associated with a registration handle.
- PortletDescription portletDescription = null;
-
- portletDescription = getPortletDescription(portletHandle,
- desiredLocales);
+ // see if the supplied handle is a CCP or a POP. If it is a CCP, we need to get the parent handle (which will be a POP),
+ // as the description map only references POPs.
+ Iterator ccps = portletPool.getAllConsumerConfiguredPortlets();
+ while ( ccps.hasNext() )
+ {
+ ConsumerConfiguredPortlet ccp = (ConsumerConfiguredPortlet) ccps.next();
+ if ( ccp.getPortletHandle().equals( portletHandle ) )
+ {
+ LOG.debug( "Retrieved the parent portlet handle [" + ccp.getParentHandle() + "] for consumer configured portlet [" + portletHandle + "]" );
+ portletHandle = ccp.getParentHandle();
+ }
+ }
- return portletDescription;
+ if ( portletDescs.containsKey( portletHandle ) )
+ {
+ LOG.debug( "Retrieving cached portlet description for handle [" + portletHandle + "] for registration context [" + regContext + "]" );
+ return (PortletDescription) portletDescs.get( portletHandle );
+ }
+ LOG.debug( "Retrieving portlet description for handle [" + portletHandle + "] for registration context [" + regContext + "]" );
+ return getPortletDescription( portletHandle, desiredLocales );
}
-
+
/**
- * Returns an PortletDescription, constructed from the corresponding portlet
+ * Returns an PortletDescription, constructed from the corresponding portlet
* entity
- *
- *
- * @param portletHandle String portlet handle
- * @param desiredLocales String[] desired locales
- *
+ *
+ *
+ * @param portletHandle
+ * String portlet handle
+ * @param desiredLocales
+ * String[] desired locales
+ *
* @return PortletDescription
- *
+ *
* @see PortletDefinition
* @see PortletEntityRegistry
*/
- protected PortletDescription getPortletDescription(String portletHandle,
- String[] desiredLocales)
- throws WSRPException {
-
- String MN = "getPortletDescription";
-
- if (log.isDebugEnabled()) {
- log.debug(Utility.strEnter(MN));
- }
-
- trace_getPortletDescription_args(portletHandle, desiredLocales);
-
- PortletDescription portletDescription = null;
-
- // need to have the portlet entity to get the portletDefinition
- PortletEntity portletEntity =
- PortletEntityRegistry.getPortletEntity(
- ObjectID.createFromString(portletHandle));
-
- if (portletEntity == null) {
- // no portlet entity found for given portletHandle
- WSRPXHelper.throwX(log, ErrorCodes.PORTLET_PORTLET_NOT_FOUND);
- }
-
- // get a portletDefinition, to be mapped to an PortletDescription
- PortletDefinition portletDefinition =
- portletEntity.getPortletDefinition();
-
- if (portletDefinition != null) {
- portletDescription = new PortletDescription();
- Vector vector = new Vector();
-
- portletDescription.setPortletHandle(portletHandle);
-
- String[] locales = new String[1];
- ArrayList resultLocaleArray = new ArrayList();
- Iterator iterModel = portletDefinition.getLanguageSet().iterator();
-
- // global to remember the prefered language with locale, title,
- // short-title and description
- Language preferedLanguage = null;
-
- // if desiredLocales!=null, try to map the locales specified in the
- // desiredLocales array. All locales found for the portlet will be
- // mapped.
- // If none of the desiredLocales are supported by the portlet,
- // the portlet default locale will be used.
- if (desiredLocales != null) {
-
- for (int x = 0; x < desiredLocales.length; x++) {
- String comp = desiredLocales[x];
- while (iterModel.hasNext()) {
- Language modelLang = (Language)iterModel.next();
- Locale modelLocale = modelLang.getLocale();
- String localeModel = Constants.LOCALE_EN_US;
-
- if (modelLocale != null) {
- localeModel = modelLocale.toString();
- }
-
- //String localeModel = ((Language)iterModel.next()).
- // getLocale().toString();
- if (localeModel.equals(comp)) {
- // add locale to result array
- resultLocaleArray.add(comp);
- // remember preferred language
- if (preferedLanguage == null) {
- preferedLanguage = modelLang;
- }
- }
- }
- }
- } else {
- Locale bestLocale = null;
-
- // move ALL Locales of the portlet to the EnityDescription
- while (iterModel.hasNext()) {
- Language modelLang = (Language)iterModel.next();
-
- Locale modelLocale = modelLang.getLocale();
-
- String localeModel = Constants.LOCALE_EN_US;
-
- if (modelLocale != null) {
- localeModel = modelLocale.toString();
-
- if (bestLocale == null) {
- bestLocale = modelLocale;
- }
- }
- resultLocaleArray.add(localeModel);
- }
-
- if (bestLocale != null) {
- preferedLanguage =
- portletDefinition.getLanguageSet().get(bestLocale);
-
- } else {
-
- // no default locale in portlet found
- WSRPXHelper.throwX(log, ErrorCodes.MISSING_DEFAULT_LOCALE);
-
- }
- }
-
- // check, if at least one locale was found. If not, set default
- // value
- if (resultLocaleArray.isEmpty()) {
-
- if (portletDefinition.getLanguageSet().getDefaultLocale() !=
- null) {
-
- Locale locale = portletDefinition.getLanguageSet().
- getDefaultLocale();
- locales[0] = locale.toString();
- preferedLanguage =
- portletDefinition.getLanguageSet().get(locale);
-
- if (preferedLanguage == null) {
-
- // no default language in portlet found
- WSRPXHelper.throwX(
- log,
- ErrorCodes.MISSING_DEFAULT_LANGUAGE);
- }
-
- } else {
-
- // no default locale in portlet found
- WSRPXHelper.throwX(log, ErrorCodes.MISSING_DEFAULT_LOCALE);
- }
- } else {
- locales = new String[resultLocaleArray.size()];
- resultLocaleArray.toArray(locales);
- }
-
- // move description, title and shorttitle from Language to
- // PortletDescription
- LocalizedString localizedString;
-
- Locale currentLocale = preferedLanguage.getLocale();
- String stringLocale = Constants.LOCALE_EN_US;
- if (currentLocale != null) {
- stringLocale = currentLocale.toString();
- }
-
- // add title
- String titleStr = preferedLanguage.getTitle();
- if (titleStr != null && titleStr.length() > 0) {
- localizedString = new LocalizedString();
- localizedString.setLang(stringLocale);
- localizedString.setValue(titleStr);
- portletDescription.setTitle(localizedString);
- }
-
- // add short title
- String shortTitleStr = preferedLanguage.getShortTitle();
- if (shortTitleStr != null && shortTitleStr.length() > 0) {
- localizedString = new LocalizedString();
- localizedString.setLang(stringLocale);
- localizedString.setValue(shortTitleStr);
- portletDescription.setShortTitle(localizedString);
- }
-
- // add description
- String descStr = null;
- Description description =
- portletDefinition.getDescription(currentLocale);
- if ( description !=null ) {
- descStr = description.getDescription();
- }
- if (descStr != null && descStr.length() > 0) {
- localizedString = new LocalizedString();
- localizedString.setLang(stringLocale);
- localizedString.setValue(descStr);
- portletDescription.setDescription(localizedString);
- }
-
- // add keywords
- Iterator keywordIterator = preferedLanguage.getKeywords();
- List validKeywords = new ArrayList();
- while (keywordIterator != null && keywordIterator.hasNext()) {
- String keyword = (String)keywordIterator.next();
- if (keyword != null && keyword.length() > 0) {
- validKeywords.add(keyword);
- }
- }
-
- int numberOfKeywords = 0;
- if ((numberOfKeywords = validKeywords.size()) > 0) {
- LocalizedString[] keywords =
- new LocalizedString[numberOfKeywords];
- Iterator it = validKeywords.iterator();
- int index = 0;
- while (it != null && it.hasNext()) {
- keywords[index] = new LocalizedString();
- keywords[index].setLang(stringLocale);
- keywords[index++].setValue((String)it.next());
-
- }
- portletDescription.setKeywords(keywords);
- }
-
- // add display name
- String displayNameStr = null;
- DisplayName displayName =
- portletDefinition.getDisplayName(currentLocale);
- if (displayName != null) {
- displayNameStr = displayName.getDisplayName();
- }
- if (displayNameStr != null && displayNameStr.length() > 0) {
- localizedString = new LocalizedString();
- localizedString.setLang(stringLocale);
- localizedString.setValue(displayNameStr);
- }
-
- Iterator iterator =
- ((Set)portletDefinition.getContentTypeSet()).iterator();
- while (iterator.hasNext()) {
-
- MarkupType markupType = new MarkupType();
- ContentType contentType = (ContentType)iterator.next();
-
- // set ContentType->contentType to MarkupType->mimeType
- markupType.setMimeType(contentType.getContentType());
-
- // set Language locales to markupType locales
- markupType.setLocales(locales);
-
- // set ContentType->PortletModes to markupType->modes
- Iterator portletModes = contentType.getPortletModes();
-
- Vector modesVec = new Vector();
-
- while (portletModes.hasNext()) {
-
- // add 'wsrp:' to portlet modes
- String modeStr = portletModes.next().toString();
- if (!modeStr.startsWith("wsrp:")) {
- modeStr = "wsrp:" + modeStr;
- }
- modesVec.add(modeStr);
-
- }
-
- String[] modes = new String[modesVec.size()];
- modesVec.toArray(modes);
-
- markupType.setModes(modes);
-
- /*
- * TODO: Handling of Window States!
-
- // set ContentType->windowStates to MarkupType->windowStates
- Collection windowStateCol = contentType.getWindowStates();
- String[] windowStates = new String[windowStateCol.size()];
- markupType.setWindowStates(windowStates);
- Iterator statesIter = windowStateCol.iterator();
-
- int j = 0;
- while (statesIter.hasNext()) {
-
- markupType.setWindowStates(j, statesIter.next().toString());
- j++;
- }*/
-
- // tentative solution: set some window states
- String[] windowStates = new String[3];
- markupType.setWindowStates(windowStates);
- markupType.setWindowStates(0, WindowStates.normal.getValue());
- markupType.setWindowStates(1,
- WindowStates.minimized.getValue());
- markupType.setWindowStates(2,
- WindowStates.maximized.getValue());
-
- vector.add(markupType);
- }
-
- // build markupTypes
- MarkupType[] markupTypeArray = new MarkupType[vector.size()];
- System.arraycopy(vector.toArray(), 0, markupTypeArray, 0,
- markupTypeArray.length);
- portletDescription.setMarkupTypes(markupTypeArray);
-
- // set Application ID to PortletDescription GroupID
- portletDescription.setGroupID(
- portletEntity.getPortletApplicationEntity().getId().
- toString());
-
- // set general default values for the following attributes
- // for the WSRP implementation.
- portletDescription.setUsesMethodGet(Boolean.FALSE);
- portletDescription.setUserContextStoredInSession(Boolean.FALSE);
- portletDescription.setTemplatesStoredInSession(Boolean.FALSE);
- portletDescription.setHasUserSpecificState(Boolean.TRUE);
- portletDescription.setDoesUrlTemplateProcessing(
- doesUrlTemplateProcessing);
-
- } else {
- System.out.println("** Exc **");
- // no portlet definition found
- WSRPXHelper.throwX(log, ErrorCodes.MISSING_PORTLET_DEFINITION);
- }
-
- if (log.isDebugEnabled()) {
- log.debug(Utility.strExit(MN));
- }
-
+ protected PortletDescription getPortletDescription( String portletHandle, String[] desiredLocales )
+ throws WSRPException
+ {
+ // Parse the portlet application id and the portlet name from the portletHandle
+ String portletAppId = portletHandle.substring( 0, portletHandle.lastIndexOf( "/" ) );
+ String portletName = portletHandle.substring( portletHandle.lastIndexOf( "/" ) + 1 );
+ LOG.debug( "Portlet handle [" + portletHandle + "], application id [" + portletAppId + "], name [" + portletName + "], desired locales [" + desiredLocales + "]" );
+
+ // Look up the portlet definition from the registry using the portlet application id and portlet name
+ PortletDD portletDefinition = null;
+ try
+ {
+ portletDefinition = portletRegistrySvc.getPortletDescriptor( portletAppId, portletName );
+ if ( portletDefinition == null )
+ {
+ // no portlet def found for given portletHandle
+ WSRPXHelper.throwX( LOG, ErrorCodes.PORTLET_PORTLET_NOT_FOUND );
+ }
+ }
+ catch ( PortletContainerException e )
+ {
+ String msg = "Unable to retrieve portlet for handle [" + portletHandle + "] " +
+ "with portlet application id [" + portletAppId + "] and portlet name [" + portletName + "] " +
+ "from the portlet container: ";
+ LOG.error( msg + e.getMessage(), e );
+ WSRPXHelper.throwX( LOG, ErrorCodes.PORTLET_PORTLET_NOT_FOUND, e );
+ }
+
+ // Construct the portletDescription
+ PortletDescription portletDescription = new PortletDescription();
+ portletDescription.setPortletHandle( portletHandle );
+ // set portletDescription group id to the portlet application id
+ portletDescription.setGroupID( portletAppId );
+
+ // Localize the portletDescription
+ localizePortletDescription( desiredLocales, portletDefinition, portletDescription );
+
+ // Construct the MarkupTypes
+ MarkupType[] markupTypes = getMarkupTypes( portletDefinition );
+
+ if ( markupTypes == null )
+ {
+ String msg = "No markup types received for portlet [" + portletDefinition.getPortletName() + "]. Markup types were null.";
+ NullPointerException npe = new NullPointerException( msg );
+ LOG.error( msg, npe );
+ WSRPXHelper.throwX( LOG, ErrorCodes.PRODUCER_ERROR, npe );
+ }
+ portletDescription.setMarkupTypes( markupTypes );
+
+ // set general default values for the following attributes for the WSRP implementation.
+ portletDescription.setUsesMethodGet( Boolean.FALSE );
+ portletDescription.setUserContextStoredInSession( Boolean.FALSE );
+ portletDescription.setTemplatesStoredInSession( Boolean.FALSE );
+ portletDescription.setHasUserSpecificState( Boolean.TRUE );
+ portletDescription.setDoesUrlTemplateProcessing( doesUrlTemplateProcessing );
+
return portletDescription;
-
}
-
+
/**
* Returns the portlet description for a given portlet handle
- *
- * @param portletHandle String representing a portlet's handle
+ *
+ * @param portletHandle
+ * String representing a portlet's handle
* @return PortletDescription
* @throws WSRPException
*/
- public PortletDescription getPortletDescription(String portletHandle)
- throws WSRPException {
-
- return getPortletDescription(portletHandle, null, null, null);
-
+ public PortletDescription getPortletDescription( String portletHandle ) throws WSRPException
+ {
+ if ( portletDescs.containsKey( portletHandle ) )
+ {
+ LOG.debug( "Retrieving cached portlet description for handle [" + portletHandle + "]." );
+ return (PortletDescription) portletDescs.get( portletHandle );
+ }
+ LOG.debug( "Retrieving portlet description for handle [" + portletHandle + "]." );
+ return getPortletDescription( portletHandle, null, null, null );
}
-
+
/**
* Stores the ServiceDescription to persistent store
- *
- * @param persistentDataObject
+ *
+ * @param persistentDataObject
* @throws WSRPException
*/
- private void store(PersistentDataObject persistentDataObject)
- throws WSRPException {
-
- persistentHandler.store(persistentDataObject);
-
+ private void store( PersistentDataObject persistentDataObject ) throws WSRPException
+ {
+
+ persistentHandler.store( persistentDataObject );
+
}
-
+
/**
* Restores a single ServiceDescritpion
+ *
* @throws WSRPException
*/
- private void restore() throws WSRPException {
-
- persistentDataObject = persistentHandler.restoreMultiple(persistentDataObject);
-
+ private void restore( ) throws WSRPException
+ {
+
+ persistentDataObject = persistentHandler.restoreMultiple( persistentDataObject );
+
/* Use the last description found */
- WSRPServiceDescription tempServiceDescription =
- (WSRPServiceDescription) persistentDataObject.getLastElement();
- if (tempServiceDescription == null) {
- WSRPXHelper.throwX(ErrorCodes.MISSING_SERVICE_DESCRIPTION);
+ WSRPServiceDescription tempServiceDescription = (WSRPServiceDescription) persistentDataObject.getLastElement();
+ if ( tempServiceDescription == null )
+ {
+ WSRPXHelper.throwX( ErrorCodes.MISSING_SERVICE_DESCRIPTION );
}
this.serviceDescription = tempServiceDescription.toServiceDescription();
-
+
}
-
+
/**
* Trace input arguments for getPortletDescription method
- *
- * @param portletHandle as String
- * @param desiredLocales as String[]
- *
- */
- private void trace_getPortletDescription_args(String portletHandle,
- String[] desiredLocales) {
-
- if (log.isDebugEnabled()) {
-
- log.debug("INPUT:STRING:portletHandle=" + portletHandle);
-
- if (desiredLocales != null && desiredLocales.length > 0) {
- for (int x = 0; x < desiredLocales.length; x++) {
- log.debug(
- "INPUT:STRING[" + x + "]:desiredLocales=" +
- desiredLocales[x]);
+ *
+ * @param portletHandle
+ * as String
+ * @param desiredLocales
+ * as String[]
+ *
+ */
+ private void trace_getPortletDescription_args( String portletHandle, String[] desiredLocales )
+ {
+
+ if ( LOG.isDebugEnabled() )
+ {
+
+ LOG.debug( "INPUT:STRING:portletHandle=" + portletHandle );
+
+ if ( desiredLocales != null && desiredLocales.length > 0 )
+ {
+ for ( int x = 0; x < desiredLocales.length; x++ )
+ {
+ LOG.debug( "INPUT:STRING[" + x + "]:desiredLocales=" + desiredLocales[x] );
+ }
+ }
+ else
+ {
+ LOG.debug( "INPUT:STRING[]:desiredLocales=NULL or length=0" );
+ }
+ }
+
+ }
+
+ private MarkupType[] getMarkupTypes( PortletDD portletDefinition )
+ {
+ List locales = portletDefinition.getSupportedLocales();
+ List supports = portletDefinition.getSupports();
+
+ debugGetMarkupTypes( portletDefinition );
+
+ // See WSRP.5.1.10 for MarkupType data structure reference
+ MarkupType[] markupTypes = new MarkupType[ supports.size() ];
+ int cnt = 0;
+
+ // Populate the markupTypes array by iterating over the
+ // <supports> elements in portlet.xml
+ for ( Iterator iter = supports.iterator(); iter.hasNext(); )
+ {
+ SupportsDD supportDD = (SupportsDD) iter.next();
+
+ // MarkupType mimeType field
+ String mimeType = supportDD.getMimeType();
+
+ // MarkupType modes[] field (see WSRP.6.8)
+ // TODO: These need to be mapped to the WSRP modes from JSR 168 modes less naively
+ // TODO: Handle custom modes (WSRP.6.8.5, PLT.8.4)
+ // TODO: Handle modes supplied by Consumer
+ List portletModes = supportDD.getPortletModes();
+ String[] wsrpModes = new String[ portletModes.size() ];
+ for ( int i = 0; i < portletModes.size(); i++ )
+ {
+ String portletMode = (String) portletModes.get( i );
+ if ( ! portletMode.startsWith( "wsrp:" ) )
+ {
+ portletMode = "wsrp:" + portletMode;
+ }
+ wsrpModes[i] = portletMode;
+ }
+
+ // MarkupType windowStates[] field
+ // TODO: Handle portlet custom window states (WSRP.6.9.5, PLT.9.4)
+ // TODO: Handle window states supplied by Consumer
+ String[] wsrpWindowStates = new String[] { WindowStates.normal.getValue(),
+ WindowStates.minimized.getValue(), WindowStates.maximized.getValue(), WindowStates.solo.getValue() };
+
+ // MarkupType locales[] field
+ // assume (falsely?) that each <supports> element is
+ // able to be localized per <supported-locale>.
+ String[] markupLocales = null;
+ if ( locales != null && !locales.isEmpty() )
+ {
+ markupLocales = new String[ locales.size() ];
+ for ( int i = 0; i < locales.size(); i++ )
+ {
+ markupLocales[i] = (String) locales.get( i );
+ }
+ }
+ else
+ {
+ markupLocales = new String[] { DEFAULT_LOCALE.toString() };
+ }
+
+ // TODO: MarkupType extensions[] field
+
+ MarkupType markupType = new MarkupType();
+ markupType.setMimeType( mimeType );
+ markupType.setModes( wsrpModes );
+ markupType.setWindowStates( wsrpWindowStates );
+ markupType.setLocales( markupLocales );
+ markupTypes[cnt++] = markupType;
+ }
+
+ return markupTypes;
+ }
+
+
+ private void localizePortletDescription( String[] desiredLocales, PortletDD portletDefinition,
+ PortletDescription portletDescription ) throws WSRPException
+ {
+ String locale = getLocale( desiredLocales, portletDefinition );
+ String pName = portletDefinition.getPortletName();
+ String pClass = portletDefinition.getPortletClass();
+ if ( locale == null )
+ {
+ // no default locale in portlet found
+ LOG_PORTLETXML.info( "Portlet [" + portletDefinition.getPortletName() + "] class [" +
+ portletDefinition.getPortletClass() + "] does not have a default locale. " +
+ "Defaulting to [" + DEFAULT_LOCALE + "]" );
+ locale = DEFAULT_LOCALE.toString();
+ }
+
+ // Locale comes from portlet descriptor <supported-locale> or
+ // portlet resource bundle. (PLT.6.2, PLT.21.10)
+ LocalizedString title = new LocalizedString();
+ LocalizedString shortTitle = new LocalizedString();
+ LocalizedString[] keywords = new LocalizedString[0];
+
+ // Set localized title, short title, and keywords. If no portlet-info is found,
+ // default the title and short title to empty strings.
+ // FIXME: Doesn't appear to be a way to get localized <portlet-info> from Pluto?
+ if ( portletDefinition.getPortletInfo() != null )
+ {
+ PortletInfoDD portletInfo = portletDefinition.getPortletInfo();
+ String titleValue = portletInfo.getTitle();
+ if ( titleValue == null )
+ {
+ LOG_PORTLETXML.warn( MessageFormat.format( Messages.BUNDLE.getString( Messages.MISSINGELEMENT ), new Object[] { pName, pClass, "<title>", "<portlet-info>" } ) );
+ title.setValue( "title" );
+ }
+ else
+ {
+ title.setValue( titleValue );
+ }
+
+ String shortTitleValue = portletInfo.getShortTitle();
+ if ( shortTitleValue == null )
+ {
+ LOG_PORTLETXML.warn( MessageFormat.format( Messages.BUNDLE.getString( Messages.MISSINGELEMENT ), new Object[] { pName, pClass, "<short-title>", "<portlet-info>" } ) );
+ shortTitle.setValue( "shorttitle" );
+ }
+ else
+ {
+ shortTitle.setValue( shortTitleValue );
+ }
+
+
+ if ( portletInfo.getKeywords() != null &&
+ ! portletInfo.getKeywords().trim().equals( "" ) )
+ {
+ StringTokenizer st = new StringTokenizer( portletInfo.getKeywords(), "," );
+ keywords = new LocalizedString[ st.countTokens() ];
+ int cnt = 0;
+ while ( st.hasMoreTokens() )
+ {
+ String keyword = st.nextToken().trim();
+ keywords[cnt++] = new LocalizedString( keyword, locale, null );
}
- } else {
- log.debug("INPUT:STRING[]:desiredLocales=NULL or length=0");
}
+ else
+ {
+ LOG_PORTLETXML.warn( MessageFormat.format( Messages.BUNDLE.getString( Messages.MISSINGELEMENT ), new Object[] { pName, pClass, "<keywords>", "<portlet-info>" } ) );
+ keywords = new LocalizedString[] { new LocalizedString( locale, "keyword", null) };
+ }
+ }
+ else
+ {
+ LOG_PORTLETXML.warn( MessageFormat.format( Messages.BUNDLE.getString( Messages.MISSINGELEMENT ), new Object[] { pName, pClass, "<portlet-info>", "<portlet>" } ) );
+ title.setValue( "title" );
+ shortTitle.setValue( "shorttitle" );
+ keywords = new LocalizedString[] { new LocalizedString( locale, "keyword", null) };
+ }
+
+ title.setLang( locale );
+ shortTitle.setLang( locale );
+
+ // Locale comes from xml:lang attributes on <display-name> and
+ // <description> elements. (PLT.21.8.1, PLT.21.9)
+ LocalizedString description = new LocalizedString();
+ description.setLang( locale );
+ String descValue = getDescriptionForLocale( locale, portletDefinition );
+ if ( descValue == null )
+ {
+ LOG_PORTLETXML.warn( MessageFormat.format( Messages.BUNDLE.getString( Messages.MISSINGELEMENT ), new Object[] { pName, pClass, "<description>", "<portlet>" } ) );
+ description.setValue( "description" );
+ }
+ else
+ {
+ description.setValue( descValue );
+ }
+
+ LocalizedString displayName = new LocalizedString();
+ displayName.setLang( locale );
+ String displayNameValue = getDisplaynameForLocale( locale, portletDefinition );
+ if ( displayNameValue == null )
+ {
+ LOG_PORTLETXML.warn( MessageFormat.format( Messages.BUNDLE.getString( Messages.MISSINGELEMENT ), new Object[] { pName, pClass, "<display-name>", "<portlet>" } ) );
+ displayName.setValue( "displayname" );
+ }
+ else
+ {
+ displayName.setValue( displayNameValue );
+ }
+
+ // Set the localized values on the portlet description
+ portletDescription.setShortTitle( shortTitle );
+ portletDescription.setTitle( title );
+ portletDescription.setKeywords( keywords );
+ portletDescription.setDescription( description );
+ portletDescription.setDisplayName( displayName );
+ }
+
+ /**
+ * The locale to use for the <code>LocalizedString</code>s
+ * in the PortletDescription (WSRP.5.1.11). The portlet description,
+ * short title, title, and keywords will be localized using
+ * the returned locale.
+ * <p/>
+ * The input is the consumer's desired locales from the <code>getServiceDescription</code>
+ * request (WSRP.5.2). The first desired locale that the portlet supports will be
+ * returned. If the desired locales is empty or null, then the first supported locale
+ * of the portlet will be returned.
+ * <p/>
+ * If the portlet does not support any of the desired locales, then the first supported
+ * locale of the portlet will be returned.
+ *
+ * @param desiredLocales
+ * @return the locale used to localize the portlet description
+ */
+ private String getLocale( String[] desiredLocales, PortletDD portletDD )
+ {
+ // The locales supported by the portlet. Note this is optional.
+ List supportedLocales = portletDD.getSupportedLocales();
+
+ // The requestor may not desire any particular locale
+ if ( desiredLocales == null || desiredLocales.length == 0 )
+ {
+ // Attempt to return the first locale advertised by the portlet.
+ // The portlet may not advertise its supported locales.
+ if ( supportedLocales != null && !supportedLocales.isEmpty() )
+ {
+ return (String)supportedLocales.get( 0 );
+ }
+ }
+
+ // The portlet may not advertise its supported locales, in
+ // which case we can just return.
+ if ( supportedLocales == null || supportedLocales.isEmpty() )
+ {
+ String pName = portletDD.getPortletName();
+ String pClass = portletDD.getPortletClass();
+ LOG_PORTLETXML.warn( MessageFormat.format( Messages.BUNDLE.getString( Messages.MISSINGELEMENT ), new Object[] { pName, pClass, "<supported-locale>", "<portlet>" } ) );
+ return null;
+ }
+
+ // Iterate over the desired locales, checking to see if the portlet supports
+ // the desired locale. The first desired locale to match is the locale used
+ // by the DescriptionHandler to localize the portlet description.
+ for ( Iterator desiredLocalesIter = Arrays.asList( desiredLocales ).iterator(); desiredLocalesIter.hasNext(); )
+ {
+ String desiredLocale = (String) desiredLocalesIter.next();
+
+ // iterate over the locales the portlet supports,
+ // looking for a match to the desiredLocale
+ for ( Iterator supportedLocalesIter = supportedLocales.iterator(); supportedLocalesIter.hasNext(); )
+ {
+ // if the portlet locale matches the desired locale, then return the desired locale.
+ String portletLocale = (String) supportedLocalesIter.next();
+ if ( desiredLocale.equalsIgnoreCase( portletLocale ) )
+ {
+ return desiredLocale;
+ }
+ }
+ }
+
+ // no match was found, so return the portlet's first supported locale
+ return (String) supportedLocales.get( 0 );
+ }
+
+ private String getDescriptionForLocale( String locale, PortletDD portletDD )
+ {
+
+ if (! ( portletDD.getDescriptions() == null || portletDD.getDescriptions().isEmpty() ) )
+ {
+ // Iterate over description elements, looking for
+ // the one with the desired locale.
+ for ( Iterator i = portletDD.getDescriptions().iterator(); i.hasNext(); )
+ {
+ DescriptionDD desc = (DescriptionDD) i.next();
+ if ( locale.equalsIgnoreCase( desc.getLang() ) )
+ {
+ return desc.getDescription();
+ }
+ }
+ }
+
+ return null;
+ }
+
+ private String getDisplaynameForLocale( String locale, PortletDD portletDD )
+ {
+
+ if (! ( portletDD.getDisplayNames() == null || portletDD.getDisplayNames().isEmpty() ) )
+ {
+ // Iterate over description elements, looking for
+ // the one with the desired locale.
+ for ( Iterator i = portletDD.getDisplayNames().iterator(); i.hasNext(); )
+ {
+ DisplayNameDD displayName = (DisplayNameDD) i.next();
+ if ( locale.equalsIgnoreCase( displayName.getLang() ) )
+ {
+ return displayName.getDisplayName();
+ }
+ }
}
+ return null;
+ }
+
+ private void debugGetMarkupTypes( PortletDD portletDefinition )
+ {
+ if ( LOG_PORTLETXML.isDebugEnabled() )
+ {
+ StringBuffer msg = new StringBuffer();
+
+ msg.append( "Portlet [" + portletDefinition.getPortletName() + "] supports " );
+ msg.append( "locales: " );
+ List supportedLocales = portletDefinition.getSupportedLocales();
+ if ( supportedLocales == null || supportedLocales.isEmpty() )
+ {
+ msg.append( "unable to determine supported locales " );
+ }
+ else
+ {
+ for ( Iterator localeIter = supportedLocales.iterator(); localeIter.hasNext(); )
+ {
+ msg.append( "[" + (String)localeIter.next() + "] " );
+ }
+ }
+
+ //msg.append( System.getProperty( "line.separator" ) );
+
+ msg.append( "modes per mime-type: " );
+ List supports = portletDefinition.getSupports();
+ if ( supports == null || supports.isEmpty() )
+ {
+ msg.append( "unable to get modes information - no <supports> element found in portlet.xml " );
+ }
+ else
+ {
+ for ( Iterator supportsIter = supports.iterator(); supportsIter.hasNext(); )
+ {
+ SupportsDD supportDD = (SupportsDD) supportsIter.next();
+ msg.append( "mime-type [" + supportDD.getMimeType() + "] " );
+ Iterator modes = supportDD.getPortletModes().iterator();
+ msg.append( "modes " );
+ while ( modes.hasNext() )
+ {
+ msg.append( "[" + (String)modes.next() + "] " );
+ }
+ }
+ }
+ LOG_PORTLETXML.debug( msg.toString() );
+ }
}
+ private class PortletRegistryListenerImpl implements PortletRegistryListener
+ {
+
+ public void portletApplicationRegistered( PortletRegistryEvent e )
+ {
+ // do nothing
+ }
+
+ public synchronized void portletApplicationRemoved( PortletRegistryEvent e )
+ {
+ LOG.debug( MessageFormat.format( Messages.BUNDLE.getString( Messages.REGISTRYEVENT ), new Object[] { e.getApplicationId() } ) );
+ PortletAppDD appDD = e.getPortletApplicationDescriptor();
+ String appId = e.getApplicationId();
+ for ( Iterator i = appDD.getPortlets().iterator(); i.hasNext(); )
+ {
+ PortletDD portletDD = (PortletDD) i.next();
+ String portletId = appId + "/" + portletDD.getPortletName();
+ if ( portletDescs.containsKey( portletId ) )
+ {
+ LOG.debug( MessageFormat.format( Messages.BUNDLE.getString( Messages.PORTLETREMOVED ), new Object[] { portletId } ) );
+ portletDescs.remove( portletId );
+ }
+ }
+ }
+ }
+
}
Copied: portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortalCallbackServiceImpl.java (from r559323, portals/wsrp4j/branches/wsrp4j-pluto11/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortalCallbackServiceImpl.java)
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortalCallbackServiceImpl.java?p2=portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortalCallbackServiceImpl.java&p1=portals/wsrp4j/branches/wsrp4j-pluto11/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortalCallbackServiceImpl.java&r1=559323&r2=569721&rev=569721&view=diff
==============================================================================
--- portals/wsrp4j/branches/wsrp4j-pluto11/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortalCallbackServiceImpl.java (original)
+++ portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/provider/pluto/driver/PortalCallbackServiceImpl.java Sat Aug 25 12:35:34 2007
@@ -19,7 +19,7 @@
import org.apache.pluto.spi.PortletURLProvider;
import org.apache.pluto.spi.ResourceURLProvider;
import org.apache.wsrp4j.commons.producer.provider.interfaces.URLComposer;
-import org.apache.wsrp4j.producer.provider.pluto.interfaces.WSRPDynamicInformationProvider;
+import org.apache.wsrp4j.producer.provider.pluto.interfaces.AttrKeys;
public class PortalCallbackServiceImpl implements PortalCallbackService
{
@@ -49,7 +49,7 @@
public PortletURLProvider getPortletURLProvider( HttpServletRequest request,
PortletWindow portletWindow )
{
- Object wsrpRequest = request.getAttribute( WSRPDynamicInformationProvider.REQUEST );
+ Object wsrpRequest = request.getAttribute( AttrKeys.REQUEST );
if ( wsrpRequest == null )
{
@@ -104,7 +104,7 @@
public ResourceURLProvider getResourceURLProvider( HttpServletRequest request,
PortletWindow portletWindow )
{
- Object wsrpRequest = request.getAttribute( WSRPDynamicInformationProvider.REQUEST );
+ Object wsrpRequest = request.getAttribute( AttrKeys.REQUEST );
if ( wsrpRequest == null )
{