You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by mr...@apache.org on 2012/11/27 11:28:02 UTC
svn commit: r1414093 - in /jackrabbit/trunk/jackrabbit-core/src/main:
java/org/apache/jackrabbit/core/cluster/
java/org/apache/jackrabbit/core/config/
resources/org/apache/jackrabbit/core/config/
Author: mreutegg
Date: Tue Nov 27 10:28:00 2012
New Revision: 1414093
URL: http://svn.apache.org/viewvc?rev=1414093&view=rev
Log:
JCR-3463: Configurable stopDelay
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterNode.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ClusterConfig.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfigurationParser.java
jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/config/repository-2.6-elements.dtd
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterNode.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterNode.java?rev=1414093&r1=1414092&r2=1414093&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterNode.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ClusterNode.java Tue Nov 27 10:28:00 2012
@@ -224,7 +224,7 @@ public class ClusterNode implements Runn
ClusterConfig cc = clusterContext.getClusterConfig();
clusterNodeId = cc.getId();
syncDelay = cc.getSyncDelay();
- stopDelay = syncDelay * 2;
+ stopDelay = cc.getStopDelay();
try {
journal = cc.getJournal(clusterContext.getNamespaceResolver());
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ClusterConfig.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ClusterConfig.java?rev=1414093&r1=1414092&r2=1414093&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ClusterConfig.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ClusterConfig.java Tue Nov 27 10:28:00 2012
@@ -38,6 +38,11 @@ public class ClusterConfig implements Jo
private final long syncDelay;
/**
+ * Stop delay.
+ */
+ private final long stopDelay;
+
+ /**
* Journal factory.
*/
private final JournalFactory jf;
@@ -50,8 +55,22 @@ public class ClusterConfig implements Jo
* @param jf journal factory
*/
public ClusterConfig(String id, long syncDelay, JournalFactory jf) {
+ this(id, syncDelay, -1, jf);
+ }
+
+ /**
+ * Creates a new cluster configuration.
+ *
+ * @param id custom cluster node id
+ * @param syncDelay syncDelay, in milliseconds
+ * @param stopDelay stopDelay in milliseconds
+ * @param jf journal factory
+ */
+ public ClusterConfig(String id, long syncDelay,
+ long stopDelay, JournalFactory jf) {
this.id = id;
this.syncDelay = syncDelay;
+ this.stopDelay = stopDelay < 0 ? syncDelay * 10 : stopDelay;
this.jf = jf;
}
@@ -74,6 +93,13 @@ public class ClusterConfig implements Jo
}
/**
+ * @return stopDelay the stopDelay configuration attribute value.
+ */
+ public long getStopDelay() {
+ return stopDelay;
+ }
+
+ /**
* Returns an initialized journal instance.
*
* @param resolver namespace resolver
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfigurationParser.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfigurationParser.java?rev=1414093&r1=1414092&r2=1414093&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfigurationParser.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfigurationParser.java Tue Nov 27 10:28:00 2012
@@ -181,6 +181,9 @@ public class RepositoryConfigurationPars
/** Name of the syncDelay configuration attribute. */
public static final String SYNC_DELAY_ATTRIBUTE = "syncDelay";
+ /** Name of the stopDelay configuration attribute. */
+ public static final String STOP_DELAY_ATTRIBUTE = "stopDelay";
+
/** Name of the default search index implementation class. */
public static final String DEFAULT_QUERY_HANDLER =
"org.apache.jackrabbit.core.query.lucene.SearchIndex";
@@ -197,6 +200,12 @@ public class RepositoryConfigurationPars
/** Default synchronization delay, in milliseconds. */
public static final String DEFAULT_SYNC_DELAY = "5000";
+ /**
+ * Default stop delay, in milliseconds or -1 if the default is derived
+ * from the sync delay.
+ */
+ public static final String DEFAULT_STOP_DELAY = "-1";
+
/** Name of the workspace specific security configuration element */
private static final String WSP_SECURITY_ELEMENT = "WorkspaceSecurity";
@@ -885,9 +894,11 @@ public class RepositoryConfigurationPars
long syncDelay = Long.parseLong(replaceVariables(getAttribute(
element, SYNC_DELAY_ATTRIBUTE, DEFAULT_SYNC_DELAY)));
+ long stopDelay = Long.parseLong(replaceVariables(getAttribute(
+ element, STOP_DELAY_ATTRIBUTE, "-1")));
JournalFactory jf = getJournalFactory(element, home, id);
- return new ClusterConfig(id, syncDelay, jf);
+ return new ClusterConfig(id, syncDelay, stopDelay, jf);
}
}
return null;
Modified: jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/config/repository-2.6-elements.dtd
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/config/repository-2.6-elements.dtd?rev=1414093&r1=1414092&r2=1414093&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/config/repository-2.6-elements.dtd (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/config/repository-2.6-elements.dtd Tue Nov 27 10:28:00 2012
@@ -161,11 +161,14 @@
repository in a clustered environment. a literal id may be
specified that uniquely identifies this node in a cluster, as well
as the delay in milliseconds before changes to the journal are
- automatically detected.
+ automatically detected. The stopDelay in milliseconds controls how long
+ the repository waits for the journal thread to terminate. The stop delay
+ is implementation specific if no value is specified in the configuration.
-->
<!ELEMENT Cluster (Journal)>
<!ATTLIST Cluster id CDATA #IMPLIED
- syncDelay CDATA #IMPLIED>
+ syncDelay CDATA #IMPLIED
+ stopDelay CDATA #IMPLIED>
<!--
the Journal element configures the journal used in clustering; the