[gatein-commits] gatein SVN: r1978 - in portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state: consumer and 3 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Mar 4 11:53:00 EST 2010
Author: chris.laprun at jboss.com
Date: 2010-03-04 11:52:59 -0500 (Thu, 04 Mar 2010)
New Revision: 1978
Modified:
portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/JCRPersister.java
portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/consumer/JCRConsumerRegistry.java
portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/configuration/JCRProducerConfigurationService.java
portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/JCRRegistrationPersistenceManager.java
portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/state/JCRPortletStatePersistenceManager.java
Log:
- GTNPORTAL-737:
+ JCRPortletStatePersistenceManager was not using the specially defined workspace.
+ JCRPortletStatePersistenceManager was not properly persisting updates to states.
+ Added a new SessionLifeCycle implementation as it is currently not possible to pass the workspace name at
runtime to the SessionLifeCycle implementation used by Chromattic.
Modified: portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/JCRPersister.java
===================================================================
--- portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/JCRPersister.java 2010-03-04 16:51:12 UTC (rev 1977)
+++ portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/JCRPersister.java 2010-03-04 16:52:59 UTC (rev 1978)
@@ -46,18 +46,32 @@
public class JCRPersister
{
private Chromattic chrome;
- private static final String WORKSPACE_NAME = "wsrp-system";
+ public static final String WSRP_WORKSPACE_NAME = "wsrp-system";
+ public static final String PORTLET_STATES_WORKSPACE_NAME = "portlet-states-system";
private static final String REPOSITORY_NAME = "repository";
+ private String workspaceName;
- public JCRPersister(ExoContainer container)
+ public JCRPersister(ExoContainer container, String workspaceName)
{
+ this.workspaceName = workspaceName;
}
public void initializeBuilderFor(List<Class> mappingClasses) throws Exception
{
ChromatticBuilder builder = ChromatticBuilder.create();
builder.setOptionValue(ChromatticBuilder.INSTRUMENTOR_CLASSNAME, "org.chromattic.apt.InstrumentorImpl");
- builder.setOptionValue(ChromatticBuilder.SESSION_LIFECYCLE_CLASSNAME, WSRPSessionLifeCycle.class.getName());
+ if (PORTLET_STATES_WORKSPACE_NAME.equals(workspaceName))
+ {
+ builder.setOptionValue(ChromatticBuilder.SESSION_LIFECYCLE_CLASSNAME, PortletStatesSessionLifeCycle.class.getName());
+ }
+ else if (WSRP_WORKSPACE_NAME.equals(workspaceName))
+ {
+ builder.setOptionValue(ChromatticBuilder.SESSION_LIFECYCLE_CLASSNAME, WSRPSessionLifeCycle.class.getName());
+ }
+ else
+ {
+ throw new IllegalArgumentException("Unknown workspace name: '" + workspaceName + "'");
+ }
for (Class mappingClass : mappingClasses)
{
@@ -105,7 +119,7 @@
public Session login() throws RepositoryException
{
- return provider.getSession(WORKSPACE_NAME, repository);
+ return provider.getSession(WSRP_WORKSPACE_NAME, repository);
}
public Session login(String s) throws RepositoryException
@@ -134,6 +148,58 @@
}
}
+ public static class PortletStatesSessionLifeCycle implements SessionLifeCycle
+ {
+ private ManageableRepository repository;
+ private SessionProvider provider;
+
+ public PortletStatesSessionLifeCycle()
+ {
+ try
+ {
+ ExoContainer container = ExoContainerContext.getCurrentContainer();
+ RepositoryService repoService = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
+ repository = repoService.getRepository(REPOSITORY_NAME);
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
+
+ provider = SessionProvider.createSystemProvider();
+ }
+
+ public Session login() throws RepositoryException
+ {
+ return provider.getSession(PORTLET_STATES_WORKSPACE_NAME, repository);
+ }
+
+ public Session login(String s) throws RepositoryException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Session login(Credentials credentials, String s) throws RepositoryException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Session login(Credentials credentials) throws RepositoryException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void save(Session session) throws RepositoryException
+ {
+ session.save();
+ }
+
+ public void close(Session session)
+ {
+ session.logout();
+ }
+ }
+
public static class QNameFormatter implements ObjectFormatter
{
private static final String OPEN_BRACE_REPLACEMENT = "-__";
Modified: portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/consumer/JCRConsumerRegistry.java
===================================================================
--- portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/consumer/JCRConsumerRegistry.java 2010-03-04 16:51:12 UTC (rev 1977)
+++ portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/consumer/JCRConsumerRegistry.java 2010-03-04 16:52:59 UTC (rev 1978)
@@ -59,7 +59,7 @@
EndpointInfoMapping.class, RegistrationInfoMapping.class, RegistrationPropertyMapping.class,
RegistrationPropertyDescriptionMapping.class);
- persister = new JCRPersister(container);
+ persister = new JCRPersister(container, JCRPersister.WSRP_WORKSPACE_NAME);
persister.initializeBuilderFor(mappingClasses);
// persister = NewJCRPersister.getInstance(container);
}
Modified: portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/configuration/JCRProducerConfigurationService.java
===================================================================
--- portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/configuration/JCRProducerConfigurationService.java 2010-03-04 16:51:12 UTC (rev 1977)
+++ portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/configuration/JCRProducerConfigurationService.java 2010-03-04 16:52:59 UTC (rev 1978)
@@ -56,7 +56,7 @@
Collections.addAll(mappingClasses, ProducerConfigurationMapping.class, RegistrationRequirementsMapping.class,
RegistrationPropertyDescriptionMapping.class);
- persister = new JCRPersister(container);
+ persister = new JCRPersister(container, JCRPersister.WSRP_WORKSPACE_NAME);
persister.initializeBuilderFor(mappingClasses);
// persister = NewJCRPersister.getInstance(container);
Modified: portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/JCRRegistrationPersistenceManager.java
===================================================================
--- portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/JCRRegistrationPersistenceManager.java 2010-03-04 16:51:12 UTC (rev 1977)
+++ portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/JCRRegistrationPersistenceManager.java 2010-03-04 16:52:59 UTC (rev 1978)
@@ -57,7 +57,7 @@
public JCRRegistrationPersistenceManager(ExoContainer container) throws Exception
{
- persister = new JCRPersister(container);
+ persister = new JCRPersister(container, JCRPersister.WSRP_WORKSPACE_NAME);
List<Class> mappingClasses = new ArrayList<Class>(6);
Collections.addAll(mappingClasses, ConsumersAndGroupsMapping.class, ConsumerMapping.class, ConsumerGroupMapping.class,
Modified: portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/state/JCRPortletStatePersistenceManager.java
===================================================================
--- portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/state/JCRPortletStatePersistenceManager.java 2010-03-04 16:51:12 UTC (rev 1977)
+++ portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/state/JCRPortletStatePersistenceManager.java 2010-03-04 16:52:59 UTC (rev 1978)
@@ -51,7 +51,7 @@
public JCRPortletStatePersistenceManager(ExoContainer container) throws Exception
{
- persister = new JCRPersister(container);
+ persister = new JCRPersister(container, JCRPersister.PORTLET_STATES_WORKSPACE_NAME);
List<Class> mappingClasses = new ArrayList<Class>(6);
Collections.addAll(mappingClasses, PortletStateContextsMapping.class, PortletStateContextMapping.class, PortletStateMapping.class);
@@ -83,7 +83,7 @@
PortletStateMapping psm = pscm.getState();
psm.setProperties(propertyMap);
- persister.closeSession(session, false);
+ persister.closeSession(session, true);
}
@@ -94,7 +94,7 @@
PortletStateContextMapping pscm = getPortletStateContextMapping(session, stateId);
PortletStateContext context;
- if(pscm == null)
+ if (pscm == null)
{
context = null;
}
@@ -116,7 +116,7 @@
String encodedForPath = JCRPersister.PortletNameFormatter.encode(portletId);
PortletStateContextMapping pscm = session.findByPath(PortletStateContextMapping.class, PATH + encodedForPath);
- if(pscm == null)
+ if (pscm == null)
{
PortletStateContextsMapping portletStateContexts = getContexts(session);
pscm = portletStateContexts.createPortletStateContext(portletId);
More information about the gatein-commits
mailing list