exo-jcr SVN: r4077 - kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-03-11 09:19:25 -0500 (Fri, 11 Mar 2011)
New Revision: 4077
Modified:
kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/JobSchedulerService.java
Log:
EXOJCR-1243: JobSchedulerService interface should include: addPeriodJob and addCronJob
Modified: kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/JobSchedulerService.java
===================================================================
--- kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/JobSchedulerService.java 2011-03-11 13:56:38 UTC (rev 4076)
+++ kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/JobSchedulerService.java 2011-03-11 14:19:25 UTC (rev 4077)
@@ -38,8 +38,12 @@
public void addPeriodJob(JobInfo jinfo, PeriodInfo pinfo) throws Exception;
+ public void addPeriodJob(ComponentPlugin plugin) throws Exception;
+
public void addCronJob(JobInfo jinfo, String exp) throws Exception;
-
+
+ public void addCronJob(ComponentPlugin plugin) throws Exception;
+
public boolean removeJob(JobInfo jinfo) throws Exception;
public void addPeriodJob(JobInfo jinfo, PeriodInfo pinfo, JobDataMap jdatamap) throws Exception;
15 years, 1 month
exo-jcr SVN: r4076 - in core/trunk: exo.core.component.organization.jdbc/src/main/java/org/exoplatform/services/organization/jdbc and 1 other directory.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-03-11 08:56:38 -0500 (Fri, 11 Mar 2011)
New Revision: 4076
Modified:
core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/impl/UserImpl.java
core/trunk/exo.core.component.organization.jdbc/src/main/java/org/exoplatform/services/organization/jdbc/UserImpl.java
Log:
EXOJCR-1242: UserImpl toString() wrong return value : only the @organizationId info.
Modified: core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/impl/UserImpl.java
===================================================================
--- core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/impl/UserImpl.java 2011-03-11 07:38:09 UTC (rev 4075)
+++ core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/impl/UserImpl.java 2011-03-11 13:56:38 UTC (rev 4076)
@@ -173,7 +173,7 @@
// toString
public String toString()
{
- return "User[" + id + "|" + userName + "]" + organizationId == null ? "" : ("@" + organizationId);
+ return "User[" + id + "|" + userName + "]" + (organizationId == null ? "" : ("@" + organizationId));
}
public String getOrganizationId()
Modified: core/trunk/exo.core.component.organization.jdbc/src/main/java/org/exoplatform/services/organization/jdbc/UserImpl.java
===================================================================
--- core/trunk/exo.core.component.organization.jdbc/src/main/java/org/exoplatform/services/organization/jdbc/UserImpl.java 2011-03-11 07:38:09 UTC (rev 4075)
+++ core/trunk/exo.core.component.organization.jdbc/src/main/java/org/exoplatform/services/organization/jdbc/UserImpl.java 2011-03-11 13:56:38 UTC (rev 4076)
@@ -144,7 +144,7 @@
public String toString()
{
- return "User[" + dbObjectId_ + "|" + userName + "]" + organizationId == null ? "" : ("@" + organizationId);
+ return "User[" + dbObjectId_ + "|" + userName + "]" + (organizationId == null ? "" : ("@" + organizationId));
}
public String getOrganizationId()
15 years, 1 month
exo-jcr SVN: r4075 - in jcr/trunk/exo.jcr.component.core: src/test/java/org/exoplatform/services/jcr/impl/core and 1 other directory.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-03-11 02:38:09 -0500 (Fri, 11 Mar 2011)
New Revision: 4075
Modified:
jcr/trunk/exo.jcr.component.core/pom.xml
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestSessionDataManager.java
Log:
EXOJCR-1047: fix test
Modified: jcr/trunk/exo.jcr.component.core/pom.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/pom.xml 2011-03-10 18:04:31 UTC (rev 4074)
+++ jcr/trunk/exo.jcr.component.core/pom.xml 2011-03-11 07:38:09 UTC (rev 4075)
@@ -419,7 +419,6 @@
<exclude>org/exoplatform/services/jcr/**/usecases/**/RemoveSameNameSiblingTest.java</exclude>
<exclude>org/exoplatform/services/jcr/**/usecases/**/TestQueryWithNumberAndSpace.java</exclude>
<exclude>org/exoplatform/services/jcr/**/usecases/BaseUsecasesTest.java</exclude>
- <exclude>org/exoplatform/services/jcr/**/impl/**/TestSessionDataManager.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/SQLBenchmarkTest.java</exclude>
</excludes>
</configuration>
@@ -720,7 +719,6 @@
<exclude>org/exoplatform/services/jcr/**/usecases/**/TestQueryWithNumberAndSpace.java</exclude>
<exclude>org/exoplatform/services/jcr/**/usecases/BaseUsecasesTest.java</exclude>
<exclude>org/exoplatform/services/jcr/**/usecases/**/ExportWorkspaceSystemViewTest.java</exclude>
- <exclude>org/exoplatform/services/jcr/**/impl/**/TestSessionDataManager.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/TestLinkedWorkspaceStorageCacheMetrics.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/SQLBenchmarkTest.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/TestCleanableFileStreamValueData.java</exclude>
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestSessionDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestSessionDataManager.java 2011-03-10 18:04:31 UTC (rev 4074)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestSessionDataManager.java 2011-03-11 07:38:09 UTC (rev 4075)
@@ -83,20 +83,6 @@
// modificationManager.getTransactManager().saveItem(testRoot);
}
- @Override
- public void tearDown() throws Exception
- {
- if (log.isDebugEnabled())
- log.debug(" >before delete> " + modificationManager.dump());
- modificationManager.delete(testRoot.nodeData());
- if (log.isDebugEnabled())
- log.debug(" >after delete> " + modificationManager.dump());
- modificationManager.commit(testRoot.nodeData().getQPath());
-
- // testRoot.remove();
- // testRoot.save();
- }
-
public void testItemReferencePool() throws Exception
{
15 years, 1 month
exo-jcr SVN: r4074 - in jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl: storage/value/cas and 1 other directory.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-03-10 13:04:31 -0500 (Thu, 10 Mar 2011)
New Revision: 4074
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/storage/value/cas/JDBCValueContentAddressStorageImpl.java
Log:
EXOJCR-833: adopt ISPN for testing on MySQL
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-10 18:03:20 UTC (rev 4073)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/infinispan/ISPNCacheableLockManagerImpl.java 2011-03-10 18:04:31 UTC (rev 4074)
@@ -115,7 +115,8 @@
// configure cache loader parameters with correct DB data-types
configureJDBCCacheLoader(config.getLockManager());
- cache = factory.createCache("Lock_" + config.getUniqueName(), config.getLockManager());
+ // ISPN adds regionId to table name and therefore for some db table name is too long
+ cache = factory.createCache("Lock_" + config.getUniqueName().hashCode(), config.getLockManager());
// Context recall is a workaround of JDBCCacheLoader starting.
context.recall();
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/cas/JDBCValueContentAddressStorageImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/cas/JDBCValueContentAddressStorageImpl.java 2011-03-10 18:03:20 UTC (rev 4073)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/cas/JDBCValueContentAddressStorageImpl.java 2011-03-10 18:04:31 UTC (rev 4074)
@@ -25,8 +25,6 @@
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
-import java.security.AccessController;
-import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
@@ -156,34 +154,7 @@
try
{
- PrivilegedExceptionAction<DataSource> action = new PrivilegedExceptionAction<DataSource>()
- {
- public DataSource run() throws Exception
- {
- return (DataSource)new InitialContext().lookup(sn);
- }
- };
- try
- {
- dataSource = AccessController.doPrivileged(action);
- }
- catch (PrivilegedActionException pae)
- {
- Throwable cause = pae.getCause();
- if (cause instanceof NamingException)
- {
- throw (NamingException)cause;
- }
- else if (cause instanceof RuntimeException)
- {
- throw (RuntimeException)cause;
- }
- else
- {
- throw new RuntimeException(cause);
- }
- }
-
+ dataSource = (DataSource)new InitialContext().lookup(sn);
Connection conn = null;
Statement st = null;
15 years, 1 month
exo-jcr SVN: r4073 - in kernel/trunk: exo.kernel.component.common/src/main/java/org/exoplatform/services/naming and 1 other directory.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-03-10 13:03:20 -0500 (Thu, 10 Mar 2011)
New Revision: 4073
Modified:
kernel/trunk/exo.kernel.commons/src/main/java/org/exoplatform/commons/utils/SecurityHelper.java
kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/naming/SimpleContext.java
Log:
EXOJCR-1159: add privileged block of code
Modified: kernel/trunk/exo.kernel.commons/src/main/java/org/exoplatform/commons/utils/SecurityHelper.java
===================================================================
--- kernel/trunk/exo.kernel.commons/src/main/java/org/exoplatform/commons/utils/SecurityHelper.java 2011-03-10 16:11:21 UTC (rev 4072)
+++ kernel/trunk/exo.kernel.commons/src/main/java/org/exoplatform/commons/utils/SecurityHelper.java 2011-03-10 18:03:20 UTC (rev 4073)
@@ -28,6 +28,7 @@
import java.security.PrivilegedExceptionAction;
import java.sql.SQLException;
+import javax.naming.NamingException;
import javax.xml.parsers.ParserConfigurationException;
/**
@@ -73,13 +74,45 @@
}
/**
- * Launches action in privileged mode. Can throw only IO exception.
+ * Launches action in privileged mode. Can throw only NamingException.
*
* @param <E>
* @param action
* @return
* @throws IOException
*/
+ public static <E> E doPrivilegedNamingExceptionAction(PrivilegedExceptionAction<E> action) throws NamingException
+ {
+ try
+ {
+ return AccessController.doPrivileged(action);
+ }
+ catch (PrivilegedActionException pae)
+ {
+ Throwable cause = pae.getCause();
+ if (cause instanceof NamingException)
+ {
+ throw (NamingException)cause;
+ }
+ else if (cause instanceof RuntimeException)
+ {
+ throw (RuntimeException)cause;
+ }
+ else
+ {
+ throw new RuntimeException(cause);
+ }
+ }
+ }
+
+ /**
+ * Launches action in privileged mode. Can throw only SQL exception.
+ *
+ * @param <E>
+ * @param action
+ * @return
+ * @throws IOException
+ */
public static <E> E doPrivilegedSQLExceptionAction(PrivilegedExceptionAction<E> action) throws SQLException
{
try
Modified: kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/naming/SimpleContext.java
===================================================================
--- kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/naming/SimpleContext.java 2011-03-10 16:11:21 UTC (rev 4072)
+++ kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/naming/SimpleContext.java 2011-03-10 18:03:20 UTC (rev 4073)
@@ -18,6 +18,9 @@
*/
package org.exoplatform.services.naming;
+import org.exoplatform.commons.utils.SecurityHelper;
+
+import java.security.PrivilegedExceptionAction;
import java.util.Hashtable;
import javax.naming.Binding;
@@ -57,12 +60,18 @@
Object obj = objects.get(name);
if (obj instanceof Reference)
{
- Reference ref = (Reference)obj;
+ final Reference ref = (Reference)obj;
String factoryCN = ref.getFactoryClassName();
try
{
- ObjectFactory factory = (ObjectFactory)Class.forName(factoryCN).newInstance();
- obj = factory.getObjectInstance(ref, null, null, null);
+ final ObjectFactory factory = (ObjectFactory)Class.forName(factoryCN).newInstance();
+ obj = SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<Object>()
+ {
+ public Object run() throws Exception
+ {
+ return factory.getObjectInstance(ref, null, null, null);
+ }
+ });
}
catch (Exception e)
{
15 years, 1 month
exo-jcr SVN: r4072 - 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-10 11:11:21 -0500 (Thu, 10 Mar 2011)
New Revision: 4072
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/WorkspaceContainer.java
Log:
EXOJCR-1240: The workspace container name was based on the repository name instead of the repository container name
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-10 16:10:43 UTC (rev 4071)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/WorkspaceContainer.java 2011-03-10 16:11:21 UTC (rev 4072)
@@ -68,7 +68,7 @@
{
public Void run()
{
- context.setName(repositoryContainer.getName() + "-" + name);
+ context.setName(repositoryContainer.getContext().getName() + "-" + name);
return null;
}
});
15 years, 1 month
exo-jcr SVN: r4071 - in jcr/trunk/exo.jcr.component.core/src: test/java/org/exoplatform/services/jcr/api/version and 1 other directory.
by do-not-reply@jboss.org
Author: sergiykarpenko
Date: 2011-03-10 11:10:43 -0500 (Thu, 10 Mar 2011)
New Revision: 4071
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/WorkspaceImpl.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/version/TestVersionRestore.java
Log:
EXOJCR-1045: WorksapceImpl.restore(..) fixed - versions history is restored if there versionable node exists. This fix allows to search new versionable nodes in changes log, and restore further version histories. testRestore and testMultipleRestore fixed.
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/WorkspaceImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/WorkspaceImpl.java 2011-03-10 14:26:45 UTC (rev 4070)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/WorkspaceImpl.java 2011-03-10 16:10:43 UTC (rev 4071)
@@ -51,7 +51,6 @@
import java.security.AccessControlException;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -571,18 +570,39 @@
// for restore operation
List<String> existedIdentifiers = new ArrayList<String>(); // InWorkspace
List<VersionImpl> notExistedVersions = new ArrayList<VersionImpl>();
- LinkedHashMap<VersionImpl, NodeData> existedVersions = new LinkedHashMap<VersionImpl, NodeData>();
TransactionableDataManager dataManager = session.getTransientNodesManager().getTransactManager();
-
+ SessionChangesLog changesLog = new SessionChangesLog(session.getId());
for (Version v : versions)
{
String versionableIdentifier = v.getContainingHistory().getVersionableUUID();
NodeData node = (NodeData)dataManager.getItemData(versionableIdentifier);
if (node != null)
{
- existedVersions.put((VersionImpl)v, node);
existedIdentifiers.add(versionableIdentifier);
+
+ // restore version at existed parent
+ try
+ {
+
+ NodeData destParent = (NodeData)dataManager.getItemData(node.getParentIdentifier());
+ NodeData vh = (NodeData)dataManager.getItemData(((VersionImpl)v).getParentIdentifier()); // version parent
+ // it's a VH
+ VersionHistoryDataHelper historyHelper = new VersionHistoryDataHelper(vh, dataManager, nodeTypeManager);
+
+ changesLog.addAll(((VersionImpl)v).restoreLog(destParent, node.getQPath().getName(), historyHelper,
+ session, removeExisting, changesLog).getAllStates());
+ }
+ catch (ItemExistsException e)
+ {
+ throw new ItemExistsException("Workspace restore. Can't restore a node. "
+ + v.getContainingHistory().getVersionableUUID() + ". " + e.getMessage(), e);
+ }
+ catch (RepositoryException e)
+ {
+ throw new RepositoryException("Workspace restore. Can't restore a node. "
+ + v.getContainingHistory().getVersionableUUID() + ". Repository error: " + e.getMessage(), e);
+ }
}
else
{
@@ -614,6 +634,18 @@
notExistedVersions.add((VersionImpl)v);
continue;
}
+
+ if (versionableParentIdentifier == null)
+ {
+ //check in changes log
+ ItemState itemState = changesLog.getItemState(versionableIdentifier);
+ if (itemState != null && !itemState.isDeleted())
+ {
+ notExistedVersions.add((VersionImpl)v);
+ continue;
+ }
+ }
+
throw new VersionException(
"No such node (for version, from the array of versions, "
+ "that corresponds to a missing node in the workspace, there must also be a parent in the array). UUID: "
@@ -622,35 +654,6 @@
}
}
- SessionChangesLog changesLog = new SessionChangesLog(session.getId());
-
- for (VersionImpl v : existedVersions.keySet())
- {
- try
- {
- NodeData node = existedVersions.get(v);
-
- NodeData destParent = (NodeData)dataManager.getItemData(node.getParentIdentifier());
- NodeData vh = (NodeData)dataManager.getItemData(v.getParentIdentifier()); // version
- // parent
- // it's a VH
- VersionHistoryDataHelper historyHelper = new VersionHistoryDataHelper(vh, dataManager, nodeTypeManager);
-
- changesLog.addAll(v.restoreLog(destParent, node.getQPath().getName(), historyHelper, session,
- removeExisting, changesLog).getAllStates());
- }
- catch (ItemExistsException e)
- {
- throw new ItemExistsException("Workspace restore. Can't restore a node. "
- + v.getContainingHistory().getVersionableUUID() + ". " + e.getMessage(), e);
- }
- catch (RepositoryException e)
- {
- throw new RepositoryException("Workspace restore. Can't restore a node. "
- + v.getContainingHistory().getVersionableUUID() + ". Repository error: " + e.getMessage(), e);
- }
- }
-
for (VersionImpl v : notExistedVersions)
{
String versionableIdentifier = v.getContainingHistory().getVersionableUUID();
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/version/TestVersionRestore.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/version/TestVersionRestore.java 2011-03-10 14:26:45 UTC (rev 4070)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/version/TestVersionRestore.java 2011-03-10 16:10:43 UTC (rev 4071)
@@ -94,7 +94,9 @@
Node doc1 =
checkExisted("doc1", new String[]{"jcr:content/jcr:primaryType", "jcr:content/doc1ContentProperty"});
- checkNotExisted("doc2");
+ Node doc2 =
+ checkExisted("doc2", new String[]{"jcr:content/jcr:primaryType", "jcr:content/doc2ContentProperty"});
+
checkNotExisted("doc3");
versionableNode.checkout();
@@ -106,8 +108,7 @@
versionableNode.restore(ver2, true);
doc1 = checkExisted("doc1", new String[]{"jcr:content/jcr:primaryType", "jcr:content/doc1ContentProperty"});
- Node doc2 =
- checkExisted("doc2", new String[]{"jcr:content/jcr:primaryType", "jcr:content/doc2ContentProperty"});
+ doc2 = checkExisted("doc2", new String[]{"jcr:content/jcr:primaryType", "jcr:content/doc2ContentProperty"});
checkNotExisted("doc3");
@@ -301,6 +302,19 @@
// test it
session.getWorkspace().restore(vs, true);// restore A v.3, B v.2, C v.2
+
+ // get node B and restore v1
+ nodeB = (Node)session.getItem("/versionableNodeA/Subnode B");
+ assertTrue(nodeB.isNodeType("mix:versionable"));
+ nodeB.restore("1", true);
+ // get node C and restore v1
+ nodeC = (Node)session.getItem("/versionableNodeA/Subnode C");
+ assertTrue(nodeB.isNodeType("mix:versionable"));
+ nodeC.restore("1", true);
+ // get node A and restore v2
+ nodeA = (Node)session.getItem("/versionableNodeA");
+ assertTrue(nodeB.isNodeType("mix:versionable"));
+ nodeA.restore("1", true);
}
/**
@@ -329,6 +343,7 @@
String content2 = content + " #2";
file.getNode("jcr:content").setProperty("jcr:data", content2, PropertyType.BINARY);
+ file.save();
file.checkin(); // v2
file.checkout();
15 years, 1 month
exo-jcr SVN: r4070 - in jcr/trunk/exo.jcr.component.core: src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/jdbc and 1 other directory.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-03-10 09:26:45 -0500 (Thu, 10 Mar 2011)
New Revision: 4070
Modified:
jcr/trunk/exo.jcr.component.core/pom.xml
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/jdbc/LockJDBCContainer.java
Log:
EXOJCR-1048: fix tests
Modified: jcr/trunk/exo.jcr.component.core/pom.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/pom.xml 2011-03-10 12:34:43 UTC (rev 4069)
+++ jcr/trunk/exo.jcr.component.core/pom.xml 2011-03-10 14:26:45 UTC (rev 4070)
@@ -421,7 +421,6 @@
<exclude>org/exoplatform/services/jcr/**/usecases/BaseUsecasesTest.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/TestSessionDataManager.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/SQLBenchmarkTest.java</exclude>
- <exclude>org/exoplatform/services/jcr/**/impl/**/TestLockPerstistentDataManager.java</exclude>
</excludes>
</configuration>
</plugin>
@@ -725,7 +724,6 @@
<exclude>org/exoplatform/services/jcr/**/impl/**/TestLinkedWorkspaceStorageCacheMetrics.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/SQLBenchmarkTest.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/TestCleanableFileStreamValueData.java</exclude>
- <exclude>org/exoplatform/services/jcr/**/impl/**/TestLockPerstistentDataManager.java</exclude>
<!-- From TCK -->
<exclude>org/apache/jackrabbit/test/api/TestAll.java</exclude>
<exclude>org/apache/jackrabbit/test/api/**/Abstract*.java</exclude>
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/jdbc/LockJDBCContainer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/jdbc/LockJDBCContainer.java 2011-03-10 12:34:43 UTC (rev 4069)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/jdbc/LockJDBCContainer.java 2011-03-10 14:26:45 UTC (rev 4070)
@@ -18,12 +18,14 @@
*/
package org.exoplatform.services.jcr.impl.core.lock.jbosscache.jdbc;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.services.jcr.impl.util.jdbc.DBInitializer;
import org.exoplatform.services.jcr.impl.util.jdbc.DBInitializerException;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import java.io.IOException;
+import java.security.PrivilegedExceptionAction;
import java.sql.Connection;
import java.sql.SQLException;
@@ -67,7 +69,14 @@
try
{
log.info("Creating LockManager DB tables.");
- jdbcConn = dataSource.getConnection();
+
+ jdbcConn = SecurityHelper.doPrivilegedSQLExceptionAction(new PrivilegedExceptionAction<Connection>()
+ {
+ public Connection run() throws Exception
+ {
+ return dataSource.getConnection();
+ }
+ });
// if table not exists, create it
// connection is closed by DB initializer
initDatabase(dataSourceName, jdbcConn);
15 years, 1 month
exo-jcr SVN: r4069 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-03-10 07:34:43 -0500 (Thu, 10 Mar 2011)
New Revision: 4069
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionRegistry.java
Log:
EXOJCR-1231: Help applications to prevent memory leaks by enabling the SessionCleaner by default
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionRegistry.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionRegistry.java 2011-03-10 12:28:09 UTC (rev 4068)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionRegistry.java 2011-03-10 12:34:43 UTC (rev 4069)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.impl.core;
+import org.exoplatform.container.ExoContainerContext;
import org.exoplatform.management.annotations.Managed;
import org.exoplatform.management.annotations.ManagedDescription;
import org.exoplatform.management.jmx.annotations.NameTemplate;
@@ -44,12 +45,17 @@
// 1 min
public final static int DEFAULT_CLEANER_TIMEOUT = 60 * 1000;
+ // 10 mins
+ public final static int DEFAULT_SESSION_TIMEOUT = 10 * 60 * 1000;
+
protected static Log log = ExoLogger.getLogger("exo.jcr.component.core.SessionRegistry");
- private SessionCleaner sessionCleaner;
+ private volatile SessionCleaner sessionCleaner;
- protected long timeOut;
+ private String repositoryId;
+ protected volatile long timeOut;
+
@Managed
@ManagedDescription("How many sessions are currently active")
public int getSize()
@@ -65,26 +71,61 @@
}
@Managed
- @ManagedDescription("Perform a cleanup of timed out sessions")
- public void runCleanup()
+ @ManagedDescription("Set the session time out in seconds")
+ public void setTimeOut(long timeout)
{
- try
+ this.timeOut = timeout <= 0 ? 0 : timeout * 1000;
+ if (timeOut == 0 && sessionCleaner != null)
{
- sessionCleaner.callPeriodically();
+ // We set a time out to 0 so we disable the cleaner
+ this.sessionCleaner.halt();
+ this.sessionCleaner = null;
+ if (log.isDebugEnabled())
+ {
+ log.debug("Stop the previous session cleaner");
+ }
}
- catch (Exception e)
+ else if (timeOut > 0 && sessionCleaner == null)
{
- e.printStackTrace();
+ // We set a time out greater than 0, so we enable the cleaner
+ this.sessionCleaner = new SessionCleaner(repositoryId, DEFAULT_CLEANER_TIMEOUT, timeOut);
+ if (log.isDebugEnabled())
+ {
+ log.debug("Start a new session cleaner");
+ }
}
}
+ @Managed
+ @ManagedDescription("Perform a cleanup of timed out sessions")
+ public void runCleanup()
+ {
+ if (sessionCleaner != null)
+ {
+ try
+ {
+ sessionCleaner.callPeriodically();
+ }
+ catch (Exception e)
+ {
+ log.warn("Could not execute the cleanup command", e);
+ }
+ }
+ }
+
public SessionRegistry(RepositoryEntry entry)
{
+ this(null, entry);
+ }
+
+ public SessionRegistry(ExoContainerContext ctx, RepositoryEntry entry)
+ {
sessionsMap = new ConcurrentHashMap<String, SessionImpl>();
if (entry != null)
{
- this.timeOut = entry.getSessionTimeOut() > 0 ? entry.getSessionTimeOut() : 0;
+ this.timeOut = entry.getSessionTimeOut() > 0 ? entry.getSessionTimeOut() : DEFAULT_SESSION_TIMEOUT;
}
+ this.repositoryId = ctx != null ? ctx.getName() : (entry == null ? null : entry.getName());
}
public void registerSession(SessionImpl session)
@@ -128,7 +169,7 @@
sessionsMap.clear();
if (timeOut > 0)
- sessionCleaner = new SessionCleaner(DEFAULT_CLEANER_TIMEOUT, timeOut);
+ sessionCleaner = new SessionCleaner(repositoryId, DEFAULT_CLEANER_TIMEOUT, timeOut);
}
public void stop()
@@ -167,11 +208,11 @@
private final long sessionTimeOut;
- public SessionCleaner(long workTime, long sessionTimeOut)
+ public SessionCleaner(String id, long workTime, long sessionTimeOut)
{
super(workTime);
this.sessionTimeOut = sessionTimeOut;
- setName("SessionCleaner " + getId());
+ setName("SessionCleaner " + (id == null ? getId() : id));
setPriority(Thread.MIN_PRIORITY);
setDaemon(true);
start();
15 years, 1 month
exo-jcr SVN: r4068 - kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container and 1 other directory.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-03-10 07:28:09 -0500 (Thu, 10 Mar 2011)
New Revision: 4068
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/container/ExoContainer.java
Log:
EXOJCR-1240: Give a more understandable name to all the existing Containers
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-10 12:14:16 UTC (rev 4067)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java 2011-03-10 12:28:09 UTC (rev 4068)
@@ -145,6 +145,7 @@
{
public Void run()
{
+ context.setName(parent.getContext().getName() + "-" + name);
parent.registerComponentInstance(name, RepositoryContainer.this);
return null;
}
@@ -180,6 +181,7 @@
{
public Void run()
{
+ context.setName(parent.getContext().getName() + "-" + name);
parent.registerComponentInstance(name, RepositoryContainer.this);
return null;
}
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-10 12:14:16 UTC (rev 4067)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/WorkspaceContainer.java 2011-03-10 12:28:09 UTC (rev 4068)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.impl;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.container.ExoContainer;
import org.exoplatform.container.jmx.MX4JComponentAdapterFactory;
import org.exoplatform.management.annotations.Managed;
@@ -32,6 +33,8 @@
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
+import java.security.PrivilegedAction;
+
import javax.jcr.RepositoryException;
/**
@@ -61,6 +64,14 @@
repositoryContainer = parent;
this.name = config.getName();
+ SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>()
+ {
+ public Void run()
+ {
+ context.setName(repositoryContainer.getName() + "-" + name);
+ return null;
+ }
+ });
}
// Components access methods -------
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-10 12:14:16 UTC (rev 4067)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java 2011-03-10 12:28:09 UTC (rev 4068)
@@ -93,7 +93,7 @@
public ExoContainer()
{
- context = new ExoContainerContext(this, this.getClass().getName());
+ context = new ExoContainerContext(this, this.getClass().getSimpleName());
SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>()
{
public Void run()
@@ -109,7 +109,7 @@
public ExoContainer(PicoContainer parent)
{
super(parent);
- context = new ExoContainerContext(this, this.getClass().getName());
+ context = new ExoContainerContext(this, this.getClass().getSimpleName());
SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>()
{
public Void run()
@@ -124,7 +124,7 @@
public ExoContainer(ComponentAdapterFactory factory, PicoContainer parent)
{
super(factory, parent);
- context = new ExoContainerContext(this, this.getClass().getName());
+ context = new ExoContainerContext(this, this.getClass().getSimpleName());
SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>()
{
public Void run()
15 years, 1 month