JBoss Portal SVN: r10207 - in modules/web/trunk: build and 1 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2008-03-05 08:32:56 -0500 (Wed, 05 Mar 2008)
New Revision: 10207
Modified:
modules/web/trunk/build/pom.xml
modules/web/trunk/pom.xml
modules/web/trunk/web/pom.xml
Log:
web module 1.2.0.Beta2 pom update
Modified: modules/web/trunk/build/pom.xml
===================================================================
--- modules/web/trunk/build/pom.xml 2008-03-05 13:01:42 UTC (rev 10206)
+++ modules/web/trunk/build/pom.xml 2008-03-05 13:32:56 UTC (rev 10207)
@@ -18,7 +18,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.portal.web</groupId>
<artifactId>module-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.2.0.Beta2</version>
<packaging>pom</packaging>
<name>JBoss Portal Test Module</name>
<url>http://www.jboss.com/products/jbossmc</url>
@@ -30,7 +30,7 @@
<version.apache.tomcat>5.5.12</version.apache.tomcat>
<version.jboss-logging>2.0.3.GA</version.jboss-logging>
<version.jboss-remoting>2.2.1.GA</version.jboss-remoting>
- <version.jboss.portal.common>1.2.0-Beta1</version.jboss.portal.common>
+ <version.jboss.portal.common>1.2.0.Beta2</version.jboss.portal.common>
<version.jboss.unit>1.2.0.Beta2</version.jboss.unit>
<version.log4j>1.2.14</version.log4j>
<version.apache.commons-logging>1.1.1</version.apache.commons-logging>
Modified: modules/web/trunk/pom.xml
===================================================================
--- modules/web/trunk/pom.xml 2008-03-05 13:01:42 UTC (rev 10206)
+++ modules/web/trunk/pom.xml 2008-03-05 13:32:56 UTC (rev 10207)
@@ -5,7 +5,7 @@
<artifactId>module-aggregator</artifactId>
<packaging>pom</packaging>
<name>JBoss Portal Web Module</name>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.2.0.Beta2</version>
<url>http://labs.jboss.com/jbossportal</url>
<dependencies/>
Modified: modules/web/trunk/web/pom.xml
===================================================================
--- modules/web/trunk/web/pom.xml 2008-03-05 13:01:42 UTC (rev 10206)
+++ modules/web/trunk/web/pom.xml 2008-03-05 13:32:56 UTC (rev 10207)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.portal.web</groupId>
<artifactId>module-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.2.0.Beta2</version>
<relativePath>../build/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
16 years, 3 months
JBoss Portal SVN: r10206 - modules/common/tags/JBP_COMMON_1_2_0_BETA2.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2008-03-05 08:01:42 -0500 (Wed, 05 Mar 2008)
New Revision: 10206
Modified:
modules/common/tags/JBP_COMMON_1_2_0_BETA2/pom.xml
Log:
update aggregator pom to 1.2.0.Beta2
Modified: modules/common/tags/JBP_COMMON_1_2_0_BETA2/pom.xml
===================================================================
--- modules/common/tags/JBP_COMMON_1_2_0_BETA2/pom.xml 2008-03-05 12:46:04 UTC (rev 10205)
+++ modules/common/tags/JBP_COMMON_1_2_0_BETA2/pom.xml 2008-03-05 13:01:42 UTC (rev 10206)
@@ -5,7 +5,7 @@
<artifactId>module-aggregator</artifactId>
<packaging>pom</packaging>
<name>JBoss Portal Modules Common (aggregator)</name>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.2.0.Beta2</version>
<distributionManagement>
<repository>
16 years, 3 months
JBoss Portal SVN: r10205 - in modules/common/trunk: common and 2 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2008-03-05 07:46:04 -0500 (Wed, 05 Mar 2008)
New Revision: 10205
Modified:
modules/common/trunk/build/pom.xml
modules/common/trunk/common/pom.xml
modules/common/trunk/mc/pom.xml
modules/common/trunk/portal/pom.xml
Log:
back to snapshot in common trunk
Modified: modules/common/trunk/build/pom.xml
===================================================================
--- modules/common/trunk/build/pom.xml 2008-03-05 12:45:14 UTC (rev 10204)
+++ modules/common/trunk/build/pom.xml 2008-03-05 12:46:04 UTC (rev 10205)
@@ -10,7 +10,7 @@
<artifactId>module-parent</artifactId>
<packaging>pom</packaging>
<name>JBoss Portal Modules Common</name>
- <version>1.2.0.Beta2</version>
+ <version>1.2.0-SNAPSHOT</version>
<url>http://labs.jboss.com/jbossportal</url>
<properties>
Modified: modules/common/trunk/common/pom.xml
===================================================================
--- modules/common/trunk/common/pom.xml 2008-03-05 12:45:14 UTC (rev 10204)
+++ modules/common/trunk/common/pom.xml 2008-03-05 12:46:04 UTC (rev 10205)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.portal.common</groupId>
<artifactId>module-parent</artifactId>
- <version>1.2.0.Beta2</version>
+ <version>1.2.0-SNAPSHOT</version>
<relativePath>../build/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: modules/common/trunk/mc/pom.xml
===================================================================
--- modules/common/trunk/mc/pom.xml 2008-03-05 12:45:14 UTC (rev 10204)
+++ modules/common/trunk/mc/pom.xml 2008-03-05 12:46:04 UTC (rev 10205)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.portal.common</groupId>
<artifactId>module-parent</artifactId>
- <version>1.2.0.Beta2</version>
+ <version>1.2.0-SNAPSHOT</version>
<relativePath>../build/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: modules/common/trunk/portal/pom.xml
===================================================================
--- modules/common/trunk/portal/pom.xml 2008-03-05 12:45:14 UTC (rev 10204)
+++ modules/common/trunk/portal/pom.xml 2008-03-05 12:46:04 UTC (rev 10205)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.portal.common</groupId>
<artifactId>module-parent</artifactId>
- <version>1.2.0.Beta2</version>
+ <version>1.2.0-SNAPSHOT</version>
<relativePath>../build/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
16 years, 3 months
JBoss Portal SVN: r10204 - modules/common/tags.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2008-03-05 07:45:14 -0500 (Wed, 05 Mar 2008)
New Revision: 10204
Added:
modules/common/tags/JBP_COMMON_1_2_0_BETA2/
Log:
tagging common 1.2.0.Beta2
Copied: modules/common/tags/JBP_COMMON_1_2_0_BETA2 (from rev 10203, modules/common/trunk)
16 years, 3 months
JBoss Portal SVN: r10203 - modules/portlet/tags.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2008-03-05 07:44:25 -0500 (Wed, 05 Mar 2008)
New Revision: 10203
Removed:
modules/portlet/tags/JBP_PORTLET_2_0_0_BETA2/
Log:
mistake I meant to tag common
16 years, 3 months
JBoss Portal SVN: r10202 - modules/portlet/tags.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2008-03-05 07:40:07 -0500 (Wed, 05 Mar 2008)
New Revision: 10202
Added:
modules/portlet/tags/JBP_PORTLET_2_0_0_BETA2/
Log:
1.2.0.Beta2
Copied: modules/portlet/tags/JBP_PORTLET_2_0_0_BETA2 (from rev 10201, modules/portlet/trunk)
16 years, 3 months
JBoss Portal SVN: r10201 - in modules/common/trunk: common and 2 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2008-03-05 07:39:01 -0500 (Wed, 05 Mar 2008)
New Revision: 10201
Modified:
modules/common/trunk/build/pom.xml
modules/common/trunk/common/pom.xml
modules/common/trunk/mc/pom.xml
modules/common/trunk/portal/pom.xml
Log:
committing beta 2 poms
Modified: modules/common/trunk/build/pom.xml
===================================================================
--- modules/common/trunk/build/pom.xml 2008-03-05 12:33:24 UTC (rev 10200)
+++ modules/common/trunk/build/pom.xml 2008-03-05 12:39:01 UTC (rev 10201)
@@ -10,7 +10,7 @@
<artifactId>module-parent</artifactId>
<packaging>pom</packaging>
<name>JBoss Portal Modules Common</name>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.2.0.Beta2</version>
<url>http://labs.jboss.com/jbossportal</url>
<properties>
Modified: modules/common/trunk/common/pom.xml
===================================================================
--- modules/common/trunk/common/pom.xml 2008-03-05 12:33:24 UTC (rev 10200)
+++ modules/common/trunk/common/pom.xml 2008-03-05 12:39:01 UTC (rev 10201)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.portal.common</groupId>
<artifactId>module-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.2.0.Beta2</version>
<relativePath>../build/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: modules/common/trunk/mc/pom.xml
===================================================================
--- modules/common/trunk/mc/pom.xml 2008-03-05 12:33:24 UTC (rev 10200)
+++ modules/common/trunk/mc/pom.xml 2008-03-05 12:39:01 UTC (rev 10201)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.portal.common</groupId>
<artifactId>module-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.2.0.Beta2</version>
<relativePath>../build/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: modules/common/trunk/portal/pom.xml
===================================================================
--- modules/common/trunk/portal/pom.xml 2008-03-05 12:33:24 UTC (rev 10200)
+++ modules/common/trunk/portal/pom.xml 2008-03-05 12:39:01 UTC (rev 10201)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.portal.common</groupId>
<artifactId>module-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.2.0.Beta2</version>
<relativePath>../build/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
16 years, 3 months
JBoss Portal SVN: r10200 - in modules/common/trunk/common: src/test/java/org/jboss/portal/test/common/i18n and 1 other directory.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2008-03-05 07:33:24 -0500 (Wed, 05 Mar 2008)
New Revision: 10200
Modified:
modules/common/trunk/common/pom.xml
modules/common/trunk/common/src/test/java/org/jboss/portal/test/common/i18n/SimpleResourceBundleTestCase.java
Log:
swap the default locale for the SimpleResourceBundleTestCase in order to make the test pass/fail in a predictable manner
Modified: modules/common/trunk/common/pom.xml
===================================================================
--- modules/common/trunk/common/pom.xml 2008-03-05 02:59:41 UTC (rev 10199)
+++ modules/common/trunk/common/pom.xml 2008-03-05 12:33:24 UTC (rev 10200)
@@ -111,8 +111,6 @@
<!-- To use in conjonctin with
export MAVEN_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000"
-->
-<!--
--->
<forkMode>never</forkMode>
<argLine>-enableassertions</argLine>
<excludes>
Modified: modules/common/trunk/common/src/test/java/org/jboss/portal/test/common/i18n/SimpleResourceBundleTestCase.java
===================================================================
--- modules/common/trunk/common/src/test/java/org/jboss/portal/test/common/i18n/SimpleResourceBundleTestCase.java 2008-03-05 02:59:41 UTC (rev 10199)
+++ modules/common/trunk/common/src/test/java/org/jboss/portal/test/common/i18n/SimpleResourceBundleTestCase.java 2008-03-05 12:33:24 UTC (rev 10200)
@@ -35,6 +35,9 @@
public class SimpleResourceBundleTestCase extends TestCase
{
+ /** . */
+ private Locale defaultLocale;
+
public SimpleResourceBundleTestCase()
{
}
@@ -44,6 +47,17 @@
super(name);
}
+ protected void setUp() throws Exception
+ {
+ defaultLocale = Locale.getDefault();
+ Locale.setDefault(Locale.JAPAN);
+ }
+
+ protected void tearDown() throws Exception
+ {
+ Locale.setDefault(defaultLocale);
+ }
+
public void testNormal()
{
SimpleResourceBundleFactory factory = new SimpleResourceBundleFactory("a", BundleClassLoader.assertExists());
16 years, 3 months
JBoss Portal SVN: r10199 - modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/admin/ui.
by portal-commits@lists.jboss.org
Author: wesleyhales
Date: 2008-03-04 21:59:41 -0500 (Tue, 04 Mar 2008)
New Revision: 10199
Modified:
modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/admin/ui/AdminPortlet.java
Log:
small change
Modified: modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/admin/ui/AdminPortlet.java
===================================================================
--- modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/admin/ui/AdminPortlet.java 2008-03-05 02:08:39 UTC (rev 10198)
+++ modules/portlet/trunk/portal/src/main/java/org/jboss/portal/portlet/portal/admin/ui/AdminPortlet.java 2008-03-05 02:59:41 UTC (rev 10199)
@@ -212,7 +212,7 @@
//e.printStackTrace();
}
if (description != null){
- descString = description.getDefaultValue().getString();
+ descString = description.getString(req.getLocale(),true);
}
writer.print("" +
16 years, 3 months
JBoss Portal SVN: r10198 - in branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal: wsrp and 3 other directories.
by portal-commits@lists.jboss.org
Author: chris.laprun(a)jboss.com
Date: 2008-03-04 21:08:39 -0500 (Tue, 04 Mar 2008)
New Revision: 10198
Added:
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/RequestContextWrapper.java
Removed:
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/ActionContextRequestContext.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPActionContext.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPRenderContext.java
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/framework/support/BasicInstanceContext.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/framework/support/BasicSecurityContext.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/WSRPActionURL.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/WSRPRenderURL.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/WSRPTypeFactory.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/ActionHandler.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/RenderHandler.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/RequestPrecursor.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/portlet/info/WSRPPortletInfo.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/ActionRequestProcessor.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/RenderRequestProcessor.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/RequestProcessor.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPPortletInvocationContext.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPRequestContext.java
Log:
- Adapted to changes in PC 2.0: should compile in isolation for now but not tested at all since need to wait for rest of update:
+ Renamed ActionContextRequestContext to RequestContextWrapper
+ Removed ThreadLocal handling of rewriters in RenderHandler (make code more complex for no reason)
+ RequestProcessor.initInvocation now returns the created invocation object and move some more common code to prepareInvocation
+ Moved code that used to be in WSRPActionContext to WSRPRequestContext (with adaptations)
+ Removed now useless WSRPActionContext and WSRPRenderContext
+ Now create OpaqueStateString directly as former factory method on StateString does not exist anymore
Modified: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/framework/support/BasicInstanceContext.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/framework/support/BasicInstanceContext.java 2008-03-05 00:58:25 UTC (rev 10197)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/framework/support/BasicInstanceContext.java 2008-03-05 02:08:39 UTC (rev 10198)
@@ -23,8 +23,9 @@
package org.jboss.portal.test.wsrp.framework.support;
+import org.jboss.portal.portlet.StateEvent;
+import org.jboss.portal.portlet.spi.InstanceContext;
import org.jboss.portal.portlet.state.AccessMode;
-import org.jboss.portal.portlet.support.spi.InstanceContextSupport;
/**
* @author <a href="mailto:chris.laprun@jboss.com?subject=org.jboss.portal.test.wsrp.framework.support.BasicInstanceContext">Chris
@@ -32,7 +33,7 @@
* @version $Revision$
* @since 2.4
*/
-public class BasicInstanceContext extends InstanceContextSupport
+public class BasicInstanceContext implements InstanceContext
{
String id;
@@ -50,4 +51,9 @@
{
return AccessMode.READ_ONLY;
}
+
+ public void onStateEvent(StateEvent event)
+ {
+ // do nothing
+ }
}
Modified: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/framework/support/BasicSecurityContext.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/framework/support/BasicSecurityContext.java 2008-03-05 00:58:25 UTC (rev 10197)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/framework/support/BasicSecurityContext.java 2008-03-05 02:08:39 UTC (rev 10198)
@@ -23,23 +23,45 @@
package org.jboss.portal.test.wsrp.framework.support;
-import org.jboss.portal.portlet.support.spi.SecurityContextSupport;
+import org.jboss.portal.portlet.spi.SecurityContext;
+import java.security.Principal;
+
/**
* @author <a href="mailto:chris.laprun@jboss.com?subject=org.jboss.portal.test.wsrp.framework.support.BasicSecurityContext">Chris
* Laprun</a>
* @version $Revision$
* @since 2.4
*/
-public class BasicSecurityContext extends SecurityContextSupport
+public class BasicSecurityContext implements SecurityContext
{
public String getAuthType()
{
return null;
}
+ public String getRemoteUser()
+ {
+ return null;
+ }
+
+ public Principal getUserPrincipal()
+ {
+ return null;
+ }
+
+ public boolean isUserInRole(String s)
+ {
+ return false;
+ }
+
public boolean isSecure()
{
return false;
}
+
+ public boolean isAuthenticated()
+ {
+ return false;
+ }
}
Modified: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/WSRPActionURL.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/WSRPActionURL.java 2008-03-05 00:58:25 UTC (rev 10197)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/WSRPActionURL.java 2008-03-05 02:08:39 UTC (rev 10198)
@@ -25,6 +25,7 @@
import org.jboss.portal.Mode;
import org.jboss.portal.WindowState;
import org.jboss.portal.portlet.ActionURL;
+import org.jboss.portal.portlet.OpaqueStateString;
import org.jboss.portal.portlet.StateString;
import java.util.Map;
@@ -63,13 +64,13 @@
String paramValue = getRawParameterValueFor(params, WSRPRewritingConstants.INTERACTION_STATE);
if (paramValue != null)
{
- interactionState = StateString.createFrom(paramValue);
+ interactionState = new OpaqueStateString(paramValue);
}
paramValue = getRawParameterValueFor(params, WSRPRewritingConstants.NAVIGATIONAL_STATE);
if (paramValue != null)
{
- navigationalState = StateString.createFrom(paramValue);
+ navigationalState = new OpaqueStateString(paramValue);
}
}
Modified: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/WSRPRenderURL.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/WSRPRenderURL.java 2008-03-05 00:58:25 UTC (rev 10197)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/WSRPRenderURL.java 2008-03-05 02:08:39 UTC (rev 10198)
@@ -24,6 +24,7 @@
import org.jboss.portal.Mode;
import org.jboss.portal.WindowState;
+import org.jboss.portal.portlet.OpaqueStateString;
import org.jboss.portal.portlet.RenderURL;
import org.jboss.portal.portlet.StateString;
@@ -61,7 +62,7 @@
String paramValue = getRawParameterValueFor(params, WSRPRewritingConstants.NAVIGATIONAL_STATE);
if (paramValue != null)
{
- navigationalState = StateString.createFrom(paramValue);
+ navigationalState = new OpaqueStateString(paramValue);
}
}
@@ -75,6 +76,11 @@
return navigationalState;
}
+ public Map<String, String[]> getPublicNavigationalStateChanges()
+ {
+ throw new UnsupportedOperationException("getPublicNavigationalStateChanges is not currently supported!"); // todo: fix me
+ }
+
protected void appendEnd(StringBuffer sb)
{
if (navigationalState != null)
Modified: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/WSRPTypeFactory.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/WSRPTypeFactory.java 2008-03-05 00:58:25 UTC (rev 10197)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/WSRPTypeFactory.java 2008-03-05 02:08:39 UTC (rev 10198)
@@ -28,9 +28,11 @@
import org.jboss.portal.common.util.ParameterValidation;
import org.jboss.portal.common.util.Tools;
import org.jboss.portal.portlet.ActionURL;
+import org.jboss.portal.portlet.OpaqueStateString;
import org.jboss.portal.portlet.PortletURL;
import org.jboss.portal.portlet.RenderURL;
import org.jboss.portal.portlet.StateString;
+import org.jboss.portal.portlet.URLFormat;
import org.jboss.portal.portlet.spi.PortletInvocationContext;
import org.jboss.portal.wsrp.core.BlockingInteractionResponse;
import org.jboss.portal.wsrp.core.CacheControl;
@@ -76,6 +78,7 @@
import org.jboss.portal.wsrp.core.UserContext;
import javax.xml.namespace.QName;
+import java.util.Map;
/**
* Creates minimally valid instances of WSRP types, populated with default values where possible, as per
@@ -569,12 +572,12 @@
{
public StateString getInteractionState()
{
- return StateString.createFrom(WSRPRewritingConstants.REWRITE_PARAMETER_OPEN + WSRPRewritingConstants.INTERACTION_STATE + WSRPRewritingConstants.REWRITE_PARAMETER_CLOSE);
+ return new OpaqueStateString(WSRPRewritingConstants.REWRITE_PARAMETER_OPEN + WSRPRewritingConstants.INTERACTION_STATE + WSRPRewritingConstants.REWRITE_PARAMETER_CLOSE);
}
public StateString getNavigationalState()
{
- return StateString.createFrom(WSRPRewritingConstants.REWRITE_PARAMETER_OPEN + WSRPRewritingConstants.NAVIGATIONAL_STATE + WSRPRewritingConstants.REWRITE_PARAMETER_CLOSE);
+ return new OpaqueStateString(WSRPRewritingConstants.REWRITE_PARAMETER_OPEN + WSRPRewritingConstants.NAVIGATIONAL_STATE + WSRPRewritingConstants.REWRITE_PARAMETER_CLOSE);
}
public Mode getMode()
@@ -592,9 +595,14 @@
{
public StateString getNavigationalState()
{
- return StateString.createFrom(WSRPRewritingConstants.REWRITE_PARAMETER_OPEN + WSRPRewritingConstants.NAVIGATIONAL_STATE + WSRPRewritingConstants.REWRITE_PARAMETER_CLOSE);
+ return new OpaqueStateString(WSRPRewritingConstants.REWRITE_PARAMETER_OPEN + WSRPRewritingConstants.NAVIGATIONAL_STATE + WSRPRewritingConstants.REWRITE_PARAMETER_CLOSE);
}
+ public Map<String, String[]> getPublicNavigationalStateChanges()
+ {
+ throw new UnsupportedOperationException("getPublicNavigationalStateChanges is not currently supported!"); // todo: fix me
+ }
+
public Mode getMode()
{
return Mode.create(WSRPRewritingConstants.REWRITE_PARAMETER_OPEN + WSRPRewritingConstants.MODE + WSRPRewritingConstants.REWRITE_PARAMETER_CLOSE, true);
@@ -632,7 +640,7 @@
private static String createTemplate(PortletInvocationContext context, PortletURL url, Boolean secure)
{
- String template = context.renderURL(url, secure, null, true);
+ String template = context.renderURL(url, new URLFormat(secure, null, null, true));
template = Tools.replace(template, WSRPRewritingConstants.ENC_OPEN, WSRPRewritingConstants.REWRITE_PARAMETER_OPEN);
template = Tools.replace(template, WSRPRewritingConstants.ENC_CLOSE, WSRPRewritingConstants.REWRITE_PARAMETER_CLOSE);
return template;
Deleted: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/ActionContextRequestContext.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/ActionContextRequestContext.java 2008-03-05 00:58:25 UTC (rev 10197)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/ActionContextRequestContext.java 2008-03-05 02:08:39 UTC (rev 10198)
@@ -1,69 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2007, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-
-package org.jboss.portal.wsrp.consumer;
-
-import org.jboss.portal.portlet.spi.RequestContext;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
- * @version $Revision$
- * @since 2.6
- */
-public class ActionContextRequestContext implements RequestContext
-{
- private RequestContext actionContext;
-
- public ActionContextRequestContext(RequestContext actionContext)
- {
- this.actionContext = actionContext;
- }
-
- public String getCharacterEncoding()
- {
- return actionContext.getCharacterEncoding();
- }
-
- public String getContentType()
- {
- return actionContext.getContentType();
- }
-
- public int getContentLength()
- {
- return actionContext.getContentLength();
- }
-
- public InputStream getInputStream() throws IOException
- {
- return actionContext.getInputStream();
- }
-
- public BufferedReader getReader() throws IOException {
- return actionContext.getReader();
- }
-}
Modified: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/ActionHandler.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/ActionHandler.java 2008-03-05 00:58:25 UTC (rev 10197)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/ActionHandler.java 2008-03-05 02:08:39 UTC (rev 10198)
@@ -29,16 +29,17 @@
import org.apache.commons.fileupload.util.Streams;
import org.jboss.portal.common.util.ParameterMap;
import org.jboss.portal.common.util.ParameterValidation;
+import org.jboss.portal.portlet.OpaqueStateString;
+import org.jboss.portal.portlet.ParametersStateString;
import org.jboss.portal.portlet.PortletInvokerException;
-import org.jboss.portal.portlet.ParametersStateString;
import org.jboss.portal.portlet.StateEvent;
import org.jboss.portal.portlet.StateString;
+import org.jboss.portal.portlet.invocation.ActionInvocation;
import org.jboss.portal.portlet.invocation.PortletInvocation;
import org.jboss.portal.portlet.invocation.response.ErrorResponse;
import org.jboss.portal.portlet.invocation.response.HTTPRedirectionResponse;
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
import org.jboss.portal.portlet.invocation.response.UpdateNavigationalStateResponse;
-import org.jboss.portal.portlet.spi.RequestContext;
import org.jboss.portal.portlet.spi.InstanceContext;
import org.jboss.portal.portlet.state.AccessMode;
import org.jboss.portal.wsrp.WSRPTypeFactory;
@@ -77,6 +78,13 @@
@SuppressWarnings({"CastToConcreteClass"})
protected Object prepareRequest(RequestPrecursor requestPrecursor, PortletInvocation invocation)
{
+ if (!(invocation instanceof ActionInvocation))
+ {
+ throw new IllegalArgumentException("ActionHandler can only handle ActionInvocations!");
+ }
+
+ ActionInvocation actionInvocation = (ActionInvocation)invocation;
+
PortletContext portletContext = requestPrecursor.getPortletContext();
log.debug("Consumer about to attempt action on portlet '" + portletContext.getPortletHandle() + "'");
@@ -89,10 +97,8 @@
InteractionParams interactionParams =
WSRPTypeFactory.createInteractionParams(WSRPUtils.getStateChangeFromAccessMode(accessMode));
- ActionContext actionContext = (ActionContext)invocation.getPortletContext();
-
// interaction state
- StateString interactionState = actionContext.getInteractionState();
+ StateString interactionState = actionInvocation.getInteractionState();
if (interactionState != null)
{
String state = interactionState.getStringValue();
@@ -103,14 +109,14 @@
}
// check for multi-part
- ActionContextRequestContext request = new ActionContextRequestContext(actionContext);
+ RequestContextWrapper requestContext = new RequestContextWrapper(actionInvocation.getRequestContext());
try
{
- if (FileUpload.isMultipartContent(request))
+ if (FileUpload.isMultipartContent(requestContext))
{
// content is multipart, we need to parse it (that includes form parameters)
FileUpload upload = new FileUpload();
- FileItemIterator iter = upload.getItemIterator(request);
+ FileItemIterator iter = upload.getItemIterator(requestContext);
List uploadContexts = new ArrayList(7);
List formParameters = new ArrayList(7);
while (iter.hasNext())
@@ -167,7 +173,7 @@
else
{
// if the content is not multipart, then check for form parameters
- ParameterMap params = actionContext.getForm();
+ ParameterMap params = actionInvocation.getForm();
if (params != null && !params.isEmpty())
{
int capacity = params.size();
@@ -219,7 +225,7 @@
{
// updateResponse.getMarkupContext(); // ignore bundled markup for now.
- RenderResponse result = new RenderResponse();
+ UpdateNavigationalStateResponse result = new UpdateNavigationalStateResponse();
// new mode
String newMode = updateResponse.getNewMode();
if (newMode != null)
@@ -236,7 +242,7 @@
String navigationalState = updateResponse.getNavigationalState();
if (navigationalState != null)
{
- result.setNavigationalState(StateString.createFrom(navigationalState));
+ result.setNavigationalState(new OpaqueStateString(navigationalState));
}
// check if the portlet was cloned
@@ -251,7 +257,7 @@
{
log.debug("Portlet '" + requestPrecursor.getPortletHandle() + "' was implicitely cloned. New handle is '"
+ handle + "'");
- StateEvent event = new StateEvent(WSRPUtils.convertToPortalPortletContext(portletContext), StateEvent.PORTLET_CLONED_EVENT);
+ StateEvent event = new StateEvent(WSRPUtils.convertToPortalPortletContext(portletContext), StateEvent.Type.PORTLET_CLONED_EVENT);
context.onStateEvent(event);
}
else
@@ -261,7 +267,7 @@
byte[] newState = portletContext.getPortletState();
if (!Arrays.equals(originalState, newState))
{
- StateEvent event = new StateEvent(WSRPUtils.convertToPortalPortletContext(portletContext), StateEvent.PORTLET_MODIFIED_EVENT);
+ StateEvent event = new StateEvent(WSRPUtils.convertToPortalPortletContext(portletContext), StateEvent.Type.PORTLET_MODIFIED_EVENT);
context.onStateEvent(event);
}
}
Modified: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/RenderHandler.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/RenderHandler.java 2008-03-05 00:58:25 UTC (rev 10197)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/RenderHandler.java 2008-03-05 02:08:39 UTC (rev 10198)
@@ -26,11 +26,15 @@
import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.common.util.Tools;
import org.jboss.portal.portlet.PortletInvokerException;
+import org.jboss.portal.portlet.URLFormat;
+import org.jboss.portal.portlet.cache.CacheScope;
import org.jboss.portal.portlet.invocation.PortletInvocation;
+import org.jboss.portal.portlet.invocation.RenderInvocation;
import org.jboss.portal.portlet.invocation.response.ErrorResponse;
import org.jboss.portal.portlet.invocation.response.FragmentResponse;
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
import org.jboss.portal.portlet.spi.PortletInvocationContext;
+import org.jboss.portal.wsrp.WSRPConstants;
import org.jboss.portal.wsrp.WSRPPortletURL;
import org.jboss.portal.wsrp.WSRPResourceURL;
import org.jboss.portal.wsrp.WSRPRewritingConstants;
@@ -43,8 +47,6 @@
import org.jboss.portal.wsrp.core.RuntimeContext;
import org.jboss.portal.wsrp.core.UserContext;
-import java.io.PrintWriter;
-
/**
* @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
* @version $Revision$
@@ -56,24 +58,8 @@
/** The separator constant. */
private static final String SEPARATOR = "_";
- /** . */
- private final ThreadLocal wsrpURLRewriterLocal = new ThreadLocal()
- {
- protected Object initialValue()
- {
- return new WSRPURLRewriter();
- }
- };
+ private static final org.jboss.portal.portlet.cache.CacheControl DEFAULT_CACHE_CONTROL = new org.jboss.portal.portlet.cache.CacheControl(0, CacheScope.PRIVATE, null);
- /** . */
- private final ThreadLocal resourceURLRewriterLocal = new ThreadLocal()
- {
- protected Object initialValue()
- {
- return new ResourceURLRewriter();
- }
- };
-
public RenderHandler(WSRPConsumerImpl consumer)
{
super(consumer);
@@ -81,6 +67,11 @@
protected Object prepareRequest(RequestPrecursor requestPrecursor, PortletInvocation invocation)
{
+ if (!(invocation instanceof RenderInvocation))
+ {
+ throw new IllegalArgumentException("RenderHandler can only handle RenderInvocations!");
+ }
+
// Create the markup request
PortletContext portletContext = requestPrecursor.getPortletContext();
log.debug("Consumer about to attempt rendering portlet '" + portletContext.getPortletHandle() + "'");
@@ -127,23 +118,18 @@
// todo: need to deal with binary
}
- FragmentResponse result = new FragmentResponse();
-
String mimeType = markupContext.getMimeType();
if (mimeType == null || mimeType.length() == 0)
{
return new ErrorResponse(new IllegalArgumentException("No MIME type was provided for portlet content."));
}
- result.setContentType(mimeType);
- result.setTitle(markupContext.getPreferredTitle());
+ // generate appropriate CacheControl
+ org.jboss.portal.portlet.cache.CacheControl cacheControl = createCacheControl(markupContext);
- // cache markup if possible
- cacheMarkupIfNeeded(markupContext, result);
+ FragmentResponse result = new FragmentResponse(null, null, mimeType, null, markup,
+ markupContext.getPreferredTitle(), cacheControl, invocation.getPortalContext().getModes());
- PrintWriter writer = result.getWriter();
- writer.write(markup);
-
log.debug("Response processed");
return result;
}
@@ -189,22 +175,22 @@
if (rewriteURLs)
{
- WSRPURLRewriter rewriter = (WSRPURLRewriter)wsrpURLRewriterLocal.get();
- rewriter.setContext(invocation.getContext());
- rewriter.setSecure(invocation.getSecurityContext().isSecure());
- String userId = invocation.getUserContext().getId();
- rewriter.setAuthenticated(userId != null); // is this correct?
+ URLFormat format = new URLFormat(invocation.getSecurityContext().isSecure(),
+ invocation.getSecurityContext().isAuthenticated(), true, true);
+ WSRPURLRewriter rewriter = new WSRPURLRewriter(invocation.getContext(), format);
markup = URLTools.replaceURLsBy(markup, rewriter);
}
// means that the producer generated the URLs, so handle resources...
- ResourceURLRewriter rewriter = (ResourceURLRewriter)resourceURLRewriterLocal.get();
+ ResourceURLRewriter rewriter = new ResourceURLRewriter();
return URLTools.replaceURLsBy(markup, rewriter);
}
- private void cacheMarkupIfNeeded(MarkupContext markupContext, FragmentResponse result)
+ private org.jboss.portal.portlet.cache.CacheControl createCacheControl(MarkupContext markupContext)
{
CacheControl cacheControl = markupContext.getCacheControl();
+ org.jboss.portal.portlet.cache.CacheControl result = DEFAULT_CACHE_CONTROL;
+
int expires;
if (cacheControl != null)
{
@@ -215,32 +201,38 @@
if (consumer.supportsUserScope(userScope))
{
log.debug("RenderHandler.processRenderRequest: trying to cache markup " + userScope + " for " + expires + " seconds.");
- result.setExpirationSecs(expires);
+ CacheScope scope;
+ if (WSRPConstants.CACHE_FOR_ALL.equals(userScope))
+ {
+ scope = CacheScope.PUBLIC;
+ }
+ else if (WSRPConstants.CACHE_PER_USER.equals(userScope))
+ {
+ scope = CacheScope.PRIVATE;
+ }
+ else
+ {
+ throw new IllegalArgumentException("Unknown CacheControl user scope: " + userScope); // should not happen
+ }
+
+ result = new org.jboss.portal.portlet.cache.CacheControl(expires, scope, cacheControl.getValidateTag());
}
}
+
+ return result;
}
private static class WSRPURLRewriter extends URLTools.URLReplacementGenerator
{
private PortletInvocationContext context;
- private Boolean secure;
- private Boolean authenticated;
+ private URLFormat format;
- public void setContext(PortletInvocationContext context)
+ private WSRPURLRewriter(PortletInvocationContext context, URLFormat format)
{
this.context = context;
+ this.format = format;
}
- public void setSecure(boolean secure)
- {
- this.secure = Boolean.valueOf(secure);
- }
-
- public void setAuthenticated(boolean authenticated)
- {
- this.authenticated = Boolean.valueOf(authenticated);
- }
-
public String getReplacementFor(int currentIndex, URLTools.URLMatch currentMatch)
{
String urlAsString = currentMatch.getURLAsString();
@@ -254,7 +246,7 @@
return portletURL.toString();
}
- return context.renderURL(portletURL, secure, authenticated, true);
+ return context.renderURL(portletURL, format);
}
return urlAsString;
}
Copied: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/RequestContextWrapper.java (from rev 10191, branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/ActionContextRequestContext.java)
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/RequestContextWrapper.java (rev 0)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/RequestContextWrapper.java 2008-03-05 02:08:39 UTC (rev 10198)
@@ -0,0 +1,64 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2007, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+
+package org.jboss.portal.wsrp.consumer;
+
+import org.jboss.portal.portlet.spi.RequestContext;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
+ * @version $Revision$
+ * @since 2.6
+ */
+public class RequestContextWrapper implements org.apache.commons.fileupload.RequestContext
+{
+ private RequestContext requestContext;
+
+ public RequestContextWrapper(RequestContext requestContext)
+ {
+ this.requestContext = requestContext;
+ }
+
+ public String getCharacterEncoding()
+ {
+ return requestContext.getCharacterEncoding();
+ }
+
+ public String getContentType()
+ {
+ return requestContext.getContentType();
+ }
+
+ public int getContentLength()
+ {
+ return requestContext.getContentLength();
+ }
+
+ public InputStream getInputStream() throws IOException
+ {
+ return requestContext.getInputStream();
+ }
+}
Property changes on: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/RequestContextWrapper.java
___________________________________________________________________
Name: svn:keywords
+ LastChangedDate LastChangedBy LastChangedRevision Id
Name: svn:eol-style
+ native
Modified: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/RequestPrecursor.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/RequestPrecursor.java 2008-03-05 00:58:25 UTC (rev 10197)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/RequestPrecursor.java 2008-03-05 02:08:39 UTC (rev 10198)
@@ -90,7 +90,7 @@
String mode;
try
{
- mode = WSRPUtils.getWSRPNameFromJSR168PortletMode(context.getMode());
+ mode = WSRPUtils.getWSRPNameFromJSR168PortletMode(invocation.getMode());
}
catch (Exception e)
{
@@ -101,7 +101,7 @@
String windowState;
try
{
- windowState = WSRPUtils.getWSRPNameFromJSR168WindowState(context.getWindowState());
+ windowState = WSRPUtils.getWSRPNameFromJSR168WindowState(invocation.getWindowState());
}
catch (Exception e)
{
@@ -114,7 +114,7 @@
new String[]{streamInfo.getContentType().toString()}, mode, windowState);
String userAgent = WSRPConsumerImpl.getHttpRequest(invocation).getHeader(USER_AGENT);
markupParams.setClientData(WSRPTypeFactory.createClientData(userAgent));
- StateString navigationalState = context.getNavigationalState();
+ StateString navigationalState = invocation.getNavigationalState();
if (navigationalState != null)
{
String state = navigationalState.getStringValue();
Modified: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/portlet/info/WSRPPortletInfo.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/portlet/info/WSRPPortletInfo.java 2008-03-05 00:58:25 UTC (rev 10197)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/portlet/info/WSRPPortletInfo.java 2008-03-05 02:08:39 UTC (rev 10198)
@@ -28,8 +28,10 @@
import org.jboss.portal.common.util.ParameterValidation;
import org.jboss.portal.portlet.info.CacheInfo;
import org.jboss.portal.portlet.info.CapabilitiesInfo;
+import org.jboss.portal.portlet.info.EventingInfo;
import org.jboss.portal.portlet.info.MetaInfo;
import org.jboss.portal.portlet.info.ModeInfo;
+import org.jboss.portal.portlet.info.NavigationInfo;
import org.jboss.portal.portlet.info.PreferenceInfo;
import org.jboss.portal.portlet.info.PreferencesInfo;
import org.jboss.portal.portlet.info.SecurityInfo;
@@ -117,6 +119,16 @@
portletHandle = newHandle;
}
+ public String getName()
+ {
+ return portletHandle;
+ }
+
+ public String getApplicationName()
+ {
+ return null; // doesn't mean anything for remote portlet
+ }
+
public CapabilitiesInfo getCapabilities()
{
return capabilities;
@@ -191,6 +203,16 @@
return Boolean.FALSE;
}
+ public EventingInfo getEventing()
+ {
+ return null; // todo: implement with WSRP 2.0
+ }
+
+ public NavigationInfo getNavigation()
+ {
+ return null; // todo: implement with WSRP 2.0
+ }
+
public boolean isUsesMethodGet()
{
return usesMethodGet;
Modified: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/ActionRequestProcessor.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/ActionRequestProcessor.java 2008-03-05 00:58:25 UTC (rev 10197)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/ActionRequestProcessor.java 2008-03-05 02:08:39 UTC (rev 10198)
@@ -23,16 +23,13 @@
package org.jboss.portal.wsrp.producer;
-import org.jboss.portal.common.util.MarkupInfo;
import org.jboss.portal.portlet.StateString;
import org.jboss.portal.portlet.invocation.ActionInvocation;
+import org.jboss.portal.portlet.invocation.PortletInvocation;
import org.jboss.portal.portlet.invocation.response.HTTPRedirectionResponse;
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
import org.jboss.portal.portlet.invocation.response.UpdateNavigationalStateResponse;
-import org.jboss.portal.portlet.spi.PortalContext;
-import org.jboss.portal.portlet.spi.SecurityContext;
-import org.jboss.portal.portlet.spi.UserContext;
-import org.jboss.portal.portlet.spi.WindowContext;
+import org.jboss.portal.portlet.spi.PortletInvocationContext;
import org.jboss.portal.portlet.state.AccessMode;
import org.jboss.portal.wsrp.WSRPExceptionFactory;
import org.jboss.portal.wsrp.WSRPTypeFactory;
@@ -110,28 +107,29 @@
return WSRPUtils.getAccessModeFromStateChange(stateChange);
}
- void initInvocation(StateString navigationalState, SecurityContext securityContext,
- MarkupInfo markupInfo, PortalContext portalContext,
- UserContext userContext,
- WindowContext windowContext)
+ PortletInvocation initInvocation(PortletInvocationContext context)
{
+ ActionInvocation invocation = new ActionInvocation(context);
+ // Request context
+ WSRPRequestContext requestContext = WSRPRequestContext.createRequestContext(markupRequest, interactionParams);
+ invocation.setRequestContext(requestContext);
+ // Interaction state
StateString interactionState = createNavigationalState(interactionParams.getInteractionState());
+ invocation.setInteractionState(interactionState);
- WSRPActionContext actionContext = WSRPActionContext.createActionContext(navigationalState, securityContext,
- markupInfo, portalContext, userContext, instanceContext, windowContext, markupRequest, interactionState,
- interactionParams);
- setInvocation(new ActionInvocation(actionContext));
- actionContext.contextualize(invocation);
- invocation.setTarget(portlet.getContext());
+ // Form parameters
+ invocation.setForm(requestContext.getForm());
+
+ return invocation;
}
Object processResponse(PortletInvocationResponse response)
{
if (response instanceof UpdateNavigationalStateResponse)
{
- UpdateNavigationalStateResponse renderResult = (UpdateNavigationalStateResponse)response;
+ UpdateNavigationalStateResponse renderResult = (UpdateNavigationalStateResponse)response;
UpdateResponse updateResponse = WSRPTypeFactory.createUpdateResponse();
updateResponse.setNewMode(WSRPUtils.convertJSR168PortletModeNameToWSRPName(getNewStateOrNull(renderResult, true)));
updateResponse.setNewWindowState(WSRPUtils.convertJSR168WindowStateNameToWSRPName(getNewStateOrNull(renderResult, false)));
Modified: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/RenderRequestProcessor.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/RenderRequestProcessor.java 2008-03-05 00:58:25 UTC (rev 10197)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/RenderRequestProcessor.java 2008-03-05 02:08:39 UTC (rev 10198)
@@ -23,22 +23,17 @@
package org.jboss.portal.wsrp.producer;
-import org.jboss.portal.common.util.MarkupInfo;
import org.jboss.portal.common.util.Tools;
-import org.jboss.portal.portlet.StateString;
import org.jboss.portal.portlet.impl.jsr168.PortletUtils;
+import org.jboss.portal.portlet.invocation.PortletInvocation;
import org.jboss.portal.portlet.invocation.RenderInvocation;
import org.jboss.portal.portlet.invocation.response.FragmentResponse;
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
-import org.jboss.portal.portlet.spi.PortalContext;
-import org.jboss.portal.portlet.spi.SecurityContext;
-import org.jboss.portal.portlet.spi.UserContext;
-import org.jboss.portal.portlet.spi.WindowContext;
+import org.jboss.portal.portlet.spi.PortletInvocationContext;
import org.jboss.portal.portlet.state.AccessMode;
import org.jboss.portal.wsrp.WSRPConstants;
import org.jboss.portal.wsrp.WSRPRewritingConstants;
import org.jboss.portal.wsrp.WSRPTypeFactory;
-import org.jboss.portal.wsrp.WSRPUtils;
import org.jboss.portal.wsrp.core.GetMarkup;
import org.jboss.portal.wsrp.core.InvalidHandleFault;
import org.jboss.portal.wsrp.core.InvalidRegistrationFault;
@@ -108,20 +103,9 @@
return AccessMode.READ_ONLY;
}
- void initInvocation(StateString navigationalState, SecurityContext securityContext,
- MarkupInfo markupInfo, PortalContext portalContext,
- UserContext userContext,
- WindowContext windowContext
- )
+ PortletInvocation initInvocation(PortletInvocationContext context)
{
- WSRPRenderContext renderContext = new WSRPRenderContext(navigationalState, securityContext, markupInfo,
- portalContext, userContext, instanceContext, windowContext,
- WSRPUtils.getJSR168PortletModeFromWSRPName(markupRequest.getMode()),
- WSRPUtils.getJSR168WindowStateFromWSRPName(markupRequest.getWindowState()));
- setInvocation(new RenderInvocation(renderContext));
- renderContext.contextualize(invocation);
-
- invocation.setTarget(portlet.getContext());
+ return new RenderInvocation(context);
}
Object processResponse(PortletInvocationResponse response)
@@ -135,7 +119,7 @@
markupString = processFragmentString(fragment.getChars().toString());
break;
case FragmentResponse.TYPE_BYTES:
- markupBinary = fragment.getBytes().toByteArray(); // fix-me: might need to convert to Base64?
+ markupBinary = fragment.getBytes(); // fix-me: might need to convert to Base64?
break;
case FragmentResponse.TYPE_EMPTY:
markupString = EMPTY;
@@ -157,7 +141,7 @@
markupContext.setPreferredTitle(portletDescription.getTitle().getValue());
// cache information
- int expires = fragment.getExpirationSecs();
+ int expires = fragment.getCacheControl().getExpirationSecs();
// only create a CacheControl if expiration time is not 0
if (expires != 0)
{
Modified: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/RequestProcessor.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/RequestProcessor.java 2008-03-05 00:58:25 UTC (rev 10197)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/RequestProcessor.java 2008-03-05 02:08:39 UTC (rev 10198)
@@ -33,6 +33,7 @@
import org.jboss.portal.portlet.invocation.PortletInvocation;
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
import org.jboss.portal.portlet.spi.PortalContext;
+import org.jboss.portal.portlet.spi.PortletInvocationContext;
import org.jboss.portal.portlet.spi.SecurityContext;
import org.jboss.portal.portlet.spi.UserContext;
import org.jboss.portal.portlet.spi.WindowContext;
@@ -147,7 +148,11 @@
WindowContext windowContext = createWindowContext(portletContext.getId(), runtimeContext);
// prepare the invocation
- initInvocation(navigationalState, securityContext, streamInfo, portalContext, userContext, windowContext);
+ WSRPPortletInvocationContext context = new WSRPPortletInvocationContext(streamInfo, securityContext, portalContext, userContext, instanceContext, windowContext);
+ PortletInvocation invocation = initInvocation(context);
+ invocation.setTarget(portlet.getContext());
+ context.contextualize(invocation);
+ setInvocation(invocation);
}
abstract RegistrationContext getRegistrationContext();
@@ -164,9 +169,7 @@
abstract AccessMode getAccessMode();
- abstract void initInvocation(StateString navigationalState, SecurityContext securityContext,
- MarkupInfo markupInfo, PortalContext portalContext, UserContext userContext,
- WindowContext windowContext);
+ abstract PortletInvocation initInvocation(PortletInvocationContext context);
abstract Object processResponse(PortletInvocationResponse response);
Deleted: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPActionContext.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPActionContext.java 2008-03-05 00:58:25 UTC (rev 10197)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPActionContext.java 2008-03-05 02:08:39 UTC (rev 10198)
@@ -1,394 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-
-package org.jboss.portal.wsrp.producer;
-
-import org.apache.commons.fileupload.FileUpload;
-import org.jboss.portal.Mode;
-import org.jboss.portal.WindowState;
-import org.jboss.portal.common.util.MarkupInfo;
-import org.jboss.portal.common.util.ParameterMap;
-import org.jboss.portal.portlet.StateString;
-import org.jboss.portal.portlet.spi.InstanceContext;
-import org.jboss.portal.portlet.spi.PortalContext;
-import org.jboss.portal.portlet.spi.RequestContext;
-import org.jboss.portal.portlet.spi.SecurityContext;
-import org.jboss.portal.portlet.spi.UserContext;
-import org.jboss.portal.portlet.spi.WindowContext;
-import org.jboss.portal.wsrp.WSRPUtils;
-import org.jboss.portal.wsrp.core.InteractionParams;
-import org.jboss.portal.wsrp.core.NamedString;
-import org.jboss.portal.wsrp.core.UploadContext;
-
-import javax.mail.MessagingException;
-import javax.mail.internet.InternetHeaders;
-import javax.mail.internet.MimeBodyPart;
-import javax.mail.internet.MimeMultipart;
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
- * @version $Revision$
- * @since 2.4
- */
-abstract class WSRPActionContext extends WSRPPortletInvocationContext implements RequestContext
-{
- protected String characterEncoding;
- protected StateString interactionState;
-
- protected WSRPActionContext(StateString navigationalState,
- SecurityContext securityContext, MarkupInfo markupInfo, PortalContext portalContext,
- UserContext userContext, InstanceContext instanceContext, WindowContext windowContext,
- Mode mode, WindowState windowState, StateString interactionState, String characterEncoding)
- {
- super(navigationalState, securityContext, markupInfo, portalContext, userContext, instanceContext,
- windowContext, mode, windowState);
- this.interactionState = interactionState;
- this.characterEncoding = characterEncoding;
- }
-
-
- public StateString getInteractionState()
- {
- return interactionState;
- }
-
- public String getCharacterEncoding()
- {
- return characterEncoding;
- }
-
- public int getContentLength()
- {
- throw new UnsupportedOperationException("Not currently supported");
- }
-
- public BufferedReader getReader() throws IOException
- {
- throw new UnsupportedOperationException("Not currently supported");
- }
-
- public InputStream getInputStream() throws IOException
- {
- throw new UnsupportedOperationException("Not currently supported");
- }
-
-
- static class WSRPSimpleActionContext extends WSRPActionContext
- {
- private ParameterMap formParameters;
- private String contentType;
-
- protected WSRPSimpleActionContext(StateString navigationalState,
- SecurityContext securityContext, MarkupInfo markupInfo, PortalContext portalContext,
- UserContext userContext, InstanceContext instanceContext, WindowContext windowContext,
- Mode mode, WindowState windowState, StateString interactionState,
- String characterEncoding, String contentType, NamedString[] formParams)
- {
- super(navigationalState, securityContext, markupInfo, portalContext, userContext, instanceContext,
- windowContext, mode, windowState, interactionState, characterEncoding);
- this.contentType = contentType;
-
- if (formParams != null && formParams.length > 0)
- {
- int length = formParams.length;
- Map params = new HashMap(length);
- for (int i = 0; i < length; i++)
- {
- NamedString formParam = formParams[i];
- String paramName = formParam.getName();
- String paramValue = formParam.getValue();
- if (params.containsKey(paramName))
- {
- // handle multi-valued parameters...
- String[] oldValues = (String[])params.get(paramName);
- int valuesLength = oldValues.length;
- String[] newValues = new String[valuesLength + 1];
- System.arraycopy(oldValues, 0, newValues, 0, valuesLength);
- newValues[valuesLength] = paramValue;
- params.put(paramName, newValues);
- }
- else
- {
- params.put(paramName, new String[]{paramValue});
- }
- }
- formParameters = new ParameterMap(params);
- }
- else
- {
- formParameters = new ParameterMap();
- }
-
- }
-
- public ParameterMap getForm()
- {
- return formParameters;
- }
-
- public String getContentType()
- {
- return contentType;
- }
- }
-
- static class WSRPMultiActionContext extends WSRPActionContext
- {
-
- private byte[] content;
- private boolean usingStream;
- private boolean usingReader;
- private String contentType;
-
- protected WSRPMultiActionContext(StateString navigationalState, SecurityContext securityContext,
- MarkupInfo markupInfo, PortalContext portalContext, UserContext userContext,
- InstanceContext instanceContext, WindowContext windowContext, Mode mode,
- WindowState windowState, StateString interactionState, String characterEncoding,
- NamedString[] formParams, UploadContext[] uploadContexts) throws IOException, MessagingException
- {
- super(navigationalState, securityContext, markupInfo, portalContext, userContext, instanceContext,
- windowContext, mode, windowState, interactionState, characterEncoding);
-
- MimeMultipart parts = new MimeMultipart();
- if (uploadContexts != null && uploadContexts.length > 0)
- {
- for (int i = 0; i < uploadContexts.length; i++)
- {
- UploadContext uploadContext = uploadContexts[i];
-
- InternetHeaders headers = new InternetHeaders();
- headers.addHeader(FileUpload.CONTENT_TYPE, uploadContext.getMimeType());
-
- NamedString[] attributes = uploadContext.getMimeAttributes();
- if (attributes != null && attributes.length > 0)
- {
- for (int j = 0; j < attributes.length; j++)
- {
- NamedString attribute = attributes[j];
- headers.addHeader(attribute.getName(), attribute.getValue());
- }
- }
-
- MimeBodyPart mimeBodyPart = new MimeBodyPart(headers, uploadContext.getUploadData());
- parts.addBodyPart(mimeBodyPart);
- }
- }
-
- final String paramContentDispositionHeader = FileUpload.FORM_DATA + "; name=\"";
- if (formParams != null)
- {
- for (int i = 0; i < formParams.length; i++)
- {
- NamedString formParam = formParams[i];
- InternetHeaders headers = new InternetHeaders();
-
- StringBuffer paramContentDisposition = new StringBuffer(paramContentDispositionHeader);
- paramContentDisposition.append(formParam.getName()).append("\"");
-
- headers.addHeader(FileUpload.CONTENT_DISPOSITION, paramContentDisposition.toString());
-
- MimeBodyPart mimeBodyPart = new MimeBodyPart(headers, formParam.getValue().getBytes());
- parts.addBodyPart(mimeBodyPart);
- }
- }
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- parts.writeTo(baos);
- content = baos.toByteArray();
- contentType = parts.getContentType();
- }
-
- /**
- * Un-used for now... had started to write the request content by hand, switched to use Java Mail to get something
- * done faster, might switch back to it later when there's more time to work on it to avoid Java Mail dependency
- */
- private void createContent(NamedString[] formParams, UploadContext[] uploadContexts) throws IOException
- {
- /*
- Content-type: multipart/form-data, boundary=AaB03x
-
- --AaB03x
- content-disposition: form-data; name="field1"
-
- Joe Blow
- --AaB03x
- content-disposition: form-data; name="pics"
- Content-type: multipart/mixed, boundary=BbC04y
-
- --BbC04y
- Content-disposition: attachment; filename="file1.txt"
- Content-Type: text/plain
-
- ... contents of file1.txt ...
- --BbC04y
- Content-disposition: attachment; filename="file2.gif"
- Content-type: image/gif
- Content-Transfer-Encoding: binary
-
- ...contents of file2.gif...
- --BbC04y--
- --AaB03x--
- */
-
- final String MULTIPART_FORM_DATA_BOUNDARY = FileUpload.MULTIPART_FORM_DATA + "; boundary=";
- final String JBOSS_PORTAL_FORM_BOUNDARY = "JBP";
- final String FORM_BOUNDARY1 = JBOSS_PORTAL_FORM_BOUNDARY + "XXX";
- final String FORM_BOUNDARY2 = JBOSS_PORTAL_FORM_BOUNDARY + "YYY";
-
- final byte[] NEWLINE = "\n".getBytes(characterEncoding);
- final byte[] BOUNDARY1 = ("--" + FORM_BOUNDARY1 + "\n").getBytes(characterEncoding);
- final byte[] BOUNDARY2 = ("--" + FORM_BOUNDARY2 + "\n").getBytes(characterEncoding);
- final byte[] CONTENT_DISPOSITION = ("Content-disposition: form-data; name=\"").getBytes(characterEncoding);
- final byte[] CLOSE_CONTENT_DISPOSITION = "\"\n\n".getBytes(characterEncoding);
-
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream(4096);
- String begin = "Content-type: " + MULTIPART_FORM_DATA_BOUNDARY + FORM_BOUNDARY1 + "\n";
- baos.write(begin.getBytes(characterEncoding));
- baos.write(NEWLINE);
-
- if (uploadContexts != null)
- {
- for (int i = 0; i < uploadContexts.length; i++)
- {
- UploadContext uploadContext = uploadContexts[i];
-
- }
-
- }
-
- if (formParams != null)
- {
- for (int i = 0; i < formParams.length; i++)
- {
- NamedString formParam = formParams[i];
- String paramName = formParam.getName();
- String paramValue = formParam.getValue();
-
- /*
- --AaB03x
- content-disposition: form-data; name="field1"
-
- Joe Blow
- */
- baos.write(BOUNDARY1);
- baos.write(CONTENT_DISPOSITION);
- baos.write(paramName.getBytes(characterEncoding));
- baos.write(CLOSE_CONTENT_DISPOSITION);
- baos.write(paramValue.getBytes(characterEncoding));
- baos.write(NEWLINE);
- }
-
- }
- baos.write(NEWLINE);
- baos.write(BOUNDARY1);
- }
-
- public ParameterMap getForm()
- {
- return new ParameterMap();
- }
-
- public String getContentType()
- {
- return contentType;
- }
-
- public int getContentLength()
- {
- return content.length;
- }
-
- public BufferedReader getReader() throws IOException
- {
- if (usingStream)
- {
- throw new IllegalStateException("getInputStream has already been called on this ActionContext!");
- }
- usingReader = true;
- return new BufferedReader(new InputStreamReader(getInputStreamFromContent()));
- }
-
- public InputStream getInputStream() throws IOException
- {
- if (usingReader)
- {
- throw new IllegalStateException("getReader has already been called on this ActionContext!");
- }
- usingStream = true;
- return getInputStreamFromContent();
- }
-
-
- private InputStream getInputStreamFromContent()
- {
- return new ByteArrayInputStream(content);
- }
- }
-
- public static WSRPActionContext createActionContext(StateString navigationalState, SecurityContext securityContext,
- MarkupInfo markupInfo, PortalContext portalContext,
- UserContext userContext, InstanceContext instanceContext,
- WindowContext windowContext, MarkupRequest markupRequest,
- StateString interactionState, InteractionParams interactionParams)
- {
- NamedString[] formParams = interactionParams.getFormParameters();
- UploadContext[] uploadContexts = interactionParams.getUploadContexts();
-
-
- if (uploadContexts != null && uploadContexts.length > 0)
- {
- try
- {
- return new WSRPMultiActionContext(navigationalState, securityContext, markupInfo,
- portalContext, userContext, instanceContext, windowContext,
- WSRPUtils.getJSR168PortletModeFromWSRPName(markupRequest.getMode()),
- WSRPUtils.getJSR168WindowStateFromWSRPName(markupRequest.getWindowState()), interactionState,
- markupRequest.getCharacterSet(), formParams, uploadContexts);
- }
- catch (Exception e)
- {
- IllegalArgumentException illegalArgumentException = new IllegalArgumentException("Invalid upload context");
- illegalArgumentException.initCause(e); // init cause for JDK 1.4
- throw illegalArgumentException;
- }
- }
- else
- {
- return new WSRPSimpleActionContext(navigationalState, securityContext, markupInfo,
- portalContext, userContext, instanceContext, windowContext,
- WSRPUtils.getJSR168PortletModeFromWSRPName(markupRequest.getMode()),
- WSRPUtils.getJSR168WindowStateFromWSRPName(markupRequest.getWindowState()), interactionState,
- markupRequest.getCharacterSet(), markupRequest.getMimeType(), formParams);
-
- }
- }
-}
Modified: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPPortletInvocationContext.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPPortletInvocationContext.java 2008-03-05 00:58:25 UTC (rev 10197)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPPortletInvocationContext.java 2008-03-05 02:08:39 UTC (rev 10198)
@@ -22,16 +22,17 @@
******************************************************************************/
package org.jboss.portal.wsrp.producer;
-import org.jboss.portal.Mode;
-import org.jboss.portal.WindowState;
-import org.jboss.portal.common.invocation.EmptyAttributeResolver;
import org.jboss.portal.common.invocation.resolver.MapAttributeResolver;
import org.jboss.portal.common.invocation.resolver.RequestAttributeResolver;
import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.common.util.MarkupInfo;
+import org.jboss.portal.portlet.ContainerURL;
import org.jboss.portal.portlet.PortletURL;
-import org.jboss.portal.portlet.StateString;
+import org.jboss.portal.portlet.ResourceURL;
+import org.jboss.portal.portlet.URLFormat;
+import org.jboss.portal.portlet.impl.spi.AbstractClientContext;
import org.jboss.portal.portlet.impl.spi.AbstractPortletInvocationContext;
+import org.jboss.portal.portlet.impl.spi.AbstractServerContext;
import org.jboss.portal.portlet.invocation.PortletInvocation;
import org.jboss.portal.portlet.spi.InstanceContext;
import org.jboss.portal.portlet.spi.PortalContext;
@@ -67,36 +68,36 @@
private static final String EQ = "=";
private static final String AMP = "&";
private static final String EQ_TRUE = "=true";
+ private HttpServletRequest request;
+ private HttpServletResponse response;
- public WSRPPortletInvocationContext(StateString navigationalState, SecurityContext securityContext,
- MarkupInfo markupInfo, PortalContext portalContext, UserContext userContext,
- InstanceContext instanceContext, WindowContext windowContext, Mode mode, WindowState windowState)
+ public WSRPPortletInvocationContext(MarkupInfo markupInfo, SecurityContext securityContext, PortalContext portalContext, UserContext userContext,
+ InstanceContext instanceContext, WindowContext windowContext)
{
- super(mode, windowState, navigationalState, markupInfo);
+ super(markupInfo);
this.securityContext = securityContext;
- this.markupInfo = markupInfo;
this.portalContext = portalContext;
this.userContext = userContext;
this.instanceContext = instanceContext;
this.windowContext = windowContext;
- this.requestContext = new WSRPRequestContext();
+ request = ServletAccess.getRequest();
+ response = ServletAccess.getResponse();
+
//
addResolver(PortletInvocation.INVOCATION_SCOPE, new MapAttributeResolver());
addResolver(PortletInvocation.REQUEST_SCOPE, new RequestAttributeResolver(ServletAccess.getRequest()));
- addResolver(PortletInvocation.REQUEST_PROPERTIES_SCOPE, EmptyAttributeResolver.getInstance());
- addResolver(PortletInvocation.RESPONSE_PROPERTIES_SCOPE, new MapAttributeResolver());
}
public HttpServletRequest getClientRequest()
{
- return ServletAccess.getRequest();
+ return request;
}
public HttpServletResponse getClientResponse()
{
- return ServletAccess.getResponse();
+ return response;
}
/** Override the default behavior in order to avoid to encode when it is producer written URL. */
@@ -149,24 +150,34 @@
* <code>wsrp_rewrite?wsrp-urlType=render&amp;wsrp-mode=help&amp;wsrp-windowState=maximized/wsrp_rewrite</code></li>
* </ul>
*
- * @param portletURL
- * @param wantSecure
- * @param wantAuthenticated
- * @param relative
- * @return the encoded url
+ * @param containerURL
+ * @param urlFormat
+ * @return
*/
- public String renderURL(PortletURL portletURL, Boolean wantSecure, Boolean wantAuthenticated, boolean relative)
+ public String renderURL(ContainerURL containerURL, URLFormat urlFormat)
{
- if (portletURL != null)
+ if (containerURL != null)
{
- return WSRPPortletURL.create(portletURL, Boolean.TRUE.equals(wantSecure)).toString();
+ if (containerURL instanceof PortletURL)
+ {
+ PortletURL portletURL = (PortletURL)containerURL;
+
+ return WSRPPortletURL.create(portletURL, urlFormat.getWantSecure()).toString();
+ }
+ else if (containerURL instanceof ResourceURL)
+ {
+ ResourceURL resourceURL = (ResourceURL)containerURL;
+ // todo: do something
+ }
}
return null;
}
public void contextualize(PortletInvocation invocation)
{
- invocation.setRequestContext(requestContext);
+ invocation.setClientContext(new AbstractClientContext(request));
+ invocation.setServerContext(new AbstractServerContext(request, response));
+
invocation.setSecurityContext(securityContext);
invocation.setInstanceContext(instanceContext);
invocation.setWindowContext(windowContext);
Deleted: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPRenderContext.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPRenderContext.java 2008-03-05 00:58:25 UTC (rev 10197)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPRenderContext.java 2008-03-05 02:08:39 UTC (rev 10198)
@@ -1,50 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-package org.jboss.portal.wsrp.producer;
-
-import org.jboss.portal.Mode;
-import org.jboss.portal.WindowState;
-import org.jboss.portal.common.util.MarkupInfo;
-import org.jboss.portal.portlet.StateString;
-import org.jboss.portal.portlet.spi.InstanceContext;
-import org.jboss.portal.portlet.spi.PortalContext;
-import org.jboss.portal.portlet.spi.RenderContext;
-import org.jboss.portal.portlet.spi.SecurityContext;
-import org.jboss.portal.portlet.spi.UserContext;
-import org.jboss.portal.portlet.spi.WindowContext;
-
-/**
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision$
- */
-class WSRPRenderContext extends WSRPPortletInvocationContext implements RenderContext
-{
-
- public WSRPRenderContext(StateString navigationalState, SecurityContext securityContext,
- MarkupInfo markupInfo, PortalContext portalContext, UserContext userContext,
- InstanceContext instanceContext, WindowContext windowContext, Mode mode, WindowState windowState)
- {
- super(navigationalState, securityContext, markupInfo, portalContext, userContext, instanceContext,
- windowContext, mode, windowState);
- }
-}
Modified: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPRequestContext.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPRequestContext.java 2008-03-05 00:58:25 UTC (rev 10197)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPRequestContext.java 2008-03-05 02:08:39 UTC (rev 10198)
@@ -22,18 +22,234 @@
******************************************************************************/
package org.jboss.portal.wsrp.producer;
-import org.jboss.portal.portlet.impl.spi.AbstractRequestContext;
+import org.apache.commons.fileupload.FileUpload;
+import org.jboss.portal.common.util.ParameterMap;
import org.jboss.portal.portlet.spi.RequestContext;
-import org.jboss.portal.wsrp.servlet.ServletAccess;
+import org.jboss.portal.wsrp.core.InteractionParams;
+import org.jboss.portal.wsrp.core.NamedString;
+import org.jboss.portal.wsrp.core.UploadContext;
+import javax.mail.MessagingException;
+import javax.mail.internet.InternetHeaders;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMultipart;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision$
*/
-class WSRPRequestContext extends AbstractRequestContext implements RequestContext
+abstract class WSRPRequestContext implements RequestContext, org.apache.commons.fileupload.RequestContext
{
- public WSRPRequestContext()
+ protected String characterEncoding;
+
+ protected WSRPRequestContext(String characterEncoding)
{
- super(ServletAccess.getRequest());
+ this.characterEncoding = characterEncoding;
}
+
+ public String getCharacterEncoding()
+ {
+ return characterEncoding;
+ }
+
+ public int getContentLength()
+ {
+ throw new UnsupportedOperationException("Not currently supported");
+ }
+
+ public BufferedReader getReader() throws IOException
+ {
+ throw new UnsupportedOperationException("Not currently supported");
+ }
+
+ public InputStream getInputStream() throws IOException
+ {
+ throw new UnsupportedOperationException("Not currently supported");
+ }
+
+ public abstract ParameterMap getForm();
+
+ static class WSRPSimpleRequestContext extends WSRPRequestContext
+ {
+ private ParameterMap formParameters;
+ private String contentType;
+
+ protected WSRPSimpleRequestContext(String characterEncoding, String contentType, NamedString[] formParams)
+ {
+ super(characterEncoding);
+ this.contentType = contentType;
+
+ if (formParams != null && formParams.length > 0)
+ {
+ int length = formParams.length;
+ Map params = new HashMap(length);
+ for (int i = 0; i < length; i++)
+ {
+ NamedString formParam = formParams[i];
+ String paramName = formParam.getName();
+ String paramValue = formParam.getValue();
+ if (params.containsKey(paramName))
+ {
+ // handle multi-valued parameters...
+ String[] oldValues = (String[])params.get(paramName);
+ int valuesLength = oldValues.length;
+ String[] newValues = new String[valuesLength + 1];
+ System.arraycopy(oldValues, 0, newValues, 0, valuesLength);
+ newValues[valuesLength] = paramValue;
+ params.put(paramName, newValues);
+ }
+ else
+ {
+ params.put(paramName, new String[]{paramValue});
+ }
+ }
+ formParameters = new ParameterMap(params);
+ }
+ else
+ {
+ formParameters = new ParameterMap();
+ }
+
+ }
+
+ public ParameterMap getForm()
+ {
+ return formParameters;
+ }
+
+ public String getContentType()
+ {
+ return contentType;
+ }
+ }
+
+ static class WSRPMultiRequestContext extends WSRPRequestContext
+ {
+ private byte[] content;
+ private boolean usingStream;
+ private boolean usingReader;
+ private String contentType;
+
+ protected WSRPMultiRequestContext(String characterEncoding, NamedString[] formParams, UploadContext[] uploadContexts) throws IOException, MessagingException
+ {
+ super(characterEncoding);
+
+ MimeMultipart parts = new MimeMultipart();
+ if (uploadContexts != null && uploadContexts.length > 0)
+ {
+ for (UploadContext uploadContext : uploadContexts)
+ {
+ InternetHeaders headers = new InternetHeaders();
+ headers.addHeader(FileUpload.CONTENT_TYPE, uploadContext.getMimeType());
+
+ NamedString[] attributes = uploadContext.getMimeAttributes();
+ if (attributes != null && attributes.length > 0)
+ {
+ for (NamedString attribute : attributes)
+ {
+ headers.addHeader(attribute.getName(), attribute.getValue());
+ }
+ }
+
+ MimeBodyPart mimeBodyPart = new MimeBodyPart(headers, uploadContext.getUploadData());
+ parts.addBodyPart(mimeBodyPart);
+ }
+ }
+
+ final String paramContentDispositionHeader = FileUpload.FORM_DATA + "; name=\"";
+ if (formParams != null)
+ {
+ for (NamedString formParam : formParams)
+ {
+ InternetHeaders headers = new InternetHeaders();
+
+ StringBuffer paramContentDisposition = new StringBuffer(paramContentDispositionHeader);
+ paramContentDisposition.append(formParam.getName()).append("\"");
+
+ headers.addHeader(FileUpload.CONTENT_DISPOSITION, paramContentDisposition.toString());
+
+ MimeBodyPart mimeBodyPart = new MimeBodyPart(headers, formParam.getValue().getBytes());
+ parts.addBodyPart(mimeBodyPart);
+ }
+ }
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ parts.writeTo(baos);
+ content = baos.toByteArray();
+ contentType = parts.getContentType();
+ }
+
+ public ParameterMap getForm()
+ {
+ return new ParameterMap();
+ }
+
+ public String getContentType()
+ {
+ return contentType;
+ }
+
+ public int getContentLength()
+ {
+ return content.length;
+ }
+
+ public BufferedReader getReader() throws IOException
+ {
+ if (usingStream)
+ {
+ throw new IllegalStateException("getInputStream has already been called on this ActionContext!");
+ }
+ usingReader = true;
+ return new BufferedReader(new InputStreamReader(getInputStreamFromContent()));
+ }
+
+ public InputStream getInputStream() throws IOException
+ {
+ if (usingReader)
+ {
+ throw new IllegalStateException("getReader has already been called on this ActionContext!");
+ }
+ usingStream = true;
+ return getInputStreamFromContent();
+ }
+
+
+ private InputStream getInputStreamFromContent()
+ {
+ return new ByteArrayInputStream(content);
+ }
+ }
+
+ public static WSRPRequestContext createRequestContext(MarkupRequest markupRequest, InteractionParams interactionParams)
+ {
+ NamedString[] formParams = interactionParams.getFormParameters();
+ UploadContext[] uploadContexts = interactionParams.getUploadContexts();
+
+
+ if (uploadContexts != null && uploadContexts.length > 0)
+ {
+ try
+ {
+ return new WSRPMultiRequestContext(markupRequest.getCharacterSet(), formParams, uploadContexts);
+ }
+ catch (Exception e)
+ {
+ throw new IllegalArgumentException("Invalid upload contexts", e);
+ }
+ }
+ else
+ {
+ return new WSRPSimpleRequestContext(markupRequest.getCharacterSet(), markupRequest.getMimeType(), formParams);
+
+ }
+ }
}
16 years, 3 months