Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
   * The MIT License
   * Copyright (c) 2010, Kohsuke Kawaguchi
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
 package org.jvnet.hudson.test;
 import hudson.Plugin;
 import hudson.Util;
 import java.util.Set;
hudson.PluginManager to speed up unit tests.

Instead of loading every plugin for every test case, this allows them to reuse a single plugin manager.

TODO: hudson.Plugin start/stop/postInitialize invocation semantics gets different. Perhaps

Kohsuke Kawaguchi
See also:
 public class TestPluginManager extends PluginManager {
     public static final PluginManager INSTANCE;
     private TestPluginManager() throws IOException {
         // TestPluginManager outlives a Jetty server, so can't pass in ServletContext.
         super(null, Util.createTempDir());
     protected Collection<StringloadBundledPlugins() throws Exception {
         Set<Stringnames = new HashSet<String>();
         File[] children = new File(WarExploder.getExplodedDir(),"WEB-INF/plugins").listFiles();
         for (File child : children) {
             try {
                 copyBundledPlugin(child.toURI().toURL(), child.getName());
             } catch (IOException e) {
                 .log(."Failed to extract the bundled plugin "+child,e);
         // If running tests for a plugin, include the plugin being tested
         URL u = getClass().getClassLoader().getResource("the.hpl");
         if (u!=nulltry {
         } catch (IOException e) {
             .log(."Failed to copy the.hpl",e);
         // and pick up test dependency *.hpi that are placed by maven-hpi-plugin TestDependencyMojo.
         // and copy them into $HUDSON_HOME/plugins.
         URL index = getClass().getResource("/test-dependencies/index");
         if (index!=null) {// if built with maven-hpi-plugin < 1.52 this file won't exist.
             BufferedReader r = new BufferedReader(new InputStreamReader(index.openStream(),"UTF-8"));
             String line;
             while ((line=r.readLine())!=null) {
                 copyBundledPlugin(new URL(indexline + ".hpi"), line + ".hpi");
         return names;
    public void stop() {
        for (PluginWrapper p : )
    private static final Logger LOGGER = Logger.getLogger(TestPluginManager.class.getName());
    static {
        try {
             = new TestPluginManager();
        } catch (IOException e) {
            throw new Error(e);
New to GrepCode? Check out our FAQ X