[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