mirror of
https://github.com/scm-manager/scm-manager.git
synced 2026-01-21 23:12:11 +01:00
use HttpClient instead java.net.URL for package download
This commit is contained in:
@@ -44,6 +44,7 @@ import sonia.scm.installer.HgInstallerFactory;
|
||||
import sonia.scm.installer.HgPackage;
|
||||
import sonia.scm.installer.HgPackageReader;
|
||||
import sonia.scm.installer.HgPackages;
|
||||
import sonia.scm.net.HttpClient;
|
||||
import sonia.scm.repository.HgConfig;
|
||||
import sonia.scm.repository.HgRepositoryHandler;
|
||||
import sonia.scm.web.HgWebConfigWriter;
|
||||
@@ -84,13 +85,16 @@ public class HgConfigResource
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* @param client
|
||||
* @param handler
|
||||
* @param cacheManager
|
||||
*/
|
||||
@Inject
|
||||
public HgConfigResource(HgRepositoryHandler handler,
|
||||
public HgConfigResource(HttpClient client, HgRepositoryHandler handler,
|
||||
CacheManager cacheManager)
|
||||
{
|
||||
this.client = client;
|
||||
this.handler = handler;
|
||||
this.pkgReader = new HgPackageReader(cacheManager);
|
||||
}
|
||||
@@ -155,7 +159,7 @@ public class HgConfigResource
|
||||
|
||||
if (pkg != null)
|
||||
{
|
||||
if (HgInstallerFactory.createInstaller().installPackage(handler,
|
||||
if (HgInstallerFactory.createInstaller().installPackage(client, handler,
|
||||
SCMContext.getContext().getBaseDirectory(), pkg))
|
||||
{
|
||||
response = Response.noContent().build();
|
||||
@@ -336,6 +340,9 @@ public class HgConfigResource
|
||||
|
||||
//~--- fields ---------------------------------------------------------------
|
||||
|
||||
/** Field description */
|
||||
private HttpClient client;
|
||||
|
||||
/** Field description */
|
||||
private HgRepositoryHandler handler;
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ package sonia.scm.installer;
|
||||
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
|
||||
import sonia.scm.net.HttpClient;
|
||||
import sonia.scm.repository.HgConfig;
|
||||
import sonia.scm.repository.HgRepositoryHandler;
|
||||
import sonia.scm.util.IOUtil;
|
||||
@@ -83,6 +84,8 @@ public abstract class AbstractHgInstaller implements HgInstaller
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* @param client
|
||||
* @param handler
|
||||
* @param baseDirectory
|
||||
* @param pkg
|
||||
@@ -90,9 +93,10 @@ public abstract class AbstractHgInstaller implements HgInstaller
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean installPackage(HgRepositoryHandler handler,
|
||||
public boolean installPackage(HttpClient client, HgRepositoryHandler handler,
|
||||
File baseDirectory, HgPackage pkg)
|
||||
{
|
||||
return new HgPackageInstaller(handler, baseDirectory, pkg).install();
|
||||
return new HgPackageInstaller(client, handler, baseDirectory,
|
||||
pkg).install();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,9 @@ package sonia.scm.installer;
|
||||
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
|
||||
import sonia.scm.net.HttpClient;
|
||||
import sonia.scm.repository.HgConfig;
|
||||
import sonia.scm.repository.HgRepositoryHandler;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
|
||||
@@ -43,7 +45,6 @@ import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import java.util.List;
|
||||
import sonia.scm.repository.HgRepositoryHandler;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -69,12 +70,16 @@ public interface HgInstaller
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* @param client
|
||||
* @param handler
|
||||
* @param baseDirectory
|
||||
* @param pkg
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public boolean installPackage(HgRepositoryHandler handler, File baseDirectory,
|
||||
HgPackage pkg);
|
||||
public boolean installPackage(HttpClient client, HgRepositoryHandler handler,
|
||||
File baseDirectory, HgPackage pkg);
|
||||
|
||||
/**
|
||||
* Method description
|
||||
|
||||
@@ -39,6 +39,7 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import sonia.scm.io.ZipUnArchiver;
|
||||
import sonia.scm.net.HttpClient;
|
||||
import sonia.scm.repository.HgConfig;
|
||||
import sonia.scm.repository.HgRepositoryHandler;
|
||||
import sonia.scm.util.IOUtil;
|
||||
@@ -51,8 +52,6 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import java.net.URL;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
|
||||
/**
|
||||
@@ -73,13 +72,16 @@ public class HgPackageInstaller implements Runnable
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* @param client
|
||||
* @param handler
|
||||
* @param baseDirectory
|
||||
* @param pkg
|
||||
*/
|
||||
public HgPackageInstaller(HgRepositoryHandler handler, File baseDirectory,
|
||||
HgPackage pkg)
|
||||
public HgPackageInstaller(HttpClient client, HgRepositoryHandler handler,
|
||||
File baseDirectory, HgPackage pkg)
|
||||
{
|
||||
this.client = client;
|
||||
this.handler = handler;
|
||||
this.baseDirectory = baseDirectory;
|
||||
this.pkg = pkg;
|
||||
@@ -150,7 +152,8 @@ public class HgPackageInstaller implements Runnable
|
||||
logger.debug("download package to {}", file.getAbsolutePath());
|
||||
}
|
||||
|
||||
input = new URL(pkg.getUrl()).openStream();
|
||||
// TODO error handling
|
||||
input = client.get(pkg.getUrl()).getContent();
|
||||
output = new FileOutputStream(file);
|
||||
IOUtil.copy(input, output);
|
||||
}
|
||||
@@ -255,6 +258,9 @@ public class HgPackageInstaller implements Runnable
|
||||
/** Field description */
|
||||
private File baseDirectory;
|
||||
|
||||
/** Field description */
|
||||
private HttpClient client;
|
||||
|
||||
/** Field description */
|
||||
private HgRepositoryHandler handler;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user