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

org.kohsuke.stapler.extensibility.GuiceFacet Maven / Gradle / Ivy

The newest version!
package org.kohsuke.stapler.extensibility;

import com.google.inject.Injector;
import org.kohsuke.MetaInfServices;
import org.kohsuke.stapler.Dispatcher;
import org.kohsuke.stapler.Facet;
import org.kohsuke.stapler.MetaClass;
import org.kohsuke.stapler.RequestImpl;
import org.kohsuke.stapler.ResponseImpl;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.WebApp;

import javax.servlet.ServletException;
import java.io.IOException;
import java.util.List;

/**
 * Holder of Guice injector.
 *
 * TODO: move to Stapler
 *
 * @author Kohsuke Kawaguchi
 */
@MetaInfServices
public class GuiceFacet extends Facet {
    public Injector injector;

    @Override
    public void buildViewDispatchers(MetaClass owner, List dispatchers) {
        // doesn't contribute to views
    }

    @Override
    public boolean handleIndexRequest(RequestImpl req, ResponseImpl rsp, Object node, MetaClass nodeMetaClass) throws IOException, ServletException {
        // doesn't contribute to views
        return false;
    }

    public static Injector get(StaplerRequest req) {
        return get(req.getWebApp());
    }

    public static Injector get(WebApp webApp) {
        return webApp.getFacet(GuiceFacet.class).injector;
    }

    public static Injector get() {
        return get(WebApp.getCurrent());
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy