You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2012/01/17 20:27:11 UTC
svn commit: r1232546 - in /jackrabbit/branches/2.4: ./
jackrabbit-core/src/main/java/org/apache/jackrabbit/core/
jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/
jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/config/ jack...
Author: jukka
Date: Tue Jan 17 19:27:10 2012
New Revision: 1232546
URL: http://svn.apache.org/viewvc?rev=1232546&view=rev
Log:
2.4: Merged revision 1231204 (JCR-3199)
Modified:
jackrabbit/branches/2.4/ (props changed)
jackrabbit/branches/2.4/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java
jackrabbit/branches/2.4/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfigurationParser.java
jackrabbit/branches/2.4/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/WorkspaceConfig.java
jackrabbit/branches/2.4/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/config/repository-2.4-elements.dtd
jackrabbit/branches/2.4/jackrabbit-core/src/test/repository/workspaces/default/workspace.xml
Propchange: jackrabbit/branches/2.4/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jan 17 19:27:10 2012
@@ -1,3 +1,3 @@
/jackrabbit/branches/JCR-2272:1173165-1176545
/jackrabbit/sandbox/JCR-2415-lucene-3.0:1060860-1064038
-/jackrabbit/trunk:1221447,1221579,1221593,1221789,1221818,1225179,1225191,1225196,1225207,1225525,1225528,1226452,1226472,1226515,1226750,1226863,1227171,1227240,1227590,1227593,1227615,1228058,1228149,1228155,1228160,1230507,1230681,1230688,1232100
+/jackrabbit/trunk:1221447,1221579,1221593,1221789,1221818,1225179,1225191,1225196,1225207,1225525,1225528,1226452,1226472,1226515,1226750,1226863,1227171,1227240,1227590,1227593,1227615,1228058,1228149,1228155,1228160,1230507,1230681,1230688,1231204,1232100
Modified: jackrabbit/branches/2.4/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.4/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java?rev=1232546&r1=1232545&r2=1232546&view=diff
==============================================================================
--- jackrabbit/branches/2.4/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java (original)
+++ jackrabbit/branches/2.4/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java Tue Jan 17 19:27:10 2012
@@ -2953,7 +2953,8 @@ public class NodeImpl extends ItemImpl i
// check state of this instance
sanityCheck();
LockManager lockMgr = getSession().getWorkspace().getLockManager();
- return lockMgr.lock(getPath(), isDeep, isSessionScoped, Long.MAX_VALUE, null);
+ return lockMgr.lock(getPath(), isDeep, isSessionScoped,
+ sessionContext.getWorkspace().getConfig().getDefaultLockTimeout(), null);
}
/**
Modified: jackrabbit/branches/2.4/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfigurationParser.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.4/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfigurationParser.java?rev=1232546&r1=1232545&r2=1232546&view=diff
==============================================================================
--- jackrabbit/branches/2.4/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfigurationParser.java (original)
+++ jackrabbit/branches/2.4/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfigurationParser.java Tue Jan 17 19:27:10 2012
@@ -553,8 +553,7 @@ public class RepositoryConfigurationPars
String home = getVariables().getProperty(WORKSPACE_HOME_VARIABLE);
// Workspace name
- String name =
- getAttribute(root, NAME_ATTRIBUTE, new File(home).getName());
+ String name = getAttribute(root, "name", new File(home).getName());
// Clustered attribute
boolean clustered = Boolean.valueOf(
@@ -582,12 +581,22 @@ public class RepositoryConfigurationPars
// workspace specific security configuration
WorkspaceSecurityConfig workspaceSecurityConfig = tmpParser.parseWorkspaceSecurityConfig(root);
- // optinal config for import handling
+ // optional config for import handling
ImportConfig importConfig = tmpParser.parseImportConfig(root);
+ // default lock timeout
+ String to = getAttribute(root, "defaultLockTimeout", new Long(Long.MAX_VALUE).toString());
+ long defaultLockTimeout;
+ try {
+ defaultLockTimeout = Long.parseLong(to);
+ }
+ catch (NumberFormatException ex) {
+ throw new ConfigurationException("defaultLockTimeout must be an integer value", ex);
+ }
+
return new WorkspaceConfig(
home, name, clustered, fsf, pmc, qhf,
- ismLockingFactory, workspaceSecurityConfig, importConfig);
+ ismLockingFactory, workspaceSecurityConfig, importConfig, defaultLockTimeout);
}
/**
Modified: jackrabbit/branches/2.4/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/WorkspaceConfig.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.4/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/WorkspaceConfig.java?rev=1232546&r1=1232545&r2=1232546&view=diff
==============================================================================
--- jackrabbit/branches/2.4/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/WorkspaceConfig.java (original)
+++ jackrabbit/branches/2.4/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/WorkspaceConfig.java Tue Jan 17 19:27:10 2012
@@ -88,6 +88,11 @@ public class WorkspaceConfig
private final ImportConfig importConfig;
/**
+ * Default lock timeout in seconds.
+ */
+ private final long defaultLockTimeout;
+
+ /**
* Creates a workspace configuration object.
*
* @param home home directory
@@ -104,7 +109,7 @@ public class WorkspaceConfig
QueryHandlerFactory qhf,
ISMLockingFactory ismLockingFactory,
WorkspaceSecurityConfig workspaceSecurityConfig) {
- this(home, name, clustered, fsf, pmc, qhf, ismLockingFactory, workspaceSecurityConfig, null);
+ this(home, name, clustered, fsf, pmc, qhf, ismLockingFactory, workspaceSecurityConfig, null, Long.MAX_VALUE);
}
/**
@@ -125,6 +130,25 @@ public class WorkspaceConfig
ISMLockingFactory ismLockingFactory,
WorkspaceSecurityConfig workspaceSecurityConfig,
ImportConfig importConfig) {
+ this(home, name, clustered, fsf, pmc, qhf, ismLockingFactory, workspaceSecurityConfig, importConfig, Long.MAX_VALUE);
+ }
+
+ /**
+ * Creates a workspace configuration object.
+ *
+ * @param home home directory
+ * @param name workspace name
+ * @param clustered
+ * @param fsf file system factory
+ * @param pmc persistence manager configuration
+ * @param qhf query handler factory, or <code>null</code> if not configured
+ * @param ismLockingFactory the item state manager locking factory
+ * @param workspaceSecurityConfig the workspace specific security configuration.
+ * @param defaultLockTimeout default timeout for locks (in seconds)
+ */
+ public WorkspaceConfig(String home, String name, boolean clustered, FileSystemFactory fsf,
+ PersistenceManagerConfig pmc, QueryHandlerFactory qhf, ISMLockingFactory ismLockingFactory,
+ WorkspaceSecurityConfig workspaceSecurityConfig, ImportConfig importConfig, long defaultLockTimeout) {
this.home = home;
this.name = name;
this.clustered = clustered;
@@ -134,6 +158,7 @@ public class WorkspaceConfig
this.ismLockingFactory = ismLockingFactory;
this.workspaceSecurityConfig = workspaceSecurityConfig;
this.importConfig = importConfig;
+ this.defaultLockTimeout = defaultLockTimeout;
}
/**
@@ -165,6 +190,17 @@ public class WorkspaceConfig
}
/**
+ * Returns the default lock timeout in number of seconds or
+ * <code>Long.MAX_VALUE</code> when not specified.
+ *
+ * @return default lock timeout in number of seconds or
+ * <code>Long.MAX_VALUE</code> when not specified
+ */
+ public long getDefaultLockTimeout() {
+ return defaultLockTimeout;
+ }
+
+ /**
* Creates and returns the configured workspace locking strategy.
*
* @return the configured {@link ISMLocking}
Modified: jackrabbit/branches/2.4/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/config/repository-2.4-elements.dtd
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.4/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/config/repository-2.4-elements.dtd?rev=1232546&r1=1232545&r2=1232546&view=diff
==============================================================================
--- jackrabbit/branches/2.4/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/config/repository-2.4-elements.dtd (original)
+++ jackrabbit/branches/2.4/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/config/repository-2.4-elements.dtd Tue Jan 17 19:27:10 2012
@@ -105,6 +105,7 @@
<!ELEMENT Workspaces EMPTY>
<!ATTLIST Workspaces rootPath CDATA #REQUIRED
defaultWorkspace CDATA #REQUIRED
+ defaultLockTimeout CDATA #IMPLIED
configRootPath CDATA #IMPLIED
maxIdleTime CDATA #IMPLIED>
Modified: jackrabbit/branches/2.4/jackrabbit-core/src/test/repository/workspaces/default/workspace.xml
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.4/jackrabbit-core/src/test/repository/workspaces/default/workspace.xml?rev=1232546&r1=1232545&r2=1232546&view=diff
==============================================================================
--- jackrabbit/branches/2.4/jackrabbit-core/src/test/repository/workspaces/default/workspace.xml (original)
+++ jackrabbit/branches/2.4/jackrabbit-core/src/test/repository/workspaces/default/workspace.xml Tue Jan 17 19:27:10 2012
@@ -15,7 +15,7 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<Workspace name="default">
+<Workspace name="default" defaultLockTimeout="86400">
<!--
virtual file system of the workspace:
class: FQN of class implementing FileSystem interface