diff --git a/core/pom.xml b/core/pom.xml index cf3c93b607..bd976d8f8f 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -86,9 +86,9 @@ THE SOFTWARE. - org.jvnet.hudson + com.google.inject guice - 3.0-rc1 + 3.0 diff --git a/core/src/main/java/hudson/ExtensionFinder.java b/core/src/main/java/hudson/ExtensionFinder.java index 55db86226b..c7a18f2297 100644 --- a/core/src/main/java/hudson/ExtensionFinder.java +++ b/core/src/main/java/hudson/ExtensionFinder.java @@ -35,6 +35,7 @@ import com.google.inject.Scopes; import com.google.inject.name.Names; import com.google.common.collect.ImmutableList; import hudson.init.InitMilestone; +import hudson.model.Descriptor; import hudson.model.Hudson; import jenkins.model.Jenkins; import net.java.sezpoz.Index; @@ -196,7 +197,7 @@ public abstract class ExtensionFinder implements ExtensionPoint { } else throw new AssertionError(); - // use arbitrary + // use arbitrary id to make unique key, because Guice wants that. Key key = Key.get(extType, Names.named(String.valueOf(id))); annotations.put(key,a); bind(key).toProvider(new Provider() { @@ -279,7 +280,7 @@ public abstract class ExtensionFinder implements ExtensionPoint { * and change the value to null. * *

- * This is necessary as a failure to load one plugin shouldn't fail the startup of the entire Hudson. + * This is necessary as a failure to load one plugin shouldn't fail the startup of the entire Jenkins. * Instead, we should just drop the failing plugins. */ public static final Scope FAULT_TOLERANT_SCOPE = new Scope() { diff --git a/core/src/main/java/hudson/PluginManager.java b/core/src/main/java/hudson/PluginManager.java index f9879e4e18..16bf07d750 100644 --- a/core/src/main/java/hudson/PluginManager.java +++ b/core/src/main/java/hudson/PluginManager.java @@ -28,6 +28,7 @@ import static hudson.init.InitMilestone.PLUGINS_STARTED; import static hudson.init.InitMilestone.PLUGINS_LISTED; import com.google.inject.Guice; +import com.google.inject.Injector; import hudson.PluginWrapper.Dependency; import hudson.init.InitStrategy; import hudson.init.InitializerFinder; @@ -278,7 +279,7 @@ public abstract class PluginManager extends AbstractModelObject { Jenkins.getInstance().lookup.set(PluginInstanceStore.class,new PluginInstanceStore()); TaskGraphBuilder g = new TaskGraphBuilder(); - Hudson.getInstance().container = Guice.createInjector(); + Jenkins.getInstance().lookup.set(Injector.class,Guice.createInjector()); // schedule execution of loading plugins for (final PluginWrapper p : activePlugins.toArray(new PluginWrapper[activePlugins.size()])) { diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index c21880860f..d36781dda0 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -25,6 +25,7 @@ */ package jenkins.model; +import com.google.inject.Injector; import hudson.model.Messages; import hudson.model.Node; import hudson.model.AbstractCIBase; @@ -1939,6 +1940,16 @@ public class Jenkins extends AbstractCIBase implements ModifiableItemGroup