[gatein-commits] gatein SVN: r8547 - in epp/portal/branches/EPP_5_1_RH_Branch: component/portal/src/main/java/org/exoplatform/portal/mop/navigation and 2 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Mar 8 11:18:25 EST 2012


Author: bdaw
Date: 2012-03-08 11:18:24 -0500 (Thu, 08 Mar 2012)
New Revision: 8547

Modified:
   epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/Visibility.java
   epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/CacheById.java
   epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NavigationContext.java
   epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NavigationServiceImpl.java
   epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NavigationServiceWrapper.java
   epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NavigationState.java
   epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NodeState.java
   epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/test/java/org/exoplatform/portal/mop/navigation/AbstractTestNavigationService.java
   epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/test/java/org/exoplatform/portal/mop/navigation/TestNavigationServiceSave.java
   epp/portal/branches/EPP_5_1_RH_Branch/web/portal/src/main/webapp/WEB-INF/conf/portal/portal-configuration.xml
Log:
GTNPORTAL-2367 Replication problem with navigation nodes: add/delete navigation node are not not propagated to other nodes in cluster.

Modified: epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/Visibility.java
===================================================================
--- epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/Visibility.java	2012-03-08 13:32:18 UTC (rev 8546)
+++ epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/Visibility.java	2012-03-08 16:18:24 UTC (rev 8547)
@@ -19,11 +19,13 @@
 
 package org.exoplatform.portal.mop;
 
+import java.io.Serializable;
+
 /**
  * @author <a href="mailto:julien.viet at exoplatform.com">Julien Viet</a>
  * @version $Revision$
  */
-public enum Visibility
+public enum Visibility implements Serializable
 {
 
    /**

Modified: epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/CacheById.java
===================================================================
--- epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/CacheById.java	2012-03-08 13:32:18 UTC (rev 8546)
+++ epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/CacheById.java	2012-03-08 16:18:24 UTC (rev 8547)
@@ -22,6 +22,8 @@
 import org.exoplatform.portal.mop.SiteKey;
 import org.exoplatform.portal.pom.config.POMSession;
 import org.exoplatform.portal.pom.data.MappedAttributes;
+import org.exoplatform.services.cache.CacheService;
+import org.exoplatform.services.cache.ExoCache;
 import org.gatein.mop.api.workspace.Navigation;
 import org.gatein.mop.api.workspace.ObjectType;
 import org.gatein.mop.api.workspace.Site;
@@ -59,26 +61,28 @@
    private InvalidationManager invalidationManager;
 
    /** . */
-   private Map<SiteKey, NavigationContext> navigationKeyCache;
+   private ExoCache<SiteKey, NavigationContext> navigationKeyCache;
 
    /** . */
-   private Map<String, SiteKey> navigationPathCache;
+   private ExoCache<String, SiteKey> navigationPathCache;
 
    /** . */
-   private Map<String, NodeData> nodeIdCache;
+   private ExoCache<String, NodeData> nodeIdCache;
 
    /** . */
-   private Map<String, String> nodePathCache;
+   private ExoCache<String, String> nodePathCache;
 
    /** . */
    private Session bridgeSession;
 
-   CacheById()
+   CacheById(CacheService cacheService)
    {
-      this.nodeIdCache = new ConcurrentHashMap<String, NodeData>(1000);
-      this.nodePathCache = new ConcurrentHashMap<String, String>(1000);
-      this.navigationKeyCache = new ConcurrentHashMap<SiteKey, NavigationContext>(1000);
-      this.navigationPathCache = new ConcurrentHashMap<String, SiteKey>(1000);
+
+      this.nodeIdCache = cacheService.getCacheInstance("NavigationService");
+      this.nodePathCache = cacheService.getCacheInstance("NavigationService");
+      this.navigationKeyCache = cacheService.getCacheInstance("NavigationService");
+      this.navigationPathCache = cacheService.getCacheInstance("NavigationService");
+
    }
 
    NodeData getNodeData(POMSession session, String nodeId)

Modified: epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NavigationContext.java
===================================================================
--- epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NavigationContext.java	2012-03-08 13:32:18 UTC (rev 8546)
+++ epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NavigationContext.java	2012-03-08 16:18:24 UTC (rev 8547)
@@ -21,11 +21,13 @@
 
 import org.exoplatform.portal.mop.SiteKey;
 
+import java.io.Serializable;
+
 /**
  * @author <a href="mailto:julien.viet at exoplatform.com">Julien Viet</a>
  * @version $Revision$
  */
-public class NavigationContext
+public class NavigationContext implements Serializable
 {
 
    /** . */

Modified: epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NavigationServiceImpl.java
===================================================================
--- epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NavigationServiceImpl.java	2012-03-08 13:32:18 UTC (rev 8546)
+++ epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NavigationServiceImpl.java	2012-03-08 16:18:24 UTC (rev 8547)
@@ -35,6 +35,7 @@
 import org.exoplatform.portal.tree.diff.HierarchyChangeType;
 import org.exoplatform.portal.tree.diff.HierarchyDiff;
 import org.exoplatform.portal.tree.diff.ListAdapter;
+import org.exoplatform.services.cache.ExoCache;
 import org.gatein.common.logging.Logger;
 import org.gatein.common.logging.LoggerFactory;
 import org.gatein.mop.api.Attributes;
@@ -65,14 +66,14 @@
    /** . */
    final Logger log = LoggerFactory.getLogger(NavigationServiceImpl.class);
 
-   public NavigationServiceImpl(POMSessionManager manager)
+   public NavigationServiceImpl(POMSessionManager manager, Cache cache)
    {
       if (manager == null)
       {
          throw new NullPointerException("No null pom session manager allowed");
       }
       this.manager = manager;
-      this.cache = new CacheById();
+      this.cache = cache;
    }
 
    public void start() throws Exception

Modified: epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NavigationServiceWrapper.java
===================================================================
--- epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NavigationServiceWrapper.java	2012-03-08 13:32:18 UTC (rev 8546)
+++ epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NavigationServiceWrapper.java	2012-03-08 16:18:24 UTC (rev 8547)
@@ -25,6 +25,7 @@
 import org.exoplatform.portal.mop.SiteKey;
 import static org.exoplatform.portal.mop.navigation.Utils.*;
 import org.exoplatform.portal.pom.config.POMSessionManager;
+import org.exoplatform.services.cache.CacheService;
 import org.exoplatform.services.listener.ListenerService;
 import org.exoplatform.services.organization.OrganizationService;
 import org.gatein.common.logging.Logger;
@@ -51,9 +52,10 @@
    /** . */
    private ListenerService listenerService;
 
-   public NavigationServiceWrapper(POMSessionManager manager, OrganizationService organization, ListenerService listenerService)
+   public NavigationServiceWrapper(POMSessionManager manager, OrganizationService organization, ListenerService listenerService, CacheService cacheService)
    {
-      this.service = new NavigationServiceImpl(manager);
+      Cache cache = new CacheById(cacheService);
+      this.service = new NavigationServiceImpl(manager, cache);
       this.listenerService = listenerService;
    }
 

Modified: epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NavigationState.java
===================================================================
--- epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NavigationState.java	2012-03-08 13:32:18 UTC (rev 8546)
+++ epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NavigationState.java	2012-03-08 16:18:24 UTC (rev 8547)
@@ -19,11 +19,13 @@
 
 package org.exoplatform.portal.mop.navigation;
 
+import java.io.Serializable;
+
 /**
  * @author <a href="mailto:julien.viet at exoplatform.com">Julien Viet</a>
  * @version $Revision$
  */
-public class NavigationState
+public class NavigationState implements Serializable
 {
 
    /** . */

Modified: epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NodeState.java
===================================================================
--- epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NodeState.java	2012-03-08 13:32:18 UTC (rev 8546)
+++ epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/navigation/NodeState.java	2012-03-08 16:18:24 UTC (rev 8547)
@@ -22,6 +22,7 @@
 import org.exoplatform.commons.utils.Safe;
 import org.exoplatform.portal.mop.Visibility;
 
+import java.io.Serializable;
 import java.util.Date;
 
 /**
@@ -30,7 +31,7 @@
  * @author <a href="mailto:julien.viet at exoplatform.com">Julien Viet</a>
  * @version $Revision$
  */
-public final class NodeState
+public final class NodeState implements Serializable
 {
 
    public static class Builder

Modified: epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/test/java/org/exoplatform/portal/mop/navigation/AbstractTestNavigationService.java
===================================================================
--- epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/test/java/org/exoplatform/portal/mop/navigation/AbstractTestNavigationService.java	2012-03-08 13:32:18 UTC (rev 8546)
+++ epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/test/java/org/exoplatform/portal/mop/navigation/AbstractTestNavigationService.java	2012-03-08 16:18:24 UTC (rev 8547)
@@ -24,6 +24,7 @@
 import org.exoplatform.portal.config.AbstractPortalTest;
 import org.exoplatform.portal.config.DataStorage;
 import org.exoplatform.portal.pom.config.POMSessionManager;
+import org.exoplatform.services.cache.CacheService;
 
 /**
  * @author <a href="mailto:julien.viet at exoplatform.com">Julien Viet</a>
@@ -40,6 +41,9 @@
    /** . */
    protected DataStorage dataStorage;
 
+   /** . */
+   protected CacheService cacheService;
+
    @Override
    protected void setUp() throws Exception
    {
@@ -48,7 +52,8 @@
       //
       PortalContainer container = PortalContainer.getInstance();
       mgr = (POMSessionManager)container.getComponentInstanceOfType(POMSessionManager.class);
-      service = new NavigationServiceImpl(mgr);
+      cacheService = (CacheService)container.getComponentInstanceOfType(CacheService.class);
+      service = new NavigationServiceImpl(mgr, new CacheById(cacheService));
       dataStorage = (DataStorage)container.getComponentInstanceOfType(DataStorage.class);
       //
       begin();
@@ -116,4 +121,9 @@
       service.stop();
       end();
    }
+   
+   protected CacheService getCacheService()
+   {
+      return cacheService;
+   }
 }

Modified: epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/test/java/org/exoplatform/portal/mop/navigation/TestNavigationServiceSave.java
===================================================================
--- epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/test/java/org/exoplatform/portal/mop/navigation/TestNavigationServiceSave.java	2012-03-08 13:32:18 UTC (rev 8546)
+++ epp/portal/branches/EPP_5_1_RH_Branch/component/portal/src/test/java/org/exoplatform/portal/mop/navigation/TestNavigationServiceSave.java	2012-03-08 16:18:24 UTC (rev 8547)
@@ -479,7 +479,8 @@
       sync(true);
 
       //
-      root = new NavigationServiceImpl(mgr).loadNode(Node.MODEL, nav, Scope.CHILDREN).getNode();
+      root = new NavigationServiceImpl(mgr, new CacheById(getCacheService()))
+         .loadNode(Node.MODEL, nav, Scope.CHILDREN).getNode();
       for (Node child : root.getChildren())
       {
          System.out.println("child : " + child.getId());

Modified: epp/portal/branches/EPP_5_1_RH_Branch/web/portal/src/main/webapp/WEB-INF/conf/portal/portal-configuration.xml
===================================================================
--- epp/portal/branches/EPP_5_1_RH_Branch/web/portal/src/main/webapp/WEB-INF/conf/portal/portal-configuration.xml	2012-03-08 13:32:18 UTC (rev 8546)
+++ epp/portal/branches/EPP_5_1_RH_Branch/web/portal/src/main/webapp/WEB-INF/conf/portal/portal-configuration.xml	2012-03-08 16:18:24 UTC (rev 8547)
@@ -331,6 +331,60 @@
         </object-param>
       </init-params>
     </component-plugin>
+
+    <component-plugin>
+      <name>addExoCacheConfig</name>
+      <set-method>addExoCacheConfig</set-method>
+      <type>org.exoplatform.services.cache.ExoCacheConfigPlugin</type>
+      <description>add Exo Cache Config</description>
+      <init-params>
+        <object-param>
+          <name>cache.config.NavigationService</name>
+          <description>The JBoss Cache configuration for the NavigationService</description>
+          <object type="org.exoplatform.services.cache.ExoCacheConfig">
+            <field name="name">
+              <string>NavigationService</string>
+            </field>
+            <field name="maxSize">
+              <int>5000</int>
+            </field>
+            <field name="liveTime">
+              <long>600</long>
+            </field>
+          </object>
+        </object-param>
+      </init-params>
+    </component-plugin>
+    <component-plugin profiles="cluster">
+      <name>addExoCacheConfig</name>
+      <set-method>addExoCacheConfig</set-method>
+      <type>org.exoplatform.services.cache.ExoCacheConfigPlugin</type>
+      <description>add Exo Cache Config</description>
+      <init-params>
+        <object-param>
+          <name>cache.config.NavigationService</name>
+          <description>The JBoss Cache configuration for the NavigationService</description>
+          <object type="org.exoplatform.services.cache.impl.jboss.ea.EAExoCacheConfig">
+            <field name="name">
+              <string>NavigationService</string>
+            </field>
+            <field name="expirationTimeout">
+              <long>600000</long>
+            </field>
+            <field name="maxNodes">
+             <int>5000</int>
+            </field>
+            <field name="distributed">
+              <boolean>true</boolean>
+            </field>
+            <field name="replicated">
+              <boolean>true</boolean>
+            </field>
+          </object>
+        </object-param>
+      </init-params>
+    </component-plugin>
+
   </external-component-plugins>
 
 </configuration>



More information about the gatein-commits mailing list