Package com.nirima.jenkins

Source Code of com.nirima.jenkins.TransientBuildActionFactoryImpl

package com.nirima.jenkins;

import com.nirima.jenkins.bridge.BridgeRepository;
import com.nirima.jenkins.repo.build.ProjectBuildRepositoryRoot;
import hudson.Extension;
import hudson.model.AbstractBuild;
import hudson.model.Action;
import hudson.model.TransientBuildActionFactory;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;

import javax.inject.Inject;
import javax.servlet.ServletException;
import java.io.IOException;
import java.util.Collection;
import java.util.Collections;

/**
* Exposes a per-build repository under the URL of a build.
*
* @author Kohsuke Kawaguchi
*/
@Extension
public class TransientBuildActionFactoryImpl extends TransientBuildActionFactory {
    @Inject
    RepositoryPlugin plugin;

    public Collection<? extends Action> createFor(AbstractBuild build) {
        return Collections.singleton(new BuildActionImpl(build));
    }

    public class BuildActionImpl implements Action {
        private final AbstractBuild build;

        public BuildActionImpl(AbstractBuild build) {
            this.build = build;
        }

        public String getIconFileName() {
            return plugin.getIconFileName();
        }

        public String getDisplayName() {
            return "Build Artifacts As Maven Repository";
        }

        public String getUrlName() {
            return "maven-repository";
        }

        public void doDynamic(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException {
            plugin.serveRequest(
                    new BridgeRepository(new ProjectBuildRepositoryRoot(null, build, build.getFullDisplayName()), null),
                    req.findAncestor(this).getUrl());
        }
    }
}
TOP

Related Classes of com.nirima.jenkins.TransientBuildActionFactoryImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.