[gatein-commits] gatein SVN: r5298 - in epp/portal/branches/EPP_5_1_Branch: component/pc/src/main/java/org/exoplatform/portal/pc and 7 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Nov 26 09:38:51 EST 2010


Author: thomas.heute at jboss.com
Date: 2010-11-26 09:38:50 -0500 (Fri, 26 Nov 2010)
New Revision: 5298

Modified:
   epp/portal/branches/EPP_5_1_Branch/component/pc/src/main/java/org/exoplatform/portal/pc/ExoKernelIntegration.java
   epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/WSRPServiceIntegration.java
   epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/JCRPersister.java
   epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/consumer/JCRConsumerRegistry.java
   epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/consumer/mapping/ProducerInfosMapping.java
   epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/migration/JCRMigrationService.java
   epp/portal/branches/EPP_5_1_Branch/pom.xml
   epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/java/org/exoplatform/applicationregistry/webui/component/PortletExtraSerializer.java
   epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/java/org/exoplatform/applicationregistry/webui/component/UIAddApplicationForm.java
   epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/java/org/exoplatform/applicationregistry/webui/component/UIPortletManagement.java
   epp/portal/branches/EPP_5_1_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/application/UIPortletActionListener.java
Log:
JBEPP-664: Upgrade to WSRP 2.0.0-CR03 + related portal updates


Modified: epp/portal/branches/EPP_5_1_Branch/component/pc/src/main/java/org/exoplatform/portal/pc/ExoKernelIntegration.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/component/pc/src/main/java/org/exoplatform/portal/pc/ExoKernelIntegration.java	2010-11-26 13:56:38 UTC (rev 5297)
+++ epp/portal/branches/EPP_5_1_Branch/component/pc/src/main/java/org/exoplatform/portal/pc/ExoKernelIntegration.java	2010-11-26 14:38:50 UTC (rev 5298)
@@ -86,6 +86,10 @@
 
       //Container Stack
       ContainerPortletDispatcher portletContainerDispatcher = new ContainerPortletDispatcher();
+      
+      // Federating portlet invoker
+      FederatingPortletInvoker federatingPortletInvoker = new FederatingPortletInvokerService();
+      
       EventPayloadInterceptor eventPayloadInterceptor = new EventPayloadInterceptor();
       eventPayloadInterceptor.setNext(portletContainerDispatcher);
       RequestAttributeConversationInterceptor requestAttributeConversationInterceptor =
@@ -129,26 +133,24 @@
       // The producer portlet invoker
       ProducerPortletInvoker producerPortletInvoker = new ProducerPortletInvoker();
       producerPortletInvoker.setNext(containerPortletInvoker);
+      federatingPortletInvoker.registerInvoker(PortletInvoker.LOCAL_PORTLET_INVOKER_ID, producerPortletInvoker);
+
       producerPortletInvoker.setPersistenceManager(producerPersistenceManager);
       producerPortletInvoker.setStateManagementPolicy(producerStateManagementPolicy);
       producerPortletInvoker.setStateConverter(producerStateConverter);
 
       // The consumer portlet invoker
       PortletCustomizationInterceptor portletCustomizationInterceptor = new PortletCustomizationInterceptor();
-      portletCustomizationInterceptor.setNext(producerPortletInvoker);
+      portletCustomizationInterceptor.setNext(federatingPortletInvoker);
       ConsumerCacheInterceptor consumerCacheInterceptor = new ConsumerCacheInterceptor();
       consumerCacheInterceptor.setNext(portletCustomizationInterceptor);
       PortletInvokerInterceptor consumerPortletInvoker = new PortletInvokerInterceptor();
       consumerPortletInvoker.setNext(consumerCacheInterceptor);
 
-      // Federating portlet invoker
-      FederatingPortletInvoker federatingPortletInvoker = new FederatingPortletInvokerService();
+      // register federating portlet and consumerPortletInvoker invoker with container
+      container.registerComponentInstance(PortletInvoker.class, consumerPortletInvoker);
+      container.registerComponentInstance(FederatingPortletInvoker.class, federatingPortletInvoker);
 
-      // register local portlet invoker with federating portlet invoker
-      federatingPortletInvoker.registerInvoker(PortletInvoker.LOCAL_PORTLET_INVOKER_ID, consumerPortletInvoker);
-      // register federating portlet invoker with container
-      container.registerComponentInstance(PortletInvoker.class, federatingPortletInvoker);
-
       portletApplicationRegistry.start();
    }
 

Modified: epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/WSRPServiceIntegration.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/WSRPServiceIntegration.java	2010-11-26 13:56:38 UTC (rev 5297)
+++ epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/WSRPServiceIntegration.java	2010-11-26 14:38:50 UTC (rev 5298)
@@ -267,7 +267,7 @@
    {
       // retrieve federating portlet invoker from container
       FederatingPortletInvoker federatingPortletInvoker =
-         (FederatingPortletInvoker)container.getComponentInstanceOfType(PortletInvoker.class);
+         (FederatingPortletInvoker)container.getComponentInstanceOfType(FederatingPortletInvoker.class);
 
       // add our Session event listener to the ListenerService for use in org.exoplatform.web.GenericHttpListener
       ListenerService listenerService = (ListenerService)container.getComponentInstanceOfType(ListenerService.class);

Modified: epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/JCRPersister.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/JCRPersister.java	2010-11-26 13:56:38 UTC (rev 5297)
+++ epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/JCRPersister.java	2010-11-26 14:38:50 UTC (rev 5298)
@@ -103,7 +103,8 @@
 
    public ChromatticSession getSession()
    {
-      if (sessionHolder.get() == null)
+      ChromatticSession chromatticSession = sessionHolder.get();
+      if (chromatticSession == null)
       {
          ChromatticSession session = chrome.openSession();
          sessionHolder.set(session);
@@ -111,13 +112,13 @@
       }
       else
       {
-         return sessionHolder.get();
+         return chromatticSession;
       }
    }
 
    public void closeSession(boolean save)
    {
-      ChromatticSession session = getSession();
+      ChromatticSession session = getOpenedSessionOrFail();
       if (save)
       {
          synchronized (this)
@@ -126,11 +127,22 @@
          }
       }
       session.close();
+      sessionHolder.set(null);
    }
 
+   private ChromatticSession getOpenedSessionOrFail()
+   {
+      ChromatticSession session = sessionHolder.get();
+      if(session == null)
+      {
+         throw new IllegalStateException("Cannot close the session as it hasn't been opened first!");
+      }
+      return session;
+   }
+
    public synchronized void save()
    {
-      getSession().save();
+      getOpenedSessionOrFail().save();
    }
 
    public <T> boolean delete(T toDelete, StoresByPathManager<T> manager)

Modified: epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/consumer/JCRConsumerRegistry.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/consumer/JCRConsumerRegistry.java	2010-11-26 13:56:38 UTC (rev 5297)
+++ epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/consumer/JCRConsumerRegistry.java	2010-11-26 14:38:50 UTC (rev 5298)
@@ -34,6 +34,7 @@
 import org.gatein.portal.wsrp.state.consumer.mapping.RegistrationPropertyMapping;
 import org.gatein.portal.wsrp.state.mapping.RegistrationPropertyDescriptionMapping;
 import org.gatein.wsrp.WSRPConsumer;
+import org.gatein.wsrp.consumer.ConsumerException;
 import org.gatein.wsrp.consumer.ProducerInfo;
 import org.gatein.wsrp.consumer.registry.AbstractConsumerRegistry;
 import org.gatein.wsrp.consumer.registry.xml.XMLConsumerRegistry;
@@ -42,6 +43,7 @@
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author <a href="mailto:chris.laprun at jboss.com">Chris Laprun</a>
@@ -68,10 +70,11 @@
    @Override
    protected void save(ProducerInfo info, String messageOnError)
    {
-      ChromatticSession session = persister.getSession();
 
       try
       {
+         ChromatticSession session = persister.getSession();
+
          ProducerInfosMapping pims = getProducerInfosMapping(session);
          ProducerInfoMapping pim = pims.createProducerInfo(info.getId());
          String key = session.persist(pims, pim, info.getId());
@@ -82,15 +85,18 @@
       }
       catch (Exception e)
       {
-         e.printStackTrace();  // todo: fix me
          persister.closeSession(false);
+         throw new ConsumerException(messageOnError, e);
       }
    }
 
    @Override
    protected void delete(ProducerInfo info)
    {
-      persister.delete(info, this);
+      if (!persister.delete(info, this))
+      {
+         throw new ConsumerException("Couldn't delete ProducerInfo " + info);
+      }
    }
 
    @Override
@@ -103,20 +109,37 @@
             + "' hasn't been persisted and thus cannot be updated.");
       }
 
+      String oldId;
+      String newId;
+      boolean idUnchanged;
+
       ChromatticSession session = persister.getSession();
-      ProducerInfoMapping pim = session.findById(ProducerInfoMapping.class, key);
-      if (pim == null)
+
+      synchronized (this)
       {
-         throw new IllegalArgumentException("Couldn't find ProducerInfoMapping associated with key " + key);
+         ProducerInfoMapping pim = session.findById(ProducerInfoMapping.class, key);
+         if (pim == null)
+         {
+            throw new IllegalArgumentException("Couldn't find ProducerInfoMapping associated with key " + key);
+         }
+         oldId = pim.getId();
+         newId = producerInfo.getId();
+         pim.initFrom(producerInfo);
+
+         idUnchanged = oldId.equals(newId);
+
+         if (!idUnchanged)
+         {
+            ProducerInfosMapping pims = getProducerInfosMapping(session);
+            Map<String,ProducerInfoMapping> nameToProducerInfoMap = pims.getNameToProducerInfoMap();
+            nameToProducerInfoMap.put(pim.getId(), pim);
+         }
+
+         persister.closeSession(true);
       }
-      String oldId = pim.getId();
-      String newId = producerInfo.getId();
-      pim.initFrom(producerInfo);
 
-      persister.closeSession(true);
-
       // if the consumer's id has changed, return the old one so that state can be updated
-      return (oldId.equals(newId)) ? null : oldId;
+      return idUnchanged ? null : oldId;
    }
 
    @Override

Modified: epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/consumer/mapping/ProducerInfosMapping.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/consumer/mapping/ProducerInfosMapping.java	2010-11-26 13:56:38 UTC (rev 5297)
+++ epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/consumer/mapping/ProducerInfosMapping.java	2010-11-26 14:38:50 UTC (rev 5298)
@@ -28,6 +28,7 @@
 import org.chromattic.api.annotations.OneToMany;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author <a href="mailto:chris.laprun at jboss.com">Chris Laprun</a>
@@ -41,6 +42,9 @@
    @OneToMany
    public abstract List<ProducerInfoMapping> getProducerInfos();
 
+   @OneToMany
+   public abstract Map<String, ProducerInfoMapping> getNameToProducerInfoMap();
+
    @Create
    public abstract ProducerInfoMapping createProducerInfo(String producerId);
 }

Modified: epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/migration/JCRMigrationService.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/migration/JCRMigrationService.java	2010-11-26 13:56:38 UTC (rev 5297)
+++ epp/portal/branches/EPP_5_1_Branch/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/migration/JCRMigrationService.java	2010-11-26 14:38:50 UTC (rev 5298)
@@ -110,13 +110,20 @@
 
       ExportInfoMapping eim = session.findByPath(ExportInfoMapping.class, getPathFor(exportTime));
 
-      if (eim != null)
+      try
       {
-         return eim.toModel(null);
+         if (eim != null)
+         {
+            return eim.toModel(null);
+         }
+         else
+         {
+            return null;
+         }
       }
-      else
+      finally
       {
-         return null;
+         persister.closeSession(false);
       }
    }
 
@@ -128,6 +135,7 @@
       long exportTime = info.getExportTime();
       if (eim != null)
       {
+         persister.closeSession(false);
          throw new IllegalArgumentException("An ExportInfo with export time "
             + exportTime + " already exists!");
       }
@@ -164,6 +172,7 @@
          ChromatticSession session = persister.getSession();
          ExportInfosMapping mappings = getExportInfosMapping(session);
          exportInfosCount = mappings.getExportInfos().size();
+         persister.closeSession(false);
       }
 
       return exportInfosCount == 0;

Modified: epp/portal/branches/EPP_5_1_Branch/pom.xml
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/pom.xml	2010-11-26 13:56:38 UTC (rev 5297)
+++ epp/portal/branches/EPP_5_1_Branch/pom.xml	2010-11-26 14:38:50 UTC (rev 5298)
@@ -48,7 +48,7 @@
       <org.gatein.wci.version>2.0.2-GA</org.gatein.wci.version>
       <org.gatein.pc.version>2.2.0-GA</org.gatein.pc.version>
       <org.picketlink.idm>1.1.7.GA</org.picketlink.idm>
-      <org.gatein.wsrp.version>2.0.0-CR02</org.gatein.wsrp.version>
+      <org.gatein.wsrp.version>2.0.0-CR03</org.gatein.wsrp.version>
       <org.gatein.mop.version>1.0.3-GA</org.gatein.mop.version>
       <org.slf4j.version>1.5.6</org.slf4j.version>
       <rhino.version>1.6R5</rhino.version>

Modified: epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/java/org/exoplatform/applicationregistry/webui/component/PortletExtraSerializer.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/java/org/exoplatform/applicationregistry/webui/component/PortletExtraSerializer.java	2010-11-26 13:56:38 UTC (rev 5297)
+++ epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/java/org/exoplatform/applicationregistry/webui/component/PortletExtraSerializer.java	2010-11-26 14:38:50 UTC (rev 5298)
@@ -44,7 +44,7 @@
    public UIPortletManagement.PortletExtra read(PortletContext output) throws Exception
    {
       ExoContainer manager = ExoContainerContext.getCurrentContainer();
-      FederatingPortletInvoker portletInvoker = (FederatingPortletInvoker)manager.getComponentInstance(PortletInvoker.class);
+      FederatingPortletInvoker portletInvoker = (FederatingPortletInvoker)manager.getComponentInstance(FederatingPortletInvoker.class);
       Portlet portlet = portletInvoker.getPortlet(output);
       return new UIPortletManagement.PortletExtra(portlet);
    }

Modified: epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/java/org/exoplatform/applicationregistry/webui/component/UIAddApplicationForm.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/java/org/exoplatform/applicationregistry/webui/component/UIAddApplicationForm.java	2010-11-26 13:56:38 UTC (rev 5297)
+++ epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/java/org/exoplatform/applicationregistry/webui/component/UIAddApplicationForm.java	2010-11-26 14:38:50 UTC (rev 5298)
@@ -186,7 +186,7 @@
       ExoContainer manager = ExoContainerContext.getCurrentContainer();
 
       FederatingPortletInvoker portletInvoker =
-         (FederatingPortletInvoker)manager.getComponentInstance(PortletInvoker.class);
+         (FederatingPortletInvoker)manager.getComponentInstance(FederatingPortletInvoker.class);
       Set<Portlet> portlets = remote ? portletInvoker.getRemotePortlets() : portletInvoker.getLocalPortlets();
       List<Application> applications = new ArrayList<Application>(portlets.size());
       for (Portlet portlet : portlets)

Modified: epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/java/org/exoplatform/applicationregistry/webui/component/UIPortletManagement.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/java/org/exoplatform/applicationregistry/webui/component/UIPortletManagement.java	2010-11-26 13:56:38 UTC (rev 5297)
+++ epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/java/org/exoplatform/applicationregistry/webui/component/UIPortletManagement.java	2010-11-26 14:38:50 UTC (rev 5298)
@@ -100,7 +100,7 @@
       ExoContainer manager = ExoContainerContext.getCurrentContainer();
 
       FederatingPortletInvoker portletInvoker =
-         (FederatingPortletInvoker)manager.getComponentInstance(PortletInvoker.class);
+         (FederatingPortletInvoker)manager.getComponentInstance(FederatingPortletInvoker.class);
       boolean remote = REMOTE.equals(type);
 
       Set<Portlet> portlets;

Modified: epp/portal/branches/EPP_5_1_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/application/UIPortletActionListener.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/application/UIPortletActionListener.java	2010-11-26 13:56:38 UTC (rev 5297)
+++ epp/portal/branches/EPP_5_1_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/application/UIPortletActionListener.java	2010-11-26 14:38:50 UTC (rev 5298)
@@ -447,7 +447,7 @@
 
             log.trace("Try to get a resource of type: " + contentType + " for the portlet: "
                + uiPortlet.getPortletContext());
-            if (contentType.startsWith("text"))
+            if (piResponse.getChars() != null || contentType.startsWith("text"))
             {
                context.getResponse().setContentType(contentType);
                context.getWriter().write(piResponse.getContent());



More information about the gatein-commits mailing list