[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