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.
  *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
 
 package org.jvnet.hudson.test;
 
 import hudson.Plugin;
 import hudson.Util;
 
 import java.io.File;
 import java.net.URL;
 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

Author(s):
Kohsuke Kawaguchi
See also:
HudsonTestCase.useLocalPluginManager
 
 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());
     }
 
     @Override
     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 {
                 names.add(child.getName());
 
                 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 {
             names.add("the.hpl");
             copyBundledPlugin(u"the.hpl");
         } 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;
     }
     
    @Override
    public void stop() {
        for (PluginWrapper p : )
            p.stop();
    }
    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