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

com.cloudbees.sdk.cli.DirectoryStructure Maven / Gradle / Ivy

There is a newer version: 1.3.8
Show newest version
/*
 * Copyright 2010-2013, CloudBees Inc.
 *
 * 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 com.cloudbees.sdk.cli;

import java.io.File;

/**
 * Injectable component that represents the directory structure.
 *
 * @author Kohsuke Kawaguchi
 */
public class DirectoryStructure {
    public final File sdkRepository;
    public final File localRepository;
    public final String pluginExtension = ".bees";

    public DirectoryStructure(File sdkRepository, File localRepository) {
        this.sdkRepository = sdkRepository;
        this.localRepository = localRepository;
    }

    public DirectoryStructure() {
        this.sdkRepository = new File(System.getProperty("bees.home"), "conf");
        this.localRepository = calcLocalRepository();
    }

    /**
     * This directory contains additional jar files to be made available to the bees SDK's main classloader.
     */
    public File getLibDir() {
        return new File(localRepository,"lib1");
    }

    public File getPluginDir() {
        return new File(localRepository,"plugins");
    }

    public File getLocalRepository() {
        return localRepository;
    }

    private File calcLocalRepository() {
        if(System.getenv("BEES_REPO") != null)
            return new File(System.getenv("BEES_REPO"));
        else if(System.getProperty("bees.repo") != null)
            return new File(System.getProperty("bees.repo"));
        else
            return new File(System.getProperty("user.home"), ".bees");
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy