diff --git a/src/main/java/com/e_gineering/maven/gitflowhelper/AbstractGitflowBasedRepositoryMojo.java b/src/main/java/com/e_gineering/maven/gitflowhelper/AbstractGitflowBasedRepositoryMojo.java index 9acc985..ae4ece3 100644 --- a/src/main/java/com/e_gineering/maven/gitflowhelper/AbstractGitflowBasedRepositoryMojo.java +++ b/src/main/java/com/e_gineering/maven/gitflowhelper/AbstractGitflowBasedRepositoryMojo.java @@ -91,11 +91,21 @@ private static PrintWriter newPrintWriter(File catalog) throws FileNotFoundExcep * @throws MojoFailureException if the repository id is not defined. */ ArtifactRepository getDeploymentRepository(final String id) throws MojoFailureException { + return getDeploymentRepositoryOpt(id).orElseThrow(() -> new MojoFailureException("No Repository with id `" + id + "` is defined.")); + } + + /** + * Get an repository by the repository ID. + * + * @param id the repository identifier + * @return optional to the repository (never @Code{null}) + */ + Optional getDeploymentRepositoryOpt(String id) { Objects.requireNonNull(id, "A repository id must be specified."); Optional repo = project.getRemoteArtifactRepositories().stream().filter(r -> r.getId().equals(id)).findFirst(); if (repo.isPresent()) { - return repo.get(); + return repo; } Optional mirroredRepo = project.getRemoteArtifactRepositories().stream() @@ -105,9 +115,10 @@ ArtifactRepository getDeploymentRepository(final String id) throws MojoFailureEx if(artifactRepository.getAuthentication() == null) { artifactRepository.setAuthentication(getAuthentication(artifactRepository)); } - return artifactRepository; + return Optional.of(artifactRepository); } - throw new MojoFailureException("No Repository with id `" + id + "` is defined."); + + return Optional.empty(); } /** @@ -210,10 +221,11 @@ private void catalogArtifact(PrintWriter writer, Artifact artifact) { * @throws MojoExecutionException for any unhandled maven exception */ void attachExistingArtifacts(@Nullable final String sourceRepository, final boolean disableLocal) - throws MojoExecutionException, MojoFailureException { + throws MojoExecutionException { List remoteArtifactRepositories = new ArrayList<>(); - Optional repo = project.getRemoteArtifactRepositories().stream().filter(r -> r.getId().equals(sourceRepository)).findFirst(); + + Optional repo = getDeploymentRepositoryOpt(sourceRepository); if (repo.isPresent()) { remoteArtifactRepositories.add(repo.get()); } else {