Replace model object exception with generic ones and migrate guice

This commit is contained in:
René Pfeuffer
2018-08-21 07:53:33 +02:00
parent bb9a0657a5
commit a0f74e3329
227 changed files with 1380 additions and 3549 deletions

View File

@@ -37,18 +37,15 @@ package sonia.scm.repository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sonia.scm.SCMContext;
import sonia.scm.util.IOUtil;
import sonia.scm.util.Util;
import sonia.scm.web.HgUtil;
//~--- JDK imports ------------------------------------------------------------
import javax.xml.bind.JAXBException;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -56,7 +53,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.xml.bind.JAXBException;
//~--- JDK imports ------------------------------------------------------------
/**
*
@@ -257,45 +254,15 @@ public class AbstractHgHandler
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param resultType
* @param script
* @param <T>
*
* @return
*
* @throws IOException
* @throws RepositoryException
*/
protected <T> T getResultFromScript(Class<T> resultType,
HgPythonScript script)
throws IOException, RepositoryException
{
protected <T> T getResultFromScript(Class<T> resultType, HgPythonScript script) throws IOException {
return getResultFromScript(resultType, script,
new HashMap<String, String>());
}
/**
* Method description
*
*
* @param resultType
* @param script
* @param extraEnv
* @param <T>
*
* @return
*
* @throws IOException
* @throws RepositoryException
*/
@SuppressWarnings("unchecked")
protected <T> T getResultFromScript(Class<T> resultType,
HgPythonScript script, Map<String, String> extraEnv)
throws IOException, RepositoryException
throws IOException
{
Process p = createScriptProcess(script, extraEnv);
@@ -305,7 +272,7 @@ public class AbstractHgHandler
} catch (JAXBException ex) {
logger.error("could not parse result", ex);
throw new RepositoryException("could not parse result", ex);
throw new InternalRepositoryException("could not parse result", ex);
}
}

View File

@@ -36,31 +36,25 @@ package sonia.scm.repository;
//~--- non-JDK imports --------------------------------------------------------
import com.github.legman.Subscribe;
import com.google.common.base.Objects;
import com.google.common.base.MoreObjects;
import com.google.inject.Inject;
import com.google.inject.OutOfScopeException;
import com.google.inject.Provider;
import com.google.inject.ProvisionException;
import com.google.inject.Singleton;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sonia.scm.config.ScmConfiguration;
import sonia.scm.config.ScmConfigurationChangedEvent;
import sonia.scm.net.ahc.AdvancedHttpClient;
import sonia.scm.util.HttpUtil;
import sonia.scm.util.Util;
//~--- JDK imports ------------------------------------------------------------
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;
import sonia.scm.config.ScmConfigurationChangedEvent;
import sonia.scm.net.ahc.AdvancedHttpClient;
//~--- JDK imports ------------------------------------------------------------
/**
*
@@ -273,7 +267,7 @@ public class HgHookManager
{
//J-
return HttpUtil.getUriWithoutEndSeperator(
Objects.firstNonNull(
MoreObjects.firstNonNull(
configuration.getBaseUrl(),
"http://localhost:8080/scm"
)

View File

@@ -37,18 +37,17 @@ package sonia.scm.repository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sonia.scm.io.INIConfiguration;
import sonia.scm.io.INIConfigurationReader;
import sonia.scm.io.INIConfigurationWriter;
import sonia.scm.io.INISection;
import sonia.scm.util.ValidationUtil;
//~--- JDK imports ------------------------------------------------------------
import java.io.File;
import java.io.IOException;
//~--- JDK imports ------------------------------------------------------------
/**
*
* @author Sebastian Sdorra
@@ -80,22 +79,10 @@ public class HgImportHandler extends AbstactImportHandler
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
* @param repositoryDirectory
* @param repositoryName
*
* @return
*
* @throws IOException
* @throws RepositoryException
*/
@Override
protected Repository createRepository(File repositoryDirectory,
String repositoryName)
throws IOException, RepositoryException
throws IOException
{
Repository repository = super.createRepository(repositoryDirectory,
repositoryName);

View File

@@ -38,10 +38,8 @@ package sonia.scm.repository;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sonia.scm.ConfigurationException;
import sonia.scm.SCMContextProvider;
import sonia.scm.installer.HgInstaller;
@@ -55,23 +53,21 @@ import sonia.scm.io.INIConfigurationWriter;
import sonia.scm.io.INISection;
import sonia.scm.plugin.Extension;
import sonia.scm.repository.spi.HgRepositoryServiceProvider;
import sonia.scm.store.ConfigurationStoreFactory;
import sonia.scm.util.IOUtil;
import sonia.scm.util.SystemUtil;
import sonia.scm.util.Util;
//~--- JDK imports ------------------------------------------------------------
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.MessageFormat;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import sonia.scm.store.ConfigurationStoreFactory;
//~--- JDK imports ------------------------------------------------------------
/**
*
@@ -430,11 +426,10 @@ public class HgRepositoryHandler
* @param directory
*
* @throws IOException
* @throws RepositoryException
*/
@Override
protected void postCreate(Repository repository, File directory)
throws IOException, RepositoryException
throws IOException
{
File hgrcFile = new File(directory, PATH_HGRC);
INIConfiguration hgrc = new INIConfiguration();

View File

@@ -34,14 +34,15 @@ package sonia.scm.repository;
//~--- non-JDK imports --------------------------------------------------------
import com.google.common.base.MoreObjects;
import com.google.common.base.Objects;
//~--- JDK imports ------------------------------------------------------------
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
//~--- JDK imports ------------------------------------------------------------
/**
*
* @author Sebastian Sdorra
@@ -100,7 +101,7 @@ public class HgVersion
public String toString()
{
//J-
return Objects.toStringHelper(this)
return MoreObjects.toStringHelper(this)
.add("mercurial", mercurial)
.add("python", python)
.toString();

View File

@@ -44,15 +44,6 @@ import java.io.IOException;
public class HgVersionHandler extends AbstractHgHandler
{
/**
* Constructs ...
*
*
* @param handler
* @param jaxbContext
* @param context
* @param directory
*/
public HgVersionHandler(HgRepositoryHandler handler, HgContext context,
File directory)
{
@@ -61,17 +52,7 @@ public class HgVersionHandler extends AbstractHgHandler
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*
* @throws IOException
* @throws RepositoryException
*/
public HgVersion getVersion() throws IOException, RepositoryException
{
public HgVersion getVersion() throws IOException {
return getResultFromScript(HgVersion.class, HgPythonScript.VERSION);
}
}

View File

@@ -38,26 +38,21 @@ package sonia.scm.repository.spi;
import com.aragost.javahg.Changeset;
import com.aragost.javahg.commands.AnnotateCommand;
import com.aragost.javahg.commands.AnnotateLine;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sonia.scm.repository.BlameLine;
import sonia.scm.repository.BlameResult;
import sonia.scm.repository.Person;
import sonia.scm.repository.Repository;
import sonia.scm.repository.RepositoryException;
import sonia.scm.web.HgUtil;
//~--- JDK imports ------------------------------------------------------------
import java.io.IOException;
import java.util.List;
//~--- JDK imports ------------------------------------------------------------
/**
*
* @author Sebastian Sdorra
@@ -87,20 +82,9 @@ public class HgBlameCommand extends AbstractCommand implements BlameCommand
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param request
*
* @return
*
* @throws IOException
* @throws RepositoryException
*/
@Override
public BlameResult getBlameResult(BlameCommandRequest request)
throws IOException, RepositoryException
throws IOException
{
if (logger.isDebugEnabled())
{

View File

@@ -36,20 +36,15 @@ package sonia.scm.repository.spi;
//~--- non-JDK imports --------------------------------------------------------
import com.aragost.javahg.Changeset;
import com.google.common.base.Function;
import com.google.common.collect.Lists;
import sonia.scm.repository.Branch;
import sonia.scm.repository.Repository;
import sonia.scm.repository.RepositoryException;
//~--- JDK imports ------------------------------------------------------------
import java.io.IOException;
import java.util.List;
//~--- JDK imports ------------------------------------------------------------
/**
*
* @author Sebastian Sdorra
@@ -72,18 +67,8 @@ public class HgBranchesCommand extends AbstractCommand
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*
* @throws IOException
* @throws RepositoryException
*/
@Override
public List<Branch> getBranches() throws RepositoryException, IOException
{
public List<Branch> getBranches() {
List<com.aragost.javahg.commands.Branch> hgBranches =
com.aragost.javahg.commands.BranchesCommand.on(open()).execute();

View File

@@ -36,16 +36,14 @@ package sonia.scm.repository.spi;
//~--- non-JDK imports --------------------------------------------------------
import com.google.common.base.Strings;
import sonia.scm.repository.BrowserResult;
import sonia.scm.repository.Repository;
import sonia.scm.repository.RepositoryException;
import sonia.scm.repository.spi.javahg.HgFileviewCommand;
//~--- JDK imports ------------------------------------------------------------
import java.io.IOException;
//~--- JDK imports ------------------------------------------------------------
/**
*
* @author Sebastian Sdorra
@@ -67,20 +65,9 @@ public class HgBrowseCommand extends AbstractCommand implements BrowseCommand
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param request
*
* @return
*
* @throws IOException
* @throws RepositoryException
*/
@Override
public BrowserResult getBrowserResult(BrowseCommandRequest request)
throws IOException, RepositoryException
throws IOException
{
HgFileviewCommand cmd = HgFileviewCommand.on(open());

View File

@@ -36,8 +36,8 @@ package sonia.scm.repository.spi;
import com.aragost.javahg.commands.ExecutionException;
import com.google.common.io.ByteStreams;
import com.google.common.io.Closeables;
import sonia.scm.repository.InternalRepositoryException;
import sonia.scm.repository.Repository;
import sonia.scm.repository.RepositoryException;
import sonia.scm.web.HgUtil;
import java.io.IOException;
@@ -51,7 +51,7 @@ public class HgCatCommand extends AbstractCommand implements CatCommand {
}
@Override
public void getCatResult(CatCommandRequest request, OutputStream output) throws IOException, RepositoryException {
public void getCatResult(CatCommandRequest request, OutputStream output) throws IOException {
InputStream input = getCatResultStream(request);
try {
ByteStreams.copy(input, output);
@@ -61,7 +61,7 @@ public class HgCatCommand extends AbstractCommand implements CatCommand {
}
@Override
public InputStream getCatResultStream(CatCommandRequest request) throws IOException, RepositoryException {
public InputStream getCatResultStream(CatCommandRequest request) throws IOException {
com.aragost.javahg.commands.CatCommand cmd =
com.aragost.javahg.commands.CatCommand.on(open());
@@ -70,7 +70,7 @@ public class HgCatCommand extends AbstractCommand implements CatCommand {
try {
return cmd.execute(request.getPath());
} catch (ExecutionException e) {
throw new RepositoryException(e);
throw new InternalRepositoryException(e);
}
}
}

View File

@@ -38,19 +38,17 @@ package sonia.scm.repository.spi;
import com.google.common.base.Strings;
import com.google.common.io.ByteStreams;
import com.google.common.io.Closeables;
import sonia.scm.repository.Repository;
import sonia.scm.repository.RepositoryException;
import sonia.scm.repository.api.DiffFormat;
import sonia.scm.repository.spi.javahg.HgDiffInternalCommand;
import sonia.scm.web.HgUtil;
//~--- JDK imports ------------------------------------------------------------
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
//~--- JDK imports ------------------------------------------------------------
/**
*
* @author Sebastian Sdorra
@@ -72,19 +70,9 @@ public class HgDiffCommand extends AbstractCommand implements DiffCommand
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param request
* @param output
*
* @throws IOException
* @throws RepositoryException
*/
@Override
public void getDiffResult(DiffCommandRequest request, OutputStream output)
throws IOException, RepositoryException
throws IOException
{
com.aragost.javahg.Repository hgRepo = open();

View File

@@ -35,21 +35,19 @@ package sonia.scm.repository.spi;
//~--- non-JDK imports --------------------------------------------------------
import com.aragost.javahg.commands.ExecutionException;
import sonia.scm.repository.Changeset;
import sonia.scm.repository.ChangesetPagingResult;
import sonia.scm.repository.HgRepositoryHandler;
import sonia.scm.repository.InternalRepositoryException;
import sonia.scm.repository.Repository;
import sonia.scm.repository.RepositoryException;
import sonia.scm.repository.spi.javahg.HgIncomingChangesetCommand;
//~--- JDK imports ------------------------------------------------------------
import java.io.File;
import java.util.Collections;
import java.util.List;
//~--- JDK imports ------------------------------------------------------------
/**
*
* @author Sebastian Sdorra
@@ -80,22 +78,9 @@ public class HgIncomingCommand extends AbstractCommand
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param request
*
* @return
*
* @throws RepositoryException
*/
@Override
@SuppressWarnings("unchecked")
public ChangesetPagingResult getIncomingChangesets(
IncomingCommandRequest request)
throws RepositoryException
{
public ChangesetPagingResult getIncomingChangesets(IncomingCommandRequest request) {
File remoteRepository = handler.getDirectory(request.getRemoteRepository());
com.aragost.javahg.Repository repository = open();
@@ -118,7 +103,7 @@ public class HgIncomingCommand extends AbstractCommand
}
else
{
throw new RepositoryException("could not execute incoming command", ex);
throw new InternalRepositoryException("could not execute incoming command", ex);
}
}

View File

@@ -36,20 +36,16 @@ package sonia.scm.repository.spi;
//~--- non-JDK imports --------------------------------------------------------
import com.google.common.base.Strings;
import sonia.scm.repository.Changeset;
import sonia.scm.repository.ChangesetPagingResult;
import sonia.scm.repository.Repository;
import sonia.scm.repository.RepositoryException;
import sonia.scm.repository.spi.javahg.HgLogChangesetCommand;
//~--- JDK imports ------------------------------------------------------------
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
//~--- JDK imports ------------------------------------------------------------
/**
*
* @author Sebastian Sdorra
@@ -71,42 +67,16 @@ public class HgLogCommand extends AbstractCommand implements LogCommand
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param id
*
* @return
*
* @throws IOException
* @throws RepositoryException
*/
@Override
public Changeset getChangeset(String id)
throws IOException, RepositoryException
{
public Changeset getChangeset(String id) {
com.aragost.javahg.Repository repository = open();
HgLogChangesetCommand cmd = on(repository);
return cmd.rev(id).single();
}
/**
* Method description
*
*
* @param request
*
* @return
*
* @throws IOException
* @throws RepositoryException
*/
@Override
public ChangesetPagingResult getChangesets(LogCommandRequest request)
throws IOException, RepositoryException
{
public ChangesetPagingResult getChangesets(LogCommandRequest request) {
ChangesetPagingResult result = null;
com.aragost.javahg.Repository repository = open();

View File

@@ -35,21 +35,19 @@ package sonia.scm.repository.spi;
//~--- non-JDK imports --------------------------------------------------------
import com.aragost.javahg.commands.ExecutionException;
import sonia.scm.repository.Changeset;
import sonia.scm.repository.ChangesetPagingResult;
import sonia.scm.repository.HgRepositoryHandler;
import sonia.scm.repository.InternalRepositoryException;
import sonia.scm.repository.Repository;
import sonia.scm.repository.RepositoryException;
import sonia.scm.repository.spi.javahg.HgOutgoingChangesetCommand;
//~--- JDK imports ------------------------------------------------------------
import java.io.File;
import java.util.Collections;
import java.util.List;
//~--- JDK imports ------------------------------------------------------------
/**
*
* @author Sebastian Sdorra
@@ -80,21 +78,10 @@ public class HgOutgoingCommand extends AbstractCommand
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param request
*
* @return
*
* @throws RepositoryException
*/
@Override
@SuppressWarnings("unchecked")
public ChangesetPagingResult getOutgoingChangesets(
OutgoingCommandRequest request)
throws RepositoryException
{
File remoteRepository = handler.getDirectory(request.getRemoteRepository());
@@ -116,7 +103,7 @@ public class HgOutgoingCommand extends AbstractCommand
}
else
{
throw new RepositoryException("could not execute outgoing command", ex);
throw new InternalRepositoryException("could not execute outgoing command", ex);
}
}

View File

@@ -37,22 +37,19 @@ package sonia.scm.repository.spi;
import com.aragost.javahg.Changeset;
import com.aragost.javahg.commands.ExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sonia.scm.repository.HgRepositoryHandler;
import sonia.scm.repository.InternalRepositoryException;
import sonia.scm.repository.Repository;
import sonia.scm.repository.RepositoryException;
import sonia.scm.repository.api.PullResponse;
//~--- JDK imports ------------------------------------------------------------
import java.io.IOException;
import java.util.Collections;
import java.util.List;
//~--- JDK imports ------------------------------------------------------------
/**
*
* @author Sebastian Sdorra
@@ -83,21 +80,10 @@ public class HgPullCommand extends AbstractHgPushOrPullCommand
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
* @param request
*
* @return
*
* @throws IOException
* @throws RepositoryException
*/
@Override
@SuppressWarnings("unchecked")
public PullResponse pull(PullCommandRequest request)
throws RepositoryException, IOException
throws IOException
{
String url = getRemoteUrl(request);
@@ -111,7 +97,7 @@ public class HgPullCommand extends AbstractHgPushOrPullCommand
}
catch (ExecutionException ex)
{
throw new RepositoryException("could not execute push command", ex);
throw new InternalRepositoryException("could not execute push command", ex);
}
return new PullResponse(result.size());

View File

@@ -37,22 +37,19 @@ package sonia.scm.repository.spi;
import com.aragost.javahg.Changeset;
import com.aragost.javahg.commands.ExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sonia.scm.repository.HgRepositoryHandler;
import sonia.scm.repository.InternalRepositoryException;
import sonia.scm.repository.Repository;
import sonia.scm.repository.RepositoryException;
import sonia.scm.repository.api.PushResponse;
//~--- JDK imports ------------------------------------------------------------
import java.io.IOException;
import java.util.Collections;
import java.util.List;
//~--- JDK imports ------------------------------------------------------------
/**
*
* @author Sebastian Sdorra
@@ -83,21 +80,10 @@ public class HgPushCommand extends AbstractHgPushOrPullCommand
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
* @param request
*
* @return
*
* @throws IOException
* @throws RepositoryException
*/
@Override
@SuppressWarnings("unchecked")
public PushResponse push(PushCommandRequest request)
throws RepositoryException, IOException
throws IOException
{
String url = getRemoteUrl(request);
@@ -111,7 +97,7 @@ public class HgPushCommand extends AbstractHgPushOrPullCommand
}
catch (ExecutionException ex)
{
throw new RepositoryException("could not execute push command", ex);
throw new InternalRepositoryException("could not execute push command", ex);
}
return new PushResponse(result.size());