Author: bdaw
Date: 2008-07-22 12:57:35 -0400 (Tue, 22 Jul 2008)
New Revision: 11544
Added:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/AliasBindingInfo.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationStrategy.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/WindowBindingInfo.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/coordination/CoordinationAliasBindingMetaData.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/coordination/CoordinationWindowBindingMetaData.java
Removed:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/ImplicitStrategy.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/coordination/CoordinationParameterBindingMetaData.java
Modified:
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/default-object.xml
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationConfigurator.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationManager.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/ParameterBindingInfo.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/ControllerPageNavigationalState.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination/CoordinationService.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/coordination/CoordinationMetaData.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/test/core/model/portal/coordination/CoordinationServiceTestCase.java
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-sar/dtd/portal-object_2_6.dtd
Log:
- Coordination refactorings and addition of alias binding
Added:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/AliasBindingInfo.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/AliasBindingInfo.java
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/AliasBindingInfo.java 2008-07-22
16:57:35 UTC (rev 11544)
@@ -0,0 +1,39 @@
+/*
+* 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.core.controller.coordination;
+
+import org.jboss.portal.core.model.portal.Page;
+
+import javax.xml.namespace.QName;
+import java.util.Set;
+
+/**
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
+ * @version : 0.1 $
+ */
+public interface AliasBindingInfo extends ParameterBindingInfo
+{
+ Page getPage();
+
+ Set<QName> getQNames();
+}
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationConfigurator.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationConfigurator.java 2008-07-22
13:40:07 UTC (rev 11543)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationConfigurator.java 2008-07-22
16:57:35 UTC (rev 11544)
@@ -29,6 +29,7 @@
import javax.xml.namespace.QName;
import java.util.Map;
import java.util.Collection;
+import java.util.Set;
/**
* @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
@@ -63,13 +64,13 @@
* @param strategy
* @throws IllegalCoordinationException
*/
- void setImplicitEventWiringStrategy(PageContainer pageContainer, ImplicitStrategy
strategy) throws IllegalCoordinationException;
+ void setEventWiringStrategy(PageContainer pageContainer, CoordinationStrategy
strategy) throws IllegalCoordinationException;
/**
* @param page
* @return implicit wiring strategy for a given page. Can return null if no strategy
is set
*/
- ImplicitStrategy getImplicitEventWiringStrategy(PageContainer page) throws
IllegalCoordinationException;
+ CoordinationStrategy getEventWiringStrategy(PageContainer page) throws
IllegalCoordinationException;
/**
* @param page
@@ -103,7 +104,7 @@
* @param windows
* @throws IllegalCoordinationException
*/
- void setParameterBinding(String name, Map<Window, QName> windows) throws
IllegalCoordinationException;
+ void setWindowBinding(String name, Map<Window, QName> windows) throws
IllegalCoordinationException;
/**
* Removes given parameter binding
@@ -111,42 +112,65 @@
* @param parameterBinding
* @throws IllegalCoordinationException
*/
- void removeParameterBinding(ParameterBindingInfo parameterBinding) throws
IllegalCoordinationException;
+ void removeWindowBinding(WindowBindingInfo parameterBinding) throws
IllegalCoordinationException;
/**
* Set implicit strategy for a given page container
*
* @param pageContainer
- * @param implicitStrategy
+ * @param coordinationStrategy
* @throws IllegalCoordinationException
*/
- void setImplicitParameterBindingStrategy(PageContainer pageContainer, ImplicitStrategy
implicitStrategy) throws IllegalCoordinationException;
+ void setParameterBindingStrategy(PageContainer pageContainer, CoordinationStrategy
coordinationStrategy) throws IllegalCoordinationException;
/**
* @param pageContainer
* @return implicit strategy for a given page container. Can return null if no
strategy is defined
*/
- ImplicitStrategy getImplicitParameterBindingStrategy(PageContainer pageContainer)
throws IllegalCoordinationException;
+ CoordinationStrategy getParameterBindingStrategy(PageContainer pageContainer) throws
IllegalCoordinationException;
+ /**
+ * Set alias binding for a given page. If alias with given name already exists it will
be overwritten
+ *
+ * @param page
+ * @param aliasName
+ * @param qnames
+ * @throws IllegalCoordinationException
+ */
+ void setAliasBinding(Page page, String aliasName, Set<QName> qnames) throws
IllegalCoordinationException;
/**
+ * Removes alias binding
+ *
+ * @param aliasInfo
+ * @throws IllegalCoordinationException
+ */
+ void removeAliasBinding(AliasBindingInfo aliasInfo) throws
IllegalCoordinationException;
+
+ /**
* @param page
+ * @return collection of alias bindings connected to the given page
+ */
+ Collection<AliasBindingInfo> getAliasBindings(Page page);
+
+ /**
+ * @param page
* @param parameterQName
- * @return parameter bindings for a given parameter qname
+ * @return window bindings for a given parameter qname
*/
- Collection<ParameterBindingInfo> getParameterBindings(Page page, QName
parameterQName);
+ Collection<WindowBindingInfo> getWindowBindings(Page page, QName
parameterQName);
/**
* @param page
- * @return parameter bindings define in the scope of a given page
+ * @return window bindings define in the scope of a given page
*/
- Collection<ParameterBindingInfo> getParameterBindings(Page page);
+ Collection<WindowBindingInfo> getWindowBindings(Page page);
/**
* @param window
- * @return parameter bindings where given window is involved
+ * @return window bindings where given window is involved
*/
- Collection<ParameterBindingInfo> getParameterBindings(Window window);
+ Collection<WindowBindingInfo> getWindowBindings(Window window);
}
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationManager.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationManager.java 2008-07-22
13:40:07 UTC (rev 11543)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationManager.java 2008-07-22
16:57:35 UTC (rev 11544)
@@ -58,7 +58,7 @@
* @return
* @throws IllegalCoordinationException
*/
- ImplicitStrategy resolveImplicitBindingStrategy(PageContainer page);
+ CoordinationStrategy resolveBindingStrategy(PageContainer page);
/**
* Resolves implicit wiring strategy. If there is no strategy defined for this page
container method will browse
@@ -68,7 +68,7 @@
* @return
* @throws IllegalCoordinationException
*/
- ImplicitStrategy resolveImplicitEventWiringStrategy(PageContainer page);
+ CoordinationStrategy resolveEventWiringStrategy(PageContainer page);
/**
* @param window
Copied:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationStrategy.java
(from rev 11539,
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/ImplicitStrategy.java)
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationStrategy.java
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationStrategy.java 2008-07-22
16:57:35 UTC (rev 11544)
@@ -0,0 +1,85 @@
+/*
+* 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.core.controller.coordination;
+
+/**
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
+* @version : 0.1 $
+*/
+public enum CoordinationStrategy
+{
+
+ // Explicit wiring takes precedence and if none exist for a given event it will be
processed with implicit wiring
+ FALLBACK,
+
+ // Only implicit wiring enabled
+ IMPLICIT,
+
+ // Implicit wiring disabled
+ EXPLICIT,
+
+ // All children nodes in the tree will inherit FALLBACK strategy
+ RECURSIVE_FALLBACK,
+
+ // All children nodes in the tree will inherit IMPLICIT strategy
+ RECURSIVE_IMPLICIT,
+
+ // All children nodes in the tree will inherit EXPLICIT strategy
+ RECURSIVE_EXPLICIT;
+
+ public static CoordinationStrategy decodeStrategy(String value)
+ {
+ if (value == null)
+ {
+ return null;
+ }
+ else if (value.equals(EXPLICIT.name()))
+ {
+ return CoordinationStrategy.EXPLICIT;
+ }
+ else if (value.equals(IMPLICIT.name()))
+ {
+ return CoordinationStrategy.IMPLICIT;
+ }
+ else if (value.equals(FALLBACK.name()))
+ {
+ return CoordinationStrategy.FALLBACK;
+ }
+ else if (value.equals(RECURSIVE_EXPLICIT.name()))
+ {
+ return CoordinationStrategy.RECURSIVE_EXPLICIT;
+ }
+ else if (value.equals(RECURSIVE_IMPLICIT.name()))
+ {
+ return CoordinationStrategy.RECURSIVE_IMPLICIT;
+ }
+ else if (value.equals(RECURSIVE_FALLBACK.name()))
+ {
+ return CoordinationStrategy.RECURSIVE_FALLBACK;
+ }
+
+ // Strategy unknown
+ return null;
+ }
+
+}
Deleted:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/ImplicitStrategy.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/ImplicitStrategy.java 2008-07-22
13:40:07 UTC (rev 11543)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/ImplicitStrategy.java 2008-07-22
16:57:35 UTC (rev 11544)
@@ -1,85 +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.core.controller.coordination;
-
-/**
- * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
-* @version : 0.1 $
-*/
-public enum ImplicitStrategy
-{
-
- // Explicit wiring takes precedence and if none exist for a given event it will be
processed with implicit wiring
- FALLBACK,
-
- // Only implicit wiring enabled
- EXCLUSIVE,
-
- // Implicit wiring disabled
- DISABLED,
-
- // All children nodes in the tree will inherit FALLBACK strategy
- RECURSIVE_FALLBACK,
-
- // All children nodes in the tree will inherit EXCLUSIVE strategy
- RECURSIVE_EXCLUSIVE,
-
- // All children nodes in the tree will inherit DISABLED strategy
- RECURSIVE_DISABLED;
-
- public static ImplicitStrategy decodeStrategy(String value)
- {
- if (value == null)
- {
- return null;
- }
- else if (value.equals(DISABLED.name()))
- {
- return ImplicitStrategy.DISABLED;
- }
- else if (value.equals(EXCLUSIVE.name()))
- {
- return ImplicitStrategy.EXCLUSIVE;
- }
- else if (value.equals(FALLBACK.name()))
- {
- return ImplicitStrategy.FALLBACK;
- }
- else if (value.equals(RECURSIVE_DISABLED.name()))
- {
- return ImplicitStrategy.RECURSIVE_DISABLED;
- }
- else if (value.equals(RECURSIVE_EXCLUSIVE.name()))
- {
- return ImplicitStrategy.RECURSIVE_EXCLUSIVE;
- }
- else if (value.equals(RECURSIVE_FALLBACK.name()))
- {
- return ImplicitStrategy.RECURSIVE_FALLBACK;
- }
-
- // Strategy unknown
- return null;
- }
-
-}
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/ParameterBindingInfo.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/ParameterBindingInfo.java 2008-07-22
13:40:07 UTC (rev 11543)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/ParameterBindingInfo.java 2008-07-22
16:57:35 UTC (rev 11544)
@@ -35,6 +35,6 @@
{
String getName();
- Map<Window, QName> getWindows();
+
}
Added:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/WindowBindingInfo.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/WindowBindingInfo.java
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/WindowBindingInfo.java 2008-07-22
16:57:35 UTC (rev 11544)
@@ -0,0 +1,38 @@
+/*
+* 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.core.controller.coordination;
+
+import org.jboss.portal.core.model.portal.Window;
+
+import javax.xml.namespace.QName;
+import java.util.Map;
+
+/**
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
+ * @version : 0.1 $
+ */
+public interface WindowBindingInfo extends ParameterBindingInfo
+{
+
+ Map<Window, QName> getWindows();
+}
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/ControllerPageNavigationalState.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/ControllerPageNavigationalState.java 2008-07-22
13:40:07 UTC (rev 11543)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/ControllerPageNavigationalState.java 2008-07-22
16:57:35 UTC (rev 11544)
@@ -32,7 +32,7 @@
import org.jboss.portal.core.navstate.NavigationalStateContext;
import org.jboss.portal.core.model.portal.Window;
import org.jboss.portal.core.controller.coordination.CoordinationManager;
-import org.jboss.portal.core.controller.coordination.ImplicitStrategy;
+import org.jboss.portal.core.controller.coordination.CoordinationStrategy;
import javax.xml.namespace.QName;
import java.util.Collections;
@@ -403,12 +403,12 @@
}
- ImplicitStrategy strategy =
getCoordinationManager().resolveImplicitBindingStrategy(getWindow(windowName).getPage());
+ CoordinationStrategy strategy =
getCoordinationManager().resolveBindingStrategy(getWindow(windowName).getPage());
String parameterId = parameterInfo.getId();
- if (strategy.equals(ImplicitStrategy.DISABLED) ||
- (strategy.equals(ImplicitStrategy.FALLBACK) &&
explicitParameterValue != null))
+ if (strategy.equals(CoordinationStrategy.EXPLICIT) ||
+ (strategy.equals(CoordinationStrategy.FALLBACK) &&
explicitParameterValue != null))
{
//
// We clone the value here so we keep the internal state not
potentially changed
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination/CoordinationService.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination/CoordinationService.java 2008-07-22
13:40:07 UTC (rev 11543)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination/CoordinationService.java 2008-07-22
16:57:35 UTC (rev 11544)
@@ -25,10 +25,11 @@
import org.jboss.portal.core.controller.coordination.CoordinationManager;
import org.jboss.portal.core.controller.coordination.IllegalCoordinationException;
import org.jboss.portal.core.controller.coordination.EventWiringInfo;
-import org.jboss.portal.core.controller.coordination.ParameterBindingInfo;
-import org.jboss.portal.core.controller.coordination.ImplicitStrategy;
+import org.jboss.portal.core.controller.coordination.CoordinationStrategy;
import org.jboss.portal.core.controller.coordination.CoordinationConfigurator;
import org.jboss.portal.core.controller.coordination.EventConverter;
+import org.jboss.portal.core.controller.coordination.WindowBindingInfo;
+import org.jboss.portal.core.controller.coordination.AliasBindingInfo;
import org.jboss.portal.core.model.portal.Window;
import org.jboss.portal.core.model.portal.Page;
import org.jboss.portal.core.model.portal.PageContainer;
@@ -48,6 +49,7 @@
import java.util.HashSet;
import java.util.HashMap;
import java.util.Collections;
+import java.util.Iterator;
/**
* @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
@@ -64,10 +66,14 @@
public static final String PREFIX =
"org.jboss.portal.core.controller.coordination";
+ public static final String QNAME_SEPARATOR = ";";
+
public static final String PREFIX_EVENT = PREFIX + ".event";
- public static final String PREFIX_PARAMETER = PREFIX + ".binding";
+ public static final String PREFIX_PARAMETER = PREFIX + ".parameter";
+ public static final String PREFIX_PARAMETER_ALIAS = PREFIX_PARAMETER +
".alias";
+
public static final String PREFIX_EVENT_NAME = PREFIX_EVENT + ".name";
public static final String PREFIX_EVENT_WIRING = PREFIX_EVENT + ".wiring";
@@ -76,25 +82,27 @@
public static final String PREFIX_PARAMETER_BINDING = PREFIX_PARAMETER +
".binding";
- public static final String PREFIX_EVENT_IMPLICIT_STRATEGY = PREFIX_EVENT +
".implicit_strategy";
+ public static final String PREFIX_PARAMETER_ALIAS_NAME = PREFIX_PARAMETER_ALIAS +
".name";
- public static final String PREFIX_PARAMETER_IMPLICIT_STRATEGY = PREFIX_PARAMETER +
".implicit_strategy";
+ public static final String PREFIX_EVENT_IMPLICIT_STRATEGY = PREFIX_EVENT +
".coordination_strategy";
- public static final String STRATEGY_FALLBACK = ImplicitStrategy.FALLBACK.name();
+ public static final String PREFIX_PARAMETER_IMPLICIT_STRATEGY = PREFIX_PARAMETER +
".coordination_strategy";
- public static final String STRATEGY_EXCLUSIVE = ImplicitStrategy.EXCLUSIVE.name();
+ public static final String STRATEGY_FALLBACK = CoordinationStrategy.FALLBACK.name();
- public static final String STRATEGY_DISABLED = ImplicitStrategy.DISABLED.name();
+ public static final String STRATEGY_EXCLUSIVE = CoordinationStrategy.IMPLICIT.name();
- public static final String STRATEGY_RECURSIVE_DISABLED =
ImplicitStrategy.RECURSIVE_DISABLED.name();
+ public static final String STRATEGY_DISABLED = CoordinationStrategy.EXPLICIT.name();
- public static final String STRATEGY_RECURSIVE_EXCLUSIVE =
ImplicitStrategy.RECURSIVE_EXCLUSIVE.name();
+ public static final String STRATEGY_RECURSIVE_DISABLED =
CoordinationStrategy.RECURSIVE_EXPLICIT.name();
- public static final String STRATEGY_RECURSIVE_FALLBACK =
ImplicitStrategy.RECURSIVE_FALLBACK.name();
+ public static final String STRATEGY_RECURSIVE_EXCLUSIVE =
CoordinationStrategy.RECURSIVE_IMPLICIT.name();
- public static final ImplicitStrategy DEFAULT_STRATEGY = ImplicitStrategy.FALLBACK;
+ public static final String STRATEGY_RECURSIVE_FALLBACK =
CoordinationStrategy.RECURSIVE_FALLBACK.name();
+ public static final CoordinationStrategy DEFAULT_STRATEGY =
CoordinationStrategy.FALLBACK;
+
protected EventConverter eventConverter = new SimpleEventConverter();
protected PortalObjectContainer portalObjectContainer;
@@ -127,27 +135,27 @@
Page page = context.getWindow(event.getWindowId()).getPage();
- ImplicitStrategy strategy = resolveImplicitEventWiringStrategy(page);
+ CoordinationStrategy strategy = resolveEventWiringStrategy(page);
Map<Window, PortletWindowEvent> windows = new HashMap<Window,
PortletWindowEvent>();
// Only implicit wirings
- if (strategy.equals(ImplicitStrategy.EXCLUSIVE))
+ if (strategy.equals(CoordinationStrategy.IMPLICIT))
{
windows = getEventWindowsImplicit(page, event, context);
}
// Only explicit wirings
- else if(strategy.equals(ImplicitStrategy.DISABLED))
+ else if(strategy.equals(CoordinationStrategy.EXPLICIT))
{
windows = getEventWindowsExplicit(page, event, context);
}
// If no explicit wirings for this event fallback to implicit
- else if(strategy.equals(ImplicitStrategy.FALLBACK))
+ else if(strategy.equals(CoordinationStrategy.FALLBACK))
{
windows = getEventWindowsExplicit(page, event, context);
@@ -165,9 +173,9 @@
Set<String> names = new HashSet<String>();
- Collection<ParameterBindingInfo> infos = getParameterBindings(window);
+ Collection<WindowBindingInfo> infos = getWindowBindings(window);
- for (ParameterBindingInfo info : infos)
+ for (WindowBindingInfo info : infos)
{
for (Map.Entry<Window, QName> entry : info.getWindows().entrySet())
{
@@ -340,7 +348,7 @@
}
}
- public void setImplicitEventWiringStrategy(PageContainer pageContainer,
ImplicitStrategy strategy) throws IllegalCoordinationException
+ public void setEventWiringStrategy(PageContainer pageContainer, CoordinationStrategy
strategy) throws IllegalCoordinationException
{
if (pageContainer == null)
{
@@ -352,7 +360,7 @@
}
- public ImplicitStrategy getImplicitEventWiringStrategy(PageContainer page) throws
IllegalCoordinationException
+ public CoordinationStrategy getEventWiringStrategy(PageContainer page) throws
IllegalCoordinationException
{
if (page == null)
{
@@ -363,7 +371,7 @@
}
- public ImplicitStrategy resolveImplicitEventWiringStrategy(PageContainer page)
+ public CoordinationStrategy resolveEventWiringStrategy(PageContainer page)
{
if (page == null)
@@ -512,7 +520,7 @@
return events;
}
- public void setParameterBinding(String name, Map<Window, QName> windows) throws
IllegalCoordinationException
+ public void setWindowBinding(String name, Map<Window, QName> windows) throws
IllegalCoordinationException
{
if (windows == null)
{
@@ -562,7 +570,7 @@
}
- public void removeParameterBinding(ParameterBindingInfo info) throws
IllegalCoordinationException
+ public void removeWindowBinding(WindowBindingInfo info) throws
IllegalCoordinationException
{
if (info == null)
{
@@ -579,7 +587,7 @@
}
}
- public void setImplicitParameterBindingStrategy(PageContainer pageContainer,
ImplicitStrategy strategy) throws IllegalCoordinationException
+ public void setParameterBindingStrategy(PageContainer pageContainer,
CoordinationStrategy strategy) throws IllegalCoordinationException
{
if (pageContainer == null)
{
@@ -590,7 +598,7 @@
setStrategy(pageContainer, strategy, PREFIX_PARAMETER_IMPLICIT_STRATEGY);
}
- public ImplicitStrategy getImplicitParameterBindingStrategy(PageContainer
pageContainer) throws IllegalCoordinationException
+ public CoordinationStrategy getParameterBindingStrategy(PageContainer pageContainer)
throws IllegalCoordinationException
{
if (pageContainer == null)
@@ -602,7 +610,7 @@
}
- public ImplicitStrategy resolveImplicitBindingStrategy(PageContainer page)
+ public CoordinationStrategy resolveBindingStrategy(PageContainer page)
{
if (page == null)
{
@@ -612,24 +620,125 @@
return resolveStrategy(page, PREFIX_PARAMETER_IMPLICIT_STRATEGY);
}
- public Collection<ParameterBindingInfo> getParameterBindings(Page page, QName
parameterQName)
+
+ public void setAliasBinding(Page page, String aliasName, Set<QName> qnames)
throws IllegalCoordinationException
{
+ if (page == null)
+ {
+ throw new IllegalArgumentException("page is null");
+ }
+ if (aliasName == null)
+ {
+ throw new IllegalArgumentException("alias name is null");
+ }
+ if (qnames == null)
+ {
+ throw new IllegalArgumentException("qnames set is null");
+ }
+ String propName = PREFIX_PARAMETER_ALIAS_NAME + "." + aliasName;
+
+
+ // Check if qname consist separator string
+
+ for (QName qname : qnames)
+ {
+
+
+ if (qname.toString().contains(QNAME_SEPARATOR))
+ {
+ throw new IllegalCoordinationException("Qname: " + qname + "
contains forbidden character: " + QNAME_SEPARATOR);
+ }
+ }
+
+ StringBuilder qnameList = new StringBuilder();
+
+ for (Iterator i = qnames.iterator(); i.hasNext(); )
+ {
+ QName qname = (QName)i.next();
+
+ qnameList.append(qname.toString());
+
+ if (i.hasNext())
+ {
+ qnameList.append(QNAME_SEPARATOR);
+ }
+ }
+
+ page.setDeclaredProperty(propName, qnameList.toString());
+
+ }
+
+ public void removeAliasBinding(AliasBindingInfo aliasInfo) throws
IllegalCoordinationException
+ {
+ if (aliasInfo == null)
+ {
+ throw new IllegalArgumentException("alias info is null");
+ }
+
+ String propName = PREFIX_PARAMETER_ALIAS_NAME + "." +
aliasInfo.getName();
+
+ if (aliasInfo.getPage().getProperties().keySet().contains(propName))
+ {
+ aliasInfo.getPage().setDeclaredProperty(propName,null);
+ }
+ }
+
+ public Collection<AliasBindingInfo> getAliasBindings(Page page)
+ {
if (page == null)
{
throw new IllegalArgumentException("page is null");
}
+ HashSet<AliasBindingInfo> aliases = new HashSet<AliasBindingInfo>();
+
+ for (String propertyName : page.getProperties().keySet())
+ {
+ if (propertyName.startsWith(PREFIX_PARAMETER_ALIAS_NAME))
+ {
+ String aliasName =
propertyName.substring(PREFIX_PARAMETER_ALIAS_NAME.length() + 1);
+
+ AliasInfoPOJO info = new AliasInfoPOJO(aliasName, page);
+
+ String qnameList = page.getProperty(propertyName);
+
+ String[] qnames = qnameList.split(QNAME_SEPARATOR);
+
+ if (qnames != null)
+ {
+ for (String string : qnames)
+ {
+ QName qname = QName.valueOf(string);
+ info.getQNames().add(qname);
+ }
+ }
+
+ aliases.add(info.getImmutableInfo());
+ }
+ }
+
+ return aliases;
+ }
+
+ public Collection<WindowBindingInfo> getWindowBindings(Page page, QName
parameterQName)
+ {
+
+ if (page == null)
+ {
+ throw new IllegalArgumentException("page is null");
+ }
+
if (parameterQName == null)
{
throw new IllegalArgumentException("QName is null");
}
- Collection<ParameterBindingInfo> pageParams = getParameterBindings(page);
+ Collection<WindowBindingInfo> pageParams = getWindowBindings(page);
- Collection<ParameterBindingInfo> infos = new
HashSet<ParameterBindingInfo>();
+ Collection<WindowBindingInfo> infos = new
HashSet<WindowBindingInfo>();
- for (ParameterBindingInfo pageParam : pageParams)
+ for (WindowBindingInfo pageParam : pageParams)
{
if (pageParam.getWindows().containsValue(parameterQName))
{
@@ -640,7 +749,7 @@
return infos;
}
- public Collection<ParameterBindingInfo> getParameterBindings(Page page)
+ public Collection<WindowBindingInfo> getWindowBindings(Page page)
{
if (page == null)
{
@@ -651,7 +760,7 @@
Collection<Window> windows = getWindows(page);
- Map<String, ParameterInfoPOJO> params = new HashMap<String,
ParameterInfoPOJO>();
+ Map<String, WindowInfoPOJO> params = new HashMap<String,
WindowInfoPOJO>();
@@ -664,11 +773,11 @@
if(propName.startsWith(PREFIX_PARAMETER_BINDING))
{
String pn = propName.substring(PREFIX_PARAMETER_BINDING.length() + 1);
- ParameterInfoPOJO info = null;
+ WindowInfoPOJO info = null;
if (!params.keySet().contains(pn))
{
- info = new ParameterInfoPOJO(pn);
+ info = new WindowInfoPOJO(pn);
params.put(pn, info);
}
else
@@ -699,9 +808,9 @@
}
// Make immutable copy
- Collection<ParameterBindingInfo> immutableParams = new
HashSet<ParameterBindingInfo>();
+ Collection<WindowBindingInfo> immutableParams = new
HashSet<WindowBindingInfo>();
- for (ParameterInfoPOJO info : params.values())
+ for (WindowInfoPOJO info : params.values())
{
immutableParams.add(info.getImmutableInfo());
}
@@ -709,13 +818,13 @@
return immutableParams;
}
- public Collection<ParameterBindingInfo> getParameterBindings(Window window)
+ public Collection<WindowBindingInfo> getWindowBindings(Window window)
{
- Collection<ParameterBindingInfo> pageParams =
getParameterBindings(window.getPage());
+ Collection<WindowBindingInfo> pageParams =
getWindowBindings(window.getPage());
- Collection<ParameterBindingInfo> infos = new
HashSet<ParameterBindingInfo>();
+ Collection<WindowBindingInfo> infos = new
HashSet<WindowBindingInfo>();
- for (ParameterBindingInfo pageParam : pageParams)
+ for (WindowBindingInfo pageParam : pageParams)
{
if (pageParam.getWindows().keySet().contains(window))
{
@@ -750,52 +859,52 @@
// HELPER METHODS
- private void setStrategy(PageContainer pageContainer, ImplicitStrategy strategy,
String prefix)
+ private void setStrategy(PageContainer pageContainer, CoordinationStrategy strategy,
String prefix)
{
if (strategy == null)
{
pageContainer.setDeclaredProperty(prefix, null);
}
- else if (strategy.equals(ImplicitStrategy.DISABLED))
+ else if (strategy.equals(CoordinationStrategy.EXPLICIT))
{
pageContainer.setDeclaredProperty(prefix, STRATEGY_DISABLED);
}
- else if (strategy.equals(ImplicitStrategy.EXCLUSIVE))
+ else if (strategy.equals(CoordinationStrategy.IMPLICIT))
{
pageContainer.setDeclaredProperty(prefix, STRATEGY_EXCLUSIVE);
}
- else if (strategy.equals(ImplicitStrategy.FALLBACK))
+ else if (strategy.equals(CoordinationStrategy.FALLBACK))
{
pageContainer.setDeclaredProperty(prefix,STRATEGY_FALLBACK);
}
- else if (strategy.equals(ImplicitStrategy.RECURSIVE_DISABLED))
+ else if (strategy.equals(CoordinationStrategy.RECURSIVE_EXPLICIT))
{
pageContainer.setDeclaredProperty(prefix,STRATEGY_RECURSIVE_DISABLED);
}
- else if (strategy.equals(ImplicitStrategy.RECURSIVE_EXCLUSIVE))
+ else if (strategy.equals(CoordinationStrategy.RECURSIVE_IMPLICIT))
{
pageContainer.setDeclaredProperty(prefix,STRATEGY_RECURSIVE_EXCLUSIVE);
}
- else if (strategy.equals(ImplicitStrategy.RECURSIVE_FALLBACK))
+ else if (strategy.equals(CoordinationStrategy.RECURSIVE_FALLBACK))
{
pageContainer.setDeclaredProperty(prefix,STRATEGY_RECURSIVE_FALLBACK);
}
}
- private ImplicitStrategy decodeStrategy(PageContainer pageContainer, String prefix)
+ private CoordinationStrategy decodeStrategy(PageContainer pageContainer, String
prefix)
{
String value = pageContainer.getDeclaredProperty(prefix);
- return ImplicitStrategy.decodeStrategy(value);
+ return CoordinationStrategy.decodeStrategy(value);
}
- private ImplicitStrategy resolveStrategy(PageContainer pageContainer, String prefix)
+ private CoordinationStrategy resolveStrategy(PageContainer pageContainer, String
prefix)
{
String value = pageContainer.getDeclaredProperty(prefix);
- ImplicitStrategy strategy = null;
+ CoordinationStrategy strategy = null;
// Try to obtain recursive strategy from parents
@@ -806,22 +915,22 @@
}
else
{
- strategy = ImplicitStrategy.decodeStrategy(value);
+ strategy = CoordinationStrategy.decodeStrategy(value);
}
if (strategy != null)
{
- if (strategy.equals(ImplicitStrategy.RECURSIVE_DISABLED))
+ if (strategy.equals(CoordinationStrategy.RECURSIVE_EXPLICIT))
{
- return ImplicitStrategy.DISABLED;
+ return CoordinationStrategy.EXPLICIT;
}
- else if (strategy.equals(ImplicitStrategy.RECURSIVE_EXCLUSIVE))
+ else if (strategy.equals(CoordinationStrategy.RECURSIVE_IMPLICIT))
{
- return ImplicitStrategy.EXCLUSIVE;
+ return CoordinationStrategy.IMPLICIT;
}
- else if (strategy.equals(ImplicitStrategy.RECURSIVE_FALLBACK))
+ else if (strategy.equals(CoordinationStrategy.RECURSIVE_FALLBACK))
{
- return ImplicitStrategy.FALLBACK;
+ return CoordinationStrategy.FALLBACK;
}
return strategy;
@@ -834,20 +943,20 @@
}
// Search for the RECURSIVE_ type of strategy
- private ImplicitStrategy resolveRecursiveStrategy(PortalObject po, String prefix)
+ private CoordinationStrategy resolveRecursiveStrategy(PortalObject po, String prefix)
{
String value = po.getDeclaredProperty(prefix);
- ImplicitStrategy strategy = null;
+ CoordinationStrategy strategy = null;
if (value != null)
{
- strategy = ImplicitStrategy.decodeStrategy(value);
+ strategy = CoordinationStrategy.decodeStrategy(value);
}
if (strategy != null &&
- (strategy.equals(ImplicitStrategy.RECURSIVE_DISABLED) ||
- strategy.equals(ImplicitStrategy.RECURSIVE_EXCLUSIVE) ||
- strategy.equals(ImplicitStrategy.RECURSIVE_FALLBACK)))
+ (strategy.equals(CoordinationStrategy.RECURSIVE_EXPLICIT) ||
+ strategy.equals(CoordinationStrategy.RECURSIVE_IMPLICIT) ||
+ strategy.equals(CoordinationStrategy.RECURSIVE_FALLBACK)))
{
return strategy;
}
@@ -860,6 +969,8 @@
}
+
+
Collection<Window> getWindows(Page page)
{
Set<Window> windows = new HashSet<Window>();
@@ -937,19 +1048,19 @@
}
- private class ParameterInfoPOJO implements ParameterBindingInfo
+ private class WindowInfoPOJO implements WindowBindingInfo
{
private final String name;
private final Map<Window, QName> windows;
- private ParameterInfoPOJO(String name, Map<Window, QName> windows)
+ private WindowInfoPOJO(String name, Map<Window, QName> windows)
{
this.name = name;
this.windows = windows;
}
- private ParameterInfoPOJO(String name)
+ private WindowInfoPOJO(String name)
{
this.name = name;
this.windows = new HashMap<Window,QName>();
@@ -965,11 +1076,54 @@
return windows;
}
- ParameterBindingInfo getImmutableInfo()
+ WindowBindingInfo getImmutableInfo()
{
- return new ParameterInfoPOJO(name, Collections.unmodifiableMap(windows));
+ return new WindowInfoPOJO(name, Collections.unmodifiableMap(windows));
}
}
+
+ private class AliasInfoPOJO implements AliasBindingInfo
+ {
+
+ private final String name;
+ private final Page page;
+ private final Set<QName> qnames;
+
+ private AliasInfoPOJO(String name, Page page, Set<QName> qnames)
+ {
+ this.name = name;
+ this.page = page;
+ this.qnames = qnames;
+ }
+
+ private AliasInfoPOJO(String name, Page page)
+ {
+ this.name = name;
+ this.page = page;
+ this.qnames = new HashSet<QName>();
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public Page getPage()
+ {
+ return page;
+ }
+
+ public Set<QName> getQNames()
+ {
+ return qnames;
+ }
+
+ AliasBindingInfo getImmutableInfo()
+ {
+ return new AliasInfoPOJO(name, page, Collections.unmodifiableSet(qnames));
+ }
+
+ }
}
Added:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/coordination/CoordinationAliasBindingMetaData.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/coordination/CoordinationAliasBindingMetaData.java
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/coordination/CoordinationAliasBindingMetaData.java 2008-07-22
16:57:35 UTC (rev 11544)
@@ -0,0 +1,90 @@
+/*
+* 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.core.model.portal.metadata.coordination;
+
+import org.w3c.dom.Element;
+import org.jboss.portal.common.xml.XMLTools;
+
+import java.util.List;
+import java.util.LinkedList;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.HashSet;
+
+/**
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
+ * @version : 0.1 $
+ */
+public class CoordinationAliasBindingMetaData
+{
+ private String name;
+
+ private Set<String> qnames = new HashSet<String>();
+
+ public CoordinationAliasBindingMetaData(String name)
+ {
+ this.name = name;
+ }
+
+ public Set<String> getQnames()
+ {
+ return qnames;
+ }
+
+ public void setQnames(Set<String> qnames)
+ {
+ this.qnames = qnames;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public void addQName(String qname)
+ {
+ qnames.add(qname);
+ }
+
+ public static CoordinationAliasBindingMetaData buildMetaData(Element bindingElement)
+ {
+ Element nameElt = XMLTools.getUniqueChild(bindingElement, "name", true);
+ CoordinationAliasBindingMetaData aliasMetaData = new
CoordinationAliasBindingMetaData(XMLTools.asString(nameElt));
+
+ Iterator qnameIter = XMLTools.getChildrenIterator(bindingElement,
"qname");
+
+ while (qnameIter.hasNext())
+ {
+ Element element = (Element)qnameIter.next();
+
+ aliasMetaData.addQName(XMLTools.asString(element));
+ }
+
+ return aliasMetaData;
+ }
+}
\ No newline at end of file
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/coordination/CoordinationMetaData.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/coordination/CoordinationMetaData.java 2008-07-22
13:40:07 UTC (rev 11543)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/coordination/CoordinationMetaData.java 2008-07-22
16:57:35 UTC (rev 11544)
@@ -22,7 +22,7 @@
package org.jboss.portal.core.model.portal.metadata.coordination;
-import org.jboss.portal.core.controller.coordination.ImplicitStrategy;
+import org.jboss.portal.core.controller.coordination.CoordinationStrategy;
import org.jboss.portal.core.controller.coordination.IllegalCoordinationException;
import org.jboss.portal.core.model.portal.metadata.BuildContext;
import org.jboss.portal.core.model.portal.PortalObject;
@@ -38,6 +38,8 @@
import java.util.Iterator;
import java.util.Map;
import java.util.HashMap;
+import java.util.Set;
+import java.util.HashSet;
/**
* @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
@@ -46,12 +48,14 @@
public class CoordinationMetaData
{
- private ImplicitStrategy eventStrategy;
+ private CoordinationStrategy eventStrategy;
- private ImplicitStrategy parameterStrategy;
+ private CoordinationStrategy parameterStrategy;
- List<CoordinationParameterBindingMetaData> parameterBindings = new
LinkedList<CoordinationParameterBindingMetaData>();
+ List<CoordinationWindowBindingMetaData> windowBindings = new
LinkedList<CoordinationWindowBindingMetaData>();
+ List<CoordinationAliasBindingMetaData> aliasBindings = new
LinkedList<CoordinationAliasBindingMetaData>();
+
List<CoordinationEventWiringMetaData> wirings = new
LinkedList<CoordinationEventWiringMetaData>();
public static CoordinationMetaData buildMetaData(Element coordinationElt)
@@ -59,19 +63,19 @@
CoordinationMetaData coordinationMetaData = new CoordinationMetaData();
- Element eventStrategy = XMLTools.getUniqueChild(coordinationElt,
"implicit-event-strategy", false);
+ Element eventStrategy = XMLTools.getUniqueChild(coordinationElt,
"event-strategy", false);
if (eventStrategy != null)
{
-
coordinationMetaData.setEventStrategy(ImplicitStrategy.decodeStrategy(XMLTools.asString(eventStrategy)));
+
coordinationMetaData.setEventStrategy(CoordinationStrategy.decodeStrategy(XMLTools.asString(eventStrategy)));
}
- Element parameterStrategy = XMLTools.getUniqueChild(coordinationElt,
"implicit-parameter-strategy", false);
+ Element parameterStrategy = XMLTools.getUniqueChild(coordinationElt,
"parameter-strategy", false);
if (parameterStrategy != null)
{
-
coordinationMetaData.setParameterStrategy(ImplicitStrategy.decodeStrategy(XMLTools.asString(parameterStrategy)));
+
coordinationMetaData.setParameterStrategy(CoordinationStrategy.decodeStrategy(XMLTools.asString(parameterStrategy)));
}
Element wiringsElement = XMLTools.getUniqueChild(coordinationElt,
"wirings", false);
@@ -92,9 +96,17 @@
while (paramBindingsIter.hasNext())
{
Element bindingElement = (Element)paramBindingsIter.next();
-
coordinationMetaData.addParameterBinding(CoordinationParameterBindingMetaData.buildMetaData(bindingElement));
+
coordinationMetaData.addWindowBinding(CoordinationWindowBindingMetaData.buildMetaData(bindingElement));
}
+ // Alias bindings
+ Iterator aliasBindingsIter = XMLTools.getChildrenIterator(bindingsElement,
"alias-binding");
+ while (aliasBindingsIter.hasNext())
+ {
+ Element aliasElement = (Element)paramBindingsIter.next();
+
coordinationMetaData.addAliasBinding(CoordinationAliasBindingMetaData.buildMetaData(aliasElement));
+ }
+
}
@@ -121,27 +133,39 @@
{
if (getEventStrategy() != null)
{
-
buildContext.getCoordinationConfigurator().setImplicitEventWiringStrategy((PageContainer)object,
getEventStrategy());
+
buildContext.getCoordinationConfigurator().setEventWiringStrategy((PageContainer)object,
getEventStrategy());
}
if (getParameterStrategy() != null)
{
-
buildContext.getCoordinationConfigurator().setImplicitParameterBindingStrategy((PageContainer)object,
getParameterStrategy());
+
buildContext.getCoordinationConfigurator().setParameterBindingStrategy((PageContainer)object,
getParameterStrategy());
}
if (object instanceof Page)
{
Page page = (Page)object;
- for (CoordinationParameterBindingMetaData parameterBinding : parameterBindings)
+ for (CoordinationWindowBindingMetaData windowBinding : windowBindings)
{
Map<Window, QName> bindings = new HashMap<Window, QName>();
- populateWindows(bindings, parameterBinding.getWindows(), page);
+ populateWindows(bindings, windowBinding.getWindows(), page);
-
buildContext.getCoordinationConfigurator().setParameterBinding(parameterBinding.getName(),
bindings);
+
buildContext.getCoordinationConfigurator().setWindowBinding(windowBinding.getName(),
bindings);
}
+ for (CoordinationAliasBindingMetaData windowBinding : aliasBindings)
+ {
+ Set<QName> qnames = new HashSet<QName>();
+
+ for (String name : windowBinding.getQnames())
+ {
+ qnames.add(QName.valueOf(name));
+ }
+
+ buildContext.getCoordinationConfigurator().setAliasBinding(page,
windowBinding.getName(), qnames);
+ }
+
for (CoordinationEventWiringMetaData wiring : wirings)
{
Map<Window, QName> sources = new HashMap<Window,QName>();
@@ -175,22 +199,22 @@
}
}
- public ImplicitStrategy getEventStrategy()
+ public CoordinationStrategy getEventStrategy()
{
return eventStrategy;
}
- public void setEventStrategy(ImplicitStrategy eventStrategy)
+ public void setEventStrategy(CoordinationStrategy eventStrategy)
{
this.eventStrategy = eventStrategy;
}
- public ImplicitStrategy getParameterStrategy()
+ public CoordinationStrategy getParameterStrategy()
{
return parameterStrategy;
}
- public void setParameterStrategy(ImplicitStrategy parameterStrategy)
+ public void setParameterStrategy(CoordinationStrategy parameterStrategy)
{
this.parameterStrategy = parameterStrategy;
}
@@ -210,20 +234,33 @@
this.wirings.add(wiring);
}
- public List<CoordinationParameterBindingMetaData> getParameterBindings()
+ public List<CoordinationWindowBindingMetaData> getWindowBindings()
{
- return parameterBindings;
+ return windowBindings;
}
- public void setParameterBindings(List<CoordinationParameterBindingMetaData>
parameterBindings)
+ public void setWindowBindings(List<CoordinationWindowBindingMetaData>
windowBindings)
{
- this.parameterBindings = parameterBindings;
+ this.windowBindings = windowBindings;
}
- public void addParameterBinding(CoordinationParameterBindingMetaData binding)
+ public void addWindowBinding(CoordinationWindowBindingMetaData binding)
{
- this.parameterBindings.add(binding);
+ this.windowBindings.add(binding);
}
+ public List<CoordinationAliasBindingMetaData> getAliasBindings()
+ {
+ return aliasBindings;
+ }
+ public void setAliasBindings(List<CoordinationAliasBindingMetaData>
aliasBindings)
+ {
+ this.aliasBindings = aliasBindings;
+ }
+
+ public void addAliasBinding(CoordinationAliasBindingMetaData aliasBinding)
+ {
+ this.aliasBindings.add(aliasBinding);
+ }
}
Deleted:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/coordination/CoordinationParameterBindingMetaData.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/coordination/CoordinationParameterBindingMetaData.java 2008-07-22
13:40:07 UTC (rev 11543)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/coordination/CoordinationParameterBindingMetaData.java 2008-07-22
16:57:35 UTC (rev 11544)
@@ -1,88 +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.core.model.portal.metadata.coordination;
-
-import org.w3c.dom.Element;
-import org.jboss.portal.common.xml.XMLTools;
-
-import java.util.List;
-import java.util.LinkedList;
-import java.util.Iterator;
-
-/**
- * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
- * @version : 0.1 $
- */
-public class CoordinationParameterBindingMetaData
-{
- private String name;
-
- List<CoordinationWindowMetaData> windows = new
LinkedList<CoordinationWindowMetaData>();
-
- public CoordinationParameterBindingMetaData(String name)
- {
- this.name = name;
- }
-
- public List<CoordinationWindowMetaData> getWindows()
- {
- return windows;
- }
-
- public void setWindows(List<CoordinationWindowMetaData> windows)
- {
- this.windows = windows;
- }
-
- public String getName()
- {
- return name;
- }
-
- public void setName(String name)
- {
- this.name = name;
- }
-
- public void addWindow(CoordinationWindowMetaData window)
- {
- windows.add(window);
- }
-
- public static CoordinationParameterBindingMetaData buildMetaData(Element
bindingElement)
- {
- Element nameElt = XMLTools.getUniqueChild(bindingElement, "name", true);
- CoordinationParameterBindingMetaData paramMetaData = new
CoordinationParameterBindingMetaData(XMLTools.asString(nameElt));
-
- Iterator windowIter = XMLTools.getChildrenIterator(bindingElement,
"window-coordination");
-
- while (windowIter.hasNext())
- {
- Element element = (Element)windowIter.next();
-
- paramMetaData.addWindow(CoordinationWindowMetaData.buildMetaData(element));
- }
-
- return paramMetaData;
- }
-}
Copied:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/coordination/CoordinationWindowBindingMetaData.java
(from rev 11539,
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/coordination/CoordinationParameterBindingMetaData.java)
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/coordination/CoordinationWindowBindingMetaData.java
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/coordination/CoordinationWindowBindingMetaData.java 2008-07-22
16:57:35 UTC (rev 11544)
@@ -0,0 +1,88 @@
+/*
+* 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.core.model.portal.metadata.coordination;
+
+import org.w3c.dom.Element;
+import org.jboss.portal.common.xml.XMLTools;
+
+import java.util.List;
+import java.util.LinkedList;
+import java.util.Iterator;
+
+/**
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
+ * @version : 0.1 $
+ */
+public class CoordinationWindowBindingMetaData
+{
+ private String name;
+
+ List<CoordinationWindowMetaData> windows = new
LinkedList<CoordinationWindowMetaData>();
+
+ public CoordinationWindowBindingMetaData(String name)
+ {
+ this.name = name;
+ }
+
+ public List<CoordinationWindowMetaData> getWindows()
+ {
+ return windows;
+ }
+
+ public void setWindows(List<CoordinationWindowMetaData> windows)
+ {
+ this.windows = windows;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public void addWindow(CoordinationWindowMetaData window)
+ {
+ windows.add(window);
+ }
+
+ public static CoordinationWindowBindingMetaData buildMetaData(Element bindingElement)
+ {
+ Element nameElt = XMLTools.getUniqueChild(bindingElement, "name", true);
+ CoordinationWindowBindingMetaData paramMetaData = new
CoordinationWindowBindingMetaData(XMLTools.asString(nameElt));
+
+ Iterator windowIter = XMLTools.getChildrenIterator(bindingElement,
"window-coordination");
+
+ while (windowIter.hasNext())
+ {
+ Element element = (Element)windowIter.next();
+
+ paramMetaData.addWindow(CoordinationWindowMetaData.buildMetaData(element));
+ }
+
+ return paramMetaData;
+ }
+}
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/test/core/model/portal/coordination/CoordinationServiceTestCase.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/test/core/model/portal/coordination/CoordinationServiceTestCase.java 2008-07-22
13:40:07 UTC (rev 11543)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/test/core/model/portal/coordination/CoordinationServiceTestCase.java 2008-07-22
16:57:35 UTC (rev 11544)
@@ -28,9 +28,11 @@
import org.jboss.portal.core.model.portal.Portal;
import org.jboss.portal.core.model.portal.Page;
import org.jboss.portal.core.model.portal.Window;
-import org.jboss.portal.core.controller.coordination.ImplicitStrategy;
+import org.jboss.portal.core.controller.coordination.CoordinationStrategy;
import org.jboss.portal.core.controller.coordination.EventWiringInfo;
import org.jboss.portal.core.controller.coordination.ParameterBindingInfo;
+import org.jboss.portal.core.controller.coordination.WindowBindingInfo;
+import org.jboss.portal.core.controller.coordination.AliasBindingInfo;
import org.jboss.portal.core.model.content.ContentType;
import org.jboss.portal.core.impl.coordination.CoordinationService;
import org.apache.log4j.Appender;
@@ -44,6 +46,7 @@
import java.util.Map;
import java.util.HashMap;
import java.util.Collection;
+import java.util.HashSet;
/**
* @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
@@ -109,55 +112,55 @@
Page page_1 = portal_1.getPage("Page_1");
- assertNull(cos.getImplicitEventWiringStrategy(page_1));
- assertNull(cos.getImplicitParameterBindingStrategy(page_1));
+ assertNull(cos.getEventWiringStrategy(page_1));
+ assertNull(cos.getParameterBindingStrategy(page_1));
- cos.setImplicitEventWiringStrategy(page_1, ImplicitStrategy.EXCLUSIVE);
+ cos.setEventWiringStrategy(page_1, CoordinationStrategy.IMPLICIT);
- assertEquals(ImplicitStrategy.EXCLUSIVE,
cos.getImplicitEventWiringStrategy(page_1));
- assertNull(cos.getImplicitParameterBindingStrategy(page_1));
+ assertEquals(CoordinationStrategy.IMPLICIT, cos.getEventWiringStrategy(page_1));
+ assertNull(cos.getParameterBindingStrategy(page_1));
- cos.setImplicitParameterBindingStrategy(page_1, ImplicitStrategy.DISABLED);
+ cos.setParameterBindingStrategy(page_1, CoordinationStrategy.EXPLICIT);
- assertEquals(ImplicitStrategy.EXCLUSIVE,
cos.getImplicitEventWiringStrategy(page_1));
- assertEquals(ImplicitStrategy.DISABLED,
cos.getImplicitParameterBindingStrategy(page_1));
+ assertEquals(CoordinationStrategy.IMPLICIT, cos.getEventWiringStrategy(page_1));
+ assertEquals(CoordinationStrategy.EXPLICIT,
cos.getParameterBindingStrategy(page_1));
- cos.setImplicitEventWiringStrategy(page_1, null);
- cos.setImplicitParameterBindingStrategy(page_1, null);
- cos.setImplicitEventWiringStrategy(portal_1,
ImplicitStrategy.RECURSIVE_EXCLUSIVE);
- cos.setImplicitParameterBindingStrategy(portal_1,
ImplicitStrategy.RECURSIVE_FALLBACK);
+ cos.setEventWiringStrategy(page_1, null);
+ cos.setParameterBindingStrategy(page_1, null);
+ cos.setEventWiringStrategy(portal_1, CoordinationStrategy.RECURSIVE_IMPLICIT);
+ cos.setParameterBindingStrategy(portal_1,
CoordinationStrategy.RECURSIVE_FALLBACK);
- assertEquals(null, cos.getImplicitEventWiringStrategy(page_1));
- assertEquals(null, cos.getImplicitParameterBindingStrategy(page_1));
- assertEquals(ImplicitStrategy.RECURSIVE_EXCLUSIVE,
cos.getImplicitEventWiringStrategy(portal_1));
- assertEquals(ImplicitStrategy.RECURSIVE_FALLBACK,
cos.getImplicitParameterBindingStrategy(portal_1));
+ assertEquals(null, cos.getEventWiringStrategy(page_1));
+ assertEquals(null, cos.getParameterBindingStrategy(page_1));
+ assertEquals(CoordinationStrategy.RECURSIVE_IMPLICIT,
cos.getEventWiringStrategy(portal_1));
+ assertEquals(CoordinationStrategy.RECURSIVE_FALLBACK,
cos.getParameterBindingStrategy(portal_1));
// Resolve
- assertEquals(ImplicitStrategy.EXCLUSIVE,
cos.resolveImplicitEventWiringStrategy(page_1));
- assertEquals(ImplicitStrategy.EXCLUSIVE,
cos.resolveImplicitEventWiringStrategy(portal_1));
- assertEquals(ImplicitStrategy.FALLBACK,
cos.resolveImplicitBindingStrategy(page_1));
- assertEquals(ImplicitStrategy.FALLBACK,
cos.resolveImplicitBindingStrategy(portal_1));
+ assertEquals(CoordinationStrategy.IMPLICIT,
cos.resolveEventWiringStrategy(page_1));
+ assertEquals(CoordinationStrategy.IMPLICIT,
cos.resolveEventWiringStrategy(portal_1));
+ assertEquals(CoordinationStrategy.FALLBACK, cos.resolveBindingStrategy(page_1));
+ assertEquals(CoordinationStrategy.FALLBACK, cos.resolveBindingStrategy(portal_1));
// Inheritance and overriding value in the middle of the tree
Page page_1_1 = page_1.getPage("Page_1");
- cos.setImplicitEventWiringStrategy(portal_1,
ImplicitStrategy.RECURSIVE_EXCLUSIVE);
- cos.setImplicitEventWiringStrategy(page_1, ImplicitStrategy.DISABLED);
- cos.setImplicitEventWiringStrategy(page_1_1, null);
+ cos.setEventWiringStrategy(portal_1, CoordinationStrategy.RECURSIVE_IMPLICIT);
+ cos.setEventWiringStrategy(page_1, CoordinationStrategy.EXPLICIT);
+ cos.setEventWiringStrategy(page_1_1, null);
- cos.setImplicitParameterBindingStrategy(portal_1,
ImplicitStrategy.RECURSIVE_FALLBACK);
- cos.setImplicitParameterBindingStrategy(page_1, ImplicitStrategy.EXCLUSIVE);
- cos.setImplicitParameterBindingStrategy(page_1_1, null);
+ cos.setParameterBindingStrategy(portal_1,
CoordinationStrategy.RECURSIVE_FALLBACK);
+ cos.setParameterBindingStrategy(page_1, CoordinationStrategy.IMPLICIT);
+ cos.setParameterBindingStrategy(page_1_1, null);
- assertEquals(ImplicitStrategy.EXCLUSIVE,
cos.resolveImplicitEventWiringStrategy(page_1_1));
- assertEquals(ImplicitStrategy.DISABLED,
cos.resolveImplicitEventWiringStrategy(page_1));
- assertEquals(ImplicitStrategy.EXCLUSIVE,
cos.resolveImplicitEventWiringStrategy(portal_1));
+ assertEquals(CoordinationStrategy.IMPLICIT,
cos.resolveEventWiringStrategy(page_1_1));
+ assertEquals(CoordinationStrategy.EXPLICIT,
cos.resolveEventWiringStrategy(page_1));
+ assertEquals(CoordinationStrategy.IMPLICIT,
cos.resolveEventWiringStrategy(portal_1));
- assertEquals(ImplicitStrategy.FALLBACK,
cos.resolveImplicitBindingStrategy(page_1_1));
- assertEquals(ImplicitStrategy.EXCLUSIVE,
cos.resolveImplicitBindingStrategy(page_1));
- assertEquals(ImplicitStrategy.FALLBACK,
cos.resolveImplicitBindingStrategy(portal_1));
+ assertEquals(CoordinationStrategy.FALLBACK, cos.resolveBindingStrategy(page_1_1));
+ assertEquals(CoordinationStrategy.IMPLICIT, cos.resolveBindingStrategy(page_1));
+ assertEquals(CoordinationStrategy.FALLBACK, cos.resolveBindingStrategy(portal_1));
TransactionAssert.commitTransaction();
@@ -235,7 +238,7 @@
TransactionAssert.commitTransaction();
}
- public void testParameterBinding() throws Exception
+ public void testWindowBinding() throws Exception
{
TransactionAssert.beginTransaction();
@@ -256,9 +259,9 @@
ws.put(w2, new QName("juju", "foo1"));
ws.put(w4, new QName("juju", "foo3"));
- cos.setParameterBinding("binding1", ws);
+ cos.setWindowBinding("binding1", ws);
- Collection<ParameterBindingInfo> bindings = cos.getParameterBindings(page1);
+ Collection<WindowBindingInfo> bindings = cos.getWindowBindings(page1);
assertEquals(1, bindings.size());
@@ -270,9 +273,9 @@
assertTrue(windows.containsKey(w2));
assertTrue(windows.containsKey(w4));
- cos.removeParameterBinding(bindings.iterator().next());
+ cos.removeWindowBinding(bindings.iterator().next());
- bindings = cos.getParameterBindings(w1);
+ bindings = cos.getWindowBindings(w1);
assertEquals(0, bindings.size());
@@ -280,6 +283,101 @@
TransactionAssert.commitTransaction();
}
+ public void testAliasBinding() throws Exception
+ {
+ TransactionAssert.beginTransaction();
+
+ Portal portal1 =
container.getContext("").getPortal("Portal_1");
+ Page page1 = portal1.getPage("Page_1");
+ Page page2 = portal1.getPage("Page_2");
+
+ QName qname1 = new QName("nm1", "local1");
+ QName qname2 = new QName("nm2", "local2");
+ QName qname3 = new QName("nm3", "local3");
+ QName qname4 = new QName("nm4", "local4");
+ QName qname5 = new QName("nm5", "local5");
+ QName qname6 = new QName("nm6", "local6");
+ QName qname7 = new QName("nm7", "local7");
+ QName qname8 = new QName("nm8", "local8");
+ QName qname9 = new QName("nm9", "local9");
+
+ HashSet<QName> qnames1 = new HashSet<QName>();
+ qnames1.add(qname1);
+ qnames1.add(qname2);
+ qnames1.add(qname3);
+
+ HashSet<QName> qnames2 = new HashSet<QName>();
+ qnames2.add(qname4);
+ qnames2.add(qname5);
+ qnames2.add(qname6);
+
+ HashSet<QName> qnames3 = new HashSet<QName>();
+ qnames3.add(qname7);
+ qnames3.add(qname8);
+ qnames3.add(qname9);
+
+ cos.setAliasBinding(page1, "alias1", qnames1);
+ cos.setAliasBinding(page2, "alias2", qnames2);
+ cos.setAliasBinding(page2, "alias3", qnames3);
+
+ Collection<AliasBindingInfo> bindings1 = cos.getAliasBindings(page1);
+
+ assertTrue(bindings1.size() == 1);
+ AliasBindingInfo info = bindings1.iterator().next();
+
+ assertTrue(info.getName().equals("alias1"));
+ assertTrue(info.getPage().getId().equals(page1.getId()));
+ assertTrue(info.getQNames().size() == 3);
+ assertTrue(info.getQNames().contains(qname1));
+ assertTrue(info.getQNames().contains(qname2));
+ assertTrue(info.getQNames().contains(qname3));
+
+ cos.removeAliasBinding(info);
+ assertTrue(cos.getAliasBindings(page1).size() == 0);
+
+ AliasBindingInfo info2 = null;
+ AliasBindingInfo info3 = null;
+
+ Collection<AliasBindingInfo> bindings2 = cos.getAliasBindings(page2);
+
+ assertTrue(bindings2.size() == 2);
+
+ for (AliasBindingInfo aliasBindingInfo : bindings2)
+ {
+ if (aliasBindingInfo.getName().equals("alias2"))
+ {
+ info2 = aliasBindingInfo;
+ }
+ if (aliasBindingInfo.getName().equals("alias3"))
+ {
+ info3 = aliasBindingInfo;
+ }
+
+ }
+
+
+ assertNotNull(info2);
+ assertNotNull(info3);
+
+ assertTrue(info2.getName().equals("alias2"));
+ assertTrue(info2.getPage().getId().equals(page2.getId()));
+ assertTrue(info2.getQNames().size() == 3);
+ assertTrue(info2.getQNames().contains(qname4));
+ assertTrue(info2.getQNames().contains(qname5));
+ assertTrue(info2.getQNames().contains(qname6));
+
+ assertTrue(info3.getName().equals("alias3"));
+ assertTrue(info3.getPage().getId().equals(page2.getId()));
+ assertTrue(info3.getQNames().size() == 3);
+ assertTrue(info3.getQNames().contains(qname7));
+ assertTrue(info3.getQNames().contains(qname8));
+ assertTrue(info3.getQNames().contains(qname9));
+
+
+
+ TransactionAssert.commitTransaction();
+ }
+
public CoordinationService getCos()
{
return cos;
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-sar/dtd/portal-object_2_6.dtd
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-sar/dtd/portal-object_2_6.dtd 2008-07-22
13:40:07 UTC (rev 11543)
+++
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-sar/dtd/portal-object_2_6.dtd 2008-07-22
16:57:35 UTC (rev 11544)
@@ -332,10 +332,10 @@
<!--
Configuration of explicit event and shared render parameter coordination
-->
-<!ELEMENT coordination (implicit-event-strategy?, implicit-parameter-strategy?,
wirings?, bindings?)>
+<!ELEMENT coordination (event-strategy?, parameter-strategy?, wirings?,
bindings?)>
<!--
-Implicit event distribution strategy. Allowed values are:
+Event distribution strategy. Allowed values are:
FALLBACK - Explicit wiring takes precedence and if none exist for a given event it will
be processed with implicit wiring
EXCLUSIVE - Only implicit wiring enabled
@@ -344,19 +344,19 @@
RECURSIVE_EXCLUSIVE - All children nodes in the tree will inherit EXCLUSIVE strategy
RECURSIVE_DISABLED - All children nodes in the tree will inherit DISABLED strategy
-->
-<!ELEMENT implicit-event-strategy (#PCDATA)>
+<!ELEMENT event-strategy (#PCDATA)>
<!--
-Implicit parameter binding strategy. Allowed values are:
+Parameter binding strategy. Allowed values are:
FALLBACK - Explicit wiring takes precedence and if none exist for a given render
parameter it will be processed with implicit wiring
-EXCLUSIVE - Only implicit wiring enabled
-DISABLED, - Implicit wiring disabled
+IMPLICIT - Only implicit wiring enabled
+EXPLICIT, - Implicit wiring disabled
RECURSIVE_FALLBACK - All children nodes in the tree will inherit FALLBACK strategy
-RECURSIVE_EXCLUSIVE - All children nodes in the tree will inherit EXCLUSIVE strategy
-RECURSIVE_DISABLED - All children nodes in the tree will inherit DISABLED strategy
+RECURSIVE_IMPLICIT - All children nodes in the tree will inherit IMPLICIT strategy
+RECURSIVE_EXPLICIT - All children nodes in the tree will inherit EXPLICIT strategy
-->
-<!ELEMENT implicit-parameter-strategy (#PCDATA)>
+<!ELEMENT parameter-strategy (#PCDATA)>
<!--
Event wirings. Can be defined only for a page
@@ -366,7 +366,7 @@
<!--
Shared render parameter bindings. Can be defined only for a page
-->
-<!ELEMENT bindings (parameter-binding*)>
+<!ELEMENT bindings (parameter-binding*, alias-binding*)>
<!--
This element defines explicit event wiring
@@ -388,7 +388,13 @@
-->
<!ELEMENT parameter-binding (name, window-coordination+)>
+
<!--
+Alias binding definition
+-->
+<!ELEMENT alias-binding (name, qname+)>
+
+<!--
This element defines window for coordination. It can be either source or destination
window for event distribution or
participate in parameter binding
-->
Modified:
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/default-object.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/default-object.xml 2008-07-22
13:40:07 UTC (rev 11543)
+++
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/default-object.xml 2008-07-22
16:57:35 UTC (rev 11544)
@@ -34,7 +34,7 @@
<page-name>Coordination Samples</page-name>
<page>
- <page-name>Events DISABLED</page-name>
+ <page-name>Events EXPLICIT</page-name>
<window>
<window-name>ShoppingCatalogPortletWindow1</window-name>
@@ -78,7 +78,7 @@
<coordination>
- <implicit-event-strategy>DISABLED</implicit-event-strategy>
+ <event-strategy>EXPLICIT</event-strategy>
<wirings>
<event-wiring>
<name>wiringA</name>
@@ -167,7 +167,7 @@
<coordination>
- <implicit-event-strategy>FALLBACK</implicit-event-strategy>
+ <event-strategy>FALLBACK</event-strategy>
<wirings>
<event-wiring>
<name>wiringA</name>
@@ -193,7 +193,7 @@
</page>
<page>
- <page-name>Events EXCLUSIVE</page-name>
+ <page-name>Events IMPLICIT</page-name>
<window>
<window-name>ShoppingCatalogPortletWindow1</window-name>
@@ -237,7 +237,7 @@
<coordination>
- <implicit-event-strategy>EXCLUSIVE</implicit-event-strategy>
+ <event-strategy>IMPLICIT</event-strategy>
<wirings>
<event-wiring>
<name>wiringA</name>
@@ -283,7 +283,7 @@
</page>
<page>
- <page-name>Parameters DISABLED</page-name>
+ <page-name>Parameters EXPLICIT</page-name>
<window>
<window-name>PublicParametersPortletWindowA1</window-name>
<instance-ref>CoordinationPublicParametersPortletInstance1</instance-ref>
@@ -313,7 +313,7 @@
<coordination>
-
<implicit-parameter-strategy>DISABLED</implicit-parameter-strategy>
+ <parameter-strategy>EXPLICIT</parameter-strategy>
<bindings>
<parameter-binding>
<name>binding1</name>
@@ -420,7 +420,7 @@
<coordination>
-
<implicit-parameter-strategy>FALLBACK</implicit-parameter-strategy>
+ <parameter-strategy>FALLBACK</parameter-strategy>
<bindings>
<parameter-binding>
<name>binding1</name>
@@ -460,7 +460,7 @@
</coordination>
</page>
<page>
- <page-name>Parameters EXCLUSIVE</page-name>
+ <page-name>Parameters IMPLICIT</page-name>
<window>
<window-name>PublicParametersPortletWindowA1</window-name>
<instance-ref>CoordinationPublicParametersPortletInstance1</instance-ref>
@@ -490,7 +490,7 @@
<coordination>
-
<implicit-parameter-strategy>EXCLUSIVE</implicit-parameter-strategy>
+ <parameter-strategy>IMPLICIT</parameter-strategy>
<bindings>
<parameter-binding>
<name>binding1</name>