[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