All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.gradle.launcher.daemon.context.DaemonContextBuilder Maven / Gradle / Ivy

There is a newer version: 8.11.1
Show newest version
/*
 * Copyright 2011 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.gradle.launcher.daemon.context;

import com.google.common.collect.Lists;
import org.gradle.internal.Factory;
import org.gradle.internal.jvm.Jvm;
import org.gradle.internal.nativeintegration.ProcessEnvironment;
import org.gradle.launcher.daemon.configuration.DaemonParameters;

import java.io.File;
import java.util.List;
import java.util.Locale;

import static org.gradle.internal.FileUtils.canonicalize;

/**
 * Builds a daemon context, reflecting the current environment.
 * 

* The builder itself has properties for different context values, that allow you to override * what would be set based on the environment. This is primarily to aid in testing. */ public class DaemonContextBuilder implements Factory { private String uid; private File javaHome; private File daemonRegistryDir; private Long pid; private Integer idleTimeout; private Locale locale = Locale.getDefault(); private List daemonOpts = Lists.newArrayList(); public DaemonContextBuilder(ProcessEnvironment processEnvironment) { javaHome = canonicalize(Jvm.current().getJavaHome()); pid = processEnvironment.maybeGetPid(); } public File getJavaHome() { return javaHome; } public void setJavaHome(File javaHome) { this.javaHome = javaHome; } public File getDaemonRegistryDir() { return this.daemonRegistryDir; } public void setDaemonRegistryDir(File daemonRegistryDir) { this.daemonRegistryDir = daemonRegistryDir; } public String getUid() { return uid; } public void setUid(String uid) { this.uid = uid; } public Long getPid() { return pid; } public void setPid(Long pid) { this.pid = pid; } public Integer getIdleTimeout() { return idleTimeout; } public void setIdleTimeout(Integer idleTimeout) { this.idleTimeout = idleTimeout; } public Locale getLocale() { return locale; } public void setLocale(Locale locale) { this.locale = locale; } public List getDaemonOpts() { return daemonOpts; } public void setDaemonOpts(List daemonOpts) { this.daemonOpts = daemonOpts; } public void useDaemonParameters(DaemonParameters daemonParameters) { setJavaHome(daemonParameters.getEffectiveJvm().getJavaHome()); setDaemonOpts(daemonParameters.getEffectiveJvmArgs()); } /** * Creates a new daemon context, based on the current state of this builder. */ public DaemonContext create() { if (daemonRegistryDir == null) { throw new IllegalStateException("Registry dir must be specified."); } return new DefaultDaemonContext(uid, javaHome, daemonRegistryDir, pid, idleTimeout, daemonOpts); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy