Author: bdaw
Date: 2008-02-04 08:53:04 -0500 (Mon, 04 Feb 2008)
New Revision: 9743
Added:
modules/portlet/trunk/portlet/src/main/resources/org/jboss/portal/portlet/portlet_2_0.tld
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/taglib/
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/taglib/DefineObjectsTestCase.java
modules/portlet/trunk/test/src/test/resources/jsr286/tck/taglib-war/
modules/portlet/trunk/test/src/test/resources/jsr286/tck/taglib-war/WEB-INF/
modules/portlet/trunk/test/src/test/resources/jsr286/tck/taglib-war/WEB-INF/portlet.xml
modules/portlet/trunk/test/src/test/resources/jsr286/tck/taglib-war/WEB-INF/web.xml
modules/portlet/trunk/test/src/test/resources/jsr286/tck/taglib-war/taglib.jsp
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/PortletSessionImpl.java
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/DefineObjectsTag.java
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/DefineObjectsTagTEI.java
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/GenerateURLTag.java
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/NamespaceTag.java
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/PortletTag.java
modules/portlet/trunk/test/src/test/build.xml
modules/portlet/trunk/test/src/test/resources/test/remote-jboss-unit.xml
Log:
- strart of Portlet 2.0 taglib
- defineObjects tag and testcase
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/PortletSessionImpl.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/PortletSessionImpl.java 2008-02-04
12:27:00 UTC (rev 9742)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/PortletSessionImpl.java 2008-02-04
13:53:04 UTC (rev 9743)
@@ -33,6 +33,7 @@
import java.util.Map;
import java.util.Collections;
import java.util.ArrayList;
+import java.util.HashMap;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -206,12 +207,19 @@
public Map<String, Object> getAttributeMap()
{
- throw new NotYetImplemented();
+ return getAttributeMap(PortletSession.PORTLET_SCOPE);
}
public Map<String, Object> getAttributeMap(int i)
{
- throw new NotYetImplemented();
+ Enumeration attributes = getAttributeNames(i);
+ Map<String, Object> attrs = new HashMap<String, Object>();
+ while (attributes.hasMoreElements())
+ {
+ String name = (String)attributes.nextElement();
+ attrs.put(name, getAttribute(name));
+ }
+ return Collections.unmodifiableMap(attrs);
}
/**
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/DefineObjectsTag.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/DefineObjectsTag.java 2008-02-04
12:27:00 UTC (rev 9742)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/DefineObjectsTag.java 2008-02-04
13:53:04 UTC (rev 9743)
@@ -25,12 +25,24 @@
import javax.portlet.PortletConfig;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
+import javax.portlet.PortletRequest;
+import javax.portlet.PortletResponse;
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.EventResponse;
+import javax.portlet.EventRequest;
+import javax.portlet.ResourceResponse;
+import javax.portlet.ResourceRequest;
+import javax.portlet.PortletSession;
+import javax.portlet.PortletPreferences;
import javax.servlet.jsp.JspException;
+import java.util.Map;
/**
* The defineObjects tag for the JSR 168 Portlet specification.
*
* @author <a href="mailto:sgwood@ix.netcom.com">Sherman Wood</a>
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
* @version $Revision: 5448 $
* @jsp.tag name="defineObjects" body-content="empty"
tei-class="org.jboss.portal.portlet.impl.jsr168.taglib.DefineObjectsTagTEI"
*/
@@ -47,12 +59,42 @@
public int doEndTag() throws JspException
{
- RenderRequest rreq = getRequest();
- RenderResponse rresp = getResponse();
+ RenderRequest rreq = getRenderRequest();
+ RenderResponse rresp = getRenderResponse();
+ ActionRequest areq = getActionRequest();
+ ActionResponse aresp = getActionResponse();
+ EventRequest ereq = getEventRequest();
+ EventResponse eresp = getEventResponse();
+ ResourceRequest rsreq = getResourceRequest();
+ ResourceResponse rsresp = getResourceResponse();
PortletConfig portletConfig = getConfig();
+ PortletSession portletSession = getSession();
+ Map<String, Object> portletSessionScope = getPortletSessionScope();
+ PortletPreferences portletPreferences = getPortletPreferences();
+ Map<String, String[]> portletPreferencesValues =
getPortletPreferenceValues();
pageContext.setAttribute(DefineObjectsTagTEI.renderRequestVariableName, rreq);
pageContext.setAttribute(DefineObjectsTagTEI.renderResponseVariableName, rresp);
+ pageContext.setAttribute(DefineObjectsTagTEI.actionRequestVariableName, areq);
+ pageContext.setAttribute(DefineObjectsTagTEI.actionResponseVariableName, aresp);
+ pageContext.setAttribute(DefineObjectsTagTEI.eventRequestVariableName, ereq);
+ pageContext.setAttribute(DefineObjectsTagTEI.eventResponseVariableName, eresp);
+ pageContext.setAttribute(DefineObjectsTagTEI.resourceRequestVariableName, rsreq);
+ pageContext.setAttribute(DefineObjectsTagTEI.resourceResponseVariableName,
rsresp);
pageContext.setAttribute(DefineObjectsTagTEI.portletConfigVariableName,
portletConfig);
+ pageContext.setAttribute(DefineObjectsTagTEI.portletSessionVariableName,
portletSession);
+ pageContext.setAttribute(DefineObjectsTagTEI.portletSessionScopeVariableName,
portletSessionScope);
+ pageContext.setAttribute(DefineObjectsTagTEI.portletPreferencesVariableName,
portletPreferences);
+ pageContext.setAttribute(DefineObjectsTagTEI.portletPreferencesValuesVariableName,
portletPreferencesValues);
+
+
+// RenderRequest rreq = (RenderRequest)getPortletRequest();
+// RenderResponse rresp = (RenderResponse)getPortletResponse();
+// PortletConfig portletConfig = getConfig();
+// pageContext.setAttribute(DefineObjectsTagTEI.renderRequestVariableName, rreq);
+// pageContext.setAttribute(DefineObjectsTagTEI.renderResponseVariableName, rresp);
+// pageContext.setAttribute(DefineObjectsTagTEI.portletConfigVariableName,
portletConfig);
+
+
return EVAL_PAGE;
}
}
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/DefineObjectsTagTEI.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/DefineObjectsTagTEI.java 2008-02-04
12:27:00 UTC (rev 9742)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/DefineObjectsTagTEI.java 2008-02-04
13:53:04 UTC (rev 9743)
@@ -25,14 +25,25 @@
import javax.portlet.PortletConfig;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.ResourceRequest;
+import javax.portlet.ResourceResponse;
+import javax.portlet.EventRequest;
+import javax.portlet.EventResponse;
+import javax.portlet.PortletSession;
+import javax.portlet.PortletPreferences;
import javax.servlet.jsp.tagext.TagData;
import javax.servlet.jsp.tagext.TagExtraInfo;
import javax.servlet.jsp.tagext.VariableInfo;
+import java.util.Map;
+import java.util.HashMap;
/**
* The additional variable definitions for the defineObjects tag for the JSR 168 Portlet
specification.
*
* @author <a href="mailto:sgwood@ix.netcom.com">Sherman Wood</a>
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
* @version $Revision: 5448 $
*/
public class DefineObjectsTagTEI extends TagExtraInfo
@@ -40,6 +51,16 @@
public static final String portletConfigVariableName = "portletConfig";
public static final String renderRequestVariableName = "renderRequest";
public static final String renderResponseVariableName = "renderResponse";
+ public static final String actionRequestVariableName = "actionRequest";
+ public static final String actionResponseVariableName = "actionResponse";
+ public static final String resourceRequestVariableName = "resourceRequest";
+ public static final String resourceResponseVariableName =
"resourceResponse";
+ public static final String eventRequestVariableName = "eventRequest";
+ public static final String eventResponseVariableName = "eventResponse";
+ public static final String portletSessionVariableName = "portletSession";
+ public static final String portletSessionScopeVariableName =
"portletSessionScope";
+ public static final String portletPreferencesVariableName =
"portletPreferences";
+ public static final String portletPreferencesValuesVariableName =
"portletPreferencesValues";
public VariableInfo[] getVariableInfo(TagData data)
{
@@ -49,7 +70,30 @@
RenderRequest.class.getName(), true, VariableInfo.AT_END);
VariableInfo info3 = new VariableInfo(renderResponseVariableName,
RenderResponse.class.getName(), true, VariableInfo.AT_END);
- VariableInfo[] info = {info1, info2, info3};
+ VariableInfo info4 = new VariableInfo(actionRequestVariableName,
+ ActionRequest.class.getName(), true, VariableInfo.AT_END);
+ VariableInfo info5 = new VariableInfo(actionResponseVariableName,
+ ActionResponse.class.getName(), true, VariableInfo.AT_END);
+ VariableInfo info6 = new VariableInfo(resourceRequestVariableName,
+ ResourceRequest.class.getName(), true, VariableInfo.AT_END);
+ VariableInfo info7 = new VariableInfo(resourceResponseVariableName,
+ ResourceResponse.class.getName(), true, VariableInfo.AT_END);
+ VariableInfo info8 = new VariableInfo(eventRequestVariableName,
+ EventRequest.class.getName(), true, VariableInfo.AT_END);
+ VariableInfo info9 = new VariableInfo(eventResponseVariableName,
+ EventResponse.class.getName(), true, VariableInfo.AT_END);
+ VariableInfo info10 = new VariableInfo(portletSessionVariableName,
+ PortletSession.class.getName(), true, VariableInfo.AT_END);
+ VariableInfo info11 = new VariableInfo(portletSessionScopeVariableName,
+ Map.class.getName(), true, VariableInfo.AT_END);
+ VariableInfo info12 = new VariableInfo(portletPreferencesVariableName,
+ PortletPreferences.class.getName(), true, VariableInfo.AT_END);
+ VariableInfo info13 = new VariableInfo(portletPreferencesValuesVariableName,
+ Map.class.getName(), true, VariableInfo.AT_END);
+
+
+
+ VariableInfo[] info = {info1, info2, info3, info4, info5, info6, info7, info8,
info9, info10, info11, info12, info13};
return info;
}
}
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/GenerateURLTag.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/GenerateURLTag.java 2008-02-04
12:27:00 UTC (rev 9742)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/GenerateURLTag.java 2008-02-04
13:53:04 UTC (rev 9743)
@@ -24,6 +24,7 @@
import org.jboss.portal.portlet.impl.jsr168.api.RenderRequestImpl;
import org.jboss.portal.portlet.impl.jsr168.api.PortletURLImpl;
+import org.jboss.portal.portlet.impl.jsr168.api.PortletRequestImpl;
import javax.portlet.PortletMode;
import javax.portlet.PortletModeException;
@@ -31,6 +32,7 @@
import javax.portlet.PortletURL;
import javax.portlet.WindowState;
import javax.portlet.WindowStateException;
+import javax.portlet.RenderRequest;
import javax.servlet.jsp.JspException;
import java.util.ArrayList;
import java.util.HashMap;
@@ -186,7 +188,7 @@
*/
private PortletURL getBasePortletEnvironmentAndURL()
{
- RenderRequestImpl preq = getRequest();
+ PortletRequestImpl preq = (PortletRequestImpl)getPortletRequest();
// Create the URL
if ("action".equals(getTypeValue()))
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/NamespaceTag.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/NamespaceTag.java 2008-02-04
12:27:00 UTC (rev 9742)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/NamespaceTag.java 2008-02-04
13:53:04 UTC (rev 9743)
@@ -23,6 +23,7 @@
package org.jboss.portal.portlet.impl.jsr168.taglib;
import javax.portlet.RenderResponse;
+import javax.portlet.PortletResponse;
import javax.servlet.jsp.JspException;
import java.io.IOException;
@@ -54,7 +55,7 @@
{
try
{
- RenderResponse resp = getResponse();
+ PortletResponse resp = getPortletResponse();
String namespace = resp.getNamespace();
pageContext.getOut().print(namespace);
}
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/PortletTag.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/PortletTag.java 2008-02-04
12:27:00 UTC (rev 9742)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/taglib/PortletTag.java 2008-02-04
13:53:04 UTC (rev 9743)
@@ -28,9 +28,23 @@
import javax.portlet.PortletConfig;
import javax.portlet.RenderResponse;
+import javax.portlet.PortletRequest;
+import javax.portlet.PortletResponse;
+import javax.portlet.RenderRequest;
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.EventRequest;
+import javax.portlet.EventResponse;
+import javax.portlet.ResourceRequest;
+import javax.portlet.ResourceResponse;
+import javax.portlet.PortletSession;
+import javax.portlet.PortletPreferences;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.tagext.TagSupport;
+import java.util.Map;
+import java.util.Collections;
+import java.util.HashMap;
/**
* Superclass of the portlet tags for the JSR 168 Portlet specification.
@@ -38,6 +52,7 @@
* Provides hooks into the portlet environment
*
* @author <a href="mailto:sgwood@ix.netcom.com">Sherman Wood</a>
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
* @version $Revision: 5448 $
*/
public class PortletTag extends TagSupport
@@ -52,16 +67,16 @@
return invocation.getDispatchedRequest();
}
- protected RenderRequestImpl getRequest()
+ protected PortletRequest getPortletRequest()
{
HttpServletRequest dreq = getDispatchedRequest();
- return (RenderRequestImpl)dreq.getAttribute("javax.portlet.request");
+ return (PortletRequest)dreq.getAttribute("javax.portlet.request");
}
- protected RenderResponse getResponse()
+ protected PortletResponse getPortletResponse()
{
HttpServletRequest dreq = getDispatchedRequest();
- return (RenderResponse)dreq.getAttribute("javax.portlet.response");
+ return (PortletResponse)dreq.getAttribute("javax.portlet.response");
}
protected PortletConfig getConfig()
@@ -70,6 +85,128 @@
return (PortletConfig)dreq.getAttribute("javax.portlet.config");
}
+ protected RenderRequest getRenderRequest()
+ {
+ if (getPortletRequest() instanceof RenderRequest)
+ {
+ return (RenderRequest)getPortletRequest();
+ }
+ else
+ {
+ return null;
+ }
+ }
+ protected RenderResponse getRenderResponse()
+ {
+ if (getPortletResponse() instanceof RenderResponse)
+ {
+ return (RenderResponse)getPortletResponse();
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ protected ActionRequest getActionRequest()
+ {
+ if (getPortletRequest() instanceof ActionRequest)
+ {
+ return (ActionRequest)getPortletRequest();
+ }
+ else
+ {
+ return null;
+ }
+ }
+ protected ActionResponse getActionResponse()
+ {
+ if (getPortletResponse() instanceof ActionResponse)
+ {
+ return (ActionResponse)getPortletResponse();
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ protected EventRequest getEventRequest()
+ {
+ if (getPortletRequest() instanceof EventRequest)
+ {
+ return (EventRequest)getPortletRequest();
+ }
+ else
+ {
+ return null;
+ }
+ }
+ protected EventResponse getEventResponse()
+ {
+ if (getPortletResponse() instanceof EventResponse)
+ {
+ return (EventResponse)getPortletResponse();
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ protected ResourceRequest getResourceRequest()
+ {
+ if (getPortletRequest() instanceof ResourceRequest)
+ {
+ return (ResourceRequest)getPortletRequest();
+ }
+ else
+ {
+ return null;
+ }
+ }
+ protected ResourceResponse getResourceResponse()
+ {
+ if (getPortletResponse() instanceof ResourceResponse)
+ {
+ return (ResourceResponse)getPortletResponse();
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+
+
+
+ protected PortletSession getSession()
+ {
+ return getPortletRequest().getPortletSession(false);
+ }
+
+ protected Map<String, Object> getPortletSessionScope()
+ {
+ if (getSession() != null)
+ {
+ return getSession().getAttributeMap();
+ }
+ else
+ {
+ return new HashMap<String, Object>();
+ }
+ }
+
+ protected PortletPreferences getPortletPreferences()
+ {
+ return getPortletRequest().getPreferences();
+ }
+
+ protected Map<String, String[]> getPortletPreferenceValues()
+ {
+ return getPortletPreferences().getMap();
+ }
+
/**
* Set up the environment for accessing the portlat environment
*
Added:
modules/portlet/trunk/portlet/src/main/resources/org/jboss/portal/portlet/portlet_2_0.tld
===================================================================
---
modules/portlet/trunk/portlet/src/main/resources/org/jboss/portal/portlet/portlet_2_0.tld
(rev 0)
+++
modules/portlet/trunk/portlet/src/main/resources/org/jboss/portal/portlet/portlet_2_0.tld 2008-02-04
13:53:04 UTC (rev 9743)
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+ <taglib
xmlns="http://java.sun.com/xml/ns/j2ee"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
+ version="2.0">
+
+ <description>Portlet 2.0 Tag Library</description>
+ <display-name>Portlet 2.0 Tags</display-name>
+ <tlib-version>2.0</tlib-version>
+ <short-name>portlet</short-name>
+ <
uri>http://java.sun.com/portlet_2_0</uri>
+
+ <tag>
+
+ <name>param</name>
+
<tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.URLParameterTag</tag-class>
+ <body-content>empty</body-content>
+
+ <attribute>
+ <name>name</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+
+ </attribute>
+
+ </tag>
+ <tag>
+
+ <name>renderURL</name>
+
<tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.RenderURLTag</tag-class>
+
<tei-class>org.jboss.portal.portlet.impl.jsr168.taglib.GenerateURLTagTEI</tei-class>
+ <body-content>JSP</body-content>
+
+ <attribute>
+ <name>portletMode</name>
+ <rtexprvalue>true</rtexprvalue>
+
+ </attribute>
+ <attribute>
+ <name>secure</name>
+ <rtexprvalue>true</rtexprvalue>
+
+ </attribute>
+ <attribute>
+ <name>var</name>
+ <rtexprvalue>true</rtexprvalue>
+
+ </attribute>
+ <attribute>
+ <name>windowState</name>
+ <rtexprvalue>true</rtexprvalue>
+
+ </attribute>
+
+ </tag>
+ <tag>
+
+ <name>defineObjects</name>
+
<tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.DefineObjectsTag</tag-class>
+
<tei-class>org.jboss.portal.portlet.impl.jsr168.taglib.DefineObjectsTagTEI</tei-class>
+ <body-content>empty</body-content>
+
+ </tag>
+ <tag>
+
+ <name>actionURL</name>
+
<tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.ActionURLTag</tag-class>
+
<tei-class>org.jboss.portal.portlet.impl.jsr168.taglib.GenerateURLTagTEI</tei-class>
+ <body-content>JSP</body-content>
+
+ <attribute>
+ <name>portletMode</name>
+ <rtexprvalue>true</rtexprvalue>
+
+ </attribute>
+ <attribute>
+ <name>secure</name>
+ <rtexprvalue>true</rtexprvalue>
+
+ </attribute>
+ <attribute>
+ <name>var</name>
+ <rtexprvalue>true</rtexprvalue>
+
+ </attribute>
+ <attribute>
+ <name>windowState</name>
+ <rtexprvalue>true</rtexprvalue>
+
+ </attribute>
+
+ </tag>
+ <tag>
+
+ <name>namespace</name>
+
<tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.NamespaceTag</tag-class>
+ <body-content>empty</body-content>
+
+ </tag>
+
+</taglib>
Added:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/taglib/DefineObjectsTestCase.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/taglib/DefineObjectsTestCase.java
(rev 0)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/taglib/DefineObjectsTestCase.java 2008-02-04
13:53:04 UTC (rev 9743)
@@ -0,0 +1,148 @@
+/*
+* 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.test.portlet.jsr286.tck.taglib;
+
+import org.jboss.portal.unit.PortletTestCase;
+import org.jboss.portal.unit.PortletTestContext;
+import org.jboss.portal.unit.Assertion;
+import org.jboss.portal.unit.annotations.TestCase;
+import org.jboss.portal.unit.base.AbstractUniversalTestPortlet;
+import org.jboss.portal.unit.actions.PortletRenderTestAction;
+import org.jboss.portal.unit.actions.PortletActionTestAction;
+import org.jboss.portal.unit.actions.PortletEventTestAction;
+import org.jboss.portal.unit.actions.PortletResourceTestAction;
+import org.jboss.portal.test.portlet.framework.UTP1;
+import org.jboss.unit.driver.DriverResponse;
+import org.jboss.unit.driver.response.EndTestResponse;
+import org.jboss.unit.remote.driver.handler.http.response.InvokeGetResponse;
+import static org.jboss.unit.api.Assert.*;
+
+import javax.portlet.Portlet;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.portlet.PortletException;
+import javax.portlet.PortletRequestDispatcher;
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.EventRequest;
+import javax.portlet.EventResponse;
+import javax.portlet.ResourceRequest;
+import javax.portlet.ResourceResponse;
+import java.io.IOException;
+import java.io.Writer;
+
+/**
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
+ * @version : 0.1 $
+ */
+@TestCase({
+ Assertion.JSR286_113
+ })
+public class DefineObjectsTestCase
+{
+
+ //TODO: doesn't test include from action/event - the
actionRequest/actionResponse/eventRequest/eventResponse objects
+
+ private String startTag;
+ private String endTag;
+
+ public DefineObjectsTestCase(PortletTestCase seq)
+ {
+ seq.bindAction(0, UTP1.RENDER_JOIN_POINT, new PortletRenderTestAction()
+ {
+ protected DriverResponse run(Portlet portlet, RenderRequest request,
RenderResponse response, PortletTestContext context) throws IOException, PortletException
+ {
+ response.setContentType("text/html");
+ PortletRequestDispatcher dispatcher =
((AbstractUniversalTestPortlet)portlet).getPortletContext().getRequestDispatcher("/taglib.jsp");
+
+ startTag = "<div id=" + response.getNamespace() +
">";
+ endTag = "</div>";
+
+ Writer writer = response.getWriter();
+
+ writer.write(startTag);
+ dispatcher.include(request, response);
+ writer.write(endTag);
+
+
+ return new InvokeGetResponse(response.createRenderURL().toString());
+ }
+ });
+
+
+
+ seq.bindAction(1, UTP1.RENDER_JOIN_POINT, new PortletRenderTestAction()
+ {
+ protected DriverResponse run(Portlet portlet, RenderRequest request,
RenderResponse response, PortletTestContext context) throws IOException, PortletException
+ {
+ response.setContentType("text/html");
+
+ String prevResponse = new String(context.getResponseBody());
+
+ String portletResp = prevResponse.substring(prevResponse.indexOf(startTag) +
startTag.length(), prevResponse.indexOf(endTag));
+
+
assertEquals("jspDispatch,renderRequest,renderResponse,portletConfig,portletSession,portletSessionScope,"
+
+ "portletPreferences,portletPreferencesValues",
portletResp.trim());
+
+ return new InvokeGetResponse(response.createResourceURL().toString());
+ }
+ });
+
+ seq.bindAction(2, UTP1.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
+ {
+ protected DriverResponse run(Portlet portlet, ResourceRequest request,
ResourceResponse response, PortletTestContext context) throws IOException,
PortletException
+ {
+ response.setContentType("text/html");
+ PortletRequestDispatcher dispatcher =
((AbstractUniversalTestPortlet)portlet).getPortletContext().getRequestDispatcher("/taglib.jsp");
+
+ startTag = "<div id=" + response.getNamespace() +
">";
+ endTag = "</div>";
+
+ Writer writer = response.getWriter();
+
+ writer.write(startTag);
+ dispatcher.include(request, response);
+ writer.write(endTag);
+
+ return new InvokeGetResponse(response.createRenderURL().toString());
+ }
+ });
+
+ seq.bindAction(3, UTP1.RENDER_JOIN_POINT, new PortletRenderTestAction()
+ {
+ protected DriverResponse run(Portlet portlet, RenderRequest request,
RenderResponse response, PortletTestContext context) throws IOException, PortletException
+ {
+ response.setContentType("text/html");
+
+ String prevResponse = new String(context.getResponseBody());
+
+ String portletResp = prevResponse.substring(prevResponse.indexOf(startTag) +
startTag.length(), prevResponse.indexOf(endTag));
+
+
assertEquals("jspDispatch,resourceRequest,resourceResponse,portletConfig,portletSession,portletSessionScope,"
+
+ "portletPreferences,portletPreferencesValues",
portletResp.trim());
+
+ return new EndTestResponse();
+ }
+ });
+ }
+}
Modified: modules/portlet/trunk/test/src/test/build.xml
===================================================================
--- modules/portlet/trunk/test/src/test/build.xml 2008-02-04 12:27:00 UTC (rev 9742)
+++ modules/portlet/trunk/test/src/test/build.xml 2008-02-04 13:53:04 UTC (rev 9743)
@@ -304,6 +304,10 @@
src="${dependency.portal-portlet.jar}"
includes="org/jboss/portal/portlet/portlet.tld"
fullpath="META-INF/portlet.tld"/>
+ <zipfileset
+ src="${dependency.portal-portlet.jar}"
+ includes="org/jboss/portal/portlet/portlet_2_0.tld"
+ fullpath="META-INF/portlet_2_0.tld"/>
</jar>
<!--<jar jarfile="${test.temp.lib}/test-info.jar">-->
@@ -365,6 +369,7 @@
<package-jsr286-tck-test test="resourceserving"/>
<package-jsr286-tck-test test="portleturl"/>
<package-jsr286-tck-test test="portletfilter"/>
+ <package-jsr286-tck-test test="taglib"/>
<package-jsr286-api-test test="event"/>
<package-jsr286-ext-test test="portletrequests"/>
<package-jsr286-ext-test test="portletfilter"/>
@@ -607,7 +612,7 @@
<configuration>
<property name="cargo.servlet.port" value="8080"/>
<property name="cargo.logging" value="high"/>
- <!--<property name="cargo.jvmargs" value="-Xdebug
-Xnoagent -Djava.compiler=NONE
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000"/>-->
+ <!--<property name="cargo.jvmargs" value="-Xdebug
-Xnoagent -Djava.compiler=NONE
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9000"/>-->
<deployable type="war"
file="${test.temp.lib}/manager.war"/>
<deployable type="war"
file="${test.temp.lib}/tomcat-6.0/portlet-test.war"/>
</configuration>
Added:
modules/portlet/trunk/test/src/test/resources/jsr286/tck/taglib-war/WEB-INF/portlet.xml
===================================================================
---
modules/portlet/trunk/test/src/test/resources/jsr286/tck/taglib-war/WEB-INF/portlet.xml
(rev 0)
+++
modules/portlet/trunk/test/src/test/resources/jsr286/tck/taglib-war/WEB-INF/portlet.xml 2008-02-04
13:53:04 UTC (rev 9743)
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ 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. ~
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<portlet-app
xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2...
http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
+ version="2.0">
+
+ <portlet>
+ <portlet-name>UniversalTestPortletA</portlet-name>
+
<portlet-class>org.jboss.portal.test.portlet.framework.UTP1</portlet-class>
+ <supports>
+ <mime-type>text/html</mime-type>
+ </supports>
+ </portlet>
+
+</portlet-app>
Added:
modules/portlet/trunk/test/src/test/resources/jsr286/tck/taglib-war/WEB-INF/web.xml
===================================================================
--- modules/portlet/trunk/test/src/test/resources/jsr286/tck/taglib-war/WEB-INF/web.xml
(rev 0)
+++
modules/portlet/trunk/test/src/test/resources/jsr286/tck/taglib-war/WEB-INF/web.xml 2008-02-04
13:53:04 UTC (rev 9743)
@@ -0,0 +1,32 @@
+<?xml version="1.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. ~
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<!DOCTYPE web-app PUBLIC
+ "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd">
+<web-app>
+ <listener>
+
<listener-class>org.jboss.portal.unit.PortletTestSuite</listener-class>
+ </listener>
+</web-app>
Added: modules/portlet/trunk/test/src/test/resources/jsr286/tck/taglib-war/taglib.jsp
===================================================================
--- modules/portlet/trunk/test/src/test/resources/jsr286/tck/taglib-war/taglib.jsp
(rev 0)
+++
modules/portlet/trunk/test/src/test/resources/jsr286/tck/taglib-war/taglib.jsp 2008-02-04
13:53:04 UTC (rev 9743)
@@ -0,0 +1,73 @@
+<%@ page import="org.jboss.unit.api.Assert" %>
+<%@ page import="javax.portlet.RenderRequest" %>
+<%@ page import="javax.portlet.RenderResponse" %>
+<%@ page import="javax.portlet.ActionRequest" %>
+<%@ page import="javax.portlet.ActionResponse" %>
+<%@ page import="javax.portlet.EventRequest" %>
+<%@ page import="javax.portlet.EventResponse" %>
+<%@ page import="javax.portlet.ResourceRequest" %>
+<%@ page import="javax.portlet.ResourceResponse" %>
+<%@ page import="javax.portlet.PortletConfig" %>
+<%@ page import="javax.portlet.PortletSession" %>
+<%@ page import="java.util.Map" %>
+<%@ page import="javax.portlet.PortletPreferences" %>
+<%@ page language="java" %>
+<%@ taglib
uri="http://java.sun.com/portlet_2_0" prefix="portlet"
%>
+<portlet:defineObjects/>
+<%
+ out.print("jspDispatch");
+
+ if (renderRequest != null && renderRequest instanceof RenderRequest)
+ {
+ out.print(",renderRequest");
+ }
+ if (renderResponse != null && renderResponse instanceof RenderResponse)
+ {
+ out.print(",renderResponse");
+ }
+ if (actionRequest != null && actionRequest instanceof ActionRequest)
+ {
+ out.print(",actionRequest");
+ }
+ if (actionResponse != null && actionResponse instanceof ActionResponse)
+ {
+ out.print(",actionResponse");
+ }
+ if (eventRequest != null && eventRequest instanceof EventRequest)
+ {
+ out.print(",eventRequest");
+ }
+ if (eventResponse != null && eventResponse instanceof EventResponse)
+ {
+ out.print(",eventResponse");
+ }
+ if (resourceRequest != null && resourceRequest instanceof ResourceRequest)
+ {
+ out.print(",resourceRequest");
+ }
+ if (resourceResponse != null && resourceResponse instanceof ResourceResponse)
+ {
+ out.print(",resourceResponse");
+ }
+ if (portletConfig != null && portletConfig instanceof PortletConfig)
+ {
+ out.print(",portletConfig");
+ }
+ if (portletSession != null && portletSession instanceof PortletSession)
+ {
+ out.print(",portletSession");
+ }
+ if (portletSessionScope != null && portletSessionScope instanceof Map)
+ {
+ out.print(",portletSessionScope");
+ }
+ if (portletPreferences != null && portletPreferences instanceof
PortletPreferences)
+ {
+ out.print(",portletPreferences");
+ }
+ if (portletPreferencesValues != null && portletPreferencesValues instanceof
Map)
+ {
+ out.print(",portletPreferencesValues");
+ }
+
+%>
\ No newline at end of file
Modified: modules/portlet/trunk/test/src/test/resources/test/remote-jboss-unit.xml
===================================================================
--- modules/portlet/trunk/test/src/test/resources/test/remote-jboss-unit.xml 2008-02-04
12:27:00 UTC (rev 9742)
+++ modules/portlet/trunk/test/src/test/resources/test/remote-jboss-unit.xml 2008-02-04
13:53:04 UTC (rev 9743)
@@ -187,6 +187,10 @@
<class
name="org.jboss.unit.remote.driver.RemoteTestDriverClient"/>
<property name="archiveId"
value="test-jsr286-tck-portletfilter.war"/>
</generic>
+ <generic>
+ <class
name="org.jboss.unit.remote.driver.RemoteTestDriverClient"/>
+ <property name="archiveId"
value="test-jsr286-tck-taglib.war"/>
+ </generic>
<!--Spec API Assertions tests-->
<generic>