Author: chris.laprun(a)jboss.com
Date: 2010-09-13 09:40:17 -0400 (Mon, 13 Sep 2010)
New Revision: 4174
Modified:
portal/branches/wsrp2-integration/component/wsrp/pom.xml
portal/branches/wsrp2-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/MOPPortalStructureProvider.java
portal/branches/wsrp2-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/WSRPServiceIntegration.java
Log:
- Hooked up MOPPortalStructureProvider. More work needed: mostly synchronization commit.
Modified: portal/branches/wsrp2-integration/component/wsrp/pom.xml
===================================================================
--- portal/branches/wsrp2-integration/component/wsrp/pom.xml 2010-09-13 13:25:39 UTC (rev
4173)
+++ portal/branches/wsrp2-integration/component/wsrp/pom.xml 2010-09-13 13:40:17 UTC (rev
4174)
@@ -79,6 +79,11 @@
<artifactId>exo.portal.component.common</artifactId>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.component.portal</artifactId>
+ <scope>provided</scope>
+ </dependency>
<dependency>
<groupId>org.exoplatform.jcr</groupId>
Modified:
portal/branches/wsrp2-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/MOPPortalStructureProvider.java
===================================================================
---
portal/branches/wsrp2-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/MOPPortalStructureProvider.java 2010-09-13
13:25:39 UTC (rev 4173)
+++
portal/branches/wsrp2-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/MOPPortalStructureProvider.java 2010-09-13
13:40:17 UTC (rev 4174)
@@ -26,14 +26,18 @@
import org.chromattic.api.ChromatticSession;
import org.exoplatform.commons.chromattic.ChromatticLifeCycle;
import org.exoplatform.commons.chromattic.ChromatticManager;
-import org.gatein.common.NotYetImplemented;
+import org.exoplatform.container.ExoContainer;
+import org.exoplatform.portal.pom.spi.wsrp.WSRP;
import org.gatein.common.util.ParameterValidation;
+import org.gatein.mop.api.content.ContentType;
+import org.gatein.mop.api.content.Customization;
import org.gatein.mop.api.workspace.ObjectType;
import org.gatein.mop.api.workspace.Page;
import org.gatein.mop.api.workspace.Site;
import org.gatein.mop.api.workspace.Workspace;
import org.gatein.mop.api.workspace.ui.UIComponent;
import org.gatein.mop.api.workspace.ui.UIContainer;
+import org.gatein.mop.api.workspace.ui.UIWindow;
import org.gatein.wsrp.api.PortalStructureProvider;
import java.util.Collection;
@@ -53,8 +57,9 @@
private Map<String, String> pageIdToUUIDs;
private Map<String, String> windowIdToUUIDs;
- public MOPPortalStructureProvider(ChromatticManager manager)
+ public MOPPortalStructureProvider(ExoContainer container)
{
+ ChromatticManager manager =
(ChromatticManager)container.getComponentInstanceOfType(ChromatticManager.class);
lifeCycle = manager.getLifeCycle("mop");
pageIdToUUIDs = new HashMap<String, String>();
windowIdToUUIDs = new HashMap<String, String>();
@@ -63,29 +68,44 @@
public List<String> getPageIdentifiers()
{
ChromatticSession session = lifeCycle.getChromattic().openSession();
- Workspace workspace = session.findByPath(Workspace.class,
"/production/mop:workspace");
+ Workspace workspace = session.findByPath(Workspace.class,
"mop:workspace");
Collection<Site> sites = workspace.getSites(ObjectType.PORTAL_SITE);
for (Site site : sites)
{
- Page page = site.getRootPage();
- processPage(page);
+ Page page = site.getRootPage().getChild("pages");
+ if (page != null)
+ {
+ processPage(page, true);
+ }
}
- LinkedList<String> identifiers = new
LinkedList<String>(pageIdToUUIDs.values());
+ /*POMSession session = (POMSession) lifeCycle.getChromattic().openSession();
+ Iterator<Page> pages = session.findObjects(ObjectType.PAGE,
ObjectType.PORTAL_SITE, null, null);
+ while (pages.hasNext())
+ {
+ Page page = pages.next();
+ pageIdToUUIDs.put(page.getName(), page.getObjectId());
+ }*/
+
+ LinkedList<String> identifiers = new
LinkedList<String>(pageIdToUUIDs.keySet());
Collections.sort(identifiers);
return identifiers;
}
- private void processPage(Page page)
+ private void processPage(Page page, boolean ignoreCurrent)
{
+ if (!ignoreCurrent)
+ {
+ pageIdToUUIDs.put(page.getName(), page.getObjectId());
+ }
+
Collection<Page> children = page.getChildren();
if (ParameterValidation.existsAndIsNotEmpty(children))
{
for (Page child : children)
{
- pageIdToUUIDs.put(child.getName(), child.getObjectId());
- processPage(child);
+ processPage(child, false);
}
}
}
@@ -129,6 +149,15 @@
public void assignPortletToWindow(String portletId, String windowId, String pageId)
{
- throw new NotYetImplemented();
+ ChromatticSession session = lifeCycle.getChromattic().openSession();
+ String uuid = windowIdToUUIDs.get(windowId);
+ ParameterValidation.throwIllegalArgExceptionIfNull(uuid, "UUID for " +
windowId);
+ UIWindow window = session.findById(UIWindow.class, uuid);
+ /*WSRP wsrp = new WSRP();
+ wsrp.setPortletId(portletId);
+ wsrp.setState();
+ window.customize(WSRP.CONTENT_TYPE, portletId, wsrp);*/
+ Customization<?> customization = window.getCustomization();
+// window.customize()
}
}
Modified:
portal/branches/wsrp2-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/WSRPServiceIntegration.java
===================================================================
---
portal/branches/wsrp2-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/WSRPServiceIntegration.java 2010-09-13
13:25:39 UTC (rev 4173)
+++
portal/branches/wsrp2-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/WSRPServiceIntegration.java 2010-09-13
13:40:17 UTC (rev 4174)
@@ -54,6 +54,7 @@
import org.gatein.wci.WebAppListener;
import org.gatein.wci.impl.DefaultServletContainerFactory;
import org.gatein.wsrp.WSRPConstants;
+import org.gatein.wsrp.consumer.migration.MigrationService;
import org.gatein.wsrp.consumer.registry.ActivatingNullInvokerHandler;
import org.gatein.wsrp.consumer.registry.ConsumerRegistry;
import org.gatein.wsrp.producer.ProducerHolder;
@@ -227,6 +228,12 @@
consumerRegistry = new JCRConsumerRegistry(container);
consumerRegistry.setFederatingPortletInvoker(federatingPortletInvoker);
consumerRegistry.setSessionEventBroadcaster(sessionEventBroadcaster);
+
+ // migration service
+ MigrationService migrationService = new MigrationService();
+ migrationService.setStructureProvider(new
MOPPortalStructureProvider(container));
+ consumerRegistry.setMigrationService(migrationService);
+
consumerRegistry.start();
// set up a NullInvokerHandler so that when a remote producer is queried, we can
start it if needed