You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/09/21 07:08:29 UTC
[isis] 02/02: ISIS-2437: work on settings.gradle generator
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 2cec4a3d4d1f3fc93eebd2ba0f46eec936d419b4
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Sep 21 09:08:19 2020 +0200
ISIS-2437: work on settings.gradle generator
---
.../tooling/projectmodel/ArtifactCoordinates.java | 6 +-
...pendency.java => ArtifactShortNameFactory.java} | 23 ++-----
.../isis/tooling/projectmodel/Dependency.java | 9 ++-
.../isis/tooling/projectmodel/ProjectNode.java | 6 +-
.../projectmodel/ProjectNodeFactory_gradle.java | 2 +-
.../projectmodel/ProjectNodeFactory_maven.java | 17 ++---
.../GradleDependencies.java} | 28 +++------
.../gradle/GradleDependenciesFactory.java | 53 ++++++++++++++++
.../gradle/GradleDependenciesWriter.java | 73 ++++++++++++++++++++++
.../projectmodel/gradle/GradleSettingsFactory.java | 12 ++--
.../projectmodel/gradle/GradleSettingsWriter.java | 15 +----
.../WriterAbstract.java} | 32 +++++-----
.../projectmodel/test/GradleDependenciesTest.java | 33 +++-------
.../projectmodel/test/GradleSettingsTest.java | 11 +---
.../test/ProjectModelTestAbstract.java} | 30 ++++-----
.../tooling/projectmodel/test/ProjectTreeTest.java | 23 ++-----
16 files changed, 213 insertions(+), 160 deletions(-)
diff --git a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ArtifactCoordinates.java b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ArtifactCoordinates.java
index ef72870..b8c98ee 100644
--- a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ArtifactCoordinates.java
+++ b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ArtifactCoordinates.java
@@ -31,14 +31,14 @@ public class ArtifactCoordinates implements Comparable<ArtifactCoordinates> {
@NonNull private final String groupId;
@NonNull private final String artifactId;
- @NonNull private final String type;
+ @NonNull private final String packaging;
@NonNull private final String version;
private final AtomicReference<ComparableVersion> comparableVersion = new AtomicReference<ComparableVersion>();
@Override
public String toString() {
- return String.format("%s:%s:%s:%s", groupId, artifactId, type, version);
+ return String.format("%s:%s:%s:%s", groupId, artifactId, packaging, version);
}
// -- COMPARATOR
@@ -46,7 +46,7 @@ public class ArtifactCoordinates implements Comparable<ArtifactCoordinates> {
private final static Comparator<ArtifactCoordinates> comparator = Comparator
.comparing(ArtifactCoordinates::getGroupId)
.thenComparing(ArtifactCoordinates::getArtifactId)
- .thenComparing(ArtifactCoordinates::getType)
+ .thenComparing(ArtifactCoordinates::getPackaging)
.thenComparing(ArtifactCoordinates::getComparableVersion);
private ComparableVersion getComparableVersion() {
diff --git a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/Dependency.java b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ArtifactShortNameFactory.java
similarity index 65%
copy from tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/Dependency.java
copy to tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ArtifactShortNameFactory.java
index 9cd69a5..a56329a 100644
--- a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/Dependency.java
+++ b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ArtifactShortNameFactory.java
@@ -18,26 +18,11 @@
*/
package org.apache.isis.tooling.projectmodel;
-import java.util.Comparator;
+import lombok.NonNull;
-import lombok.Builder;
-import lombok.Data;
-
-@Data @Builder
-public class Dependency implements Comparable<Dependency> {
-
- private final ArtifactCoordinates artifactKey;
-
- // -- COMPARATOR
+public class ArtifactShortNameFactory {
- private final static Comparator<Dependency> comparator = Comparator
- .comparing(Dependency::getArtifactKey);
-
-
- @Override
- public int compareTo(Dependency o) {
- return comparator.compare(this, o);
+ public static String toShortName(final @NonNull ArtifactCoordinates coors) {
+ return String.format("%s:%s:%s", coors.getGroupId(), coors.getArtifactId(), coors.getVersion());
}
-
-
}
diff --git a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/Dependency.java b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/Dependency.java
index 9cd69a5..710e427 100644
--- a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/Dependency.java
+++ b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/Dependency.java
@@ -26,12 +26,17 @@ import lombok.Data;
@Data @Builder
public class Dependency implements Comparable<Dependency> {
- private final ArtifactCoordinates artifactKey;
+ private final ArtifactCoordinates artifactCoordinates;
+
+ /**
+ * as generated by {@link ArtifactShortNameFactory}
+ */
+ private final String shortName;
// -- COMPARATOR
private final static Comparator<Dependency> comparator = Comparator
- .comparing(Dependency::getArtifactKey);
+ .comparing(Dependency::getArtifactCoordinates);
@Override
diff --git a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNode.java b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNode.java
index dec5a88..c581466 100644
--- a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNode.java
+++ b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNode.java
@@ -41,7 +41,7 @@ public class ProjectNode implements Comparable<ProjectNode> {
@EqualsAndHashCode.Exclude @ToString.Exclude
private final TreeSet<Dependency> dependencies = new TreeSet<Dependency>();
- private final ArtifactCoordinates artifactKey;
+ private final ArtifactCoordinates artifactCoordinates;
private final String name;
private final String description;
private final File projectDirectory;
@@ -63,7 +63,7 @@ public class ProjectNode implements Comparable<ProjectNode> {
}
public boolean containsOrEquals(final @NonNull ProjectNode other) {
- if(this.getArtifactKey().equals(other.getArtifactKey())) {
+ if(this.getArtifactCoordinates().equals(other.getArtifactCoordinates())) {
return true;
}
for(val child : getChildren()){
@@ -84,7 +84,7 @@ public class ProjectNode implements Comparable<ProjectNode> {
if(other.contains(this)) {
return 1;
}
- return this.getArtifactKey().compareTo(other.getArtifactKey());
+ return this.getArtifactCoordinates().compareTo(other.getArtifactCoordinates());
}
diff --git a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNodeFactory_gradle.java b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNodeFactory_gradle.java
index 9eb25a9..5861263 100644
--- a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNodeFactory_gradle.java
+++ b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNodeFactory_gradle.java
@@ -62,7 +62,7 @@ class ProjectNodeFactory_gradle {
val projNode = ProjectNode.builder()
.parent(parent)
- .artifactKey(artifactKeyOf(gradleProj))
+ .artifactCoordinates(artifactKeyOf(gradleProj))
.name(_Strings.nullToEmpty(gradleProj.getName()))
.description(_Strings.nullToEmpty(gradleProj.getDescription()))
.projectDirectory(gradleProj.getProjectDirectory())
diff --git a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNodeFactory_maven.java b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNodeFactory_maven.java
index e4b9f83..1d2c27a 100644
--- a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNodeFactory_maven.java
+++ b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNodeFactory_maven.java
@@ -67,7 +67,7 @@ class ProjectNodeFactory_maven {
final @NonNull Model mavenProj) {
val projNode = ProjectNode.builder()
.parent(parent)
- .artifactKey(artifactCoordinatesOf(mavenProj))
+ .artifactCoordinates(artifactCoordinatesOf(mavenProj))
.name(_Strings.nullToEmpty(mavenProj.getName()))
.description(_Strings.nullToEmpty(mavenProj.getDescription()))
.projectDirectory(mavenProj.getProjectDirectory())
@@ -86,13 +86,16 @@ class ProjectNodeFactory_maven {
}
private static Dependency toDependency(final @NonNull org.apache.maven.model.Dependency dependency) {
+ val artifactCoordinates = ArtifactCoordinates.of(
+ dependency.getGroupId(),
+ dependency.getArtifactId(),
+ dependency.getType(),
+ Optional.ofNullable(dependency.getVersion()).orElse("<managed>") //TODO to resolve this requires interpolation
+ );
+
return Dependency.builder()
- .artifactKey(ArtifactCoordinates.of(
- dependency.getGroupId(),
- dependency.getArtifactId(),
- dependency.getType(),
- Optional.ofNullable(dependency.getVersion()).orElse("<managed>") //TODO to resolve this requires interpolation
- ))
+ .artifactCoordinates(artifactCoordinates)
+ .shortName(ArtifactShortNameFactory.toShortName(artifactCoordinates))
.build();
}
diff --git a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/Dependency.java b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/GradleDependencies.java
similarity index 63%
copy from tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/Dependency.java
copy to tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/GradleDependencies.java
index 9cd69a5..4764995 100644
--- a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/Dependency.java
+++ b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/GradleDependencies.java
@@ -16,28 +16,18 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.tooling.projectmodel;
+package org.apache.isis.tooling.projectmodel.gradle;
-import java.util.Comparator;
+import java.util.Map;
+import java.util.TreeMap;
-import lombok.Builder;
-import lombok.Data;
+import org.apache.isis.tooling.projectmodel.Dependency;
-@Data @Builder
-public class Dependency implements Comparable<Dependency> {
-
- private final ArtifactCoordinates artifactKey;
-
- // -- COMPARATOR
-
- private final static Comparator<Dependency> comparator = Comparator
- .comparing(Dependency::getArtifactKey);
-
+import lombok.Data;
- @Override
- public int compareTo(Dependency o) {
- return comparator.compare(this, o);
- }
-
+@Data
+public class GradleDependencies {
+ private final Map<String, Dependency> dependenciesByShortName = new TreeMap<>();
+
}
diff --git a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/GradleDependenciesFactory.java b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/GradleDependenciesFactory.java
new file mode 100644
index 0000000..d6ac2a4
--- /dev/null
+++ b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/GradleDependenciesFactory.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.tooling.projectmodel.gradle;
+
+import java.io.File;
+
+import org.apache.isis.tooling.projectmodel.ProjectNode;
+import org.apache.isis.tooling.projectmodel.ProjectNodeFactory;
+
+import lombok.val;
+
+public class GradleDependenciesFactory {
+
+ public static GradleDependencies generateFromMaven(File projRootFolder, String rootProjectName) {
+ val projTree = ProjectNodeFactory.maven(projRootFolder);
+ return generateFromMaven(projTree, rootProjectName);
+ }
+
+ public static GradleDependencies generateFromMaven(ProjectNode projTree, String rootProjectName) {
+
+ val gradleDependencies = new GradleDependencies();
+ val dependenciesByShortName = gradleDependencies.getDependenciesByShortName();
+
+ projTree.depthFirst(projModel -> {
+
+ projModel.getDependencies().forEach(dependency->{
+ dependenciesByShortName.put(dependency.getShortName(), dependency);
+ });
+
+ });
+
+ return gradleDependencies;
+ }
+
+
+
+}
diff --git a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/GradleDependenciesWriter.java b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/GradleDependenciesWriter.java
new file mode 100644
index 0000000..de06c6d
--- /dev/null
+++ b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/GradleDependenciesWriter.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.tooling.projectmodel.gradle;
+
+import java.io.StringWriter;
+import java.io.Writer;
+
+import org.apache.isis.commons.internal.base._Strings;
+
+import lombok.SneakyThrows;
+import lombok.val;
+
+public class GradleDependenciesWriter extends WriterAbstract {
+
+ public static String toString(GradleDependencies gradleDependencies) {
+ if(gradleDependencies==null) {
+ return "";
+ }
+ val adocWriter = new GradleDependenciesWriter();
+ val stringWriter = new StringWriter();
+ adocWriter.write(gradleDependencies, stringWriter);
+ return stringWriter.toString();
+ }
+
+// EXAMPLE
+// ext {
+// cucumberVersion = "6.7.0"
+// jacksonVersion = "2.11.1"
+// Libs = [
+// cucumberJava : "io.cucumber:cucumber-java:$cucumberVersion",
+// cucumberSpring : "io.cucumber:cucumber-spring:$cucumberVersion",
+// cucumberJunit : "io.cucumber:cucumber-junit:$cucumberVersion",
+// jacksonDatabind : "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion",
+// jacksonModuleJaxbAnnotations : "com.fasterxml.jackson.module:jackson-module-jaxb-annotations:$jacksonVersion",
+// ]
+// }
+ public void write(GradleDependencies gradleDependencies, Writer writer) {
+
+ writeWithFormat(writer, "ext {\n");
+ writeWithFormat(writer, " Libs = [\n");
+
+ gradleDependencies.getDependenciesByShortName().forEach((shortName, dependency)->{
+
+ val shortNameWithPadding = _Strings.padEnd(shortName, 32, ' ');
+
+ writeWithFormat(writer, " %s : \"%s\",\n", shortNameWithPadding, dependency.getArtifactCoordinates().toString());
+
+
+ });
+
+ writeWithFormat(writer, " ]\n");
+ writeWithFormat(writer, "}\n");
+ }
+
+
+
+}
diff --git a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/GradleSettingsFactory.java b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/GradleSettingsFactory.java
index 1958ce0..ecd5fac 100644
--- a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/GradleSettingsFactory.java
+++ b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/GradleSettingsFactory.java
@@ -32,15 +32,19 @@ import lombok.val;
public class GradleSettingsFactory {
public static GradleSettings generateFromMaven(File projRootFolder, String rootProjectName) {
-
val projTree = ProjectNodeFactory.maven(projRootFolder);
- val rootPath = _Files.canonicalPath(projRootFolder).get();
+ return generateFromMaven(projTree, rootProjectName);
+ }
+
+ public static GradleSettings generateFromMaven(ProjectNode projTree, String rootProjectName) {
+
+ val rootPath = _Files.canonicalPath(projTree.getProjectDirectory()).get();
val gradleSettings = new GradleSettings(rootProjectName);
val folderByArtifactKey = gradleSettings.getBuildArtifactsByArtifactKey();
projTree.depthFirst(projModel -> {
- folderByArtifactKey.put(projModel.getArtifactKey(), gradleBuildArtifactFor(projModel, rootPath));
+ folderByArtifactKey.put(projModel.getArtifactCoordinates(), gradleBuildArtifactFor(projModel, rootPath));
});
return gradleSettings;
@@ -49,7 +53,7 @@ public class GradleSettingsFactory {
// -- HELPER
private static GradleBuildArtifact gradleBuildArtifactFor(ProjectNode projModel, String rootPath) {
- val name = toCanonicalBuildName(projModel.getArtifactKey());
+ val name = toCanonicalBuildName(projModel.getArtifactCoordinates());
val realtivePath = toCanonicalRelativePath(projModel, rootPath);
return GradleBuildArtifact.of(name, realtivePath, projModel.getProjectDirectory());
}
diff --git a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/GradleSettingsWriter.java b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/GradleSettingsWriter.java
index 6a07d0c..8affcc8 100644
--- a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/GradleSettingsWriter.java
+++ b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/GradleSettingsWriter.java
@@ -21,10 +21,9 @@ package org.apache.isis.tooling.projectmodel.gradle;
import java.io.StringWriter;
import java.io.Writer;
-import lombok.SneakyThrows;
import lombok.val;
-public class GradleSettingsWriter {
+public class GradleSettingsWriter extends WriterAbstract {
public static String toString(GradleSettings gradleSettings) {
if(gradleSettings==null) {
@@ -65,16 +64,6 @@ public class GradleSettingsWriter {
});
}
- // -- HELPER
-
- @SneakyThrows
- private static void writeWithFormat(Writer writer, String format, Object...args) {
- writer.write(String.format(format, args));
- }
-
- @SneakyThrows
- private static void writeEmptyLine(Writer writer) {
- writer.write("\n");
- }
+
}
diff --git a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/Dependency.java b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/WriterAbstract.java
similarity index 63%
copy from tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/Dependency.java
copy to tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/WriterAbstract.java
index 9cd69a5..0106cd4 100644
--- a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/Dependency.java
+++ b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/gradle/WriterAbstract.java
@@ -16,28 +16,24 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.tooling.projectmodel;
+package org.apache.isis.tooling.projectmodel.gradle;
-import java.util.Comparator;
+import java.io.Writer;
-import lombok.Builder;
-import lombok.Data;
+import lombok.SneakyThrows;
-@Data @Builder
-public class Dependency implements Comparable<Dependency> {
-
- private final ArtifactCoordinates artifactKey;
-
- // -- COMPARATOR
+abstract class WriterAbstract {
+
+ // -- HELPER
- private final static Comparator<Dependency> comparator = Comparator
- .comparing(Dependency::getArtifactKey);
+ @SneakyThrows
+ protected static void writeWithFormat(Writer writer, String format, Object...args) {
+ writer.write(String.format(format, args));
+ }
-
- @Override
- public int compareTo(Dependency o) {
- return comparator.compare(this, o);
+ @SneakyThrows
+ protected static void writeEmptyLine(Writer writer) {
+ writer.write("\n");
}
-
-
+
}
diff --git a/tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/GradleDependenciesTest.java b/tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/GradleDependenciesTest.java
index 5eb1038..b71b626 100644
--- a/tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/GradleDependenciesTest.java
+++ b/tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/GradleDependenciesTest.java
@@ -18,45 +18,30 @@
*/
package org.apache.isis.tooling.projectmodel.test;
-import java.io.File;
import java.io.IOException;
import java.time.LocalDate;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertNotNull;
-import org.apache.isis.tooling.projectmodel.gradle.GradleSettings;
-import org.apache.isis.tooling.projectmodel.gradle.GradleSettingsFactory;
-import org.apache.isis.tooling.projectmodel.gradle.GradleSettingsWriter;
+import org.apache.isis.tooling.projectmodel.gradle.GradleDependencies;
+import org.apache.isis.tooling.projectmodel.gradle.GradleDependenciesFactory;
+import org.apache.isis.tooling.projectmodel.gradle.GradleDependenciesWriter;
-class GradleDependenciesTest {
+class GradleDependenciesTest extends ProjectModelTestAbstract {
- File projRootFolder;
-
- @BeforeEach
- void setUp() throws Exception {
- projRootFolder = new File("./").getAbsoluteFile().getParentFile().getParentFile().getParentFile();
- System.out.println("running GradleDependenciesTest at " + projRootFolder.getAbsolutePath());
- }
-
- @AfterEach
- void tearDown() throws Exception {
- }
-
- @Test //@Disabled("activate only if you want to see the settings.gradle written to stdout")
- void writeGradleSettingsToStdout() throws IOException {
- GradleSettings gradleSettings = GradleSettingsFactory.generateFromMaven(projRootFolder, "isis");
- assertNotNull(gradleSettings);
+ @Test //@Disabled("activate only if you want to see the dependencies.gradle written to stdout")
+ void writeGradleDependenciesToStdout() throws IOException {
+ GradleDependencies gradleDependencies = GradleDependenciesFactory.generateFromMaven(projRootFolder, "isis");
+ assertNotNull(gradleDependencies);
System.out.println();
System.out.println();
System.out.println(String.format("// generated by %s", this.getClass().getName()));
System.out.println(String.format("// date %s", LocalDate.now().toString()));
System.out.println();
- System.out.println(GradleSettingsWriter.toString(gradleSettings));
+ System.out.println(GradleDependenciesWriter.toString(gradleDependencies));
}
}
diff --git a/tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/GradleSettingsTest.java b/tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/GradleSettingsTest.java
index 5add583..6ff7df1 100644
--- a/tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/GradleSettingsTest.java
+++ b/tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/GradleSettingsTest.java
@@ -26,7 +26,6 @@ import java.time.LocalDate;
import java.util.HashSet;
import java.util.Set;
-import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
@@ -42,22 +41,16 @@ import org.apache.isis.tooling.projectmodel.gradle.GradleSettingsWriter;
import lombok.SneakyThrows;
import lombok.val;
-class GradleSettingsTest {
+class GradleSettingsTest extends ProjectModelTestAbstract {
- File projRootFolder;
boolean hasUnresolvableGradleBuildArtifacts;
@BeforeEach
void setUp() throws Exception {
- projRootFolder = new File("./").getAbsoluteFile().getParentFile().getParentFile().getParentFile();
- System.out.println("running GradleSettingsTest at " + projRootFolder.getAbsolutePath());
+ super.setUp();
hasUnresolvableGradleBuildArtifacts = false;
}
- @AfterEach
- void tearDown() throws Exception {
- }
-
@Test @Disabled("activate only if you want to see the settings.gradle written to stdout")
void writeGradleSettingsToStdout() throws IOException {
GradleSettings gradleSettings = GradleSettingsFactory.generateFromMaven(projRootFolder, "isis");
diff --git a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/Dependency.java b/tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/ProjectModelTestAbstract.java
similarity index 62%
copy from tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/Dependency.java
copy to tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/ProjectModelTestAbstract.java
index 9cd69a5..7401476 100644
--- a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/Dependency.java
+++ b/tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/ProjectModelTestAbstract.java
@@ -16,28 +16,20 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.tooling.projectmodel;
+package org.apache.isis.tooling.projectmodel.test;
-import java.util.Comparator;
+import java.io.File;
-import lombok.Builder;
-import lombok.Data;
+import org.junit.jupiter.api.BeforeEach;
-@Data @Builder
-public class Dependency implements Comparable<Dependency> {
-
- private final ArtifactCoordinates artifactKey;
-
- // -- COMPARATOR
-
- private final static Comparator<Dependency> comparator = Comparator
- .comparing(Dependency::getArtifactKey);
-
+abstract class ProjectModelTestAbstract {
- @Override
- public int compareTo(Dependency o) {
- return comparator.compare(this, o);
+ protected File projRootFolder;
+
+ @BeforeEach
+ void setUp() throws Exception {
+ projRootFolder = new File("./").getAbsoluteFile().getParentFile().getParentFile().getParentFile();
+ // System.out.println("running GradleDependenciesTest at " + projRootFolder.getAbsolutePath()); // debug
}
-
-
+
}
diff --git a/tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/ProjectTreeTest.java b/tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/ProjectTreeTest.java
index 94ecb5e..21f8c43 100644
--- a/tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/ProjectTreeTest.java
+++ b/tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/ProjectTreeTest.java
@@ -18,12 +18,9 @@
*/
package org.apache.isis.tooling.projectmodel.test;
-import java.io.File;
import java.util.HashSet;
import java.util.Set;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
@@ -36,20 +33,8 @@ import org.apache.isis.tooling.projectmodel.ProjectVisitor;
import lombok.val;
-class ProjectTreeTest {
+class ProjectTreeTest extends ProjectModelTestAbstract {
- File projRootFolder;
-
- @BeforeEach
- void setUp() throws Exception {
- projRootFolder = new File("./").getAbsoluteFile().getParentFile().getParentFile().getParentFile();
- System.out.println("running ProjectTreeTest at " + projRootFolder.getAbsolutePath());
- }
-
- @AfterEach
- void tearDown() throws Exception {
- }
-
@Test @Disabled("for now we are missing some build.gradle files")
void testGradle() {
@@ -86,11 +71,11 @@ class ProjectTreeTest {
}
private static String toString(ProjectNode node) {
- val artifactKey = node.getArtifactKey();
+ val artifactKey = node.getArtifactCoordinates();
val groupId = artifactKey.getGroupId();
val artifactId = artifactKey.getArtifactId();
- val type = artifactKey.getType();
- return String.format("%s:%s:%s", groupId, artifactId, type);
+ val packaging = artifactKey.getPackaging();
+ return String.format("%s:%s:%s", groupId, artifactId, packaging);
}
private void assertHasSomeArtifactKeys(Set<String> artifactKeys) {