@@ -0,0 +1,1646 @@
+/*%0A * Copyright (c) 2013-2016 Cinchapi Inc.%0A * %0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A * %0A * http://www.apache.org/licenses/LICENSE-2.0%0A * %0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0Apackage com.cinchapi.concourse.server.plugin;%0A%0Aimport java.nio.file.Path;%0A%0Aimport javax.annotation.concurrent.Immutable;%0A%0Aimport com.cinchapi.concourse.annotate.PackagePrivate;%0A%0A/**%0A * Information about the runtime context in which a %7B@link Plugin%7D operates.%0A * Provided by Concourse Server, to plugin hooks (i.e.%0A * %7B@link Plugin#afterInstall() afterInstall%7D).%0A * %0A * @author Jeff Nelson%0A */%0A@Immutable%0Apublic final class PluginContext %7B%0A%0A    /**%0A     * The plugin's working directory.%0A     */%0A    private final Path home;%0A%0A    /**%0A     * Construct a new instance.%0A     * %0A     * @param home%0A     */%0A    @PackagePrivate%0A    PluginContext(Path home) %7B%0A        this.home = home;%0A    %7D%0A%0A    /**%0A     * Get the plugin's working directory.%0A     * %0A     * @return the home directory%0A     */%0A    public Path home() %7B%0A        return home;%0A    %7D%0A%0A    /**%0A     * Get the directory where the plugin store's data.%0A     * %0A     * @return the data directory%0A     */%0A    public Path data() %7B%0A        return home.resolve(%22data%22).toAbsolutePath();%0A    %7D%0A%0A%7D%0A

add PluginContext class