in main/src/main/java/org/apache/servicemix/kernel/main/Main.java [1102:1135]
public void lock(Properties props) {
try {
if (Boolean.parseBoolean(props.getProperty(PROPERTY_USE_LOCK, "true"))) {
String clz = props.getProperty(PROPERTY_LOCK_CLASS, PROPERTY_LOCK_CLASS_DEFAULT);
lock = (Lock) Class.forName(clz).getConstructor(Properties.class).newInstance(props);
boolean lockLogged = false;
for (;;) {
if (lock.lock()) {
if (lockLogged) {
System.out.println("Lock acquired.");
}
setStartLevel(defaultStartLevel);
for (;;) {
if (!lock.isAlive()) {
break;
}
Thread.sleep(lockDelay);
}
if (m_felix.getState() == Bundle.ACTIVE && !exiting) {
System.out.println("Lost the lock, stopping this instance ...");
setStartLevel(lockStartLevel);
}
break;
} else if (!lockLogged) {
System.out.println("Waiting for the lock ...");
lockLogged = true;
}
Thread.sleep(lockDelay);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}