exo-jcr SVN: r4067 - kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl and 1 other directory.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-03-10 07:14:16 -0500 (Thu, 10 Mar 2011)
New Revision: 4067
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/WorkspaceContainer.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/JMX.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/JMXManagementProvider.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/MBeanScopingData.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/PropertiesInfo.java
Log:
EXOJCR-1238: Applied the given patches, it helps to display properly the MBeans in the jconsole by keeping the order of the properties used to define the MBean
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java 2011-03-09 20:25:06 UTC (rev 4066)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java 2011-03-10 12:14:16 UTC (rev 4067)
@@ -139,7 +139,7 @@
this.config = config;
this.addNamespacePlugins = addNamespacePlugins;
- this.name = parent.getContext().getName() + "-" + config.getName();
+ this.name = config.getName();
SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>()
{
@@ -175,7 +175,7 @@
config.setAccessControl(AccessControlPolicy.OPTIONAL);
this.config = config;
- this.name = parent.getContext().getName() + "-" + config.getName();
+ this.name = config.getName();
SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>()
{
public Void run()
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/WorkspaceContainer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/WorkspaceContainer.java 2011-03-09 20:25:06 UTC (rev 4066)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/WorkspaceContainer.java 2011-03-10 12:14:16 UTC (rev 4067)
@@ -60,7 +60,7 @@
super(new MX4JComponentAdapterFactory(), parent);
repositoryContainer = parent;
- this.name = repositoryContainer.getName() + "-" + config.getName();
+ this.name = config.getName();
}
// Components access methods -------
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/JMX.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/JMX.java 2011-03-09 20:25:06 UTC (rev 4066)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/JMX.java 2011-03-10 12:14:16 UTC (rev 4067)
@@ -18,7 +18,6 @@
*/
package org.exoplatform.management.jmx.impl;
-import java.util.Hashtable;
import java.util.Map;
import javax.management.MalformedObjectNameException;
@@ -38,15 +37,8 @@
}
/**
- * This method create an object name from a generic map argument. The main reason is that
- * the method {@link javax.management.ObjectName#getInstance(String, java.util.Hashtable)} has
- * uses a non generic Hashtable with Java 5 and use a Hashtable<String, String> constructor in Java 6.
+ * This method create an object name from a generic map argument.
*
- * The suitable solution is therefore to use a non generic Hashtable but that creates compilation warning therefore
- * we encapsulate there this code in order to use the warning supression in that single place.
- *
- * @see ObjectName#getInstance(String, java.util.Hashtable)
- *
* @param domain The domain part of the object name.
* @param table A hash table containing one or more key
* properties. The key of each entry in the table is the key of a
@@ -62,11 +54,20 @@
* quoting.
* @exception NullPointerException One of the parameters is null.
*/
- @SuppressWarnings("unchecked")
public static ObjectName createObjectName(String domain, Map<String, String> table)
throws MalformedObjectNameException, NullPointerException
{
- Hashtable tmp = new Hashtable(table);
- return ObjectName.getInstance(domain, tmp);
+ StringBuilder name = new StringBuilder(128);
+ name.append(domain).append(':');
+ int i = 0;
+ for (Map.Entry<String, String> entry : table.entrySet())
+ {
+ if (i++ > 0)
+ {
+ name.append(",");
+ }
+ name.append(entry.getKey()).append('=').append(entry.getValue());
+ }
+ return ObjectName.getInstance(name.toString());
}
}
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/JMXManagementProvider.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/JMXManagementProvider.java 2011-03-09 20:25:06 UTC (rev 4066)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/JMXManagementProvider.java 2011-03-10 12:14:16 UTC (rev 4067)
@@ -28,7 +28,7 @@
import java.security.AccessController;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
-import java.util.Hashtable;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -76,7 +76,7 @@
}
catch (Exception e)
{
- e.printStackTrace();
+ LOG.warn("Could not create the ExoModelMBean for the class " + (context == null ? null : (context.getResource() == null ? null : context.getResource().getClass())), e);
}
//
@@ -93,7 +93,7 @@
}
catch (MalformedObjectNameException e)
{
- e.printStackTrace();
+ LOG.warn("Could not create the ObjectName for the class " + context.getResource().getClass(), e);
}
}
@@ -102,12 +102,14 @@
// Merge with the container hierarchy context
try
{
- Map<String, String> props = new Hashtable<String, String>();
+ Map<String, String> props = new LinkedHashMap<String, String>();
// Merge scoping properties
List<MBeanScopingData> list = context.getScopingData(MBeanScopingData.class);
- for (MBeanScopingData scopingData : list)
+ // Read in revert order because wee received list of parents in upward order
+ for (int i = list.size(); i > 0; i--)
{
+ MBeanScopingData scopingData = list.get(i - 1);
props.putAll(scopingData);
}
@@ -134,7 +136,7 @@
}
catch (MalformedObjectNameException e)
{
- e.printStackTrace();
+ LOG.warn("Could not register the MBean for the class " + context.getResource().getClass(), e);
}
}
}
@@ -226,11 +228,11 @@
}
catch (InstanceNotFoundException e)
{
- e.printStackTrace();
+ LOG.warn("Could not unregister the MBean " + name, e);
}
catch (MBeanRegistrationException e)
{
- e.printStackTrace();
+ LOG.warn("Could not unregister the MBean " + name, e);
}
}
}
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/MBeanScopingData.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/MBeanScopingData.java 2011-03-09 20:25:06 UTC (rev 4066)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/MBeanScopingData.java 2011-03-10 12:14:16 UTC (rev 4067)
@@ -18,14 +18,14 @@
*/
package org.exoplatform.management.jmx.impl;
-import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.Map;
/**
* @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
* @version $Revision$
*/
-public class MBeanScopingData extends HashMap<String, String>
+public class MBeanScopingData extends LinkedHashMap<String, String>
{
public MBeanScopingData(int initialCapacity, float loadFactor)
{
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/PropertiesInfo.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/PropertiesInfo.java 2011-03-09 20:25:06 UTC (rev 4066)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/PropertiesInfo.java 2011-03-10 12:14:16 UTC (rev 4067)
@@ -25,7 +25,7 @@
import java.lang.annotation.Annotation;
import java.util.Collection;
-import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.Map;
/**
@@ -36,7 +36,7 @@
{
/** . */
- private Map<String, PropertyInfo> properties;
+ private final Map<String, PropertyInfo> properties;
public PropertiesInfo(Map<String, PropertyInfo> properties)
{
@@ -57,7 +57,7 @@
}
if (blah != null)
{
- Map<String, PropertyInfo> properties = new HashMap<String, PropertyInfo>();
+ Map<String, PropertyInfo> properties = new LinkedHashMap<String, PropertyInfo>();
for (Property property : blah)
{
PropertyInfo propertyInfo = new PropertyInfo(clazz, property);
15 years, 1 month
exo-jcr SVN: r4066 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-03-09 15:25:06 -0500 (Wed, 09 Mar 2011)
New Revision: 4066
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java
Log:
EXOJCR-1199: a regression prevented the repository container to be registered properly and then to register the mbean properly
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java 2011-03-09 17:12:48 UTC (rev 4065)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java 2011-03-09 20:25:06 UTC (rev 4066)
@@ -145,7 +145,7 @@
{
public Void run()
{
- parent.registerComponentInstance(name, this);
+ parent.registerComponentInstance(name, RepositoryContainer.this);
return null;
}
});
@@ -180,7 +180,7 @@
{
public Void run()
{
- parent.registerComponentInstance(name, this);
+ parent.registerComponentInstance(name, RepositoryContainer.this);
return null;
}
});
15 years, 1 month
exo-jcr SVN: r4065 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/util.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-03-09 12:12:48 -0500 (Wed, 09 Mar 2011)
New Revision: 4065
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/util/ConfigurationFormat.java
Log:
EXOJCR-1232: The int and long values did not resolve the variables
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/util/ConfigurationFormat.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/util/ConfigurationFormat.java 2011-03-07 18:12:35 UTC (rev 4064)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/util/ConfigurationFormat.java 2011-03-09 17:12:48 UTC (rev 4065)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.util;
+import org.exoplatform.container.xml.Deserializer;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
@@ -40,6 +41,7 @@
{
try
{
+ text = Deserializer.resolveNClean(text);
return StringNumberParser.parseInt(text);
}
catch (Throwable e)
@@ -53,6 +55,7 @@
{
try
{
+ text = Deserializer.resolveNClean(text);
return StringNumberParser.parseLong(text);
}
catch (Throwable e)
@@ -66,6 +69,7 @@
{
try
{
+ text = Deserializer.resolveNClean(text);
return StringNumberParser.parseTime(text);
}
catch (Throwable e)
15 years, 1 month
exo-jcr SVN: r4064 - ws/trunk/packaging/module/src/main/javascript.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-03-07 13:12:35 -0500 (Mon, 07 Mar 2011)
New Revision: 4064
Modified:
ws/trunk/packaging/module/src/main/javascript/ws.packaging.module.js
Log:
EXOJCR-1230: javax.Inject added
Modified: ws/trunk/packaging/module/src/main/javascript/ws.packaging.module.js
===================================================================
--- ws/trunk/packaging/module/src/main/javascript/ws.packaging.module.js 2011-03-07 18:11:44 UTC (rev 4063)
+++ ws/trunk/packaging/module/src/main/javascript/ws.packaging.module.js 2011-03-07 18:12:35 UTC (rev 4064)
@@ -36,6 +36,7 @@
addDependency(module.frameworks.json).
addDependency(new Project("org.exoplatform.ws", "exo.ws.rest.ext", "jar", module.version)).
addDependency(new Project("javax.annotation", "jsr250-api", "jar", "1.0")).
+ addDependency(new Project("javax.inject", "javax.inject", "jar", "1")).
addDependency(new Project("javax.ws.rs", "jsr311-api", "jar", "1.0")).
addDependency(new Project("commons-chain", "commons-chain", "jar", "1.2")).
addDependency(new Project("javax.xml.bind", "jaxb-api", "jar", "2.1"));
15 years, 1 month
exo-jcr SVN: r4063 - core/trunk/packaging/module/src/main/javascript.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-03-07 13:11:44 -0500 (Mon, 07 Mar 2011)
New Revision: 4063
Modified:
core/trunk/packaging/module/src/main/javascript/core.packaging.module.js
Log:
EXOJCR-1230: Tika added
Modified: core/trunk/packaging/module/src/main/javascript/core.packaging.module.js
===================================================================
--- core/trunk/packaging/module/src/main/javascript/core.packaging.module.js 2011-03-07 17:19:50 UTC (rev 4062)
+++ core/trunk/packaging/module/src/main/javascript/core.packaging.module.js 2011-03-07 18:11:44 UTC (rev 4063)
@@ -16,23 +16,15 @@
module.component.database =
new Project("org.exoplatform.core", "exo.core.component.database", "jar", module.version) .
- //addDependency(new Project("com.experlog", "xapool", "jar", "1.5.0")).
addDependency(new Project("org.hibernate", "hibernate-core", "jar", "3.3.2.GA")).
addDependency(new Project("org.hibernate", "hibernate-annotations", "jar", "3.4.0.GA")).
addDependency(new Project("org.hibernate", "hibernate-commons-annotations", "jar", "3.1.0.GA")).
addDependency(new Project("org.hibernate", "ejb3-persistence", "jar", "1.0.2.GA")).
addDependency(new Project("org.javassist", "javassist", "jar", "3.14.0-GA")).
- //addDependency(new Project("xdoclet", "xdoclet-hibernate-module", "jar", "1.2.3")).
- //addDependency(new Project("xdoclet", "xdoclet", "jar", "1.2.3")).
- //addDependency(new Project("xdoclet", "xdoclet-xdoclet-module", "jar", "1.2.3")).
- //addDependency(new Project("xdoclet", "xjavadoc", "jar", "1.2.3")).
addDependency(new Project("commons-collections", "commons-collections", "jar", "3.2.1")).
addDependency(new Project("c3p0", "c3p0", "jar", "0.9.1.2")).
addDependency(new Project("antlr", "antlr", "jar", "2.7.6rc1")).
addDependency(new Project("javax.transaction", "jta", "jar", "1.1")).
- //addDependency(new Project("jotm", "jotm_jrmp_stubs", "jar", "2.0.10")).
- //addDependency(new Project("jotm", "jotm", "jar", "2.0.10")).
- //addDependency(new Project("howl", "howl-logger", "jar", "0.1.11")).
addDependency(new Project("org.hsqldb", "hsqldb", "jar", "2.0.0")).
addDependency(new Project("javax.resource", "connector-api", "jar", "1.5"));
@@ -46,6 +38,8 @@
addDependency(new Project("org.apache.poi", "poi-scratchpad", "jar", "3.6")).
addDependency(new Project("org.apache.poi", "poi-ooxml", "jar", "3.6")).
addDependency(new Project("org.apache.poi", "poi-ooxml-schemas", "jar", "3.6")).
+ addDependency(new Project("org.apache.tika", "tika-core", "jar", "0.7")).
+ addDependency(new Project("org.apache.tika", "tika-parsers", "jar", "0.7")).
addDependency(new Project("org.apache.xmlbeans", "xmlbeans", "jar", "2.3.0"));
module.component.organization =
15 years, 1 month
exo-jcr SVN: r4062 - in kernel/trunk/exo.kernel.container/src: main/java/org/exoplatform/container/jmx and 2 other directories.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-03-07 12:19:50 -0500 (Mon, 07 Mar 2011)
New Revision: 4062
Modified:
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ConcurrentPicoContainer.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/MX4JComponentAdapter.java
kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/TestExoContainer.java
kernel/trunk/exo.kernel.container/src/test/resources/org/exoplatform/container/test-exo-container.xml
Log:
EXOJCR-1228: To avoid regressions, we propose a patch for it however this bug is mainly due to bad practices in WCM. Indeed they don't add the dependencies in the constructor as they are supposed to do but they get them within the body of the constructor using an Util class that call container.getComponentInstanceOfType(Class)
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ConcurrentPicoContainer.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ConcurrentPicoContainer.java 2011-03-05 11:29:46 UTC (rev 4061)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ConcurrentPicoContainer.java 2011-03-07 17:19:50 UTC (rev 4062)
@@ -88,6 +88,12 @@
private final AtomicBoolean disposed = new AtomicBoolean();
private final Set<PicoContainer> children = new CopyOnWriteArraySet<PicoContainer>();
+
+ /**
+ * Context used to keep in memory the components that are currently being created.
+ * This context is used to prevent cyclic resolution due to component plugins.
+ */
+ private final ThreadLocal<Map<Object, Object>> depResolutionCtx = new ThreadLocal<Map<Object, Object>>();
/**
* Creates a new container with a custom ComponentAdapterFactory and a parent container.
@@ -391,12 +397,64 @@
}
}
+ /**
+ * If no {@link ComponentAdapter} can be found it returns <tt>null</tt> otherwise
+ * it first try to get it from the dependency resolution context if it still cannot
+ * be found we get the instance from the {@link ComponentAdapter}.
+ * @see org.picocontainer.PicoContainer#getComponentInstanceOfType(java.lang.Class)
+ */
public Object getComponentInstanceOfType(Class componentType)
{
final ComponentAdapter componentAdapter = getComponentAdapterOfType(componentType);
- return componentAdapter == null ? null : getInstance(componentAdapter);
+ if (componentAdapter == null)
+ return null;
+ Map<Object, Object> map = depResolutionCtx.get();
+ if (map != null)
+ {
+ Object result = map.get(componentType);
+ if (result != null)
+ {
+ return result;
+ }
+ }
+ return getInstance(componentAdapter);
}
-
+
+ /**
+ * Add the component corresponding to the given key, to the dependency resolution
+ * context
+ * @param key The key of the component to add to the context
+ * @param component The instance of the component to add to the context
+ */
+ public void addComponentToCtx(Object key, Object component)
+ {
+ Map<Object, Object> map = depResolutionCtx.get();
+ if (map == null)
+ {
+ map = new HashMap<Object, Object>();
+ depResolutionCtx.set(map);
+ }
+ map.put(key, component);
+ }
+
+ /**
+ * Remove the component corresponding to the given key, from the dependency resolution
+ * context
+ * @param key The key of the component to remove from the context
+ */
+ public void removeComponentFromCtx(Object key)
+ {
+ Map<Object, Object> map = depResolutionCtx.get();
+ if (map != null)
+ {
+ map.remove(key);
+ if (map.isEmpty())
+ {
+ depResolutionCtx.set(null);
+ }
+ }
+ }
+
private Object getInstance(ComponentAdapter componentAdapter)
{
// check wether this is our adapter
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java 2011-03-05 11:29:46 UTC (rev 4061)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java 2011-03-07 17:19:50 UTC (rev 4062)
@@ -81,12 +81,6 @@
}
static Log log = ExoLogger.getLogger("exo.kernel.container.ExoContainer");
-
- /**
- * Context used to keep in memory the components that are currently being created.
- * This context is used to prevent cyclic resolution due to component plugins.
- */
- private final ThreadLocal<Map<Object, Object>> depResolutionCtx = new ThreadLocal<Map<Object, Object>>();
private Map<String, ComponentLifecyclePlugin> componentLifecylePlugin_ =
new HashMap<String, ComponentLifecyclePlugin>();
@@ -369,7 +363,7 @@
}
else
{
- args[i] = getComponentInstanceOfTypeInternal(parameters[i]);
+ args[i] = getComponentInstanceOfType(parameters[i]);
if (args[i] == null)
{
satisfied = false;
@@ -393,59 +387,4 @@
ConfigurationManager cm = (ConfigurationManager)getComponentInstanceOfType(ConfigurationManager.class);
return cm == null ? null : cm.getConfiguration();
}
-
- /**
- * Add the component corresponding to the given key, to the dependency resolution
- * context
- * @param key The key of the component to add to the context
- * @param component The instance of the component to add to the context
- */
- public void addComponentToCtx(Object key, Object component)
- {
- Map<Object, Object> map = depResolutionCtx.get();
- if (map == null)
- {
- map = new HashMap<Object, Object>();
- depResolutionCtx.set(map);
- }
- map.put(key, component);
- }
-
- /**
- * Remove the component corresponding to the given key, from the dependency resolution
- * context
- * @param key The key of the component to remove from the context
- */
- public void removeComponentFromCtx(Object key)
- {
- Map<Object, Object> map = depResolutionCtx.get();
- if (map != null)
- {
- map.remove(key);
- if (map.isEmpty())
- {
- depResolutionCtx.set(null);
- }
- }
- }
-
- /**
- * Try to get the component from the dependency resolution context and if it cannot be found
- * it will try to get it from the method <code>getComponentInstanceOfType</code>
- * @param componentType the type of the component to find
- * @return the instance of the component corresponding to the given component type
- */
- private Object getComponentInstanceOfTypeInternal(Class componentType)
- {
- Map<Object, Object> map = depResolutionCtx.get();
- if (map != null)
- {
- Object result = map.get(componentType);
- if (result != null)
- {
- return result;
- }
- }
- return getComponentInstanceOfType(componentType);
- }
}
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/MX4JComponentAdapter.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/MX4JComponentAdapter.java 2011-03-05 11:29:46 UTC (rev 4061)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/MX4JComponentAdapter.java 2011-03-07 17:19:50 UTC (rev 4062)
@@ -182,7 +182,7 @@
}
catch (Exception ex)
{
- log.error("Failed to instanciate plugin " + plugin.getName() + "for component " + component + ": "
+ log.error("Failed to instanciate plugin " + plugin.getName() + " for component " + component + ": "
+ ex.getMessage(), ex);
}
}
Modified: kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/TestExoContainer.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/TestExoContainer.java 2011-03-05 11:29:46 UTC (rev 4061)
+++ kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/TestExoContainer.java 2011-03-07 17:19:50 UTC (rev 4062)
@@ -111,6 +111,30 @@
assertEquals(value, plugin.myClass_);
}
+ public void testStackOverFlow2()
+ {
+ final RootContainer container = createRootContainer("test-exo-container.xml");
+ SOE1 soe1 = (SOE1)container.getComponentInstanceOfType(SOE1.class);
+ assertNotNull(soe1);
+ SOEPlugin soe1Plugin = soe1.plugin;
+ assertNotNull(soe1Plugin);
+ assertNotNull(soe1Plugin.soe2);
+ assertEquals(soe1, soe1Plugin.soe2.soe1);
+ }
+
+ public void testStackOverFlow3()
+ {
+ final RootContainer container = createRootContainer("test-exo-container.xml");
+ SOE2 soe2 = (SOE2)container.getComponentInstanceOfType(SOE2.class);
+ assertNotNull(soe2);
+ assertNotNull(soe2.soe1);
+ SOEPlugin soe1Plugin = soe2.soe1.plugin;
+ assertNotNull(soe1Plugin);
+ assertNotNull(soe1Plugin.soe2);
+ assertEquals(soe2.soe1, soe1Plugin.soe2.soe1);
+ assertEquals(container.getComponentInstanceOfType(SOE1.class), soe2.soe1);
+ }
+
public void testCyclicRef()
{
final RootContainer container = createRootContainer("test-exo-container.xml", "testCyclicRef");
@@ -835,5 +859,32 @@
{
disposed = true;
}
- }
+ }
+
+ public static class SOE1
+ {
+ public SOEPlugin plugin;
+ public void addPlugin(SOEPlugin plugin)
+ {
+ this.plugin = plugin;
+ }
+ }
+
+ public static class SOEPlugin extends BaseComponentPlugin
+ {
+ public SOE2 soe2;
+ public SOEPlugin(SOE2 soe2)
+ {
+ this.soe2 = soe2;
+ }
+ }
+
+ public static class SOE2
+ {
+ public SOE1 soe1;
+ public SOE2()
+ {
+ this.soe1 = (SOE1)ExoContainerContext.getCurrentContainer().getComponentInstanceOfType(SOE1.class);
+ }
+ }
}
Modified: kernel/trunk/exo.kernel.container/src/test/resources/org/exoplatform/container/test-exo-container.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/org/exoplatform/container/test-exo-container.xml 2011-03-05 11:29:46 UTC (rev 4061)
+++ kernel/trunk/exo.kernel.container/src/test/resources/org/exoplatform/container/test-exo-container.xml 2011-03-07 17:19:50 UTC (rev 4062)
@@ -45,6 +45,19 @@
</component-plugin>
</component-plugins>
</component>
+ <component>
+ <type>org.exoplatform.container.TestExoContainer$SOE1</type>
+ <component-plugins>
+ <component-plugin>
+ <name>stackoverflow-test-plugin</name>
+ <set-method>addPlugin</set-method>
+ <type>org.exoplatform.container.TestExoContainer$SOEPlugin</type>
+ </component-plugin>
+ </component-plugins>
+ </component>
+ <component>
+ <type>org.exoplatform.container.TestExoContainer$SOE2</type>
+ </component>
<component profiles="testCyclicRef">
<type>org.exoplatform.container.TestExoContainer$A</type>
</component>
15 years, 1 month
exo-jcr SVN: r4061 - in jcr/trunk/exo.jcr.component.core/src: main/resources/conf/portal/cluster and 2 other directories.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-03-05 06:29:46 -0500 (Sat, 05 Mar 2011)
New Revision: 4061
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java
jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/infinispan-indexer.xml
jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/infinispan-lock.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-indexer.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-lock.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-indexer.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-lock.xml
Log:
EXOJCR-833: fix configuration
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java 2011-03-04 15:13:03 UTC (rev 4060)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java 2011-03-05 11:29:46 UTC (rev 4061)
@@ -488,7 +488,7 @@
// HSSQL
if (dialect.equals(DBConstants.DB_DIALECT_HSQLDB))
{
- blobType = "OBJECT";
+ blobType = "VARBINARY(65535)";
}
// MYSQL
else if (dialect.equals(DBConstants.DB_DIALECT_MYSQL) || dialect.equals(DBConstants.DB_DIALECT_MYSQL_UTF8))
Modified: jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/infinispan-indexer.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/infinispan-indexer.xml 2011-03-04 15:13:03 UTC (rev 4060)
+++ jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/infinispan-indexer.xml 2011-03-05 11:29:46 UTC (rev 4061)
@@ -50,6 +50,7 @@
<transaction transactionManagerLookupClass="org.infinispan.transaction.lookup.JBossStandaloneJTAManagerLookup" syncRollbackPhase="false" syncCommitPhase="false"/>
<jmxStatistics enabled="true"/>
<deadlockDetection enabled="true" spinDuration="100"/>
+ <eviction strategy="NONE"/>
<loaders passivation="false" shared="false" preload="false">
<loader class="${infinispan-cachestore-classname}" fetchPersistentState="false" ignoreModifications="false" purgeOnStartup="false">
Modified: jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/infinispan-lock.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/infinispan-lock.xml 2011-03-04 15:13:03 UTC (rev 4060)
+++ jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/infinispan-lock.xml 2011-03-05 11:29:46 UTC (rev 4061)
@@ -50,6 +50,7 @@
<transaction transactionManagerLookupClass="org.infinispan.transaction.lookup.JBossStandaloneJTAManagerLookup" syncRollbackPhase="false" syncCommitPhase="false"/>
<jmxStatistics enabled="true"/>
<deadlockDetection enabled="true" spinDuration="100"/>
+ <eviction strategy="NONE"/>
<loaders passivation="false" shared="true" preload="true">
<loader class="org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore" fetchPersistentState="false" ignoreModifications="false" purgeOnStartup="false">
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-indexer.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-indexer.xml 2011-03-04 15:13:03 UTC (rev 4060)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-indexer.xml 2011-03-05 11:29:46 UTC (rev 4061)
@@ -50,6 +50,7 @@
<transaction transactionManagerLookupClass="org.infinispan.transaction.lookup.JBossStandaloneJTAManagerLookup" syncRollbackPhase="false" syncCommitPhase="false"/>
<jmxStatistics enabled="true"/>
<deadlockDetection enabled="true" spinDuration="100"/>
+ <eviction strategy="NONE"/>
<loaders passivation="false" shared="false" preload="false">
<loader class="${infinispan-cachestore-classname}" fetchPersistentState="false" ignoreModifications="false" purgeOnStartup="false">
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-lock.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-lock.xml 2011-03-04 15:13:03 UTC (rev 4060)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-lock.xml 2011-03-05 11:29:46 UTC (rev 4061)
@@ -50,6 +50,7 @@
<transaction transactionManagerLookupClass="org.infinispan.transaction.lookup.JBossStandaloneJTAManagerLookup" syncRollbackPhase="false" syncCommitPhase="false"/>
<jmxStatistics enabled="true"/>
<deadlockDetection enabled="true" spinDuration="100"/>
+ <eviction strategy="NONE"/>
<loaders passivation="false" shared="true" preload="true">
<loader class="org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore" fetchPersistentState="false" ignoreModifications="false" purgeOnStartup="false">
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-indexer.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-indexer.xml 2011-03-04 15:13:03 UTC (rev 4060)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-indexer.xml 2011-03-05 11:29:46 UTC (rev 4061)
@@ -38,6 +38,9 @@
<locking isolationLevel="READ_COMMITTED" lockAcquisitionTimeout="20000" writeSkewCheck="false" concurrencyLevel="500"/>
<jmxStatistics enabled="true"/>
<deadlockDetection enabled="true" spinDuration="100"/>
+ <eviction strategy="NONE"/>
+ <transaction transactionManagerLookupClass="org.infinispan.transaction.lookup.JBossStandaloneJTAManagerLookup" syncRollbackPhase="false" syncCommitPhase="false"/>
+
<loaders passivation="false" shared="false" preload="false">
<loader class="${infinispan-cachestore-classname}" fetchPersistentState="false" ignoreModifications="false" purgeOnStartup="false">
<async enabled="false"/>
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-lock.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-lock.xml 2011-03-04 15:13:03 UTC (rev 4060)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-lock.xml 2011-03-05 11:29:46 UTC (rev 4061)
@@ -39,6 +39,7 @@
<transaction transactionManagerLookupClass="org.infinispan.transaction.lookup.JBossStandaloneJTAManagerLookup" syncRollbackPhase="false" syncCommitPhase="false"/>
<jmxStatistics enabled="true"/>
<deadlockDetection enabled="true" spinDuration="100"/>
+ <eviction strategy="NONE"/>
<loaders passivation="false" shared="true" preload="true">
<loader class="org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore" fetchPersistentState="false" ignoreModifications="false" purgeOnStartup="false">
15 years, 1 month
exo-jcr SVN: r4060 - in jcr/trunk/exo.jcr.component.core/src: main/java/org/exoplatform/services/jcr/impl/core/lock/infinispan and 4 other directories.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-03-04 10:13:03 -0500 (Fri, 04 Mar 2011)
New Revision: 4060
Added:
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-indexer.xml
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/cacheable/AbstractCacheableLockManager.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/infinispan/ISPNCacheableLockManagerImpl.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java
jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/infinispan-lock.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-lock.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-lock.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-sjdbc.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config.xml
Log:
EXOJCR-833: adopt ISPN for testing in cluster env
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/cacheable/AbstractCacheableLockManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/cacheable/AbstractCacheableLockManager.java 2011-03-04 12:43:34 UTC (rev 4059)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/cacheable/AbstractCacheableLockManager.java 2011-03-04 15:13:03 UTC (rev 4060)
@@ -52,7 +52,6 @@
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import org.exoplatform.services.security.IdentityConstants;
-import org.jboss.cache.Cache;
import org.picocontainer.Startable;
import java.io.BufferedOutputStream;
@@ -73,7 +72,6 @@
import javax.jcr.RepositoryException;
import javax.jcr.lock.LockException;
-import javax.transaction.Transaction;
import javax.transaction.TransactionManager;
/**
@@ -132,20 +130,6 @@
*/
private final Log LOG = ExoLogger.getLogger("exo.jcr.component.core.AbstractCacheableLockManager");
- protected LockActionNonTxAware<Integer, Object> getNumLocks;
-
- protected LockActionNonTxAware<Boolean, Object> hasLocks;
-
- protected LockActionNonTxAware<Boolean, String> isLockLive;
-
- protected LockActionNonTxAware<Object, LockData> refresh;
-
- protected LockActionNonTxAware<Boolean, String> lockExist;
-
- protected LockActionNonTxAware<LockData, String> getLockDataById;
-
- protected LockActionNonTxAware<List<LockData>, Object> getLockList;
-
/**
* Constructor.
*
@@ -198,38 +182,7 @@
return lockTimeOut;
}
- @Managed
- @ManagedDescription("The number of active locks")
- public int getNumLocks()
- {
- try
- {
- return executeLockActionNonTxAware(getNumLocks, null);
- }
- catch (LockException e)
- {
- // ignore me will never occur
- }
- return -1;
- }
-
/**
- * Indicates if some locks have already been created
- */
- protected boolean hasLocks()
- {
- try
- {
- return executeLockActionNonTxAware(hasLocks, null);
- }
- catch (LockException e)
- {
- // ignore me will never occur
- }
- return true;
- }
-
- /**
* Return new instance of session lock manager.
*/
public SessionLockManager getSessionLockManager(String sessionId, SessionDataManager transientManager)
@@ -240,25 +193,6 @@
}
/**
- * Check is LockManager contains lock. No matter it is in pending or persistent state.
- *
- * @param nodeId - locked node id
- * @return
- */
- public boolean isLockLive(String nodeId) throws LockException
- {
- try
- {
- return executeLockActionNonTxAware(isLockLive, nodeId);
- }
- catch (LockException e)
- {
- // ignore me will never occur
- }
- return false;
- }
-
- /**
* {@inheritDoc}
*/
public boolean isTXAware()
@@ -439,16 +373,6 @@
}
/**
- * Refreshed lock data in cache
- *
- * @param newLockData
- */
- public void refreshLockData(LockData newLockData) throws LockException
- {
- executeLockActionNonTxAware(refresh, newLockData);
- }
-
- /**
* Remove expired locks. Used from LockRemover.
*/
public synchronized void removeExpired()
@@ -527,21 +451,6 @@
*/
protected abstract void internalUnLock(String sessionId, String nodeIdentifier) throws LockException;
- /**
- * {@inheritDoc}
- */
- public boolean lockExist(String nodeId)
- {
- try
- {
- return executeLockActionNonTxAware(lockExist, nodeId);
- }
- catch (LockException e)
- {
- // ignore me will never occur
- }
- return false;
- }
/**
* {@inheritDoc}
@@ -641,31 +550,7 @@
return retval;
}
- protected LockData getLockDataById(String nodeId)
- {
- try
- {
- return executeLockActionNonTxAware(getLockDataById, nodeId);
- }
- catch (LockException e)
- {
- // ignore me will never occur
- }
- return null;
- }
- protected synchronized List<LockData> getLockList()
- {
- try
- {
- return executeLockActionNonTxAware(getLockList, null);
- }
- catch (LockException e)
- {
- // ignore me will never occur
- }
- return null;
- }
/**
* Remove lock, used by Lock remover.
@@ -746,58 +631,7 @@
sessionLockManagers.remove(sessionID);
}
- /**
- * Execute the given action outside a transaction. This is needed since the {@link Cache} used by implementation of {@link CacheableLockManager}
- * to manage the persistence of its locks thanks to a {@link CacheLoader} and a {@link CacheLoader} lock the cache {@link Node}
- * even for read operations which cause deadlock issue when a XA {@link Transaction} is already opened
- * @throws LockException when a exception occurs
- */
- private <R, A> R executeLockActionNonTxAware(LockActionNonTxAware<R, A> action, A arg) throws LockException
- {
- Transaction tx = null;
- try
- {
- if (tm != null)
- {
- try
- {
- tx = tm.suspend();
- }
- catch (Exception e)
- {
- LOG.warn("Cannot suspend the current transaction", e);
- }
- }
- return action.execute(arg);
- }
- finally
- {
- if (tx != null)
- {
- try
- {
- tm.resume(tx);
- }
- catch (Exception e)
- {
- LOG.warn("Cannot resume the current transaction", e);
- }
- }
- }
- }
- /**
- * Actions that are not supposed to be called within a transaction
- *
- * Created by The eXo Platform SAS
- * Author : Nicolas Filotto
- * nicolas.filotto(a)exoplatform.com
- * 21 janv. 2010
- */
- protected static interface LockActionNonTxAware<R, A>
- {
- R execute(A arg) throws LockException;
- }
/**
* {@inheritDoc}
@@ -968,6 +802,43 @@
}
/**
+ * Returns the number of active locks.
+ */
+ @Managed
+ @ManagedDescription("The number of active locks")
+ public abstract int getNumLocks();
+
+ /**
+ * Indicates if some locks have already been created.
+ */
+ protected abstract boolean hasLocks();
+
+ /**
+ * Check is LockManager contains lock. No matter it is in pending or persistent state.
+ */
+ public abstract boolean isLockLive(String nodeId) throws LockException;
+
+ /**
+ * Refreshed lock data in cache
+ */
+ public abstract void refreshLockData(LockData newLockData) throws LockException;
+
+ /**
+ * Check is LockManager contains lock.
+ */
+ public abstract boolean lockExist(String nodeId);
+
+ /**
+ * Returns lock data by node identifier.
+ */
+ protected abstract LockData getLockDataById(String nodeId);
+
+ /**
+ * Returns all locks.
+ */
+ protected abstract List<LockData> getLockList();
+
+ /**
* Puts lock data directly into cache.
*
* @param lockData
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/infinispan/ISPNCacheableLockManagerImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/infinispan/ISPNCacheableLockManagerImpl.java 2011-03-04 12:43:34 UTC (rev 4059)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/infinispan/ISPNCacheableLockManagerImpl.java 2011-03-04 15:13:03 UTC (rev 4060)
@@ -124,72 +124,84 @@
{
throw new RepositoryConfigurationException("Cache configuration not found");
}
+ }
- this.getNumLocks = new LockActionNonTxAware<Integer, Object>()
- {
- public Integer execute(Object arg)
- {
- return cache.size();
- }
- };
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int getNumLocks()
+ {
+ return cache.size();
+ }
- this.hasLocks = new LockActionNonTxAware<Boolean, Object>()
- {
- public Boolean execute(Object arg)
- {
- return !cache.isEmpty();
- }
- };
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isLockLive(String nodeId) throws LockException
+ {
+ return cache.containsKey(nodeId);
+ }
- this.isLockLive = new LockActionNonTxAware<Boolean, String>()
- {
- public Boolean execute(String nodeId)
- {
- return cache.containsKey(nodeId);
- }
- };
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected LockData getLockDataById(String nodeId)
+ {
+ return (LockData)cache.get(nodeId);
+ }
- this.refresh = new LockActionNonTxAware<Object, LockData>()
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected synchronized List<LockData> getLockList()
+ {
+ Collection<Object> datas = cache.values();
+
+ List<LockData> locksData = new ArrayList<LockData>();
+ for (Object lockData : datas)
{
- public Object execute(LockData newLockData) throws LockException
+ if (lockData != null)
{
- Object oldValue = PrivilegedISPNCacheHelper.put(cache, newLockData.getNodeIdentifier(), newLockData);
- if (oldValue == null)
- {
- throw new LockException("Can't refresh lock for node " + newLockData.getNodeIdentifier()
- + " since lock is not exist");
- }
- return null;
+ locksData.add((LockData)lockData);
}
- };
+ }
+ return locksData;
+ }
- this.lockExist = this.isLockLive;
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean lockExist(String nodeId)
+ {
+ return cache.containsKey(nodeId);
+ }
- this.getLockDataById = new LockActionNonTxAware<LockData, String>()
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void refreshLockData(LockData newLockData) throws LockException
+ {
+ Object oldValue = PrivilegedISPNCacheHelper.put(cache, newLockData.getNodeIdentifier(), newLockData);
+ if (oldValue == null)
{
- public LockData execute(String nodeId) throws LockException
- {
- return (LockData)cache.get(nodeId);
- }
- };
+ throw new LockException("Can't refresh lock for node " + newLockData.getNodeIdentifier()
+ + " since lock is not exist");
+ }
+ }
- this.getLockList = new LockActionNonTxAware<List<LockData>, Object>()
- {
- public List<LockData> execute(Object arg) throws LockException
- {
- Collection<Object> datas = cache.values();
-
- List<LockData> locksData = new ArrayList<LockData>();
- for (Object lockData : datas)
- {
- if (lockData != null)
- {
- locksData.add((LockData)lockData);
- }
- }
- return locksData;
- }
- };
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected boolean hasLocks()
+ {
+ return !cache.isEmpty();
}
/**
@@ -273,7 +285,7 @@
// HSSQL
if (dialect.equals(DBConstants.DB_DIALECT_HSQLDB))
{
- blobType = "OBJECT";
+ blobType = "VARBINARY(65535)";
}
// MYSQL
else if (dialect.equals(DBConstants.DB_DIALECT_MYSQL) || dialect.equals(DBConstants.DB_DIALECT_MYSQL_UTF8))
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java 2011-03-04 12:43:34 UTC (rev 4059)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java 2011-03-04 15:13:03 UTC (rev 4060)
@@ -25,6 +25,7 @@
import org.exoplatform.services.jcr.config.WorkspaceEntry;
import org.exoplatform.services.jcr.impl.core.lock.LockRemoverHolder;
import org.exoplatform.services.jcr.impl.core.lock.cacheable.AbstractCacheableLockManager;
+import org.exoplatform.services.jcr.impl.core.lock.cacheable.CacheableLockManager;
import org.exoplatform.services.jcr.impl.core.lock.cacheable.CacheableSessionLockManager;
import org.exoplatform.services.jcr.impl.core.lock.cacheable.LockData;
import org.exoplatform.services.jcr.impl.dataflow.persistent.WorkspacePersistentDataManager;
@@ -62,6 +63,7 @@
import javax.jcr.lock.LockException;
import javax.naming.InitialContext;
import javax.sql.DataSource;
+import javax.transaction.Transaction;
import javax.transaction.TransactionManager;
/**
@@ -115,6 +117,20 @@
private final boolean shareable;
+ private final LockActionNonTxAware<Integer, Object> getNumLocks;
+
+ private final LockActionNonTxAware<Boolean, Object> hasLocks;
+
+ private final LockActionNonTxAware<Boolean, String> isLockLive;
+
+ private final LockActionNonTxAware<Object, LockData> refresh;
+
+ private final LockActionNonTxAware<Boolean, String> lockExist;
+
+ private final LockActionNonTxAware<LockData, String> getLockDataById;
+
+ private final LockActionNonTxAware<List<LockData>, Object> getLockList;
+
/**
* Constructor.
*
@@ -282,6 +298,117 @@
}
/**
+ * {@inheritDoc}
+ */
+ @Override
+ public int getNumLocks()
+ {
+ try
+ {
+ return executeLockActionNonTxAware(getNumLocks, null);
+ }
+ catch (LockException e)
+ {
+ // ignore me will never occur
+ }
+ return -1;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected boolean hasLocks()
+ {
+ try
+ {
+ return executeLockActionNonTxAware(hasLocks, null);
+ }
+ catch (LockException e)
+ {
+ // ignore me will never occur
+ }
+ return true;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isLockLive(String nodeId) throws LockException
+ {
+ try
+ {
+ return executeLockActionNonTxAware(isLockLive, nodeId);
+ }
+ catch (LockException e)
+ {
+ // ignore me will never occur
+ }
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void refreshLockData(LockData newLockData) throws LockException
+ {
+ executeLockActionNonTxAware(refresh, newLockData);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean lockExist(String nodeId)
+ {
+ try
+ {
+ return executeLockActionNonTxAware(lockExist, nodeId);
+ }
+ catch (LockException e)
+ {
+ // ignore me will never occur
+ }
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected LockData getLockDataById(String nodeId)
+ {
+ try
+ {
+ return executeLockActionNonTxAware(getLockDataById, nodeId);
+ }
+ catch (LockException e)
+ {
+ // ignore me will never occur
+ }
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected synchronized List<LockData> getLockList()
+ {
+ try
+ {
+ return executeLockActionNonTxAware(getLockList, null);
+ }
+ catch (LockException e)
+ {
+ // ignore me will never occur
+ }
+ return null;
+ }
+
+ /**
* If JDBC cache loader is used, then fills-in column types. If column type configured from jcr-configuration file,
* then nothing is overridden. Parameters are injected into the given parameterEntry.
*/
@@ -572,6 +699,59 @@
}
/**
+ * Execute the given action outside a transaction. This is needed since the {@link Cache} used by implementation of {@link CacheableLockManager}
+ * to manage the persistence of its locks thanks to a {@link CacheLoader} and a {@link CacheLoader} lock the cache {@link Node}
+ * even for read operations which cause deadlock issue when a XA {@link Transaction} is already opened
+ * @throws LockException when a exception occurs
+ */
+ private <R, A> R executeLockActionNonTxAware(LockActionNonTxAware<R, A> action, A arg) throws LockException
+ {
+ Transaction tx = null;
+ try
+ {
+ if (tm != null)
+ {
+ try
+ {
+ tx = tm.suspend();
+ }
+ catch (Exception e)
+ {
+ LOG.warn("Cannot suspend the current transaction", e);
+ }
+ }
+ return action.execute(arg);
+ }
+ finally
+ {
+ if (tx != null)
+ {
+ try
+ {
+ tm.resume(tx);
+ }
+ catch (Exception e)
+ {
+ LOG.warn("Cannot resume the current transaction", e);
+ }
+ }
+ }
+ }
+
+ /**
+ * Actions that are not supposed to be called within a transaction
+ *
+ * Created by The eXo Platform SAS
+ * Author : Nicolas Filotto
+ * nicolas.filotto(a)exoplatform.com
+ * 21 janv. 2010
+ */
+ protected static interface LockActionNonTxAware<R, A>
+ {
+ R execute(A arg) throws LockException;
+ }
+
+ /**
* {@inheritDoc}
*/
@Override
Modified: jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/infinispan-lock.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/infinispan-lock.xml 2011-03-04 12:43:34 UTC (rev 4059)
+++ jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/infinispan-lock.xml 2011-03-04 15:13:03 UTC (rev 4060)
@@ -25,6 +25,12 @@
xmlns="urn:infinispan:config:4.0">
<global>
+ <evictionScheduledExecutor factory="org.infinispan.executors.DefaultScheduledExecutorFactory">
+ <properties>
+ <property name="threadNamePrefix" value="EvictionThread"/>
+ </properties>
+ </evictionScheduledExecutor>
+
<globalJmxStatistics jmxDomain="infinispan" enabled="true" allowDuplicateDomains="true"/>
<transport transportClass="org.infinispan.remoting.transport.jgroups.JGroupsTransport" clusterName="${infinispan-cluster-name}" distributedSyncTimeout="20000">
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-lock.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-lock.xml 2011-03-04 12:43:34 UTC (rev 4059)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-lock.xml 2011-03-04 15:13:03 UTC (rev 4060)
@@ -25,6 +25,12 @@
xmlns="urn:infinispan:config:4.0">
<global>
+ <evictionScheduledExecutor factory="org.infinispan.executors.DefaultScheduledExecutorFactory">
+ <properties>
+ <property name="threadNamePrefix" value="EvictionThread"/>
+ </properties>
+ </evictionScheduledExecutor>
+
<globalJmxStatistics jmxDomain="infinispan" enabled="true" allowDuplicateDomains="true"/>
<transport transportClass="org.infinispan.remoting.transport.jgroups.JGroupsTransport" clusterName="${infinispan-cluster-name}" distributedSyncTimeout="20000">
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml 2011-03-04 12:43:34 UTC (rev 4059)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml 2011-03-04 15:13:03 UTC (rev 4060)
@@ -72,7 +72,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-lock.xml" />
<property name="jgroups-configuration" value="flush-udp.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1_ws" />
@@ -138,7 +138,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-lock.xml" />
<property name="jgroups-configuration" value="flush-udp.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1_ws1" />
@@ -204,7 +204,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-lock.xml" />
<property name="jgroups-configuration" value="flush-udp.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1_ws2" />
@@ -293,7 +293,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-lock.xml" />
<property name="jgroups-configuration" value="flush-udp.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1_ws3" />
@@ -368,7 +368,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-lock.xml" />
<property name="jgroups-configuration" value="flush-udp.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db2_ws" />
@@ -432,7 +432,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-lock.xml" />
<property name="jgroups-configuration" value="flush-udp.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db2_ws1" />
@@ -516,7 +516,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-lock.xml" />
<property name="jgroups-configuration" value="flush-udp.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1tck_ws" />
@@ -589,7 +589,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-lock.xml" />
<property name="jgroups-configuration" value="flush-udp.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1tck_ws1" />
@@ -665,7 +665,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-lock.xml" />
<property name="jgroups-configuration" value="flush-udp.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1tck_ws2" />
Added: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-indexer.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-indexer.xml (rev 0)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-indexer.xml 2011-03-04 15:13:03 UTC (rev 4060)
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<infinispan
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:infinispan:config:4.0 http://www.infinispan.org/schemas/infinispan-config-4.0.xsd"
+ xmlns="urn:infinispan:config:4.0">
+
+ <global>
+ <evictionScheduledExecutor factory="org.infinispan.executors.DefaultScheduledExecutorFactory">
+ <properties>
+ <property name="threadNamePrefix" value="EvictionThread"/>
+ </properties>
+ </evictionScheduledExecutor>
+
+ <globalJmxStatistics jmxDomain="infinispan" enabled="true" allowDuplicateDomains="true"/>
+ </global>
+
+ <default>
+ <locking isolationLevel="READ_COMMITTED" lockAcquisitionTimeout="20000" writeSkewCheck="false" concurrencyLevel="500"/>
+ <jmxStatistics enabled="true"/>
+ <deadlockDetection enabled="true" spinDuration="100"/>
+ <loaders passivation="false" shared="false" preload="false">
+ <loader class="${infinispan-cachestore-classname}" fetchPersistentState="false" ignoreModifications="false" purgeOnStartup="false">
+ <async enabled="false"/>
+ </loader>
+ </loaders>
+ </default>
+</infinispan>
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-lock.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-lock.xml 2011-03-04 12:43:34 UTC (rev 4059)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-lock.xml 2011-03-04 15:13:03 UTC (rev 4060)
@@ -25,6 +25,12 @@
xmlns="urn:infinispan:config:4.0">
<global>
+ <evictionScheduledExecutor factory="org.infinispan.executors.DefaultScheduledExecutorFactory">
+ <properties>
+ <property name="threadNamePrefix" value="EvictionThread"/>
+ </properties>
+ </evictionScheduledExecutor>
+
<globalJmxStatistics jmxDomain="infinispan" enabled="true" allowDuplicateDomains="true"/>
</global>
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-sjdbc.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-sjdbc.xml 2011-03-04 12:43:34 UTC (rev 4059)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-sjdbc.xml 2011-03-04 15:13:03 UTC (rev 4060)
@@ -66,13 +66,15 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
+ <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws" />
</properties>
</query-handler>
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-lock.xml" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1_ws" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
<property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
@@ -113,6 +115,8 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
+ <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws1" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -125,7 +129,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-lock.xml" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1_ws1" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
<property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
@@ -166,6 +170,8 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
+ <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws2" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -178,7 +184,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-lock.xml" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1_ws2" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
<property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
@@ -241,6 +247,8 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
+ <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws3" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -253,7 +261,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-lock.xml" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1_ws3" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
<property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
@@ -316,7 +324,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-lock.xml" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db2_ws" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
<property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
@@ -369,7 +377,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-lock.xml" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db2_ws1" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
<property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
@@ -427,6 +435,8 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
+ <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1tck/ws" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -440,7 +450,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-lock.xml" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1tck_ws" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
<property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
@@ -487,6 +497,8 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
+ <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1tck/ws1" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -499,7 +511,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-lock.xml" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1tck_ws1" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
<property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
@@ -546,6 +558,8 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
+ <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1tck/ws2" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -561,7 +575,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-lock.xml" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1tck_ws2" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
<property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config.xml 2011-03-04 12:43:34 UTC (rev 4059)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config.xml 2011-03-04 15:13:03 UTC (rev 4060)
@@ -66,13 +66,15 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
+ <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws" />
</properties>
</query-handler>
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-lock.xml" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1_ws" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
<property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
@@ -113,6 +115,8 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
+ <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws1" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -125,7 +129,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-lock.xml" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1_ws1" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
<property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
@@ -166,6 +170,8 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
+ <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws2" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -178,7 +184,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-lock.xml" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1_ws2" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
<property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
@@ -241,6 +247,8 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
+ <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws3" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -253,7 +261,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-lock.xml" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1_ws3" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
<property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
@@ -427,6 +435,8 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
+ <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1tck/ws" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -440,7 +450,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-lock.xml" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1tck_ws" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
<property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
@@ -487,6 +497,8 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
+ <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1tck/ws1" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -499,7 +511,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-lock.xml" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1tck_ws1" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
<property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
@@ -546,6 +558,8 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
+ <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1tck/ws2" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -561,7 +575,7 @@
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-config.xml" />
+ <property name="infinispan-configuration" value="conf/standalone/test-infinispan-lock.xml" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks_db1tck_ws2" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
<property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
15 years, 1 month
exo-jcr SVN: r4059 - jcr/trunk.
by do-not-reply@jboss.org
Author: dkuleshov
Date: 2011-03-04 07:43:34 -0500 (Fri, 04 Mar 2011)
New Revision: 4059
Modified:
jcr/trunk/pom.xml
Log:
EXOJCR-1159: reverted slf4j from 1.6.1 back to 1.5.8
Modified: jcr/trunk/pom.xml
===================================================================
--- jcr/trunk/pom.xml 2011-03-04 12:42:28 UTC (rev 4058)
+++ jcr/trunk/pom.xml 2011-03-04 12:43:34 UTC (rev 4059)
@@ -223,12 +223,12 @@
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
- <version>1.6.1</version>
+ <version>1.5.8</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
- <version>1.6.1</version>
+ <version>1.5.8</version>
<scope>test</scope>
</dependency>
<dependency>
15 years, 1 month
exo-jcr SVN: r4058 - ws/trunk.
by do-not-reply@jboss.org
Author: dkuleshov
Date: 2011-03-04 07:42:28 -0500 (Fri, 04 Mar 2011)
New Revision: 4058
Modified:
ws/trunk/pom.xml
Log:
EXOJCR-1159: reverted slf4j from 1.6.1 back to 1.5.8
Modified: ws/trunk/pom.xml
===================================================================
--- ws/trunk/pom.xml 2011-03-04 12:40:07 UTC (rev 4057)
+++ ws/trunk/pom.xml 2011-03-04 12:42:28 UTC (rev 4058)
@@ -176,7 +176,7 @@
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
- <version>1.6.1</version>
+ <version>1.5.8</version>
<scope>test</scope>
</dependency>
<dependency>
15 years, 1 month