Example usage for com.google.common.util.concurrent Monitor enter

List of usage examples for com.google.common.util.concurrent Monitor enter

Introduction

In this page you can find the example usage for com.google.common.util.concurrent Monitor enter.

Prototype

public void enter() 

Source Link

Document

Enters this monitor.

Usage

From source file:org.apache.marmotta.commons.locking.ObjectLocks.java

public void lock(Object name) {
    Monitor lock;
    synchronized (stringLocks) {
        lock = stringLocks.getUnchecked(name);
    }/* w  w w. jav  a  2 s  .  c  o m*/
    lock.enter();
}

From source file:com.github.nethad.clustermeister.provisioning.ec2.AmazonEC2JPPFDeployer.java

public String deploy() {
    String uuid = null;/*from w  ww .  j  a v a 2s  .  co m*/
    SshClient ssh = getSSHClient();
    ssh.connect();
    JCloudsSshClientWrapper jCloudsSshClientWrapper = new JCloudsSshClientWrapper(sshClient,
            metadata.getLoginPort());
    RemoteResourceManager remoteResourceManager = new RemoteResourceManager(jCloudsSshClientWrapper);
    Resource jppfZipResource = new InputStreamResource(String.format("/%s", zipFile), this.getClass(), zipFile,
            getDirectoryName());
    jppfZipResource.setUnzipContents(true);
    remoteResourceManager.addResource(jppfZipResource);
    try {
        checkPrecondition();
        final String nodeTypeStr = nodeConfiguration.getType().toString();
        logger.debug("Deploying JPPF-{} to {} ({}).",
                new Object[] { nodeTypeStr, metadata.getId(), getPublicIp() });

        prepareJPPF(remoteResourceManager);
        sendEvent(Event.DEPLOYMENT_PREPARED);
        Monitor monitor = getMonitor();
        monitor.enter();
        try {
            remoteResourceManager.uploadResources();

            for (File artifact : nodeConfiguration.getArtifactsToPreload()) {
                remoteResourceManager
                        .addResource(new FileResource(artifact, getDirectoryName() + jppfFolder + "lib"));
            }
            remoteResourceManager.uploadResources();
            remoteResourceManager.deployResources();
            sendEvent(Event.RESOURCES_PRELOADED);
        } finally {
            monitor.leave();
        }
        setupJPPF();
        uploadConfiguration("JPPF Node Configuration generated by Clustermeister.", getSettings(),
                jppfConfigFileName);

        uploadConfiguration("LOG4J Configuration generated by Clustermeister.",
                NodeConfigurationUtils.getLog4JConfiguration(
                        nodeConfiguration.getLogLevel().or(LogLevel.INFO).toString(),
                        nodeConfiguration.isRemoteLoggingActivataed().or(Boolean.FALSE),
                        nodeConfiguration.getDriverAddress(), //TODO: driver address may not be correct in a remote driver scenario! configurable port
                        nodeConfiguration.getRemoteLoggingPort().or(52321)),
                log4jConfigFileName);
        sendEvent(Event.JPPF_CONFIGURATED);

        logger.debug("Starting JPPF-{} on {}...", nodeTypeStr, metadata.getId());
        startJPPF();
        uuid = getUUID();
        sendEvent(Event.DEPLOYMENT_FINISHED);
        logger.debug("JPPF-{} deployed on {}.", nodeTypeStr, metadata.getId());
    } catch (Throwable ex) {
        logger.debug("Deployment of JPPF-{} failed.", nodeConfiguration.getType().toString());
        throw new IllegalStateException(ex);
    } finally {
        if (ssh != null) {
            ssh.disconnect();
        }
    }
    return uuid;
}

From source file:com.github.nethad.clustermeister.provisioning.jppf.LocalDriverBuilder.java

@Override
protected ClustermeisterLauncher doBuild() {
    JPPFDriverConfigurationSource.serverPort = serverPort;
    JPPFDriverConfigurationSource.managementPort = managementPort;
    JPPFDriverConfigurationSource.jvmOptions = configuration
            .getString(ConfigurationKeys.JVM_OPTIONS_LOCAL_DRIVER, "");
    Map<String, String> loadBalancingConfigValues = new DriverLoadBalancing(configuration)
            .getLoadBalancingConfigValues();
    if (loadBalancingConfigValues.isEmpty()) {
        //                logger.info("No load balancing settings set.");
    } else {//w  w w.ja  va  2 s .c o m
        for (Map.Entry<String, String> entry : loadBalancingConfigValues.entrySet()) {
            //                    logger.info("{} => {}", entry.getKey(), entry.getValue());
        }
    }
    JPPFDriverConfigurationSource.loadBalancing = new DriverLoadBalancing(configuration)
            .getLoadBalancingConfigValues();
    final ClustermeisterLauncher launcher = new ClustermeisterDriverLauncher(true);
    final AtomicBoolean initialized = new AtomicBoolean(false);
    final Monitor initializationMonitor = new Monitor(false);
    final Monitor.Guard isInitialized = new Monitor.Guard(initializationMonitor) {
        @Override
        public boolean isSatisfied() {
            return initialized.get();
        }
    };
    launcher.addObserver(new Observer() {
        @Override
        public void update(Observable o, Object arg) {
            initializationMonitor.enter();
            try {
                initialized.set(true);
            } finally {
                initializationMonitor.leave();
            }
        }
    });
    Thread driverThread = new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                launcher.doLaunch(true, ClustermeisterProcessLauncher.StreamSink.LOG);
            } catch (Throwable ex) {
                logger.warn("Execption from local driver thread.", ex);
            }
        }
    });
    driverThread.setName(String.format("%s-%s", DRIVER_THREAD_NAME, driverThread.getId()));
    driverThread.start();

    //wait for driver to initialize.
    initializationMonitor.enter();
    try {
        try {
            initializationMonitor.waitFor(isInitialized);
        } catch (InterruptedException ex) {
            logger.warn("Interrupted while waiting for local driver to initialize! "
                    + "Initialization may not be complete.", ex);
        }
    } finally {
        initializationMonitor.leave();
    }
    return launcher;
}