JBoss Portal SVN: r8121 - branches/JBoss_Portal_Branch_2_6/cms.
by portal-commits@lists.jboss.org
Author: bdaw
Date: 2007-08-31 06:35:31 -0400 (Fri, 31 Aug 2007)
New Revision: 8121
Modified:
branches/JBoss_Portal_Branch_2_6/cms/build.xml
Log:
fix to make cms tests pass
Modified: branches/JBoss_Portal_Branch_2_6/cms/build.xml
===================================================================
--- branches/JBoss_Portal_Branch_2_6/cms/build.xml 2007-08-31 09:57:29 UTC (rev 8120)
+++ branches/JBoss_Portal_Branch_2_6/cms/build.xml 2007-08-31 10:35:31 UTC (rev 8121)
@@ -16,7 +16,7 @@
~ 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 ~
+ ~ You should have received a copy of the GNU Lesser General ~
~ 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. ~
@@ -479,6 +479,7 @@
<path refid="jboss.portal-search.classpath"/>
<path refid="jboss.portal-server.classpath"/>
<path refid="jboss.portal-jems.classpath"/>
+ <path refid="jboss.portal-core.classpath"/>
<pathelement location="${build.lib}/portal-cms-lib.jar"/>
<pathelement location="${build.resources}/portal-cms-sar"/>
<pathelement location="${build.resources}/test"/>
16 years, 8 months
JBoss Portal SVN: r8120 - branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/deployment/jboss.
by portal-commits@lists.jboss.org
Author: thomas.heute(a)jboss.com
Date: 2007-08-31 05:57:29 -0400 (Fri, 31 Aug 2007)
New Revision: 8120
Modified:
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/deployment/jboss/PortletAppDeployment.java
Log:
JBPORTAL-1666: When redploying, removed preferences in portlet-instances.xml are not deleted
Modified: branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/deployment/jboss/PortletAppDeployment.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/deployment/jboss/PortletAppDeployment.java 2007-08-31 00:48:25 UTC (rev 8119)
+++ branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/deployment/jboss/PortletAppDeployment.java 2007-08-31 09:57:29 UTC (rev 8120)
@@ -42,6 +42,7 @@
import org.jboss.portal.portlet.PortletInvokerException;
import org.jboss.portal.portlet.impl.jsr168.metadata.PreferenceMetaData;
import org.jboss.portal.portlet.state.PropertyChange;
+import org.jboss.portal.portlet.state.PropertyMap;
import org.jboss.portal.security.RoleSecurityBinding;
import org.jboss.portal.security.SecurityConstants;
import org.jboss.portal.security.metadata.SecurityConstraintsMetaData;
@@ -396,22 +397,39 @@
private void configureInstance(Instance instance, InstanceMetaData metaData) throws PortletInvokerException, SecurityConfigurationException
{
+ List changes = new ArrayList();
+
+ // Reset all preferences that are not overridden
PreferencesMetaData preferencesMetaData = metaData.getPreferences();
-
+ PropertyMap propertyMap = instance.getProperties();
+ if (propertyMap != null && propertyMap.size() > 0)
+ {
+ for (Iterator i = propertyMap.keySet().iterator(); i.hasNext();)
+ {
+ String key = (String)i.next();
+ if (preferencesMetaData == null || preferencesMetaData.getPreference(key) == null)
+ {
+ changes.add(PropertyChange.newReset(key));
+ }
+ }
+ }
+
// Configure preferences only if needed
if (preferencesMetaData != null && preferencesMetaData.size() > 0)
{
- PropertyChange[] changes = new PropertyChange[preferencesMetaData.size()];
- int idx = 0;
for (Iterator i = preferencesMetaData.iterator(); i.hasNext();)
{
PreferenceMetaData preference = (PreferenceMetaData)i.next();
Value value = new StringValue(preference.getValues());
- changes[idx++] = PropertyChange.newUpdate(preference.getName(), value);
+ changes.add(PropertyChange.newUpdate(preference.getName(), value));
}
- instance.setProperties(changes);
}
+ if (changes.size() > 0)
+ {
+ instance.setProperties((PropertyChange[])changes.toArray(new PropertyChange[changes.size()]));
+ }
+
// Configure security
SecurityConstraintsMetaData securityConstraints = metaData.getSecurityConstraints();
if (securityConstraints == null)
16 years, 8 months
JBoss Portal SVN: r8119 - in trunk/core-admin/src: main/org/jboss/portal/core/admin/ui/actions and 1 other directories.
by portal-commits@lists.jboss.org
Author: chris.laprun(a)jboss.com
Date: 2007-08-30 20:48:25 -0400 (Thu, 30 Aug 2007)
New Revision: 8119
Modified:
trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/InstanceManagerBean.java
trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/CreateInstanceAction.java
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/instances.xhtml
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/portlets.xhtml
Log:
- JBPORTAL-1665: Fixed highlighting of selected range.
- JBPORTAL-1588: Now properly shows the newly created instance when re-directing to instance list.
Modified: trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/InstanceManagerBean.java
===================================================================
--- trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/InstanceManagerBean.java 2007-08-31 00:46:04 UTC (rev 8118)
+++ trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/InstanceManagerBean.java 2007-08-31 00:48:25 UTC (rev 8119)
@@ -22,23 +22,6 @@
******************************************************************************/
package org.jboss.portal.core.admin.ui;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.faces.application.FacesMessage;
-import javax.faces.context.ExternalContext;
-import javax.faces.context.FacesContext;
-import javax.faces.event.ActionEvent;
-import javax.faces.model.SelectItem;
-import javax.portlet.PortletMode;
-
import org.jboss.portal.Mode;
import org.jboss.portal.common.value.Value;
import org.jboss.portal.core.model.instance.Instance;
@@ -56,6 +39,21 @@
import org.jboss.portal.portlet.state.PropertyMap;
import org.jboss.portal.security.spi.provider.DomainConfigurator;
+import javax.faces.application.FacesMessage;
+import javax.faces.context.ExternalContext;
+import javax.faces.context.FacesContext;
+import javax.faces.event.ActionEvent;
+import javax.faces.model.SelectItem;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @author <a href="mailto:boleslaw dot dawidowicz at jboss.org">Boleslaw Dawidowicz</a>
@@ -63,7 +61,7 @@
*/
public class InstanceManagerBean
{
-
+
/** . */
private final Mode INTERNAL_EDIT_CONTENT = Mode.create("edit_content");
@@ -181,6 +179,12 @@
public void setSelectedId(String selectedId)
{
this.selectedId = selectedId;
+ int index = getInstances().indexOf(getSelectedInstance());
+ if (index != -1)
+ {
+ selectedRow = new Integer(index);
+ selectedFrom = (index / paginationSize) * paginationSize;
+ }
}
public String getSelectedPlugin()
@@ -219,7 +223,7 @@
PreferencesInfo prefsInfo = selectedInstance.getPortlet().getInfo().getPreferences();
Set keys = prefsInfo.getKeys();
PropertyMap props = selectedInstance.getProperties();
- for (Iterator i = keys.iterator();i.hasNext();)
+ for (Iterator i = keys.iterator(); i.hasNext();)
{
String key = (String)i.next();
PreferenceInfo prefInfo = prefsInfo.getPreference(key);
@@ -249,7 +253,7 @@
// Remove content editors
List tmpInstances = new ArrayList();
nextInstance:
- for (Iterator i = instanceContainer.getDefinitions().iterator();i.hasNext();)
+ for (Iterator i = instanceContainer.getDefinitions().iterator(); i.hasNext();)
{
Instance instance = (Instance)i.next();
@@ -259,7 +263,7 @@
// Filter portlets that are editors
Portlet portlet = instance.getPortlet();
PortletInfo info = portlet.getInfo();
- for (Iterator j = info.getCapabilities().getAllModes().iterator();j.hasNext();)
+ for (Iterator j = info.getCapabilities().getAllModes().iterator(); j.hasNext();)
{
ModeInfo modeInfo = (ModeInfo)j.next();
if (modeInfo.getMode().equals(INTERNAL_EDIT_CONTENT))
@@ -281,7 +285,6 @@
return instances;
}
- /** Return an array of all instances known in this container. */
public Collection getSelectedInstances()
{
List list = getInstances();
@@ -293,24 +296,26 @@
return list.subList(selectedFrom, to);
}
- /** Return an array of all instances known in this container. */
public Map getSelectedInstancesPrefs()
{
Map map = new HashMap();
Collection instances = getSelectedInstances();
Iterator it = instances.iterator();
-
+
while (it.hasNext())
{
InstanceDefinition instanceDef = (InstanceDefinition)it.next();
- try {
+ try
+ {
map.put(instanceDef.getId(), instanceDef.getProperties());
- } catch (PortletInvokerException e) {
+ }
+ catch (PortletInvokerException e)
+ {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
-
+
return map;
}
@@ -357,7 +362,7 @@
selectInstance();
}
-
+
public void deleteInstance(ActionEvent ae)
{
try
@@ -389,7 +394,7 @@
{
List tmp = new ArrayList();
List entries = selectedPrefs.getEntries();
- for (int i = 0;i < entries.size();i++)
+ for (int i = 0; i < entries.size(); i++)
{
PreferenceBean entry = (PreferenceBean)entries.get(i);
if (entry.isStale())
@@ -478,7 +483,7 @@
public SelectItem[] getAvailableActions()
{
- return new SelectItem[]{ new SelectItem("view", "View"), new SelectItem("admin", "Admin")};
+ return new SelectItem[]{new SelectItem("view", "View"), new SelectItem("admin", "Admin")};
}
}
}
Modified: trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/CreateInstanceAction.java
===================================================================
--- trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/CreateInstanceAction.java 2007-08-31 00:46:04 UTC (rev 8118)
+++ trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/CreateInstanceAction.java 2007-08-31 00:48:25 UTC (rev 8119)
@@ -22,10 +22,10 @@
******************************************************************************/
package org.jboss.portal.core.admin.ui.actions;
+import org.jboss.portal.core.admin.ui.InstanceManagerBean;
+import org.jboss.portal.core.admin.ui.PortletManagerBean;
import org.jboss.portal.core.model.instance.Instance;
import org.jboss.portal.core.model.instance.InstanceContainer;
-import org.jboss.portal.core.admin.ui.InstanceManagerBean;
-import org.jboss.portal.core.admin.ui.PortletManagerBean;
import org.jboss.portal.portlet.Portlet;
import org.jboss.portal.security.RoleSecurityBinding;
import org.jboss.portal.security.SecurityConstants;
@@ -143,6 +143,7 @@
configurator.setSecurityBindings(instance.getId(), constraints);
// Configure the instance manager with the instance already looked up
+ instanceMgr.refresh();
instanceMgr.setSelectedId(instanceId);
instanceMgr.setSelectedPlugin("info");
Modified: trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/instances.xhtml
===================================================================
--- trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/instances.xhtml 2007-08-31 00:46:04 UTC (rev 8118)
+++ trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/instances.xhtml 2007-08-31 00:48:25 UTC (rev 8119)
@@ -8,105 +8,106 @@
<ui:composition template="instancesTemplate.xhtml">
- <ui:define name="content">
+<ui:define name="content">
- <h:form>
+ <h:form>
- <table id="instancesTable2" width="100%">
- <thead class="portlet-section-header">
- <tr>
- <th>Id</th>
- <th>Actions</th>
- </tr>
- </thead>
- <tbody>
- <c:forEach items="#{instancemgr.selectedInstances}" var="instance" varStatus="status">
- <tr
- class="#{instance.id == instancemgr.selectedId ? 'portlet-section-selected' : (status.index % 2 == 0 ? 'portlet-section-body' : 'portlet-section-alternate')}">
- <td>
- <h:commandLink action="#{instancemgr.selectInstance}">
- <h:outputText value="#{instance.id}"/>
- <f:param name="id" value="#{instance.id}"/>
- <f:param name="plugin" value="info"/>
- </h:commandLink>
- </td>
- <td><h:commandLink action="#{instancemgr.selectInstance}">
- <h:outputText value="Security"/>
+ <table id="instancesTable2" width="100%">
+ <thead class="portlet-section-header">
+ <tr>
+ <th>Id</th>
+ <th>Actions</th>
+ </tr>
+ </thead>
+ <tbody>
+ <c:forEach items="#{instancemgr.selectedInstances}" var="instance" varStatus="status">
+ <tr
+ class="#{instance.id == instancemgr.selectedId ? 'portlet-section-selected' : (status.index % 2 == 0 ? 'portlet-section-body' : 'portlet-section-alternate')}">
+ <td>
+ <h:commandLink action="#{instancemgr.selectInstance}">
+ <h:outputText value="#{instance.id}"/>
<f:param name="id" value="#{instance.id}"/>
- <f:param name="plugin" value="security"/>
- </h:commandLink> | <h:panelGroup
- rendered="#{! empty(instancemgr.selectedInstancesPrefs[instance.id])}"><h:commandLink
- action="#{instancemgr.selectInstance}">
- <h:outputText value="Preferences"/>
- <f:param name="id" value="#{instance.id}"/>
- <f:param name="plugin" value="preferences"/>
- </h:commandLink> | </h:panelGroup><h:commandLink action="confirmDeleteInstance"
- actionListener="#{instancemgr.selectInstance}">
- <h:outputText value="Delete"/>
- <f:param name="id" value="#{instance.id}"/>
+ <f:param name="plugin" value="info"/>
</h:commandLink>
- </td>
- </tr>
- </c:forEach>
- </tbody>
- </table>
- <ul class="pagination">
- <c:if test="#{instancemgr.instanceCount > instancemgr.paginationSize}">
- <c:forEach begin="0" end="#{(instancemgr.instanceCount - 1)/ instancemgr.paginationSize}" step="1"
- var="index">
- <li class="#{index == instancemgr.selectedFrom ? 'selected' : ''}">
- <h:commandLink action="#{instancemgr.selectFrom}"><f:param name="from"
- value="#{index * instancemgr.paginationSize}"/><h:outputText
- value="#{index * instancemgr.paginationSize}"/></h:commandLink>
- </li>
- </c:forEach>
- </c:if>
- </ul>
+ </td>
+ <td><h:commandLink action="#{instancemgr.selectInstance}">
+ <h:outputText value="Security"/>
+ <f:param name="id" value="#{instance.id}"/>
+ <f:param name="plugin" value="security"/>
+ </h:commandLink> | <h:panelGroup
+ rendered="#{! empty(instancemgr.selectedInstancesPrefs[instance.id])}"><h:commandLink
+ action="#{instancemgr.selectInstance}">
+ <h:outputText value="Preferences"/>
+ <f:param name="id" value="#{instance.id}"/>
+ <f:param name="plugin" value="preferences"/>
+ </h:commandLink> | </h:panelGroup><h:commandLink action="confirmDeleteInstance"
+ actionListener="#{instancemgr.selectInstance}">
+ <h:outputText value="Delete"/>
+ <f:param name="id" value="#{instance.id}"/>
+ </h:commandLink>
+ </td>
+ </tr>
+ </c:forEach>
+ </tbody>
+ </table>
+ <ul class="pagination">
+ <c:if test="#{instancemgr.instanceCount > instancemgr.paginationSize}">
+ <c:forEach begin="0" end="#{(instancemgr.instanceCount - 1)/ instancemgr.paginationSize}" step="1"
+ var="index">
+ <li class="#{index == (instancemgr.selectedFrom / instancemgr.paginationSize)? 'selected' : ''}">
+ <h:commandLink action="#{instancemgr.selectFrom}">
+ <f:param name="from" value="#{index * instancemgr.paginationSize}"/>
+ <h:outputText value="#{index * instancemgr.paginationSize}"/>
+ </h:commandLink>
+ </li>
+ </c:forEach>
+ </c:if>
+ </ul>
- </h:form>
+ </h:form>
- <c:if test="#{instancemgr.selectedPlugin != null}">
+ <c:if test="#{instancemgr.selectedPlugin != null}">
- <hr/>
+ <hr/>
- <c:if test="#{instancemgr.selectedPlugin == 'info'}">
- <c:choose>
- <c:when test="#{instancemgr.selectedInstance.portlet != null}">
- <h3>Portlet details
- </h3>
- <ui:include src="common/showPortletDetails.xhtml">
- <ui:param name="portlet" value="#{instancemgr.selectedInstance.portlet}"/>
- <ui:param name="portletmgr" value="#{portletmgr}"/>
- </ui:include>
- </c:when>
- <c:otherwise>
- <h3>Portlet details</h3>
- The associated portlet is not available
- </c:otherwise>
- </c:choose>
- </c:if>
+ <c:if test="#{instancemgr.selectedPlugin == 'info'}">
+ <c:choose>
+ <c:when test="#{instancemgr.selectedInstance.portlet != null}">
+ <h3>Portlet details
+ </h3>
+ <ui:include src="common/showPortletDetails.xhtml">
+ <ui:param name="portlet" value="#{instancemgr.selectedInstance.portlet}"/>
+ <ui:param name="portletmgr" value="#{portletmgr}"/>
+ </ui:include>
+ </c:when>
+ <c:otherwise>
+ <h3>Portlet details</h3>
+ The associated portlet is not available
+ </c:otherwise>
+ </c:choose>
+ </c:if>
- <c:if test="#{instancemgr.selectedPlugin == 'preferences'}">
- <h3>Editing preferences of #{instancemgr.selectedInstance.id}: </h3>
- <ui:include src="common/editPreferences.xhtml">
- <ui:param name="prefs" value="#{instancemgr.selectedPrefs}"/>
- </ui:include>
- <h:form style="text-align:center;padding: 1em 0 1em 0">
- <h:commandButton value="Save" action="#{instancemgr.updatePrefs}" styleClass="portlet-form-button"/>
- <h:commandButton value="Cancel" action="#{instancemgr.cancelPrefs}" styleClass="portlet-form-button"/>
- </h:form>
- </c:if>
+ <c:if test="#{instancemgr.selectedPlugin == 'preferences'}">
+ <h3>Editing preferences of #{instancemgr.selectedInstance.id}: </h3>
+ <ui:include src="common/editPreferences.xhtml">
+ <ui:param name="prefs" value="#{instancemgr.selectedPrefs}"/>
+ </ui:include>
+ <h:form style="text-align:center;padding: 1em 0 1em 0">
+ <h:commandButton value="Save" action="#{instancemgr.updatePrefs}" styleClass="portlet-form-button"/>
+ <h:commandButton value="Cancel" action="#{instancemgr.cancelPrefs}" styleClass="portlet-form-button"/>
+ </h:form>
+ </c:if>
- <c:if test="#{instancemgr.selectedPlugin == 'security'}">
- <h3>Editing security of #{instancemgr.selectedInstance.id}: </h3>
+ <c:if test="#{instancemgr.selectedPlugin == 'security'}">
+ <h3>Editing security of #{instancemgr.selectedInstance.id}: </h3>
- <ui:decorate template="/WEB-INF/jsf/common/editSecurity.xhtml">
- <ui:param name="auth" value="#{instancemgr.auth}"/>
- </ui:decorate>
- </c:if>
-
+ <ui:decorate template="/WEB-INF/jsf/common/editSecurity.xhtml">
+ <ui:param name="auth" value="#{instancemgr.auth}"/>
+ </ui:decorate>
</c:if>
- </ui:define>
+ </c:if>
+
+</ui:define>
</ui:composition>
</div>
Modified: trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/portlets.xhtml
===================================================================
--- trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/portlets.xhtml 2007-08-31 00:46:04 UTC (rev 8118)
+++ trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/portlets.xhtml 2007-08-31 00:48:25 UTC (rev 8119)
@@ -42,7 +42,8 @@
title="#{portlet.context.id}">
<f:param name="id" value="#{portlet.context.id}"/>
<f:param name="plugin" value="manager"/>
- <h:outputText rendered="#{not empty portlet.name.value}">#{portlet.name.value}</h:outputText>
+ <h:outputText
+ rendered="#{not empty portlet.name.value}">#{portlet.name.value}</h:outputText>
<h:outputText title="#{portlet.context.id}" rendered="#{empty portlet.name.value}">#{portlet.context.id}</h:outputText>
</h:commandLink>
</td>
@@ -68,10 +69,11 @@
<c:if test="#{portletmgr.portletCount > portletmgr.paginationSize}">
<c:forEach begin="0" end="#{(portletmgr.portletCount - 1) / portletmgr.paginationSize}" step="1"
var="index">
- <li class="#{index == portletmgr.selectedFrom ? 'selected' : ''}">
- <h:commandLink action="#{portletmgr.selectFrom}"><f:param name="from"
- value="#{index * portletmgr.paginationSize}"/><h:outputText
- value="#{index * portletmgr.paginationSize}"/></h:commandLink>
+ <li class="#{index == (portletmgr.selectedFrom / portletmgr.paginationSize)? 'selected' : ''}">
+ <h:commandLink action="#{portletmgr.selectFrom}">
+ <f:param name="from" value="#{index * portletmgr.paginationSize}"/>
+ <h:outputText value="#{index * portletmgr.paginationSize}"/>
+ </h:commandLink>
</li>
</c:forEach>
</c:if>
16 years, 8 months
JBoss Portal SVN: r8118 - in branches/JBoss_Portal_Branch_2_6/core-admin/src: main/org/jboss/portal/core/admin/ui/actions and 1 other directories.
by portal-commits@lists.jboss.org
Author: chris.laprun(a)jboss.com
Date: 2007-08-30 20:46:04 -0400 (Thu, 30 Aug 2007)
New Revision: 8118
Modified:
branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/InstanceManagerBean.java
branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/CreateInstanceAction.java
branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/instances.xhtml
branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/portlets.xhtml
Log:
- JBPORTAL-1665: Fixed highlighting of selected range.
- JBPORTAL-1588: Now properly shows the newly created instance when re-directing to instance list.
Modified: branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/InstanceManagerBean.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/InstanceManagerBean.java 2007-08-30 22:30:20 UTC (rev 8117)
+++ branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/InstanceManagerBean.java 2007-08-31 00:46:04 UTC (rev 8118)
@@ -22,23 +22,6 @@
******************************************************************************/
package org.jboss.portal.core.admin.ui;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.faces.application.FacesMessage;
-import javax.faces.context.ExternalContext;
-import javax.faces.context.FacesContext;
-import javax.faces.event.ActionEvent;
-import javax.faces.model.SelectItem;
-import javax.portlet.PortletMode;
-
import org.jboss.portal.Mode;
import org.jboss.portal.common.value.Value;
import org.jboss.portal.core.model.instance.Instance;
@@ -56,6 +39,21 @@
import org.jboss.portal.portlet.state.PropertyMap;
import org.jboss.portal.security.spi.provider.DomainConfigurator;
+import javax.faces.application.FacesMessage;
+import javax.faces.context.ExternalContext;
+import javax.faces.context.FacesContext;
+import javax.faces.event.ActionEvent;
+import javax.faces.model.SelectItem;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @author <a href="mailto:boleslaw dot dawidowicz at jboss.org">Boleslaw Dawidowicz</a>
@@ -63,7 +61,7 @@
*/
public class InstanceManagerBean
{
-
+
/** . */
private final Mode INTERNAL_EDIT_CONTENT = Mode.create("edit_content");
@@ -181,6 +179,12 @@
public void setSelectedId(String selectedId)
{
this.selectedId = selectedId;
+ int index = getInstances().indexOf(getSelectedInstance());
+ if (index != -1)
+ {
+ selectedRow = new Integer(index);
+ selectedFrom = (index / paginationSize) * paginationSize;
+ }
}
public String getSelectedPlugin()
@@ -219,7 +223,7 @@
PreferencesInfo prefsInfo = selectedInstance.getPortlet().getInfo().getPreferences();
Set keys = prefsInfo.getKeys();
PropertyMap props = selectedInstance.getProperties();
- for (Iterator i = keys.iterator();i.hasNext();)
+ for (Iterator i = keys.iterator(); i.hasNext();)
{
String key = (String)i.next();
PreferenceInfo prefInfo = prefsInfo.getPreference(key);
@@ -249,7 +253,7 @@
// Remove content editors
List tmpInstances = new ArrayList();
nextInstance:
- for (Iterator i = instanceContainer.getDefinitions().iterator();i.hasNext();)
+ for (Iterator i = instanceContainer.getDefinitions().iterator(); i.hasNext();)
{
Instance instance = (Instance)i.next();
@@ -259,7 +263,7 @@
// Filter portlets that are editors
Portlet portlet = instance.getPortlet();
PortletInfo info = portlet.getInfo();
- for (Iterator j = info.getCapabilities().getAllModes().iterator();j.hasNext();)
+ for (Iterator j = info.getCapabilities().getAllModes().iterator(); j.hasNext();)
{
ModeInfo modeInfo = (ModeInfo)j.next();
if (modeInfo.getMode().equals(INTERNAL_EDIT_CONTENT))
@@ -281,7 +285,6 @@
return instances;
}
- /** Return an array of all instances known in this container. */
public Collection getSelectedInstances()
{
List list = getInstances();
@@ -293,24 +296,26 @@
return list.subList(selectedFrom, to);
}
- /** Return an array of all instances known in this container. */
public Map getSelectedInstancesPrefs()
{
Map map = new HashMap();
Collection instances = getSelectedInstances();
Iterator it = instances.iterator();
-
+
while (it.hasNext())
{
InstanceDefinition instanceDef = (InstanceDefinition)it.next();
- try {
+ try
+ {
map.put(instanceDef.getId(), instanceDef.getProperties());
- } catch (PortletInvokerException e) {
+ }
+ catch (PortletInvokerException e)
+ {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
-
+
return map;
}
@@ -357,7 +362,7 @@
selectInstance();
}
-
+
public void deleteInstance(ActionEvent ae)
{
try
@@ -389,7 +394,7 @@
{
List tmp = new ArrayList();
List entries = selectedPrefs.getEntries();
- for (int i = 0;i < entries.size();i++)
+ for (int i = 0; i < entries.size(); i++)
{
PreferenceBean entry = (PreferenceBean)entries.get(i);
if (entry.isStale())
@@ -478,7 +483,7 @@
public SelectItem[] getAvailableActions()
{
- return new SelectItem[]{ new SelectItem("view", "View"), new SelectItem("admin", "Admin")};
+ return new SelectItem[]{new SelectItem("view", "View"), new SelectItem("admin", "Admin")};
}
}
}
Modified: branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/CreateInstanceAction.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/CreateInstanceAction.java 2007-08-30 22:30:20 UTC (rev 8117)
+++ branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/CreateInstanceAction.java 2007-08-31 00:46:04 UTC (rev 8118)
@@ -22,10 +22,10 @@
******************************************************************************/
package org.jboss.portal.core.admin.ui.actions;
+import org.jboss.portal.core.admin.ui.InstanceManagerBean;
+import org.jboss.portal.core.admin.ui.PortletManagerBean;
import org.jboss.portal.core.model.instance.Instance;
import org.jboss.portal.core.model.instance.InstanceContainer;
-import org.jboss.portal.core.admin.ui.InstanceManagerBean;
-import org.jboss.portal.core.admin.ui.PortletManagerBean;
import org.jboss.portal.portlet.Portlet;
import org.jboss.portal.security.RoleSecurityBinding;
import org.jboss.portal.security.SecurityConstants;
@@ -143,6 +143,7 @@
configurator.setSecurityBindings(instance.getId(), constraints);
// Configure the instance manager with the instance already looked up
+ instanceMgr.refresh();
instanceMgr.setSelectedId(instanceId);
instanceMgr.setSelectedPlugin("info");
Modified: branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/instances.xhtml
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/instances.xhtml 2007-08-30 22:30:20 UTC (rev 8117)
+++ branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/instances.xhtml 2007-08-31 00:46:04 UTC (rev 8118)
@@ -8,105 +8,106 @@
<ui:composition template="instancesTemplate.xhtml">
- <ui:define name="content">
+<ui:define name="content">
- <h:form>
+ <h:form>
- <table id="instancesTable2" width="100%">
- <thead class="portlet-section-header">
- <tr>
- <th>Id</th>
- <th>Actions</th>
- </tr>
- </thead>
- <tbody>
- <c:forEach items="#{instancemgr.selectedInstances}" var="instance" varStatus="status">
- <tr
- class="#{instance.id == instancemgr.selectedId ? 'portlet-section-selected' : (status.index % 2 == 0 ? 'portlet-section-body' : 'portlet-section-alternate')}">
- <td>
- <h:commandLink action="#{instancemgr.selectInstance}">
- <h:outputText value="#{instance.id}"/>
- <f:param name="id" value="#{instance.id}"/>
- <f:param name="plugin" value="info"/>
- </h:commandLink>
- </td>
- <td><h:commandLink action="#{instancemgr.selectInstance}">
- <h:outputText value="Security"/>
+ <table id="instancesTable2" width="100%">
+ <thead class="portlet-section-header">
+ <tr>
+ <th>Id</th>
+ <th>Actions</th>
+ </tr>
+ </thead>
+ <tbody>
+ <c:forEach items="#{instancemgr.selectedInstances}" var="instance" varStatus="status">
+ <tr
+ class="#{instance.id == instancemgr.selectedId ? 'portlet-section-selected' : (status.index % 2 == 0 ? 'portlet-section-body' : 'portlet-section-alternate')}">
+ <td>
+ <h:commandLink action="#{instancemgr.selectInstance}">
+ <h:outputText value="#{instance.id}"/>
<f:param name="id" value="#{instance.id}"/>
- <f:param name="plugin" value="security"/>
- </h:commandLink> | <h:panelGroup
- rendered="#{! empty(instancemgr.selectedInstancesPrefs[instance.id])}"><h:commandLink
- action="#{instancemgr.selectInstance}">
- <h:outputText value="Preferences"/>
- <f:param name="id" value="#{instance.id}"/>
- <f:param name="plugin" value="preferences"/>
- </h:commandLink> | </h:panelGroup><h:commandLink action="confirmDeleteInstance"
- actionListener="#{instancemgr.selectInstance}">
- <h:outputText value="Delete"/>
- <f:param name="id" value="#{instance.id}"/>
+ <f:param name="plugin" value="info"/>
</h:commandLink>
- </td>
- </tr>
- </c:forEach>
- </tbody>
- </table>
- <ul class="pagination">
- <c:if test="#{instancemgr.instanceCount > instancemgr.paginationSize}">
- <c:forEach begin="0" end="#{(instancemgr.instanceCount - 1)/ instancemgr.paginationSize}" step="1"
- var="index">
- <li class="#{index == instancemgr.selectedFrom ? 'selected' : ''}">
- <h:commandLink action="#{instancemgr.selectFrom}"><f:param name="from"
- value="#{index * instancemgr.paginationSize}"/><h:outputText
- value="#{index * instancemgr.paginationSize}"/></h:commandLink>
- </li>
- </c:forEach>
- </c:if>
- </ul>
+ </td>
+ <td><h:commandLink action="#{instancemgr.selectInstance}">
+ <h:outputText value="Security"/>
+ <f:param name="id" value="#{instance.id}"/>
+ <f:param name="plugin" value="security"/>
+ </h:commandLink> | <h:panelGroup
+ rendered="#{! empty(instancemgr.selectedInstancesPrefs[instance.id])}"><h:commandLink
+ action="#{instancemgr.selectInstance}">
+ <h:outputText value="Preferences"/>
+ <f:param name="id" value="#{instance.id}"/>
+ <f:param name="plugin" value="preferences"/>
+ </h:commandLink> | </h:panelGroup><h:commandLink action="confirmDeleteInstance"
+ actionListener="#{instancemgr.selectInstance}">
+ <h:outputText value="Delete"/>
+ <f:param name="id" value="#{instance.id}"/>
+ </h:commandLink>
+ </td>
+ </tr>
+ </c:forEach>
+ </tbody>
+ </table>
+ <ul class="pagination">
+ <c:if test="#{instancemgr.instanceCount > instancemgr.paginationSize}">
+ <c:forEach begin="0" end="#{(instancemgr.instanceCount - 1)/ instancemgr.paginationSize}" step="1"
+ var="index">
+ <li class="#{index == (instancemgr.selectedFrom / instancemgr.paginationSize)? 'selected' : ''}">
+ <h:commandLink action="#{instancemgr.selectFrom}">
+ <f:param name="from" value="#{index * instancemgr.paginationSize}"/>
+ <h:outputText value="#{index * instancemgr.paginationSize}"/>
+ </h:commandLink>
+ </li>
+ </c:forEach>
+ </c:if>
+ </ul>
- </h:form>
+ </h:form>
- <c:if test="#{instancemgr.selectedPlugin != null}">
+ <c:if test="#{instancemgr.selectedPlugin != null}">
- <hr/>
+ <hr/>
- <c:if test="#{instancemgr.selectedPlugin == 'info'}">
- <c:choose>
- <c:when test="#{instancemgr.selectedInstance.portlet != null}">
- <h3>Portlet details
- </h3>
- <ui:include src="common/showPortletDetails.xhtml">
- <ui:param name="portlet" value="#{instancemgr.selectedInstance.portlet}"/>
- <ui:param name="portletmgr" value="#{portletmgr}"/>
- </ui:include>
- </c:when>
- <c:otherwise>
- <h3>Portlet details</h3>
- The associated portlet is not available
- </c:otherwise>
- </c:choose>
- </c:if>
+ <c:if test="#{instancemgr.selectedPlugin == 'info'}">
+ <c:choose>
+ <c:when test="#{instancemgr.selectedInstance.portlet != null}">
+ <h3>Portlet details
+ </h3>
+ <ui:include src="common/showPortletDetails.xhtml">
+ <ui:param name="portlet" value="#{instancemgr.selectedInstance.portlet}"/>
+ <ui:param name="portletmgr" value="#{portletmgr}"/>
+ </ui:include>
+ </c:when>
+ <c:otherwise>
+ <h3>Portlet details</h3>
+ The associated portlet is not available
+ </c:otherwise>
+ </c:choose>
+ </c:if>
- <c:if test="#{instancemgr.selectedPlugin == 'preferences'}">
- <h3>Editing preferences of #{instancemgr.selectedInstance.id}: </h3>
- <ui:include src="common/editPreferences.xhtml">
- <ui:param name="prefs" value="#{instancemgr.selectedPrefs}"/>
- </ui:include>
- <h:form style="text-align:center;padding: 1em 0 1em 0">
- <h:commandButton value="Save" action="#{instancemgr.updatePrefs}" styleClass="portlet-form-button"/>
- <h:commandButton value="Cancel" action="#{instancemgr.cancelPrefs}" styleClass="portlet-form-button"/>
- </h:form>
- </c:if>
+ <c:if test="#{instancemgr.selectedPlugin == 'preferences'}">
+ <h3>Editing preferences of #{instancemgr.selectedInstance.id}: </h3>
+ <ui:include src="common/editPreferences.xhtml">
+ <ui:param name="prefs" value="#{instancemgr.selectedPrefs}"/>
+ </ui:include>
+ <h:form style="text-align:center;padding: 1em 0 1em 0">
+ <h:commandButton value="Save" action="#{instancemgr.updatePrefs}" styleClass="portlet-form-button"/>
+ <h:commandButton value="Cancel" action="#{instancemgr.cancelPrefs}" styleClass="portlet-form-button"/>
+ </h:form>
+ </c:if>
- <c:if test="#{instancemgr.selectedPlugin == 'security'}">
- <h3>Editing security of #{instancemgr.selectedInstance.id}: </h3>
+ <c:if test="#{instancemgr.selectedPlugin == 'security'}">
+ <h3>Editing security of #{instancemgr.selectedInstance.id}: </h3>
- <ui:decorate template="/WEB-INF/jsf/common/editSecurity.xhtml">
- <ui:param name="auth" value="#{instancemgr.auth}"/>
- </ui:decorate>
- </c:if>
-
+ <ui:decorate template="/WEB-INF/jsf/common/editSecurity.xhtml">
+ <ui:param name="auth" value="#{instancemgr.auth}"/>
+ </ui:decorate>
</c:if>
- </ui:define>
+ </c:if>
+
+</ui:define>
</ui:composition>
</div>
Modified: branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/portlets.xhtml
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/portlets.xhtml 2007-08-30 22:30:20 UTC (rev 8117)
+++ branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/portlets.xhtml 2007-08-31 00:46:04 UTC (rev 8118)
@@ -42,7 +42,8 @@
title="#{portlet.context.id}">
<f:param name="id" value="#{portlet.context.id}"/>
<f:param name="plugin" value="manager"/>
- <h:outputText rendered="#{not empty portlet.name.value}">#{portlet.name.value}</h:outputText>
+ <h:outputText
+ rendered="#{not empty portlet.name.value}">#{portlet.name.value}</h:outputText>
<h:outputText title="#{portlet.context.id}" rendered="#{empty portlet.name.value}">#{portlet.context.id}</h:outputText>
</h:commandLink>
</td>
@@ -68,9 +69,9 @@
<c:if test="#{portletmgr.portletCount > portletmgr.paginationSize}">
<c:forEach begin="0" end="#{(portletmgr.portletCount - 1) / portletmgr.paginationSize}" step="1"
var="index">
- <li class="#{index == portletmgr.selectedFrom ? 'selected' : ''}">
+ <li class="#{index == (portletmgr.selectedFrom / portletmgr.paginationSize)? 'selected' : ''}">
<h:commandLink action="#{portletmgr.selectFrom}"><f:param name="from"
- value="#{index * portletmgr.paginationSize}"/><h:outputText
+ value="#{index * portletmgr.paginationSize}"/><h:outputText
value="#{index * portletmgr.paginationSize}"/></h:commandLink>
</li>
</c:forEach>
16 years, 8 months
JBoss Portal SVN: r8117 - trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf.
by portal-commits@lists.jboss.org
Author: chris.laprun(a)jboss.com
Date: 2007-08-30 18:30:20 -0400 (Thu, 30 Aug 2007)
New Revision: 8117
Modified:
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editContext.xhtml
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editPage.xhtml
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/objectTemplate.xhtml
Log:
- JBPORTAL-1654: Added separators.
Modified: trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editContext.xhtml
===================================================================
--- trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editContext.xhtml 2007-08-30 22:17:59 UTC (rev 8116)
+++ trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editContext.xhtml 2007-08-30 22:30:20 UTC (rev 8117)
@@ -2,12 +2,20 @@
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:h="http://java.sun.com/jsf/html">
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:c="http://java.sun.com/jstl/core">
<ui:composition template="objectTemplate.xhtml">
<ui:define name="content">
+ <h3 class="sectionTitle">
+ Manage  
+ <c:choose>
+ <c:when test="#{portalobjectmgr.selectedObject.type == PortalObject.TYPE_CONTEXT}">portals</c:when>
+ <c:otherwise>#{portalobjectmgr.selectedObject.name} portal</c:otherwise>
+ </c:choose>
+ </h3>
<h:form>
<h:commandLink action="editProperties" actionListener="#{portalobjectmgr.selectObject}">
<h:outputText value="Properties"/>
@@ -15,6 +23,13 @@
</h:commandLink>
</h:form>
+ <h3 class="sectionTitle">
+ Manage  
+ <c:choose>
+ <c:when test="#{portalobjectmgr.selectedObject.type == PortalObject.TYPE_CONTEXT}">sub-portals</c:when>
+ <c:otherwise>pages within #{portalobjectmgr.selectedObject.name} portal</c:otherwise>
+ </c:choose>
+ </h3>
<!-- Portal addition -->
<h:form styleClass="createObjectForm">
<span class="portlet-font">Create a portal named: </span>
Modified: trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editPage.xhtml
===================================================================
--- trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editPage.xhtml 2007-08-30 22:17:59 UTC (rev 8116)
+++ trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editPage.xhtml 2007-08-30 22:30:20 UTC (rev 8117)
@@ -8,6 +8,9 @@
<ui:define name="content">
+ <h3 class="sectionTitle">Manage #{portalobjectmgr.selectedObject.name}
+ #{portalobjectmgr.selectedObject.typeName}</h3>
+
<h:form>
<h:panelGroup rendered="#{portalobjectmgr.selectedObject.type == PortalObject.TYPE_PAGE}"><h:commandLink
action="editPageLayout" actionListener="#{portalobjectmgr.selectObject}">
@@ -35,6 +38,8 @@
</h:commandLink>
</h:form>
+ <h3 class="sectionTitle">Manage sub-pages within #{portalobjectmgr.selectedObject.name}
+ #{portalobjectmgr.selectedObject.typeName}</h3>
<!-- Sub page addition -->
<h:form styleClass="createObjectForm">
<span class="portlet-font">Create a page named: </span>
Modified: trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/objectTemplate.xhtml
===================================================================
--- trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/objectTemplate.xhtml 2007-08-30 22:17:59 UTC (rev 8116)
+++ trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/objectTemplate.xhtml 2007-08-30 22:30:20 UTC (rev 8117)
@@ -25,57 +25,44 @@
<!-- Path nav -->
<h:form>
<ul class="objectpath">
- <c:forEach items="#{portalobjectmgr.selectedObjectPath}" var="node">
- <li>
- >
- </li>
- <c:choose>
- <c:when test="#{node.id == portalobjectmgr.selectedObject.id}">
- <li class="selected">
- <c:choose>
- <c:when test="#{portalObjectScreen != null}">
- <h:commandLink action="#{portalobjectmgr.selectObject}">
- <f:param name="id" value="#{node.id}"/>
- <c:choose>
- <c:when test="#{node.type == PortalObject.TYPE_CONTEXT}">Portals</c:when>
- <c:when test="#{node.type == PortalObject.TYPE_PORTAL}">#{node.name} Portal</c:when>
- <c:when test="#{node.type == PortalObject.TYPE_PAGE}">#{node.name} Page</c:when>
- <c:when test="#{node.type == PortalObject.TYPE_WINDOW}">#{node.name} Window</c:when>
- </c:choose>
- </h:commandLink>
- <h:outputText value=" #{portalObjectScreen}"/>
- </c:when>
- <c:otherwise>
+ <c:forEach items="#{portalobjectmgr.selectedObjectPath}" var="node">
+ <li>
+ >
+ </li>
+
+ <c:choose>
+ <c:when test="#{node.id == portalobjectmgr.selectedObject.id}">
+ <li class="selected">
+ <h:commandLink action="#{portalobjectmgr.selectObject}">
+ <f:param name="id" value="#{node.id}"/>
<c:choose>
<c:when test="#{node.type == PortalObject.TYPE_CONTEXT}">Portals</c:when>
- <c:when test="#{node.type == PortalObject.TYPE_PORTAL}">#{node.name} Portal</c:when>
- <c:when test="#{node.type == PortalObject.TYPE_PAGE}">#{node.name} Page</c:when>
- <c:when test="#{node.type == PortalObject.TYPE_WINDOW}">#{node.name} Window</c:when>
+ <c:otherwise>#{node.name} #{node.typeName}</c:otherwise>
</c:choose>
- </c:otherwise>
- </c:choose>
- </li>
- </c:when>
- <c:otherwise>
- <li>
- <h:commandLink action="#{portalobjectmgr.selectObject}">
- <f:param name="id" value="#{node.id}"/>
- <c:choose>
- <c:when test="#{node.type == PortalObject.TYPE_CONTEXT}">Portals</c:when>
- <c:when test="#{node.type == PortalObject.TYPE_PORTAL}">#{node.name} Portal</c:when>
- <c:when test="#{node.type == PortalObject.TYPE_PAGE}">#{node.name} Page</c:when>
- <c:when test="#{node.type == PortalObject.TYPE_WINDOW}">#{node.name} Window</c:when>
- </c:choose>
- </h:commandLink>
- </li>
- </c:otherwise>
- </c:choose>
- </c:forEach>
+ </h:commandLink>
+ <h:outputText value=" #{portalObjectScreen}" rendered="#{portalObjectScreen != null}"/>
+
+ </li>
+ </c:when>
+ <c:otherwise>
+ <li>
+ <h:commandLink action="#{portalobjectmgr.selectObject}">
+ <f:param name="id" value="#{node.id}"/>
+ <c:choose>
+ <c:when test="#{node.type == PortalObject.TYPE_CONTEXT}">Portals</c:when>
+ <c:otherwise>#{node.name} #{node.typeName}</c:otherwise>
+ </c:choose>
+ </h:commandLink>
+ </li>
+ </c:otherwise>
+ </c:choose>
+ </c:forEach>
</ul>
</h:form>
<!-- Status message -->
- <h:message id="status" for="status" infoClass="portlet-msg-success" errorClass="portlet-msg-error" fatalClass="portlet-msg-error" warnClass="portlet-msg-alert"/>
+ <h:message id="status" for="status" infoClass="portlet-msg-success" errorClass="portlet-msg-error"
+ fatalClass="portlet-msg-error" warnClass="portlet-msg-alert"/>
<!-- Content -->
<ui:insert name="content">Content</ui:insert>
16 years, 8 months
JBoss Portal SVN: r8116 - branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf.
by portal-commits@lists.jboss.org
Author: chris.laprun(a)jboss.com
Date: 2007-08-30 18:17:59 -0400 (Thu, 30 Aug 2007)
New Revision: 8116
Modified:
branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editContext.xhtml
branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editPage.xhtml
branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/objectTemplate.xhtml
Log:
- JBPORTAL-1654: Added separators.
Modified: branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editContext.xhtml
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editContext.xhtml 2007-08-30 21:10:49 UTC (rev 8115)
+++ branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editContext.xhtml 2007-08-30 22:17:59 UTC (rev 8116)
@@ -2,12 +2,20 @@
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:h="http://java.sun.com/jsf/html">
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:c="http://java.sun.com/jstl/core">
<ui:composition template="objectTemplate.xhtml">
<ui:define name="content">
+ <h3 class="sectionTitle">
+ Manage  
+ <c:choose>
+ <c:when test="#{portalobjectmgr.selectedObject.type == PortalObject.TYPE_CONTEXT}">portals</c:when>
+ <c:otherwise>#{portalobjectmgr.selectedObject.name} portal</c:otherwise>
+ </c:choose>
+ </h3>
<h:form>
<h:commandLink action="editProperties" actionListener="#{portalobjectmgr.selectObject}">
<h:outputText value="Properties"/>
@@ -15,6 +23,13 @@
</h:commandLink>
</h:form>
+ <h3 class="sectionTitle">
+ Manage  
+ <c:choose>
+ <c:when test="#{portalobjectmgr.selectedObject.type == PortalObject.TYPE_CONTEXT}">sub-portals</c:when>
+ <c:otherwise>pages within #{portalobjectmgr.selectedObject.name} portal</c:otherwise>
+ </c:choose>
+ </h3>
<!-- Portal addition -->
<h:form styleClass="createObjectForm">
<span class="portlet-font">Create a portal named: </span>
Modified: branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editPage.xhtml
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editPage.xhtml 2007-08-30 21:10:49 UTC (rev 8115)
+++ branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editPage.xhtml 2007-08-30 22:17:59 UTC (rev 8116)
@@ -8,6 +8,9 @@
<ui:define name="content">
+ <h3 class="sectionTitle"> Manage #{portalobjectmgr.selectedObject.name}
+ #{portalobjectmgr.selectedObject.typeName}</h3>
+
<h:form>
<h:panelGroup rendered="#{portalobjectmgr.selectedObject.type == PortalObject.TYPE_PAGE}"><h:commandLink
action="editPageLayout" actionListener="#{portalobjectmgr.selectObject}">
@@ -35,6 +38,8 @@
</h:commandLink>
</h:form>
+ <h3 class="sectionTitle"> Manage sub-pages within #{portalobjectmgr.selectedObject.name}
+ #{portalobjectmgr.selectedObject.typeName}</h3>
<!-- Sub page addition -->
<h:form styleClass="createObjectForm">
<span class="portlet-font">Create a page named: </span>
Modified: branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/objectTemplate.xhtml
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/objectTemplate.xhtml 2007-08-30 21:10:49 UTC (rev 8115)
+++ branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/objectTemplate.xhtml 2007-08-30 22:17:59 UTC (rev 8116)
@@ -25,57 +25,44 @@
<!-- Path nav -->
<h:form>
<ul class="objectpath">
- <c:forEach items="#{portalobjectmgr.selectedObjectPath}" var="node">
- <li>
- >
- </li>
- <c:choose>
- <c:when test="#{node.id == portalobjectmgr.selectedObject.id}">
- <li class="selected">
- <c:choose>
- <c:when test="#{portalObjectScreen != null}">
- <h:commandLink action="#{portalobjectmgr.selectObject}">
- <f:param name="id" value="#{node.id}"/>
- <c:choose>
- <c:when test="#{node.type == PortalObject.TYPE_CONTEXT}">Portals</c:when>
- <c:when test="#{node.type == PortalObject.TYPE_PORTAL}">#{node.name} Portal</c:when>
- <c:when test="#{node.type == PortalObject.TYPE_PAGE}">#{node.name} Page</c:when>
- <c:when test="#{node.type == PortalObject.TYPE_WINDOW}">#{node.name} Window</c:when>
- </c:choose>
- </h:commandLink>
- <h:outputText value=" #{portalObjectScreen}"/>
- </c:when>
- <c:otherwise>
+ <c:forEach items="#{portalobjectmgr.selectedObjectPath}" var="node">
+ <li>
+ >
+ </li>
+
+ <c:choose>
+ <c:when test="#{node.id == portalobjectmgr.selectedObject.id}">
+ <li class="selected">
+ <h:commandLink action="#{portalobjectmgr.selectObject}">
+ <f:param name="id" value="#{node.id}"/>
<c:choose>
<c:when test="#{node.type == PortalObject.TYPE_CONTEXT}">Portals</c:when>
- <c:when test="#{node.type == PortalObject.TYPE_PORTAL}">#{node.name} Portal</c:when>
- <c:when test="#{node.type == PortalObject.TYPE_PAGE}">#{node.name} Page</c:when>
- <c:when test="#{node.type == PortalObject.TYPE_WINDOW}">#{node.name} Window</c:when>
+ <c:otherwise>#{node.name} #{node.typeName}</c:otherwise>
</c:choose>
- </c:otherwise>
- </c:choose>
- </li>
- </c:when>
- <c:otherwise>
- <li>
- <h:commandLink action="#{portalobjectmgr.selectObject}">
- <f:param name="id" value="#{node.id}"/>
- <c:choose>
- <c:when test="#{node.type == PortalObject.TYPE_CONTEXT}">Portals</c:when>
- <c:when test="#{node.type == PortalObject.TYPE_PORTAL}">#{node.name} Portal</c:when>
- <c:when test="#{node.type == PortalObject.TYPE_PAGE}">#{node.name} Page</c:when>
- <c:when test="#{node.type == PortalObject.TYPE_WINDOW}">#{node.name} Window</c:when>
- </c:choose>
- </h:commandLink>
- </li>
- </c:otherwise>
- </c:choose>
- </c:forEach>
+ </h:commandLink>
+ <h:outputText value=" #{portalObjectScreen}" rendered="#{portalObjectScreen != null}"/>
+
+ </li>
+ </c:when>
+ <c:otherwise>
+ <li>
+ <h:commandLink action="#{portalobjectmgr.selectObject}">
+ <f:param name="id" value="#{node.id}"/>
+ <c:choose>
+ <c:when test="#{node.type == PortalObject.TYPE_CONTEXT}">Portals</c:when>
+ <c:otherwise>#{node.name} #{node.typeName}</c:otherwise>
+ </c:choose>
+ </h:commandLink>
+ </li>
+ </c:otherwise>
+ </c:choose>
+ </c:forEach>
</ul>
</h:form>
<!-- Status message -->
- <h:message id="status" for="status" infoClass="portlet-msg-success" errorClass="portlet-msg-error" fatalClass="portlet-msg-error" warnClass="portlet-msg-alert"/>
+ <h:message id="status" for="status" infoClass="portlet-msg-success" errorClass="portlet-msg-error"
+ fatalClass="portlet-msg-error" warnClass="portlet-msg-alert"/>
<!-- Content -->
<ui:insert name="content">Content</ui:insert>
16 years, 8 months
JBoss Portal SVN: r8115 - in modules/portlet/trunk: build/ide/intellij/idea60/modules/federation and 18 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-08-30 17:10:49 -0400 (Thu, 30 Aug 2007)
New Revision: 8115
Added:
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractInstanceContext.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractPortalContext.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractUserContext.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractWindowContext.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/state/consumer/AbstractConsumerPersistenceManagerService.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ActionContextImpl.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/PortletInvokerSupport.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/PortletSupport.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/TestPortletInvoker.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ValueMapAssert.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortalNavigationalState.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletController.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletControllerContext.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletControllerContextImpl.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletURLRenderer.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/StringCodec.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/StringCodecTestCase.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestActionContext.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestInstanceContext.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestPortletInvoker.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/WindowNavigationalState.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/CodecBuilder.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/DecoderTestCase.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/EncoderTestCase.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/ParameterDecoder.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/ParameterEncoder.java
Removed:
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/ActionContextImpl.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/InstanceContextImpl.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/TestPortalContext.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/TestPortletInvoker.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/UserContextImpl.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/ValueMapAssert.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/support/PortletInvokerSupport.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/support/PortletSupport.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestPortletInvocationContext.java
Modified:
modules/portlet/trunk/build/ide/intellij/idea60/modules/federation/federation.iml
modules/portlet/trunk/build/ide/intellij/idea60/modules/test/test.iml
modules/portlet/trunk/federation/src/main/org/jboss/portal/test/portlet/federation/FederatingPortletInvokerTestCase.java
modules/portlet/trunk/federation/src/main/org/jboss/portal/test/portlet/federation/OneInvokerNoPortletsTestCase.java
modules/portlet/trunk/jboss-portal-portlet.iws
modules/portlet/trunk/portlet/build.xml
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/DispatchedHttpServletRequest.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/api/ActionResponseImpl.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractPortletInvocationContext.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/state/consumer/ConsumerPersistenceManagerService.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/support/spi/SecurityContextSupport.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/support/spi/UserContextSupport.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/framework/portlet/PortletTestContext.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/framework/portlet/PortletTestDriver.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/portletrequests/PortletRequestsSequenceBuilder.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/AbstractStatefulPortletInvokerTestCase.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ConsumerStatefulPortletInvokerTestCase.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ProducerStatefulPortletInvokerTestCase.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/RemoteStoreProducerStatefulPortletInvokerTestCase.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/StateConverterV0TestCase.java
modules/portlet/trunk/test/build.xml
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortalKernelBootstrap.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortalServlet.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestRenderContext.java
modules/portlet/trunk/test/src/resources/portlet-test-war/WEB-INF/jboss-beans.xml
modules/portlet/trunk/test/src/resources/portlet-test-war/WEB-INF/web.xml
Log:
update portlet container with testsuite passing on TC6
Modified: modules/portlet/trunk/build/ide/intellij/idea60/modules/federation/federation.iml
===================================================================
--- modules/portlet/trunk/build/ide/intellij/idea60/modules/federation/federation.iml 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/build/ide/intellij/idea60/modules/federation/federation.iml 2007-08-30 21:10:49 UTC (rev 8115)
@@ -18,6 +18,15 @@
</library>
</orderEntry>
<orderEntry type="module" module-name="portlet" />
+ <orderEntry type="module-library">
+ <library>
+ <CLASSES>
+ <root url="jar://$MODULE_DIR$/../../../../../../thirdparty/junit/lib/junit.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
<orderEntryProperties />
</component>
<component name="VcsManagerConfiguration">
Modified: modules/portlet/trunk/build/ide/intellij/idea60/modules/test/test.iml
===================================================================
--- modules/portlet/trunk/build/ide/intellij/idea60/modules/test/test.iml 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/build/ide/intellij/idea60/modules/test/test.iml 2007-08-30 21:10:49 UTC (rev 8115)
@@ -63,6 +63,15 @@
<SOURCES />
</library>
</orderEntry>
+ <orderEntry type="module-library">
+ <library>
+ <CLASSES>
+ <root url="jar://$MODULE_DIR$/../../../../../../thirdparty/junit/lib/junit.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
<orderEntryProperties />
</component>
<component name="VcsManagerConfiguration">
Modified: modules/portlet/trunk/federation/src/main/org/jboss/portal/test/portlet/federation/FederatingPortletInvokerTestCase.java
===================================================================
--- modules/portlet/trunk/federation/src/main/org/jboss/portal/test/portlet/federation/FederatingPortletInvokerTestCase.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/federation/src/main/org/jboss/portal/test/portlet/federation/FederatingPortletInvokerTestCase.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -26,8 +26,8 @@
import org.jboss.portal.portlet.federation.FederatedPortletInvoker;
import org.jboss.portal.portlet.federation.FederatingPortletInvoker;
import org.jboss.portal.portlet.federation.impl.FederatingPortletInvokerService;
-import org.jboss.portal.portlet.test.support.PortletInvokerSupport;
-import org.jboss.portal.portlet.test.support.PortletSupport;
+import org.jboss.portal.test.portlet.state.PortletInvokerSupport;
+import org.jboss.portal.test.portlet.state.PortletSupport;
import org.jboss.portal.portlet.PortletInvokerException;
import org.jboss.portal.portlet.Portlet;
import org.jboss.portal.portlet.PortletContext;
Modified: modules/portlet/trunk/federation/src/main/org/jboss/portal/test/portlet/federation/OneInvokerNoPortletsTestCase.java
===================================================================
--- modules/portlet/trunk/federation/src/main/org/jboss/portal/test/portlet/federation/OneInvokerNoPortletsTestCase.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/federation/src/main/org/jboss/portal/test/portlet/federation/OneInvokerNoPortletsTestCase.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -24,7 +24,7 @@
import junit.framework.TestCase;
import org.jboss.portal.portlet.PortletInvokerException;
-import org.jboss.portal.portlet.test.support.PortletInvokerSupport;
+import org.jboss.portal.test.portlet.state.PortletInvokerSupport;
import org.jboss.portal.portlet.federation.FederatingPortletInvoker;
import org.jboss.portal.portlet.federation.FederatedPortletInvoker;
import org.jboss.portal.portlet.federation.impl.FederatingPortletInvokerService;
Modified: modules/portlet/trunk/jboss-portal-portlet.iws
===================================================================
--- modules/portlet/trunk/jboss-portal-portlet.iws 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/jboss-portal-portlet.iws 2007-08-30 21:10:49 UTC (rev 8115)
@@ -17,7 +17,66 @@
</component>
<component name="ChangeListManager">
<list default="true" name="Default" comment="">
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/url/ParameterEncoder.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/impl/state/consumer/ConsumerPersistenceManagerService.java" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/impl/state/consumer/ConsumerPersistenceManagerService.java" />
+ <change type="DELETED" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/test/support/PortletInvokerSupport.java" afterPath="" />
+ <change type="DELETED" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/test/TestPortletInvoker.java" afterPath="" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/TestPortletInvoker.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/PortalKernelBootstrap.java" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/PortalKernelBootstrap.java" />
+ <change type="DELETED" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/test/TestPortalContext.java" afterPath="" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/AbstractStatefulPortletInvokerTestCase.java" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/AbstractStatefulPortletInvokerTestCase.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/support/spi/SecurityContextSupport.java" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/support/spi/SecurityContextSupport.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractUserContext.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/PortletInvokerSupport.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/url/DecoderTestCase.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/PortletSupport.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/TestInstanceContext.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/RemoteStoreProducerStatefulPortletInvokerTestCase.java" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/RemoteStoreProducerStatefulPortletInvokerTestCase.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/TestActionContext.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/portlet/build.xml" afterPath="$PROJECT_DIR$/portlet/build.xml" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/url/CodecBuilder.java" />
+ <change type="DELETED" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/test/UserContextImpl.java" afterPath="" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/src/resources/portlet-test-war/WEB-INF/jboss-beans.xml" afterPath="$PROJECT_DIR$/test/src/resources/portlet-test-war/WEB-INF/jboss-beans.xml" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/PortalNavigationalState.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/ProducerStatefulPortletInvokerTestCase.java" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/ProducerStatefulPortletInvokerTestCase.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/ActionContextImpl.java" />
+ <change type="DELETED" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/test/ActionContextImpl.java" afterPath="" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/framework/portlet/PortletTestDriver.java" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/framework/portlet/PortletTestDriver.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/src/resources/portlet-test-war/WEB-INF/web.xml" afterPath="$PROJECT_DIR$/test/src/resources/portlet-test-war/WEB-INF/web.xml" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/PortletURLRenderer.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractWindowContext.java" />
+ <change type="DELETED" beforePath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/TestPortletInvocationContext.java" afterPath="" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/TestRenderContext.java" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/TestRenderContext.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/build.xml" afterPath="$PROJECT_DIR$/test/build.xml" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/url/ParameterDecoder.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/PortletControllerContext.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/StateConverterV0TestCase.java" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/StateConverterV0TestCase.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/support/spi/UserContextSupport.java" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/support/spi/UserContextSupport.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/DispatchedHttpServletRequest.java" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/DispatchedHttpServletRequest.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractInstanceContext.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/framework/portlet/PortletTestContext.java" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/framework/portlet/PortletTestContext.java" />
+ <change type="DELETED" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/test/InstanceContextImpl.java" afterPath="" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/PortletControllerContextImpl.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/federation/src/main/org/jboss/portal/test/portlet/federation/FederatingPortletInvokerTestCase.java" afterPath="$PROJECT_DIR$/federation/src/main/org/jboss/portal/test/portlet/federation/FederatingPortletInvokerTestCase.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/url" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractPortletInvocationContext.java" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractPortletInvocationContext.java" />
+ <change type="DELETED" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/test/ValueMapAssert.java" afterPath="" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractPortalContext.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/ValueMapAssert.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/StringCodecTestCase.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/WindowNavigationalState.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/ConsumerStatefulPortletInvokerTestCase.java" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/ConsumerStatefulPortletInvokerTestCase.java" />
+ <change type="DELETED" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/test/support/PortletSupport.java" afterPath="" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/federation/src/main/org/jboss/portal/test/portlet/federation/OneInvokerNoPortletsTestCase.java" afterPath="$PROJECT_DIR$/federation/src/main/org/jboss/portal/test/portlet/federation/OneInvokerNoPortletsTestCase.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/api/ActionResponseImpl.java" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/api/ActionResponseImpl.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/StringCodec.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/TestPortletInvoker.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/impl/state/consumer/AbstractConsumerPersistenceManagerService.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/PortletController.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/portletrequests/PortletRequestsSequenceBuilder.java" afterPath="$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/portletrequests/PortletRequestsSequenceBuilder.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/url/EncoderTestCase.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/PortalServlet.java" afterPath="$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/PortalServlet.java" />
</list>
</component>
<component name="ChangeListSynchronizer" />
@@ -89,7 +148,7 @@
</component>
<component name="DebuggerManager">
<line_breakpoints>
- <breakpoint url="file://$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/PortalServlet.java" line="60" class="org.jboss.portal.portlet.test.PortalServlet" package="org.jboss.portal.portlet.test">
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/api/portletconfig/PortletConfigSequenceBuilder.java" line="61" class="Class at PortletConfigSequenceBuilder.java:61" package="org.jboss.portal.test.portlet.jsr168.api.portletconfig">
<option name="ENABLED" value="true" />
<option name="SUSPEND_POLICY" value="SuspendAll" />
<option name="LOG_ENABLED" value="false" />
@@ -102,6 +161,643 @@
<option name="CONDITION" value="" />
<option name="LOG_MESSAGE" value="" />
</breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/api/portletconfig/PortletConfigSequenceBuilder.java" line="79" class="Class at PortletConfigSequenceBuilder.java:79" package="org.jboss.portal.test.portlet.jsr168.api.portletconfig">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/api/portletconfig/PortletConfigSequenceBuilder.java" line="102" class="Class at PortletConfigSequenceBuilder.java:102" package="org.jboss.portal.test.portlet.jsr168.api.portletconfig">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/api/portletconfig/PortletConfigSequenceBuilder.java" line="141" class="Class at PortletConfigSequenceBuilder.java:141" package="org.jboss.portal.test.portlet.jsr168.api.portletconfig">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/api/portletconfig/PortletConfigSequenceBuilder.java" line="160" class="Class at PortletConfigSequenceBuilder.java:160" package="org.jboss.portal.test.portlet.jsr168.api.portletconfig">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/StringCodecTestCase.java" line="53" class="org.jboss.portal.portlet.test.StringCodecTestCase" package="org.jboss.portal.portlet.test">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/tck/portletrequests/PortletRequestsSequenceBuilder.java" line="108" class="Class at PortletRequestsSequenceBuilder.java:108" package="org.jboss.portal.test.portlet.jsr168.tck.portletrequests">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/tck/portletrequests/PortletRequestsSequenceBuilder.java" line="118" class="Class at PortletRequestsSequenceBuilder.java:118" package="org.jboss.portal.test.portlet.jsr168.tck.portletrequests">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/tck/portletrequests/PortletRequestsSequenceBuilder.java" line="128" class="Class at PortletRequestsSequenceBuilder.java:128" package="org.jboss.portal.test.portlet.jsr168.tck.portletrequests">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/tck/portletrequests/PortletRequestsSequenceBuilder.java" line="150" class="Class at PortletRequestsSequenceBuilder.java:150" package="org.jboss.portal.test.portlet.jsr168.tck.portletrequests">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/tck/portletrequests/PortletRequestsSequenceBuilder.java" line="163" class="Class at PortletRequestsSequenceBuilder.java:163" package="org.jboss.portal.test.portlet.jsr168.tck.portletrequests">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/tck/portletrequests/PortletRequestsSequenceBuilder.java" line="177" class="Class at PortletRequestsSequenceBuilder.java:177" package="org.jboss.portal.test.portlet.jsr168.tck.portletrequests">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/tck/portletrequests/PortletRequestsSequenceBuilder.java" line="185" class="Class at PortletRequestsSequenceBuilder.java:185" package="org.jboss.portal.test.portlet.jsr168.tck.portletrequests">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/tck/portletrequests/PortletRequestsSequenceBuilder.java" line="199" class="Class at PortletRequestsSequenceBuilder.java:199" package="org.jboss.portal.test.portlet.jsr168.tck.portletrequests">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/tck/portletinterface/PortletInterfaceSequenceBuilder.java" line="336" class="Class at PortletInterfaceSequenceBuilder.java:336" package="org.jboss.portal.test.portlet.jsr168.tck.portletinterface">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/tck/portletinterface/PortletInterfaceSequenceBuilder.java" line="344" class="Class at PortletInterfaceSequenceBuilder.java:344" package="org.jboss.portal.test.portlet.jsr168.tck.portletinterface">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/tck/portletinterface/PortletInterfaceSequenceBuilder.java" line="353" class="Class at PortletInterfaceSequenceBuilder.java:353" package="org.jboss.portal.test.portlet.jsr168.tck.portletinterface">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/tck/portletinterface/PortletInterfaceSequenceBuilder.java" line="362" class="Class at PortletInterfaceSequenceBuilder.java:362" package="org.jboss.portal.test.portlet.jsr168.tck.portletinterface">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/framework/portlet/PortletTestDriver.java" line="137" class="org.jboss.portal.test.framework.portlet.PortletTestDriver" package="org.jboss.portal.test.framework.portlet">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/framework/portlet/PortletTestDriver.java" line="142" class="org.jboss.portal.test.framework.portlet.PortletTestDriver" package="org.jboss.portal.test.framework.portlet">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/expiringcache/ExpiringCacheSequenceBuilder.java" line="117" class="Class at ExpiringCacheSequenceBuilder.java:117" package="org.jboss.portal.test.portlet.jsr168.ext.expiringcache">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/expiringcache/ExpiringCacheSequenceBuilder.java" line="126" class="Class at ExpiringCacheSequenceBuilder.java:126" package="org.jboss.portal.test.portlet.jsr168.ext.expiringcache">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/expiringcache/ExpiringCacheSequenceBuilder.java" line="103" class="Class at ExpiringCacheSequenceBuilder.java:103" package="org.jboss.portal.test.portlet.jsr168.ext.expiringcache">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/expiringcache/ExpiringCacheSequenceBuilder.java" line="139" class="Class at ExpiringCacheSequenceBuilder.java:139" package="org.jboss.portal.test.portlet.jsr168.ext.expiringcache">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/expiringcache/ExpiringCacheSequenceBuilder.java" line="149" class="Class at ExpiringCacheSequenceBuilder.java:149" package="org.jboss.portal.test.portlet.jsr168.ext.expiringcache">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/expiringcache/ExpiringCacheSequenceBuilder.java" line="170" class="Class at ExpiringCacheSequenceBuilder.java:170" package="org.jboss.portal.test.portlet.jsr168.ext.expiringcache">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/expiringcache/ExpiringCacheSequenceBuilder.java" line="186" class="Class at ExpiringCacheSequenceBuilder.java:186" package="org.jboss.portal.test.portlet.jsr168.ext.expiringcache">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/expiringcache/ExpiringCacheSequenceBuilder.java" line="199" class="Class at ExpiringCacheSequenceBuilder.java:199" package="org.jboss.portal.test.portlet.jsr168.ext.expiringcache">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/expiringcache/ExpiringCacheSequenceBuilder.java" line="208" class="Class at ExpiringCacheSequenceBuilder.java:208" package="org.jboss.portal.test.portlet.jsr168.ext.expiringcache">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/expiringcache/ExpiringCacheSequenceBuilder.java" line="221" class="Class at ExpiringCacheSequenceBuilder.java:221" package="org.jboss.portal.test.portlet.jsr168.ext.expiringcache">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/expiringcache/ExpiringCacheSequenceBuilder.java" line="231" class="Class at ExpiringCacheSequenceBuilder.java:231" package="org.jboss.portal.test.portlet.jsr168.ext.expiringcache">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/expiringcache/ExpiringCacheSequenceBuilder.java" line="252" class="Class at ExpiringCacheSequenceBuilder.java:252" package="org.jboss.portal.test.portlet.jsr168.ext.expiringcache">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ConsumerCacheInterceptor.java" line="138" class="org.jboss.portal.portlet.aspects.portlet.ConsumerCacheInterceptor" package="org.jboss.portal.portlet.aspects.portlet">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java" line="337" class="Class at AbstractCacheSequenceBuilder.java:337" package="org.jboss.portal.test.portlet.jsr168.ext.common">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java" line="351" class="Class at AbstractCacheSequenceBuilder.java:351" package="org.jboss.portal.test.portlet.jsr168.ext.common">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java" line="360" class="Class at AbstractCacheSequenceBuilder.java:360" package="org.jboss.portal.test.portlet.jsr168.ext.common">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java" line="370" class="Class at AbstractCacheSequenceBuilder.java:370" package="org.jboss.portal.test.portlet.jsr168.ext.common">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java" line="378" class="Class at AbstractCacheSequenceBuilder.java:378" package="org.jboss.portal.test.portlet.jsr168.ext.common">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java" line="193" class="Class at AbstractCacheSequenceBuilder.java:193" package="org.jboss.portal.test.portlet.jsr168.ext.common">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java" line="209" class="Class at AbstractCacheSequenceBuilder.java:209" package="org.jboss.portal.test.portlet.jsr168.ext.common">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java" line="218" class="Class at AbstractCacheSequenceBuilder.java:218" package="org.jboss.portal.test.portlet.jsr168.ext.common">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java" line="227" class="Class at AbstractCacheSequenceBuilder.java:227" package="org.jboss.portal.test.portlet.jsr168.ext.common">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java" line="235" class="Class at AbstractCacheSequenceBuilder.java:235" package="org.jboss.portal.test.portlet.jsr168.ext.common">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java" line="249" class="Class at AbstractCacheSequenceBuilder.java:249" package="org.jboss.portal.test.portlet.jsr168.ext.common">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java" line="263" class="Class at AbstractCacheSequenceBuilder.java:263" package="org.jboss.portal.test.portlet.jsr168.ext.common">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java" line="272" class="Class at AbstractCacheSequenceBuilder.java:272" package="org.jboss.portal.test.portlet.jsr168.ext.common">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java" line="281" class="Class at AbstractCacheSequenceBuilder.java:281" package="org.jboss.portal.test.portlet.jsr168.ext.common">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java" line="292" class="Class at AbstractCacheSequenceBuilder.java:292" package="org.jboss.portal.test.portlet.jsr168.ext.common">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java" line="307" class="Class at AbstractCacheSequenceBuilder.java:307" package="org.jboss.portal.test.portlet.jsr168.ext.common">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
+ <breakpoint url="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ConsumerCacheInterceptor.java" line="57" class="org.jboss.portal.portlet.aspects.portlet.ConsumerCacheInterceptor" package="org.jboss.portal.portlet.aspects.portlet">
+ <option name="ENABLED" value="true" />
+ <option name="SUSPEND_POLICY" value="SuspendAll" />
+ <option name="LOG_ENABLED" value="false" />
+ <option name="LOG_EXPRESSION_ENABLED" value="false" />
+ <option name="COUNT_FILTER_ENABLED" value="false" />
+ <option name="COUNT_FILTER" value="0" />
+ <option name="CONDITION_ENABLED" value="false" />
+ <option name="CLASS_FILTERS_ENABLED" value="false" />
+ <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+ <option name="CONDITION" value="" />
+ <option name="LOG_MESSAGE" value="" />
+ </breakpoint>
</line_breakpoints>
<breakpoint_any>
<breakpoint>
@@ -145,18 +841,74 @@
<component name="FavoritesManager">
<favorites_list name="jboss-portal-portlet" />
</component>
- <component name="FavoritesProjectViewPane" />
+ <component name="FavoritesProjectViewPane">
+ <subPane subId="jboss-portal-portlet">
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" />
+ <option name="myItemType" value="com.intellij.ide.favoritesTreeView.FavoritesTreeNodeDescriptor" />
+ </PATH_ELEMENT>
+ </PATH>
+ </subPane>
+ </component>
<component name="FileEditorManager">
<leaf>
- <file leaf-file-name="build.xml" pinned="false" current="true" current-in-tab="true">
- <entry file="file://$PROJECT_DIR$/test/build.xml">
+ <file leaf-file-name="build.xml" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/federation/build.xml">
<provider selected="true" editor-type-id="text-editor">
- <state line="253" column="37" selection-start="12848" selection-end="12848" vertical-scroll-proportion="0.7336621">
+ <state line="100" column="33" selection-start="5547" selection-end="5547" vertical-scroll-proportion="0.3403206">
<folding />
</state>
</provider>
</entry>
</file>
+ <file leaf-file-name="build.xml" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/portlet/build.xml">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="162" column="72" selection-start="8398" selection-end="8398" vertical-scroll-proportion="0.46609125">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="modules.ent" pinned="false" current="true" current-in-tab="true">
+ <entry file="file://$PROJECT_DIR$/tools/etc/buildfragments/modules.ent">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="17" column="89" selection-start="1017" selection-end="1017" vertical-scroll-proportion="0.25154132">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="FederatingPortletInvokerTestCase.java" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/federation/src/main/org/jboss/portal/test/portlet/federation/FederatingPortletInvokerTestCase.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="28" column="49" selection-start="2112" selection-end="2112" vertical-scroll-proportion="0.10357583">
+ <folding>
+ <element signature="imports" expanded="true" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="PortletInvokerSupport.java" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/PortletInvokerSupport.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="50" column="13" selection-start="2838" selection-end="2838" vertical-scroll-proportion="-1.1155779">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="PortletSupport.java" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/PortletSupport.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="34" column="13" selection-start="2233" selection-end="2233" vertical-scroll-proportion="0.13316892">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
</leaf>
</component>
<component name="FindManager">
@@ -487,10 +1239,6 @@
<option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -510,51 +1258,21 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources" />
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources/test" />
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main/org/jboss/portal" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources/test/jsr168" />
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
- </PATH>
- <PATH>
<PATH_ELEMENT>
- <option name="myItemId" value="jboss-portal-portlet.ipr" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="portlet" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet" />
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources/test" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources/test/jsr168" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources/test/jsr168/api" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -574,29 +1292,17 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources" />
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources/test" />
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main/org/jboss/portal" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources/test/jsr168" />
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources/test/jsr168/api" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources/test/jsr168/api/actionrequest-war" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources/test/jsr168/api/actionrequest-war/WEB-INF" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -616,33 +1322,13 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources" />
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources/test" />
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main/org/jboss/portal" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources/test/jsr168" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources/test/jsr168/api" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources/test/jsr168/api/actionrequest-war" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources/test/jsr168/api/actionrequest-war/WEB-INF" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources/test/jsr168/api/actionrequest-war/WEB-INF/classes" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -650,25 +1336,9 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="portlet" />
+ <option name="myItemId" value="jsr168api" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
</PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/resources/test" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -676,25 +1346,13 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="portlet" />
+ <option name="myItemId" value="jsr168api" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet" />
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/jsr168api" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main/org/jboss/portal" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -702,29 +1360,9 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="portlet" />
+ <option name="myItemId" value="federation" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
</PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main/org/jboss/portal" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -732,68 +1370,14 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="portlet" />
+ <option name="myItemId" value="federation" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet" />
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/federation" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main/org/jboss/portal" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/metadata" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
</PATH>
- <PATH>
- <PATH_ELEMENT>
- <option name="myItemId" value="jboss-portal-portlet.ipr" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="portlet" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main/org/jboss/portal" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/management" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- </PATH>
</subPane>
</component>
<component name="ProjectReloadState">
@@ -807,7 +1391,7 @@
<showLibraryContents />
<hideEmptyPackages />
<abbreviatePackageNames />
- <showStructure PackagesPane="false" Scope="false" ProjectPane="false" />
+ <showStructure Scope="false" ProjectPane="false" PackagesPane="false" Favorites="false" />
<autoscrollToSource />
<autoscrollFromSource />
<sortByType />
@@ -828,11 +1412,18 @@
</component>
<component name="RecentsManager">
<key name="CopyClassDialog.RECENTS_KEY">
+ <recent name="org.jboss.portal.portlet.impl.state.consumer" />
+ <recent name="org.jboss.portal.portlet.test" />
<recent name="org.jboss.portal.portlet.registry" />
</key>
+ <key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
+ <recent name="org.jboss.portal.test.portlet.state" />
+ <recent name="org.jboss.portal.portlet.test.url" />
+ <recent name="org.jboss.portal.portlet.impl" />
+ </key>
</component>
<component name="RestoreUpdateTree" />
- <component name="RunManager" selected="Remote.Unnamed">
+ <component name="RunManager" selected="Remote.Tomcat">
<configuration default="true" type="Application" factoryName="Application" enabled="false" merge="false">
<option name="MAIN_CLASS_NAME" />
<option name="VM_PARAMETERS" />
@@ -843,6 +1434,25 @@
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<module name="" />
</configuration>
+ <configuration default="true" type="JUnit" factoryName="JUnit" enabled="false" merge="false">
+ <module name="" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="PACKAGE_NAME" />
+ <option name="MAIN_CLASS_NAME" />
+ <option name="METHOD_NAME" />
+ <option name="TEST_OBJECT" value="class" />
+ <option name="VM_PARAMETERS" />
+ <option name="PARAMETERS" />
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+ <option name="ADDITIONAL_CLASS_PATH" />
+ <option name="TEST_SEARCH_SCOPE">
+ <value defaultName="wholeProject" />
+ </option>
+ <method>
+ <option name="Make" value="true" />
+ </method>
+ </configuration>
<configuration default="true" type="Remote" factoryName="Remote">
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
@@ -862,33 +1472,30 @@
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
</configuration>
- <configuration default="true" type="JUnit" factoryName="JUnit" enabled="false" merge="false">
- <module name="" />
- <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
- <option name="ALTERNATIVE_JRE_PATH" />
- <option name="PACKAGE_NAME" />
- <option name="MAIN_CLASS_NAME" />
- <option name="METHOD_NAME" />
- <option name="TEST_OBJECT" value="class" />
- <option name="VM_PARAMETERS" />
- <option name="PARAMETERS" />
- <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
- <option name="ADDITIONAL_CLASS_PATH" />
- <option name="TEST_SEARCH_SCOPE">
- <value defaultName="wholeProject" />
- </option>
+ <configuration default="false" name="Tomcat" type="Remote" factoryName="Remote">
+ <option name="USE_SOCKET_TRANSPORT" value="true" />
+ <option name="SERVER_MODE" value="false" />
+ <option name="SHMEM_ADDRESS" value="javadebug" />
+ <option name="HOST" value="localhost" />
+ <option name="PORT" value="8000" />
+ <RunnerSettings RunnerId="Debug">
+ <option name="DEBUG_PORT" value="8000" />
+ <option name="TRANSPORT" value="0" />
+ <option name="LOCAL" value="false" />
+ </RunnerSettings>
+ <ConfigurationWrapper RunnerId="Debug" />
<method>
<option name="Make" value="true" />
</method>
</configuration>
- <configuration default="false" name="Unnamed" type="Remote" factoryName="Remote">
+ <configuration default="false" name="Runner" type="Remote" factoryName="Remote">
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
<option name="SHMEM_ADDRESS" value="javadebug" />
<option name="HOST" value="localhost" />
- <option name="PORT" value="8000" />
+ <option name="PORT" value="7878" />
<RunnerSettings RunnerId="Debug">
- <option name="DEBUG_PORT" value="8000" />
+ <option name="DEBUG_PORT" value="7878" />
<option name="TRANSPORT" value="0" />
<option name="LOCAL" value="false" />
</RunnerSettings>
@@ -978,7 +1585,7 @@
</todo-panel>
</component>
<component name="ToolWindowManager">
- <frame x="3" y="34" width="1680" height="958" extended-state="0" />
+ <frame x="6" y="37" width="1680" height="958" extended-state="0" />
<editor active="true" />
<layout>
<window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
@@ -998,8 +1605,9 @@
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="2" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="2" />
<window_info id="File View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
- <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.23577236" order="4" />
+ <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3786295" order="4" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" order="0" />
+ <window_info id="JProfiler" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
<window_info id="IDEtalk Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="0" />
@@ -1022,7 +1630,7 @@
<option name="PERFORM_COMMIT_IN_BACKGROUND" value="false" />
<option name="PUT_FOCUS_INTO_COMMENT" value="false" />
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
- <option name="LAST_COMMIT_MESSAGE" value="- somehow the portal servlet can almost render portlets" />
+ <option name="LAST_COMMIT_MESSAGE" value="improve singleton access to RemoteTestDriverServer" />
<option name="SAVE_LAST_COMMIT_MESSAGE" value="true" />
<option name="CHECKIN_DIALOG_SPLITTER_PROPORTION" value="0.8" />
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
@@ -1042,6 +1650,7 @@
<MESSAGE value="added few comments" />
<MESSAGE value="- forgot to wire the PortletContainer to the PortletApplication" />
<MESSAGE value="- somehow the portal servlet can almost render portlets" />
+ <MESSAGE value="improve singleton access to RemoteTestDriverServer" />
</component>
<component name="VssConfiguration">
<option name="CLIENT_PATH" value="" />
@@ -1087,115 +1696,117 @@
<component name="com.intellij.ide.util.scopeChooser.ScopeChooserConfigurable" proportions="" version="1">
<option name="myLastEditedConfigurable" />
</component>
- <component name="com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectRootMasterDetailsConfigurable" proportions="0.11111111,0.5" version="1">
+ <component name="com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectRootMasterDetailsConfigurable" proportions="0.11111111" version="1">
<option name="myPlainMode" value="false" />
- <option name="myLastEditedConfigurable" value="test" />
+ <option name="myLastEditedConfigurable" value="federation" />
</component>
<component name="com.intellij.profile.ui.ErrorOptionsConfigurable" proportions="" version="1">
<option name="myLastEditedConfigurable" />
</component>
<component name="editorHistoryManager">
- <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/tck/portletinterface/spec/UnavailableExceptionDuringProcessActionPortlet.java">
+ <entry file="file://$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/PortletController.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="68" column="77" selection-start="3593" selection-end="3593" vertical-scroll-proportion="0.55778897">
+ <state line="316" column="0" selection-start="12030" selection-end="12030" vertical-scroll-proportion="0.19346733">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/tck/portletinterface/spec/RuntimeExceptionDuringRequestHandlingPortlet.java">
+ <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/framework/portlet/components/AbstractUniversalTestPortlet.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="70" column="77" selection-start="3818" selection-end="3818" vertical-scroll-proportion="0.5879397">
+ <state line="186" column="25" selection-start="7092" selection-end="7092" vertical-scroll-proportion="0.015075377">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/tck/portletinterface/spec/PortletExceptionDuringRequestHandlingPortlet.java">
+ <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ProducerCacheInterceptor.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="68" column="77" selection-start="3677" selection-end="3677" vertical-scroll-proportion="0.55778897">
+ <state line="62" column="0" selection-start="3270" selection-end="3270" vertical-scroll-proportion="0.3517588">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/tck/portletinterface/spec/ExceptionsDuringRequestHandlingControllerPortlet.java">
+ <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ConsumerCacheInterceptor.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="90" column="15" selection-start="4984" selection-end="4984" vertical-scroll-proportion="0.6407035">
+ <state line="130" column="0" selection-start="5733" selection-end="5733" vertical-scroll-proportion="0.19346733">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/info/AbstractInfoTest.java">
+ <entry file="file://$PROJECT_DIR$/portlet/src/resources/test/jsr168/ext/expiringcache-war/WEB-INF/portlet.xml">
<provider selected="true" editor-type-id="text-editor">
- <state line="41" column="50" selection-start="2741" selection-end="2741" vertical-scroll-proportion="0.0">
+ <state line="136" column="66" selection-start="5317" selection-end="5319" vertical-scroll-proportion="0.57788944">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/framework/portlet/PortletTestDriver.java">
+ <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/expiringcache/ExpiringCacheSequenceBuilder.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="46" column="42" selection-start="2794" selection-end="2794" vertical-scroll-proportion="0.0">
+ <state line="62" column="21" selection-start="3543" selection-end="3561" vertical-scroll-proportion="-2.1105528">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/info/SecurityInfoTest.java">
+ <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="29" column="108" selection-start="2139" selection-end="2139" vertical-scroll-proportion="0.044389643">
+ <state line="350" column="0" selection-start="14169" selection-end="14169" vertical-scroll-proportion="0.30904523">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/test/src/resources/portlet-test-war/WEB-INF/jboss-beans.xml">
+ <entry file="file://$PROJECT_DIR$/test/build.xml">
<provider selected="true" editor-type-id="text-editor">
- <state line="19" column="64" selection-start="854" selection-end="854" vertical-scroll-proportion="0.015075377">
+ <state line="315" column="4" selection-start="16440" selection-end="16440" vertical-scroll-proportion="0.8581998">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/test/src/main/org/jboss/portal/portlet/test/PortalServlet.java">
+ <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/neverexpiringcache/NeverExpiringCacheSequenceBuilder.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="54" column="13" selection-start="3091" selection-end="3091" vertical-scroll-proportion="0.1356784">
+ <state line="63" column="0" selection-start="3652" selection-end="3652" vertical-scroll-proportion="0.48241207">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/test/src/resources/portlet-test-war/WEB-INF/web.xml">
+ <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/PortletSupport.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
+ <state line="34" column="13" selection-start="2233" selection-end="2233" vertical-scroll-proportion="0.13316892">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/metadata/SecurityConstraintMetaData.java">
+ <entry file="file://$PROJECT_DIR$/federation/src/main/org/jboss/portal/test/portlet/federation/FederatingPortletInvokerTestCase.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="31" column="13" selection-start="1972" selection-end="1972" vertical-scroll-proportion="0.13316892">
- <folding />
+ <state line="28" column="49" selection-start="2112" selection-end="2112" vertical-scroll-proportion="0.10357583">
+ <folding>
+ <element signature="imports" expanded="true" />
+ </folding>
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/tools/etc/buildfragments/buildmagic.ent">
+ <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/state/PortletInvokerSupport.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="657" column="27" selection-start="24049" selection-end="24055" vertical-scroll-proportion="0.18216081">
+ <state line="50" column="13" selection-start="2838" selection-end="2838" vertical-scroll-proportion="-1.1155779">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/test/portlet/ha/session/SessionTestCase.java">
+ <entry file="file://$PROJECT_DIR$/federation/build.xml">
<provider selected="true" editor-type-id="text-editor">
- <state line="31" column="13" selection-start="2040" selection-end="2040" vertical-scroll-proportion="0.13316892">
+ <state line="100" column="33" selection-start="5547" selection-end="5547" vertical-scroll-proportion="0.3403206">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/portlet/src/main/org/jboss/portal/portlet/deployment/JBossApplicationMetaDataFactory.java">
+ <entry file="file://$PROJECT_DIR$/portlet/build.xml">
<provider selected="true" editor-type-id="text-editor">
- <state line="43" column="26" selection-start="2605" selection-end="2605" vertical-scroll-proportion="-0.5427136">
+ <state line="162" column="72" selection-start="8398" selection-end="8398" vertical-scroll-proportion="0.46609125">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/test/build.xml">
+ <entry file="file://$PROJECT_DIR$/tools/etc/buildfragments/modules.ent">
<provider selected="true" editor-type-id="text-editor">
- <state line="253" column="37" selection-start="12848" selection-end="12848" vertical-scroll-proportion="0.7336621">
+ <state line="17" column="89" selection-start="1017" selection-end="1017" vertical-scroll-proportion="0.25154132">
<folding />
</state>
</provider>
Modified: modules/portlet/trunk/portlet/build.xml
===================================================================
--- modules/portlet/trunk/portlet/build.xml 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/build.xml 2007-08-30 21:10:49 UTC (rev 8115)
@@ -159,6 +159,11 @@
</jar>
<!-- Portlet test lib jar -->
+ <jar jarfile="${build.lib}/portal-portlet-test-lib.jar">
+ <fileset dir="${build.classes}" includes="org/jboss/portal/test/portlet/**"/>
+ </jar>
+
+ <!-- Portlet test framework lib jar -->
<jar jarfile="${build.lib}/portal-portlet-test-framework-lib.jar">
<fileset dir="${build.classes}" includes="org/jboss/portal/test/framework/portlet/**"/>
</jar>
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/DispatchedHttpServletRequest.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/DispatchedHttpServletRequest.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/DispatchedHttpServletRequest.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -105,7 +105,7 @@
if (queryString.length() > 0)
{
this.parameters = new PortletParameters(rreq.getParameterMap());
- this.parameters.putAll(QueryStringParser.parseQueryString(queryString));
+ this.parameters.putAll(QueryStringParser.getInstance().parseQueryString(queryString));
}
else
{
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/api/ActionResponseImpl.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/api/ActionResponseImpl.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/api/ActionResponseImpl.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -24,7 +24,6 @@
import org.apache.log4j.Logger;
import org.jboss.portal.Mode;
-import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.portlet.PortletParametersStateString;
import org.jboss.portal.portlet.impl.jsr168.PortletUtils;
import org.jboss.portal.portlet.invocation.ActionInvocation;
@@ -126,8 +125,14 @@
// do something more clever than simply returning
return;
}
- URLTools.enforceAbsoluteURL(location);
- sendRedirect(new HTTPRedirectionResponse(location));
+ if (location.startsWith("http://") || location.startsWith("https://") || location.startsWith("/"))
+ {
+ sendRedirect(new HTTPRedirectionResponse(location));
+ }
+ else
+ {
+ throw new IllegalArgumentException("URL must be absolute. Was: " + location);
+ }
}
/**
Added: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractInstanceContext.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractInstanceContext.java (rev 0)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractInstanceContext.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,102 @@
+/******************************************************************************
+ * 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.portlet.impl.spi;
+
+import org.jboss.portal.portlet.state.AccessMode;
+import org.jboss.portal.portlet.PortletContext;
+import org.jboss.portal.portlet.StateEvent;
+import org.jboss.portal.portlet.spi.InstanceContext;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class AbstractInstanceContext implements InstanceContext
+{
+
+ /** . */
+ private final String id;
+
+ /** . */
+ private final AccessMode accessMode;
+
+ /** . */
+ private PortletContext clonedContext;
+
+ /** . */
+ private PortletContext modifiedContext;
+
+ public AbstractInstanceContext(String id)
+ {
+ this(id, AccessMode.READ_ONLY);
+ }
+
+ public AbstractInstanceContext(String id, AccessMode accessMode)
+ {
+ if (id == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ if (accessMode == null)
+ {
+ throw new IllegalArgumentException();
+ }
+
+ //
+ this.id = id;
+ this.accessMode = accessMode;
+ }
+
+ public String getId()
+ {
+ return id;
+ }
+
+ public AccessMode getAccessMode()
+ {
+ return accessMode;
+ }
+
+ public void onStateEvent(StateEvent event)
+ {
+ StateEvent.StateEventType type = event.getType();
+ if (StateEvent.PORTLET_CLONED_EVENT.equals(type))
+ {
+ clonedContext = event.getPortletContext();
+ }
+ else if (StateEvent.PORTLET_MODIFIED_EVENT.equals(type))
+ {
+ modifiedContext = event.getPortletContext();
+ }
+ }
+
+ public PortletContext getClonedContext()
+ {
+ return clonedContext;
+ }
+
+ public PortletContext getModifiedContext()
+ {
+ return modifiedContext;
+ }
+}
Added: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractPortalContext.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractPortalContext.java (rev 0)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractPortalContext.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,99 @@
+/******************************************************************************
+ * 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.portlet.impl.spi;
+
+import org.jboss.portal.WindowState;
+import org.jboss.portal.Mode;
+import org.jboss.portal.portlet.spi.PortalContext;
+import org.jboss.portal.common.util.CollectionBuilder;
+
+import java.util.Set;
+import java.util.Map;
+import java.util.Collections;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class AbstractPortalContext implements PortalContext
+{
+
+ /** . */
+ private static final Set ALL_WINDOW_STATES = Collections.unmodifiableSet(new CollectionBuilder().add(WindowState.MAXIMIZED).add(WindowState.MINIMIZED).add(WindowState.NORMAL).toHashSet());
+
+ /** . */
+ private static final Set ALL_MODES = Collections.unmodifiableSet(new CollectionBuilder().add(Mode.EDIT).add(Mode.HELP).add(Mode.VIEW).toHashSet());
+
+ /** . */
+ private final Set windowStates;
+
+ /** . */
+ private final Set modes;
+
+ /** . */
+ private final Map props;
+
+ public AbstractPortalContext(Set windowStates, Set modes, Map props)
+ {
+ if (windowStates == null)
+ {
+ throw new IllegalArgumentException("No window states provided");
+ }
+ if (modes == null)
+ {
+ throw new IllegalArgumentException("No modes provided");
+ }
+ if (props == null)
+ {
+ throw new IllegalArgumentException("No properties provided");
+ }
+ this.windowStates = windowStates;
+ this.modes = modes;
+ this.props = props;
+ }
+
+ public AbstractPortalContext()
+ {
+ this(ALL_WINDOW_STATES, ALL_MODES, Collections.EMPTY_MAP);
+ }
+
+ public String getInfo()
+ {
+ return "JBossPortal/1.0";
+ }
+
+ public Set getWindowStates()
+ {
+ return windowStates;
+ }
+
+ public Set getModes()
+ {
+ return modes;
+ }
+
+ public Map getProperties()
+ {
+ return props;
+ }
+}
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractPortletInvocationContext.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractPortletInvocationContext.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractPortletInvocationContext.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -27,6 +27,7 @@
import org.jboss.portal.common.util.MarkupInfo;
import org.jboss.portal.portlet.spi.PortletInvocationContext;
import org.jboss.portal.portlet.StateString;
+import org.jboss.portal.portlet.invocation.response.HTTPRedirectionResponse;
import org.jboss.portal.Mode;
import org.jboss.portal.WindowState;
@@ -85,10 +86,15 @@
*/
public String encodeResourceURL(String url) throws IllegalArgumentException
{
- URLTools.enforceAbsoluteURL(url);
-
- //
- return getClientResponse().encodeURL(url);
+ if (url == null)
+ {
+ throw new IllegalArgumentException("URL cannot be null");
+ }
+ if (url.startsWith("http://") || url.startsWith("https://") || url.startsWith("/"))
+ {
+ return getClientResponse().encodeURL(url);
+ }
+ throw new IllegalArgumentException("Invalid URL " + url);
}
public Mode getMode()
Added: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractUserContext.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractUserContext.java (rev 0)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractUserContext.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,84 @@
+/******************************************************************************
+ * 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.portlet.impl.spi;
+
+import org.jboss.portal.common.util.Tools;
+import org.jboss.portal.portlet.spi.UserContext;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+import java.util.Collections;
+import java.util.Locale;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class AbstractUserContext implements UserContext
+{
+
+ /** . */
+ private HttpServletRequest clientRequest;
+
+ public AbstractUserContext(HttpServletRequest clientRequest)
+ {
+ if (clientRequest == null)
+ {
+ throw new IllegalArgumentException("No client request provided");
+ }
+ this.clientRequest = clientRequest;
+ }
+
+ /**
+ * Returns null.
+ */
+ public String getId()
+ {
+ return clientRequest.getRemoteUser();
+ }
+
+ /**
+ * Returns <code>Collections.EMPTY_MAP</code>.
+ */
+ public Map getInformations()
+ {
+ return Collections.EMPTY_MAP;
+ }
+
+ /**
+ * Returns <code>Locale.ENGLISH</code>.
+ */
+ public Locale getLocale()
+ {
+ return clientRequest.getLocale();
+ }
+
+ /**
+ * Returns <code>Collections.EMPTY_LIST</code>.
+ */
+ public List getLocales()
+ {
+ return Tools.toList(clientRequest.getLocales());
+ }
+}
Added: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractWindowContext.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractWindowContext.java (rev 0)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractWindowContext.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,50 @@
+/******************************************************************************
+ * 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.portlet.impl.spi;
+
+import org.jboss.portal.portlet.spi.WindowContext;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class AbstractWindowContext implements WindowContext
+{
+
+ /** . */
+ private final String id;
+
+ public AbstractWindowContext(String id)
+ {
+ if (id == null)
+ {
+ throw new IllegalArgumentException("No window id provided");
+ }
+ this.id = id;
+ }
+
+ public String getId()
+ {
+ return id;
+ }
+}
Added: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/state/consumer/AbstractConsumerPersistenceManagerService.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/state/consumer/AbstractConsumerPersistenceManagerService.java (rev 0)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/state/consumer/AbstractConsumerPersistenceManagerService.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,116 @@
+/******************************************************************************
+ * 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.portlet.impl.state.consumer;
+
+import org.jboss.portal.portlet.state.consumer.ConsumerPersistenceManager;
+import org.jboss.portal.portlet.state.consumer.ConsumerStateContext;
+import org.jboss.portal.portlet.state.consumer.ConsumerState;
+import org.jboss.portal.portlet.state.NoSuchStateException;
+import org.jboss.portal.portlet.state.InvalidStateIdException;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public abstract class AbstractConsumerPersistenceManagerService implements ConsumerPersistenceManager
+{
+
+ /** . */
+ private int counter = 0;
+
+ protected abstract ConsumerStateContext get(String stateId);
+ protected abstract void put(String stateId, ConsumerStateContext state);
+ protected abstract void remove(String stateId);
+ protected abstract int size();
+
+ public synchronized ConsumerStateContext loadState(String stateId) throws IllegalArgumentException, NoSuchStateException, InvalidStateIdException
+ {
+ checkId(stateId);
+ ConsumerStateContext state = get(stateId);
+ if (state == null)
+ {
+ throw new NoSuchStateException(stateId);
+ }
+ return state;
+ }
+
+ public synchronized String createState(ConsumerState state) throws IllegalArgumentException
+ {
+ if (state == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ ConsumerStateContext ctx = new ConsumerStateContext(Integer.toString(counter++), state.getPortletId(), state.getBytes());
+ put(ctx.getId(), ctx);
+ return ctx.getId();
+ }
+
+ public synchronized void updateState(String stateId, ConsumerState state) throws IllegalArgumentException, NoSuchStateException, InvalidStateIdException
+ {
+ checkId(stateId);
+ if (state == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ if (get(stateId) != null)
+ {
+ throw new NoSuchStateException(stateId);
+ }
+
+ //
+ put(stateId, new ConsumerStateContext(stateId, state.getPortletId(), state.getBytes()));
+ }
+
+ public synchronized void destroyState(String stateId) throws IllegalArgumentException, NoSuchStateException, InvalidStateIdException
+ {
+ checkId(stateId);
+ if (get(stateId) != null)
+ {
+ throw new NoSuchStateException(stateId);
+ }
+
+ //
+ remove(stateId);
+ }
+
+ public synchronized int getSize()
+ {
+ return size();
+ }
+
+ private void checkId(String stateId) throws IllegalArgumentException, InvalidStateIdException
+ {
+ if (stateId == null)
+ {
+ throw new IllegalArgumentException("No null state id accepted");
+ }
+ try
+ {
+ Integer.parseInt(stateId);
+ }
+ catch (NumberFormatException e)
+ {
+ throw new InvalidStateIdException(e, stateId);
+ }
+ }
+}
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/state/consumer/ConsumerPersistenceManagerService.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/state/consumer/ConsumerPersistenceManagerService.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/state/consumer/ConsumerPersistenceManagerService.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -22,10 +22,6 @@
******************************************************************************/
package org.jboss.portal.portlet.impl.state.consumer;
-import org.jboss.portal.portlet.state.InvalidStateIdException;
-import org.jboss.portal.portlet.state.NoSuchStateException;
-import org.jboss.portal.portlet.state.consumer.ConsumerPersistenceManager;
-import org.jboss.portal.portlet.state.consumer.ConsumerState;
import org.jboss.portal.portlet.state.consumer.ConsumerStateContext;
import java.util.HashMap;
@@ -35,77 +31,29 @@
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 1.1 $
*/
-public class ConsumerPersistenceManagerService implements ConsumerPersistenceManager
+public class ConsumerPersistenceManagerService extends AbstractConsumerPersistenceManagerService
{
/** . */
private Map store = new HashMap();
- /** . */
- private int counter = 0;
-
- public synchronized ConsumerStateContext loadState(String stateId) throws IllegalArgumentException, NoSuchStateException, InvalidStateIdException
+ protected ConsumerStateContext get(String stateId)
{
- checkId(stateId);
- ConsumerStateContext state = (ConsumerStateContext)store.get(stateId);
- if (state == null)
- {
- throw new NoSuchStateException(stateId);
- }
- return state;
+ return (ConsumerStateContext)store.get(stateId);
}
- public synchronized String createState(ConsumerState state) throws IllegalArgumentException
+ protected void put(String stateId, ConsumerStateContext state)
{
- if (state == null)
- {
- throw new IllegalArgumentException();
- }
- ConsumerStateContext ctx = new ConsumerStateContext(Integer.toString(counter++), state.getPortletId(), state.getBytes());
- store.put(ctx.getId(), ctx);
- return ctx.getId();
+ store.put(stateId, state);
}
- public synchronized void updateState(String stateId, ConsumerState state) throws IllegalArgumentException, NoSuchStateException, InvalidStateIdException
+ protected void remove(String stateId)
{
- checkId(stateId);
- if (state == null)
- {
- throw new IllegalArgumentException();
- }
- if (store.put(stateId, new ConsumerStateContext(stateId, state.getPortletId(), state.getBytes())) == null)
- {
- throw new NoSuchStateException(stateId);
- }
+ store.remove(stateId);
}
- public synchronized void destroyState(String stateId) throws IllegalArgumentException, NoSuchStateException, InvalidStateIdException
+ protected int size()
{
- checkId(stateId);
- if (store.remove(stateId) == null)
- {
- throw new NoSuchStateException(stateId);
- }
- }
-
- public synchronized int getSize()
- {
return store.size();
}
-
- private void checkId(String stateId) throws IllegalArgumentException, InvalidStateIdException
- {
- if (stateId == null)
- {
- throw new IllegalArgumentException("No null state id accepted");
- }
- try
- {
- Integer.parseInt(stateId);
- }
- catch (NumberFormatException e)
- {
- throw new InvalidStateIdException(e, stateId);
- }
- }
}
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/support/spi/SecurityContextSupport.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/support/spi/SecurityContextSupport.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/support/spi/SecurityContextSupport.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -60,7 +60,6 @@
throw new UnsupportedOperationException();
}
-
public boolean isAuthenticated()
{
throw new UnsupportedOperationException();
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/support/spi/UserContextSupport.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/support/spi/UserContextSupport.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/support/spi/UserContextSupport.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -36,35 +36,23 @@
public class UserContextSupport implements UserContext
{
- /**
- * Returns null.
- */
public String getId()
{
- return null;
+ throw new UnsupportedOperationException();
}
- /**
- * Returns <code>Collections.EMPTY_MAP</code>.
- */
public Map getInformations()
{
- return Collections.EMPTY_MAP;
+ throw new UnsupportedOperationException();
}
- /**
- * Returns <code>Locale.ENGLISH</code>.
- */
public Locale getLocale()
{
- return Locale.ENGLISH;
+ throw new UnsupportedOperationException();
}
- /**
- * Returns <code>Collections.EMPTY_LIST</code>.
- */
public List getLocales()
{
- return Collections.EMPTY_LIST;
+ throw new UnsupportedOperationException();
}
}
Deleted: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/ActionContextImpl.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/ActionContextImpl.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/ActionContextImpl.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -1,56 +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.portlet.test;
-
-import org.jboss.portal.Mode;
-import org.jboss.portal.common.invocation.resolver.MapAttributeResolver;
-import org.jboss.portal.portlet.invocation.PortletInvocation;
-import org.jboss.portal.portlet.support.spi.ActionContextSupport;
-
-/**
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 5113 $
- */
-public class ActionContextImpl extends ActionContextSupport
-{
-
- /** . */
- private final Mode mode;
-
- public ActionContextImpl(Mode mode)
- {
- this.mode = mode;
- addResolver(PortletInvocation.REQUEST_SCOPE, new MapAttributeResolver());
- addResolver(PortletInvocation.INVOCATION_SCOPE, new MapAttributeResolver());
- }
-
- public ActionContextImpl()
- {
- this(Mode.EDIT);
- }
-
- public Mode getMode()
- {
- return mode;
- }
-}
Deleted: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/InstanceContextImpl.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/InstanceContextImpl.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/InstanceContextImpl.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -1,102 +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.portlet.test;
-
-import org.jboss.portal.portlet.PortletContext;
-import org.jboss.portal.portlet.StateEvent;
-import org.jboss.portal.portlet.spi.InstanceContext;
-import org.jboss.portal.portlet.state.AccessMode;
-
-/**
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 1.1 $
- */
-public class InstanceContextImpl implements InstanceContext
-{
-
- /** . */
- private final String id;
-
- /** . */
- private final AccessMode accessMode;
-
- /** . */
- private PortletContext clonedContext;
-
- /** . */
- private PortletContext modifiedContext;
-
- public InstanceContextImpl(String id)
- {
- this(id, AccessMode.READ_ONLY);
- }
-
- public InstanceContextImpl(String id, AccessMode accessMode)
- {
- if (id == null)
- {
- throw new IllegalArgumentException();
- }
- if (accessMode == null)
- {
- throw new IllegalArgumentException();
- }
-
- //
- this.id = id;
- this.accessMode = accessMode;
- }
-
- public String getId()
- {
- return id;
- }
-
- public AccessMode getAccessMode()
- {
- return accessMode;
- }
-
- public void onStateEvent(StateEvent event)
- {
- StateEvent.StateEventType type = event.getType();
- if (StateEvent.PORTLET_CLONED_EVENT.equals(type))
- {
- clonedContext = event.getPortletContext();
- }
- else if (StateEvent.PORTLET_MODIFIED_EVENT.equals(type))
- {
- modifiedContext = event.getPortletContext();
- }
- }
-
- public PortletContext getClonedContext()
- {
- return clonedContext;
- }
-
- public PortletContext getModifiedContext()
- {
- return modifiedContext;
- }
-}
Deleted: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/TestPortalContext.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/TestPortalContext.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/TestPortalContext.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -1,76 +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.portlet.test;
-
-import org.jboss.portal.Mode;
-import org.jboss.portal.WindowState;
-import org.jboss.portal.common.util.CollectionBuilder;
-import org.jboss.portal.portlet.spi.PortalContext;
-
-import java.util.Collections;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 7001 $
- */
-public class TestPortalContext implements PortalContext
-{
-
- /** . */
- private final Set windowStates;
-
- /** . */
- private final Set modes;
-
- /** . */
- private final Map props;
-
- public TestPortalContext()
- {
- windowStates = Collections.unmodifiableSet(new CollectionBuilder().add(WindowState.MAXIMIZED).add(WindowState.MINIMIZED).add(WindowState.NORMAL).toHashSet());
- modes = Collections.unmodifiableSet(new CollectionBuilder().add(Mode.EDIT).add(Mode.HELP).add(Mode.VIEW).toHashSet());
- props = Collections.EMPTY_MAP;
- }
-
- public String getInfo()
- {
- return "JBossPortal/1.0";
- }
-
- public Set getWindowStates()
- {
- return windowStates;
- }
-
- public Set getModes()
- {
- return modes;
- }
-
- public Map getProperties()
- {
- return props;
- }
-}
Deleted: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/TestPortletInvoker.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/TestPortletInvoker.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/TestPortletInvoker.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -1,157 +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.portlet.test;
-
-import org.jboss.portal.common.invocation.InterceptorStackFactory;
-import org.jboss.portal.common.invocation.Invocation;
-import org.jboss.portal.common.invocation.InvocationException;
-import org.jboss.portal.common.invocation.InvocationHandler;
-import org.jboss.portal.portlet.Portlet;
-import org.jboss.portal.portlet.PortletContext;
-import org.jboss.portal.portlet.PortletInvoker;
-import org.jboss.portal.portlet.PortletInvokerException;
-import org.jboss.portal.portlet.invocation.PortletInvocation;
-import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
-import org.jboss.portal.portlet.state.PropertyChange;
-import org.jboss.portal.portlet.state.PropertyMap;
-
-import java.util.List;
-import java.util.Set;
-
-/**
- * A simple consumer.
- *
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 6712 $
- */
-public class TestPortletInvoker implements PortletInvoker
-{
-
- /** . */
- private InterceptorStackFactory stackFactory;
-
- /** . */
- private PortletInvoker producer;
-
- /** . */
- private InvocationHandler handler = new InvocationHandler()
- {
- public Object invoke(Invocation invocation) throws Exception, InvocationException
- {
- PortletInvocation portletInvocation = (PortletInvocation)invocation;
- try
- {
- portletInvocation.setHandler(null);
- return producer.invoke(portletInvocation);
- }
- finally
- {
- portletInvocation.setHandler(this);
- }
- }
- };
-
- public InterceptorStackFactory getStackFactory()
- {
- return stackFactory;
- }
-
- public void setStackFactory(InterceptorStackFactory stackFactory)
- {
- this.stackFactory = stackFactory;
- }
-
- public PortletInvoker getProducer()
- {
- return producer;
- }
-
- public void setProducer(PortletInvoker producer)
- {
- this.producer = producer;
- }
-
- public Set getPortlets() throws PortletInvokerException
- {
- return producer.getPortlets();
- }
-
- public Portlet getPortlet(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException
- {
- return producer.getPortlet(portletContext);
- }
-
- public PortletInvocationResponse invoke(PortletInvocation invocation) throws PortletInvokerException
- {
- InvocationHandler prevHandler = invocation.getHandler();
- try
- {
- invocation.setHandler(handler);
- return (PortletInvocationResponse)invocation.invoke(stackFactory.getInterceptorStack());
- }
- catch (Exception e)
- {
- if (e instanceof PortletInvokerException)
- {
- throw(PortletInvokerException)e;
- }
- else if (e instanceof RuntimeException)
- {
- throw(RuntimeException)e;
- }
- else
- {
- throw new PortletInvokerException(e);
- }
- }
- finally
- {
- invocation.setHandler(prevHandler);
- }
- }
-
- public PortletContext createClone(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
- {
- throw new UnsupportedOperationException();
- }
-
- public List destroyClones(List portletContexts) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
- {
- throw new UnsupportedOperationException();
- }
-
- public PropertyMap getProperties(PortletContext portletContext, Set keys) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
- {
- throw new UnsupportedOperationException();
- }
-
- public PropertyMap getProperties(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
- {
- throw new UnsupportedOperationException();
- }
-
- public PortletContext setProperties(PortletContext portletContext, PropertyChange[] changes) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
- {
- throw new UnsupportedOperationException();
- }
-}
Deleted: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/UserContextImpl.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/UserContextImpl.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/UserContextImpl.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -1,55 +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.portlet.test;
-
-import org.jboss.portal.portlet.support.spi.UserContextSupport;
-
-/**
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 3188 $
- */
-public class UserContextImpl extends UserContextSupport
-{
-
- /** . */
- private final String id;
-
- public UserContextImpl(String id)
- {
- if (id == null)
- {
- throw new IllegalArgumentException();
- }
- this.id = id;
- }
-
- public UserContextImpl()
- {
- this.id = null;
- }
-
- public String getId()
- {
- return id;
- }
-}
Deleted: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/ValueMapAssert.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/ValueMapAssert.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/ValueMapAssert.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -1,65 +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.portlet.test;
-
-import junit.framework.Assert;
-import org.jboss.portal.common.value.Value;
-import org.jboss.portal.portlet.state.PropertyMap;
-
-import java.util.HashSet;
-import java.util.Iterator;
-
-/**
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 5448 $
- */
-public class ValueMapAssert extends Assert
-{
- public static void assertEquals(PropertyMap vm1, PropertyMap vm2)
- {
- if (vm1 == null)
- {
- if (vm2 != null)
- {
- fail("Value map should be null");
- }
- }
- else
- {
- if (vm2 == null)
- {
- fail("Value map should not be null");
- }
- assertEquals("Value maps don't have the same keys", new HashSet(vm1.keySet()), new HashSet(vm2.keySet()));
- for (Iterator i = vm1.keySet().iterator(); i.hasNext();)
- {
- String key = (String)i.next();
- Value v1 = vm1.getProperty(key);
- Value v2 = vm2.getProperty(key);
- assertEquals("Values for key " + key + " are not equals", v1, v2);
- }
- }
- }
-
-
-}
Deleted: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/support/PortletInvokerSupport.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/support/PortletInvokerSupport.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/support/PortletInvokerSupport.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -1,259 +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.portlet.test.support;
-
-import org.jboss.portal.portlet.InvalidPortletIdException;
-import org.jboss.portal.portlet.NoSuchPortletException;
-import org.jboss.portal.portlet.Portlet;
-import org.jboss.portal.portlet.PortletContext;
-import org.jboss.portal.portlet.PortletInvoker;
-import org.jboss.portal.portlet.PortletInvokerException;
-import org.jboss.portal.portlet.support.info.PortletInfoSupport;
-import org.jboss.portal.portlet.info.PortletInfo;
-import org.jboss.portal.portlet.invocation.PortletInvocation;
-import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
-import org.jboss.portal.portlet.state.PropertyChange;
-import org.jboss.portal.portlet.state.PropertyMap;
-import org.jboss.portal.portlet.state.SimplePropertyMap;
-import org.jboss.portal.common.value.Value;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.Iterator;
-
-/**
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 6712 $
- */
-public class PortletInvokerSupport implements PortletInvoker
-{
-
- /** . */
- private Map portlets;
-
- public PortletInvokerSupport()
- {
- this.portlets = new HashMap();
- }
-
- public void setValid(String portletId, boolean valid)
- {
- getInternalPortlet(portletId).valid = valid;
- }
-
- public InternalPortlet addInternalPortlet(String portletId, PortletInfoSupport info)
- {
- return addInternalPortlet(portletId, new PortletSupport(info));
- }
-
- public InternalPortlet addInternalPortlet(String portletId, PortletSupport support)
- {
- if (portletId == null)
- {
- throw new IllegalArgumentException();
- }
- if (support == null)
- {
- throw new IllegalArgumentException();
- }
- InternalPortlet portlet = new InternalPortlet(portletId, support);
- if (portlets.put(portletId, portlet) != null)
- {
- throw new IllegalStateException();
- }
- return portlet;
- }
-
- public PortletInvokerSupport removeInternalPortlet(String portletId)
- {
- if (portlets.remove(portletId) == null)
- {
- throw new IllegalStateException();
- }
- return this;
- }
-
- public InternalPortlet getInternalPortlet(String portletId)
- {
- if (portletId == null)
- {
- throw new IllegalArgumentException();
- }
- InternalPortlet portlet = (InternalPortlet)portlets.get(portletId);
- if (portlet == null)
- {
- throw new IllegalArgumentException();
- }
- return portlet;
- }
-
- public Set getPortlets()
- {
- return new HashSet(portlets.values());
- }
-
- public Portlet getPortlet(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException
- {
- return internalGetPortlet(portletContext);
- }
-
- public PortletInvocationResponse invoke(PortletInvocation invocation) throws PortletInvokerException
- {
- PortletContext portletContext = invocation.getTarget();
- InternalPortlet portlet = internalGetPortlet(portletContext);
- return portlet.support.invoke(invocation);
- }
-
- private InternalPortlet internalGetPortlet(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException
- {
- if (portletContext == null)
- {
- throw new IllegalArgumentException();
- }
- String portletId = portletContext.getId();
- InternalPortlet portlet = (InternalPortlet)portlets.get(portletId);
- if (portlet == null)
- {
- throw new NoSuchPortletException(portletId);
- }
- if (portlet.isValid() == false)
- {
- throw new InvalidPortletIdException(portletId);
- }
- return portlet;
- }
-
- public static class InternalPortlet implements Portlet
- {
-
- /** . */
- private final PortletContext portletContext;
-
- /** . */
- private final PortletSupport support;
-
- /** . */
- private boolean valid;
-
- /** . */
- private Map state;
-
- public InternalPortlet(String portletId, PortletSupport support)
- {
- if (portletId == null)
- {
- throw new IllegalArgumentException();
- }
- if (support == null)
- {
- throw new IllegalArgumentException();
- }
- this.portletContext = PortletContext.createPortletContext(portletId);
- this.support = support;
- this.valid = true;
- this.state = new HashMap();
- }
-
- public void addPreference(String key, Value value)
- {
- support.getInfoSupport().getPreferencesSupport().addPreference(key);
- state.put(key, value);
- }
-
- public void addPreference(String key, Value value, Boolean readOnly)
- {
- support.getInfoSupport().getPreferencesSupport().addPreference(key, readOnly);
- state.put(key, value);
- }
-
- public PortletContext getContext()
- {
- return portletContext;
- }
-
- public PortletInfo getInfo()
- {
- return support.getInfoSupport();
- }
-
- public boolean isRemote()
- {
- return false;
- }
-
- public boolean isValid()
- {
- return valid;
- }
- }
-
- public PropertyMap getProperties(PortletContext portletContext, Set keys) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
- {
- InternalPortlet internalPortlet = internalGetPortlet(portletContext);
- PropertyMap props = new SimplePropertyMap();
- for (Iterator i = keys.iterator();i.hasNext();)
- {
- String key = (String)i.next();
- Value value = (Value)internalPortlet.state.get(key);
- if (value != null)
- {
- props.put(key, value.clone());
- }
- }
- return props;
- }
-
- public PropertyMap getProperties(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
- {
- InternalPortlet internalPortlet = internalGetPortlet(portletContext);
- PropertyMap props = new SimplePropertyMap();
- for (Iterator i = internalPortlet.state.keySet().iterator();i.hasNext();)
- {
- String key = (String)i.next();
- Value value = (Value)internalPortlet.state.get(key);
- if (value != null)
- {
- props.put(key, value.clone());
- }
- }
- return props;
- }
-
- public PortletContext createClone(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
- {
- throw new UnsupportedOperationException();
- }
-
- public List destroyClones(List portletContexts) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
- {
- throw new UnsupportedOperationException();
- }
-
- public PortletContext setProperties(PortletContext portletContext, PropertyChange[] changes) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
- {
- throw new UnsupportedOperationException();
- }
-}
Deleted: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/support/PortletSupport.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/support/PortletSupport.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/support/PortletSupport.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -1,68 +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.portlet.test.support;
-
-import org.jboss.portal.portlet.PortletInvokerException;
-import org.jboss.portal.portlet.support.info.PortletInfoSupport;
-import org.jboss.portal.portlet.info.PortletInfo;
-import org.jboss.portal.portlet.invocation.PortletInvocation;
-import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
-
-/**
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 6116 $
- */
-public class PortletSupport
-{
-
- /** . */
- protected final PortletInfoSupport info;
-
- /** . */
- protected boolean valid;
-
- public PortletSupport(PortletInfoSupport info)
- {
- if (info == null)
- {
- throw new IllegalArgumentException();
- }
- this.info = info;
- this.valid = true;
- }
-
- public PortletSupport()
- {
- this(new PortletInfoSupport());
- }
-
- public PortletInfoSupport getInfoSupport()
- {
- return info;
- }
-
- public PortletInvocationResponse invoke(PortletInvocation invocation) throws PortletInvokerException
- {
- throw new PortletInvokerException("No implementations");
- }
-}
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/framework/portlet/PortletTestContext.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/framework/portlet/PortletTestContext.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/framework/portlet/PortletTestContext.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -23,6 +23,7 @@
package org.jboss.portal.test.framework.portlet;
import org.jboss.portal.test.framework.driver.DriverResponse;
+import org.jboss.portal.test.framework.driver.http.HTTPTestContext;
import org.jboss.portal.test.framework.driver.remote.TestContext;
import org.jboss.portal.test.framework.server.NodeId;
import org.jboss.portal.test.framework.TestParameterValue;
@@ -39,16 +40,20 @@
final String testName;
/** . */
- final TestContext testContext;
+ final HTTPTestContext testContext;
public PortletTestContext(String testName, TestContext httpTestContext)
{
if (httpTestContext == null)
{
- throw new IllegalArgumentException("No http test context to wrap");
+ throw new IllegalArgumentException("No HTTP test context to wrap");
}
+ if (!(httpTestContext instanceof HTTPTestContext))
+ {
+ throw new IllegalArgumentException("Test context is not an HTTP test context");
+ }
this.testName = testName;
- this.testContext = httpTestContext;
+ this.testContext = (HTTPTestContext)httpTestContext;
}
public String getTestName()
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/framework/portlet/PortletTestDriver.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/framework/portlet/PortletTestDriver.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/framework/portlet/PortletTestDriver.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -187,7 +187,7 @@
public DriverResponse invoke(String string, DriverCommand driverCommand) throws TestDriverException
{
- return new InvokeGetResponse(path + "/" + name);
+ return new InvokeGetResponse(context.testContext.getInitialPath());
}
}
}
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/common/AbstractCacheSequenceBuilder.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -294,6 +294,8 @@
// Refresh with different navigational state to check it will be called in the next render phase
PortletURL url = response.createRenderURL();
+ url.setPortletMode(PortletMode.VIEW);
+ url.setWindowState(WindowState.NORMAL);
return new InvokeGetResponse(url.toString());
}
});
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/portletrequests/PortletRequestsSequenceBuilder.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/portletrequests/PortletRequestsSequenceBuilder.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/portletrequests/PortletRequestsSequenceBuilder.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -76,12 +76,11 @@
{
protected DriverResponse run(Portlet portlet, RenderRequest request, RenderResponse response, PortletTestContext context)
{
- InvokePostResponse iur = new InvokePostResponse();
PortletURL url = response.createActionURL();
url.setParameter("g_foo1", "g_bar1_1");
url.setParameter("g_foo2", new String[]{"g_bar2_1", "g_bar2_2"});
url.setParameter("g_foo3", new String[]{"g_bar3_1"});
- iur.setURL(url.toString());
+ InvokePostResponse iur = new InvokePostResponse(url.toString());
HttpRequest.Form body = new HttpRequest.Form();
body.addParameter("g_foo3", new String[]{"g_bar3_2"});
body.addParameter("g_foo4", new String[]{"g_bar4_1"});
@@ -147,11 +146,10 @@
protected DriverResponse run(Portlet portlet, RenderRequest request, RenderResponse response, PortletTestContext context)
{
- InvokePostResponse iur = new InvokePostResponse();
PortletURL url = response.createActionURL();
url.setParameter("g_foo1", "g_bar1_1");
url.setParameter("g_foo2", new String[]{"g_bar2_1", "g_bar2_2"});
- iur.setURL(url.toString());
+ InvokePostResponse iur = new InvokePostResponse(url.toString());
HttpRequest.Raw body = new HttpRequest.Raw();
body.setBytes(byteContent);
iur.setBody(body);
@@ -225,11 +223,10 @@
{
protected DriverResponse run(Portlet portlet, RenderRequest request, RenderResponse response, PortletTestContext context)
{
- InvokePostResponse iur = new InvokePostResponse();
PortletURL url = response.createActionURL();
url.setParameter("g_foo1", "g_bar1_1");
url.setParameter("g_foo2", new String[]{"g_bar2_1", "g_bar2_2"});
- iur.setURL(url.toString());
+ InvokePostResponse iur = new InvokePostResponse(url.toString());
HttpRequest.Raw body = new HttpRequest.Raw();
body.setBytes(byteContent);
iur.setBody(body);
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/AbstractStatefulPortletInvokerTestCase.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/AbstractStatefulPortletInvokerTestCase.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/AbstractStatefulPortletInvokerTestCase.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -44,8 +44,8 @@
import org.jboss.portal.portlet.state.PropertyMap;
import org.jboss.portal.portlet.state.SimplePropertyMap;
import org.jboss.portal.portlet.state.PropertyContext;
-import org.jboss.portal.portlet.test.ValueMapAssert;
-import org.jboss.portal.portlet.test.support.PortletSupport;
+import org.jboss.portal.test.portlet.state.ValueMapAssert;
+import org.jboss.portal.test.portlet.state.PortletSupport;
import java.util.Collections;
import java.util.HashSet;
Copied: modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ActionContextImpl.java (from rev 7982, modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/ActionContextImpl.java)
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ActionContextImpl.java (rev 0)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ActionContextImpl.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,56 @@
+/******************************************************************************
+ * 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.state;
+
+import org.jboss.portal.Mode;
+import org.jboss.portal.common.invocation.resolver.MapAttributeResolver;
+import org.jboss.portal.portlet.invocation.PortletInvocation;
+import org.jboss.portal.portlet.support.spi.ActionContextSupport;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 5113 $
+ */
+public class ActionContextImpl extends ActionContextSupport
+{
+
+ /** . */
+ private final Mode mode;
+
+ public ActionContextImpl(Mode mode)
+ {
+ this.mode = mode;
+ addResolver(PortletInvocation.REQUEST_SCOPE, new MapAttributeResolver());
+ addResolver(PortletInvocation.INVOCATION_SCOPE, new MapAttributeResolver());
+ }
+
+ public ActionContextImpl()
+ {
+ this(Mode.EDIT);
+ }
+
+ public Mode getMode()
+ {
+ return mode;
+ }
+}
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ConsumerStatefulPortletInvokerTestCase.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ConsumerStatefulPortletInvokerTestCase.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ConsumerStatefulPortletInvokerTestCase.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -30,6 +30,7 @@
import org.jboss.portal.portlet.impl.state.StateConverterV0;
import org.jboss.portal.portlet.impl.state.consumer.ConsumerPersistenceManagerService;
import org.jboss.portal.portlet.impl.state.producer.PortletStatePersistenceManagerService;
+import org.jboss.portal.portlet.impl.spi.AbstractInstanceContext;
import org.jboss.portal.portlet.invocation.ActionInvocation;
import org.jboss.portal.portlet.invocation.PortletInvocation;
import org.jboss.portal.portlet.state.AccessMode;
@@ -38,10 +39,6 @@
import org.jboss.portal.portlet.state.StateConverter;
import org.jboss.portal.portlet.state.consumer.ConsumerPortletInvoker;
import org.jboss.portal.portlet.state.producer.ProducerPortletInvoker;
-import org.jboss.portal.portlet.test.ActionContextImpl;
-import org.jboss.portal.portlet.test.InstanceContextImpl;
-import org.jboss.portal.portlet.test.support.PortletInvokerSupport;
-import org.jboss.portal.portlet.test.support.PortletSupport;
import org.jboss.portal.common.value.Value;
import java.util.Collections;
@@ -203,7 +200,7 @@
protected ActionInvocation createAction(PortletContext portletRef, AccessMode accessMode)
{
ActionContextImpl actionCtx = new ActionContextImpl();
- InstanceContextImpl instanceCtx = new InstanceContextImpl("blah", accessMode);
+ AbstractInstanceContext instanceCtx = new AbstractInstanceContext("blah", accessMode);
//
ActionInvocation action = new ActionInvocation(actionCtx);
@@ -214,7 +211,7 @@
protected PortletContext getImplicitClonedRef(ActionInvocation action)
{
- InstanceContextImpl instanceCtx = (InstanceContextImpl)action.getInstanceContext();
+ AbstractInstanceContext instanceCtx = (AbstractInstanceContext)action.getInstanceContext();
return instanceCtx.getClonedContext();
}
Copied: modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/PortletInvokerSupport.java (from rev 7982, modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/support/PortletInvokerSupport.java)
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/PortletInvokerSupport.java (rev 0)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/PortletInvokerSupport.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,259 @@
+/******************************************************************************
+ * 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.state;
+
+import org.jboss.portal.portlet.InvalidPortletIdException;
+import org.jboss.portal.portlet.NoSuchPortletException;
+import org.jboss.portal.portlet.Portlet;
+import org.jboss.portal.portlet.PortletContext;
+import org.jboss.portal.portlet.PortletInvoker;
+import org.jboss.portal.portlet.PortletInvokerException;
+import org.jboss.portal.portlet.support.info.PortletInfoSupport;
+import org.jboss.portal.portlet.info.PortletInfo;
+import org.jboss.portal.portlet.invocation.PortletInvocation;
+import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
+import org.jboss.portal.portlet.state.PropertyChange;
+import org.jboss.portal.portlet.state.PropertyMap;
+import org.jboss.portal.portlet.state.SimplePropertyMap;
+import org.jboss.portal.common.value.Value;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Iterator;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 6712 $
+ */
+public class PortletInvokerSupport implements PortletInvoker
+{
+
+ /** . */
+ private Map portlets;
+
+ public PortletInvokerSupport()
+ {
+ this.portlets = new HashMap();
+ }
+
+ public void setValid(String portletId, boolean valid)
+ {
+ getInternalPortlet(portletId).valid = valid;
+ }
+
+ public InternalPortlet addInternalPortlet(String portletId, PortletInfoSupport info)
+ {
+ return addInternalPortlet(portletId, new PortletSupport(info));
+ }
+
+ public InternalPortlet addInternalPortlet(String portletId, PortletSupport support)
+ {
+ if (portletId == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ if (support == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ InternalPortlet portlet = new InternalPortlet(portletId, support);
+ if (portlets.put(portletId, portlet) != null)
+ {
+ throw new IllegalStateException();
+ }
+ return portlet;
+ }
+
+ public PortletInvokerSupport removeInternalPortlet(String portletId)
+ {
+ if (portlets.remove(portletId) == null)
+ {
+ throw new IllegalStateException();
+ }
+ return this;
+ }
+
+ public InternalPortlet getInternalPortlet(String portletId)
+ {
+ if (portletId == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ InternalPortlet portlet = (InternalPortlet)portlets.get(portletId);
+ if (portlet == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ return portlet;
+ }
+
+ public Set getPortlets()
+ {
+ return new HashSet(portlets.values());
+ }
+
+ public Portlet getPortlet(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException
+ {
+ return internalGetPortlet(portletContext);
+ }
+
+ public PortletInvocationResponse invoke(PortletInvocation invocation) throws PortletInvokerException
+ {
+ PortletContext portletContext = invocation.getTarget();
+ InternalPortlet portlet = internalGetPortlet(portletContext);
+ return portlet.support.invoke(invocation);
+ }
+
+ private InternalPortlet internalGetPortlet(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException
+ {
+ if (portletContext == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ String portletId = portletContext.getId();
+ InternalPortlet portlet = (InternalPortlet)portlets.get(portletId);
+ if (portlet == null)
+ {
+ throw new NoSuchPortletException(portletId);
+ }
+ if (portlet.isValid() == false)
+ {
+ throw new InvalidPortletIdException(portletId);
+ }
+ return portlet;
+ }
+
+ public static class InternalPortlet implements Portlet
+ {
+
+ /** . */
+ private final PortletContext portletContext;
+
+ /** . */
+ private final PortletSupport support;
+
+ /** . */
+ private boolean valid;
+
+ /** . */
+ private Map state;
+
+ public InternalPortlet(String portletId, PortletSupport support)
+ {
+ if (portletId == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ if (support == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ this.portletContext = PortletContext.createPortletContext(portletId);
+ this.support = support;
+ this.valid = true;
+ this.state = new HashMap();
+ }
+
+ public void addPreference(String key, Value value)
+ {
+ support.getInfoSupport().getPreferencesSupport().addPreference(key);
+ state.put(key, value);
+ }
+
+ public void addPreference(String key, Value value, Boolean readOnly)
+ {
+ support.getInfoSupport().getPreferencesSupport().addPreference(key, readOnly);
+ state.put(key, value);
+ }
+
+ public PortletContext getContext()
+ {
+ return portletContext;
+ }
+
+ public PortletInfo getInfo()
+ {
+ return support.getInfoSupport();
+ }
+
+ public boolean isRemote()
+ {
+ return false;
+ }
+
+ public boolean isValid()
+ {
+ return valid;
+ }
+ }
+
+ public PropertyMap getProperties(PortletContext portletContext, Set keys) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ {
+ InternalPortlet internalPortlet = internalGetPortlet(portletContext);
+ PropertyMap props = new SimplePropertyMap();
+ for (Iterator i = keys.iterator();i.hasNext();)
+ {
+ String key = (String)i.next();
+ Value value = (Value)internalPortlet.state.get(key);
+ if (value != null)
+ {
+ props.put(key, value.clone());
+ }
+ }
+ return props;
+ }
+
+ public PropertyMap getProperties(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ {
+ InternalPortlet internalPortlet = internalGetPortlet(portletContext);
+ PropertyMap props = new SimplePropertyMap();
+ for (Iterator i = internalPortlet.state.keySet().iterator();i.hasNext();)
+ {
+ String key = (String)i.next();
+ Value value = (Value)internalPortlet.state.get(key);
+ if (value != null)
+ {
+ props.put(key, value.clone());
+ }
+ }
+ return props;
+ }
+
+ public PortletContext createClone(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public List destroyClones(List portletContexts) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public PortletContext setProperties(PortletContext portletContext, PropertyChange[] changes) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ {
+ throw new UnsupportedOperationException();
+ }
+}
Property changes on: modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/PortletInvokerSupport.java
___________________________________________________________________
Name: svn:executable
+
Copied: modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/PortletSupport.java (from rev 7982, modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/support/PortletSupport.java)
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/PortletSupport.java (rev 0)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/PortletSupport.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,68 @@
+/******************************************************************************
+ * 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.state;
+
+import org.jboss.portal.portlet.PortletInvokerException;
+import org.jboss.portal.portlet.support.info.PortletInfoSupport;
+import org.jboss.portal.portlet.info.PortletInfo;
+import org.jboss.portal.portlet.invocation.PortletInvocation;
+import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 6116 $
+ */
+public class PortletSupport
+{
+
+ /** . */
+ protected final PortletInfoSupport info;
+
+ /** . */
+ protected boolean valid;
+
+ public PortletSupport(PortletInfoSupport info)
+ {
+ if (info == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ this.info = info;
+ this.valid = true;
+ }
+
+ public PortletSupport()
+ {
+ this(new PortletInfoSupport());
+ }
+
+ public PortletInfoSupport getInfoSupport()
+ {
+ return info;
+ }
+
+ public PortletInvocationResponse invoke(PortletInvocation invocation) throws PortletInvokerException
+ {
+ throw new PortletInvokerException("No implementations");
+ }
+}
Property changes on: modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/PortletSupport.java
___________________________________________________________________
Name: svn:executable
+
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ProducerStatefulPortletInvokerTestCase.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ProducerStatefulPortletInvokerTestCase.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ProducerStatefulPortletInvokerTestCase.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -28,6 +28,7 @@
import org.jboss.portal.portlet.impl.state.StateManagementPolicyService;
import org.jboss.portal.portlet.impl.state.StateConverterV0;
import org.jboss.portal.portlet.impl.state.producer.PortletStatePersistenceManagerService;
+import org.jboss.portal.portlet.impl.spi.AbstractInstanceContext;
import org.jboss.portal.portlet.invocation.ActionInvocation;
import org.jboss.portal.portlet.invocation.PortletInvocation;
import org.jboss.portal.portlet.state.AccessMode;
@@ -35,10 +36,6 @@
import org.jboss.portal.portlet.state.PropertyMap;
import org.jboss.portal.portlet.state.StateConverter;
import org.jboss.portal.portlet.state.producer.ProducerPortletInvoker;
-import org.jboss.portal.portlet.test.ActionContextImpl;
-import org.jboss.portal.portlet.test.InstanceContextImpl;
-import org.jboss.portal.portlet.test.support.PortletInvokerSupport;
-import org.jboss.portal.portlet.test.support.PortletSupport;
import org.jboss.portal.portlet.support.info.PortletInfoSupport;
import org.jboss.portal.common.value.Value;
@@ -195,7 +192,7 @@
protected ActionInvocation createAction(PortletContext portletRef, AccessMode accessMode)
{
ActionContextImpl actionCtx = new ActionContextImpl();
- InstanceContextImpl instanceCtx = new InstanceContextImpl("blah", accessMode);
+ AbstractInstanceContext instanceCtx = new AbstractInstanceContext("blah", accessMode);
//
ActionInvocation action = new ActionInvocation(actionCtx);
@@ -206,7 +203,7 @@
protected PortletContext getImplicitClonedRef(ActionInvocation action)
{
- InstanceContextImpl instanceCtx = (InstanceContextImpl)action.getInstanceContext();
+ AbstractInstanceContext instanceCtx = (AbstractInstanceContext)action.getInstanceContext();
return instanceCtx.getClonedContext();
}
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/RemoteStoreProducerStatefulPortletInvokerTestCase.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/RemoteStoreProducerStatefulPortletInvokerTestCase.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/RemoteStoreProducerStatefulPortletInvokerTestCase.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -23,8 +23,8 @@
package org.jboss.portal.test.portlet.state;
import org.jboss.portal.portlet.invocation.ActionInvocation;
-import org.jboss.portal.portlet.test.InstanceContextImpl;
import org.jboss.portal.portlet.PortletContext;
+import org.jboss.portal.portlet.impl.spi.AbstractInstanceContext;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -39,7 +39,7 @@
protected PortletContext getModifiedPortletRef(ActionInvocation action)
{
- InstanceContextImpl instanceCtx = (InstanceContextImpl)action.getInstanceContext();
+ AbstractInstanceContext instanceCtx = (AbstractInstanceContext)action.getInstanceContext();
return instanceCtx.getModifiedContext();
}
}
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/StateConverterV0TestCase.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/StateConverterV0TestCase.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/StateConverterV0TestCase.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -30,7 +30,7 @@
import org.jboss.portal.portlet.state.StateConversionException;
import org.jboss.portal.portlet.state.StateConverter;
import org.jboss.portal.portlet.state.producer.PortletState;
-import org.jboss.portal.portlet.test.ValueMapAssert;
+import org.jboss.portal.test.portlet.state.ValueMapAssert;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
Copied: modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/TestPortletInvoker.java (from rev 7982, modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/TestPortletInvoker.java)
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/TestPortletInvoker.java (rev 0)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/TestPortletInvoker.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,157 @@
+/******************************************************************************
+ * 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.state;
+
+import org.jboss.portal.common.invocation.InterceptorStackFactory;
+import org.jboss.portal.common.invocation.Invocation;
+import org.jboss.portal.common.invocation.InvocationException;
+import org.jboss.portal.common.invocation.InvocationHandler;
+import org.jboss.portal.portlet.Portlet;
+import org.jboss.portal.portlet.PortletContext;
+import org.jboss.portal.portlet.PortletInvoker;
+import org.jboss.portal.portlet.PortletInvokerException;
+import org.jboss.portal.portlet.invocation.PortletInvocation;
+import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
+import org.jboss.portal.portlet.state.PropertyChange;
+import org.jboss.portal.portlet.state.PropertyMap;
+
+import java.util.List;
+import java.util.Set;
+
+/**
+ * A simple consumer.
+ *
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 6712 $
+ */
+public class TestPortletInvoker implements PortletInvoker
+{
+
+ /** . */
+ private InterceptorStackFactory stackFactory;
+
+ /** . */
+ private PortletInvoker producer;
+
+ /** . */
+ private InvocationHandler handler = new InvocationHandler()
+ {
+ public Object invoke(Invocation invocation) throws Exception, InvocationException
+ {
+ PortletInvocation portletInvocation = (PortletInvocation)invocation;
+ try
+ {
+ portletInvocation.setHandler(null);
+ return producer.invoke(portletInvocation);
+ }
+ finally
+ {
+ portletInvocation.setHandler(this);
+ }
+ }
+ };
+
+ public InterceptorStackFactory getStackFactory()
+ {
+ return stackFactory;
+ }
+
+ public void setStackFactory(InterceptorStackFactory stackFactory)
+ {
+ this.stackFactory = stackFactory;
+ }
+
+ public PortletInvoker getProducer()
+ {
+ return producer;
+ }
+
+ public void setProducer(PortletInvoker producer)
+ {
+ this.producer = producer;
+ }
+
+ public Set getPortlets() throws PortletInvokerException
+ {
+ return producer.getPortlets();
+ }
+
+ public Portlet getPortlet(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException
+ {
+ return producer.getPortlet(portletContext);
+ }
+
+ public PortletInvocationResponse invoke(PortletInvocation invocation) throws PortletInvokerException
+ {
+ InvocationHandler prevHandler = invocation.getHandler();
+ try
+ {
+ invocation.setHandler(handler);
+ return (PortletInvocationResponse)invocation.invoke(stackFactory.getInterceptorStack());
+ }
+ catch (Exception e)
+ {
+ if (e instanceof PortletInvokerException)
+ {
+ throw(PortletInvokerException)e;
+ }
+ else if (e instanceof RuntimeException)
+ {
+ throw(RuntimeException)e;
+ }
+ else
+ {
+ throw new PortletInvokerException(e);
+ }
+ }
+ finally
+ {
+ invocation.setHandler(prevHandler);
+ }
+ }
+
+ public PortletContext createClone(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public List destroyClones(List portletContexts) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public PropertyMap getProperties(PortletContext portletContext, Set keys) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public PropertyMap getProperties(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public PortletContext setProperties(PortletContext portletContext, PropertyChange[] changes) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ {
+ throw new UnsupportedOperationException();
+ }
+}
Property changes on: modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/TestPortletInvoker.java
___________________________________________________________________
Name: svn:executable
+
Copied: modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ValueMapAssert.java (from rev 7982, modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/test/ValueMapAssert.java)
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ValueMapAssert.java (rev 0)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ValueMapAssert.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,65 @@
+/******************************************************************************
+ * 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.state;
+
+import junit.framework.Assert;
+import org.jboss.portal.common.value.Value;
+import org.jboss.portal.portlet.state.PropertyMap;
+
+import java.util.HashSet;
+import java.util.Iterator;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 5448 $
+ */
+public class ValueMapAssert extends Assert
+{
+ public static void assertEquals(PropertyMap vm1, PropertyMap vm2)
+ {
+ if (vm1 == null)
+ {
+ if (vm2 != null)
+ {
+ fail("Value map should be null");
+ }
+ }
+ else
+ {
+ if (vm2 == null)
+ {
+ fail("Value map should not be null");
+ }
+ assertEquals("Value maps don't have the same keys", new HashSet(vm1.keySet()), new HashSet(vm2.keySet()));
+ for (Iterator i = vm1.keySet().iterator(); i.hasNext();)
+ {
+ String key = (String)i.next();
+ Value v1 = vm1.getProperty(key);
+ Value v2 = vm2.getProperty(key);
+ assertEquals("Values for key " + key + " are not equals", v1, v2);
+ }
+ }
+ }
+
+
+}
Property changes on: modules/portlet/trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ValueMapAssert.java
___________________________________________________________________
Name: svn:executable
+
Modified: modules/portlet/trunk/test/build.xml
===================================================================
--- modules/portlet/trunk/test/build.xml 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/test/build.xml 2007-08-30 21:10:49 UTC (rev 8115)
@@ -98,6 +98,7 @@
<path refid="jboss.jbossxb.classpath"/>
<path refid="apache.log4j.classpath"/>
<path refid="sun.servlet.classpath"/>
+ <path refid="junit.junit.classpath"/>
</path>
<!-- Configure modules -->
@@ -164,8 +165,6 @@
<fileset dir="${jboss.portal/modules/test.lib}" includes="portal-test-generic-lib.jar"/>
<fileset dir="${jboss.portal-portlet.lib}" includes="*.jar"/>
- <fileset dir="${sun.jaf.lib}" includes="*.jar"/>
-
<fileset dir="${jboss.remoting.lib}" includes="jboss-remoting.jar"/>
<fileset dir="${jboss.microcontainer.lib}" includes="*.jar"/>
@@ -228,15 +227,269 @@
<!--<antcall target="test-framework"/>-->
</target>
+ <target name="bilta" depends="init">
+ <execute-tests>
+ <x-test>
+<!--
+ <test todir="${test.reports}" name="org.jboss.portal.portlet.test.url.EncoderTestCase"/>
+ <test todir="${test.reports}" name="org.jboss.portal.portlet.test.url.DecoderTestCase"/>
+-->
+ <test todir="${test.reports}" name="org.jboss.portal.portlet.test.StringCodecTestCase"/>
+ </x-test>
+ <x-sysproperty>
+ <sysproperty key="test.root" value="${jboss.portal-portlet.root}/lib"/>
+ <sysproperty key="test.uri" value="/portlet-test/"/>
+<!--
+ <jvmarg value="-Xdebug"/>
+ <jvmarg value="-Xrunjdwp:transport=dt_socket,address=7878,server=y,suspend=y"/>
+-->
+ </x-sysproperty>
+ <x-classpath>
+ <path refid="oswego.concurrent.classpath"/>
+ <path refid="jboss.remoting.classpath"/>
+ <path refid="jboss.microcontainer.classpath"/>
+ <path refid="jboss.aop.classpath"/>
+ <path refid="javassist.javassist.classpath"/>
+ <path refid="trove.trove.classpath"/>
+ <path refid="apache.httpclient.classpath"/>
+ <path refid="apache.logging.classpath"/>
+ <path refid="apache.codec.classpath"/>
+ <pathelement location="../tools/lib/cargo-core-uberjar-0.8.jar"/>
+ <path refid="jboss.jbossxb.classpath"/>
+ <path refid="apache.xerces.classpath"/>
+ <!--<path refid="jbossas/core.libs.classpath"/>-->
+ <pathelement location="${source.java}"/>
+ <pathelement location="${build.classes}"/>
+ <pathelement location="${build.resources}"/>
+ <pathelement location="${jboss.portal-portlet.root}/classes"/>
+ <path refid="library.classpath"/>
+ <path refid="dependentmodule.classpath"/>
+ </x-classpath>
+ </execute-tests>
+ </target>
+
<target name="bilto" depends="init">
<execute-tests>
<x-test>
+
+ <!--Spec TCK Assertions tests-->
<zest todir="${test.reports}"
name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
- outfile="TEST-org.jboss.portal.test.portlet.info.InfoTestCase"
- id="org.jboss.portal.test.portlet.info.InfoTestCase">
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.tck.DispatcherTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.tck.DispatcherTestCase">
+ <parameter name="archive" value="test-jsr168-dispatcher.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.tck.PortletConfigTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.tck.PortletConfigTestCase">
+ <parameter name="archive" value="test-jsr168-portletconfig.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.tck.PortletContextTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.tck.PortletContextTestCase">
+ <parameter name="archive" value="test-jsr168-portletcontext.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.tck.PortletInterfaceTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.tck.PortletInterfaceTestCase">
+ <parameter name="archive" value="test-jsr168-portletinterface.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.tck.PortletModeTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.tck.PortletModeTestCase">
+ <parameter name="archive" value="test-jsr168-portletmode.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.tck.PortletRequestsTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.tck.PortletRequestsTestCase">
+ <parameter name="archive" value="test-jsr168-portletrequests.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.tck.PortletResponsesTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.tck.PortletResponsesTestCase">
+ <parameter name="archive" value="test-jsr168-portletresponses.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.tck.PortletSessionTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.tck.PortletSessionTestCase">
+ <parameter name="archive" value="test-jsr168-portletsession.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.tck.PortletURLTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.tck.PortletURLTestCase">
+ <parameter name="archive" value="test-jsr168-portleturl.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.tck.PreferencesTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.tck.PreferencesTestCase">
+ <parameter name="archive" value="test-jsr168-preferences.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.tck.WindowStatesTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.tck.WindowStatesTestCase">
+ <parameter name="archive" value="test-jsr168-windowstates.war"/>
+ </zest>
+
+ <!--API Tests-->
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.api.ActionRequestTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.api.ActionRequestTestCase">
<parameter name="archive" value="test-jsr168-api-actionrequest.war"/>
</zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.api.ActionResponseTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.api.ActionResponseTestCase">
+ <parameter name="archive" value="test-jsr168-api-actionresponse.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.api.PortalContextTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.api.PortalContextTestCase">
+ <parameter name="archive" value="test-jsr168-api-portalcontext.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.api.PortletConfigTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.api.PortletConfigTestCase">
+ <parameter name="archive" value="test-jsr168-api-portletconfig.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.api.PortletContextTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.api.PortletContextTestCase">
+ <parameter name="archive" value="test-jsr168-api-portletcontext.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.api.PortletModeTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.api.PortletModeTestCase">
+ <parameter name="archive" value="test-jsr168-api-portletmode.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.api.PortletPreferencesTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.api.PortletPreferencesTestCase">
+ <parameter name="archive" value="test-jsr168-api-portletpreferences.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.api.PortletSessionTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.api.PortletSessionTestCase">
+ <parameter name="archive" value="test-jsr168-api-portletsession.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.api.PortletSessionUtilTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.api.PortletSessionUtilTestCase">
+ <parameter name="archive" value="test-jsr168-api-portletsessionutil.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.api.PortletURLTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.api.PortletURLTestCase">
+ <parameter name="archive" value="test-jsr168-api-portleturl.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.api.RenderRequestTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.api.RenderRequestTestCase">
+ <parameter name="archive" value="test-jsr168-api-renderrequest.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.api.RenderResponseTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.api.RenderResponseTestCase">
+ <parameter name="archive" value="test-jsr168-api-renderresponse.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.api.WindowStateTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.api.WindowStateTestCase">
+ <parameter name="archive" value="test-jsr168-api-windowstate.war"/>
+ </zest>
+
+ <!--Ext Tests-->
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.ext.DispatcherTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.ext.DispatcherTestCase">
+ <parameter name="archive" value="test-jsr168-ext-dispatcher.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.ext.PortletConfigTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.ext.PortletConfigTestCase">
+ <parameter name="archive" value="test-jsr168-ext-portletconfig.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.ext.PortletModeTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.ext.PortletModeTestCase">
+ <parameter name="archive" value="test-jsr168-ext-portletmode.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.ext.PortletRequestsTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.ext.PortletRequestsTestCase">
+ <parameter name="archive" value="test-jsr168-ext-portletrequests.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.ext.PortletResponsesTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.ext.PortletResponsesTestCase">
+ <parameter name="archive" value="test-jsr168-ext-portletresponses.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.ext.PreferencesTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.ext.PreferencesTestCase">
+ <parameter name="archive" value="test-jsr168-ext-preferences.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.ext.SessionTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.ext.SessionTestCase">
+ <parameter name="archive" value="test-jsr168-ext-session.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.ext.ExpiringCacheTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.ext.ExpiringCacheTestCase">
+ <parameter name="archive" value="test-jsr168-ext-expiringcache.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.ext.NeverExpiringCacheTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.ext.NeverExpiringCacheTestCase">
+ <parameter name="archive" value="test-jsr168-ext-neverexpiringcache.war"/>
+ </zest>
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.ext.NoCacheTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.ext.NoCacheTestCase">
+ <parameter name="archive" value="test-jsr168-ext-nocache.war"/>
+ </zest>
+
+ <!--Misc Tests-->
+ <zest todir="${test.reports}"
+ name="org.jboss.portal.test.framework.runner.HTTPTestRunner"
+ outfile="TEST-org.jboss.portal.test.portlet.jsr168.misc.Log4jTestCase"
+ id="org.jboss.portal.test.portlet.jsr168.misc.Log4jTestCase">
+ <parameter name="archive" value="test-jsr168-misc-log4j.war"/>
+ </zest>
+
</x-test>
<x-sysproperty>
<sysproperty key="test.root" value="${jboss.portal-portlet.root}/lib"/>
@@ -264,6 +517,7 @@
<pathelement location="${build.classes}"/>
<pathelement location="${build.resources}"/>
<pathelement location="${jboss.portal-portlet.root}/classes"/>
+ <fileset dir="${jboss.portal/modules/test.lib}" includes="portal-test-generic-lib.jar"/>
<path refid="library.classpath"/>
<path refid="dependentmodule.classpath"/>
</x-classpath>
Modified: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortalKernelBootstrap.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortalKernelBootstrap.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortalKernelBootstrap.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -96,7 +96,7 @@
}
// For now we do it here
-// System.setProperty("org.jboss.logging.Logger.pluginClass", "org.jboss.logging.log4j.Log4jLoggerPlugin");
+ System.setProperty("org.jboss.logging.Logger.pluginClass", "org.jboss.logging.log4j.Log4jLoggerPlugin");
//
run();
Added: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortalNavigationalState.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortalNavigationalState.java (rev 0)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortalNavigationalState.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,73 @@
+/******************************************************************************
+ * 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.portlet.test;
+
+import java.util.Map;
+import java.util.HashMap;
+import java.util.zip.GZIPOutputStream;
+import java.util.zip.GZIPInputStream;
+import java.io.Serializable;
+import java.io.ObjectOutputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ByteArrayInputStream;
+import java.io.ObjectInputStream;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class PortalNavigationalState implements Serializable
+{
+
+ /** . */
+ private final Map windows = new HashMap();
+
+ public WindowNavigationalState getWindow(String windowId)
+ {
+ return (WindowNavigationalState)windows.get(windowId);
+ }
+
+ public void setWindow(String windowId, WindowNavigationalState window)
+ {
+ windows.put(windowId, window);
+ }
+
+ public byte[] getBytes() throws IOException
+ {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ GZIPOutputStream zos = new GZIPOutputStream(baos);
+ ObjectOutputStream oos = new ObjectOutputStream(zos);
+ oos.writeObject(this);
+ oos.close();
+ return baos.toByteArray();
+ }
+
+ public static PortalNavigationalState create(byte[] bytes) throws IOException, ClassNotFoundException
+ {
+ ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
+ GZIPInputStream zis = new GZIPInputStream(bais);
+ ObjectInputStream ois = new ObjectInputStream(zis);
+ return (PortalNavigationalState)ois.readObject();
+ }
+}
Modified: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortalServlet.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortalServlet.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortalServlet.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -22,31 +22,11 @@
******************************************************************************/
package org.jboss.portal.portlet.test;
-import org.jboss.portal.portlet.container.PortletApplicationRegistry;
-import org.jboss.portal.portlet.container.PortletApplication;
-import org.jboss.portal.portlet.container.PortletContainer;
-import org.jboss.portal.portlet.invocation.RenderInvocation;
-import org.jboss.portal.portlet.impl.spi.AbstractRequestContext;
-import org.jboss.portal.portlet.impl.spi.AbstractSecurityContext;
-import org.jboss.portal.portlet.support.spi.InstanceContextSupport;
-import org.jboss.portal.portlet.support.spi.UserContextSupport;
-import org.jboss.portal.portlet.spi.WindowContext;
-import org.jboss.portal.portlet.PortletInvoker;
-import org.jboss.portal.portlet.PortletInvokerException;
-import org.jboss.portal.portlet.PortletContext;
-import org.jboss.portal.portlet.Portlet;
-import org.jboss.portal.Mode;
-import org.jboss.portal.WindowState;
-import org.jboss.portal.common.util.MarkupInfo;
-import org.jboss.portal.common.util.MediaType;
-
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Iterator;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -55,61 +35,38 @@
public class PortalServlet extends HttpServlet
{
-
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
+ protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
- PortletApplicationRegistry registry = (PortletApplicationRegistry)getServletContext().getAttribute("PortletApplicationRegistry");
-
-
- resp.setContentType("text/html");
- PrintWriter writer = resp.getWriter();
-
- PortletInvoker invoker = (PortletInvoker)getServletContext().getAttribute("ConsumerPortletInvoker");
-
- writer.print("<html><body>");
-
try
{
- for (Iterator i = invoker.getPortlets().iterator(); i.hasNext();)
+ _service(req, resp);
+ }
+ catch (Exception e)
+ {
+ if (e instanceof ServletException)
{
- Portlet portlet = (Portlet)i.next();
- writer.print("<div><div>" + portlet.getContext() + "</div>");
-
- TestRenderContext renderContext = new TestRenderContext(Mode.VIEW, WindowState.NORMAL, null, new MarkupInfo(MediaType.HTML, "UTF8"), req, resp);
- RenderInvocation render = new RenderInvocation(renderContext);
- render.setRequestContext(new AbstractRequestContext(req, resp));
- render.setInstanceContext(new InstanceContextImpl("Whatever"));
- render.setUserContext(new UserContextSupport());
- render.setWindowContext(new WindowContext()
- {
- public String getId()
- {
- return "blah";
- }
- });
- render.setPortalContext(new TestPortalContext());
- render.setSecurityContext(new AbstractSecurityContext(req));
- render.setTarget(portlet.getContext());
-
- try
- {
- invoker.invoke(render);
- }
- catch (PortletInvokerException e)
- {
- e.printStackTrace();
- }
-
- writer.print("</div>");
+ throw (ServletException)e;
}
+ if (e instanceof IOException)
+ {
+ throw (IOException)e;
+ }
+ if (e instanceof RuntimeException)
+ {
+ throw (RuntimeException)e;
+ }
+ throw new ServletException(e);
}
- catch (PortletInvokerException e)
- {
- e.printStackTrace();
- }
+ }
- writer.print("</body></html>");
+ protected void _service(HttpServletRequest req, HttpServletResponse resp) throws Exception
+ {
+ PortletControllerContext context = new PortletControllerContextImpl(req, PortletControllerContextImpl.SESSION_SCOPE);
-
+ //
+ PortletController controller = new PortletController(context, getServletContext(), req);
+
+ //
+ controller.process(resp);
}
}
Added: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletController.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletController.java (rev 0)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletController.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,369 @@
+/******************************************************************************
+ * 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.portlet.test;
+
+import org.jboss.portal.portlet.Portlet;
+import org.jboss.portal.portlet.PortletContext;
+import org.jboss.portal.portlet.StateString;
+import org.jboss.portal.portlet.PortletParametersStateString;
+import org.jboss.portal.portlet.PortletParameters;
+import org.jboss.portal.portlet.PortletInvokerException;
+import org.jboss.portal.portlet.PortletInvoker;
+import org.jboss.portal.portlet.RenderURL;
+import org.jboss.portal.portlet.impl.spi.AbstractRequestContext;
+import org.jboss.portal.portlet.impl.spi.AbstractUserContext;
+import org.jboss.portal.portlet.impl.spi.AbstractWindowContext;
+import org.jboss.portal.portlet.impl.spi.AbstractPortalContext;
+import org.jboss.portal.portlet.impl.spi.AbstractSecurityContext;
+import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
+import org.jboss.portal.portlet.invocation.response.RenderResponse;
+import org.jboss.portal.portlet.invocation.response.HTTPRedirectionResponse;
+import org.jboss.portal.portlet.invocation.response.ErrorResponse;
+import org.jboss.portal.portlet.invocation.ActionInvocation;
+import org.jboss.portal.portlet.invocation.RenderInvocation;
+import org.jboss.portal.web.IllegalRequestException;
+import org.jboss.portal.common.util.ParameterMap;
+import org.jboss.portal.common.util.MarkupInfo;
+import org.jboss.portal.common.util.MediaType;
+import org.jboss.portal.Mode;
+import org.jboss.portal.WindowState;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.ServletContext;
+import java.io.UnsupportedEncodingException;
+import java.io.PrintWriter;
+import java.io.IOException;
+import java.util.Iterator;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class PortletController
+{
+
+ /** . */
+ private MarkupInfo MARKUP_INFO = new MarkupInfo(MediaType.HTML, "UTF8");
+
+ /** . */
+ private final ServletContext servletContext;
+
+ /** . */
+ private final HttpServletRequest req;
+
+ /** . */
+ private final PortletInvoker invoker;
+
+ /** . */
+ private final PortletControllerContext context;
+
+ /** . */
+ private final boolean redirectAfterAction = true;
+
+ public PortletController(PortletControllerContext context, ServletContext servletContext, HttpServletRequest req) throws IllegalRequestException, UnsupportedEncodingException
+ {
+ this.context = context;
+ this.servletContext = servletContext;
+
+ //
+ this.req = req;
+ this.invoker = (PortletInvoker)servletContext.getAttribute("ConsumerPortletInvoker");
+ }
+
+ public void process(HttpServletResponse resp) throws PortletInvokerException, IOException
+ {
+
+ //
+ Request request = context.getRequest();
+
+ //
+ PortalNavigationalState navState = context.getNavigationalState();
+
+ //
+ if (request != null)
+ {
+ PortletContext target = PortletContext.createPortletContext(request.portletId);
+
+ //
+ Portlet portlet = invoker.getPortlet(target);
+
+ //
+ PortletURLRenderer renderer = new PortletURLRenderer(navState, portlet, req, resp);
+
+ //
+ WindowNavigationalState windowNS = navState.getWindow(request.portletId);
+
+ //
+ PortletInvocationResponse response = null;
+
+ if (request instanceof Render)
+ {
+ RenderResponse render = new RenderResponse();
+ render.setMode(request.mode);
+ render.setWindowState(request.windowState);
+ render.setNavigationalState(PortletParametersStateString.create(request.queryParameters));
+ response = render;
+ }
+ else
+ {
+ //
+ StateString portletNS = null;
+ if (windowNS != null)
+ {
+ portletNS = windowNS.getPortletNavigationalState();
+ }
+
+ //
+ Mode mode = request.mode;
+ if (mode == null && windowNS != null && windowNS.getMode() != null)
+ {
+ mode = windowNS.getMode();
+ }
+ if (mode == null)
+ {
+ mode = Mode.VIEW;
+ }
+
+ //
+ WindowState windowState = request.windowState;
+ if (windowState == null && windowNS != null && windowNS.getWindowState() != null)
+ {
+ windowState = windowNS.getWindowState();
+ }
+ if (windowState == null)
+ {
+ windowState = WindowState.NORMAL;
+ }
+
+ //
+ TestInstanceContext instanceContext = new TestInstanceContext(req, portlet.getContext(), true);
+ TestActionContext actionContext = new TestActionContext(
+ renderer,
+ mode,
+ windowState,
+ portletNS,
+ MARKUP_INFO,
+ PortletParametersStateString.create(request.queryParameters),
+ new PortletParameters(request.bodyParameters));
+ ActionInvocation action = new ActionInvocation(actionContext);
+
+ //
+ action.setRequestContext(new AbstractRequestContext(req, resp));
+ action.setInstanceContext(instanceContext);
+ action.setUserContext(new AbstractUserContext(req));
+ action.setWindowContext(new AbstractWindowContext(portlet.getContext().getId()));
+ action.setPortalContext(new AbstractPortalContext());
+ action.setSecurityContext(new AbstractSecurityContext(req));
+ action.setTarget(instanceContext.getTarget());
+
+ //
+ try
+ {
+ response = invoker.invoke(action);
+ }
+ catch (PortletInvokerException e)
+ {
+ e.printStackTrace();
+ }
+
+ //
+ if (response instanceof RenderResponse && redirectAfterAction)
+ {
+ final RenderResponse render = (RenderResponse)response;
+ String location = renderer.renderURL(new RenderURL()
+ {
+ public StateString getNavigationalState()
+ {
+ return render.getNavigationalState();
+ }
+ public Mode getMode()
+ {
+ return render.getMode();
+ }
+ public WindowState getWindowState()
+ {
+ return render.getWindowState();
+ }
+ }, null, null, true);
+ response = new HTTPRedirectionResponse(location);
+ }
+ }
+
+ //
+ if (response instanceof RenderResponse)
+ {
+ RenderResponse render = (RenderResponse)response;
+
+ //
+ if (windowNS == null)
+ {
+ windowNS = new WindowNavigationalState();
+ navState.setWindow(portlet.getContext().getId(), windowNS);
+ }
+
+ //
+ if (render.getMode() != null)
+ {
+ windowNS.setMode(render.getMode());
+ }
+ if (render.getWindowState() != null)
+ {
+ windowNS.setWindowState(render.getWindowState());
+ }
+ if (render.getNavigationalState() != null)
+ {
+ windowNS.setPortletNavigationalState(render.getNavigationalState());
+ }
+ }
+ else if (response instanceof HTTPRedirectionResponse)
+ {
+ HTTPRedirectionResponse redirection = (HTTPRedirectionResponse)response;
+ resp.sendRedirect(redirection.getLocation());
+ return;
+ }
+ else if (response instanceof ErrorResponse)
+ {
+ ErrorResponse error = (ErrorResponse)response;
+ System.out.println("Error " + error.getMessage());
+ if (error.getCause() != null)
+ {
+ error.getCause().printStackTrace();
+ }
+ resp.sendError(404, error.getMessage());
+ return;
+ }
+ else
+ {
+ System.out.println("Not yet handled " + response);
+ }
+ }
+
+ //
+ resp.setContentType("text/html");
+ PrintWriter writer = resp.getWriter();
+ writer.print("<html><body>");
+
+ //
+ try
+ {
+ for (Iterator i = invoker.getPortlets().iterator(); i.hasNext();)
+ {
+ Portlet portlet = (Portlet)i.next();
+ writer.print("<div><div>" + portlet.getContext() + "</div>");
+ PortletURLRenderer renderer = new PortletURLRenderer(navState, portlet, req, resp);
+
+ //
+ Mode mode = Mode.VIEW;
+ WindowState windowState = WindowState.NORMAL;
+ StateString portletNS = null;
+
+ //
+ WindowNavigationalState windowNS = navState.getWindow(portlet.getContext().getId());
+ if (windowNS != null)
+ {
+ if (windowNS.getMode() != null)
+ {
+ mode= windowNS.getMode();
+ }
+ if (windowNS.getWindowState() != null)
+ {
+ windowState= windowNS.getWindowState();
+ }
+ if (windowNS.getPortletNavigationalState() != null)
+ {
+ portletNS= windowNS.getPortletNavigationalState();
+ }
+ }
+
+ TestInstanceContext instanceContext = new TestInstanceContext(req, portlet.getContext(), false);
+ TestRenderContext renderContext = new TestRenderContext(renderer, mode, windowState, portletNS, MARKUP_INFO);
+
+ //
+ RenderInvocation render = new RenderInvocation(renderContext);
+
+ //
+ render.setRequestContext(new AbstractRequestContext(req, resp));
+ render.setInstanceContext(instanceContext);
+ render.setUserContext(new AbstractUserContext(req));
+ render.setWindowContext(new AbstractWindowContext(portlet.getContext().getId()));
+ render.setPortalContext(new AbstractPortalContext());
+ render.setSecurityContext(new AbstractSecurityContext(req));
+ render.setTarget(instanceContext.getTarget());
+
+ //
+ try
+ {
+ invoker.invoke(render);
+ }
+ catch (PortletInvokerException e)
+ {
+ e.printStackTrace();
+ }
+
+ writer.print("</div>");
+ }
+ }
+ catch (PortletInvokerException e)
+ {
+ e.printStackTrace();
+ }
+
+ writer.print("</body></html>");
+ }
+
+ static class Request
+ {
+
+ final String portletId;
+ final ParameterMap queryParameters;
+ final ParameterMap bodyParameters;
+ final Mode mode;
+ final WindowState windowState;
+
+ public Request(String portletId, ParameterMap queryParameters, ParameterMap bodyParameters, Mode mode, WindowState windowState)
+ {
+ this.portletId = portletId;
+ this.queryParameters = queryParameters;
+ this.bodyParameters = bodyParameters;
+ this.mode = mode;
+ this.windowState = windowState;
+ }
+ }
+
+ static class Action extends Request
+ {
+ public Action(String portletId, ParameterMap queryParameters, ParameterMap bodyParameters, Mode mode, WindowState windowState)
+ {
+ super(portletId, queryParameters, bodyParameters, mode, windowState);
+ }
+ }
+
+ static class Render extends Request
+ {
+ public Render(String portletId, ParameterMap queryParameters, ParameterMap bodyParameters, Mode mode, WindowState windowState)
+ {
+ super(portletId, queryParameters, bodyParameters, mode, windowState);
+ }
+ }
+}
Added: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletControllerContext.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletControllerContext.java (rev 0)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletControllerContext.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,36 @@
+/******************************************************************************
+ * 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.portlet.test;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public interface PortletControllerContext
+{
+
+ PortalNavigationalState getNavigationalState();
+
+ PortletController.Request getRequest();
+
+}
Added: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletControllerContextImpl.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletControllerContextImpl.java (rev 0)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletControllerContextImpl.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,146 @@
+/******************************************************************************
+ * 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.portlet.test;
+
+import org.jboss.portal.web.IllegalRequestException;
+import org.jboss.portal.web.RequestInfo;
+import org.jboss.portal.portlet.test.url.ParameterDecoder;
+import org.jboss.portal.common.util.ParameterMap;
+import org.jboss.portal.common.util.Tools;
+import org.jboss.portal.Mode;
+import org.jboss.portal.WindowState;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class PortletControllerContextImpl implements PortletControllerContext
+{
+
+ /** . */
+ public static final int NAV_SCOPE = 0;
+
+ /** . */
+ public static final int SESSION_SCOPE = 1;
+
+ /** . */
+ private final PortalNavigationalState navState;
+
+ /** . */
+ private final PortletController.Request request;
+
+ public PortletControllerContextImpl(HttpServletRequest req, int navStateScope)
+ throws IllegalRequestException, IOException, ClassNotFoundException
+ {
+
+ if (navStateScope < NAV_SCOPE || navStateScope > SESSION_SCOPE)
+ {
+ throw new IllegalArgumentException();
+ }
+
+ //
+ String pathInfo = req.getPathInfo();
+ String targetId;
+
+ if (pathInfo != null && pathInfo.startsWith("/") && pathInfo.length() > 1)
+ {
+ targetId = StringCodec.decode(pathInfo.substring(1));
+
+ RequestInfo ri = new RequestInfo(req);
+ ParameterDecoder decoder = PortletURLRenderer.builder.createDecoder();
+ decoder.decode(ri.getQueryParameterMap());
+
+ //
+ ParameterMap metaParameters = decoder.getMetaParameters();
+
+ PortalNavigationalState navState;
+ if (navStateScope == NAV_SCOPE)
+ {
+ String ns = metaParameters.getValue("ns");
+ byte[] bytes = Tools.fromHexString(ns);
+ navState = PortalNavigationalState.create(bytes);
+ }
+ else
+ {
+ navState = (PortalNavigationalState)req.getSession().getAttribute("nav_state");
+ }
+
+ //
+ ParameterMap actualParameters = decoder.getActualParameters();
+
+ //
+ Mode mode = null;
+ if (metaParameters.getValue("mode") != null)
+ {
+ mode = Mode.create(metaParameters.getValue("mode"));
+ }
+
+ //
+ WindowState windowState = null;
+ if (metaParameters.getValue("windowstate") != null)
+ {
+ windowState = WindowState.create(metaParameters.getValue("windowstate"));
+ }
+
+ //
+ PortletController.Request request;
+ String type = metaParameters.getValue("type");
+ if ("action".equals(type))
+ {
+ request = new PortletController.Action(targetId, actualParameters, ri.getBodyParameterMap(), mode, windowState);
+ }
+ else
+ {
+ request = new PortletController.Render(targetId, actualParameters, ri.getBodyParameterMap(), mode, windowState);
+ }
+
+ //
+ this.navState = navState;
+ this.request = request;
+ }
+ else
+ {
+ this.navState = new PortalNavigationalState();
+ this.request = null;
+
+ //
+ if (navStateScope == SESSION_SCOPE)
+ {
+ req.getSession().setAttribute("nav_state", navState);
+ }
+ }
+ }
+
+ public PortletController.Request getRequest()
+ {
+ return request;
+ }
+
+ public PortalNavigationalState getNavigationalState()
+ {
+ return navState;
+ }
+}
Added: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletURLRenderer.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletURLRenderer.java (rev 0)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletURLRenderer.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,151 @@
+/******************************************************************************
+ * 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.portlet.test;
+
+import org.jboss.portal.portlet.Portlet;
+import org.jboss.portal.portlet.PortletURL;
+import org.jboss.portal.portlet.RenderURL;
+import org.jboss.portal.portlet.PortletParametersStateString;
+import org.jboss.portal.portlet.ActionURL;
+import org.jboss.portal.portlet.test.url.CodecBuilder;
+import org.jboss.portal.portlet.test.url.ParameterEncoder;
+import org.jboss.portal.common.text.CharBuffer;
+import org.jboss.portal.common.text.FastURLEncoder;
+import org.jboss.portal.common.util.ParameterMap;
+import org.jboss.portal.common.util.Tools;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Iterator;
+import java.util.Map;
+import java.io.IOException;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class PortletURLRenderer
+{
+
+ /** . */
+ final Portlet portlet;
+
+ /** . */
+ final HttpServletRequest clientReq;
+
+ /** . */
+ final HttpServletResponse clientResp;
+
+ /** . */
+ final PortalNavigationalState navState;
+
+ public PortletURLRenderer(PortalNavigationalState navState, Portlet portlet, HttpServletRequest clientReq, HttpServletResponse clientResp)
+ {
+ this.navState = navState;
+ this.portlet = portlet;
+ this.clientReq = clientReq;
+ this.clientResp = clientResp;
+ }
+
+ static final CodecBuilder builder = new CodecBuilder("action").
+ addMetaParameter("windowstate").
+ addMetaParameter("mode").
+ addMetaParameter("type").
+ addMetaParameter("ns");
+
+ String renderURL(PortletURL portletURL, Boolean wantSecure, Boolean wantAuthenticated, boolean relative)
+ {
+ CharBuffer buffer = new CharBuffer();
+ buffer.append(clientReq.getScheme());
+ buffer.append("://");
+ buffer.append(clientReq.getServerName());
+ buffer.append(':');
+ buffer.append(Integer.toString(clientReq.getServerPort()));
+ buffer.append(clientReq.getContextPath());
+ buffer.append('/');
+ buffer.append(StringCodec.encode(portlet.getContext().getId()));
+
+ //
+ ParameterMap metaParameters = new ParameterMap();
+
+ //
+ metaParameters.setValue("type", portletURL instanceof RenderURL ? "render" : "action");
+
+ //
+ try
+ {
+ byte[] bytes = navState.getBytes();
+ String ns = Tools.toHexString(bytes);
+ metaParameters.setValue("ns", ns);
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+
+ //
+ if (portletURL.getMode() != null)
+ {
+ metaParameters.setValue("mode", portletURL.getMode().toString());
+ }
+ if (portletURL.getWindowState() != null)
+ {
+ metaParameters.setValue("windowstate", portletURL.getWindowState().toString());
+ }
+
+ //
+ ParameterMap actualParameters;
+ if (portletURL instanceof RenderURL)
+ {
+ actualParameters = ((PortletParametersStateString)((RenderURL)portletURL).getNavigationalState()).getParameters();
+ }
+ else
+ {
+ actualParameters = ((PortletParametersStateString)((ActionURL)portletURL).getInteractionState()).getParameters();
+ }
+
+ //
+ ParameterEncoder encoder = builder.createEncoder();
+ encoder.encode(actualParameters, metaParameters);
+ boolean first = true;
+ for (Iterator i = encoder.getParameters().entrySet().iterator(); i.hasNext();)
+ {
+ Map.Entry parameter = (Map.Entry)i.next();
+ String name = (String)parameter.getKey();
+ String[] values = (String[])parameter.getValue();
+ for (int j = 0; j < values.length; j++)
+ {
+ String value = values[j];
+ buffer.append(first ? '?' : '&');
+ buffer.append(name, FastURLEncoder.getInstance());
+ buffer.append('=');
+ buffer.append(value, FastURLEncoder.getInstance());
+ first = false;
+ }
+ }
+
+ //
+ String url = buffer.asString();
+ return clientResp.encodeURL(url);
+ }
+}
Added: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/StringCodec.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/StringCodec.java (rev 0)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/StringCodec.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,114 @@
+/******************************************************************************
+ * 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.portlet.test;
+
+import java.io.OutputStreamWriter;
+import java.io.OutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.io.ByteArrayOutputStream;
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetEncoder;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class StringCodec
+{
+
+ private static char[] blah = "0123456789ABCDEF".toCharArray();
+
+
+ public static String encode(String decodedValue)
+ {
+ try
+ {
+ StringBuffer buffer = new StringBuffer();
+ char[] tmp = new char[1];
+ for (int i = 0;i < decodedValue.length();i++)
+ {
+ char c = decodedValue.charAt(i);
+ if (Character.isLetterOrDigit(c))
+ {
+ buffer.append(c);
+ }
+ else
+ {
+ tmp[0] = c;
+ byte[] bytes = new String(tmp).getBytes("UTF8");
+ for (int j = 0; j < bytes.length; j++)
+ {
+ byte b = bytes[j];
+ buffer.append('_').append(blah[(b & 0XF0) >> 4]).append(blah[b & 0x0F]);
+ }
+ }
+ }
+ return buffer.toString();
+ }
+ catch (UnsupportedEncodingException e)
+ {
+ throw new RuntimeException();
+ }
+ }
+
+ public static String decode(String encodedValue)
+ {
+ try
+ {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream(encodedValue.length());
+ for (int i = 0;i < encodedValue.length();i++)
+ {
+ char c = encodedValue.charAt(i);
+ if (Character.isLetterOrDigit(c))
+ {
+ baos.write(c);
+ }
+ else if ('_' == c)
+ {
+ if (i + 3 > encodedValue.length())
+ {
+ throw new IllegalArgumentException("There should be at least 2 chars after an _ char");
+ }
+ String hex = encodedValue.substring(i + 1, i + 3);
+ int x = Integer.parseInt(hex, 16);
+ baos.write(x);
+ i += 2;
+ }
+ else
+ {
+ throw new IllegalArgumentException("Invalid char " + c);
+ }
+ }
+ return baos.toString("UTF-8");
+ }
+ catch (UnsupportedEncodingException e)
+ {
+ throw new RuntimeException();
+ }
+ }
+
+
+
+}
Added: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/StringCodecTestCase.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/StringCodecTestCase.java (rev 0)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/StringCodecTestCase.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,58 @@
+/******************************************************************************
+ * 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.portlet.test;
+
+import junit.framework.TestCase;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class StringCodecTestCase extends TestCase
+{
+
+ public void testA()
+ {
+
+ assertEquals("ABCDEFGHIJKLMNOPQRSTUVWXYZ", StringCodec.encode("ABCDEFGHIJKLMNOPQRSTUVWXYZ"));
+ assertEquals("abcdefghijklmnopqrstuvwxyz", StringCodec.encode("abcdefghijklmnopqrstuvwxyz"));
+ assertEquals("0123456789", StringCodec.encode("0123456789"));
+ assertEquals("_2F", StringCodec.encode("/"));
+ assertEquals("_40", StringCodec.encode("@"));
+ assertEquals("_E2_82_AC", StringCodec.encode("�"));
+ assertEquals("A_E2_82_ACB_40C", StringCodec.encode("A�B@C"));
+
+ }
+
+ public void testB()
+ {
+ assertEquals("ABCDEFGHIJKLMNOPQRSTUVWXYZ", StringCodec.decode(StringCodec.encode("ABCDEFGHIJKLMNOPQRSTUVWXYZ")));
+ assertEquals("abcdefghijklmnopqrstuvwxyz", StringCodec.decode(StringCodec.encode("abcdefghijklmnopqrstuvwxyz")));
+ assertEquals("0123456789", StringCodec.decode(StringCodec.encode("0123456789")));
+ assertEquals("/", StringCodec.decode(StringCodec.encode("/")));
+ assertEquals("@", StringCodec.decode(StringCodec.encode("@")));
+ assertEquals("�", StringCodec.decode(StringCodec.encode("�")));
+ assertEquals("A�B@C", StringCodec.decode(StringCodec.encode("A�B@C")));
+ }
+
+}
Added: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestActionContext.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestActionContext.java (rev 0)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestActionContext.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,78 @@
+/******************************************************************************
+ * 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.portlet.test;
+
+import org.jboss.portal.portlet.StateString;
+import org.jboss.portal.portlet.PortletParameters;
+import org.jboss.portal.portlet.PortletURL;
+import org.jboss.portal.portlet.invocation.PortletInvocation;
+import org.jboss.portal.portlet.impl.spi.AbstractActionContext;
+import org.jboss.portal.Mode;
+import org.jboss.portal.WindowState;
+import org.jboss.portal.common.util.MarkupInfo;
+import org.jboss.portal.common.invocation.resolver.PrincipalAttributeResolver;
+import org.jboss.portal.common.invocation.resolver.MapAttributeResolver;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class TestActionContext extends AbstractActionContext
+{
+
+ /** . */
+ private final PortletURLRenderer urlRenderer;
+
+ public TestActionContext(PortletURLRenderer urlRenderer, Mode mode, WindowState windowState, StateString navigationalState, MarkupInfo markupInfo, StateString interactionState, PortletParameters form)
+ {
+ super(mode, windowState, navigationalState, markupInfo, interactionState, form);
+
+ //
+ this.urlRenderer = urlRenderer;
+
+ //
+ addResolver(PortletInvocation.PRINCIPAL_SCOPE, new PrincipalAttributeResolver(urlRenderer.clientReq));
+ addResolver(PortletInvocation.INVOCATION_SCOPE, new MapAttributeResolver());
+ addResolver(PortletInvocation.REQUEST_PROPERTIES_SCOPE, new MapAttributeResolver());
+ addResolver(PortletInvocation.RESPONSE_PROPERTIES_SCOPE, new MapAttributeResolver());
+ addResolver(PortletInvocation.REQUEST_SCOPE, new MapAttributeResolver());
+ }
+
+ public HttpServletRequest getClientRequest() throws IllegalStateException
+ {
+ return urlRenderer.clientReq;
+ }
+
+ public HttpServletResponse getClientResponse() throws IllegalStateException
+ {
+ return urlRenderer.clientResp;
+ }
+
+ public String renderURL(PortletURL portletURL, Boolean wantSecure, Boolean wantAuthenticated, boolean relative)
+ {
+ return urlRenderer.renderURL(portletURL, wantSecure, wantAuthenticated, relative);
+ }
+}
Added: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestInstanceContext.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestInstanceContext.java (rev 0)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestInstanceContext.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,103 @@
+/******************************************************************************
+ * 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.portlet.test;
+
+import org.jboss.portal.portlet.state.AccessMode;
+import org.jboss.portal.portlet.PortletContext;
+import org.jboss.portal.portlet.StateEvent;
+import org.jboss.portal.portlet.spi.InstanceContext;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class TestInstanceContext implements InstanceContext
+{
+
+ private HttpServletRequest req;
+
+ private boolean modifiable;
+
+ private PortletContext target;
+
+ private boolean useClone;
+
+ private String id;
+
+ public TestInstanceContext(
+ HttpServletRequest req,
+ PortletContext portletContext,
+ boolean modifiable)
+ {
+ String id = portletContext.getId();
+ PortletContext target = portletContext;
+ boolean useClone = false;
+ HttpSession session = req.getSession(false);
+ if (session != null)
+ {
+ PortletContext clone = (PortletContext)session.getAttribute("clone." + id);
+ if (clone != null)
+ {
+ target = clone;
+ useClone = true;
+ }
+ }
+
+ //
+ this.req = req;
+ this.useClone = useClone;
+ this.target = target;
+ this.id = id;
+ this.modifiable = modifiable;
+ }
+
+ public PortletContext getTarget()
+ {
+ return target;
+ }
+
+ public String getId()
+ {
+ return id;
+ }
+
+ public AccessMode getAccessMode()
+ {
+ return modifiable ? (useClone ? AccessMode.READ_WRITE : AccessMode.CLONE_BEFORE_WRITE) : AccessMode.READ_ONLY;
+ }
+
+ public void onStateEvent(StateEvent event)
+ {
+ StateEvent.StateEventType type = event.getType();
+
+ //
+ if (StateEvent.PORTLET_CLONED_EVENT.equals(type) || StateEvent.PORTLET_MODIFIED_EVENT.equals(type))
+ {
+ target = event.getPortletContext();
+ req.getSession().setAttribute("clone." + id, target);
+ }
+ }
+}
Deleted: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestPortletInvocationContext.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestPortletInvocationContext.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestPortletInvocationContext.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -1,84 +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.portlet.test;
-
-import org.jboss.portal.portlet.impl.spi.AbstractPortletInvocationContext;
-import org.jboss.portal.portlet.StateString;
-import org.jboss.portal.portlet.PortletURL;
-import org.jboss.portal.Mode;
-import org.jboss.portal.WindowState;
-import org.jboss.portal.common.util.MarkupInfo;
-import org.jboss.portal.common.invocation.Scope;
-import org.jboss.portal.common.invocation.resolver.MapAttributeResolver;
-import org.jboss.portal.common.invocation.resolver.PrincipalAttributeResolver;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 1.1 $
- */
-public class TestPortletInvocationContext extends AbstractPortletInvocationContext
-{
-
- /** . */
- private HttpServletRequest req;
-
- /** . */
- private HttpServletResponse resp;
-
- public TestPortletInvocationContext(
- Mode mode,
- WindowState windowState,
- StateString navigationalState,
- MarkupInfo markupInfo,
- HttpServletRequest req,
- HttpServletResponse resp)
- {
- super(mode, windowState, navigationalState, markupInfo);
-
- //
- this.req = req;
- this.resp = resp;
-
- //
- addResolver(Scope.PRINCIPAL_SCOPE, new PrincipalAttributeResolver(req));
- addResolver(Scope.INVOCATION_SCOPE, new MapAttributeResolver());
- }
-
- public HttpServletRequest getClientRequest() throws IllegalStateException
- {
- return req;
- }
-
- public HttpServletResponse getClientResponse() throws IllegalStateException
- {
- return resp;
- }
-
- public String renderURL(PortletURL portletURL, Boolean wantSecure, Boolean wantAuthenticated, boolean relative)
- {
- return "TODO";
- }
-}
Added: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestPortletInvoker.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestPortletInvoker.java (rev 0)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestPortletInvoker.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,157 @@
+/******************************************************************************
+ * 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.portlet.test;
+
+import org.jboss.portal.portlet.PortletInvoker;
+import org.jboss.portal.portlet.PortletInvokerException;
+import org.jboss.portal.portlet.Portlet;
+import org.jboss.portal.portlet.PortletContext;
+import org.jboss.portal.portlet.state.PropertyMap;
+import org.jboss.portal.portlet.state.PropertyChange;
+import org.jboss.portal.portlet.invocation.PortletInvocation;
+import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
+import org.jboss.portal.common.invocation.InterceptorStackFactory;
+import org.jboss.portal.common.invocation.InvocationHandler;
+import org.jboss.portal.common.invocation.Invocation;
+import org.jboss.portal.common.invocation.InvocationException;
+
+import java.util.Set;
+import java.util.List;
+
+/**
+ * A simple consumer.
+ *
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 6712 $
+ */
+public class TestPortletInvoker implements PortletInvoker
+{
+
+ /** . */
+ private InterceptorStackFactory stackFactory;
+
+ /** . */
+ private PortletInvoker producer;
+
+ /** . */
+ private InvocationHandler handler = new InvocationHandler()
+ {
+ public Object invoke(Invocation invocation) throws Exception, InvocationException
+ {
+ PortletInvocation portletInvocation = (PortletInvocation)invocation;
+ try
+ {
+ portletInvocation.setHandler(null);
+ return producer.invoke(portletInvocation);
+ }
+ finally
+ {
+ portletInvocation.setHandler(this);
+ }
+ }
+ };
+
+ public InterceptorStackFactory getStackFactory()
+ {
+ return stackFactory;
+ }
+
+ public void setStackFactory(InterceptorStackFactory stackFactory)
+ {
+ this.stackFactory = stackFactory;
+ }
+
+ public PortletInvoker getProducer()
+ {
+ return producer;
+ }
+
+ public void setProducer(PortletInvoker producer)
+ {
+ this.producer = producer;
+ }
+
+ public Set getPortlets() throws PortletInvokerException
+ {
+ return producer.getPortlets();
+ }
+
+ public Portlet getPortlet(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException
+ {
+ return producer.getPortlet(portletContext);
+ }
+
+ public PortletInvocationResponse invoke(PortletInvocation invocation) throws PortletInvokerException
+ {
+ InvocationHandler prevHandler = invocation.getHandler();
+ try
+ {
+ invocation.setHandler(handler);
+ return (PortletInvocationResponse)invocation.invoke(stackFactory.getInterceptorStack());
+ }
+ catch (Exception e)
+ {
+ if (e instanceof PortletInvokerException)
+ {
+ throw(PortletInvokerException)e;
+ }
+ else if (e instanceof RuntimeException)
+ {
+ throw(RuntimeException)e;
+ }
+ else
+ {
+ throw new PortletInvokerException(e);
+ }
+ }
+ finally
+ {
+ invocation.setHandler(prevHandler);
+ }
+ }
+
+ public PortletContext createClone(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public List destroyClones(List portletContexts) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public PropertyMap getProperties(PortletContext portletContext, Set keys) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public PropertyMap getProperties(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public PortletContext setProperties(PortletContext portletContext, PropertyChange[] changes) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ {
+ throw new UnsupportedOperationException();
+ }
+}
Modified: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestRenderContext.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestRenderContext.java 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/TestRenderContext.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -22,12 +22,14 @@
******************************************************************************/
package org.jboss.portal.portlet.test;
-import org.jboss.portal.portlet.spi.RenderContext;
import org.jboss.portal.portlet.StateString;
+import org.jboss.portal.portlet.PortletURL;
+import org.jboss.portal.portlet.invocation.PortletInvocation;
+import org.jboss.portal.portlet.impl.spi.AbstractRenderContext;
import org.jboss.portal.Mode;
import org.jboss.portal.WindowState;
import org.jboss.portal.common.util.MarkupInfo;
-import org.jboss.portal.common.invocation.Scope;
+import org.jboss.portal.common.invocation.resolver.PrincipalAttributeResolver;
import org.jboss.portal.common.invocation.resolver.MapAttributeResolver;
import javax.servlet.http.HttpServletRequest;
@@ -37,10 +39,39 @@
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 1.1 $
*/
-public class TestRenderContext extends TestPortletInvocationContext implements RenderContext
+public class TestRenderContext extends AbstractRenderContext
{
- public TestRenderContext(Mode mode, WindowState windowState, StateString navigationalState, MarkupInfo markupInfo, HttpServletRequest req, HttpServletResponse resp)
+
+ /** . */
+ private final PortletURLRenderer urlRenderer;
+
+ public TestRenderContext(PortletURLRenderer urlRenderer, Mode mode, WindowState windowState, StateString navigationalState, MarkupInfo markupInfo)
{
- super(mode, windowState, navigationalState, markupInfo, req, resp);
+ super(mode, windowState, navigationalState, markupInfo);
+
+ //
+ this.urlRenderer = urlRenderer;
+
+ //
+ addResolver(PortletInvocation.PRINCIPAL_SCOPE, new PrincipalAttributeResolver(urlRenderer.clientReq));
+ addResolver(PortletInvocation.INVOCATION_SCOPE, new MapAttributeResolver());
+ addResolver(PortletInvocation.REQUEST_PROPERTIES_SCOPE, new MapAttributeResolver());
+ addResolver(PortletInvocation.RESPONSE_PROPERTIES_SCOPE, new MapAttributeResolver());
+ addResolver(PortletInvocation.REQUEST_SCOPE, new MapAttributeResolver());
}
+
+ public HttpServletRequest getClientRequest() throws IllegalStateException
+ {
+ return urlRenderer.clientReq;
+ }
+
+ public HttpServletResponse getClientResponse() throws IllegalStateException
+ {
+ return urlRenderer.clientResp;
+ }
+
+ public String renderURL(PortletURL portletURL, Boolean wantSecure, Boolean wantAuthenticated, boolean relative)
+ {
+ return urlRenderer.renderURL(portletURL, wantSecure, wantAuthenticated, relative);
+ }
}
Added: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/WindowNavigationalState.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/WindowNavigationalState.java (rev 0)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/WindowNavigationalState.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,76 @@
+/******************************************************************************
+ * 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.portlet.test;
+
+import org.jboss.portal.portlet.StateString;
+import org.jboss.portal.Mode;
+import org.jboss.portal.WindowState;
+
+import java.io.Serializable;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class WindowNavigationalState implements Serializable
+{
+
+ /** . */
+ private StateString portletNavigationalState;
+
+ /** . */
+ private Mode mode;
+
+ /** . */
+ private WindowState windowState;
+
+ public StateString getPortletNavigationalState()
+ {
+ return portletNavigationalState;
+ }
+
+ public void setPortletNavigationalState(StateString portletNavigationalState)
+ {
+ this.portletNavigationalState = portletNavigationalState;
+ }
+
+ public Mode getMode()
+ {
+ return mode;
+ }
+
+ public void setMode(Mode mode)
+ {
+ this.mode = mode;
+ }
+
+ public WindowState getWindowState()
+ {
+ return windowState;
+ }
+
+ public void setWindowState(WindowState windowState)
+ {
+ this.windowState = windowState;
+ }
+}
Added: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/CodecBuilder.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/CodecBuilder.java (rev 0)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/CodecBuilder.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,77 @@
+/******************************************************************************
+ * 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.portlet.test.url;
+
+import java.util.LinkedHashSet;
+import java.util.ArrayList;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class CodecBuilder
+{
+
+ /** . */
+ final ArrayList metaParameterNames;
+
+ /** . */
+ final String reservedParameterName;
+
+ public CodecBuilder(CodecBuilder that)
+ {
+ this.metaParameterNames = new ArrayList(that.metaParameterNames);
+ this.reservedParameterName = that.reservedParameterName;
+ }
+
+ public CodecBuilder(String reservedParameter)
+ {
+ this.metaParameterNames = new ArrayList();
+ this.reservedParameterName = reservedParameter;
+ }
+
+ public CodecBuilder addMetaParameter(String name)
+ {
+ if (metaParameterNames.contains(name))
+ {
+ throw new IllegalStateException();
+ }
+ if (reservedParameterName.equals(name))
+ {
+ throw new IllegalStateException();
+ }
+ metaParameterNames.add(name);
+ return this;
+ }
+
+ public ParameterEncoder createEncoder()
+ {
+ return new ParameterEncoder(this);
+ }
+
+ public ParameterDecoder createDecoder()
+ {
+ return new ParameterDecoder(this);
+ }
+
+}
Added: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/DecoderTestCase.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/DecoderTestCase.java (rev 0)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/DecoderTestCase.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,388 @@
+/******************************************************************************
+ * 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.portlet.test.url;
+
+import junit.framework.TestCase;
+import org.jboss.portal.common.util.ParameterMap;
+import org.jboss.portal.common.junit.ExtendedAssert;
+
+import java.util.ArrayList;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class DecoderTestCase extends TestCase
+{
+
+ Tester tester;
+
+ protected void setUp() throws Exception
+ {
+ tester = new Tester();
+ }
+
+ public void testNoMeta()
+ {
+ tester.assertActual(0);
+ tester.assertMeta(0);
+// tester.check();
+ tester.parameter("action", "0");
+ tester.checkAndReset();
+
+ //
+ tester.parameter("m1", "a");
+ tester.assertActual(1).assertActual("m1", new String[]{"a"});
+ tester.assertMeta(0);
+// tester.check();
+ tester.parameter("action", "0");
+ tester.checkAndReset();
+ }
+
+ public void testNoMetaCorruption()
+ {
+ tester.parameter("action", "a").assertFailed().checkAndReset();
+ tester.parameter("action", "1").assertFailed().checkAndReset();
+ }
+
+ public void testOneMeta()
+ {
+ tester.builder.addMetaParameter("m1");
+
+ //
+ tester.assertActual(0);
+ tester.assertMeta(0);
+// tester.check();
+ tester.parameter("action", "0");
+ tester.checkAndReset();
+
+ //
+ tester.parameter("m1", "a");
+ tester.assertActual(1).assertActual("m1", new String[]{"a"});
+ tester.assertMeta(0);
+// tester.check();
+ tester.parameter("action", "0");
+ tester.checkAndReset();
+
+ //
+ tester.parameter("action", "1").parameter("m1", "foo");
+ tester.assertActual(0);
+ tester.assertMeta(1).assertMeta("m1", new String[]{"foo"});
+ tester.checkAndReset();
+
+ //
+ tester.parameter("action", "1").parameter("m1", new String[]{"foo","a"});
+ tester.assertActual(1).assertActual("m1", new String[]{"a"});
+ tester.assertMeta(1).assertMeta("m1", new String[]{"foo"});
+ tester.checkAndReset();
+
+ //
+ tester.parameter("m2", "b");
+ tester.assertActual(1).assertActual("m2", new String[]{"b"});
+ tester.assertMeta(0);
+// tester.check();
+ tester.parameter("action", "0");
+ tester.checkAndReset();
+
+ //
+ tester.parameter("m1", "a").parameter("m2", "b");
+ tester.assertActual(2).assertActual("m1", new String[]{"a"}).assertActual("m2", new String[]{"b"});
+ tester.assertMeta(0);
+// tester.check();
+ tester.parameter("action", "0");
+ tester.checkAndReset();
+
+ //
+ tester.parameter("action", "1").parameter("m1", "foo").parameter("m2", "b");
+ tester.assertActual(1).assertActual("m2", new String[]{"b"});
+ tester.assertMeta(1).assertMeta("m1", new String[]{"foo"});
+ tester.checkAndReset();
+
+ //
+ tester.parameter("action", "1").parameter("m1", new String[]{"foo","a"}).parameter("m2", "b");
+ tester.assertActual(2).assertActual("m1", new String[]{"a"}).assertActual("m2", new String[]{"b"});
+ tester.assertMeta(1).assertMeta("m1", new String[]{"foo"});
+ tester.checkAndReset();
+ }
+
+ public void testOneMetaCorruption()
+ {
+ tester.builder.addMetaParameter("m1");
+
+ //
+ tester.parameter("action", "a").assertFailed().checkAndReset();
+ tester.parameter("action", "1").assertFailed().checkAndReset();
+ tester.parameter("action", "10").assertFailed().checkAndReset();
+
+ //
+ tester.parameter("action", "a").assertFailed().checkAndReset();
+ tester.parameter("action", "10").parameter("m1", "foo").assertFailed().checkAndReset();
+ }
+
+ public void testTwoMeta()
+ {
+ tester.builder.addMetaParameter("m1");
+ tester.builder.addMetaParameter("m2");
+
+ //
+ tester.assertActual(0);
+ tester.assertMeta(0);
+// tester.check();
+ tester.parameter("action", "0");
+ tester.checkAndReset();
+
+ //
+ tester.parameter("m1", "a");
+ tester.assertActual(1).assertActual("m1", new String[]{"a"});
+ tester.assertMeta(0);
+// tester.check();
+ tester.parameter("action", "0");
+ tester.checkAndReset();
+
+ //
+ tester.parameter("m2", "b");
+ tester.assertActual(1).assertActual("m2", new String[]{"b"});
+ tester.assertMeta(0);
+// tester.check();
+ tester.parameter("action", "0");
+ tester.checkAndReset();
+
+ //
+ tester.parameter("m1", "a").parameter("m2", "b");
+ tester.assertActual(2).assertActual("m1", new String[]{"a"}).assertActual("m2", new String[]{"b"});
+ tester.assertMeta(0);
+// tester.check();
+ tester.parameter("action", "0");
+ tester.checkAndReset();
+
+ // {m1}
+
+ //
+ tester.parameter("action", "10").parameter("m1", "foo");
+ tester.assertActual(0);
+ tester.assertMeta(1).assertMeta("m1", new String[]{"foo"});
+ tester.checkAndReset();
+
+ //
+ tester.parameter("action", "10").parameter("m1", new String[]{"foo","a"});
+ tester.assertActual(1).assertActual("m1", new String[]{"a"});
+ tester.assertMeta(1).assertMeta("m1", new String[]{"foo"});
+ tester.checkAndReset();
+
+ //
+ tester.parameter("action", "10").parameter("m1", "foo").parameter("m2", "b");
+ tester.assertActual(1).assertActual("m2", new String[]{"b"});
+ tester.assertMeta(1).assertMeta("m1", new String[]{"foo"});
+ tester.checkAndReset();
+
+ //
+ tester.parameter("action", "10").parameter("m1", new String[]{"foo","a"}).parameter("m2", "b");
+ tester.assertActual(2).assertActual("m1", new String[]{"a"}).assertActual("m2", new String[]{"b"});
+ tester.assertMeta(1).assertMeta("m1", new String[]{"foo"});
+ tester.checkAndReset();
+
+ // {m2}
+
+ //
+ tester.parameter("action", "1").parameter("m2", "bar");
+ tester.assertActual(0);
+ tester.assertMeta(1).assertMeta("m2", new String[]{"bar"});
+ tester.checkAndReset();
+
+ //
+ tester.parameter("action", "1").parameter("m1", "a").parameter("m2", "bar");
+ tester.assertActual(1).assertActual("m1", new String[]{"a"});
+ tester.assertMeta(1).assertMeta("m2", new String[]{"bar"});
+ tester.checkAndReset();
+
+ //
+ tester.parameter("action", "1").parameter("m2", new String[]{"bar","b"});
+ tester.assertActual(1).assertActual("m2", new String[]{"b"});
+ tester.assertMeta(1).assertMeta("m2", new String[]{"bar"});
+ tester.checkAndReset();
+
+ //
+ tester.parameter("action", "1").parameter("m1", "a").parameter("m2", new String[]{"bar","b"});
+ tester.assertActual(2).assertActual("m1", new String[]{"a"}).assertActual("m2", new String[]{"b"});
+ tester.assertMeta(1).assertMeta("m2", new String[]{"bar"});
+ tester.checkAndReset();
+
+ // {m1,m2}
+
+ //
+ tester.parameter("action", "11").parameter("m1", "foo").parameter("m2", "bar");
+ tester.assertActual(0);
+ tester.assertMeta(2).assertMeta("m1", new String[]{"foo"}).assertMeta("m2", new String[]{"bar"});
+ tester.checkAndReset();
+
+ //
+ tester.parameter("action", "11").parameter("m1", new String[]{"foo","a"}).parameter("m2", "bar");
+ tester.assertActual(1).assertActual("m1", new String[]{"a"});
+ tester.assertMeta(2).assertMeta("m1", new String[]{"foo"}).assertMeta("m2", new String[]{"bar"});
+ tester.checkAndReset();
+
+ //
+ tester.parameter("action", "11").parameter("m1", "foo").parameter("m2", new String[]{"bar","b"});
+ tester.assertActual(1).assertActual("m2", new String[]{"b"});
+ tester.assertMeta(2).assertMeta("m1", new String[]{"foo"}).assertMeta("m2", new String[]{"bar"});
+ tester.checkAndReset();
+
+ //
+ tester.parameter("action", "11").parameter("m1", new String[]{"foo","a"}).parameter("m2", new String[]{"bar","b"});
+ tester.assertActual(2).assertActual("m1", new String[]{"a"}).assertActual("m2", new String[]{"b"});
+ tester.assertMeta(2).assertMeta("m1", new String[]{"foo"}).assertMeta("m2", new String[]{"bar"});
+ tester.checkAndReset();
+ }
+
+ private static class Tester
+ {
+
+ private interface Assertion
+ {
+ void doAssert();
+ }
+
+ ArrayList assertions = new ArrayList();
+
+ CodecBuilder builder = new CodecBuilder("action");
+ ParameterMap parameters = new ParameterMap();
+ ParameterMap actualParameters = new ParameterMap();
+ ParameterMap metaParameters = new ParameterMap();
+ boolean failed;
+
+ public void check()
+ {
+ ParameterDecoder decoder = builder.createDecoder();
+
+ //
+ try
+ {
+ decoder.decode(parameters);
+
+ //
+ failed = false;
+ actualParameters = decoder.getActualParameters();
+ metaParameters = decoder.getMetaParameters();
+ }
+ catch (IllegalArgumentException e)
+ {
+ failed = true;
+ }
+
+
+ for (int i = 0; i < assertions.size(); i++)
+ {
+ Assertion assertion = (Assertion)assertions.get(i);
+ assertion.doAssert();
+ }
+ }
+
+ public void checkAndReset()
+ {
+ check();
+
+ //
+ parameters.clear();
+ assertions.clear();
+ }
+
+ public Tester parameter(String name, String value)
+ {
+ if (value == null)
+ {
+ parameters.remove(name);
+ }
+ else
+ {
+ parameters.setValue(name, value);
+ }
+ return this;
+ }
+ public Tester parameter(String name, String[] values)
+ {
+ parameters.setValues(name, values);
+ return this;
+ }
+
+
+ public Tester assertActual(final int size)
+ {
+ assertions.add(new Assertion()
+ {
+ public void doAssert()
+ {
+ assertFalse(failed);
+ assertEquals(size, actualParameters.size());
+ }
+ });
+ return this;
+ }
+ public Tester assertActual(final String name, final String[] values)
+ {
+ assertions.add(new Assertion()
+ {
+ public void doAssert()
+ {
+ assertFalse(failed);
+ ExtendedAssert.assertEquals(values, actualParameters.getValues(name));
+ }
+ });
+ return this;
+ }
+ public Tester assertMeta(final int size)
+ {
+ assertions.add(new Assertion()
+ {
+ public void doAssert()
+ {
+ assertFalse(failed);
+ assertEquals(size, metaParameters.size());
+ }
+ });
+ return this;
+ }
+ public Tester assertMeta(final String name, final String[] values)
+ {
+ assertions.add(new Assertion()
+ {
+ public void doAssert()
+ {
+ assertFalse(failed);
+ ExtendedAssert.assertEquals(values, metaParameters.getValues(name));
+ }
+ });
+ return this;
+ }
+ public Tester assertFailed()
+ {
+ assertions.add(new Assertion()
+ {
+ public void doAssert()
+ {
+ assertTrue(failed);
+ }
+ });
+ return this;
+ }
+ }
+}
Added: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/EncoderTestCase.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/EncoderTestCase.java (rev 0)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/EncoderTestCase.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,609 @@
+/******************************************************************************
+ * 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.portlet.test.url;
+
+import junit.framework.TestCase;
+import org.jboss.portal.common.util.ParameterMap;
+import org.jboss.portal.common.junit.ExtendedAssert;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class EncoderTestCase extends TestCase
+{
+
+ Tester tester;
+
+ protected void setUp() throws Exception
+ {
+ tester = new Tester();
+ }
+
+ public void testEncodeNoMeta()
+ {
+ ParameterMap result = tester.encode();
+ assertEquals(1, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+
+ //
+ tester.actual("action", "foo");
+ result = tester.encode();
+ assertEquals(1, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0","foo"}, result.getValues("action"));
+
+ //
+ tester.meta("action", "foo");
+ result = tester.encode();
+ assertEquals(1, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+ }
+
+ public void testEncodeOneMeta()
+ {
+ tester.meta("m1");
+
+ //
+ ParameterMap result = tester.encode();
+ assertEquals(1, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+
+ //
+ tester.meta("m1", "foo");
+ result = tester.encode();
+ assertEquals(2, result.size());
+ ExtendedAssert.assertEquals(new String[]{"1"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m1"));
+
+ //
+ tester.actual("m1", "foo");
+ result = tester.encode();
+ assertEquals(2, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m1"));
+
+ //
+ tester.meta("m1", "bar").actual("m1", "foo");
+ result = tester.encode();
+ assertEquals(2, result.size());
+ ExtendedAssert.assertEquals(new String[]{"1"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"bar","foo"}, result.getValues("m1"));
+ }
+
+ public void testEncodeTwoMeta()
+ {
+ tester.meta("m1");
+ tester.meta("m2");
+
+ // No actual parameters
+
+ //
+ ParameterMap result = tester.encode();
+ assertEquals(1, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+
+ //
+ result = tester.meta("m1", "foo").encode();
+ assertEquals(2, result.size());
+ ExtendedAssert.assertEquals(new String[]{"10"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m1"));
+
+ //
+ result = tester.meta("m2", "foo").encode();
+ assertEquals(2, result.size());
+ ExtendedAssert.assertEquals(new String[]{"1"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m2"));
+
+ //
+ result = tester.meta("m1", "foo").meta("m2", "bar").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"11"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"bar"}, result.getValues("m2"));
+
+ //
+ result = tester.meta("m1", "foo").meta("m3", "zuu").encode();
+ assertEquals(2, result.size());
+ ExtendedAssert.assertEquals(new String[]{"10"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m1"));
+
+ //
+ result = tester.meta("m3", "zuu").encode();
+ assertEquals(1, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+
+ //
+ result = tester.meta("m2", "foo").meta("m3", "zuu").encode();
+ assertEquals(2, result.size());
+ ExtendedAssert.assertEquals(new String[]{"1"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m2"));
+
+ //
+ result = tester.meta("m1", "foo").meta("m2", "bar").meta("m2", "bar").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"11"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"bar"}, result.getValues("m2"));
+
+ // {m1} actual parameter
+
+ //
+ result = tester.actual("m1", "a").encode();
+ assertEquals(2, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"a"}, result.getValues("m1"));
+
+ //
+ result = tester.actual("m1", "a").meta("m1", "foo").encode();
+ assertEquals(2, result.size());
+ ExtendedAssert.assertEquals(new String[]{"10"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","a"}, result.getValues("m1"));
+
+ //
+ result = tester.actual("m1", "a").meta("m2", "foo").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"1"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m2"));
+
+ //
+ result = tester.actual("m1", "a").meta("m1", "foo").meta("m2", "bar").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"11"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"bar"}, result.getValues("m2"));
+
+ //
+ result = tester.actual("m1", "a").meta("m3", "zuu").encode();
+ assertEquals(2, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"a"}, result.getValues("m1"));
+
+ //
+ result = tester.actual("m1", "a").meta("m1", "foo").meta("m3", "zuu").encode();
+ assertEquals(2, result.size());
+ ExtendedAssert.assertEquals(new String[]{"10"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","a"}, result.getValues("m1"));
+
+ //
+ result = tester.actual("m1", "a").meta("m2", "foo").meta("m3", "zuu").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"1"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m2"));
+
+ //
+ result = tester.actual("m1", "a").meta("m1", "foo").meta("m2", "bar").meta("m3", "zuu").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"11"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"bar"}, result.getValues("m2"));
+
+ // {m2} actual parameter
+
+ //
+ result = tester.actual("m2", "b").encode();
+ assertEquals(2, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"b"}, result.getValues("m2"));
+
+ //
+ result = tester.actual("m2", "b").meta("m1", "foo").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"10"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"b"}, result.getValues("m2"));
+
+ //
+ result = tester.actual("m2", "b").meta("m2", "foo").encode();
+ assertEquals(2, result.size());
+ ExtendedAssert.assertEquals(new String[]{"1"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","b"}, result.getValues("m2"));
+
+ //
+ result = tester.actual("m2", "b").meta("m1", "foo").meta("m2", "bar").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"11"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"bar","b"}, result.getValues("m2"));
+
+ //
+ result = tester.actual("m2", "b").meta("m3", "zuu").encode();
+ assertEquals(2, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"b"}, result.getValues("m2"));
+
+ //
+ result = tester.actual("m2", "b").meta("m1", "foo").meta("m3", "zuu").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"10"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"b"}, result.getValues("m2"));
+
+ //
+ result = tester.actual("m2", "b").meta("m2", "foo").meta("m3", "zuu").encode();
+ assertEquals(2, result.size());
+ ExtendedAssert.assertEquals(new String[]{"1"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","b"}, result.getValues("m2"));
+
+ //
+ result = tester.actual("m2", "b").meta("m1", "foo").meta("m2", "bar").meta("m3", "zuu").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"11"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"bar","b"}, result.getValues("m2"));
+
+ // {m3} actual parameter
+
+ //
+ result = tester.actual("m3", "c").encode();
+ assertEquals(2, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m3", "c").meta("m1", "foo").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"10"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m3", "c").meta("m2", "foo").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"1"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m3", "c").meta("m1", "foo").meta("m2", "bar").encode();
+ assertEquals(4, result.size());
+ ExtendedAssert.assertEquals(new String[]{"11"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"bar"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m3", "c").meta("m3", "zuu").encode();
+ assertEquals(2, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m3", "c").meta("m1", "foo").meta("m3", "zuu").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"10"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m3", "c").meta("m2", "foo").meta("m3", "zuu").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"1"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m3", "c").meta("m1", "foo").meta("m2", "bar").meta("m3", "zuu").encode();
+ assertEquals(4, result.size());
+ ExtendedAssert.assertEquals(new String[]{"11"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"bar"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ // {m1,m2} actual parameter
+
+ //
+ result = tester.actual("m1", "a").actual("m2", "b").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"b"}, result.getValues("m2"));
+
+ //
+ result = tester.actual("m1", "a").actual("m2", "b").meta("m1", "foo").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"10"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"b"}, result.getValues("m2"));
+
+ //
+ result = tester.actual("m1", "a").actual("m2", "b").meta("m2", "foo").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"1"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"foo","b"}, result.getValues("m2"));
+
+ //
+ result = tester.actual("m1", "a").actual("m2", "b").meta("m1", "foo").meta("m2", "bar").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"11"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"bar","b"}, result.getValues("m2"));
+
+ //
+ result = tester.actual("m1", "a").actual("m2", "b").meta("m3", "zuu").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"b"}, result.getValues("m2"));
+
+ //
+ result = tester.actual("m1", "a").actual("m2", "b").meta("m1", "foo").meta("m3", "zuu").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"10"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"b"}, result.getValues("m2"));
+
+ //
+ result = tester.actual("m1", "a").actual("m2", "b").meta("m2", "foo").meta("m3", "zuu").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"1"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"foo","b"}, result.getValues("m2"));
+
+ //
+ result = tester.actual("m1", "a").actual("m2", "b").meta("m1", "foo").meta("m2", "bar").meta("m3", "zuu").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"11"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"bar","b"}, result.getValues("m2"));
+
+ // {m1,m3} actual parameter
+
+ //
+ result = tester.actual("m1", "a").actual("m3", "c").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m1", "a").actual("m3", "c").meta("m1", "foo").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"10"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m1", "a").actual("m3", "c").meta("m2", "foo").encode();
+ assertEquals(4, result.size());
+ ExtendedAssert.assertEquals(new String[]{"1"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m1", "a").actual("m3", "c").meta("m1", "foo").meta("m2", "bar").encode();
+ assertEquals(4, result.size());
+ ExtendedAssert.assertEquals(new String[]{"11"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"bar"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m1", "a").actual("m3", "c").meta("m3", "zuu").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m1", "a").actual("m3", "c").meta("m1", "foo").meta("m3", "zuu").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"10"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m1", "a").actual("m3", "c").meta("m2", "foo").meta("m3", "zuu").encode();
+ assertEquals(4, result.size());
+ ExtendedAssert.assertEquals(new String[]{"1"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m1", "a").actual("m3", "c").meta("m1", "foo").meta("m2", "bar").meta("m3", "zuu").encode();
+ assertEquals(4, result.size());
+ ExtendedAssert.assertEquals(new String[]{"11"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"bar"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ // {m2,m3} actual parameter
+
+ //
+ result = tester.actual("m2", "b").actual("m3", "c").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"b"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m2", "b").actual("m3", "c").meta("m1", "foo").encode();
+ assertEquals(4, result.size());
+ ExtendedAssert.assertEquals(new String[]{"10"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"b"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m2", "b").actual("m3", "c").meta("m2", "foo").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"1"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","b"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m2", "b").actual("m3", "c").meta("m1", "foo").meta("m2", "bar").encode();
+ assertEquals(4, result.size());
+ ExtendedAssert.assertEquals(new String[]{"11"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"bar","b"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m2", "b").actual("m3", "c").meta("m3", "zuu").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"b"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m2", "b").actual("m3", "c").meta("m1", "foo").meta("m3", "zuu").encode();
+ assertEquals(4, result.size());
+ ExtendedAssert.assertEquals(new String[]{"10"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"b"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m2", "b").actual("m3", "c").meta("m2", "foo").meta("m3", "zuu").encode();
+ assertEquals(3, result.size());
+ ExtendedAssert.assertEquals(new String[]{"1"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","b"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m2", "b").actual("m3", "c").meta("m1", "foo").meta("m2", "bar").meta("m3", "zuu").encode();
+ assertEquals(4, result.size());
+ ExtendedAssert.assertEquals(new String[]{"11"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"bar","b"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ // {m1,m2,m3} actual parameter
+
+ //
+ result = tester.actual("m1", "a").actual("m2", "b").actual("m3", "c").encode();
+ assertEquals(4, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"b"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m1", "a").actual("m2", "b").actual("m3", "c").meta("m1", "foo").encode();
+ assertEquals(4, result.size());
+ ExtendedAssert.assertEquals(new String[]{"10"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"b"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m1", "a").actual("m2", "b").actual("m3", "c").meta("m2", "foo").encode();
+ assertEquals(4, result.size());
+ ExtendedAssert.assertEquals(new String[]{"1"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"foo","b"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m1", "a").actual("m2", "b").actual("m3", "c").meta("m1", "foo").meta("m2", "bar").encode();
+ assertEquals(4, result.size());
+ ExtendedAssert.assertEquals(new String[]{"11"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"bar","b"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m1", "a").actual("m2", "b").actual("m3", "c").meta("m3", "zuu").encode();
+ assertEquals(4, result.size());
+ ExtendedAssert.assertEquals(new String[]{"0"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"b"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m1", "a").actual("m2", "b").actual("m3", "c").meta("m1", "foo").meta("m3", "zuu").encode();
+ assertEquals(4, result.size());
+ ExtendedAssert.assertEquals(new String[]{"10"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"b"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m1", "a").actual("m2", "b").actual("m3", "c").meta("m2", "foo").meta("m3", "zuu").encode();
+ assertEquals(4, result.size());
+ ExtendedAssert.assertEquals(new String[]{"1"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"foo","b"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+
+ //
+ result = tester.actual("m1", "a").actual("m2", "b").actual("m3", "c").meta("m1", "foo").meta("m2", "bar").meta("m3", "zuu").encode();
+ assertEquals(4, result.size());
+ ExtendedAssert.assertEquals(new String[]{"11"}, result.getValues("action"));
+ ExtendedAssert.assertEquals(new String[]{"foo","a"}, result.getValues("m1"));
+ ExtendedAssert.assertEquals(new String[]{"bar","b"}, result.getValues("m2"));
+ ExtendedAssert.assertEquals(new String[]{"c"}, result.getValues("m3"));
+ }
+
+ private static class Tester
+ {
+
+ /** . */
+ private CodecBuilder builder = new CodecBuilder("action");
+
+ /** . */
+ private ParameterMap actualParameters = new ParameterMap();
+
+ /** . */
+ private ParameterMap metaParameters = new ParameterMap();
+
+ public Tester meta(String name)
+ {
+ builder.addMetaParameter(name);
+ return this;
+ }
+
+ public Tester meta(String name, String value)
+ {
+ metaParameters.setValue(name, value);
+ return this;
+ }
+
+ public Tester actual(String name, String value)
+ {
+ actualParameters.setValue(name, value);
+ return this;
+ }
+
+ public ParameterMap encode()
+ {
+ ParameterEncoder encoder = builder.createEncoder();
+
+ // Encode
+ encoder.encode(actualParameters, metaParameters);
+
+ // Clear once it is used
+ actualParameters.clear();
+ metaParameters.clear();
+
+ // Clone for safety
+ return encoder.getParameters();
+ }
+ }
+
+}
Added: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/ParameterDecoder.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/ParameterDecoder.java (rev 0)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/ParameterDecoder.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,161 @@
+/******************************************************************************
+ * 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.portlet.test.url;
+
+import org.jboss.portal.common.util.ParameterMap;
+
+import java.util.Iterator;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Map;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class ParameterDecoder
+{
+
+ /** . */
+ private final CodecBuilder builder;
+
+ /** . */
+ private final ParameterMap metaParameters;
+
+ /** . */
+ private final ParameterMap actualParameters;
+
+ public ParameterDecoder(CodecBuilder builder)
+ {
+ this.builder = builder;
+ this.actualParameters = new ParameterMap();
+ this.metaParameters = new ParameterMap();
+ }
+
+ public ParameterMap getMetaParameters()
+ {
+ return metaParameters;
+ }
+
+ public ParameterMap getActualParameters()
+ {
+ return actualParameters;
+ }
+
+ public void decode(ParameterMap parameters)
+ {
+ actualParameters.clear();
+ metaParameters.clear();
+
+ // Get the meta parameter
+ long reservedParameter = 0;
+ String[] reservedParameters = parameters.getValues(builder.reservedParameterName);
+ if (reservedParameters != null)
+ {
+ if (reservedParameters.length < 1)
+ {
+ throw new IllegalArgumentException();
+ }
+ try
+ {
+ reservedParameter = Long.parseLong(reservedParameters[0], 2);
+ }
+ catch (NumberFormatException e)
+ {
+ throw new IllegalArgumentException();
+ }
+ }
+ else
+ {
+ throw new IllegalArgumentException();
+ }
+
+ //
+ for (int i = builder.metaParameterNames.size() - 1;reservedParameter > 0;)
+ {
+ if (i < 0)
+ {
+ throw new IllegalArgumentException();
+ }
+
+ //
+ String parameterName = (String)builder.metaParameterNames.get(i--);
+
+ //
+ if ((reservedParameter & 1) == 1)
+ {
+ String[] parameterValues = parameters.getValues(parameterName);
+
+ //
+ if (parameterValues == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ if (parameterValues.length == 0)
+ {
+ throw new IllegalArgumentException();
+ }
+
+ //
+ String metaParameterValue = parameterValues[0];
+ metaParameters.setValue(parameterName, metaParameterValue);
+
+ //
+ if (parameterValues.length > 1)
+ {
+ String[] actualParameterValues = new String[parameterValues.length - 1];
+ System.arraycopy(parameterValues, 1, actualParameterValues, 0, actualParameterValues.length);
+ actualParameters.setValues(parameterName, actualParameterValues);
+ }
+ }
+
+ //
+ reservedParameter = reservedParameter >> 1;
+ }
+
+ //
+ for (Iterator i = parameters.entrySet().iterator();i.hasNext();)
+ {
+ Map.Entry entry = (Map.Entry)i.next();
+ String parameterName = (String)entry.getKey();
+ if (!metaParameters.containsKey(parameterName))
+ {
+ if (builder.reservedParameterName.equals(parameterName))
+ {
+ String[] reservedParameterValues = (String[])entry.getValue();
+ if (reservedParameterValues.length > 1)
+ {
+ String[] parameterValues = new String[reservedParameterValues.length - 1];
+ System.arraycopy(reservedParameterValues, 1, parameterValues, 0, parameterValues.length);
+ actualParameters.setValues(parameterName, parameterValues);
+ }
+ }
+ else
+ {
+ String[] parameterValues = (String[])entry.getValue();
+ actualParameters.setValues(parameterName, parameterValues);
+ }
+ }
+ }
+ }
+}
Added: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/ParameterEncoder.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/ParameterEncoder.java (rev 0)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/url/ParameterEncoder.java 2007-08-30 21:10:49 UTC (rev 8115)
@@ -0,0 +1,116 @@
+/******************************************************************************
+ * 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.portlet.test.url;
+
+import org.jboss.portal.common.util.ParameterMap;
+
+import java.util.Map;
+import java.util.Iterator;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class ParameterEncoder
+{
+
+ /** . */
+ private final CodecBuilder builder;
+
+ /** . */
+ private final ParameterMap parameters;
+
+ public ParameterEncoder(CodecBuilder builder)
+ {
+ this.builder = new CodecBuilder(builder);
+ this.parameters = new ParameterMap();
+ }
+
+ public ParameterMap getParameters()
+ {
+ return parameters;
+ }
+
+ public void encode(ParameterMap actualParameters, ParameterMap metaParameters)
+ {
+ parameters.clear();
+
+ //
+ long meta = 0;
+
+ //
+ for (Iterator i = builder.metaParameterNames.iterator();i.hasNext();)
+ {
+ String mv = (String)i.next();
+ String pv = metaParameters.getValue(mv);
+
+ //
+ meta *= 2;
+
+ //
+ if (pv != null)
+ {
+ String[] pvs = actualParameters.getValues(mv);
+ if (pvs != null)
+ {
+ String[] blah = new String[1 + pvs.length];
+ blah[0] = pv;
+ System.arraycopy(pvs, 0, blah, 1, pvs.length);
+ parameters.setValues(mv, blah);
+ }
+ else
+ {
+ parameters.setValue(mv, pv);
+ }
+ meta |= 1;
+ }
+ }
+
+ //
+ String def = Long.toBinaryString(meta);
+ String[] pvs = actualParameters.getValues(builder.reservedParameterName);
+ if (pvs != null)
+ {
+ String[] blah = new String[1 + pvs.length];
+ blah[0] = def;
+ System.arraycopy(pvs, 0, blah, 1, pvs.length);
+ parameters.setValues(builder.reservedParameterName, blah);
+ }
+ else
+ {
+ parameters.setValue(builder.reservedParameterName, def);
+ }
+
+ //
+ for (Iterator i = actualParameters.entrySet().iterator();i.hasNext();)
+ {
+ Map.Entry entry = (Map.Entry)i.next();
+ String name = (String)entry.getKey();
+ if (!parameters.containsKey(name))
+ {
+ String[] values = (String[])entry.getValue();
+ parameters.setValues(name, values);
+ }
+ }
+ }
+}
Modified: modules/portlet/trunk/test/src/resources/portlet-test-war/WEB-INF/jboss-beans.xml
===================================================================
--- modules/portlet/trunk/test/src/resources/portlet-test-war/WEB-INF/jboss-beans.xml 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/test/src/resources/portlet-test-war/WEB-INF/jboss-beans.xml 2007-08-30 21:10:49 UTC (rev 8115)
@@ -4,7 +4,8 @@
xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_2_0.xsd"
xmlns="urn:jboss:bean-deployer:2.0">
- <bean name="TestDriverServer" class="org.jboss.portal.test.framework.driver.remote.RemoteTestDriverServer">
+ <bean name="TestDriverServer" class="org.jboss.portal.test.framework.driver.http.HTTPTestDriverServer">
+ <property name="initialPath">/portlet-test</property>
</bean>
<bean name="TestDriverServerExporter" class="org.jboss.portal.test.framework.impl.generic.server.GenericServiceExporter">
Modified: modules/portlet/trunk/test/src/resources/portlet-test-war/WEB-INF/web.xml
===================================================================
--- modules/portlet/trunk/test/src/resources/portlet-test-war/WEB-INF/web.xml 2007-08-30 20:00:55 UTC (rev 8114)
+++ modules/portlet/trunk/test/src/resources/portlet-test-war/WEB-INF/web.xml 2007-08-30 21:10:49 UTC (rev 8115)
@@ -35,6 +35,6 @@
</servlet>
<servlet-mapping>
<servlet-name>PortalServlet</servlet-name>
- <url-pattern>/</url-pattern>
+ <url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
16 years, 8 months
JBoss Portal SVN: r8114 - in branches/JBoss_Portal_Branch_2_6: server/src/main/org/jboss/portal/test/server/charset and 1 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-08-30 16:00:55 -0400 (Thu, 30 Aug 2007)
New Revision: 8114
Modified:
branches/JBoss_Portal_Branch_2_6/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/portletrequests/PortletRequestsSequenceBuilder.java
branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostMultipartFormDataNoCharsetTest.java
branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostMultipartFormDataUTF8Test.java
branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostTest.java
branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostXWWWFormURLEncodedNoCharsetTest.java
branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostXWWWFormURLEncodedUTF8Test.java
branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/parameters/PostApplicationXWWWFormURLEncodedTest.java
branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/parameters/PostMultipartFormDataTest.java
Log:
align 2.6 portlet and server test with the latest test changes
Modified: branches/JBoss_Portal_Branch_2_6/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/portletrequests/PortletRequestsSequenceBuilder.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/portletrequests/PortletRequestsSequenceBuilder.java 2007-08-30 19:41:05 UTC (rev 8113)
+++ branches/JBoss_Portal_Branch_2_6/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/portletrequests/PortletRequestsSequenceBuilder.java 2007-08-30 20:00:55 UTC (rev 8114)
@@ -76,12 +76,11 @@
{
protected DriverResponse run(Portlet portlet, RenderRequest request, RenderResponse response, PortletTestContext context)
{
- InvokePostResponse iur = new InvokePostResponse();
PortletURL url = response.createActionURL();
url.setParameter("g_foo1", "g_bar1_1");
url.setParameter("g_foo2", new String[]{"g_bar2_1", "g_bar2_2"});
url.setParameter("g_foo3", new String[]{"g_bar3_1"});
- iur.setURL(url.toString());
+ InvokePostResponse iur = new InvokePostResponse(url.toString());
HttpRequest.Form body = new HttpRequest.Form();
body.addParameter("g_foo3", new String[]{"g_bar3_2"});
body.addParameter("g_foo4", new String[]{"g_bar4_1"});
@@ -147,11 +146,10 @@
protected DriverResponse run(Portlet portlet, RenderRequest request, RenderResponse response, PortletTestContext context)
{
- InvokePostResponse iur = new InvokePostResponse();
PortletURL url = response.createActionURL();
url.setParameter("g_foo1", "g_bar1_1");
url.setParameter("g_foo2", new String[]{"g_bar2_1", "g_bar2_2"});
- iur.setURL(url.toString());
+ InvokePostResponse iur = new InvokePostResponse(url.toString());
HttpRequest.Raw body = new HttpRequest.Raw();
body.setBytes(byteContent);
iur.setBody(body);
@@ -225,11 +223,10 @@
{
protected DriverResponse run(Portlet portlet, RenderRequest request, RenderResponse response, PortletTestContext context)
{
- InvokePostResponse iur = new InvokePostResponse();
PortletURL url = response.createActionURL();
url.setParameter("g_foo1", "g_bar1_1");
url.setParameter("g_foo2", new String[]{"g_bar2_1", "g_bar2_2"});
- iur.setURL(url.toString());
+ InvokePostResponse iur = new InvokePostResponse(url.toString());
HttpRequest.Raw body = new HttpRequest.Raw();
body.setBytes(byteContent);
iur.setBody(body);
Modified: branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostMultipartFormDataNoCharsetTest.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostMultipartFormDataNoCharsetTest.java 2007-08-30 19:41:05 UTC (rev 8113)
+++ branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostMultipartFormDataNoCharsetTest.java 2007-08-30 20:00:55 UTC (rev 8114)
@@ -55,8 +55,7 @@
AbstractServerURL url = new AbstractServerURL();
url.setPortalRequestPath("/index.html");
String s = invocation.getResponse().renderURL(url);
- InvokePostResponse post = new InvokePostResponse();
- post.setURL(s);
+ InvokePostResponse post = new InvokePostResponse(s);
post.setContentType(PortalConstants.MULTIPART_FORM_DATA);
post.setBody(new HttpRequest.Form());
return post;
Modified: branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostMultipartFormDataUTF8Test.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostMultipartFormDataUTF8Test.java 2007-08-30 19:41:05 UTC (rev 8113)
+++ branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostMultipartFormDataUTF8Test.java 2007-08-30 20:00:55 UTC (rev 8114)
@@ -55,8 +55,7 @@
AbstractServerURL url = new AbstractServerURL();
url.setPortalRequestPath("/index.html");
String s = invocation.getResponse().renderURL(url);
- InvokePostResponse post = new InvokePostResponse();
- post.setURL(s);
+ InvokePostResponse post = new InvokePostResponse(s);
post.setContentType(PortalConstants.MULTIPART_FORM_DATA);
post.setBody(new HttpRequest.Form());
return post;
Modified: branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostTest.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostTest.java 2007-08-30 19:41:05 UTC (rev 8113)
+++ branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostTest.java 2007-08-30 20:00:55 UTC (rev 8114)
@@ -54,8 +54,7 @@
AbstractServerURL url = new AbstractServerURL();
url.setPortalRequestPath("/index.html");
String s = invocation.getResponse().renderURL(url);
- InvokePostResponse post = new InvokePostResponse();
- post.setURL(s);
+ InvokePostResponse post = new InvokePostResponse(s);
post.setBody(new HttpRequest.Form());
return post;
}
Modified: branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostXWWWFormURLEncodedNoCharsetTest.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostXWWWFormURLEncodedNoCharsetTest.java 2007-08-30 19:41:05 UTC (rev 8113)
+++ branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostXWWWFormURLEncodedNoCharsetTest.java 2007-08-30 20:00:55 UTC (rev 8114)
@@ -56,8 +56,7 @@
AbstractServerURL url = new AbstractServerURL();
url.setPortalRequestPath("/index.html");
String s = invocation.getResponse().renderURL(url);
- InvokePostResponse post = new InvokePostResponse();
- post.setURL(s);
+ InvokePostResponse post = new InvokePostResponse(s);
post.setContentType(PortalConstants.APPLICATION_X_WWW_FORM_URLENCODED);
post.setBody(new HttpRequest.Form());
return post;
Modified: branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostXWWWFormURLEncodedUTF8Test.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostXWWWFormURLEncodedUTF8Test.java 2007-08-30 19:41:05 UTC (rev 8113)
+++ branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/charset/PostXWWWFormURLEncodedUTF8Test.java 2007-08-30 20:00:55 UTC (rev 8114)
@@ -55,8 +55,7 @@
AbstractServerURL url = new AbstractServerURL();
url.setPortalRequestPath("/index.html");
String s = invocation.getResponse().renderURL(url);
- InvokePostResponse post = new InvokePostResponse();
- post.setURL(s);
+ InvokePostResponse post = new InvokePostResponse(s);
post.setContentType(PortalConstants.APPLICATION_X_WWW_FORM_URLENCODED + "; charset=" + PortalConstants.UTF_8.name());
post.setBody(new HttpRequest.Form());
return post;
Modified: branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/parameters/PostApplicationXWWWFormURLEncodedTest.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/parameters/PostApplicationXWWWFormURLEncodedTest.java 2007-08-30 19:41:05 UTC (rev 8113)
+++ branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/parameters/PostApplicationXWWWFormURLEncodedTest.java 2007-08-30 20:00:55 UTC (rev 8114)
@@ -77,8 +77,7 @@
//
String s = invocation.getResponse().renderURL(url);
- InvokePostResponse result = new InvokePostResponse();
- result.setURL(s);
+ InvokePostResponse result = new InvokePostResponse(s);
result.setContentType(InvokePostResponse.APPLICATION_X_WWW_FORM_URLENCODED + "; charset=UTF-8");
result.setBody(body);
return result;
Modified: branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/parameters/PostMultipartFormDataTest.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/parameters/PostMultipartFormDataTest.java 2007-08-30 19:41:05 UTC (rev 8113)
+++ branches/JBoss_Portal_Branch_2_6/server/src/main/org/jboss/portal/test/server/parameters/PostMultipartFormDataTest.java 2007-08-30 20:00:55 UTC (rev 8114)
@@ -66,8 +66,7 @@
body.addParameter("h", new String[]{"_i", "_j"});
String s = invocation.getResponse().renderURL(url);
- InvokePostResponse result = new InvokePostResponse();
- result.setURL(s);
+ InvokePostResponse result = new InvokePostResponse(s);
result.setContentType(InvokePostResponse.MULTIPART_FORM_DATA);
result.setBody(body);
return result;
16 years, 8 months
JBoss Portal SVN: r8113 - in modules/test/trunk/test/src/main/org/jboss/portal/test/framework: driver/http/command and 2 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-08-30 15:41:05 -0400 (Thu, 30 Aug 2007)
New Revision: 8113
Added:
modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/HTTPTestDriverServer.java
modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/command/DoMethodCommand.java
modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokeMethodResponse.java
Modified:
modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/HTTPTestCase.java
modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/HTTPTestContext.java
modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/HTTPTestConversation.java
modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/command/DoGetCommand.java
modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/command/DoPostCommand.java
modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokeGetResponse.java
modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokePostResponse.java
modules/test/trunk/test/src/main/org/jboss/portal/test/framework/server/NodeId.java
Log:
- added HTTPTestDriverServer which extends RemoteTestDriverServer to provide initial configuration of the HTTPTestContext
- added initialPath on the HTTPTestContext class
- improved support of URIs on http command/response classes
- added DoMethodCommand and InvokeMethodResponse to factor common state on DoGetCommand, DoPostCommand, InvokeGetCommand and InvokePostCommand
Modified: modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/HTTPTestCase.java
===================================================================
--- modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/HTTPTestCase.java 2007-08-30 18:31:08 UTC (rev 8112)
+++ modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/HTTPTestCase.java 2007-08-30 19:41:05 UTC (rev 8113)
@@ -31,6 +31,9 @@
import org.jboss.portal.test.framework.driver.remote.TestContext;
import org.jboss.portal.test.framework.driver.remote.RemoteTestCase;
+import java.net.URI;
+import java.net.URISyntaxException;
+
/**
* Defines an http test case working from the server side point of view.
*
@@ -41,14 +44,29 @@
{
/** The test path. */
- protected final String path;
+ protected final URI uri;
- public HTTPTestCase(String testCaseId, String path)
+ public HTTPTestCase(String testCaseId, String uri)
{
super(testCaseId);
//
- this.path = path;
+ if (uri == null)
+ {
+ throw new IllegalArgumentException("No null URI accepted");
+ }
+
+ //
+ try
+ {
+ this.uri = new URI(uri);
+ }
+ catch (URISyntaxException e)
+ {
+ IllegalArgumentException iae = new IllegalArgumentException("Wrong URI syntax");
+ iae.initCause(e);
+ throw iae;
+ }
}
/**
@@ -59,7 +77,7 @@
{
if (cmd instanceof StartTestCommand)
{
- return new InvokeGetResponse(path);
+ return new InvokeGetResponse(uri);
}
else
{
Modified: modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/HTTPTestContext.java
===================================================================
--- modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/HTTPTestContext.java 2007-08-30 18:31:08 UTC (rev 8112)
+++ modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/HTTPTestContext.java 2007-08-30 19:41:05 UTC (rev 8113)
@@ -96,6 +96,9 @@
ctx.setResponse(currentResponse);
}
+ /** . */
+ String initialPath;
+
public HTTPTestContext(TestContext that)
{
super(that);
@@ -105,4 +108,9 @@
{
super(requestCount, archivePath, parametrization);
}
+
+ public String getInitialPath()
+ {
+ return initialPath;
+ }
}
Modified: modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/HTTPTestConversation.java
===================================================================
--- modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/HTTPTestConversation.java 2007-08-30 18:31:08 UTC (rev 8112)
+++ modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/HTTPTestConversation.java 2007-08-30 19:41:05 UTC (rev 8113)
@@ -29,7 +29,6 @@
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HeaderElement;
import org.apache.commons.httpclient.NameValuePair;
-import org.apache.commons.httpclient.HostConfiguration;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.ByteArrayRequestEntity;
import org.apache.commons.httpclient.methods.GetMethod;
@@ -42,10 +41,12 @@
import org.jboss.portal.test.framework.driver.http.command.DoGetCommand;
import org.jboss.portal.test.framework.driver.http.command.DoPostCommand;
import org.jboss.portal.test.framework.driver.http.command.SendResponseCommand;
+import org.jboss.portal.test.framework.driver.http.command.DoMethodCommand;
import org.jboss.portal.test.framework.driver.http.response.HTTPDriverResponseContext;
import org.jboss.portal.test.framework.driver.http.response.HTTPDriverResponse;
import org.jboss.portal.test.framework.driver.http.response.InvokeGetResponse;
import org.jboss.portal.test.framework.driver.http.response.InvokePostResponse;
+import org.jboss.portal.test.framework.driver.http.response.InvokeMethodResponse;
import org.jboss.portal.test.framework.driver.remote.TestConversation;
import org.jboss.portal.test.framework.driver.remote.TestContext;
import org.jboss.portal.test.framework.driver.remote.RemoteTestDriver;
@@ -64,6 +65,10 @@
import java.util.Collection;
import java.util.ArrayList;
import java.util.Iterator;
+import java.net.URI;
+import java.net.URL;
+import java.net.URISyntaxException;
+import java.net.MalformedURLException;
import junit.framework.AssertionFailedError;
@@ -126,77 +131,83 @@
protected RemoteDriverResponseContext invoke(RemoteDriverCommandContext commandContext) throws Exception
{
DriverCommand command = commandContext.getCommand();
- if (command instanceof DoPostCommand)
+ if (command instanceof DoMethodCommand)
{
- DoPostCommand doPostCmd = (DoPostCommand)command;
- PostMethod post = null;
- try
+ DoMethodCommand method = (DoMethodCommand)command;
+ URI uri = method.getURI();
+ URL url = getURL(uri);
+ if (command instanceof DoPostCommand)
{
- post = new PostMethod(doPostCmd.getURL());
- post.setFollowRedirects(false);
- HttpRequest.Body body = doPostCmd.getBody();
- if (doPostCmd.getContentType() != null)
+ DoPostCommand doPostCmd = (DoPostCommand)command;
+ PostMethod post = null;
+ try
{
- post.addRequestHeader("Content-Type", doPostCmd.getContentType());
- }
- if (body instanceof HttpRequest.Raw)
- {
- HttpRequest.Raw rb = (HttpRequest.Raw)body;
- ByteArrayRequestEntity entity = new ByteArrayRequestEntity(rb.getBytes());
- post.setRequestEntity(entity);
- }
- else if (body instanceof HttpRequest.Form)
- {
- HttpRequest.Form fb = (HttpRequest.Form)body;
- Collection tmp = new ArrayList();
- for (Iterator i = fb.getParameterNames().iterator(); i.hasNext();)
+ post = new PostMethod(url.toString());
+ post.setFollowRedirects(false);
+ HttpRequest.Body body = doPostCmd.getBody();
+ if (doPostCmd.getContentType() != null)
{
- String name = (String)i.next();
- String[] values = fb.getParameterValues(name);
- for (int j = 0; j < values.length; j++)
+ post.addRequestHeader("Content-Type", doPostCmd.getContentType());
+ }
+ if (body instanceof HttpRequest.Raw)
+ {
+ HttpRequest.Raw rb = (HttpRequest.Raw)body;
+ ByteArrayRequestEntity entity = new ByteArrayRequestEntity(rb.getBytes());
+ post.setRequestEntity(entity);
+ }
+ else if (body instanceof HttpRequest.Form)
+ {
+ HttpRequest.Form fb = (HttpRequest.Form)body;
+ Collection tmp = new ArrayList();
+ for (Iterator i = fb.getParameterNames().iterator(); i.hasNext();)
{
- String value = values[j];
- NameValuePair nvp = new NameValuePair(name, value);
- tmp.add(nvp);
+ String name = (String)i.next();
+ String[] values = fb.getParameterValues(name);
+ for (int j = 0; j < values.length; j++)
+ {
+ String value = values[j];
+ NameValuePair nvp = new NameValuePair(name, value);
+ tmp.add(nvp);
+ }
}
+ NameValuePair[] nvps = (NameValuePair[])tmp.toArray(new NameValuePair[tmp.size()]);
+ post.setRequestBody(nvps);
}
- NameValuePair[] nvps = (NameValuePair[])tmp.toArray(new NameValuePair[tmp.size()]);
- post.setRequestBody(nvps);
+ executeHTTPMethod(post);
+ return decodeHTTPResponse(post);
}
- executeHTTPMethod(post);
- return decodeHTTPResponse(post);
- }
- finally
- {
- if (post != null)
+ finally
{
- post.releaseConnection();
+ if (post != null)
+ {
+ post.releaseConnection();
+ }
}
}
- }
- else if (command instanceof DoGetCommand)
- {
- DoGetCommand doGetCmd = (DoGetCommand)command;
- GetMethod get = null;
- try
+ else
{
- get = new GetMethod(doGetCmd.getURL());
- HttpHeaders headers = doGetCmd.getHeaders();
- for (Iterator i = headers.headers();i.hasNext();)
+ DoGetCommand doGetCmd = (DoGetCommand)command;
+ GetMethod get = null;
+ try
{
- HttpHeader header = (HttpHeader)i.next();
- Header _header = new Header(header.getName(), header.getValue());
- get.addRequestHeader(_header);
+ get = new GetMethod(url.toString());
+ HttpHeaders headers = doGetCmd.getHeaders();
+ for (Iterator i = headers.headers();i.hasNext();)
+ {
+ HttpHeader header = (HttpHeader)i.next();
+ Header _header = new Header(header.getName(), header.getValue());
+ get.addRequestHeader(_header);
+ }
+ get.setFollowRedirects(false);
+ executeHTTPMethod(get);
+ return decodeHTTPResponse(get);
}
- get.setFollowRedirects(false);
- executeHTTPMethod(get);
- return decodeHTTPResponse(get);
- }
- finally
- {
- if (get != null)
+ finally
{
- get.releaseConnection();
+ if (get != null)
+ {
+ get.releaseConnection();
+ }
}
}
}
@@ -222,24 +233,39 @@
}
}
+ private URL getURL(URI uri) throws URISyntaxException, MalformedURLException
+ {
+ if (!uri.isAbsolute())
+ {
+ int port = driver.getPort(node);
+ uri = new URI("http://localhost:" + port).resolve(uri);
+ }
+ return uri.toURL();
+ }
+
/**
* Create an http command from an http response.
* @param responseContext
*/
protected HTTPDriverCommand createHTTPCommand(HTTPDriverResponseContext responseContext) throws Exception
{
+
DriverResponse resp = responseContext.getResponse();
- if (resp instanceof InvokeGetResponse)
+ if (resp instanceof InvokeMethodResponse)
{
- InvokeGetResponse igr = (InvokeGetResponse)resp;
- return new DoGetCommand(igr.getURL(), igr.getHeaders());
+ if (resp instanceof InvokeGetResponse)
+ {
+ InvokeGetResponse igr = (InvokeGetResponse)resp;
+ URI uri = igr.getURI();
+ return new DoGetCommand(igr.getURI(), igr.getHeaders());
+ }
+ else
+ {
+ InvokePostResponse ipr = (InvokePostResponse)resp;
+ HttpRequest.Body dpcb = ipr.getBody();
+ return new DoPostCommand(ipr.getURI(), ipr.getContentType(), dpcb);
+ }
}
- else if (resp instanceof InvokePostResponse)
- {
- InvokePostResponse ipr = (InvokePostResponse)resp;
- HttpRequest.Body dpcb = ipr.getBody();
- return new DoPostCommand(ipr.getURL(), ipr.getContentType(), dpcb);
- }
else
{
HttpMethod method = responseContext.getHttpMethod();
@@ -307,7 +333,7 @@
{
String redirectLocation = locationHeader.getValue();
log.info("# Received '302' code --> " + redirectLocation);
- DoGetCommand cmd = new DoGetCommand(redirectLocation);
+ DoGetCommand cmd = new DoGetCommand(new URI(redirectLocation));
// For now we don't add any contextual payload as
// 302 is some kind of implicit redirect response
@@ -332,41 +358,26 @@
private int executeHTTPMethod(HttpMethod method) throws Exception
{
int port = method.getURI().getPort();
- if (port != -1)
- {
- node = driver.getNode(port);
- if (node == null)
- {
- throw new IllegalArgumentException("Wrong port " + method.getURI().getPort());
- }
- }
- else
- {
- port = driver.getPort(node);
- }
- //
- String host = method.getURI().getHost();
- if (host == null)
+ // Update to the next node
+ node = driver.getNode(port);
+ if (node == null)
{
- host = "localhost";
+ throw new IllegalArgumentException("Wrong port " + method.getURI().getPort() + " in URI " + method.getURI());
}
- //
- HostConfiguration cfg = new HostConfiguration();
- cfg.setHost(host, port);
-
- //
+ // Push context to the node
pushContext();
//
- log.info("# Invoking test case over http " + cfg + " " + method.getURI());
- int status = client.executeMethod(cfg, method);
+ log.info("# Invoking test case over http " + method.getURI());
+ int status = client.executeMethod(method);
// Force to read the response body before we close the connection
// otherwise the content will be lost
method.getResponseBody();
+
return status;
}
Added: modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/HTTPTestDriverServer.java
===================================================================
--- modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/HTTPTestDriverServer.java (rev 0)
+++ modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/HTTPTestDriverServer.java 2007-08-30 19:41:05 UTC (rev 8113)
@@ -0,0 +1,62 @@
+/******************************************************************************
+ * 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.framework.driver.http;
+
+import org.jboss.portal.test.framework.driver.remote.RemoteTestDriverServer;
+import org.jboss.portal.test.framework.driver.remote.TestContext;
+
+/**
+ * Extends the remote test driver server to add the notion of initial path that can be used by
+ * the tested system.
+ *
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class HTTPTestDriverServer extends RemoteTestDriverServer
+{
+
+ /** . */
+ private String initialPath = "/test";
+
+ public String getInitialPath()
+ {
+ return initialPath;
+ }
+
+ public void setInitialPath(String initialPath)
+ {
+ this.initialPath = initialPath;
+ }
+
+ public void pushContext(String testId, TestContext testContext)
+ {
+ if (testContext instanceof HTTPTestContext)
+ {
+ HTTPTestContext httpTestContext = (HTTPTestContext)testContext;
+ httpTestContext.initialPath = initialPath;
+ }
+
+ //
+ super.pushContext(testId, testContext);
+ }
+}
Modified: modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/command/DoGetCommand.java
===================================================================
--- modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/command/DoGetCommand.java 2007-08-30 18:31:08 UTC (rev 8112)
+++ modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/command/DoGetCommand.java 2007-08-30 19:41:05 UTC (rev 8113)
@@ -24,47 +24,24 @@
import org.jboss.portal.common.http.HttpHeaders;
+import java.net.URI;
+
/**
* Perform a get.
*
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 5448 $
*/
-public class DoGetCommand extends HTTPDriverCommand
+public class DoGetCommand extends DoMethodCommand
{
- /** . */
- private String url;
-
- /** . */
- private HttpHeaders headers;
-
- public DoGetCommand(String url)
+ public DoGetCommand(URI uri, HttpHeaders headers)
{
- this(url, new HttpHeaders());
+ super(uri, headers);
}
- public DoGetCommand(String url, HttpHeaders headers)
+ public DoGetCommand(URI uri)
{
- if (url == null)
- {
- throw new IllegalArgumentException();
- }
- if (headers == null)
- {
- throw new IllegalArgumentException();
- }
- this.url = url;
- this.headers = headers;
+ super(uri);
}
-
- public String getURL()
- {
- return url;
- }
-
- public HttpHeaders getHeaders()
- {
- return headers;
- }
}
Added: modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/command/DoMethodCommand.java
===================================================================
--- modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/command/DoMethodCommand.java (rev 0)
+++ modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/command/DoMethodCommand.java 2007-08-30 19:41:05 UTC (rev 8113)
@@ -0,0 +1,62 @@
+/******************************************************************************
+ * 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.framework.driver.http.command;
+
+import org.jboss.portal.common.http.HttpHeaders;
+
+import java.net.URI;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class DoMethodCommand extends HTTPDriverCommand
+{
+
+ /** . */
+ private URI uri;
+
+ /** . */
+ private HttpHeaders headers;
+
+ public DoMethodCommand(URI uri, HttpHeaders headers)
+ {
+ this.uri = uri;
+ this.headers = headers;
+ }
+
+ public DoMethodCommand(URI uri)
+ {
+ this(uri, new HttpHeaders());
+ }
+
+ public URI getURI()
+ {
+ return uri;
+ }
+
+ public HttpHeaders getHeaders()
+ {
+ return headers;
+ }
+}
Modified: modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/command/DoPostCommand.java
===================================================================
--- modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/command/DoPostCommand.java 2007-08-30 18:31:08 UTC (rev 8112)
+++ modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/command/DoPostCommand.java 2007-08-30 19:41:05 UTC (rev 8113)
@@ -24,39 +24,36 @@
import org.jboss.portal.common.http.HttpRequest;
+import java.net.URI;
+
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 5448 $
*/
-public class DoPostCommand extends HTTPDriverCommand
+public class DoPostCommand extends DoMethodCommand
{
- private String url;
-
+ /** . */
private String contentType;
+ /** . */
private HttpRequest.Body body;
- public DoPostCommand(String url, String contentType, HttpRequest.Body body)
+ public DoPostCommand(URI uri, String contentType, HttpRequest.Body body)
{
- if (url == null)
- {
- throw new IllegalArgumentException();
- }
+ super(uri);
+
+ //
if (body == null)
{
throw new IllegalArgumentException();
}
- this.url = url;
+
+ //
this.contentType = contentType;
this.body = body;
}
- public String getURL()
- {
- return url;
- }
-
public String getContentType()
{
return contentType;
Modified: modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokeGetResponse.java
===================================================================
--- modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokeGetResponse.java 2007-08-30 18:31:08 UTC (rev 8112)
+++ modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokeGetResponse.java 2007-08-30 19:41:05 UTC (rev 8113)
@@ -25,54 +25,32 @@
import org.jboss.portal.common.http.HttpHeaders;
import org.jboss.portal.common.http.HttpHeader;
+import java.net.URI;
+import java.net.URISyntaxException;
+
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @author <a href="mailto:boleslaw.dawidowicz@jboss.com">Boleslaw Dawidowicz</a>
* @version $Revision: 5448 $
*/
-public class InvokeGetResponse extends HTTPDriverResponse
+public class InvokeGetResponse extends InvokeMethodResponse
{
/** The serialVersionUID */
private static final long serialVersionUID = 5968471624915140976L;
- /** . */
- private String url;
-
- /** . */
- private HttpHeaders headers;
-
public InvokeGetResponse(String url)
{
- if (url == null)
- {
- throw new IllegalArgumentException("Cannot invoke against a null URL");
- }
- this.url = url;
- this.headers = new HttpHeaders();
+ super(url);
}
- public String getURL()
+ public InvokeGetResponse(URI uri)
{
- return url;
+ super(uri);
}
- public HttpHeader addHeader(String headerName)
- {
- if (headerName == null)
- {
- throw new IllegalArgumentException("No null header name accepted");
- }
- return headers.addHeader(headerName);
- }
-
- public HttpHeaders getHeaders()
- {
- return headers;
- }
-
public String toString()
{
- return "InvokeGet[url=" + url + "]";
+ return "InvokeGet[uri=" + getURI() + "]";
}
}
Added: modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokeMethodResponse.java
===================================================================
--- modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokeMethodResponse.java (rev 0)
+++ modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokeMethodResponse.java 2007-08-30 19:41:05 UTC (rev 8113)
@@ -0,0 +1,103 @@
+/******************************************************************************
+ * 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.framework.driver.http.response;
+
+import org.jboss.portal.common.http.HttpHeaders;
+import org.jboss.portal.common.http.HttpHeader;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public abstract class InvokeMethodResponse extends HTTPDriverResponse
+{
+
+ /** . */
+ private URI uri;
+
+ /** . */
+ private HttpHeaders headers;
+
+ public InvokeMethodResponse(String uri) throws IllegalArgumentException
+ {
+ if (uri == null)
+ {
+ throw new IllegalArgumentException("Cannot invoke against a null URL");
+ }
+
+ //
+ URI tmp;
+ try
+ {
+ tmp = new URI(uri);
+ }
+ catch (URISyntaxException e)
+ {
+ IllegalArgumentException iae = new IllegalArgumentException("Wrong URI syntax");
+ iae.initCause(e);
+ throw iae;
+ }
+
+ //
+ if (tmp.isOpaque())
+ {
+ throw new IllegalArgumentException("No opaque URI accepted");
+ }
+
+ //
+ this.uri = tmp;
+ this.headers = new HttpHeaders();
+ }
+
+ public InvokeMethodResponse(URI uri) throws IllegalArgumentException
+ {
+ if (uri == null)
+ {
+ throw new IllegalArgumentException("Cannot invoke against a null URL");
+ }
+ this.uri = uri;
+ this.headers = new HttpHeaders();
+ }
+
+ public URI getURI()
+ {
+ return uri;
+ }
+
+ public HttpHeader addHeader(String headerName)
+ {
+ if (headerName == null)
+ {
+ throw new IllegalArgumentException("No null header name accepted");
+ }
+ return headers.addHeader(headerName);
+ }
+
+ public HttpHeaders getHeaders()
+ {
+ return headers;
+ }
+}
Modified: modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokePostResponse.java
===================================================================
--- modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokePostResponse.java 2007-08-30 18:31:08 UTC (rev 8112)
+++ modules/test/trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokePostResponse.java 2007-08-30 19:41:05 UTC (rev 8113)
@@ -24,13 +24,16 @@
import org.jboss.portal.common.http.HttpRequest;
+import java.net.URISyntaxException;
+import java.net.URI;
+
/**
* The portlet wants to invoke a post.
*
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 5448 $
*/
-public class InvokePostResponse extends HTTPDriverResponse
+public class InvokePostResponse extends InvokeMethodResponse
{
/** The serialVersionUID */
@@ -42,23 +45,20 @@
/** . */
public static final String MULTIPART_FORM_DATA = "multipart/form-data";
- /** The post url. */
- private String url;
-
/** The content type. */
private String contentType;
/** The post body. */
private HttpRequest.Body body;
- public String getURL()
+ public InvokePostResponse(String uri)
{
- return url;
+ super(uri);
}
- public void setURL(String url)
+ public InvokePostResponse(URI uri)
{
- this.url = url;
+ super(uri);
}
public HttpRequest.Body getBody()
@@ -83,6 +83,6 @@
public String toString()
{
- return "InvokePost[url=" + url + "]";
+ return "InvokePost[uri=" + getURI() + "]";
}
}
Modified: modules/test/trunk/test/src/main/org/jboss/portal/test/framework/server/NodeId.java
===================================================================
--- modules/test/trunk/test/src/main/org/jboss/portal/test/framework/server/NodeId.java 2007-08-30 18:31:08 UTC (rev 8112)
+++ modules/test/trunk/test/src/main/org/jboss/portal/test/framework/server/NodeId.java 2007-08-30 19:41:05 UTC (rev 8113)
@@ -85,11 +85,37 @@
*/
public static NodeId locate() throws IllegalStateException
{
- String serverName = System.getProperty("jboss.server.name");
- if (serverName == null)
+ // Legacy jboss server name
+ String nodeName = System.getProperty("jboss.server.name");
+
+ // Otherwise use a system property specified in the command line
+ if (nodeName != null)
{
- throw new IllegalStateException("Not in a node context");
+ nodeName = System.getProperty("test.node.name");
}
- return new NodeId(serverName);
+
+ // If nothing is specified we assume it is the default one
+ if (nodeName == null)
+ {
+ nodeName = "default";
+ }
+
+ //
+ if ("default".equals(nodeName))
+ {
+ return DEFAULT;
+ }
+ else if ("ports-01".equals(nodeName))
+ {
+ return PORTS_01;
+ }
+ else if ("ports-02".equals(nodeName))
+ {
+ return PORTS_02;
+ }
+ else
+ {
+ throw new IllegalStateException("Cannot determine node id " + nodeName);
+ }
}
}
16 years, 8 months
JBoss Portal SVN: r8112 - trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf.
by portal-commits@lists.jboss.org
Author: chris.laprun(a)jboss.com
Date: 2007-08-30 14:31:08 -0400 (Thu, 30 Aug 2007)
New Revision: 8112
Modified:
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/renameObject.xhtml
Log:
- JBPORTAL-1655: Made more explicit.
Modified: trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/renameObject.xhtml
===================================================================
--- trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/renameObject.xhtml 2007-08-30 18:30:03 UTC (rev 8111)
+++ trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/renameObject.xhtml 2007-08-30 18:31:08 UTC (rev 8112)
@@ -7,12 +7,14 @@
<ui:composition template="/WEB-INF/jsf/objectTemplate.xhtml">
<ui:param name="portalObjectScreen" value="Rename"/>
<ui:define name="content">
- <h3>Renaming:</h3>
+ <h3>Rename <h:outputText value="#{portalobjectmgr.selectedObjectType}"/></h3>
<h:form id="renameForm">
- <h:inputText id="newName" value="#{renameAction.newName}"/>
- <h:message for="newName"/>
- <br />
- <h:commandButton value="Update" action="#{renameAction.execute}" styleClass="portlet-form-button"/>
+ <p>Rename the <h:outputText value=" #{portalobjectmgr.selectedObject.name} "/>
+ <h:outputText value="#{portalobjectmgr.selectedObjectType}"/> to:
+ <h:inputText id="newName" value="#{renameAction.newName}"/>
+ <h:message for="newName"/>
+ <h:commandButton value="Rename" action="#{renameAction.execute}" styleClass="portlet-form-button"/>
+ </p>
</h:form>
</ui:define>
</ui:composition>
16 years, 8 months