Author: bdaw
Date: 2008-07-17 19:23:05 -0400 (Thu, 17 Jul 2008)
New Revision: 11492
Added:
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/
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/jboss-portlet.xml
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/portlet-instances.xml
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/portlet.xml
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/web.xml
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/
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/EventConverter.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/EventWiringInfo.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/IllegalCoordinationException.java
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/ParameterBindingInfo.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination/
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/SimpleEventConverter.java
Removed:
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/EventConverter.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/EventWiringInfo.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/IllegalCoordinationException.java
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/ParameterBindingInfo.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/impl/coordination/SimpleEventConverter.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/portal/coordination/
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/coordination/
Modified:
branches/JBoss_Portal_Branch_2_7/core-samples/build.xml
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/Controller.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/controller/portlet/CoreEventControllerContext.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/deployment/jboss/ObjectDeployment.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/deployment/jboss/ObjectDeploymentFactory.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/BuildContext.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/core/model/portal/navstate/PageNavigationalState.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/META-INF/jboss-service.xml
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-test-jar/org/jboss/portal/test/core/model/portal/coordination/persistent-jboss-beans.xml
Log:
- Move coordination package higher in core module
- A lot of small fixes for explicit coordination stuff
- initial simple coordination samples in core-samples module
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/Controller.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/Controller.java 2008-07-17
23:18:28 UTC (rev 11491)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/Controller.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -36,12 +36,11 @@
import org.jboss.portal.core.model.CustomizationManager;
import org.jboss.portal.core.model.instance.InstanceContainer;
import org.jboss.portal.core.model.portal.PortalObjectContainer;
-import org.jboss.portal.core.model.portal.coordination.CoordinationConfigurator;
-import org.jboss.portal.core.model.portal.coordination.CoordinationManager;
+import org.jboss.portal.core.controller.coordination.CoordinationConfigurator;
+import org.jboss.portal.core.controller.coordination.CoordinationManager;
import org.jboss.portal.core.model.portal.content.ContentRendererRegistry;
import org.jboss.portal.core.model.portal.control.page.PageControlPolicy;
import org.jboss.portal.core.impl.model.content.InternalContentProviderRegistry;
-import org.jboss.portal.core.impl.model.portal.coordination.CoordinationService;
import org.jboss.portal.jems.as.system.AbstractJBossService;
import org.jboss.portal.security.spi.auth.PortalAuthorizationManagerFactory;
import org.jboss.portal.server.RequestController;
Copied:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination
(from rev 11461,
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/coordination)
Deleted:
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/model/portal/coordination/CoordinationConfigurator.java 2008-07-15
23:56:13 UTC (rev 11461)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationConfigurator.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -1,177 +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.coordination;
-
-import org.jboss.portal.core.model.portal.Window;
-import org.jboss.portal.core.model.portal.Page;
-import org.jboss.portal.core.model.portal.PageContainer;
-
-import javax.xml.namespace.QName;
-import java.util.Map;
-import java.util.Collection;
-
-/**
- * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
- * @version : 0.1 $
- */
-public interface CoordinationConfigurator
-{
- // Management
-
- /**
- * Defines a wiring for a given even QName between multiply source and destination
windows
- *
- * @param sources
- * @param targets
- * @param eventName
- * @throws IllegalCoordinationException
- */
- void setEventWiring(Map<Window, QName> sources, Map<Window, QName>
targets, String eventName) throws IllegalCoordinationException;
-
- /**
- * Remove wiring
- *
- * @param eventWiringInfo
- * @throws IllegalCoordinationException
- */
- void removeEventWiring(EventWiringInfo eventWiringInfo) throws
IllegalCoordinationException;
-
- /**
- * Sets implicit wiring strategy for a given page
- *
- * @param pageContainer
- * @param strategy
- * @throws IllegalCoordinationException
- */
- void setImplicitEventWiringStrategy(PageContainer pageContainer, ImplicitStrategy
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;
-
- /**
- * @param page
- * @param eventQName
- * @return all wirings defined for a given qname
- */
- Collection<EventWiringInfo> getEventWirings(Page page, QName eventQName);
-
- /**
- * @param page
- * @return all wirings defined in the scope of a given page
- */
- Collection<EventWiringInfo> getEventWirings(Page page);
-
- /**
- * @param window
- * @return all wirings where given window is a source
- */
- Collection<EventWiringInfo> getEventSourceWirings(Window window);
-
- /**
- * @param window
- * @return all wirings where given window is a destination
- */
- Collection<EventWiringInfo> getEventDestinationWirings(Window window);
-
- /**
- * Defines shared parameter binding for a given collection of windows.
- *
- * @param name
- * @param windows
- * @throws IllegalCoordinationException
- */
- void setParameterBinding(String name, Map<Window, QName> windows) throws
IllegalCoordinationException;
-
- /**
- * Removes given parameter binding
- *
- * @param parameterBinding
- * @throws IllegalCoordinationException
- */
- void removeParameterBinding(ParameterBindingInfo parameterBinding) throws
IllegalCoordinationException;
-
- /**
- * Defines page scoped alias for shared parameter. All parameters with a local part
equal to given name will
- * share request value
- *
- * @param page
- * @param name
- */
- void setParameterAlias(Page page, String name);
-
- /**
- * Get a collection of aliases defined for a given page
- *
- * @param page
- * @return
- */
- Collection<String> getParameterAliases(Page page);
-
- /**
- * Remove alias
- *
- * @param page
- * @param name
- * @throws IllegalCoordinationException
- */
- void removeParameterAlias(Page page, String name) throws
IllegalCoordinationException;
-
- /**
- * Set implicit strategy for a given page container
- *
- * @param pageContainer
- * @param implicitStrategy
- * @throws IllegalCoordinationException
- */
- void setImplicitParameterBindingStrategy(PageContainer pageContainer, ImplicitStrategy
implicitStrategy) 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;
-
-
-
- /**
- * @param page
- * @param parameterQName
- * @return parameter bindings for a given parameter qname
- */
- Collection<ParameterBindingInfo> getParameterBindings(Page page, QName
parameterQName);
-
- /**
- * @param page
- * @return parameter bindings define in the scope of a given page
- */
- Collection<ParameterBindingInfo> getParameterBindings(Page page);
-
- /**
- * @param window
- * @return parameter bindings where given window is involved
- */
- Collection<ParameterBindingInfo> getParameterBindings(Window window);
-}
Copied:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationConfigurator.java
(from rev 11487,
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/coordination/CoordinationConfigurator.java)
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationConfigurator.java
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationConfigurator.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -0,0 +1,152 @@
+/*
+* 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 org.jboss.portal.core.model.portal.Page;
+import org.jboss.portal.core.model.portal.PageContainer;
+
+import javax.xml.namespace.QName;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
+ * @version : 0.1 $
+ */
+public interface CoordinationConfigurator
+{
+ // Management
+
+ /**
+ * Defines a wiring for a given even QName between multiply source and destination
windows
+ *
+ * @param sources
+ * @param targets
+ * @param eventName
+ * @throws IllegalCoordinationException
+ */
+ void setEventWiring(Map<Window, QName> sources, Map<Window, QName>
targets, String eventName) throws IllegalCoordinationException;
+
+ /**
+ * Remove wiring
+ *
+ * @param eventWiringInfo
+ * @throws IllegalCoordinationException
+ */
+ void removeEventWiring(EventWiringInfo eventWiringInfo) throws
IllegalCoordinationException;
+
+ /**
+ * Sets implicit wiring strategy for a given page
+ *
+ * @param pageContainer
+ * @param strategy
+ * @throws IllegalCoordinationException
+ */
+ void setImplicitEventWiringStrategy(PageContainer pageContainer, ImplicitStrategy
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;
+
+ /**
+ * @param page
+ * @param eventQName
+ * @return all wirings defined for a given qname
+ */
+ Collection<EventWiringInfo> getEventWirings(Page page, QName eventQName);
+
+ /**
+ * @param page
+ * @return all wirings defined in the scope of a given page
+ */
+ Collection<EventWiringInfo> getEventWirings(Page page);
+
+ /**
+ * @param window
+ * @return all wirings where given window is a source
+ */
+ Collection<EventWiringInfo> getEventSourceWirings(Window window);
+
+ /**
+ * @param window
+ * @return all wirings where given window is a destination
+ */
+ Collection<EventWiringInfo> getEventDestinationWirings(Window window);
+
+ /**
+ * Defines shared parameter binding for a given collection of windows.
+ *
+ * @param name
+ * @param windows
+ * @throws IllegalCoordinationException
+ */
+ void setParameterBinding(String name, Map<Window, QName> windows) throws
IllegalCoordinationException;
+
+ /**
+ * Removes given parameter binding
+ *
+ * @param parameterBinding
+ * @throws IllegalCoordinationException
+ */
+ void removeParameterBinding(ParameterBindingInfo parameterBinding) throws
IllegalCoordinationException;
+
+
+ /**
+ * Set implicit strategy for a given page container
+ *
+ * @param pageContainer
+ * @param implicitStrategy
+ * @throws IllegalCoordinationException
+ */
+ void setImplicitParameterBindingStrategy(PageContainer pageContainer, ImplicitStrategy
implicitStrategy) 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;
+
+
+
+ /**
+ * @param page
+ * @param parameterQName
+ * @return parameter bindings for a given parameter qname
+ */
+ Collection<ParameterBindingInfo> getParameterBindings(Page page, QName
parameterQName);
+
+ /**
+ * @param page
+ * @return parameter bindings define in the scope of a given page
+ */
+ Collection<ParameterBindingInfo> getParameterBindings(Page page);
+
+ /**
+ * @param window
+ * @return parameter bindings where given window is involved
+ */
+ Collection<ParameterBindingInfo> getParameterBindings(Window window);
+}
Deleted:
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/model/portal/coordination/CoordinationManager.java 2008-07-15
23:56:13 UTC (rev 11461)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationManager.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -1,74 +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.coordination;
-
-import org.jboss.portal.core.model.portal.Page;
-import org.jboss.portal.core.model.portal.PageContainer;
-import org.jboss.portal.core.model.portal.Window;
-import org.jboss.portal.core.controller.portlet.ControllerPortletControllerContext;
-import org.jboss.portal.portlet.controller.event.PortletWindowEvent;
-
-import javax.xml.namespace.QName;
-import java.util.Collection;
-import java.util.Map;
-
-/**
- * Interface defining operations for explicit event wiring management
- *
- * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
- * @version : 0.1 $
- */
-public interface CoordinationManager
-{
-
- // Event Discovery
-
- /**
- * @param event
- * @param context
- * @return all windows that given event should be delivered to with current wirings
and configuration
- */
- Map<Window, PortletWindowEvent> getEventWindows(PortletWindowEvent event,
ControllerPortletControllerContext context) throws IllegalCoordinationException;
-
-
- /**
- * Resolves implicit strategy. If there is no strategy defined for this page container
method will browse
- * parent object to resolve inherited recursive strategies. If no strategy is set this
method will return default one
- *
- * @param page
- * @return
- * @throws IllegalCoordinationException
- */
- ImplicitStrategy resolveImplicitBindingStrategy(PageContainer page);
-
- /**
- * Resolves implicit wiring strategy. If there is no strategy defined for this page
container method will browse
- * parent object to resolve inherited recursive strategies. If no strategy is set this
method will return default one
- *
- * @param page
- * @return
- * @throws IllegalCoordinationException
- */
- ImplicitStrategy resolveImplicitEventWiringStrategy(PageContainer page);
-
-}
Copied:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationManager.java
(from rev 11487,
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/coordination/CoordinationManager.java)
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationManager.java
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationManager.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -0,0 +1,79 @@
+/*
+* 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.PageContainer;
+import org.jboss.portal.core.model.portal.Window;
+import org.jboss.portal.core.controller.portlet.ControllerPortletControllerContext;
+import org.jboss.portal.portlet.controller.event.PortletWindowEvent;
+
+import javax.xml.namespace.QName;
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ * Interface defining operations for explicit event wiring management
+ *
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
+ * @version : 0.1 $
+ */
+public interface CoordinationManager
+{
+
+ // Event Discovery
+
+ /**
+ * @param event
+ * @param context
+ * @return all windows that given event should be delivered to with current wirings
and configuration
+ */
+ Map<Window, PortletWindowEvent> getEventWindows(PortletWindowEvent event,
ControllerPortletControllerContext context) throws IllegalCoordinationException;
+
+
+ /**
+ * Resolves implicit strategy. If there is no strategy defined for this page container
method will browse
+ * parent object to resolve inherited recursive strategies. If no strategy is set this
method will return default one
+ *
+ * @param page
+ * @return
+ * @throws IllegalCoordinationException
+ */
+ ImplicitStrategy resolveImplicitBindingStrategy(PageContainer page);
+
+ /**
+ * Resolves implicit wiring strategy. If there is no strategy defined for this page
container method will browse
+ * parent object to resolve inherited recursive strategies. If no strategy is set this
method will return default one
+ *
+ * @param page
+ * @return
+ * @throws IllegalCoordinationException
+ */
+ ImplicitStrategy resolveImplicitEventWiringStrategy(PageContainer page);
+
+ /**
+ * @param window
+ * @param name
+ * @return all parameter binding names with a given window/qname mapping
+ */
+ Collection<String> getBindingNames(Window window, QName name);
+}
Deleted:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/EventConverter.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/coordination/EventConverter.java 2008-07-15
23:56:13 UTC (rev 11461)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/EventConverter.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -1,44 +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.coordination;
-
-import org.jboss.portal.portlet.controller.event.PortletWindowEvent;
-import org.jboss.portal.portlet.info.EventInfo;
-
-/**
- * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
- * @version : 0.1 $
- */
-public interface EventConverter
-{
-
- /**
- * Converts source event using information about destination event mapping. Return
event will have
- * destination event QName, source event windowId and negotiated payload value.
- *
- * @param sourceEvent
- * @param destEventInfo
- * @return
- */
- PortletWindowEvent resolveEvent(PortletWindowEvent sourceEvent, EventInfo
destEventInfo);
-}
Copied:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/EventConverter.java
(from rev 11487,
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/coordination/EventConverter.java)
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/EventConverter.java
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/EventConverter.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -0,0 +1,45 @@
+/*
+* 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.portlet.controller.event.PortletWindowEvent;
+import org.jboss.portal.portlet.info.EventInfo;
+import org.jboss.portal.core.model.portal.Window;
+
+/**
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
+ * @version : 0.1 $
+ */
+public interface EventConverter
+{
+
+ /**
+ * Converts source event using information about destination event mapping. Return
event will have
+ * destination event QName, source event windowId and negotiated payload value.
+ *
+ * @param sourceEvent
+ * @param destEventInfo
+ * @return
+ */
+ PortletWindowEvent resolveEvent(PortletWindowEvent sourceEvent, EventInfo
destEventInfo, Window window);
+}
Deleted:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/EventWiringInfo.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/coordination/EventWiringInfo.java 2008-07-15
23:56:13 UTC (rev 11461)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/EventWiringInfo.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -1,43 +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.coordination;
-
-import org.jboss.portal.core.model.portal.Window;
-
-import javax.xml.namespace.QName;
-import java.util.Collection;
-import java.util.Map;
-
-/**
- * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
- * @version : 0.1 $
- */
-public interface EventWiringInfo
-{
-
- String getName();
-
- Map<Window, QName> getSources();
-
- Map<Window, QName> getDestinations();
-}
Copied:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/EventWiringInfo.java
(from rev 11487,
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/coordination/EventWiringInfo.java)
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/EventWiringInfo.java
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/EventWiringInfo.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -0,0 +1,42 @@
+/*
+* 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 EventWiringInfo
+{
+
+ String getName();
+
+ Map<Window, QName> getSources();
+
+ Map<Window, QName> getDestinations();
+}
Deleted:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/IllegalCoordinationException.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/coordination/IllegalCoordinationException.java 2008-07-15
23:56:13 UTC (rev 11461)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/IllegalCoordinationException.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -1,35 +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.coordination;
-
-/**
- * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
- * @version : 0.1 $
- */
-public class IllegalCoordinationException extends Exception
-{
- public IllegalCoordinationException(String message)
- {
- super(message);
- }
-}
Copied:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/IllegalCoordinationException.java
(from rev 11487,
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/coordination/IllegalCoordinationException.java)
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/IllegalCoordinationException.java
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/IllegalCoordinationException.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -0,0 +1,35 @@
+/*
+* 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 class IllegalCoordinationException extends Exception
+{
+ public IllegalCoordinationException(String message)
+ {
+ super(message);
+ }
+}
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/model/portal/coordination/ImplicitStrategy.java 2008-07-15
23:56:13 UTC (rev 11461)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/ImplicitStrategy.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -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.model.portal.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;
- }
-
-}
Copied:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/ImplicitStrategy.java
(from rev 11487,
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/coordination/ImplicitStrategy.java)
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/ImplicitStrategy.java
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/ImplicitStrategy.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -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 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;
+ }
+
+}
Deleted:
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/model/portal/coordination/ParameterBindingInfo.java 2008-07-15
23:56:13 UTC (rev 11461)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/ParameterBindingInfo.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -1,41 +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.coordination;
-
-import org.jboss.portal.core.model.portal.Window;
-
-import javax.xml.namespace.QName;
-import java.util.Collection;
-import java.util.Map;
-
-/**
- * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
- * @version : 0.1 $
- */
-public interface ParameterBindingInfo
-{
- String getName();
-
- Map<Window, QName> getWindows();
-
-}
Copied:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/ParameterBindingInfo.java
(from rev 11487,
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/coordination/ParameterBindingInfo.java)
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/ParameterBindingInfo.java
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/ParameterBindingInfo.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -0,0 +1,40 @@
+/*
+* 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 ParameterBindingInfo
+{
+ String getName();
+
+ 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-17
23:18:28 UTC (rev 11491)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/ControllerPageNavigationalState.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -31,16 +31,20 @@
import org.jboss.portal.core.CoreConstants;
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 javax.xml.namespace.QName;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
+import java.util.Collection;
/**
* @author <a href="mailto:julien@jboss-portal.org">Julien
Viet</a>
* @author <a href="mailto:theute@jboss.org">Thomas Heute</a>
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
* @version $Revision: 630 $
*/
public class ControllerPageNavigationalState implements PortletPageNavigationalState
@@ -65,6 +69,9 @@
private Map<QName, String[]> pageUpdates;
/** . */
+ private Map<String, String[]> explicitPageUpdates;
+
+ /** . */
private Map<String, HashMap<QName, String[]>>
windowPublicNavigationalStateUpdate;
public ControllerPageNavigationalState(
@@ -109,7 +116,7 @@
String windowId = window.getId().toString();
wns = navigationalStateContext.getWindowNavigationalState(windowId);
}
-
+
Map<String, String[]> parameters = new HashMap<String,
String[]>();
for (Map.Entry<QName, String[]> value : entry.getValue().entrySet())
@@ -172,12 +179,48 @@
}
}
+
//
- navigationalStateContext.setPageNavigationalState(controllerContext.getPageId(),
new org.jboss.portal.core.model.portal.navstate.PageNavigationalState(parameters));
+ Map<String, String[]> explicitBindings;
+ if (storedPNS != null)
+ {
+ explicitBindings = new HashMap<String,
String[]>(storedPNS.getExplicitBindings());
+ }
+ else
+ {
+ explicitBindings = new HashMap<String, String[]>();
+ }
+
+ if (explicitPageUpdates != null)
+ {
+ for (Map.Entry<String, String[]> explicitUpdate :
explicitPageUpdates.entrySet())
+ {
+ String[] value = explicitUpdate.getValue();
+
+ //
+ if (value.length == 0)
+ {
+ explicitBindings.remove(explicitUpdate.getKey());
+ }
+ else
+ {
+ explicitBindings.put(explicitUpdate.getKey(), value);
+ }
+ }
+
+ //
+
+ }
+ navigationalStateContext.setPageNavigationalState(controllerContext.getPageId(),
new org.jboss.portal.core.model.portal.navstate.PageNavigationalState(parameters,
explicitBindings));
+
+
//
pageUpdates.clear();
}
+
+
+
}
/**
@@ -342,17 +385,52 @@
}
else
{
+
String[] parameterValue =
getPublicNavigationalState(parameterInfo.getName());
- //
- if (parameterValue != null)
+
+ // Explicit binding
+ String[] explicitParameterValue = null;
+
+ // Check all bindings for this window/qname pair
+ Collection<String> bindings =
getCoordinationManager().getBindingNames(getWindow(windowName), parameterInfo.getName());
+
+
+ // If this window/qname is binded several times with different updated
params value will be unpredictable...
+ for (String binding : bindings)
{
- String parameterId = parameterInfo.getId();
+ explicitParameterValue = getPublicExplicitNavigationalState(binding);
+ }
+
+ ImplicitStrategy strategy =
getCoordinationManager().resolveImplicitBindingStrategy(getWindow(windowName).getPage());
+
+ String parameterId = parameterInfo.getId();
+
+ if (strategy.equals(ImplicitStrategy.DISABLED) ||
+ (strategy.equals(ImplicitStrategy.FALLBACK) &&
explicitParameterValue != null))
+ {
+ //
// We clone the value here so we keep the internal state not
potentially changed
- publicNavigationalState.put(parameterId, parameterValue.clone());
-
+ if (explicitParameterValue != null)
+ {
+ publicNavigationalState.put(parameterId,
explicitParameterValue.clone());
+ }
+ else
+ {
+ //If it is DISABLED strategy check if this is not window publishing
the param
+
+ }
}
+ else
+ {
+ //
+ if (parameterValue != null)
+ {
+ // We clone the value here so we keep the internal state not
potentially changed
+ publicNavigationalState.put(parameterId, parameterValue.clone());
+ }
+ }
}
}
@@ -396,6 +474,8 @@
throw new IllegalStateException("The page navigational state is not
modifiable");
}
+ CoordinationManager manager = getCoordinationManager();
+
//
PortletInfo info = controllerContext.getPortletInfo(windowName);
@@ -439,6 +519,19 @@
{
removePublicNavigationalState(name);
}
+
+ // Explicit bindings
+ Collection<String> bindings =
manager.getBindingNames(getWindow(windowName), name);
+
+ if (bindings.size() > 0 && explicitPageUpdates == null)
+ {
+ explicitPageUpdates = new HashMap<String, String[]>();
+ }
+
+ for (String binding : bindings)
+ {
+ explicitPageUpdates.put(binding, value);
+ }
}
}
}
@@ -489,6 +582,35 @@
}
/**
+ *
+ */
+ public String[] getPublicExplicitNavigationalState(String name) throws
IllegalArgumentException
+ {
+ String[] value = null;
+
+ //
+ if (explicitPageUpdates != null)
+ {
+ value = explicitPageUpdates.get(name);
+ }
+
+ //
+ if (value == null)
+ {
+ org.jboss.portal.core.model.portal.navstate.PageNavigationalState storedPNS =
navigationalStateContext.getPageNavigationalState(controllerContext.getPageId());
+
+ //
+ if (storedPNS != null)
+ {
+ value = storedPNS.getExplicitBinding(name);
+ }
+ }
+
+ //
+ return value != null && value.length > 0 ? value : null;
+ }
+
+ /**
*
*/
public void setPublicNavigationalState(QName name, String[] value) throws
IllegalArgumentException, IllegalStateException
@@ -532,4 +654,9 @@
{
return controllerContext.getWindow(windowName);
}
+
+ public CoordinationManager getCoordinationManager()
+ {
+ return
controllerContext.getControllerContext().getController().getCoordinationManager();
+ }
}
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/CoreEventControllerContext.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/CoreEventControllerContext.java 2008-07-17
23:18:28 UTC (rev 11491)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/CoreEventControllerContext.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -29,14 +29,13 @@
import org.jboss.portal.portlet.controller.event.EventPhaseContext;
import org.jboss.portal.portlet.controller.event.PortletWindowEvent;
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
-import org.jboss.portal.portlet.info.PortletInfo;
-import org.jboss.portal.core.impl.model.portal.coordination.CoordinationService;
-import org.jboss.portal.core.model.portal.coordination.CoordinationManager;
+import org.jboss.portal.core.controller.coordination.CoordinationManager;
import org.jboss.portal.core.model.portal.Window;
import org.apache.log4j.Logger;
/**
* @author <a href="mailto:julien@jboss-portal.org">Julien
Viet</a>
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
* @version $Revision: 630 $
*/
public class CoreEventControllerContext implements EventControllerContext
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/deployment/jboss/ObjectDeployment.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/deployment/jboss/ObjectDeployment.java 2008-07-17
23:18:28 UTC (rev 11491)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/deployment/jboss/ObjectDeployment.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -34,7 +34,7 @@
import org.jboss.portal.core.model.portal.PortalObjectContainer;
import org.jboss.portal.core.model.portal.PortalObjectId;
import org.jboss.portal.core.model.portal.PortalObjectPath;
-import org.jboss.portal.core.model.portal.coordination.CoordinationConfigurator;
+import org.jboss.portal.core.controller.coordination.CoordinationConfigurator;
import org.jboss.portal.core.model.portal.metadata.BuildContext;
import org.jboss.portal.core.model.portal.metadata.PortalObjectMetaData;
import org.jboss.portal.server.deployment.PortalWebApp;
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/deployment/jboss/ObjectDeploymentFactory.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/deployment/jboss/ObjectDeploymentFactory.java 2008-07-17
23:18:28 UTC (rev 11491)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/deployment/jboss/ObjectDeploymentFactory.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -26,7 +26,7 @@
import org.jboss.portal.common.transaction.TransactionManagerProvider;
import org.jboss.portal.core.model.content.spi.ContentProviderRegistry;
import org.jboss.portal.core.model.portal.PortalObjectContainer;
-import org.jboss.portal.core.model.portal.coordination.CoordinationConfigurator;
+import org.jboss.portal.core.controller.coordination.CoordinationConfigurator;
import org.jboss.portal.server.deployment.PortalWebApp;
import org.jboss.portal.server.deployment.jboss.AbstractDeploymentFactory;
import org.jboss.portal.server.deployment.jboss.Deployment;
Copied:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination
(from rev 11461,
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/portal/coordination)
Deleted:
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/model/portal/coordination/CoordinationService.java 2008-07-15
23:56:13 UTC (rev 11461)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination/CoordinationService.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -1,1010 +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.impl.model.portal.coordination;
-
-import org.jboss.portal.core.model.portal.coordination.CoordinationManager;
-import org.jboss.portal.core.model.portal.coordination.IllegalCoordinationException;
-import org.jboss.portal.core.model.portal.coordination.EventWiringInfo;
-import org.jboss.portal.core.model.portal.coordination.ParameterBindingInfo;
-import org.jboss.portal.core.model.portal.coordination.ImplicitStrategy;
-import org.jboss.portal.core.model.portal.coordination.CoordinationConfigurator;
-import org.jboss.portal.core.model.portal.coordination.EventConverter;
-import org.jboss.portal.core.model.portal.Window;
-import org.jboss.portal.core.model.portal.Page;
-import org.jboss.portal.core.model.portal.PageContainer;
-import org.jboss.portal.core.model.portal.PortalObjectContainer;
-import org.jboss.portal.core.model.portal.Portal;
-import org.jboss.portal.core.model.portal.PortalObject;
-import org.jboss.portal.core.controller.portlet.ControllerPortletControllerContext;
-import org.jboss.portal.portlet.controller.event.PortletWindowEvent;
-import org.jboss.portal.portlet.info.PortletInfo;
-import org.jboss.portal.portlet.info.EventInfo;
-import org.jboss.portal.jems.as.system.AbstractJBossService;
-
-import javax.xml.namespace.QName;
-import java.util.Collection;
-import java.util.Map;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.HashMap;
-import java.util.Collections;
-
-/**
- * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
- * @version : 0.1 $
- */
-public class CoordinationService extends AbstractJBossService
- implements CoordinationManager, CoordinationConfigurator
-{
- public static final String SOURCE = "source";
-
- public static final String DESTINATION = "destination";
-
- public static final String BINDING = "binding";
-
- public static final String ALIAS = "alias";
-
- public static final String PREFIX =
"org.jboss.portal.core.model.portal.coordination";
-
- public static final String PREFIX_EVENT = PREFIX + ".event";
-
- public static final String PREFIX_PARAMETER = PREFIX + ".binding";
-
- public static final String PREFIX_EVENT_NAME = PREFIX_EVENT + ".name";
-
- public static final String PREFIX_EVENT_WIRING = PREFIX_EVENT + ".wiring";
-
- public static final String PREFIX_PARAMETER_NAME = PREFIX_PARAMETER +
".name";
-
- public static final String PREFIX_PARAMETER_BINDING = PREFIX_PARAMETER +
".binding";
-
- public static final String PREFIX_PARAMETER_ALIAS = PREFIX_PARAMETER +
".alias";
-
- public static final String PREFIX_EVENT_IMPLICIT_STRATEGY = PREFIX_EVENT +
".implicit_strategy";
-
- public static final String PREFIX_PARAMETER_IMPLICIT_STRATEGY = PREFIX_PARAMETER +
".implicit_strategy";
-
- public static final String STRATEGY_FALLBACK = ImplicitStrategy.FALLBACK.name();
-
- public static final String STRATEGY_EXCLUSIVE = ImplicitStrategy.EXCLUSIVE.name();
-
- public static final String STRATEGY_DISABLED = ImplicitStrategy.DISABLED.name();
-
- public static final String STRATEGY_RECURSIVE_DISABLED =
ImplicitStrategy.RECURSIVE_DISABLED.name();
-
- public static final String STRATEGY_RECURSIVE_EXCLUSIVE =
ImplicitStrategy.RECURSIVE_EXCLUSIVE.name();
-
- public static final String STRATEGY_RECURSIVE_FALLBACK =
ImplicitStrategy.RECURSIVE_FALLBACK.name();
-
- public static final ImplicitStrategy DEFAULT_STRATEGY = ImplicitStrategy.FALLBACK;
-
-
- protected EventConverter eventConverter = new SimpleEventConverter();
-
- protected PortalObjectContainer portalObjectContainer;
-
- protected void startService() throws Exception
- {
- super.startService();
-
- if (portalObjectContainer == null)
- {
- throw new IllegalStateException("Cannot instantiate CoordinationManager: no
PortalObjectContainer present");
- }
- }
-
-
- public Map<Window, PortletWindowEvent> getEventWindows(PortletWindowEvent event,
ControllerPortletControllerContext context) throws IllegalCoordinationException
- {
-
- if (event == null)
- {
- throw new IllegalArgumentException("event is null");
- }
-
- if (context == null)
- {
- throw new IllegalArgumentException("context is null");
- }
-
- // Obtain page for which we scope this event
-
- Page page = context.getWindow(event.getWindowId()).getPage();
-
- ImplicitStrategy strategy = resolveImplicitEventWiringStrategy(page);
-
- Map<Window, PortletWindowEvent> windows = new HashMap<Window,
PortletWindowEvent>();
-
- // Only implicit wirings
-
- if (strategy.equals(ImplicitStrategy.EXCLUSIVE))
- {
- windows = getEventWindowsImplicit(page, event, context);
- }
-
- // Only explicit wirings
-
- else if(strategy.equals(ImplicitStrategy.DISABLED))
- {
- windows = getEventWindowsExplicit(page, event, context);
- }
-
- // If no explicit wirings for this event fallback to implicit
-
- else if(strategy.equals(ImplicitStrategy.FALLBACK))
- {
- windows = getEventWindowsExplicit(page, event, context);
-
- if (windows.size() == 0)
- {
- windows = getEventWindowsImplicit(page, event, context);
- }
- }
-
- return windows;
- }
-
- private Map<Window, PortletWindowEvent> getEventWindowsExplicit(Page page,
PortletWindowEvent event, ControllerPortletControllerContext context)
- {
- Map<Window, PortletWindowEvent> windows = new HashMap<Window,
PortletWindowEvent>();
-
- Collection<EventWiringInfo> infos = getEventWirings(page);
-
- for (EventWiringInfo info : infos)
- {
- if (info.getSources().containsValue(event.getName()))
- {
- for (Window window : info.getDestinations().keySet())
- {
- PortletInfo portletInfo = context.getPortletInfo(window.getName());
- QName destEventName = info.getDestinations().get(window);
- EventInfo destEventInfo =
portletInfo.getEventing().getConsumedEvents().get(destEventName);
- if (destEventInfo != null)
- {
- windows.put(window, getEventConverter().resolveEvent(event,
destEventInfo));
- }
-
- }
- }
- }
-
- return windows;
- }
-
- private Map<Window, PortletWindowEvent> getEventWindowsImplicit(Page page,
PortletWindowEvent event, ControllerPortletControllerContext context)
- {
- Map<Window, PortletWindowEvent> windows = new HashMap<Window,
PortletWindowEvent>();
-
- for (String windowName : context.getWindowNames())
- {
- PortletInfo info = context.getPortletInfo(windowName);
-
- //
- if (info.getEventing().getConsumedEvents().containsKey(event.getName()))
- {
- PortletWindowEvent distributedEvent = new
PortletWindowEvent(event.getName(), event.getPayload(), windowName);
- windows.put(context.getWindow(windowName), distributedEvent);
- }
- }
-
- return windows;
- }
-
- public void setEventWiring(Map<Window, QName> sources, Map<Window, QName>
destinations, String eventName) throws IllegalCoordinationException
- {
-
- if (sources == null)
- {
- throw new IllegalArgumentException("sources are null");
- }
-
- if (destinations == null)
- {
- throw new IllegalArgumentException("destinations are null");
- }
-
- if (eventName == null)
- {
- throw new IllegalArgumentException("eventName is null");
- }
-
- if (sources.isEmpty())
- {
- throw new IllegalArgumentException("empty sources map");
- }
-
- if (destinations.isEmpty())
- {
- throw new IllegalArgumentException("empty destinations map");
- }
-
- // Obtain parent page and check that all windows are in one branch...
-
- Page parentPage = null;
-
- Set<Window> sw = sources.keySet();
- Set<Window> dw = destinations.keySet();
-
- Set<Window> all = new HashSet<Window>();
- all.addAll(sw);
- all.addAll(dw);
-
-
- for (Window window : all)
- {
- if (parentPage == null)
- {
- parentPage = window.getPage();
- }
-
- if (!window.getPage().equals(parentPage))
- {
- throw new IllegalCoordinationException("Parent page is not the same for
all windows");
- }
- }
-
- // Check if the same window is not both in sources and destinations map
-
- for (Window window : sw)
- {
- if (dw.contains(window))
- {
- throw new IllegalCoordinationException("The same window cannot be source
and destination of the same explicit wiring");
- }
- }
-
- // Set the sources
-
- String prop_name = PREFIX_EVENT_NAME + "." + eventName;
- String prop_wiring = PREFIX_EVENT_WIRING + "." + eventName;
-
- for (Window window : sw)
- {
- window.setDeclaredProperty(prop_name, SOURCE);
- window.setDeclaredProperty(prop_wiring, sources.get(window).toString());
- }
-
- // Set the sources
-
- for (Window window : dw)
- {
- window.setDeclaredProperty(prop_name, DESTINATION);
- window.setDeclaredProperty(prop_wiring, destinations.get(window).toString());
- }
-
- }
-
- public void removeEventWiring(EventWiringInfo info) throws
IllegalCoordinationException
- {
- if (info == null)
- {
- throw new IllegalArgumentException("EventWiringInfo is null");
- }
-
- // Remove all entries
-
- String prop_name = PREFIX_EVENT_NAME + "." + info.getName();
- String prop_wiring = PREFIX_EVENT_WIRING + "." + info.getName();
-
- Set<Window> all = new HashSet<Window>();
- all.addAll(info.getSources().keySet());
- all.addAll(info.getDestinations().keySet());
-
- for (Window window : all)
- {
- window.setDeclaredProperty(prop_name, null);
- window.setDeclaredProperty(prop_wiring, null);
- }
- }
-
- public void setImplicitEventWiringStrategy(PageContainer pageContainer,
ImplicitStrategy strategy) throws IllegalCoordinationException
- {
- if (pageContainer == null)
- {
- throw new IllegalArgumentException("pageContainer is null");
- }
-
-
- setStrategy(pageContainer, strategy, PREFIX_EVENT_IMPLICIT_STRATEGY);
-
- }
-
- public ImplicitStrategy getImplicitEventWiringStrategy(PageContainer page) throws
IllegalCoordinationException
- {
- if (page == null)
- {
- throw new IllegalArgumentException("page is null");
- }
-
- return decodeStrategy(page, PREFIX_EVENT_IMPLICIT_STRATEGY);
-
- }
-
- public ImplicitStrategy resolveImplicitEventWiringStrategy(PageContainer page)
- {
-
- if (page == null)
- {
- throw new IllegalArgumentException("page is null");
- }
-
- return resolveStrategy(page, PREFIX_EVENT_IMPLICIT_STRATEGY);
- }
-
- public Collection<EventWiringInfo> getEventWirings(Page page, QName eventQName)
- {
-
- if (page == null)
- {
- throw new IllegalArgumentException("page is null");
- }
-
- if (eventQName == null)
- {
- throw new IllegalArgumentException("eventQName is null");
- }
-
- Collection<EventWiringInfo> pageEvents = getEventWirings(page);
-
- Set<EventWiringInfo> events = new HashSet<EventWiringInfo>();
-
- for (EventWiringInfo event : pageEvents)
- {
- if (event.getSources().containsValue(eventQName) ||
event.getDestinations().containsValue(eventQName))
- {
- pageEvents.add(event);
- }
- }
-
- return events;
- }
-
- public Collection<EventWiringInfo> getEventWirings(Page page)
- {
- if (page == null)
- {
- throw new IllegalArgumentException("page is null");
- }
-
- // Examine window properties and create page events
-
- Collection<Window> windows = getWindows(page);
-
- Map<String, EventInfoPOJO> events = new HashMap<String,
EventInfoPOJO>();
-
-
-
- for (Window window : windows)
- {
- Set<String> propNames = window.getProperties().keySet();
-
- for (String propName : propNames)
- {
- if(propName.startsWith(PREFIX_EVENT_NAME))
- {
- String en = propName.substring(PREFIX_EVENT_NAME.length() + 1);
- EventInfoPOJO info = null;
-
- if (!events.keySet().contains(en))
- {
- info = new EventInfoPOJO(en);
- events.put(en, info);
- }
- else
- {
- info = events.get(en);
- }
-
- String prop_wiring = PREFIX_EVENT_WIRING + "." + en;
-
- String name = window.getProperty(prop_wiring);
- String role = window.getProperty(propName);
-
-
- //TODO: if the imformation from properties is not consistent should we
throw exception?
-
- if (name != null)
- {
- QName qname = decodeQName(name);
-
-
- if (qname != null && role != null &&
role.equalsIgnoreCase("source"))
- {
- info.getSources().put(window, qname);
- }
- else if (qname != null && role != null &&
role.equalsIgnoreCase("destination"))
- {
- info.getDestinations().put(window, qname);
- }
- }
-
- break;
- }
- }
- }
-
- // Make immutable copy
- Collection<EventWiringInfo> immutableEvents = new
HashSet<EventWiringInfo>();
-
- for (EventInfoPOJO info : events.values())
- {
- immutableEvents.add(info.getImmutableWiringInfo());
- }
-
- return immutableEvents;
- }
-
- public Collection<EventWiringInfo> getEventSourceWirings(Window window)
- {
-
- Collection<EventWiringInfo> pageEvents = getEventWirings(window.getPage());
-
- Set<EventWiringInfo> events = new HashSet<EventWiringInfo>();
-
- for (EventWiringInfo pageEvent : pageEvents)
- {
- if (pageEvent.getSources().keySet().contains(window))
- {
- events.add(pageEvent);
- }
- }
-
- return events;
- }
-
- public Collection<EventWiringInfo> getEventDestinationWirings(Window window)
- {
- Collection<EventWiringInfo> pageEvents = getEventWirings(window.getPage());
-
- Set<EventWiringInfo> events = new HashSet<EventWiringInfo>();
-
- for (EventWiringInfo pageEvent : pageEvents)
- {
- if (pageEvent.getDestinations().keySet().contains(window))
- {
- events.add(pageEvent);
- }
- }
-
- return events;
- }
-
- public void setParameterBinding(String name, Map<Window, QName> windows) throws
IllegalCoordinationException
- {
- if (windows == null)
- {
- throw new IllegalArgumentException("windows are null");
- }
-
- if (name == null)
- {
- throw new IllegalArgumentException("name is null");
- }
-
- if (windows.isEmpty())
- {
- throw new IllegalArgumentException("empty windows map");
- }
-
-
- // Obtain parent page and check that all windows are in one branch...
-
- Page parentPage = null;
-
- Set<Window> dw = windows.keySet();
-
-
- for (Window window : dw)
- {
- if (parentPage == null)
- {
- parentPage = window.getPage();
- }
-
- if (!window.getPage().equals(parentPage))
- {
- throw new IllegalCoordinationException("Parent page is not the same for
all windows");
- }
- }
-
-
- // Set window properties
-
- String prop_wiring = PREFIX_PARAMETER_BINDING + "." + name;
-
- for (Window window : dw)
- {
- window.setDeclaredProperty(prop_wiring, windows.get(window).toString());
- }
-
- }
-
- public void removeParameterBinding(ParameterBindingInfo info) throws
IllegalCoordinationException
- {
- if (info == null)
- {
- throw new IllegalArgumentException("ParameterBindingInfo is null");
- }
-
- // Remove all entries
-
- String prop_wiring = PREFIX_PARAMETER_BINDING + "." + info.getName();
-
- for (Window window : info.getWindows().keySet())
- {
- window.setDeclaredProperty(prop_wiring, null);
- }
- }
-
- public void setParameterAlias(Page page, String name)
- {
- if (page == null)
- {
- throw new IllegalArgumentException("page is null");
- }
-
- if (name == null)
- {
- throw new IllegalArgumentException("name is null");
- }
-
- page.setDeclaredProperty(PREFIX_PARAMETER_ALIAS + "." + name, ALIAS);
- }
-
- public Collection<String> getParameterAliases(Page page)
- {
- if (page == null)
- {
- throw new IllegalArgumentException("page is null");
- }
-
- Collection<String> aliases = new HashSet<String>();
-
- for (String propName : page.getProperties().keySet())
- {
- if (propName.startsWith(PREFIX_PARAMETER_ALIAS))
- {
- String value = page.getProperty(propName);
- if (value.equalsIgnoreCase(ALIAS))
- {
- String aliasName = propName.substring(PREFIX_PARAMETER_ALIAS.length() +
1);
- aliases.add(aliasName);
- }
- }
- }
-
- return aliases;
-
- }
-
- public void removeParameterAlias(Page page, String name) throws
IllegalCoordinationException
- {
-
- if (page == null)
- {
- throw new IllegalArgumentException("page is null");
- }
-
- if (name == null)
- {
- throw new IllegalArgumentException("name is null");
- }
-
- page.setDeclaredProperty(PREFIX_PARAMETER_ALIAS + "." + name, null);
-
- }
-
- public void setImplicitParameterBindingStrategy(PageContainer pageContainer,
ImplicitStrategy strategy) throws IllegalCoordinationException
- {
- if (pageContainer == null)
- {
- throw new IllegalArgumentException("pageContainer is null");
- }
-
-
- setStrategy(pageContainer, strategy, PREFIX_PARAMETER_IMPLICIT_STRATEGY);
- }
-
- public ImplicitStrategy getImplicitParameterBindingStrategy(PageContainer
pageContainer) throws IllegalCoordinationException
- {
-
- if (pageContainer == null)
- {
- throw new IllegalArgumentException("page is null");
- }
-
- return decodeStrategy(pageContainer, PREFIX_PARAMETER_IMPLICIT_STRATEGY);
-
- }
-
- public ImplicitStrategy resolveImplicitBindingStrategy(PageContainer page)
- {
- if (page == null)
- {
- throw new IllegalArgumentException("page is null");
- }
-
- return resolveStrategy(page, PREFIX_PARAMETER_IMPLICIT_STRATEGY);
- }
-
- public Collection<ParameterBindingInfo> getParameterBindings(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<ParameterBindingInfo> infos = new
HashSet<ParameterBindingInfo>();
-
- for (ParameterBindingInfo pageParam : pageParams)
- {
- if (pageParam.getWindows().containsValue(parameterQName))
- {
- infos.add(pageParam);
- }
- }
-
- return infos;
- }
-
- public Collection<ParameterBindingInfo> getParameterBindings(Page page)
- {
- if (page == null)
- {
- throw new IllegalArgumentException("page is null");
- }
-
- // Examine window properties and create page parameters
-
- Collection<Window> windows = getWindows(page);
-
- Map<String, ParameterInfoPOJO> params = new HashMap<String,
ParameterInfoPOJO>();
-
-
-
- for (Window window : windows)
- {
- Set<String> propNames = window.getProperties().keySet();
-
- for (String propName : propNames)
- {
- if(propName.startsWith(PREFIX_PARAMETER_BINDING))
- {
- String pn = propName.substring(PREFIX_PARAMETER_BINDING.length() + 1);
- ParameterInfoPOJO info = null;
-
- if (!params.keySet().contains(pn))
- {
- info = new ParameterInfoPOJO(pn);
- params.put(pn, info);
- }
- else
- {
- info = params.get(pn);
- }
-
- String binding = window.getProperty(propName);
-
-
- //TODO: if the imformation from properties is not consistent should we
throw exception?
-
- if (binding != null)
- {
- QName qname = decodeQName(binding);
-
-
- if (qname != null)
- {
- info.getWindows().put(window, qname);
- }
-
- }
-
- break;
- }
- }
- }
-
- // Make immutable copy
- Collection<ParameterBindingInfo> immutableParams = new
HashSet<ParameterBindingInfo>();
-
- for (ParameterInfoPOJO info : params.values())
- {
- immutableParams.add(info.getImmutableInfo());
- }
-
- return immutableParams;
- }
-
- public Collection<ParameterBindingInfo> getParameterBindings(Window window)
- {
- Collection<ParameterBindingInfo> pageParams =
getParameterBindings(window.getPage());
-
- Collection<ParameterBindingInfo> infos = new
HashSet<ParameterBindingInfo>();
-
- for (ParameterBindingInfo pageParam : pageParams)
- {
- if (pageParam.getWindows().keySet().contains(window))
- {
- infos.add(pageParam);
- }
- }
-
- return infos;
- }
-
- // SETTERS & GETTERS
-
- public PortalObjectContainer getPortalObjectContainer()
- {
- return portalObjectContainer;
- }
-
- public void setPortalObjectContainer(PortalObjectContainer portalObjectContainer)
- {
- this.portalObjectContainer = portalObjectContainer;
- }
-
- public EventConverter getEventConverter()
- {
- return eventConverter;
- }
-
- public void setEventConverter(EventConverter eventConverter)
- {
- this.eventConverter = eventConverter;
- }
-
- // HELPER METHODS
-
- private void setStrategy(PageContainer pageContainer, ImplicitStrategy strategy,
String prefix)
- {
- if (strategy == null)
- {
- pageContainer.setDeclaredProperty(prefix, null);
- }
- else if (strategy.equals(ImplicitStrategy.DISABLED))
- {
- pageContainer.setDeclaredProperty(prefix, STRATEGY_DISABLED);
- }
- else if (strategy.equals(ImplicitStrategy.EXCLUSIVE))
- {
- pageContainer.setDeclaredProperty(prefix, STRATEGY_EXCLUSIVE);
- }
- else if (strategy.equals(ImplicitStrategy.FALLBACK))
- {
- pageContainer.setDeclaredProperty(prefix,STRATEGY_FALLBACK);
- }
- else if (strategy.equals(ImplicitStrategy.RECURSIVE_DISABLED))
- {
- pageContainer.setDeclaredProperty(prefix,STRATEGY_RECURSIVE_DISABLED);
- }
- else if (strategy.equals(ImplicitStrategy.RECURSIVE_EXCLUSIVE))
- {
- pageContainer.setDeclaredProperty(prefix,STRATEGY_RECURSIVE_EXCLUSIVE);
- }
- else if (strategy.equals(ImplicitStrategy.RECURSIVE_FALLBACK))
- {
- pageContainer.setDeclaredProperty(prefix,STRATEGY_RECURSIVE_FALLBACK);
- }
- }
-
- private ImplicitStrategy decodeStrategy(PageContainer pageContainer, String prefix)
- {
- String value = pageContainer.getDeclaredProperty(prefix);
-
- return ImplicitStrategy.decodeStrategy(value);
- }
-
-
-
- private ImplicitStrategy resolveStrategy(PageContainer pageContainer, String prefix)
- {
- String value = pageContainer.getDeclaredProperty(prefix);
-
- ImplicitStrategy strategy = null;
-
-
- // Try to obtain recursive strategy from parents
-
- if (value == null)
- {
- strategy = resolveRecursiveStrategy(pageContainer, prefix);
- }
- else
- {
- strategy = ImplicitStrategy.decodeStrategy(value);
- }
-
- if (strategy != null)
- {
- if (strategy.equals(ImplicitStrategy.RECURSIVE_DISABLED))
- {
- return ImplicitStrategy.DISABLED;
- }
- else if (strategy.equals(ImplicitStrategy.RECURSIVE_EXCLUSIVE))
- {
- return ImplicitStrategy.EXCLUSIVE;
- }
- else if (strategy.equals(ImplicitStrategy.RECURSIVE_FALLBACK))
- {
- return ImplicitStrategy.FALLBACK;
- }
-
- return strategy;
- }
- else
- {
- return DEFAULT_STRATEGY;
- }
-
- }
-
- // Search for the RECURSIVE_ type of strategy
- private ImplicitStrategy resolveRecursiveStrategy(PortalObject po, String prefix)
- {
- String value = po.getDeclaredProperty(prefix);
- ImplicitStrategy strategy = null;
-
- if (value != null)
- {
- strategy = ImplicitStrategy.decodeStrategy(value);
- }
-
- if (strategy != null &&
- (strategy.equals(ImplicitStrategy.RECURSIVE_DISABLED) ||
- strategy.equals(ImplicitStrategy.RECURSIVE_EXCLUSIVE) ||
- strategy.equals(ImplicitStrategy.RECURSIVE_FALLBACK)))
- {
- return strategy;
- }
- else if (!(po instanceof Portal))
- {
- return resolveRecursiveStrategy(po.getParent(), prefix);
- }
-
- return null;
- }
-
-
- Collection<Window> getWindows(Page page)
- {
- Set<Window> windows = new HashSet<Window>();
- for (PortalObject portalObject : page.getChildren())
- {
-
- if (portalObject instanceof Window)
- {
- windows.add((Window)portalObject);
- }
- }
- return windows;
- }
-
- private QName decodeQName(String fullString)
- {
- if (fullString.startsWith("{"))
- {
- String[] parts = fullString.split("}");
-
- if (parts.length == 2)
- {
- return new QName(parts[0].substring(1), parts[1]);
- }
- }
- else
- {
- return new QName(fullString);
- }
-
- return null;
-
- }
-
-
- private class EventInfoPOJO implements EventWiringInfo
- {
- private final String name;
- private final Map<Window,QName> sources;
- private final Map<Window,QName> destinations;
-
- private EventInfoPOJO(String name, Map<Window, QName> sources, Map<Window,
QName> destinations)
- {
- this.name = name;
- this.sources = sources;
- this.destinations = destinations;
- }
-
- private EventInfoPOJO(String name)
- {
- this.name = name;
- this.sources = new HashMap<Window,QName>();
- this.destinations = new HashMap<Window,QName>();
- }
-
- public String getName()
- {
- return name;
- }
-
- public Map<Window, QName> getSources()
- {
- return sources;
- }
-
- public Map<Window, QName> getDestinations()
- {
- return destinations;
- }
-
- EventWiringInfo getImmutableWiringInfo()
- {
- return new EventInfoPOJO(name, Collections.unmodifiableMap(sources),
Collections.unmodifiableMap(destinations));
- }
-
- }
-
- private class ParameterInfoPOJO implements ParameterBindingInfo
- {
-
- private final String name;
- private final Map<Window, QName> windows;
-
- private ParameterInfoPOJO(String name, Map<Window, QName> windows)
- {
- this.name = name;
- this.windows = windows;
- }
-
- private ParameterInfoPOJO(String name)
- {
- this.name = name;
- this.windows = new HashMap<Window,QName>();
- }
-
- public String getName()
- {
- return name;
- }
-
- public Map<Window, QName> getWindows()
- {
- return windows;
- }
-
- ParameterBindingInfo getImmutableInfo()
- {
- return new ParameterInfoPOJO(name, Collections.unmodifiableMap(windows));
- }
-
- }
-
-}
Copied:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination/CoordinationService.java
(from rev 11487,
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/portal/coordination/CoordinationService.java)
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination/CoordinationService.java
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination/CoordinationService.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -0,0 +1,975 @@
+/*
+* 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.impl.coordination;
+
+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.CoordinationConfigurator;
+import org.jboss.portal.core.controller.coordination.EventConverter;
+import org.jboss.portal.core.model.portal.Window;
+import org.jboss.portal.core.model.portal.Page;
+import org.jboss.portal.core.model.portal.PageContainer;
+import org.jboss.portal.core.model.portal.PortalObjectContainer;
+import org.jboss.portal.core.model.portal.Portal;
+import org.jboss.portal.core.model.portal.PortalObject;
+import org.jboss.portal.core.controller.portlet.ControllerPortletControllerContext;
+import org.jboss.portal.portlet.controller.event.PortletWindowEvent;
+import org.jboss.portal.portlet.info.PortletInfo;
+import org.jboss.portal.portlet.info.EventInfo;
+import org.jboss.portal.jems.as.system.AbstractJBossService;
+
+import javax.xml.namespace.QName;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.HashMap;
+import java.util.Collections;
+
+/**
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
+ * @version : 0.1 $
+ */
+public class CoordinationService extends AbstractJBossService
+ implements CoordinationManager, CoordinationConfigurator
+{
+ public static final String SOURCE = "source";
+
+ public static final String DESTINATION = "destination";
+
+ public static final String BINDING = "binding";
+
+ public static final String PREFIX =
"org.jboss.portal.core.controller.coordination";
+
+ public static final String PREFIX_EVENT = PREFIX + ".event";
+
+ public static final String PREFIX_PARAMETER = PREFIX + ".binding";
+
+ public static final String PREFIX_EVENT_NAME = PREFIX_EVENT + ".name";
+
+ public static final String PREFIX_EVENT_WIRING = PREFIX_EVENT + ".wiring";
+
+ public static final String PREFIX_PARAMETER_NAME = PREFIX_PARAMETER +
".name";
+
+ 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_IMPLICIT_STRATEGY = PREFIX_PARAMETER +
".implicit_strategy";
+
+ public static final String STRATEGY_FALLBACK = ImplicitStrategy.FALLBACK.name();
+
+ public static final String STRATEGY_EXCLUSIVE = ImplicitStrategy.EXCLUSIVE.name();
+
+ public static final String STRATEGY_DISABLED = ImplicitStrategy.DISABLED.name();
+
+ public static final String STRATEGY_RECURSIVE_DISABLED =
ImplicitStrategy.RECURSIVE_DISABLED.name();
+
+ public static final String STRATEGY_RECURSIVE_EXCLUSIVE =
ImplicitStrategy.RECURSIVE_EXCLUSIVE.name();
+
+ public static final String STRATEGY_RECURSIVE_FALLBACK =
ImplicitStrategy.RECURSIVE_FALLBACK.name();
+
+ public static final ImplicitStrategy DEFAULT_STRATEGY = ImplicitStrategy.FALLBACK;
+
+
+ protected EventConverter eventConverter = new SimpleEventConverter();
+
+ protected PortalObjectContainer portalObjectContainer;
+
+ protected void startService() throws Exception
+ {
+ super.startService();
+
+ if (portalObjectContainer == null)
+ {
+ throw new IllegalStateException("Cannot instantiate CoordinationManager: no
PortalObjectContainer present");
+ }
+ }
+
+
+ public Map<Window, PortletWindowEvent> getEventWindows(PortletWindowEvent event,
ControllerPortletControllerContext context) throws IllegalCoordinationException
+ {
+
+ if (event == null)
+ {
+ throw new IllegalArgumentException("event is null");
+ }
+
+ if (context == null)
+ {
+ throw new IllegalArgumentException("context is null");
+ }
+
+ // Obtain page for which we scope this event
+
+ Page page = context.getWindow(event.getWindowId()).getPage();
+
+ ImplicitStrategy strategy = resolveImplicitEventWiringStrategy(page);
+
+ Map<Window, PortletWindowEvent> windows = new HashMap<Window,
PortletWindowEvent>();
+
+ // Only implicit wirings
+
+ if (strategy.equals(ImplicitStrategy.EXCLUSIVE))
+ {
+ windows = getEventWindowsImplicit(page, event, context);
+ }
+
+ // Only explicit wirings
+
+ else if(strategy.equals(ImplicitStrategy.DISABLED))
+ {
+ windows = getEventWindowsExplicit(page, event, context);
+ }
+
+ // If no explicit wirings for this event fallback to implicit
+
+ else if(strategy.equals(ImplicitStrategy.FALLBACK))
+ {
+ windows = getEventWindowsExplicit(page, event, context);
+
+ if (windows.size() == 0)
+ {
+ windows = getEventWindowsImplicit(page, event, context);
+ }
+ }
+
+ return windows;
+ }
+
+ public Collection<String> getBindingNames(Window window, QName name)
+ {
+
+ Set<String> names = new HashSet<String>();
+
+ Collection<ParameterBindingInfo> infos = getParameterBindings(window);
+
+ for (ParameterBindingInfo info : infos)
+ {
+ for (Map.Entry<Window, QName> entry : info.getWindows().entrySet())
+ {
+ if (entry.getKey().getName().equals(window.getName()) &&
entry.getValue().equals(name))
+ {
+ names.add(info.getName());
+ }
+ }
+ }
+
+ return names;
+ }
+
+ private Map<Window, PortletWindowEvent> getEventWindowsExplicit(Page page,
PortletWindowEvent event, ControllerPortletControllerContext context)
+ {
+ Map<Window, PortletWindowEvent> windows = new HashMap<Window,
PortletWindowEvent>();
+
+ Collection<EventWiringInfo> infos = getEventWirings(page);
+
+ for (EventWiringInfo info : infos)
+ {
+ for (Map.Entry<Window, QName> entry : info.getSources().entrySet())
+ {
+ if (entry.getKey().getName().equals(event.getWindowId()) &&
+ entry.getValue().equals(event.getName()))
+ {
+ for (Window window : info.getDestinations().keySet())
+ {
+ PortletInfo portletInfo = context.getPortletInfo(window.getName());
+ QName destEventName = info.getDestinations().get(window);
+ EventInfo destEventInfo =
portletInfo.getEventing().getConsumedEvents().get(destEventName);
+ if (destEventInfo != null)
+ {
+ windows.put(window, getEventConverter().resolveEvent(event,
destEventInfo, window));
+ }
+
+ }
+ break;
+ }
+ }
+
+ }
+
+ return windows;
+ }
+
+ private Map<Window, PortletWindowEvent> getEventWindowsImplicit(Page page,
PortletWindowEvent event, ControllerPortletControllerContext context)
+ {
+ Map<Window, PortletWindowEvent> windows = new HashMap<Window,
PortletWindowEvent>();
+
+ for (String windowName : context.getWindowNames())
+ {
+ PortletInfo info = context.getPortletInfo(windowName);
+
+ //
+ if (info.getEventing().getConsumedEvents().containsKey(event.getName()))
+ {
+ PortletWindowEvent distributedEvent = new
PortletWindowEvent(event.getName(), event.getPayload(), windowName);
+ windows.put(context.getWindow(windowName), distributedEvent);
+ }
+ }
+
+ return windows;
+ }
+
+ public void setEventWiring(Map<Window, QName> sources, Map<Window, QName>
destinations, String eventName) throws IllegalCoordinationException
+ {
+
+ if (sources == null)
+ {
+ throw new IllegalArgumentException("sources are null");
+ }
+
+ if (destinations == null)
+ {
+ throw new IllegalArgumentException("destinations are null");
+ }
+
+ if (eventName == null)
+ {
+ throw new IllegalArgumentException("eventName is null");
+ }
+
+ if (sources.isEmpty())
+ {
+ throw new IllegalArgumentException("empty sources map");
+ }
+
+ if (destinations.isEmpty())
+ {
+ throw new IllegalArgumentException("empty destinations map");
+ }
+
+ // Obtain parent page and check that all windows are in one branch...
+
+ Page parentPage = null;
+
+ Set<Window> sw = sources.keySet();
+ Set<Window> dw = destinations.keySet();
+
+ Set<Window> all = new HashSet<Window>();
+ all.addAll(sw);
+ all.addAll(dw);
+
+
+ for (Window window : all)
+ {
+ if (parentPage == null)
+ {
+ parentPage = window.getPage();
+ }
+
+ if (!window.getPage().getId().equals(parentPage.getId()))
+ {
+ throw new IllegalCoordinationException("Parent page is not the same for
all windows");
+ }
+ }
+
+ // Check if the same window is not both in sources and destinations map
+
+ for (Window window : sw)
+ {
+ if (dw.contains(window))
+ {
+ throw new IllegalCoordinationException("The same window cannot be source
and destination of the same explicit wiring");
+ }
+ }
+
+ // Set the sources
+
+ String prop_name = PREFIX_EVENT_NAME + "." + eventName;
+ String prop_wiring = PREFIX_EVENT_WIRING + "." + eventName;
+
+ for (Window window : sw)
+ {
+ window.setDeclaredProperty(prop_name, SOURCE);
+ window.setDeclaredProperty(prop_wiring, sources.get(window).toString());
+ }
+
+ // Set the sources
+
+ for (Window window : dw)
+ {
+ window.setDeclaredProperty(prop_name, DESTINATION);
+ window.setDeclaredProperty(prop_wiring, destinations.get(window).toString());
+ }
+
+ }
+
+ public void removeEventWiring(EventWiringInfo info) throws
IllegalCoordinationException
+ {
+ if (info == null)
+ {
+ throw new IllegalArgumentException("EventWiringInfo is null");
+ }
+
+ // Remove all entries
+
+ String prop_name = PREFIX_EVENT_NAME + "." + info.getName();
+ String prop_wiring = PREFIX_EVENT_WIRING + "." + info.getName();
+
+ Set<Window> all = new HashSet<Window>();
+ all.addAll(info.getSources().keySet());
+ all.addAll(info.getDestinations().keySet());
+
+ for (Window window : all)
+ {
+ window.setDeclaredProperty(prop_name, null);
+ window.setDeclaredProperty(prop_wiring, null);
+ }
+ }
+
+ public void setImplicitEventWiringStrategy(PageContainer pageContainer,
ImplicitStrategy strategy) throws IllegalCoordinationException
+ {
+ if (pageContainer == null)
+ {
+ throw new IllegalArgumentException("pageContainer is null");
+ }
+
+
+ setStrategy(pageContainer, strategy, PREFIX_EVENT_IMPLICIT_STRATEGY);
+
+ }
+
+ public ImplicitStrategy getImplicitEventWiringStrategy(PageContainer page) throws
IllegalCoordinationException
+ {
+ if (page == null)
+ {
+ throw new IllegalArgumentException("page is null");
+ }
+
+ return decodeStrategy(page, PREFIX_EVENT_IMPLICIT_STRATEGY);
+
+ }
+
+ public ImplicitStrategy resolveImplicitEventWiringStrategy(PageContainer page)
+ {
+
+ if (page == null)
+ {
+ throw new IllegalArgumentException("page is null");
+ }
+
+ return resolveStrategy(page, PREFIX_EVENT_IMPLICIT_STRATEGY);
+ }
+
+ public Collection<EventWiringInfo> getEventWirings(Page page, QName eventQName)
+ {
+
+ if (page == null)
+ {
+ throw new IllegalArgumentException("page is null");
+ }
+
+ if (eventQName == null)
+ {
+ throw new IllegalArgumentException("eventQName is null");
+ }
+
+ Collection<EventWiringInfo> pageEvents = getEventWirings(page);
+
+ Set<EventWiringInfo> events = new HashSet<EventWiringInfo>();
+
+ for (EventWiringInfo event : pageEvents)
+ {
+ if (event.getSources().containsValue(eventQName) ||
event.getDestinations().containsValue(eventQName))
+ {
+ pageEvents.add(event);
+ }
+ }
+
+ return events;
+ }
+
+ public Collection<EventWiringInfo> getEventWirings(Page page)
+ {
+ if (page == null)
+ {
+ throw new IllegalArgumentException("page is null");
+ }
+
+ // Examine window properties and create page events
+
+ Collection<Window> windows = getWindows(page);
+
+ Map<String, EventInfoPOJO> events = new HashMap<String,
EventInfoPOJO>();
+
+
+
+ for (Window window : windows)
+ {
+ Set<String> propNames = window.getProperties().keySet();
+
+ for (String propName : propNames)
+ {
+ if(propName.startsWith(PREFIX_EVENT_NAME))
+ {
+ String en = propName.substring(PREFIX_EVENT_NAME.length() + 1);
+ EventInfoPOJO info = null;
+
+ if (!events.keySet().contains(en))
+ {
+ info = new EventInfoPOJO(en);
+ events.put(en, info);
+ }
+ else
+ {
+ info = events.get(en);
+ }
+
+ String prop_wiring = PREFIX_EVENT_WIRING + "." + en;
+
+ String name = window.getProperty(prop_wiring);
+ String role = window.getProperty(propName);
+
+
+ //TODO: if the imformation from properties is not consistent should we
throw exception?
+
+ if (name != null)
+ {
+ QName qname = decodeQName(name);
+
+
+ if (qname != null && role != null &&
role.equalsIgnoreCase("source"))
+ {
+ info.getSources().put(window, qname);
+ }
+ else if (qname != null && role != null &&
role.equalsIgnoreCase("destination"))
+ {
+ info.getDestinations().put(window, qname);
+ }
+ }
+
+ break;
+ }
+ }
+ }
+
+ // Make immutable copy
+ Collection<EventWiringInfo> immutableEvents = new
HashSet<EventWiringInfo>();
+
+ for (EventInfoPOJO info : events.values())
+ {
+ immutableEvents.add(info.getImmutableWiringInfo());
+ }
+
+ return immutableEvents;
+ }
+
+ public Collection<EventWiringInfo> getEventSourceWirings(Window window)
+ {
+
+ Collection<EventWiringInfo> pageEvents = getEventWirings(window.getPage());
+
+ Set<EventWiringInfo> events = new HashSet<EventWiringInfo>();
+
+ for (EventWiringInfo pageEvent : pageEvents)
+ {
+ if (pageEvent.getSources().keySet().contains(window))
+ {
+ events.add(pageEvent);
+ }
+ }
+
+ return events;
+ }
+
+ public Collection<EventWiringInfo> getEventDestinationWirings(Window window)
+ {
+ Collection<EventWiringInfo> pageEvents = getEventWirings(window.getPage());
+
+ Set<EventWiringInfo> events = new HashSet<EventWiringInfo>();
+
+ for (EventWiringInfo pageEvent : pageEvents)
+ {
+ if (pageEvent.getDestinations().keySet().contains(window))
+ {
+ events.add(pageEvent);
+ }
+ }
+
+ return events;
+ }
+
+ public void setParameterBinding(String name, Map<Window, QName> windows) throws
IllegalCoordinationException
+ {
+ if (windows == null)
+ {
+ throw new IllegalArgumentException("windows are null");
+ }
+
+ if (name == null)
+ {
+ throw new IllegalArgumentException("name is null");
+ }
+
+ if (windows.isEmpty())
+ {
+ throw new IllegalArgumentException("empty windows map");
+ }
+
+
+ // Obtain parent page and check that all windows are in one branch...
+
+ Page parentPage = null;
+
+ Set<Window> dw = windows.keySet();
+
+
+ for (Window window : dw)
+ {
+ if (parentPage == null)
+ {
+ parentPage = window.getPage();
+ }
+
+ if (!window.getPage().getId().equals(parentPage.getId()))
+ {
+ throw new IllegalCoordinationException("Parent page is not the same for
all windows");
+ }
+ }
+
+
+ // Set window properties
+
+ String prop_wiring = PREFIX_PARAMETER_BINDING + "." + name;
+
+ for (Window window : dw)
+ {
+ window.setDeclaredProperty(prop_wiring, windows.get(window).toString());
+ }
+
+ }
+
+ public void removeParameterBinding(ParameterBindingInfo info) throws
IllegalCoordinationException
+ {
+ if (info == null)
+ {
+ throw new IllegalArgumentException("ParameterBindingInfo is null");
+ }
+
+ // Remove all entries
+
+ String prop_wiring = PREFIX_PARAMETER_BINDING + "." + info.getName();
+
+ for (Window window : info.getWindows().keySet())
+ {
+ window.setDeclaredProperty(prop_wiring, null);
+ }
+ }
+
+ public void setImplicitParameterBindingStrategy(PageContainer pageContainer,
ImplicitStrategy strategy) throws IllegalCoordinationException
+ {
+ if (pageContainer == null)
+ {
+ throw new IllegalArgumentException("pageContainer is null");
+ }
+
+
+ setStrategy(pageContainer, strategy, PREFIX_PARAMETER_IMPLICIT_STRATEGY);
+ }
+
+ public ImplicitStrategy getImplicitParameterBindingStrategy(PageContainer
pageContainer) throws IllegalCoordinationException
+ {
+
+ if (pageContainer == null)
+ {
+ throw new IllegalArgumentException("page is null");
+ }
+
+ return decodeStrategy(pageContainer, PREFIX_PARAMETER_IMPLICIT_STRATEGY);
+
+ }
+
+ public ImplicitStrategy resolveImplicitBindingStrategy(PageContainer page)
+ {
+ if (page == null)
+ {
+ throw new IllegalArgumentException("page is null");
+ }
+
+ return resolveStrategy(page, PREFIX_PARAMETER_IMPLICIT_STRATEGY);
+ }
+
+ public Collection<ParameterBindingInfo> getParameterBindings(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<ParameterBindingInfo> infos = new
HashSet<ParameterBindingInfo>();
+
+ for (ParameterBindingInfo pageParam : pageParams)
+ {
+ if (pageParam.getWindows().containsValue(parameterQName))
+ {
+ infos.add(pageParam);
+ }
+ }
+
+ return infos;
+ }
+
+ public Collection<ParameterBindingInfo> getParameterBindings(Page page)
+ {
+ if (page == null)
+ {
+ throw new IllegalArgumentException("page is null");
+ }
+
+ // Examine window properties and create page parameters
+
+ Collection<Window> windows = getWindows(page);
+
+ Map<String, ParameterInfoPOJO> params = new HashMap<String,
ParameterInfoPOJO>();
+
+
+
+ for (Window window : windows)
+ {
+ Set<String> propNames = window.getProperties().keySet();
+
+ for (String propName : propNames)
+ {
+ if(propName.startsWith(PREFIX_PARAMETER_BINDING))
+ {
+ String pn = propName.substring(PREFIX_PARAMETER_BINDING.length() + 1);
+ ParameterInfoPOJO info = null;
+
+ if (!params.keySet().contains(pn))
+ {
+ info = new ParameterInfoPOJO(pn);
+ params.put(pn, info);
+ }
+ else
+ {
+ info = params.get(pn);
+ }
+
+ String binding = window.getProperty(propName);
+
+
+ //TODO: if the imformation from properties is not consistent should we
throw exception?
+
+ if (binding != null)
+ {
+ QName qname = decodeQName(binding);
+
+
+ if (qname != null)
+ {
+ info.getWindows().put(window, qname);
+ }
+
+ }
+
+
+ }
+ }
+ }
+
+ // Make immutable copy
+ Collection<ParameterBindingInfo> immutableParams = new
HashSet<ParameterBindingInfo>();
+
+ for (ParameterInfoPOJO info : params.values())
+ {
+ immutableParams.add(info.getImmutableInfo());
+ }
+
+ return immutableParams;
+ }
+
+ public Collection<ParameterBindingInfo> getParameterBindings(Window window)
+ {
+ Collection<ParameterBindingInfo> pageParams =
getParameterBindings(window.getPage());
+
+ Collection<ParameterBindingInfo> infos = new
HashSet<ParameterBindingInfo>();
+
+ for (ParameterBindingInfo pageParam : pageParams)
+ {
+ if (pageParam.getWindows().keySet().contains(window))
+ {
+ infos.add(pageParam);
+ }
+ }
+
+ return infos;
+ }
+
+ // SETTERS & GETTERS
+
+ public PortalObjectContainer getPortalObjectContainer()
+ {
+ return portalObjectContainer;
+ }
+
+ public void setPortalObjectContainer(PortalObjectContainer portalObjectContainer)
+ {
+ this.portalObjectContainer = portalObjectContainer;
+ }
+
+ public EventConverter getEventConverter()
+ {
+ return eventConverter;
+ }
+
+ public void setEventConverter(EventConverter eventConverter)
+ {
+ this.eventConverter = eventConverter;
+ }
+
+ // HELPER METHODS
+
+ private void setStrategy(PageContainer pageContainer, ImplicitStrategy strategy,
String prefix)
+ {
+ if (strategy == null)
+ {
+ pageContainer.setDeclaredProperty(prefix, null);
+ }
+ else if (strategy.equals(ImplicitStrategy.DISABLED))
+ {
+ pageContainer.setDeclaredProperty(prefix, STRATEGY_DISABLED);
+ }
+ else if (strategy.equals(ImplicitStrategy.EXCLUSIVE))
+ {
+ pageContainer.setDeclaredProperty(prefix, STRATEGY_EXCLUSIVE);
+ }
+ else if (strategy.equals(ImplicitStrategy.FALLBACK))
+ {
+ pageContainer.setDeclaredProperty(prefix,STRATEGY_FALLBACK);
+ }
+ else if (strategy.equals(ImplicitStrategy.RECURSIVE_DISABLED))
+ {
+ pageContainer.setDeclaredProperty(prefix,STRATEGY_RECURSIVE_DISABLED);
+ }
+ else if (strategy.equals(ImplicitStrategy.RECURSIVE_EXCLUSIVE))
+ {
+ pageContainer.setDeclaredProperty(prefix,STRATEGY_RECURSIVE_EXCLUSIVE);
+ }
+ else if (strategy.equals(ImplicitStrategy.RECURSIVE_FALLBACK))
+ {
+ pageContainer.setDeclaredProperty(prefix,STRATEGY_RECURSIVE_FALLBACK);
+ }
+ }
+
+ private ImplicitStrategy decodeStrategy(PageContainer pageContainer, String prefix)
+ {
+ String value = pageContainer.getDeclaredProperty(prefix);
+
+ return ImplicitStrategy.decodeStrategy(value);
+ }
+
+
+
+ private ImplicitStrategy resolveStrategy(PageContainer pageContainer, String prefix)
+ {
+ String value = pageContainer.getDeclaredProperty(prefix);
+
+ ImplicitStrategy strategy = null;
+
+
+ // Try to obtain recursive strategy from parents
+
+ if (value == null)
+ {
+ strategy = resolveRecursiveStrategy(pageContainer, prefix);
+ }
+ else
+ {
+ strategy = ImplicitStrategy.decodeStrategy(value);
+ }
+
+ if (strategy != null)
+ {
+ if (strategy.equals(ImplicitStrategy.RECURSIVE_DISABLED))
+ {
+ return ImplicitStrategy.DISABLED;
+ }
+ else if (strategy.equals(ImplicitStrategy.RECURSIVE_EXCLUSIVE))
+ {
+ return ImplicitStrategy.EXCLUSIVE;
+ }
+ else if (strategy.equals(ImplicitStrategy.RECURSIVE_FALLBACK))
+ {
+ return ImplicitStrategy.FALLBACK;
+ }
+
+ return strategy;
+ }
+ else
+ {
+ return DEFAULT_STRATEGY;
+ }
+
+ }
+
+ // Search for the RECURSIVE_ type of strategy
+ private ImplicitStrategy resolveRecursiveStrategy(PortalObject po, String prefix)
+ {
+ String value = po.getDeclaredProperty(prefix);
+ ImplicitStrategy strategy = null;
+
+ if (value != null)
+ {
+ strategy = ImplicitStrategy.decodeStrategy(value);
+ }
+
+ if (strategy != null &&
+ (strategy.equals(ImplicitStrategy.RECURSIVE_DISABLED) ||
+ strategy.equals(ImplicitStrategy.RECURSIVE_EXCLUSIVE) ||
+ strategy.equals(ImplicitStrategy.RECURSIVE_FALLBACK)))
+ {
+ return strategy;
+ }
+ else if (!(po instanceof Portal))
+ {
+ return resolveRecursiveStrategy(po.getParent(), prefix);
+ }
+
+ return null;
+ }
+
+
+ Collection<Window> getWindows(Page page)
+ {
+ Set<Window> windows = new HashSet<Window>();
+ for (PortalObject portalObject : page.getChildren())
+ {
+
+ if (portalObject instanceof Window)
+ {
+ windows.add((Window)portalObject);
+ }
+ }
+ return windows;
+ }
+
+ private QName decodeQName(String fullString)
+ {
+ if (fullString.startsWith("{"))
+ {
+ String[] parts = fullString.split("}");
+
+ if (parts.length == 2)
+ {
+ return new QName(parts[0].substring(1), parts[1]);
+ }
+ }
+ else
+ {
+ return new QName(fullString);
+ }
+
+ return null;
+
+ }
+
+
+ private class EventInfoPOJO implements EventWiringInfo
+ {
+ private final String name;
+ private final Map<Window,QName> sources;
+ private final Map<Window,QName> destinations;
+
+ private EventInfoPOJO(String name, Map<Window, QName> sources, Map<Window,
QName> destinations)
+ {
+ this.name = name;
+ this.sources = sources;
+ this.destinations = destinations;
+ }
+
+ private EventInfoPOJO(String name)
+ {
+ this.name = name;
+ this.sources = new HashMap<Window,QName>();
+ this.destinations = new HashMap<Window,QName>();
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public Map<Window, QName> getSources()
+ {
+ return sources;
+ }
+
+ public Map<Window, QName> getDestinations()
+ {
+ return destinations;
+ }
+
+ EventWiringInfo getImmutableWiringInfo()
+ {
+ return new EventInfoPOJO(name, Collections.unmodifiableMap(sources),
Collections.unmodifiableMap(destinations));
+ }
+
+ }
+
+ private class ParameterInfoPOJO implements ParameterBindingInfo
+ {
+
+ private final String name;
+ private final Map<Window, QName> windows;
+
+ private ParameterInfoPOJO(String name, Map<Window, QName> windows)
+ {
+ this.name = name;
+ this.windows = windows;
+ }
+
+ private ParameterInfoPOJO(String name)
+ {
+ this.name = name;
+ this.windows = new HashMap<Window,QName>();
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public Map<Window, QName> getWindows()
+ {
+ return windows;
+ }
+
+ ParameterBindingInfo getImmutableInfo()
+ {
+ return new ParameterInfoPOJO(name, Collections.unmodifiableMap(windows));
+ }
+
+ }
+
+}
Deleted:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination/SimpleEventConverter.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/portal/coordination/SimpleEventConverter.java 2008-07-15
23:56:13 UTC (rev 11461)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination/SimpleEventConverter.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -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.core.impl.model.portal.coordination;
-
-import org.jboss.portal.core.model.portal.coordination.EventConverter;
-import org.jboss.portal.portlet.controller.event.PortletWindowEvent;
-import org.jboss.portal.portlet.info.EventInfo;
-
-import javax.xml.namespace.QName;
-import java.io.Serializable;
-
-/**
- * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
- * @version : 0.1 $
- */
-public class SimpleEventConverter implements EventConverter
-{
-
- public PortletWindowEvent resolveEvent(PortletWindowEvent sourceEvent, EventInfo
destEventInfo)
- {
-
- QName destName = destEventInfo.getName();
- String windowId = sourceEvent.getWindowId();
- Serializable payload = sourceEvent.getPayload();
-
-
- // Source and destination payload types
-
- String sourcePayloadType = sourceEvent.getPayload().getClass().getName();
- String destPayloadType = destEventInfo.getType().getName();
-
-
- // NOTE: rules below can be merged but I leave it like this to have more clear
logic to follow
-
- // Same payload types
-
- if (destPayloadType != null && sourcePayloadType.equals(destPayloadType))
- {
- return new PortletWindowEvent(destName, payload, windowId);
- }
-
- // source payload == null -> null
-
- else if (sourceEvent.getPayload() == null)
- {
- return new PortletWindowEvent(destName, null, windowId);
- }
-
- // destination have no type
-
- else if (destPayloadType == null || destPayloadType.equals(""))
- {
- return new PortletWindowEvent(destName, null, windowId);
- }
-
- // DEFAULT - just pass null value
- return new PortletWindowEvent(destName, null, windowId);
-
-
- }
-
-
-
-}
Copied:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination/SimpleEventConverter.java
(from rev 11487,
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/portal/coordination/SimpleEventConverter.java)
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination/SimpleEventConverter.java
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination/SimpleEventConverter.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -0,0 +1,86 @@
+/*
+* 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.impl.coordination;
+
+import org.jboss.portal.core.controller.coordination.EventConverter;
+import org.jboss.portal.core.model.portal.Window;
+import org.jboss.portal.portlet.controller.event.PortletWindowEvent;
+import org.jboss.portal.portlet.info.EventInfo;
+import org.jboss.portal.portlet.impl.info.ContainerTypeInfo;
+
+import javax.xml.namespace.QName;
+import java.io.Serializable;
+
+/**
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
+ * @version : 0.1 $
+ */
+public class SimpleEventConverter implements EventConverter
+{
+
+ public PortletWindowEvent resolveEvent(PortletWindowEvent sourceEvent, EventInfo
destEventInfo, Window window)
+ {
+
+ QName destName = destEventInfo.getName();
+ String windowId = window.getName();
+ Serializable payload = sourceEvent.getPayload();
+
+
+ // Source and destination payload types
+
+ String sourcePayloadType = sourceEvent.getPayload().getClass().getName();
+ String destPayloadType =
((ContainerTypeInfo)destEventInfo.getType()).getType().getName();
+
+
+ // NOTE: rules below can be merged but I leave it like this to have more clear
logic to follow
+
+ // Same payload types
+
+ if (destPayloadType != null && sourcePayloadType.equals(destPayloadType))
+ {
+ return new PortletWindowEvent(destName, payload, windowId);
+ }
+
+ // source payload == null -> null
+
+ else if (sourceEvent.getPayload() == null)
+ {
+ return new PortletWindowEvent(destName, null, windowId);
+ }
+
+ // destination have no type
+
+ else if (destPayloadType == null || destPayloadType.equals(""))
+ {
+ return new PortletWindowEvent(destName, null, windowId);
+ }
+
+ // DEFAULT - just pass null value
+ return new PortletWindowEvent(destName, null, windowId);
+
+
+ }
+
+
+
+}
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/BuildContext.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/BuildContext.java 2008-07-17
23:18:28 UTC (rev 11491)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/BuildContext.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -25,7 +25,7 @@
import org.jboss.portal.core.model.content.ContentType;
import org.jboss.portal.core.model.content.spi.handler.ContentHandler;
import org.jboss.portal.core.model.portal.PortalObjectContainer;
-import org.jboss.portal.core.model.portal.coordination.CoordinationConfigurator;
+import org.jboss.portal.core.controller.coordination.CoordinationConfigurator;
import org.jboss.portal.server.deployment.PortalWebApp;
/**
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-17
23:18:28 UTC (rev 11491)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/metadata/coordination/CoordinationMetaData.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -22,14 +22,13 @@
package org.jboss.portal.core.model.portal.metadata.coordination;
-import org.jboss.portal.core.model.portal.coordination.ImplicitStrategy;
-import org.jboss.portal.core.model.portal.coordination.IllegalCoordinationException;
+import org.jboss.portal.core.controller.coordination.ImplicitStrategy;
+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;
import org.jboss.portal.core.model.portal.PageContainer;
import org.jboss.portal.core.model.portal.Page;
import org.jboss.portal.core.model.portal.Window;
-import org.jboss.portal.core.impl.model.portal.coordination.CoordinationService;
import org.jboss.portal.common.xml.XMLTools;
import org.w3c.dom.Element;
@@ -55,8 +54,6 @@
List<CoordinationEventWiringMetaData> wirings = new
LinkedList<CoordinationEventWiringMetaData>();
- List<String> parameterAliases = new LinkedList<String>();
-
public static CoordinationMetaData buildMetaData(Element coordinationElt)
{
@@ -88,16 +85,7 @@
if (bindingsElement != null)
{
- // Aliases
- Iterator aliasesIter = XMLTools.getChildrenIterator(bindingsElement,
"parameter-alias");
- while (aliasesIter.hasNext())
- {
- Element alias = (Element)aliasesIter.next();
-
- coordinationMetaData.addAlias(XMLTools.asString(alias));
- }
-
// Param bindings
Iterator paramBindingsIter = XMLTools.getChildrenIterator(bindingsElement,
"parameter-binding");
@@ -138,18 +126,13 @@
if (getParameterStrategy() != null)
{
-
buildContext.getCoordinationConfigurator().setImplicitParameterBindingStrategy((PageContainer)object,
getEventStrategy());
+
buildContext.getCoordinationConfigurator().setImplicitParameterBindingStrategy((PageContainer)object,
getParameterStrategy());
}
if (object instanceof Page)
{
Page page = (Page)object;
- for (String parameterAlias : parameterAliases)
- {
- buildContext.getCoordinationConfigurator().setParameterAlias(page,
parameterAlias);
- }
-
for (CoordinationParameterBindingMetaData parameterBinding : parameterBindings)
{
Map<Window, QName> bindings = new HashMap<Window, QName>();
@@ -242,20 +225,5 @@
this.parameterBindings.add(binding);
}
- public List<String> getParameterAliases()
- {
- return parameterAliases;
- }
- public void setParameterAliases(List<String> parameterAliases)
- {
- this.parameterAliases = parameterAliases;
- }
-
- public void addAlias(String alias)
- {
- this.parameterAliases.add(alias);
- }
-
-
}
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/navstate/PageNavigationalState.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/navstate/PageNavigationalState.java 2008-07-17
23:18:28 UTC (rev 11491)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/navstate/PageNavigationalState.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -30,6 +30,7 @@
/**
* @author <a href="mailto:julien@jboss-portal.org">Julien
Viet</a>
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot
com">Boleslaw Dawidowicz</a>
* @version $Revision: 630 $
*/
public class PageNavigationalState implements Serializable
@@ -38,11 +39,20 @@
/** . */
private final HashMap<QName, String[]> parameters;
+ private final HashMap<String, String[]> explicitBindings;
+
public PageNavigationalState(Map<QName, String[]> parameters)
{
this.parameters = new HashMap<QName, String[]>(parameters);
+ this.explicitBindings = new HashMap<String, String[]>();
}
+ public PageNavigationalState(Map<QName, String[]> parameters, Map<String,
String[]> explicitBindings)
+ {
+ this.parameters = new HashMap<QName, String[]>(parameters);
+ this.explicitBindings = new HashMap<String, String[]>(explicitBindings);
+ }
+
public String[] getParameter(QName name)
{
return parameters.get(name);
@@ -52,4 +62,14 @@
{
return Collections.unmodifiableMap(parameters);
}
+
+ public String[] getExplicitBinding(String name)
+ {
+ return explicitBindings.get(name);
+ }
+
+ public Map<String, String[]> getExplicitBindings()
+ {
+ return Collections.unmodifiableMap(explicitBindings);
+ }
}
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-17
23:18:28 UTC (rev 11491)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/test/core/model/portal/coordination/CoordinationServiceTestCase.java 2008-07-17
23:23:05 UTC (rev 11492)
@@ -28,13 +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.model.portal.coordination.CoordinationManager;
-import org.jboss.portal.core.model.portal.coordination.CoordinationConfigurator;
-import org.jboss.portal.core.model.portal.coordination.ImplicitStrategy;
-import org.jboss.portal.core.model.portal.coordination.EventWiringInfo;
-import org.jboss.portal.core.model.portal.coordination.ParameterBindingInfo;
+import org.jboss.portal.core.controller.coordination.ImplicitStrategy;
+import org.jboss.portal.core.controller.coordination.EventWiringInfo;
+import org.jboss.portal.core.controller.coordination.ParameterBindingInfo;
import org.jboss.portal.core.model.content.ContentType;
-import org.jboss.portal.core.impl.model.portal.coordination.CoordinationService;
+import org.jboss.portal.core.impl.coordination.CoordinationService;
import org.apache.log4j.Appender;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.SimpleLayout;
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-sar/META-INF/jboss-service.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-sar/META-INF/jboss-service.xml 2008-07-17
23:18:28 UTC (rev 11491)
+++
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-sar/META-INF/jboss-service.xml 2008-07-17
23:23:05 UTC (rev 11492)
@@ -682,7 +682,7 @@
<!-- Coordination service -->
- <mbean
code="org.jboss.portal.core.impl.model.portal.coordination.CoordinationService"
+ <mbean
code="org.jboss.portal.core.impl.coordination.CoordinationService"
name="portal:service=CoordinationService" xmbean-dd=""
xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
<xmbean/>
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-17
23:18:28 UTC (rev 11491)
+++
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-sar/dtd/portal-object_2_6.dtd 2008-07-17
23:23:05 UTC (rev 11492)
@@ -366,7 +366,7 @@
<!--
Shared render parameter bindings. Can be defined only for a page
-->
-<!ELEMENT bindings (parameter-alias*, parameter-binding*)>
+<!ELEMENT bindings (parameter-binding*)>
<!--
This element defines explicit event wiring
@@ -384,11 +384,6 @@
<!ELEMENT destinations (window-coordination+)>
<!--
-Defines parameter. All parameters with a local part equal to given name will share
request value
--->
-<!ELEMENT parameter-alias (#PCDATA)>
-
-<!--
Shared parameter binding definition
-->
<!ELEMENT parameter-binding (name, window-coordination+)>
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/portal/coordination/persistent-jboss-beans.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/portal/coordination/persistent-jboss-beans.xml 2008-07-17
23:18:28 UTC (rev 11491)
+++
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/portal/coordination/persistent-jboss-beans.xml 2008-07-17
23:23:05 UTC (rev 11492)
@@ -93,7 +93,7 @@
<property name="contentProviderRegistry"><inject
bean="ContentProviderRegistry"/></property>
</bean>
- <bean name="CoordinationService"
class="org.jboss.portal.core.impl.model.portal.coordination.CoordinationService">
+ <bean name="CoordinationService"
class="org.jboss.portal.core.impl.coordination.CoordinationService">
<property name="portalObjectContainer"><inject
bean="PortalObjectContainer"/></property>
</bean>
Modified: branches/JBoss_Portal_Branch_2_7/core-samples/build.xml
===================================================================
--- branches/JBoss_Portal_Branch_2_7/core-samples/build.xml 2008-07-17 23:18:28 UTC (rev
11491)
+++ branches/JBoss_Portal_Branch_2_7/core-samples/build.xml 2008-07-17 23:23:05 UTC (rev
11492)
@@ -257,6 +257,17 @@
<mkdir
dir="${build.resources}/portal-portlet-samples.war/WEB-INF/lib/"/>
<copy
file="${jboss.portal/modules/portlet.lib}/portal-portlet-samples-lib.jar"
todir="${build.resources}/portal-portlet-samples.war/WEB-INF/lib/"/>
+ <!-- portal-coordination-samples.war -->
+ <copy todir="${build.resources}/portal-coordination-samples.war">
+ <fileset
dir="${build.resources}/portal-coordination-samples-war"/>
+ <fileset
dir="${build.resources}/portal-coordination-samples-war"/>
+ </copy>
+ <mkdir
dir="${build.resources}/portal-coordination-samples.war/WEB-INF/lib/"/>
+ <copy
file="${jboss.portal/modules/portlet.lib}/portal-portlet-samples-lib.jar"
todir="${build.resources}/portal-coordination-samples.war/WEB-INF/lib/"/>
+ <copy
todir="${build.resources}/portal-coordination-samples.war/WEB-INF/lib/">
+ <fileset dir="${build.lib}"
includes="portal-basic-samples-lib.jar"/>
+ </copy>
+
<!-- portal-users-samples-lib.jar -->
<jar jarfile="${build.lib}/portal-users-samples-lib.jar">
<fileset dir="${build.classes}"
includes="org/jboss/portal/core/samples/users/**">
@@ -297,6 +308,9 @@
<implode
dir="${build.resources}/portal-portlet-samples.war"
tofile="${build.lib}/portal-portlet-samples.war"/>
+ <implode
+ dir="${build.resources}/portal-coordination-samples.war"
+ tofile="${build.lib}/portal-coordination-samples.war"/>
</target>
<!-- create artifacts for running the portlet tests (except TCK) target output
should have already been executed -->
@@ -357,6 +371,8 @@
overwrite="true"/>
<copy file="${build.lib}/portal-portlet-samples.war"
todir="${jboss.home}/server/${portal.deploy.dir}"
overwrite="true"/>
+ <copy file="${build.lib}/portal-coordination-samples.war"
todir="${jboss.home}/server/${portal.deploy.dir}"
+ overwrite="true"/>
</target>
<!--
Copied:
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/default-object.xml
(from rev 11471,
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-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
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/default-object.xml 2008-07-17
23:23:05 UTC (rev 11492)
@@ -0,0 +1,576 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ JBoss, a division of Red Hat ~
+ ~ Copyright 2006, Red Hat Middleware, LLC, and individual ~
+ ~ contributors as indicated by the @authors tag. See the ~
+ ~ copyright.txt in the distribution for a full listing of ~
+ ~ individual contributors. ~
+ ~ ~
+ ~ This is free software; you can redistribute it and/or modify it ~
+ ~ under the terms of the GNU Lesser General Public License as ~
+ ~ published by the Free Software Foundation; either version 2.1 of ~
+ ~ the License, or (at your option) any later version. ~
+ ~ ~
+ ~ This software is distributed in the hope that it will be useful, ~
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of ~
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ~
+ ~ Lesser General Public License for more details. ~
+ ~ ~
+ ~ You should have received a copy of the GNU Lesser General Public ~
+ ~ License along with this software; if not, write to the Free ~
+ ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ~
+ ~ 02110-1301 USA, or see the FSF site:
http://www.fsf.org. ~
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<!DOCTYPE deployments PUBLIC
+ "-//JBoss Portal//DTD Portal Object 2.6//EN"
+ "http://www.jboss.org/portal/dtd/portal-object_2_6.dtd">
+
+<deployments>
+ <deployment>
+ <parent-ref>default</parent-ref>
+ <if-exists>overwrite</if-exists>
+ <page>
+ <page-name>Coordination Samples</page-name>
+
+ <page>
+ <page-name>Events: DISABLED</page-name>
+
+ <window>
+ <window-name>ShoppingCatalogPortletWindow1</window-name>
+
<instance-ref>CoordinationShoppingCatalogPortletInstance</instance-ref>
+ <region>left</region>
+ <height>0</height>
+ </window>
+ <window>
+ <window-name>ShoppingCatalogPortletWindow2</window-name>
+
<instance-ref>CoordinationShoppingCatalogPortletInstance</instance-ref>
+ <region>center</region>
+ <height>0</height>
+ </window>
+
+
+ <window>
+ <window-name>ShoppingCartPortletWindow1</window-name>
+
<instance-ref>CoordinationShoppingCartPortletInstance</instance-ref>
+ <region>left</region>
+ <height>1</height>
+ </window>
+ <window>
+ <window-name>ShoppingCartPortletWindow2</window-name>
+
<instance-ref>CoordinationShoppingCartPortletInstance</instance-ref>
+ <region>center</region>
+ <height>1</height>
+ </window>
+ <window>
+ <window-name>ShoppingCartPortletWindow3</window-name>
+
<instance-ref>CoordinationShoppingCartPortletInstance</instance-ref>
+ <region>left</region>
+ <height>2</height>
+ </window>
+ <window>
+ <window-name>ShoppingCartPortletWindow4</window-name>
+
<instance-ref>CoordinationShoppingCartPortletInstance</instance-ref>
+ <region>center</region>
+ <height>2</height>
+ </window>
+
+
+
+ <coordination>
+ <implicit-event-strategy>DISABLED</implicit-event-strategy>
+ <wirings>
+ <event-wiring>
+ <name>wiringA</name>
+ <sources>
+ <window-coordination>
+
<window-name>ShoppingCatalogPortletWindow1</window-name>
+
<qname>{urn:jboss:portal:samples:event}CartEvent</qname>
+ </window-coordination>
+ </sources>
+ <destinations>
+ <window-coordination>
+
<window-name>ShoppingCartPortletWindow2</window-name>
+
<qname>{urn:jboss:portal:samples:event}CartEvent</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>ShoppingCartPortletWindow3</window-name>
+
<qname>{urn:jboss:portal:samples:event}CartEvent</qname>
+ </window-coordination>
+ </destinations>
+ </event-wiring>
+ <event-wiring>
+ <name>wiringB</name>
+ <sources>
+ <window-coordination>
+
<window-name>ShoppingCatalogPortletWindow2</window-name>
+
<qname>{urn:jboss:portal:samples:event}CartEvent</qname>
+ </window-coordination>
+ </sources>
+ <destinations>
+ <window-coordination>
+
<window-name>ShoppingCartPortletWindow1</window-name>
+
<qname>{urn:jboss:portal:samples:event}CartEvent</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>ShoppingCartPortletWindow4</window-name>
+
<qname>{urn:jboss:portal:samples:event}CartEvent</qname>
+ </window-coordination>
+ </destinations>
+ </event-wiring>
+ </wirings>
+ </coordination>
+
+ </page>
+ <page>
+ <page-name>Events: FALLBACK</page-name>
+
+ <window>
+ <window-name>ShoppingCatalogPortletWindow1</window-name>
+
<instance-ref>CoordinationShoppingCatalogPortletInstance</instance-ref>
+ <region>left</region>
+ <height>0</height>
+ </window>
+ <window>
+ <window-name>ShoppingCatalogPortletWindow2</window-name>
+
<instance-ref>CoordinationShoppingCatalogPortletInstance</instance-ref>
+ <region>center</region>
+ <height>0</height>
+ </window>
+
+
+ <window>
+ <window-name>ShoppingCartPortletWindow1</window-name>
+
<instance-ref>CoordinationShoppingCartPortletInstance</instance-ref>
+ <region>left</region>
+ <height>1</height>
+ </window>
+ <window>
+ <window-name>ShoppingCartPortletWindow2</window-name>
+
<instance-ref>CoordinationShoppingCartPortletInstance</instance-ref>
+ <region>center</region>
+ <height>1</height>
+ </window>
+ <window>
+ <window-name>ShoppingCartPortletWindow3</window-name>
+
<instance-ref>CoordinationShoppingCartPortletInstance</instance-ref>
+ <region>left</region>
+ <height>2</height>
+ </window>
+ <window>
+ <window-name>ShoppingCartPortletWindow4</window-name>
+
<instance-ref>CoordinationShoppingCartPortletInstance</instance-ref>
+ <region>center</region>
+ <height>2</height>
+ </window>
+
+
+
+ <coordination>
+ <implicit-event-strategy>FALLBACK</implicit-event-strategy>
+ <wirings>
+ <event-wiring>
+ <name>wiringA</name>
+ <sources>
+ <window-coordination>
+
<window-name>ShoppingCatalogPortletWindow1</window-name>
+
<qname>{urn:jboss:portal:samples:event}CartEvent</qname>
+ </window-coordination>
+ </sources>
+ <destinations>
+ <window-coordination>
+
<window-name>ShoppingCartPortletWindow2</window-name>
+
<qname>{urn:jboss:portal:samples:event}CartEvent</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>ShoppingCartPortletWindow3</window-name>
+
<qname>{urn:jboss:portal:samples:event}CartEvent</qname>
+ </window-coordination>
+ </destinations>
+ </event-wiring>
+ </wirings>
+ </coordination>
+
+ </page>
+ <page>
+ <page-name>Events: EXCLUSIVE</page-name>
+
+ <window>
+ <window-name>ShoppingCatalogPortletWindow1</window-name>
+
<instance-ref>CoordinationShoppingCatalogPortletInstance</instance-ref>
+ <region>left</region>
+ <height>0</height>
+ </window>
+ <window>
+ <window-name>ShoppingCatalogPortletWindow2</window-name>
+
<instance-ref>CoordinationShoppingCatalogPortletInstance</instance-ref>
+ <region>center</region>
+ <height>0</height>
+ </window>
+
+
+ <window>
+ <window-name>ShoppingCartPortletWindow1</window-name>
+
<instance-ref>CoordinationShoppingCartPortletInstance</instance-ref>
+ <region>left</region>
+ <height>1</height>
+ </window>
+ <window>
+ <window-name>ShoppingCartPortletWindow2</window-name>
+
<instance-ref>CoordinationShoppingCartPortletInstance</instance-ref>
+ <region>center</region>
+ <height>1</height>
+ </window>
+ <window>
+ <window-name>ShoppingCartPortletWindow3</window-name>
+
<instance-ref>CoordinationShoppingCartPortletInstance</instance-ref>
+ <region>left</region>
+ <height>2</height>
+ </window>
+ <window>
+ <window-name>ShoppingCartPortletWindow4</window-name>
+
<instance-ref>CoordinationShoppingCartPortletInstance</instance-ref>
+ <region>center</region>
+ <height>2</height>
+ </window>
+
+
+
+ <coordination>
+ <implicit-event-strategy>EXCLUSIVE</implicit-event-strategy>
+ <wirings>
+ <event-wiring>
+ <name>wiringA</name>
+ <sources>
+ <window-coordination>
+
<window-name>ShoppingCatalogPortletWindow1</window-name>
+
<qname>{urn:jboss:portal:samples:event}CartEvent</qname>
+ </window-coordination>
+ </sources>
+ <destinations>
+ <window-coordination>
+
<window-name>ShoppingCartPortletWindow2</window-name>
+
<qname>{urn:jboss:portal:samples:event}CartEvent</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>ShoppingCartPortletWindow3</window-name>
+
<qname>{urn:jboss:portal:samples:event}CartEvent</qname>
+ </window-coordination>
+ </destinations>
+ </event-wiring>
+ <event-wiring>
+ <name>wiringB</name>
+ <sources>
+ <window-coordination>
+
<window-name>ShoppingCatalogPortletWindow2</window-name>
+
<qname>{urn:jboss:portal:samples:event}CartEvent</qname>
+ </window-coordination>
+ </sources>
+ <destinations>
+ <window-coordination>
+
<window-name>ShoppingCartPortletWindow1</window-name>
+
<qname>{urn:jboss:portal:samples:event}CartEvent</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>ShoppingCartPortletWindow4</window-name>
+
<qname>{urn:jboss:portal:samples:event}CartEvent</qname>
+ </window-coordination>
+ </destinations>
+ </event-wiring>
+ </wirings>
+ </coordination>
+
+ </page>
+
+ <page>
+ <page-name>Parameters: DISABLED</page-name>
+ <window>
+ <window-name>PublicParametersPortletWindowA1</window-name>
+
<instance-ref>CoordinationPublicParametersPortletInstance1</instance-ref>
+ <region>left</region>
+ <height>0</height>
+ </window>
+ <window>
+ <window-name>PublicParametersPortletWindowA2</window-name>
+
<instance-ref>CoordinationPublicParametersPortletInstance1</instance-ref>
+ <region>left</region>
+ <height>1</height>
+ </window>
+
+ <window>
+ <window-name>PublicParametersPortletWindowB1</window-name>
+
<instance-ref>CoordinationPublicParametersPortletInstance2</instance-ref>
+ <region>center</region>
+ <height>0</height>
+ </window>
+ <window>
+ <window-name>PublicParametersPortletWindowB2</window-name>
+
<instance-ref>CoordinationPublicParametersPortletInstance2</instance-ref>
+ <region>center</region>
+ <height>1</height>
+ </window>
+
+
+
+ <coordination>
+
<implicit-parameter-strategy>DISABLED</implicit-parameter-strategy>
+ <bindings>
+ <parameter-binding>
+ <name>binding1</name>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowA1</window-name>
+ <qname>foo1</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowB2</window-name>
+ <qname>foo2</qname>
+ </window-coordination>
+ </parameter-binding>
+ <parameter-binding>
+ <name>binding2</name>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowA1</window-name>
+ <qname>bar1</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowB2</window-name>
+ <qname>bar2</qname>
+ </window-coordination>
+ </parameter-binding>
+ <parameter-binding>
+ <name>binding3</name>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowA1</window-name>
+ <qname>juu1</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowB2</window-name>
+ <qname>juu2</qname>
+ </window-coordination>
+ </parameter-binding>
+
+
+ <parameter-binding>
+ <name>binding4</name>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowA2</window-name>
+ <qname>foo1</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowB1</window-name>
+ <qname>foo2</qname>
+ </window-coordination>
+ </parameter-binding>
+ <parameter-binding>
+ <name>binding5</name>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowA2</window-name>
+ <qname>bar1</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowB1</window-name>
+ <qname>bar2</qname>
+ </window-coordination>
+ </parameter-binding>
+ <parameter-binding>
+ <name>binding6</name>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowA2</window-name>
+ <qname>juu1</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowB1</window-name>
+ <qname>juu2</qname>
+ </window-coordination>
+ </parameter-binding>
+
+
+ </bindings>
+
+ </coordination>
+ </page>
+ <page>
+ <page-name>Parameters: FALLBACK</page-name>
+ <window>
+ <window-name>PublicParametersPortletWindowA1</window-name>
+
<instance-ref>CoordinationPublicParametersPortletInstance1</instance-ref>
+ <region>left</region>
+ <height>0</height>
+ </window>
+ <window>
+ <window-name>PublicParametersPortletWindowA2</window-name>
+
<instance-ref>CoordinationPublicParametersPortletInstance1</instance-ref>
+ <region>left</region>
+ <height>1</height>
+ </window>
+
+ <window>
+ <window-name>PublicParametersPortletWindowB1</window-name>
+
<instance-ref>CoordinationPublicParametersPortletInstance2</instance-ref>
+ <region>center</region>
+ <height>0</height>
+ </window>
+ <window>
+ <window-name>PublicParametersPortletWindowB2</window-name>
+
<instance-ref>CoordinationPublicParametersPortletInstance2</instance-ref>
+ <region>center</region>
+ <height>1</height>
+ </window>
+
+
+
+ <coordination>
+
<implicit-parameter-strategy>FALLBACK</implicit-parameter-strategy>
+ <bindings>
+ <parameter-binding>
+ <name>binding1</name>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowA1</window-name>
+ <qname>foo1</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowB2</window-name>
+ <qname>foo2</qname>
+ </window-coordination>
+ </parameter-binding>
+ <parameter-binding>
+ <name>binding2</name>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowA1</window-name>
+ <qname>bar1</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowB2</window-name>
+ <qname>bar2</qname>
+ </window-coordination>
+ </parameter-binding>
+ <parameter-binding>
+ <name>binding3</name>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowA1</window-name>
+ <qname>juu1</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowB2</window-name>
+ <qname>juu2</qname>
+ </window-coordination>
+ </parameter-binding>
+ </bindings>
+
+ </coordination>
+ </page>
+ <page>
+ <page-name>Parameters: EXCLUSIVE</page-name>
+ <window>
+ <window-name>PublicParametersPortletWindowA1</window-name>
+
<instance-ref>CoordinationPublicParametersPortletInstance1</instance-ref>
+ <region>left</region>
+ <height>0</height>
+ </window>
+ <window>
+ <window-name>PublicParametersPortletWindowA2</window-name>
+
<instance-ref>CoordinationPublicParametersPortletInstance1</instance-ref>
+ <region>left</region>
+ <height>1</height>
+ </window>
+
+ <window>
+ <window-name>PublicParametersPortletWindowB1</window-name>
+
<instance-ref>CoordinationPublicParametersPortletInstance2</instance-ref>
+ <region>center</region>
+ <height>0</height>
+ </window>
+ <window>
+ <window-name>PublicParametersPortletWindowB2</window-name>
+
<instance-ref>CoordinationPublicParametersPortletInstance2</instance-ref>
+ <region>center</region>
+ <height>1</height>
+ </window>
+
+
+
+ <coordination>
+
<implicit-parameter-strategy>EXCLUSIVE</implicit-parameter-strategy>
+ <bindings>
+ <parameter-binding>
+ <name>binding1</name>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowA1</window-name>
+ <qname>foo1</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowB2</window-name>
+ <qname>foo2</qname>
+ </window-coordination>
+ </parameter-binding>
+ <parameter-binding>
+ <name>binding2</name>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowA1</window-name>
+ <qname>bar1</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowB2</window-name>
+ <qname>bar2</qname>
+ </window-coordination>
+ </parameter-binding>
+ <parameter-binding>
+ <name>binding3</name>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowA1</window-name>
+ <qname>juu1</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowB2</window-name>
+ <qname>juu2</qname>
+ </window-coordination>
+ </parameter-binding>
+
+
+ <parameter-binding>
+ <name>binding4</name>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowA2</window-name>
+ <qname>foo1</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowB1</window-name>
+ <qname>foo2</qname>
+ </window-coordination>
+ </parameter-binding>
+ <parameter-binding>
+ <name>binding5</name>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowA2</window-name>
+ <qname>bar1</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowB1</window-name>
+ <qname>bar2</qname>
+ </window-coordination>
+ </parameter-binding>
+ <parameter-binding>
+ <name>binding6</name>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowA2</window-name>
+ <qname>juu1</qname>
+ </window-coordination>
+ <window-coordination>
+
<window-name>PublicParametersPortletWindowB1</window-name>
+ <qname>juu2</qname>
+ </window-coordination>
+ </parameter-binding>
+
+
+ </bindings>
+
+ </coordination>
+ </page>
+
+
+ </page>
+ </deployment>
+
+
+
+</deployments>
Copied:
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/jboss-portlet.xml
(from rev 11471,
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/jboss-portlet.xml)
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/jboss-portlet.xml
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/jboss-portlet.xml 2008-07-17
23:23:05 UTC (rev 11492)
@@ -0,0 +1,31 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ JBoss, a division of Red Hat ~
+ ~ Copyright 2006, Red Hat Middleware, LLC, and individual ~
+ ~ contributors as indicated by the @authors tag. See the ~
+ ~ copyright.txt in the distribution for a full listing of ~
+ ~ individual contributors. ~
+ ~ ~
+ ~ This is free software; you can redistribute it and/or modify it ~
+ ~ under the terms of the GNU Lesser General Public License as ~
+ ~ published by the Free Software Foundation; either version 2.1 of ~
+ ~ the License, or (at your option) any later version. ~
+ ~ ~
+ ~ This software is distributed in the hope that it will be useful, ~
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of ~
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ~
+ ~ Lesser General Public License for more details. ~
+ ~ ~
+ ~ You should have received a copy of the GNU Lesser General Public ~
+ ~ License along with this software; if not, write to the Free ~
+ ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ~
+ ~ 02110-1301 USA, or see the FSF site:
http://www.fsf.org. ~
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<!DOCTYPE portlet-app PUBLIC
+ "-//JBoss Portal//DTD JBoss Portlet 2.6//EN"
+ "http://www.jboss.org/portal/dtd/jboss-portlet_2_6.dtd">
+
+<portlet-app>
+ <app-id>coordination-samples</app-id>
+ <remotable>false</remotable>
+</portlet-app>
Copied:
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/portlet-instances.xml
(from rev 11471,
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/portlet-instances.xml)
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/portlet-instances.xml
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/portlet-instances.xml 2008-07-17
23:23:05 UTC (rev 11492)
@@ -0,0 +1,56 @@
+<?xml version="1.0" standalone="yes"?>
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ JBoss, a division of Red Hat ~
+ ~ Copyright 2006, Red Hat Middleware, LLC, and individual ~
+ ~ contributors as indicated by the @authors tag. See the ~
+ ~ copyright.txt in the distribution for a full listing of ~
+ ~ individual contributors. ~
+ ~ ~
+ ~ This is free software; you can redistribute it and/or modify it ~
+ ~ under the terms of the GNU Lesser General Public License as ~
+ ~ published by the Free Software Foundation; either version 2.1 of ~
+ ~ the License, or (at your option) any later version. ~
+ ~ ~
+ ~ This software is distributed in the hope that it will be useful, ~
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of ~
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ~
+ ~ Lesser General Public License for more details. ~
+ ~ ~
+ ~ You should have received a copy of the GNU Lesser General Public ~
+ ~ License along with this software; if not, write to the Free ~
+ ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ~
+ ~ 02110-1301 USA, or see the FSF site:
http://www.fsf.org. ~
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<!DOCTYPE deployments PUBLIC
+ "-//JBoss Portal//DTD Portlet Instances 2.6//EN"
+ "http://www.jboss.org/portal/dtd/portlet-instances_2_6.dtd">
+
+<deployments>
+ <deployment>
+ <instance>
+
<instance-id>CoordinationPublicParametersPortletInstance1</instance-id>
+ <portlet-ref>CoordinationPublicParametersPortlet1</portlet-ref>
+ </instance>
+ </deployment>
+ <deployment>
+ <instance>
+
<instance-id>CoordinationPublicParametersPortletInstance2</instance-id>
+ <portlet-ref>CoordinationPublicParametersPortlet2</portlet-ref>
+ </instance>
+ </deployment>
+ <deployment>
+ <instance>
+ <display-name xml:lang="en">Catalog
Portlet</display-name>
+
<instance-id>CoordinationShoppingCatalogPortletInstance</instance-id>
+ <portlet-ref>CoordinationShoppingCatalog</portlet-ref>
+ </instance>
+ </deployment>
+ <deployment>
+ <instance>
+ <display-name xml:lang="en">Cart Portlet</display-name>
+ <instance-id>CoordinationShoppingCartPortletInstance</instance-id>
+ <portlet-ref>CoordinationShoppingCart</portlet-ref>
+ </instance>
+ </deployment>
+</deployments>
\ No newline at end of file
Copied:
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/portlet.xml
(from rev 11471,
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/portlet.xml)
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/portlet.xml
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/portlet.xml 2008-07-17
23:23:05 UTC (rev 11492)
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ JBoss, a division of Red Hat ~
+ ~ Copyright 2008, Red Hat Middleware, LLC, and individual ~
+ ~ contributors as indicated by the @authors tag. See the ~
+ ~ copyright.txt in the distribution for a full listing of ~
+ ~ individual contributors. ~
+ ~ ~
+ ~ This is free software; you can redistribute it and/or modify it ~
+ ~ under the terms of the GNU Lesser General Public License as ~
+ ~ published by the Free Software Foundation; either version 2.1 of ~
+ ~ the License, or (at your option) any later version. ~
+ ~ ~
+ ~ This software is distributed in the hope that it will be useful, ~
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of ~
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ~
+ ~ Lesser General Public License for more details. ~
+ ~ ~
+ ~ You should have received a copy of the GNU Lesser General Public ~
+ ~ License along with this software; if not, write to the Free ~
+ ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ~
+ ~ 02110-1301 USA, or see the FSF site:
http://www.fsf.org. ~
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<portlet-app
xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2...
http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
+ version="2.0">
+
+ <portlet>
+ <description>Portlet that manipulates its public render
parameters</description>
+ <portlet-name>CoordinationPublicParametersPortlet1</portlet-name>
+ <display-name>Public Parameters Portlet 1</display-name>
+
<portlet-class>org.jboss.portal.core.samples.basic.PublicParametersPortlet</portlet-class>
+ <supports>
+ <mime-type>text/html</mime-type>
+ </supports>
+ <portlet-info>
+ <title>Public Parameters Portlet</title>
+ <keywords>sample,test</keywords>
+ </portlet-info>
+
<supported-public-render-parameter>foo1</supported-public-render-parameter>
+
<supported-public-render-parameter>bar1</supported-public-render-parameter>
+
<supported-public-render-parameter>juu1</supported-public-render-parameter>
+
+ </portlet>
+
+ <portlet>
+ <description>Portlet that manipulates its public render
parameters</description>
+ <portlet-name>CoordinationPublicParametersPortlet2</portlet-name>
+ <display-name>Public Parameters Portlet 2</display-name>
+
<portlet-class>org.jboss.portal.core.samples.basic.PublicParametersPortlet</portlet-class>
+ <supports>
+ <mime-type>text/html</mime-type>
+ </supports>
+ <portlet-info>
+ <title>Public Parameters Portlet</title>
+ <keywords>sample,test</keywords>
+ </portlet-info>
+
<supported-public-render-parameter>foo2</supported-public-render-parameter>
+
<supported-public-render-parameter>bar2</supported-public-render-parameter>
+
<supported-public-render-parameter>juu2</supported-public-render-parameter>
+ </portlet>
+
+
+ <portlet>
+ <description>Shopping Catalog Portlet</description>
+ <portlet-name>CoordinationShoppingCatalog</portlet-name>
+ <display-name>Shopping Catalog Portlet</display-name>
+
<portlet-class>org.jboss.portal.portlet.samples.shoppingcart.CatalogPortlet</portlet-class>
+ <supports>
+ <mime-type>text/html</mime-type>
+ <portlet-mode>VIEW</portlet-mode>
+ </supports>
+ <portlet-info>
+ <title>Catalog Portlet</title>
+ <keywords>sample,event,catalog</keywords>
+ </portlet-info>
+ <supported-publishing-event>
+ <qname
xmlns:jbp="urn:jboss:portal:samples:event">jbp:CartEvent</qname>
+ </supported-publishing-event>
+ </portlet>
+
+ <portlet>
+ <description>Shopping Cart Portlet</description>
+ <portlet-name>CoordinationShoppingCart</portlet-name>
+ <display-name>Shopping Cart Portlet</display-name>
+
<portlet-class>org.jboss.portal.portlet.samples.shoppingcart.CartPortlet</portlet-class>
+ <supports>
+ <mime-type>text/html</mime-type>
+ <portlet-mode>VIEW</portlet-mode>
+ </supports>
+ <portlet-info>
+ <title>Cart Portlet</title>
+ <keywords>sample,event,cart</keywords>
+ </portlet-info>
+ <supported-processing-event>
+ <qname
xmlns:jbp="urn:jboss:portal:samples:event">jbp:CartEvent</qname>
+ </supported-processing-event>
+ </portlet>
+
+ <event-definition>
+ <qname
xmlns:jbp="urn:jboss:portal:samples:event">jbp:CartEvent</qname>
+
<value-type>org.jboss.portal.portlet.samples.shoppingcart.CartEvent</value-type>
+ </event-definition>
+
+ <public-render-parameter>
+ <name>foo1</name>
+ <identifier>foo1</identifier>
+ </public-render-parameter>
+
+ <public-render-parameter>
+ <name>bar1</name>
+ <identifier>bar1</identifier>
+ </public-render-parameter>
+
+ <public-render-parameter>
+ <name>juu1</name>
+ <identifier>juu1</identifier>
+ </public-render-parameter>
+ <public-render-parameter>
+ <name>foo2</name>
+ <identifier>foo2</identifier>
+ </public-render-parameter>
+
+ <public-render-parameter>
+ <name>bar2</name>
+ <identifier>bar2</identifier>
+ </public-render-parameter>
+
+ <public-render-parameter>
+ <name>juu2</name>
+ <identifier>juu2</identifier>
+ </public-render-parameter>
+
+</portlet-app>
Copied:
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/web.xml
(from rev 11471,
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-portlet-samples-war/WEB-INF/web.xml)
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/web.xml
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/core-samples/src/resources/portal-coordination-samples-war/WEB-INF/web.xml 2008-07-17
23:23:05 UTC (rev 11492)
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ JBoss, a division of Red Hat ~
+ ~ Copyright 2006, Red Hat Middleware, LLC, and individual ~
+ ~ contributors as indicated by the @authors tag. See the ~
+ ~ copyright.txt in the distribution for a full listing of ~
+ ~ individual contributors. ~
+ ~ ~
+ ~ This is free software; you can redistribute it and/or modify it ~
+ ~ under the terms of the GNU Lesser General Public License as ~
+ ~ published by the Free Software Foundation; either version 2.1 of ~
+ ~ the License, or (at your option) any later version. ~
+ ~ ~
+ ~ This software is distributed in the hope that it will be useful, ~
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of ~
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ~
+ ~ Lesser General Public License for more details. ~
+ ~ ~
+ ~ You should have received a copy of the GNU Lesser General Public ~
+ ~ License along with this software; if not, write to the Free ~
+ ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ~
+ ~ 02110-1301 USA, or see the FSF site:
http://www.fsf.org. ~
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application
2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd">
+<web-app>
+</web-app>