public void lock()

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();
        }
    }