[java-mvn-enforcer] 01/02: JMVN-4 Need to have configurable extension garnish
Rod Widdowson
rdw at steadingsoftware.com
Sun Dec 5 16:19:30 UTC 2021
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch main
in repository java-mvn-enforcer.
View the commit online:
http://git.shibboleth.net/view/?p=java-mvn-enforcer.git;a=commit;h=439ad7267b0336c309af852b40bcca0ecd19a4cf
commit 439ad7267b0336c309af852b40bcca0ecd19a4cf
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 | 15 ++++++++++++---
.../mvn/enforcer/impl/ProjectPomContext.java | 22 ++++++++++++++--------
.../shibboleth/mvn/enforcer/impl/SigChecker.java | 2 +-
5 files changed, 31 insertions(+), 16 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 d8a02b5..4b3682b 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 a1b332b..2bebc3a 100644
--- a/src/main/java/net/shibboleth/mvn/enforcer/impl/JarEnforcer.java
+++ b/src/main/java/net/shibboleth/mvn/enforcer/impl/JarEnforcer.java
@@ -87,7 +87,10 @@ public class JarEnforcer implements EnforcerRule, MavenLoader{
private boolean listJarSources;
/** 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 resolver. */
private ArtifactResolver artifactResolver;
@@ -143,8 +146,14 @@ public class JarEnforcer implements EnforcerRule, MavenLoader{
final BasicParserPool pool = new BasicParserPool();
pool.initialize();
- try (final ProjectPomContext pomContext = new ProjectPomContext(this,
- EnforcerLogger.getLogger(ProjectPomContext.class), pool, getGPGDataClassLoader(), tmp, map)) {
+ try (final ProjectPomContext pomContext =
+ new ProjectPomContext(this,
+ EnforcerLogger.getLogger(ProjectPomContext.class),
+ pool,
+ getGPGDataClassLoader(),
+ 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 90714e3..bc8871a 100644
--- a/src/main/java/net/shibboleth/mvn/enforcer/impl/ProjectPomContext.java
+++ b/src/main/java/net/shibboleth/mvn/enforcer/impl/ProjectPomContext.java
@@ -50,10 +50,6 @@ public final class ProjectPomContext implements AutoCloseable {
/** Where the keyrings live when on the classpath. */
public final static String CLASSPATH_ROOT = "net/shibboleth/mvn/enforcer/";
- /** 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;
@@ -84,6 +80,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
* @param logger where to log or null if we are using out own.
@@ -91,13 +90,15 @@ public final class ProjectPomContext implements AutoCloseable {
* @param classLoader 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 ClassLoader classLoader,
@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");
@@ -106,6 +107,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.
@@ -134,7 +136,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}
@@ -290,7 +296,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);
@@ -298,7 +304,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