[java-mvn-enforcer] 02/02: JMVN-4 Need to have configurable extension garnish

Rod Widdowson rdw at steadingsoftware.com
Sat Nov 20 13:56:36 UTC 2021


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

rdw pushed a commit to branch dev/maint-2.1
in repository java-mvn-enforcer.

View the commit online:
http://git.shibboleth.net/view/?p=java-mvn-enforcer.git;a=commit;h=50f87a677823ffd3107da3df01cc5aa726df0308

commit 50f87a677823ffd3107da3df01cc5aa726df0308
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Sat Nov 20 13:55:42 2021 +0000

    JMVN-4 Need to have configurable extension garnish
    
    https://shibboleth.atlassian.net/browse/JMVN-4
    
    Also clean up logging around errors in this space.
---
 .../mvn/enforcer/impl/BaseSigChecker.java          |  2 +-
 .../mvn/enforcer/impl/DependencyChecker.java       |  6 +++---
 .../shibboleth/mvn/enforcer/impl/JarEnforcer.java  |  6 +++++-
 .../mvn/enforcer/impl/ProjectPomContext.java       | 22 ++++++++++++++--------
 .../shibboleth/mvn/enforcer/impl/SigChecker.java   |  2 +-
 5 files changed, 24 insertions(+), 14 deletions(-)

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 f306b70..e85efdb 100644
--- a/src/main/java/net/shibboleth/mvn/enforcer/impl/BaseSigChecker.java
+++ b/src/main/java/net/shibboleth/mvn/enforcer/impl/BaseSigChecker.java
@@ -111,7 +111,7 @@ public class BaseSigChecker {
         final GPGKeyRing keyRing = getKeyRing(group);
         if (keyRing == null) {
             report.format("%-30s: %-14s No keyring for group %s\n", id, version, group);
-            log.error("{} {} no keyring for group",  id, version, group);
+            log.error("Artifact: {} Version: {} Group: {} No keyring ",  id, version, group);
             return false;
         }
         final Signature sig = getSignature(artifact);
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 12a281a..06c2d02 100644
--- a/src/main/java/net/shibboleth/mvn/enforcer/impl/DependencyChecker.java
+++ b/src/main/java/net/shibboleth/mvn/enforcer/impl/DependencyChecker.java
@@ -97,7 +97,7 @@ public class DependencyChecker {
      */
     public DependencyChecker( @Nonnull final ProjectPomContext project, @Nonnull final PrintWriter writer) {
 
-        projectContext = Constraint.isNotNull(project, "project must not be null");
+        projectContext = Constraint.isNotNull(project, "Project context must not be null");
         report = Constraint.isNotNull(writer, "Writer must not be null");
         if (Security.getProvider(BouncyCastleProvider.PROVIDER_NAME) == null) {
             Security.addProvider(new BouncyCastleProvider());
@@ -282,7 +282,7 @@ public class DependencyChecker {
         if (!jarPath.endsWith(".jar")) {
             return;
         }
-        final Pair<String, String> nm = ProjectPomContext.splitFileName(jarPath);
+        final Pair<String, String> nm = projectContext.splitFileName(jarPath);
         final String oldName = nameToVersion.put(nm.getFirst(), nm.getSecond());
         if (oldName == null) {
             return;
@@ -379,7 +379,7 @@ public class DependencyChecker {
     private void addDep(final Map<String, Map<String, Set<String>>> dependencySources,
                         final String dep,
                         final PomArtifact artifact) {
-        final Pair<String,String> depId = ProjectPomContext.splitFileName(dep);
+        final Pair<String,String> depId = projectContext.splitFileName(dep);
         
         if (artifact.getArtifactId().equals(depId.getFirst()) && artifact.getVersion().equals(depId.getSecond())) {
             // it's us.  Not interesting
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 0e2ab75..8d0a2f4 100644
--- a/src/main/java/net/shibboleth/mvn/enforcer/impl/JarEnforcer.java
+++ b/src/main/java/net/shibboleth/mvn/enforcer/impl/JarEnforcer.java
@@ -78,6 +78,9 @@ public class JarEnforcer implements EnforcerRule, MavenLoader{
     /** Will we check that all jars in ~/.m2/... jars have valid signatures? */
     private boolean checkM2;
 
+    /** The list of things which get added to real versions. */
+    private String versionExtensions = "-SNAPSHOT -GA -jre -empty-to-avoid-conflict-with-guava";
+
     /** Our artifact factory.  This is deprecated but there seems no easy way to create one.
      * (No replacement is suggested and the best code out there creates a pom file and parses it.
      * Really?
@@ -137,7 +140,8 @@ public class JarEnforcer implements EnforcerRule, MavenLoader{
             pool.initialize();
 
             try (final ProjectPomContext pomContext = new ProjectPomContext(this,
-                EnforcerLogger.getLogger(ProjectPomContext.class), pool, Path.of(enforcerData), tmp, map)) {
+                EnforcerLogger.getLogger(ProjectPomContext.class), pool, Path.of(enforcerData), tmp, 
+                                        map, StringSupport.stringToList(versionExtensions, XMLConstants.LIST_DELIMITERS))) {
 
                 pomContext.initialize(pom);
 
diff --git a/src/main/java/net/shibboleth/mvn/enforcer/impl/ProjectPomContext.java b/src/main/java/net/shibboleth/mvn/enforcer/impl/ProjectPomContext.java
index 9fba5eb..eaff6f1 100644
--- a/src/main/java/net/shibboleth/mvn/enforcer/impl/ProjectPomContext.java
+++ b/src/main/java/net/shibboleth/mvn/enforcer/impl/ProjectPomContext.java
@@ -47,10 +47,6 @@ import net.shibboleth.utilities.java.support.xml.ParserPool;
  */
 public final class ProjectPomContext implements AutoCloseable {
 
-    /** A list of things which get added to real versions. */
-    private static final List<String> EXTENSION_GARNISH = 
-        List.of("-SNAPSHOT", "-GA", "-jre", "-empty-to-avoid-conflict-with-guava");
-
     /** Our log. */
     private final Logger log;
 
@@ -81,6 +77,9 @@ public final class ProjectPomContext implements AutoCloseable {
     /** If non-null the path to a  {@link Properties} file which maps artifacts to groups */
     private Path artifactMap;
 
+    /** The string which can be appended to a version.*/
+    @Nonnull private final List<String> extensionGarnish;
+
 
     /** Constructor.
      * @param loader how to get artifacts
@@ -89,13 +88,15 @@ public final class ProjectPomContext implements AutoCloseable {
      * @param srcDir source for extra info (like keyrings)
      * @param tmpDir where to put stuff.
      * @param mapFile artifact to group mapping {@link Properties} file
+     * @param extensions the known additions to the project extensions
      */
     public ProjectPomContext(final MavenLoader loader,
             @Nonnull final Logger logger,
             @Nonnull final ParserPool pool,
             @Nonnull final Path srcDir,
             @Nonnull final Path tmpDir,
-            @Nonnull final Path mapFile) {
+            @Nonnull final Path mapFile,
+            @Nonnull final List<String> extensions) {
         mavenLoader = Constraint.isNotNull(loader, "Loader must not be null");
         log = Constraint.isNotNull(logger, "Logger must not be null");
         workingDir = Constraint.isNotNull(tmpDir, "Working dir must not be null");
@@ -104,6 +105,7 @@ public final class ProjectPomContext implements AutoCloseable {
         Constraint.isTrue(Files.exists(tmpDir), "Enforcer dir must exist");
         parserPool = Constraint.isNotNull(pool, "Parse Pool must not be null");
         artifactMap = mapFile;
+        extensionGarnish = Constraint.isNotNull(extensions, "Extensions must not be null");
     }
     
     /** Returns the parserPool.
@@ -132,7 +134,11 @@ public final class ProjectPomContext implements AutoCloseable {
      * @return the group
      */
     @Nonnull public String getGroup(final String id) {
-        return artifactToGroup.get(id);
+        final String group = artifactToGroup.get(id);
+        if (group == null) {
+            log.error("Could not resolve group for {}", id);
+        }
+        return group;
     }
 
     /** Return the {@link MavenLoader}
@@ -288,7 +294,7 @@ public final class ProjectPomContext implements AutoCloseable {
      * @param inName the file name
      * @return a pair.
      */
-     protected static Pair<String, String> splitFileName(final String inName) {
+     protected Pair<String, String> splitFileName(final String inName) {
         final String name;
         if (inName.endsWith(".jar")) {
             name = inName.substring(0, inName.length()-4);
@@ -296,7 +302,7 @@ public final class ProjectPomContext implements AutoCloseable {
             name = inName;
         }
         int last = name.lastIndexOf("-");
-        for (final String otherGarnish : EXTENSION_GARNISH) {
+        for (final String otherGarnish : extensionGarnish) {
             if (name.endsWith(otherGarnish)) {
                 last = name.substring(0, name.length()-otherGarnish.length()).lastIndexOf("-");
                 break;
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 6456670..9ddb297 100644
--- a/src/main/java/net/shibboleth/mvn/enforcer/impl/SigChecker.java
+++ b/src/main/java/net/shibboleth/mvn/enforcer/impl/SigChecker.java
@@ -79,7 +79,7 @@ public class SigChecker extends BaseSigChecker {
         if (!fileName.endsWith(".jar")) {
             return 0;
         }
-        final Pair<String,String> name = ProjectPomContext.splitFileName(fileName);
+        final Pair<String,String> name = getProjectContext().splitFileName(fileName);
         final String group = getProjectContext().getGroup(name.getFirst());
         final PomArtifact jarAsArtifact = 
                 getProjectContext().getParentPom().new PomArtifact(group, name.getFirst(), name.getSecond());

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


More information about the commits mailing list