Author: thomas.heute(a)jboss.com
Date: 2007-08-31 08:49:58 -0400 (Fri, 31 Aug 2007)
New Revision: 8125
Modified:
trunk/core/src/main/org/jboss/portal/core/deployment/jboss/PortletAppDeployment.java
trunk/core/src/main/org/jboss/portal/core/model/instance/InstanceURLFactory.java
Log:
- RenderPortletInstanceCommand was left out from the InstanceURLFactory (problem
enountered by Emanuel while trying to use it with non-logged in users)
- JBPORTAL-1666: When redploying, removed preferences in portlet-instances.xml are not
deleted
Modified:
trunk/core/src/main/org/jboss/portal/core/deployment/jboss/PortletAppDeployment.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/deployment/jboss/PortletAppDeployment.java 2007-08-31
12:42:31 UTC (rev 8124)
+++
trunk/core/src/main/org/jboss/portal/core/deployment/jboss/PortletAppDeployment.java 2007-08-31
12:49:58 UTC (rev 8125)
@@ -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)
Modified:
trunk/core/src/main/org/jboss/portal/core/model/instance/InstanceURLFactory.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/model/instance/InstanceURLFactory.java 2007-08-31
12:42:31 UTC (rev 8124)
+++
trunk/core/src/main/org/jboss/portal/core/model/instance/InstanceURLFactory.java 2007-08-31
12:49:58 UTC (rev 8125)
@@ -27,11 +27,13 @@
import org.jboss.portal.core.controller.ControllerContext;
import
org.jboss.portal.core.model.instance.command.action.InvokePortletInstanceRenderCommand;
import
org.jboss.portal.core.model.instance.command.action.InvokePortletInstanceActionCommand;
+import org.jboss.portal.core.model.instance.command.render.RenderPortletInstanceCommand;
import org.jboss.portal.core.model.instance.command.PortletInstanceCommand;
import org.jboss.portal.server.ServerURL;
import org.jboss.portal.server.ServerInvocation;
import org.jboss.portal.server.AbstractServerURL;
import org.jboss.portal.portlet.impl.PortletRequestEncoder;
+import org.jboss.util.NotImplementedException;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -45,7 +47,7 @@
/** . */
private String instanceId;
-
+
public String getPath()
{
return path;
@@ -87,12 +89,22 @@
PortletRequestEncoder encoder = new
PortletRequestEncoder(url.getParameterMap());
encoder.encodeRender(iprc.getNavigationalState(), null, null);
}
- else
+ else if (cmd instanceof RenderPortletInstanceCommand)
{
+ RenderPortletInstanceCommand rpic = (RenderPortletInstanceCommand)cmd;
+ PortletRequestEncoder encoder = new
PortletRequestEncoder(url.getParameterMap());
+ encoder.encodeRender(rpic.getNavigationalState(), null, null);
+ }
+ else if (cmd instanceof InvokePortletInstanceActionCommand)
+ {
InvokePortletInstanceActionCommand iprc =
(InvokePortletInstanceActionCommand)cmd;
PortletRequestEncoder encoder = new
PortletRequestEncoder(url.getParameterMap());
encoder.encodeAction(iprc.getNavigationalState(),
iprc.getInteractionState(), null, null);
}
+ else
+ {
+ throw new NotImplementedException(cmd + "is an unknown sub-class of
PortletInstanceCommand");
+ }
return url;
}
Show replies by date