use of org.apache.jackrabbit.core.config.ClusterConfig in project jackrabbit by apache.
the class ClusterNode method init.
/**
* Initialize this cluster node (overridable).
*
* @throws ClusterException if an error occurs
*/
protected void init() throws ClusterException {
ClusterConfig cc = clusterContext.getClusterConfig();
clusterNodeId = cc.getId();
syncDelay = cc.getSyncDelay();
stopDelay = cc.getStopDelay();
try {
journal = cc.getJournal(clusterContext.getNamespaceResolver());
instanceRevision = journal.getInstanceRevision();
journal.register(this);
producer = journal.getProducer(PRODUCER_ID);
} catch (RepositoryException e) {
throw new ClusterException("Cluster initialization failed: " + this, e);
} catch (JournalException e) {
throw new ClusterException("Journal initialization failed: " + this, e);
}
}
use of org.apache.jackrabbit.core.config.ClusterConfig in project jackrabbit by apache.
the class FileJournalTest method testClusterInitIncompleteMissingParam.
/**
* Verify that <code>ClusterNode.stop</code> can be invoked even when
* <code>ClusterNode.init</code> throws because the journal can not
* be initialized. Note: this is done by omitting the required argument
* <code>directory</code>.
*
* @throws Exception
*/
public void testClusterInitIncompleteMissingParam() throws Exception {
JournalFactory jf = new JournalFactory() {
public Journal getJournal(NamespaceResolver resolver) throws RepositoryException {
try {
FileJournal journal = new FileJournal();
// no setDirectory() call here
journal.init(CLUSTER_NODE_ID, resolver);
return journal;
} catch (JournalException e) {
throw new RepositoryException("Expected failure", e);
}
}
};
ClusterConfig cc = new ClusterConfig(CLUSTER_NODE_ID, SYNC_DELAY, jf);
SimpleClusterContext context = new SimpleClusterContext(cc);
ClusterNode clusterNode = new ClusterNode();
try {
clusterNode.init(context);
fail("Bad cluster configuration.");
} catch (Exception e) {
}
clusterNode.stop();
}
use of org.apache.jackrabbit.core.config.ClusterConfig in project jackrabbit by apache.
the class ConsistencyCheckerImplTest method createClusterNode.
private ClusterNode createClusterNode(String id) throws Exception {
final MemoryJournal journal = new MemoryJournal() {
protected boolean syncAgainOnNewRecords() {
return true;
}
};
JournalFactory jf = new JournalFactory() {
public Journal getJournal(NamespaceResolver resolver) throws RepositoryException {
return journal;
}
};
ClusterConfig cc = new ClusterConfig(id, SYNC_DELAY, jf);
SimpleClusterContext context = new SimpleClusterContext(cc);
journal.setRepositoryHome(context.getRepositoryHome());
journal.init(id, context.getNamespaceResolver());
journal.setRecords(records);
ClusterNode clusterNode = new ClusterNode();
clusterNode.init(context);
return clusterNode;
}
use of org.apache.jackrabbit.core.config.ClusterConfig in project jackrabbit by apache.
the class ClusterRecordTest method createClusterNode.
/**
* Create a cluster node, with a memory journal referencing a list of records.
*
* @param id cluster node id
* @param records memory journal's list of records
*/
private ClusterNode createClusterNode(String id, ArrayList<MemoryRecord> records) throws Exception {
final MemoryJournal journal = new MemoryJournal();
JournalFactory jf = new JournalFactory() {
public Journal getJournal(NamespaceResolver resolver) throws RepositoryException {
return journal;
}
};
ClusterConfig cc = new ClusterConfig(id, SYNC_DELAY, jf);
SimpleClusterContext context = new SimpleClusterContext(cc);
journal.setRepositoryHome(context.getRepositoryHome());
journal.init(id, context.getNamespaceResolver());
if (records != null) {
journal.setRecords(records);
}
ClusterNode clusterNode = new ClusterNode();
clusterNode.init(context);
return clusterNode;
}
use of org.apache.jackrabbit.core.config.ClusterConfig in project jackrabbit by apache.
the class ClusterSyncTest method createClusterNode.
/**
* Create a cluster node, with a memory journal referencing a list of records.
*
* @param id cluster node id
* @param records memory journal's list of records
* @param disableAutoSync if <code>true</code> background synchronization is disabled
*/
private ClusterNode createClusterNode(String id, boolean disableAutoSync) throws Exception {
final MemoryJournal journal = new MemoryJournal() {
protected boolean syncAgainOnNewRecords() {
return true;
}
};
JournalFactory jf = new JournalFactory() {
public Journal getJournal(NamespaceResolver resolver) throws RepositoryException {
return journal;
}
};
ClusterConfig cc = new ClusterConfig(id, SYNC_DELAY, jf);
SimpleClusterContext context = new SimpleClusterContext(cc);
journal.setRepositoryHome(context.getRepositoryHome());
journal.init(id, context.getNamespaceResolver());
journal.setRecords(records);
ClusterNode clusterNode = new ClusterNode();
clusterNode.init(context);
if (disableAutoSync) {
clusterNode.disableAutoSync();
}
return clusterNode;
}
Aggregations