diff --git a/scm-webapp/src/main/java/sonia/scm/ScmServletModule.java b/scm-webapp/src/main/java/sonia/scm/ScmServletModule.java index 017582dc4c..5f23484ab2 100644 --- a/scm-webapp/src/main/java/sonia/scm/ScmServletModule.java +++ b/scm-webapp/src/main/java/sonia/scm/ScmServletModule.java @@ -52,6 +52,8 @@ import sonia.scm.group.GroupManager; import sonia.scm.group.xml.XmlGroupManager; import sonia.scm.io.DefaultFileSystem; import sonia.scm.io.FileSystem; +import sonia.scm.net.HttpClient; +import sonia.scm.net.URLHttpClient; import sonia.scm.plugin.DefaultPluginManager; import sonia.scm.plugin.Plugin; import sonia.scm.plugin.PluginLoader; @@ -86,7 +88,6 @@ import com.sun.jersey.api.json.JSONConfiguration; import com.sun.jersey.guice.spi.container.servlet.GuiceContainer; import com.sun.jersey.spi.container.servlet.ServletContainer; - import java.util.Collection; import java.util.HashMap; import java.util.HashSet; @@ -94,7 +95,6 @@ import java.util.Iterator; import java.util.Map; import java.util.Set; - /** * * @author Sebastian Sdorra @@ -218,6 +218,9 @@ public class ScmServletModule extends ServletModule bind(GroupManager.class).to(XmlGroupManager.class); bind(CGIExecutorFactory.class).to(DefaultCGIExecutorFactory.class); + // bind httpclient + bind(HttpClient.class).to(URLHttpClient.class); + /* * filter(PATTERN_PAGE, * PATTERN_STATIC_RESOURCES).through(StaticResourceFilter.class); diff --git a/scm-webapp/src/main/java/sonia/scm/plugin/DefaultPluginManager.java b/scm-webapp/src/main/java/sonia/scm/plugin/DefaultPluginManager.java index c103239ccd..803c879a3e 100644 --- a/scm-webapp/src/main/java/sonia/scm/plugin/DefaultPluginManager.java +++ b/scm-webapp/src/main/java/sonia/scm/plugin/DefaultPluginManager.java @@ -48,6 +48,7 @@ import sonia.scm.SCMContextProvider; import sonia.scm.cache.Cache; import sonia.scm.cache.CacheManager; import sonia.scm.config.ScmConfiguration; +import sonia.scm.net.HttpClient; import sonia.scm.security.SecurityContext; import sonia.scm.util.AssertUtil; import sonia.scm.util.IOUtil; @@ -112,19 +113,21 @@ public class DefaultPluginManager implements PluginManager * @param configuration * @param pluginLoader * @param cacheManager + * @param client */ @Inject public DefaultPluginManager( SCMContextProvider context, Provider securityContextProvicer, ScmConfiguration configuration, PluginLoader pluginLoader, - CacheManager cacheManager) + CacheManager cacheManager, HttpClient client) { this.context = context; this.securityContextProvicer = securityContextProvicer; this.configuration = configuration; this.cache = cacheManager.getCache(String.class, PluginCenter.class, CACHE_NAME); + this.client = client; installedPlugins = new HashMap(); for (Plugin plugin : pluginLoader.getInstalledPlugins()) @@ -533,10 +536,7 @@ public class DefaultPluginManager implements PluginManager try { - - URLConnection connection = new URL(pluginUrl).openConnection(); - - input = connection.getInputStream(); + input = client.get(pluginUrl).getContent(); /* * TODO: add gzip support @@ -644,6 +644,9 @@ public class DefaultPluginManager implements PluginManager /** Field description */ private Cache cache; + /** Field description */ + private HttpClient client; + /** Field description */ private ScmConfiguration configuration;