Author: thomas.heute(a)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@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@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());