[jboss-cvs] jboss-portal/core/src/main/org/jboss/portal/core/metadata ...
Julien Viet
julien at jboss.com
Wed Jul 12 05:29:54 EDT 2006
User: julien
Date: 06/07/12 05:29:54
Modified: core/src/main/org/jboss/portal/core/metadata
InstanceMetaData.java InstancesMetaData.java
Log:
- encode properly meta parameter in a URL
- take prefs metadata for instances and use them to personalize the portlet to instantiate
Revision Changes Path
1.29 +86 -6 jboss-portal/core/src/main/org/jboss/portal/core/metadata/InstanceMetaData.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: InstanceMetaData.java
===================================================================
RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/metadata/InstanceMetaData.java,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- InstanceMetaData.java 10 Jul 2006 22:51:45 -0000 1.28
+++ InstanceMetaData.java 12 Jul 2006 09:29:54 -0000 1.29
@@ -39,6 +39,7 @@
import org.jboss.portal.security.SecurityConstants;
import org.jboss.portal.security.metadata.SecurityConstraintsMetaData;
import org.w3c.dom.Element;
+import org.apache.log4j.Logger;
import java.util.Iterator;
import java.util.Map;
@@ -49,10 +50,14 @@
* Represent metadata of an instance.
*
* @author <a href="mailto:julien at jboss.org">Julien Viet</a>
- * @version $Revision: 1.28 $
+ * @version $Revision: 1.29 $
*/
public class InstanceMetaData implements MetaData
{
+
+ /** The logger. */
+ private static final Logger log = Logger.getLogger(InstanceMetaData.class);
+
/** The instance id. */
private String id;
@@ -111,8 +116,8 @@
public static InstanceMetaData buildMetaData(Element instanceElt)
{
- String instanceName = XML.asString(XML.getUniqueChild(instanceElt, "instance-name", true));
- String componentRef = XML.asString(XML.getUniqueChild(instanceElt, "component-ref", true));
+ String instanceName = XML.asString(XML.getUniqueChild(instanceElt, "instance-id", true));
+ String componentRef = XML.asString(XML.getUniqueChild(instanceElt, "portlet-ref", true));
// Configure preferences override
PreferencesMetaData preferencesMD = new PreferencesMetaData();
@@ -144,6 +149,81 @@
return instanceMD;
}
+ /**
+ * @param instanceElt the instance xml element
+ * @param pwaId the portlet application id
+ */
+ public static InstanceMetaData buildLegacyMetaData(Element instanceElt, String pwaId)
+ {
+ Element instanceNameElt = XML.getUniqueChild(instanceElt, "instance-name", true);
+ Element componentRefElt = XML.getUniqueChild(instanceElt, "component-ref", true);
+
+ //
+ String instanceName = XML.asString(instanceNameElt);
+ String componentRef = XML.asString(componentRefElt);
+
+ //
+ int dotIndex = componentRef.indexOf('.');
+
+ //
+ if (dotIndex == -1)
+ {
+ log.warn("Bad component ref " + componentRef);
+ }
+ else
+ {
+ String appId = componentRef.substring(0, dotIndex);
+ if (appId.equals(pwaId) == false)
+ {
+ log.warn("The instance " + instanceName + " will not be created because the component referenced is outside of the same web app " + componentRef);
+ }
+ else
+ {
+ String portletRef = componentRef.substring(dotIndex + 1);
+
+ if (portletRef.length() == 0)
+ {
+ log.warn("Zero portlet ref length are not considered " + componentRef);
+ }
+ else
+ {
+ log.debug("Adding legacy instance " + instanceName);
+
+ //
+ InstanceMetaData instanceMD = new InstanceMetaData();
+ instanceMD.setId(instanceName);
+ instanceMD.setPortletRef(portletRef);
+
+ // Configure preferences
+ PreferencesMetaData preferencesMD = new PreferencesMetaData();
+ Element preferencesElt = XML.getUniqueChild(instanceElt, "preferences", false);
+ if (preferencesElt != null)
+ {
+ for (Iterator j = InstanceMetaData.buildPreferencesMetaData(preferencesElt).values().iterator();j.hasNext();)
+ {
+ PreferenceMetaData preferenceMD = (PreferenceMetaData)j.next();
+ preferencesMD.addPreference(preferenceMD);
+ }
+ }
+
+ // Add the security constraints
+ Element securityConstraintElt = XML.getUniqueChild(instanceElt, "security-constraint", false);
+ if (securityConstraintElt != null)
+ {
+ SecurityConstraintsMetaData securityConstraintsMD = SecurityConstraintsMetaData.buildSecurityConstraintMetaData(securityConstraintElt);
+ instanceMD.setSecurityConstraints(securityConstraintsMD);
+ }
+
+ //
+ return instanceMD;
+ }
+ }
+ }
+
+ //
+ return null;
+ }
+
public static Map buildPreferencesMetaData(Element portletPreferencesElt)
{
Map preferences = new HashMap();
@@ -205,8 +285,8 @@
// Create the instance
Instance instance = instanceContainer.createInstance(id, resolvedRef);
- // Configure preferences
- if (preferences != null)
+ // Configure preferences only if needed
+ if (preferences != null && preferences.size() > 0)
{
ValueMap prefs = new SimpleValueMap();
for (Iterator i = preferences.iterator();i.hasNext();)
1.14 +1 -14 jboss-portal/core/src/main/org/jboss/portal/core/metadata/InstancesMetaData.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: InstancesMetaData.java
===================================================================
RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/metadata/InstancesMetaData.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- InstancesMetaData.java 26 May 2006 14:12:53 -0000 1.13
+++ InstancesMetaData.java 12 Jul 2006 09:29:54 -0000 1.14
@@ -34,7 +34,7 @@
/**
* @author <a href="mailto:julien at jboss.org">Julien Viet</a>
- * @version $Revision: 1.13 $
+ * @version $Revision: 1.14 $
*/
public class InstancesMetaData
{
@@ -62,19 +62,6 @@
String resolvePortletRef(String ref);
}
- public static InstancesMetaData buildInstancesMD(Element instancesElt)
- {
- InstancesMetaData instancesMD = new InstancesMetaData();
- List instanceElts = XML.getChildren(instancesElt, "instance");
- for (int i = 0;i < instanceElts.size();i++)
- {
- Element instanceElt = (Element)instanceElts.get(i);
- InstanceMetaData instanceMD = InstanceMetaData.buildMetaData(instanceElt);
- instancesMD.getInstances().put(instanceMD.getId(), instanceMD);
- }
- return instancesMD;
- }
-
public void destroy(InstanceContainer container)
{
for (Iterator i = instances.values().iterator(); i.hasNext();)
More information about the jboss-cvs-commits
mailing list