diff --git a/re-assert-test/src/test/java/com/g2forge/reassert/reassert/TestReassertContext.java b/re-assert-test/src/test/java/com/g2forge/reassert/reassert/TestReassertContext.java index e02ebde..4ddee28 100644 --- a/re-assert-test/src/test/java/com/g2forge/reassert/reassert/TestReassertContext.java +++ b/re-assert-test/src/test/java/com/g2forge/reassert/reassert/TestReassertContext.java @@ -3,7 +3,7 @@ import org.junit.Test; import com.g2forge.alexandria.test.HAssert; -import com.g2forge.gearbox.maven.MavenPackaging; +import com.g2forge.gearbox.maven.packaging.MavenPackaging; import com.g2forge.reassert.core.api.module.Context; import com.g2forge.reassert.core.model.coordinates.ICoordinates; import com.g2forge.reassert.git.GitCoordinates; diff --git a/re-maven/src/main/java/com/g2forge/reassert/maven/MavenCoordinates.java b/re-maven/src/main/java/com/g2forge/reassert/maven/MavenCoordinates.java index 21ac6b4..66508b6 100644 --- a/re-maven/src/main/java/com/g2forge/reassert/maven/MavenCoordinates.java +++ b/re-maven/src/main/java/com/g2forge/reassert/maven/MavenCoordinates.java @@ -5,7 +5,8 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.g2forge.alexandria.java.fluent.optional.NullableOptional; -import com.g2forge.gearbox.maven.MavenPackaging; +import com.g2forge.gearbox.maven.packaging.IMavenPackaging; +import com.g2forge.gearbox.maven.packaging.MavenPackaging; import com.g2forge.reassert.core.model.coordinates.ICoordinates; import lombok.AccessLevel; @@ -34,7 +35,7 @@ public class MavenCoordinates implements ICoordinates { @JsonInclude(Include.NON_NULL) @Builder.Default - protected final MavenPackaging packaging = MavenPackaging.JAR; + protected final IMavenPackaging packaging = MavenPackaging.JAR; @JsonIgnore @ToString.Exclude diff --git a/re-maven/src/main/java/com/g2forge/reassert/maven/MavenRepository.java b/re-maven/src/main/java/com/g2forge/reassert/maven/MavenRepository.java index 0a4820b..ff211c4 100644 --- a/re-maven/src/main/java/com/g2forge/reassert/maven/MavenRepository.java +++ b/re-maven/src/main/java/com/g2forge/reassert/maven/MavenRepository.java @@ -30,7 +30,7 @@ import com.g2forge.gearbox.maven.HMaven; import com.g2forge.gearbox.maven.IMaven; import com.g2forge.gearbox.maven.MavenDownloadErrors; -import com.g2forge.gearbox.maven.MavenPackaging; +import com.g2forge.gearbox.maven.packaging.MavenPackaging; import com.g2forge.reassert.cache.CacheAreaDescriptor; import com.g2forge.reassert.cache.CacheAreaDescriptor.CacheAreaDescriptorBuilder; import com.g2forge.reassert.cache.store.FileCacheStore; @@ -148,15 +148,16 @@ protected Path download(MavenCoordinates coordinates, Path path) { } else { if (!process.isSuccess()) { boolean rerunFailed; + final StringBuilder log = new StringBuilder(); try { // Re-run the command so that we log the complete output - log.error("Maven dependency copy failed, running again to log output:"); - StreamResultSupplier.STANDARD.apply(command.get()).forEach(log::error); + StreamResultSupplier.STANDARD.apply(command.get()).forEach(line -> log.append(line).append('\n')); rerunFailed = false; } catch (Throwable throwable) { rerunFailed = true; } if (!rerunFailed) throw new Error("This error indicates that the maven dependency copy failed once, and succeeded on re-run. Perhaps a transient network failure? Try re-running this."); + throw new Error("Maven dependency copy failed, ran again to log output:\n" + log); } Files.move(path.getParent().resolve(coordinates.getArtifactId() + "-" + coordinates.getVersion() + ".pom"), path); } diff --git a/re-maven/src/main/java/com/g2forge/reassert/maven/MavenSystem.java b/re-maven/src/main/java/com/g2forge/reassert/maven/MavenSystem.java index eeb1f3b..6bb8343 100644 --- a/re-maven/src/main/java/com/g2forge/reassert/maven/MavenSystem.java +++ b/re-maven/src/main/java/com/g2forge/reassert/maven/MavenSystem.java @@ -20,7 +20,7 @@ import com.g2forge.alexandria.java.io.RuntimeIOException; import com.g2forge.alexandria.java.io.dataaccess.IDataSource; import com.g2forge.alexandria.java.type.ref.ITypeRef; -import com.g2forge.gearbox.maven.MavenPackaging; +import com.g2forge.gearbox.maven.packaging.MavenPackaging; import com.g2forge.reassert.core.api.described.IDescriber; import com.g2forge.reassert.core.api.module.IContext; import com.g2forge.reassert.core.api.system.ISystem; diff --git a/re-maven/src/main/java/com/g2forge/reassert/maven/model/MavenDependency.java b/re-maven/src/main/java/com/g2forge/reassert/maven/model/MavenDependency.java index ede6ddd..4334468 100644 --- a/re-maven/src/main/java/com/g2forge/reassert/maven/model/MavenDependency.java +++ b/re-maven/src/main/java/com/g2forge/reassert/maven/model/MavenDependency.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.g2forge.gearbox.maven.MavenPackaging; +import com.g2forge.gearbox.maven.packaging.IMavenPackaging; import com.g2forge.reassert.maven.MavenCoordinates; import lombok.Builder; @@ -23,7 +23,7 @@ public class MavenDependency { protected final boolean optional; @JsonCreator - public MavenDependency(String groupId, String artifactId, String version, MavenPackaging packaging, MavenScope scope, boolean optional) { + public MavenDependency(String groupId, String artifactId, String version, IMavenPackaging packaging, MavenScope scope, boolean optional) { this(new MavenCoordinates(null, groupId, artifactId, version, packaging), scope, optional); } } diff --git a/re-maven/src/main/java/com/g2forge/reassert/maven/model/MavenPOM.java b/re-maven/src/main/java/com/g2forge/reassert/maven/model/MavenPOM.java index 92953af..92b1973 100644 --- a/re-maven/src/main/java/com/g2forge/reassert/maven/model/MavenPOM.java +++ b/re-maven/src/main/java/com/g2forge/reassert/maven/model/MavenPOM.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; -import com.g2forge.gearbox.maven.MavenPackaging; +import com.g2forge.gearbox.maven.packaging.MavenPackaging; import com.g2forge.reassert.core.model.file.IDescriptor; import com.g2forge.reassert.maven.MavenCoordinates; diff --git a/re-maven/src/main/java/com/g2forge/reassert/maven/model/MavenParent.java b/re-maven/src/main/java/com/g2forge/reassert/maven/model/MavenParent.java index 7cea3d8..cb4f5a0 100644 --- a/re-maven/src/main/java/com/g2forge/reassert/maven/model/MavenParent.java +++ b/re-maven/src/main/java/com/g2forge/reassert/maven/model/MavenParent.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.g2forge.gearbox.maven.MavenPackaging; +import com.g2forge.gearbox.maven.packaging.MavenPackaging; import com.g2forge.reassert.maven.MavenCoordinates; import lombok.Builder; diff --git a/re-maven/src/main/java/com/g2forge/reassert/maven/model/convert/MavenPackagingDeserializer.java b/re-maven/src/main/java/com/g2forge/reassert/maven/model/convert/MavenPackagingDeserializer.java index 18b2d57..1fb51f6 100644 --- a/re-maven/src/main/java/com/g2forge/reassert/maven/model/convert/MavenPackagingDeserializer.java +++ b/re-maven/src/main/java/com/g2forge/reassert/maven/model/convert/MavenPackagingDeserializer.java @@ -8,9 +8,11 @@ import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.StdDeserializer; import com.g2forge.alexandria.java.core.enums.HEnum; -import com.g2forge.gearbox.maven.MavenPackaging; +import com.g2forge.gearbox.maven.packaging.IMavenPackaging; +import com.g2forge.gearbox.maven.packaging.MavenPackaging; +import com.g2forge.gearbox.maven.packaging.UnknownMavenPackaging; -public class MavenPackagingDeserializer extends StdDeserializer { +public class MavenPackagingDeserializer extends StdDeserializer { private static final long serialVersionUID = 7672345770783504031L; protected MavenPackagingDeserializer() { @@ -18,9 +20,14 @@ protected MavenPackagingDeserializer() { } @Override - public MavenPackaging deserialize(JsonParser parser, DeserializationContext context) throws IOException, JsonProcessingException { + public IMavenPackaging deserialize(JsonParser parser, DeserializationContext context) throws IOException, JsonProcessingException { final JsonToken token = parser.currentToken(); if (token != JsonToken.VALUE_STRING) context.handleUnexpectedToken(MavenPackaging.class, parser); - return HEnum.valueOf(MavenPackaging.class, Object::toString, true, String::toLowerCase, parser.getText().trim()); + final String text = parser.getText().trim(); + try { + return HEnum.valueOf(MavenPackaging.class, Object::toString, true, String::toLowerCase, text); + } catch (IllegalArgumentException exception) { + return new UnknownMavenPackaging(text); + } } } \ No newline at end of file diff --git a/re-maven/src/main/java/com/g2forge/reassert/maven/model/convert/MavenPackagingSerializer.java b/re-maven/src/main/java/com/g2forge/reassert/maven/model/convert/MavenPackagingSerializer.java index 1a5e2e7..96c052a 100644 --- a/re-maven/src/main/java/com/g2forge/reassert/maven/model/convert/MavenPackagingSerializer.java +++ b/re-maven/src/main/java/com/g2forge/reassert/maven/model/convert/MavenPackagingSerializer.java @@ -6,7 +6,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.std.StdSerializer; -import com.g2forge.gearbox.maven.MavenPackaging; +import com.g2forge.gearbox.maven.packaging.MavenPackaging; public class MavenPackagingSerializer extends StdSerializer { private static final long serialVersionUID = -3492690193271746495L; diff --git a/re-maven/src/main/java/com/g2forge/reassert/maven/model/convert/MavenXmlModule.java b/re-maven/src/main/java/com/g2forge/reassert/maven/model/convert/MavenXmlModule.java index 262e015..febc89d 100644 --- a/re-maven/src/main/java/com/g2forge/reassert/maven/model/convert/MavenXmlModule.java +++ b/re-maven/src/main/java/com/g2forge/reassert/maven/model/convert/MavenXmlModule.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.databind.deser.std.CollectionDeserializer; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.type.CollectionType; -import com.g2forge.gearbox.maven.MavenPackaging; +import com.g2forge.gearbox.maven.packaging.IMavenPackaging; public class MavenXmlModule extends SimpleModule { private static final long serialVersionUID = -2581598831713893816L; @@ -15,7 +15,7 @@ public class MavenXmlModule extends SimpleModule { @Override public void setupModule(SetupContext context) { addSerializer(new MavenPackagingSerializer()); - addDeserializer(MavenPackaging.class, new MavenPackagingDeserializer()); + addDeserializer(IMavenPackaging.class, new MavenPackagingDeserializer()); super.setupModule(context); context.addBeanDeserializerModifier(new BeanDeserializerModifier() { @Override diff --git a/re-maven/src/test/java/com/g2forge/reassert/maven/TestMavenCoordinates.java b/re-maven/src/test/java/com/g2forge/reassert/maven/TestMavenCoordinates.java index d93ebdf..306d7ba 100644 --- a/re-maven/src/test/java/com/g2forge/reassert/maven/TestMavenCoordinates.java +++ b/re-maven/src/test/java/com/g2forge/reassert/maven/TestMavenCoordinates.java @@ -3,7 +3,7 @@ import org.junit.Test; import com.g2forge.alexandria.test.HAssert; -import com.g2forge.gearbox.maven.MavenPackaging; +import com.g2forge.gearbox.maven.packaging.MavenPackaging; import com.g2forge.reassert.core.model.coordinates.ICoordinates; import com.g2forge.reassert.core.test.ATestSystem; diff --git a/re-maven/src/test/java/com/g2forge/reassert/maven/TestMavenRepository.java b/re-maven/src/test/java/com/g2forge/reassert/maven/TestMavenRepository.java index cbff634..a7f1fdd 100644 --- a/re-maven/src/test/java/com/g2forge/reassert/maven/TestMavenRepository.java +++ b/re-maven/src/test/java/com/g2forge/reassert/maven/TestMavenRepository.java @@ -11,7 +11,7 @@ import com.g2forge.alexandria.java.type.ref.ITypeRef; import com.g2forge.alexandria.test.HAssert; import com.g2forge.enigma.diagram.dot.convert.DotRenderer; -import com.g2forge.gearbox.maven.MavenPackaging; +import com.g2forge.gearbox.maven.packaging.MavenPackaging; import com.g2forge.reassert.core.algorithm.ReassertGraphVisualizer; import com.g2forge.reassert.core.api.module.Context; import com.g2forge.reassert.core.model.HReassertModel;