[java-mvn-enforcer] branch main updated: JMVN-83 Warning about future enforcer API changes

Codeberg noreply at shibboleth.net
Thu Sep 24 18:27:08 UTC 2026


This is an automated email from the git hooks/post-receive script.

codeberg pushed a commit to branch main
in repository java-mvn-enforcer.

View the commit online:
https://codeberg.org/Shibboleth/java-mvn-enforcer/commit/efd27e669c4d92e22fb91d4becde82c8d71ecdcc

The following commit(s) were added to refs/heads/main by this push:
     new efd27e6  JMVN-83 Warning about future enforcer API changes
efd27e6 is described below

commit efd27e669c4d92e22fb91d4becde82c8d71ecdcc
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Thu Sep 24 19:21:01 2026 +0100

    JMVN-83 Warning about future enforcer API changes
    
    https://shibboleth.atlassian.net/browse/JMVN-83
    
    Initial port to new API.
---
 .settings/org.eclipse.jdt.core.prefs               | 113 ---------------------
 pom.xml                                            |  49 ++++++++-
 .../mvn/enforcer/impl/BaseSigChecker.java          |   2 +-
 .../mvn/enforcer/impl/DependencyChecker.java       |   2 +-
 .../shibboleth/mvn/enforcer/impl/GPGKeyRing.java   |   5 +-
 .../shibboleth/mvn/enforcer/impl/JarEnforcer.java  | 106 +++++++++----------
 .../shibboleth/mvn/enforcer/impl/M2SigChecker.java |   2 +-
 ...{EnforcerLogger.java => MvnEnforcerLogger.java} |  38 +++----
 .../shibboleth/mvn/enforcer/impl/SigChecker.java   |   2 +-
 9 files changed, 116 insertions(+), 203 deletions(-)

diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2fb8ec2..0000000
--- a/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,113 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.annotationPath.allLocations=disabled
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=javax.annotation.Nonnull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=org.springframework.lang.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.springframework.lang.NonNullApi
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=javax.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=org.springframework.lang.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
-org.eclipse.jdt.core.compiler.compliance=17
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotatedTypeArgumentToUnannotated=info
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=error
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.suppressWarningsNotFullyAnalysed=info
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=17
diff --git a/pom.xml b/pom.xml
index 1b74bcb..6f41b59 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,9 +9,8 @@
         <version>2.0.1</version>
     </parent>
 
-    <groupId>net.shibboleth.maven.enforcer.rules</groupId>
     <artifactId>maven-dist-enforcer</artifactId>
-    <version>4.0.1-SNAPSHOT</version>
+    <version>4.1.0-SNAPSHOT</version>
     <packaging>jar</packaging>
 
     <name>Shibboleth Maven Enforcer</name>
@@ -21,6 +20,13 @@
         <automatic.module.name>net.shibboleth.maven.enforcer.rules.dist</automatic.module.name>
         <current-dist-enforcer-data.version>2.0.3</current-dist-enforcer-data.version>
         <current-dist-enforcer.version>4.0.0</current-dist-enforcer.version>
+        <!-- https://maven.apache.org/enforcer/enforcer-api/writing-a-custom-rule.html -->
+        <enforcer.api.version>3.6.3</enforcer.api.version>
+        <resolver.api.version>1.9.22</resolver.api.version>
+        <mavenVersion>3.9.15</mavenVersion>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+        <maven.compiler.release>17</maven.compiler.release>
     </properties>
 
     <dependencies>
@@ -71,16 +77,51 @@
         </dependency>
         <!-- Provided
              (because we are inside) maven
+             https://maven.apache.org/enforcer/enforcer-api/writing-a-custom-rule.html
         -->
         <dependency>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-enforcer-plugin</artifactId>
+            <groupId>org.apache.maven.enforcer</groupId>
+            <artifactId>enforcer-api</artifactId>
+            <version>${enforcer.api.version}</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <!-- required in all cases -->
+            <groupId>org.apache.maven.resolver</groupId>
+            <artifactId>maven-resolver-api</artifactId>
+            <version>${resolver.api.version}</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-core</artifactId>
+            <version>${mavenVersion}</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>javax.inject</groupId>
+            <artifactId>javax.inject</artifactId>
+            <version>1</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>
 
     <build>
         <plugins>
+            <plugin>
+            <!-- generate index of project components
+                 https://maven.apache.org/enforcer/enforcer-api/writing-a-custom-rule.html -->
+                <groupId>org.eclipse.sisu</groupId>
+                <artifactId>sisu-maven-plugin</artifactId>
+                <version>1.0.0</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>main-index</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-jar-plugin</artifactId>
diff --git a/src/main/java/net/shibboleth/mvn/enforcer/impl/BaseSigChecker.java b/src/main/java/net/shibboleth/mvn/enforcer/impl/BaseSigChecker.java
index 187732a..9c5480d 100644
--- a/src/main/java/net/shibboleth/mvn/enforcer/impl/BaseSigChecker.java
+++ b/src/main/java/net/shibboleth/mvn/enforcer/impl/BaseSigChecker.java
@@ -45,7 +45,7 @@ import net.shibboleth.shared.logic.Constraint;
 public class BaseSigChecker {
 
     /** Our log. */
-    private final Logger log = EnforcerLogger.getLogger(BaseSigChecker.class);
+    private final Logger log = MvnEnforcerLogger.getLogger(BaseSigChecker.class);
 
     /** where we are writing to (target/dependencyReport.txt).*/
     private final PrintWriter report;
diff --git a/src/main/java/net/shibboleth/mvn/enforcer/impl/DependencyChecker.java b/src/main/java/net/shibboleth/mvn/enforcer/impl/DependencyChecker.java
index b020343..93e1c09 100644
--- a/src/main/java/net/shibboleth/mvn/enforcer/impl/DependencyChecker.java
+++ b/src/main/java/net/shibboleth/mvn/enforcer/impl/DependencyChecker.java
@@ -57,7 +57,7 @@ import net.shibboleth.shared.logic.Constraint;
 public class DependencyChecker {
 
     /** Our log. */
-    private final Logger log = EnforcerLogger.getLogger(DependencyChecker.class);
+    private final Logger log = MvnEnforcerLogger.getLogger(DependencyChecker.class);
 
     /** where we are writing to (target/dependencyReport.txt).*/
     private final PrintWriter report;
diff --git a/src/main/java/net/shibboleth/mvn/enforcer/impl/GPGKeyRing.java b/src/main/java/net/shibboleth/mvn/enforcer/impl/GPGKeyRing.java
index ebda222..b83e07c 100644
--- a/src/main/java/net/shibboleth/mvn/enforcer/impl/GPGKeyRing.java
+++ b/src/main/java/net/shibboleth/mvn/enforcer/impl/GPGKeyRing.java
@@ -56,11 +56,8 @@ import org.slf4j.Logger;
 @NotThreadSafe public final class GPGKeyRing {
 
     /** logger. */
-    @Nonnull private final Logger log = EnforcerLogger.getLogger(GPGKeyRing.class);
+    @Nonnull private final Logger log = MvnEnforcerLogger.getLogger(GPGKeyRing.class);
     
-    /** The key store backup. */
-    //@Nullable private Path backup;
-
     /** KeyRing. */
     @Nonnull private final PGPPublicKeyRingCollection keyRings;
     
diff --git a/src/main/java/net/shibboleth/mvn/enforcer/impl/JarEnforcer.java b/src/main/java/net/shibboleth/mvn/enforcer/impl/JarEnforcer.java
index efc570a..9351abe 100644
--- a/src/main/java/net/shibboleth/mvn/enforcer/impl/JarEnforcer.java
+++ b/src/main/java/net/shibboleth/mvn/enforcer/impl/JarEnforcer.java
@@ -35,31 +35,36 @@ import java.util.List;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
+import javax.inject.Inject;
+import javax.inject.Named;
 
 import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
 import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
 import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
-import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
-import org.apache.maven.artifact.resolver.ArtifactResolver;
-import org.apache.maven.enforcer.rule.api.EnforcerRule;
+import org.apache.maven.enforcer.rule.api.AbstractEnforcerRule;
 import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
-import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.repository.RepositorySystem;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.artifact.DefaultArtifact;
+import org.eclipse.aether.resolution.ArtifactRequest;
+import org.eclipse.aether.resolution.ArtifactResolutionException;
+import org.eclipse.aether.resolution.ArtifactResult;
 import org.slf4j.Logger;
 
 import net.shibboleth.mvn.enforcer.impl.GPGKeyRing.Signature;
+import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.primitive.StringSupport;
-import net.shibboleth.shared.xml.impl.BasicParserPool;
 import net.shibboleth.shared.xml.XMLConstants;
+import net.shibboleth.shared.xml.impl.BasicParserPool;
 
-/** {@link EnforcerRule} implementation to check various
- * things of interest about our distributions.
+/** 
+ * The implementation of {@link AbstractEnforcerRule} that
+ * does the work.
  */
-public class JarEnforcer implements EnforcerRule, MavenLoader{
+ at Named("jarEnforcer")
+public class JarEnforcer extends AbstractEnforcerRule implements MavenLoader{
 
     /* 
      * Parameters added to the pom.
@@ -122,23 +127,28 @@ public class JarEnforcer implements EnforcerRule, MavenLoader{
     /** The list of classifiers we know about*/
     @Nonnull private String classifiers = "";
 
-    /** Our artifact resolver. */
-    private ArtifactResolver artifactResolver;
-
     /** Our Maven Session . */
-    private MavenSession session;
+    @Nonnull private final MavenSession session;
 
-    /** Our Maven Project. */
-    private MavenProject project;
+    /** Our Maven project . */
+    @Nonnull private final MavenProject project;
 
-    /** Our Maven log. */
+    /** The thing used to do resolution. */
+    @Nonnull private final RepositorySystem repositorySystem;
+    
+    /** Our logger.  Setup at the start of {@link #execute()}. */
     private Logger log;
 
-    /** The {@link RepositorySystem} we will use. */
-    private RepositorySystem repositorySystem;
+    /** {@literal ${basedir}}\target}. */
+    private final Path targetDir;
 
-    /** {@literal ${basedir}\target} */
-    private Path targetDir;
+    @Inject
+    public JarEnforcer(MavenProject theProject, MavenSession theSession, RepositorySystem theRepoSystem) {
+        project = Constraint.isNotNull(theProject, "project must not be null");
+        session = Constraint.isNotNull(theSession, "session must not be null");
+        targetDir = session.getCurrentProject().getBasedir().toPath();
+        repositorySystem = Constraint.isNotNull(theRepoSystem, "repository System must not be null"); 
+    }
 
     /**
      * Get the path for the m2 Sig check - as configured or the default
@@ -177,9 +187,9 @@ public class JarEnforcer implements EnforcerRule, MavenLoader{
      * {@inheritDoc}
      */
     @Override
-    public void execute(@Nonnull final EnforcerRuleHelper helper) throws EnforcerRuleException {
-        EnforcerLogger.setMavenLogger(helper.getLog());
-        log = EnforcerLogger.getLogger(JarEnforcer.class);
+    public void execute() throws EnforcerRuleException {
+        MvnEnforcerLogger.setMavenLogger(getLog());
+        log = MvnEnforcerLogger.getLogger(JarEnforcer.class);
 
         final List<Path> tgzPaths = new ArrayList<>();
         for (final String name: StringSupport.stringToList(tgzFiles, XMLConstants.LIST_DELIMITERS)) {
@@ -203,14 +213,6 @@ public class JarEnforcer implements EnforcerRule, MavenLoader{
             throw new EnforcerRuleException("No <tgzFiles/> or <zipFiles/> provided that exist");
         }
         try {
-            repositorySystem = helper.getComponent(org.apache.maven.repository.RepositorySystem.class);
-            artifactResolver = helper.getComponent(ArtifactResolver.class);
-            session = (MavenSession) helper.evaluate( "${session}" );
-            project = (MavenProject) helper.evaluate( "${project}" );
-            targetDir = Path.of(helper.evaluate( "${basedir}" ).toString()).resolve("target");
-            if (repositorySystem == null || artifactResolver == null || session == null || project == null)  {
-                throw new EnforcerRuleException("Could not set up artifact environment");
-            }
             final Path pom  = Path.of(parentPomDir).resolve("pom.xml");
             if (Files.notExists(pom)) {
                 throw new EnforcerRuleException("Pom File " + parentPomDir + "/pom.xml does not exist");
@@ -220,7 +222,7 @@ public class JarEnforcer implements EnforcerRule, MavenLoader{
 
             try (final ProjectPomContext pomContext = 
                     new ProjectPomContext(this, 
-                                          EnforcerLogger.getLogger(ProjectPomContext.class),
+                                          MvnEnforcerLogger.getLogger(ProjectPomContext.class),
                                           pool,
                                           getGPGDataClassLoader(),
                                           StringSupport.stringToList(versionExtensions, XMLConstants.LIST_DELIMITERS),
@@ -447,15 +449,6 @@ public class JarEnforcer implements EnforcerRule, MavenLoader{
         return null;
     }
 
-    @Override
-    public boolean isCacheable() {
-        return false;
-    }
-
-    @Override
-    public boolean isResultValid(@Nonnull final EnforcerRule a) {
-        return false;
-    }
 
     /** Helper function to download an artitfact.
      * @param groupId Group Id
@@ -467,22 +460,17 @@ public class JarEnforcer implements EnforcerRule, MavenLoader{
      * @throws Exception on various issues from the (maven) resolver
      */
     @Nullable public File downloadArtifact(final String groupId, final String artifactId, final String version, final String classifier, final String type) throws Exception {
-        final Artifact mavenArtifact = repositorySystem.createArtifactWithClassifier(groupId,artifactId, version, type, classifier);
-
-        if (mavenArtifact == null) {
-            log.error("Could not create {}:{}:{}:{}", groupId, artifactId, version, type);
-        } else {
-            final ArtifactResolutionRequest request = new ArtifactResolutionRequest()
-                .setArtifact( mavenArtifact )
-                .setResolveRoot( true )
-                .setLocalRepository( session.getLocalRepository())
-                .setRemoteRepositories( project.getRemoteArtifactRepositories());
-            final ArtifactResolutionResult result = artifactResolver.resolve(request);
-            if (result.isSuccess()) {
-                log.debug("Resolved OK {}:{}:{}:{}", groupId, artifactId, version, type);
-                return mavenArtifact.getFile();
-            }
-            log.info("Could not resolve " + groupId +":" + artifactId + ":" + version + ":" + type);
+
+        final Artifact artifact = new DefaultArtifact(groupId, artifactId, classifier, type, version);
+        final ArtifactRequest req = new ArtifactRequest(artifact, project.getRemoteProjectRepositories(), null);
+        log.debug("Resolving ", artifact);
+        try {
+            final ArtifactResult res = repositorySystem.resolveArtifact(session.getRepositorySession(),  req);
+            final File file = res.getArtifact().getFile();
+            log.debug("Resolved to ", file.getAbsolutePath());
+            return file;
+        } catch (final ArtifactResolutionException e) {
+            log.error("Resolution failed", e);
         }
         return null;
     }
diff --git a/src/main/java/net/shibboleth/mvn/enforcer/impl/M2SigChecker.java b/src/main/java/net/shibboleth/mvn/enforcer/impl/M2SigChecker.java
index f159f9f..4b87d35 100644
--- a/src/main/java/net/shibboleth/mvn/enforcer/impl/M2SigChecker.java
+++ b/src/main/java/net/shibboleth/mvn/enforcer/impl/M2SigChecker.java
@@ -40,7 +40,7 @@ import net.shibboleth.mvn.enforcer.impl.ParsedPom.DependencyPomArtifact;
 public class M2SigChecker extends BaseSigChecker {
 
     /** Our log. */
-    private final Logger log = EnforcerLogger.getLogger(M2SigChecker.class);
+    private final Logger log = MvnEnforcerLogger.getLogger(M2SigChecker.class);
 
     /** How many things have failed? */
     private int failCount;
diff --git a/src/main/java/net/shibboleth/mvn/enforcer/impl/EnforcerLogger.java b/src/main/java/net/shibboleth/mvn/enforcer/impl/MvnEnforcerLogger.java
similarity index 92%
rename from src/main/java/net/shibboleth/mvn/enforcer/impl/EnforcerLogger.java
rename to src/main/java/net/shibboleth/mvn/enforcer/impl/MvnEnforcerLogger.java
index cd3a23c..528f4de 100644
--- a/src/main/java/net/shibboleth/mvn/enforcer/impl/EnforcerLogger.java
+++ b/src/main/java/net/shibboleth/mvn/enforcer/impl/MvnEnforcerLogger.java
@@ -20,23 +20,23 @@
 import java.util.regex.Pattern;
 
 import javax.annotation.Nonnull;
-import org.slf4j.LoggerFactory;
-
-import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.enforcer.rule.api.EnforcerLogger;
 import org.slf4j.Logger;
 import org.slf4j.Marker;
 
+import net.shibboleth.shared.primitive.LoggerFactory;
+
 
 /** Shim between a maven logger and an sl4j logger.
  *
  */
-public final class EnforcerLogger implements Logger {
+public final class MvnEnforcerLogger implements Logger {
         
     /** If non null we are inside maven and have to shim out. */
     private static Logger encapsulatedLogger;
     
     /** The Maven logger. */
-    private final Log encapsulated;
+    private final EnforcerLogger encapsulated;
 
     /** Pattern to change {{} to %s.*/
     private final Pattern pat = Pattern.compile("\\{\\}");
@@ -45,7 +45,7 @@ public final class EnforcerLogger implements Logger {
      * Constructor.
      * @param what - logger to encapsulate.
      */
-    private EnforcerLogger(final Log what) {
+    private MvnEnforcerLogger(final EnforcerLogger what) {
         encapsulated = what;
     }
 
@@ -109,7 +109,7 @@ public final class EnforcerLogger implements Logger {
 
     /** {@inheritDoc} */
     public void trace(final String msg, final Throwable t) {
-        encapsulated.debug(msg,t);
+        encapsulated.debug(msg + t.toString());
     }
 
     /** {@inheritDoc} */
@@ -139,7 +139,7 @@ public final class EnforcerLogger implements Logger {
 
     /** {@inheritDoc} */
     public void trace(final Marker marker, final String msg, final Throwable t) {
-        encapsulated.debug(msg,t);
+        encapsulated.debug(msg + t.toString());
     }
 
     /** {@inheritDoc} */
@@ -169,7 +169,7 @@ public final class EnforcerLogger implements Logger {
 
     /** {@inheritDoc} */
     public void debug(final String msg, final Throwable t) {
-        encapsulated.debug(msg,t);
+        encapsulated.debug(msg + t.toString());
     }
 
     /** {@inheritDoc} */
@@ -199,7 +199,7 @@ public final class EnforcerLogger implements Logger {
     /** {@inheritDoc} */
 
     public void debug(final Marker marker, final String msg, final Throwable t) {
-        encapsulated.debug(msg,t);
+        encapsulated.debug(msg + t.toString());
     }
 
     /** {@inheritDoc} */
@@ -229,7 +229,7 @@ public final class EnforcerLogger implements Logger {
 
     /** {@inheritDoc} */
     public void info(final String msg, final Throwable t) {
-        encapsulated.info(msg,t);
+        encapsulated.info(msg + t.toString());
     }
 
     /** {@inheritDoc} */
@@ -259,7 +259,7 @@ public final class EnforcerLogger implements Logger {
 
     /** {@inheritDoc} */
     public void info(final Marker marker, final String msg, final Throwable t) {
-        encapsulated.info(msg, t);
+        encapsulated.info(msg + t.toString());
     }
 
     /** {@inheritDoc} */
@@ -289,7 +289,7 @@ public final class EnforcerLogger implements Logger {
 
     /** {@inheritDoc} */
     public void warn(final String msg, final Throwable t) {
-        encapsulated.warn(msg, t);
+        encapsulated.warn(msg + t.toString());
     }
 
     /** {@inheritDoc} */
@@ -319,7 +319,7 @@ public final class EnforcerLogger implements Logger {
 
     /** {@inheritDoc} */
     public void warn(final Marker marker, final String msg, final Throwable t) {
-        encapsulated.warn(msg, t);
+        encapsulated.warn(msg + t.toString());
     }
 
     /** {@inheritDoc} */
@@ -349,7 +349,7 @@ public final class EnforcerLogger implements Logger {
 
     /** {@inheritDoc} */
     public void error(final String msg, final Throwable t) {
-        encapsulated.error(msg, t);
+        encapsulated.error(msg + t.toString());
     }
 
     /** {@inheritDoc} */
@@ -379,21 +379,21 @@ public final class EnforcerLogger implements Logger {
 
     /** {@inheritDoc} */
     public void error(final Marker marker, final String msg, final Throwable t) {
-        encapsulated.error(msg,  t);
+        encapsulated.error(msg + t.toString());
     }
     
     /** setup the (one off) maven bridge.
      * @param mavenLogger  What we are workingto.
      */
-    public static void setMavenLogger(final Log mavenLogger) {
-        encapsulatedLogger = new EnforcerLogger(mavenLogger);
+    public static void setMavenLogger(final EnforcerLogger mavenLogger) {
+        encapsulatedLogger = new MvnEnforcerLogger(mavenLogger);
     }
 
     /** Replacement for {@link LoggerFactory#getLogger(Class)}.
      * @param clazz what to log
      * @return a logger
      */
-    @Nonnull public static Logger getLogger(final Class<?> clazz) {
+    @Nonnull public static Logger getLogger(@Nonnull final Class<?> clazz) {
         if (encapsulatedLogger != null) {
             return encapsulatedLogger;
         }
diff --git a/src/main/java/net/shibboleth/mvn/enforcer/impl/SigChecker.java b/src/main/java/net/shibboleth/mvn/enforcer/impl/SigChecker.java
index 297015a..5776abb 100644
--- a/src/main/java/net/shibboleth/mvn/enforcer/impl/SigChecker.java
+++ b/src/main/java/net/shibboleth/mvn/enforcer/impl/SigChecker.java
@@ -35,7 +35,7 @@ import org.slf4j.Logger;
 public class SigChecker extends BaseSigChecker {
 
     /** Our log. */
-    private final Logger log = EnforcerLogger.getLogger(SigChecker.class);
+    private final Logger log = MvnEnforcerLogger.getLogger(SigChecker.class);
 
     /** Constructor.
      * @param project The project

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list