From 1655a20505a75cc764ea026f88ee4c8fc3d50780 Mon Sep 17 00:00:00 2001 From: Akhmad Fathonih Date: Tue, 9 Aug 2022 09:42:38 +0900 Subject: [PATCH 01/16] fix isModified comparison. While also: 1. Upgrade reflection library due to https://github.com/ronmamo/reflections/issues/273 2. Memoized list of classloaders as it's getting called on each processed file. 3. Added tests for SimpleCache 4. Added tests CodeGenerator fix 5. Minor adjustments --- .../generator/GeneratorFactoryScanner.java | 5 -- .../io/factory/ContextFactoryScanner.java | 18 +++-- graphwalker-java/pom.xml | 4 ++ .../java/source/CodeGenerator.java | 6 +- .../java/source/cache/SimpleCache.java | 5 +- .../graphwalker/java/test/TestExecutor.java | 6 +- .../java/source/CodeGeneratorTest.java | 70 +++++++++++++++++++ .../java/source/cache/SimpleCacheTest.java | 30 ++++++++ pom.xml | 2 +- 9 files changed, 126 insertions(+), 20 deletions(-) create mode 100644 graphwalker-java/src/test/java/org/graphwalker/java/source/CodeGeneratorTest.java create mode 100644 graphwalker-java/src/test/java/org/graphwalker/java/source/cache/SimpleCacheTest.java diff --git a/graphwalker-dsl/src/main/java/org/graphwalker/dsl/antlr/generator/GeneratorFactoryScanner.java b/graphwalker-dsl/src/main/java/org/graphwalker/dsl/antlr/generator/GeneratorFactoryScanner.java index e3b5d6a1d..265d9e081 100644 --- a/graphwalker-dsl/src/main/java/org/graphwalker/dsl/antlr/generator/GeneratorFactoryScanner.java +++ b/graphwalker-dsl/src/main/java/org/graphwalker/dsl/antlr/generator/GeneratorFactoryScanner.java @@ -29,7 +29,6 @@ import org.apache.commons.io.FilenameUtils; import org.graphwalker.core.generator.PathGeneratorBase; import org.reflections.Reflections; -import org.reflections.scanners.SubTypesScanner; import org.reflections.util.ClasspathHelper; import org.reflections.util.ConfigurationBuilder; import org.slf4j.Logger; @@ -47,10 +46,6 @@ private GeneratorFactoryScanner() { private static final Logger logger = LoggerFactory.getLogger(GeneratorFactoryScanner.class); - static { - Reflections.log = null; - } - private static boolean valid(URL url) { String extension = FilenameUtils.getExtension(url.getPath()); return "".equals(extension) || "jar".equals(extension); diff --git a/graphwalker-io/src/main/java/org/graphwalker/io/factory/ContextFactoryScanner.java b/graphwalker-io/src/main/java/org/graphwalker/io/factory/ContextFactoryScanner.java index bf21753ca..18fd515d0 100644 --- a/graphwalker-io/src/main/java/org/graphwalker/io/factory/ContextFactoryScanner.java +++ b/graphwalker-io/src/main/java/org/graphwalker/io/factory/ContextFactoryScanner.java @@ -33,9 +33,12 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; + +import com.google.common.base.Supplier; +import com.google.common.base.Suppliers; import org.apache.commons.io.FilenameUtils; import org.reflections.Reflections; -import org.reflections.scanners.SubTypesScanner; +import org.reflections.scanners.Scanners; import org.reflections.util.ClasspathHelper; import org.reflections.util.ConfigurationBuilder; import org.slf4j.Logger; @@ -56,10 +59,6 @@ private ContextFactoryScanner() { private static final Logger logger = LoggerFactory.getLogger(ContextFactoryScanner.class); - static { - Reflections.log = null; - } - private static Map, ContextFactory> factories = new HashMap<>(); private static boolean valid(URL url) { @@ -80,8 +79,15 @@ private static Collection getUrls() { return filteredUrls; } + private static Reflections getReflections(Collection urls) { + return new Reflections(new ConfigurationBuilder().addUrls(urls).setScanners(Scanners.SubTypes)); + } + public static ContextFactory get(Path path) { - return get(new Reflections(new ConfigurationBuilder().addUrls(getUrls()).addScanners(new SubTypesScanner())), path); + Supplier> memoizedUrls; + memoizedUrls = Suppliers.memoize(ContextFactoryScanner::getUrls); + + return get(getReflections(memoizedUrls.get()), path); } public static ContextFactory get(Reflections reflections, Path path) { diff --git a/graphwalker-java/pom.xml b/graphwalker-java/pom.xml index fc3d1dd1c..6e59153ce 100644 --- a/graphwalker-java/pom.xml +++ b/graphwalker-java/pom.xml @@ -81,6 +81,10 @@ classgraph test + + com.google.guava + guava + diff --git a/graphwalker-java/src/main/java/org/graphwalker/java/source/CodeGenerator.java b/graphwalker-java/src/main/java/org/graphwalker/java/source/CodeGenerator.java index a30a900a5..4f63eb1e8 100644 --- a/graphwalker-java/src/main/java/org/graphwalker/java/source/CodeGenerator.java +++ b/graphwalker-java/src/main/java/org/graphwalker/java/source/CodeGenerator.java @@ -49,8 +49,10 @@ import java.io.IOException; import java.lang.reflect.Modifier; import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.nio.file.*; import java.nio.file.attribute.BasicFileAttributes; +import java.nio.file.attribute.FileTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -91,7 +93,7 @@ public FileVisitResult visitFile(Path file, BasicFileAttributes attributes) thro } private boolean isModified(Path file) throws IOException { - return !Files.getLastModifiedTime(file).equals(cache.get(file).getLastModifiedTime()); + return Files.getLastModifiedTime(file).toMillis() != cache.get(file).getLastModifiedTime().toMillis(); } @Override @@ -111,7 +113,7 @@ private static void write(Context context, SourceFile file) throws IOException { RuntimeModel model = context.getModel(); String source = generator.generate(file, model); Files.createDirectories(file.getOutputPath().getParent()); - Files.write(file.getOutputPath(), source.getBytes(Charset.forName("UTF-8")) + Files.write(file.getOutputPath(), source.getBytes(StandardCharsets.UTF_8) , StandardOpenOption.CREATE , StandardOpenOption.TRUNCATE_EXISTING); } catch (Throwable t) { diff --git a/graphwalker-java/src/main/java/org/graphwalker/java/source/cache/SimpleCache.java b/graphwalker-java/src/main/java/org/graphwalker/java/source/cache/SimpleCache.java index f4eb2c3ce..d114cccf0 100644 --- a/graphwalker-java/src/main/java/org/graphwalker/java/source/cache/SimpleCache.java +++ b/graphwalker-java/src/main/java/org/graphwalker/java/source/cache/SimpleCache.java @@ -32,6 +32,7 @@ import java.io.IOException; import java.lang.reflect.Type; import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -60,7 +61,7 @@ public SimpleCache(Path path) { private void read() { if (Files.exists(path)) { try { - String json = new String(Files.readAllBytes(path), Charset.forName("UTF-8")); + String json = new String(Files.readAllBytes(path), StandardCharsets.UTF_8); Map data = gson.fromJson(json, type); storage.putAll(data); } catch (IOException e) { @@ -74,7 +75,7 @@ private void save() { try { String json = gson.toJson(storage); Files.createDirectories(path.getParent()); - Files.write(path, json.getBytes(Charset.forName("UTF-8"))); + Files.write(path, json.getBytes(StandardCharsets.UTF_8)); } catch (IOException e) { logger.error(e.getMessage()); throw new CacheException(e); diff --git a/graphwalker-java/src/main/java/org/graphwalker/java/test/TestExecutor.java b/graphwalker-java/src/main/java/org/graphwalker/java/test/TestExecutor.java index 3cfff7152..53a950d64 100644 --- a/graphwalker-java/src/main/java/org/graphwalker/java/test/TestExecutor.java +++ b/graphwalker-java/src/main/java/org/graphwalker/java/test/TestExecutor.java @@ -40,8 +40,7 @@ import org.graphwalker.java.factory.PathGeneratorFactory; import org.graphwalker.java.report.XMLReportGenerator; import org.reflections.Reflections; -import org.reflections.scanners.SubTypesScanner; -import org.reflections.scanners.TypeAnnotationsScanner; +import org.reflections.scanners.Scanners; import org.reflections.util.ClasspathHelper; import org.reflections.util.ConfigurationBuilder; import org.slf4j.Logger; @@ -70,10 +69,9 @@ public final class TestExecutor implements Executor, Observer { private static final Reflections reflections = new Reflections(new ConfigurationBuilder() .addUrls(filter(ClasspathHelper.forJavaClassPath(), ClasspathHelper.forClassLoader())) - .addScanners(new SubTypesScanner(), new TypeAnnotationsScanner())); + .setScanners(Scanners.SubTypes, Scanners.TypesAnnotated)); private static Collection filter(Collection classPath, Collection classLoader) { - Reflections.log = null; List urls = new ArrayList<>(), filteredUrls = new ArrayList<>(); urls.addAll(classPath); urls.addAll(classLoader); diff --git a/graphwalker-java/src/test/java/org/graphwalker/java/source/CodeGeneratorTest.java b/graphwalker-java/src/test/java/org/graphwalker/java/source/CodeGeneratorTest.java new file mode 100644 index 000000000..96c096813 --- /dev/null +++ b/graphwalker-java/src/test/java/org/graphwalker/java/source/CodeGeneratorTest.java @@ -0,0 +1,70 @@ +package org.graphwalker.java.source; + +import org.junit.Test; + +import java.io.File; +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.file.*; +import java.nio.file.attribute.FileTime; +import java.util.Arrays; + +import static org.junit.Assert.*; + +public class CodeGeneratorTest { + +@Test +public void testOnlyRegenerateWhenSourceIsModified() throws IOException, URISyntaxException { + String tmpdir = System.getProperty("java.io.tmpdir"); + Path inputDir = Files.createTempDirectory(Paths.get(tmpdir), "input").toAbsolutePath(); + Path outputDir = Files.createTempDirectory(Paths.get(tmpdir), "output").toAbsolutePath(); + + // sample file + URL resource = getClass().getClassLoader().getResource("org/graphwalker/java/path with space/MyModel.graphml"); + File testFile = new File(resource.toURI()); + + Files.copy(testFile.toPath(), inputDir.resolve(testFile.getName()), StandardCopyOption.REPLACE_EXISTING); + FileTime sourceLastModified = Files.getLastModifiedTime(inputDir.resolve(testFile.getName())); + + File[] inputFiles = Arrays.stream(inputDir.toFile().listFiles()) + .toArray(File[]::new); + + assertEquals(1, inputFiles.length); + + // run codegenerator for each input files in inputDir + CodeGenerator.generate(inputDir, outputDir); + + // source modified time should not be altered + FileTime sourceLastModifiedDelta = Files.getLastModifiedTime(inputDir.resolve(testFile.getName())); + assertEquals(sourceLastModified.toMillis(), sourceLastModifiedDelta.toMillis()); + + // glob the output files, find the one with the same name as the input file + File[] outputFiles = Arrays.stream(outputDir.toFile().listFiles()) + .filter(f -> f.getName().equals(testFile.getName().replace(".graphml", ".java"))) + .toArray(File[]::new); + + assertEquals(1, outputFiles.length); + assertEquals("MyModel.java", outputFiles[0].getName()); + + // note lst modified time is in milliseconds + long lastModified = outputFiles[0].lastModified(); + + // sleep 5 seconds to make sure the last modified time is different + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + // regenerate the file + CodeGenerator.generate(inputDir, outputDir); + + // check that the file was not regenerated + outputFiles = Arrays.stream(outputDir.toFile().listFiles()) + .filter(f -> f.getName().equals(testFile.getName().replace(".graphml", ".java"))) + .toArray(File[]::new); + assertEquals(1, outputFiles.length); + assertEquals(lastModified, outputFiles[0].lastModified()); + } +} diff --git a/graphwalker-java/src/test/java/org/graphwalker/java/source/cache/SimpleCacheTest.java b/graphwalker-java/src/test/java/org/graphwalker/java/source/cache/SimpleCacheTest.java new file mode 100644 index 000000000..089b928d7 --- /dev/null +++ b/graphwalker-java/src/test/java/org/graphwalker/java/source/cache/SimpleCacheTest.java @@ -0,0 +1,30 @@ +package org.graphwalker.java.source.cache; + +import org.junit.Before; +import org.junit.Test; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Path; +import java.nio.file.Paths; + +import static org.junit.Assert.*; + +public class SimpleCacheTest { + + @Test + public void get() throws IOException { + SimpleCache cache = new SimpleCache(Paths.get("./")); + // create temporary file + File foo = File.createTempFile("prefix", "suffix"); + foo.deleteOnExit(); + Path key = foo.toPath(); + long lastModified = foo.lastModified(); + cache.add(key, new CacheEntry(lastModified, true)); + CacheEntry cached = cache.get(key); + assertEquals(lastModified, cached.getLastModifiedTime().toMillis()); + assertEquals(true, cached.isGenerated()); + + assertTrue(cache.contains(key)); + } +} diff --git a/pom.xml b/pom.xml index 9fb8e7fe6..44fbd8c1d 100644 --- a/pom.xml +++ b/pom.xml @@ -206,7 +206,7 @@ org.reflections reflections - 0.9.12 + 0.10.2 com.google.code.javaparser From 81869fb968f7c25dc3d5375e8d677d6f78096e69 Mon Sep 17 00:00:00 2001 From: Akhmad Fathonih Date: Tue, 9 Aug 2022 11:31:36 +0900 Subject: [PATCH 02/16] cache reflection factory --- .../antlr/generator/GeneratorFactoryScanner.java | 3 ++- .../io/factory/ContextFactoryScanner.java | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/graphwalker-dsl/src/main/java/org/graphwalker/dsl/antlr/generator/GeneratorFactoryScanner.java b/graphwalker-dsl/src/main/java/org/graphwalker/dsl/antlr/generator/GeneratorFactoryScanner.java index 265d9e081..9d2053120 100644 --- a/graphwalker-dsl/src/main/java/org/graphwalker/dsl/antlr/generator/GeneratorFactoryScanner.java +++ b/graphwalker-dsl/src/main/java/org/graphwalker/dsl/antlr/generator/GeneratorFactoryScanner.java @@ -29,6 +29,7 @@ import org.apache.commons.io.FilenameUtils; import org.graphwalker.core.generator.PathGeneratorBase; import org.reflections.Reflections; +import org.reflections.scanners.Scanners; import org.reflections.util.ClasspathHelper; import org.reflections.util.ConfigurationBuilder; import org.slf4j.Logger; @@ -66,7 +67,7 @@ private static Collection getUrls() { } public static Class get(String generator) { - return get(new Reflections(new ConfigurationBuilder().addUrls(getUrls()).addScanners(new SubTypesScanner())), generator); + return get(new Reflections(new ConfigurationBuilder().addUrls(getUrls()).setScanners(Scanners.SubTypes)), generator); } public static Class get(Reflections reflections, String generatorString) { diff --git a/graphwalker-io/src/main/java/org/graphwalker/io/factory/ContextFactoryScanner.java b/graphwalker-io/src/main/java/org/graphwalker/io/factory/ContextFactoryScanner.java index 18fd515d0..055e7eaf7 100644 --- a/graphwalker-io/src/main/java/org/graphwalker/io/factory/ContextFactoryScanner.java +++ b/graphwalker-io/src/main/java/org/graphwalker/io/factory/ContextFactoryScanner.java @@ -33,9 +33,13 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; +import java.util.concurrent.ExecutionException; import com.google.common.base.Supplier; import com.google.common.base.Suppliers; +import com.google.common.cache.CacheBuilder; +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; import org.apache.commons.io.FilenameUtils; import org.reflections.Reflections; import org.reflections.scanners.Scanners; @@ -83,7 +87,7 @@ private static Reflections getReflections(Collection urls) { return new Reflections(new ConfigurationBuilder().addUrls(urls).setScanners(Scanners.SubTypes)); } - public static ContextFactory get(Path path) { + public static ContextFactory get(Path path){ Supplier> memoizedUrls; memoizedUrls = Suppliers.memoize(ContextFactoryScanner::getUrls); @@ -91,8 +95,16 @@ public static ContextFactory get(Path path) { } public static ContextFactory get(Reflections reflections, Path path) { + LoadingCache, ContextFactory> memo = CacheBuilder.newBuilder() + .build(CacheLoader.from(ContextFactoryScanner::create)); + for (Class factoryClass : reflections.getSubTypesOf(ContextFactory.class)) { - ContextFactory factory = create(factoryClass); + ContextFactory factory = null; + try { + factory = memo.get(factoryClass); + } catch (ExecutionException e) { + factory = create(factoryClass); + } if (null != factory && factory.accept(path)) { return factory; } From 406b7bfdf85d15bfaea1a4d608abb986e05fe34b Mon Sep 17 00:00:00 2001 From: Akhmad Fathonih Date: Tue, 23 Aug 2022 12:00:00 +0900 Subject: [PATCH 03/16] ci: jitpack support for plugin Replace groupId and version via custom command. Otherwise, maven will complain about mismatching version and groupId --- jitpack.yml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 jitpack.yml diff --git a/jitpack.yml b/jitpack.yml new file mode 100644 index 000000000..078af6e22 --- /dev/null +++ b/jitpack.yml @@ -0,0 +1,3 @@ +before_install: + - find . -name "pom.xml" | xargs sed -i -E -e "0,/<\/parent>/ s/[0-9\.]+-SNAPSHOT<\/version>/${VERSION}<\/version>/g" + - find . -name "pom.xml" | xargs sed -i -E -e "0,/<\/parent>/ s/org.graphwalker<\/groupId>/${GROUP_ID}<\/groupId>/g" From 4e963553a51e9c167c8b48a026c5d03c42cb5566 Mon Sep 17 00:00:00 2001 From: Akhmad Fathonih Date: Tue, 23 Aug 2022 12:02:44 +0900 Subject: [PATCH 04/16] jitpack: GROUP instead of GROUP_ID --- jitpack.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jitpack.yml b/jitpack.yml index 078af6e22..52a5b564d 100644 --- a/jitpack.yml +++ b/jitpack.yml @@ -1,3 +1,3 @@ before_install: - find . -name "pom.xml" | xargs sed -i -E -e "0,/<\/parent>/ s/[0-9\.]+-SNAPSHOT<\/version>/${VERSION}<\/version>/g" - - find . -name "pom.xml" | xargs sed -i -E -e "0,/<\/parent>/ s/org.graphwalker<\/groupId>/${GROUP_ID}<\/groupId>/g" + - find . -name "pom.xml" | xargs sed -i -E -e "0,/<\/parent>/ s/org.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" From 10d5e74a06d5739fe4e2e3f97f5be1afcb54d034 Mon Sep 17 00:00:00 2001 From: Akhmad Fathonih Date: Tue, 23 Aug 2022 12:22:24 +0900 Subject: [PATCH 05/16] jitpack: only change plugin.xml data --- jitpack.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/jitpack.yml b/jitpack.yml index 52a5b564d..a862d3571 100644 --- a/jitpack.yml +++ b/jitpack.yml @@ -1,3 +1,12 @@ before_install: - - find . -name "pom.xml" | xargs sed -i -E -e "0,/<\/parent>/ s/[0-9\.]+-SNAPSHOT<\/version>/${VERSION}<\/version>/g" - - find . -name "pom.xml" | xargs sed -i -E -e "0,/<\/parent>/ s/org.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" + - echo "groupId: $GROUP" + - echo "version: $VERSION" +install: + - echo "Generate plugin descriptor" + - mvn plugin:describe + - echo "Replace plugin version" + - find graphwalker-maven-plugin -name "plugin.xml" | xargs sed -i -E -e "0,/<\/parent>/ s/[0-9\.]+-SNAPSHOT<\/version>/${VERSION}<\/version>/g" + - echo "Replace plugin groupId" + - find graphwalker-maven-plugin -name "plugin.xml" | xargs sed -i -E -e "0,/<\/parent>/ s/org.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" + - echo "Installing" + - ./mvnw install -DskipTests From a282e10cf851a2ef20c3175d0f3984eb84b7d166 Mon Sep 17 00:00:00 2001 From: Akhmad Fathonih Date: Tue, 23 Aug 2022 13:10:48 +0900 Subject: [PATCH 06/16] jitpack: narrow changes to plugin.xml --- jitpack.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/jitpack.yml b/jitpack.yml index a862d3571..bff1b1fc4 100644 --- a/jitpack.yml +++ b/jitpack.yml @@ -2,11 +2,13 @@ before_install: - echo "groupId: $GROUP" - echo "version: $VERSION" install: + - echo "Prepare package" + - mvn prepare-package -DskipTest - echo "Generate plugin descriptor" - - mvn plugin:describe + - mvn plugin:descriptor - echo "Replace plugin version" - - find graphwalker-maven-plugin -name "plugin.xml" | xargs sed -i -E -e "0,/<\/parent>/ s/[0-9\.]+-SNAPSHOT<\/version>/${VERSION}<\/version>/g" + - find graphwalker-maven-plugin -name "plugin.xml" | xargs sed -i -E -e "0,// s/[0-9\.]+-SNAPSHOT<\/version>/${VERSION}<\/version>/g" - echo "Replace plugin groupId" - - find graphwalker-maven-plugin -name "plugin.xml" | xargs sed -i -E -e "0,/<\/parent>/ s/org.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" + - find graphwalker-maven-plugin -name "plugin.xml" | xargs sed -i -E -e "0,// s/org.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" - echo "Installing" - ./mvnw install -DskipTests From 39a82033e9a94bf07ca80fbe50f661a389798f61 Mon Sep 17 00:00:00 2001 From: Akhmad Fathonih Date: Tue, 23 Aug 2022 13:13:22 +0900 Subject: [PATCH 07/16] jitpack: hook on install part only --- jitpack.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/jitpack.yml b/jitpack.yml index bff1b1fc4..bf6dfbf10 100644 --- a/jitpack.yml +++ b/jitpack.yml @@ -1,7 +1,6 @@ -before_install: - - echo "groupId: $GROUP" - - echo "version: $VERSION" install: + - echo "groupId $GROUP" + - echo "version $VERSION" - echo "Prepare package" - mvn prepare-package -DskipTest - echo "Generate plugin descriptor" From ad1301cb86e6f16d111129102de38716f2026a66 Mon Sep 17 00:00:00 2001 From: Akhmad Fathonih Date: Tue, 23 Aug 2022 14:11:30 +0900 Subject: [PATCH 08/16] jitpack: do not miss main pom.xml --- jitpack.yml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/jitpack.yml b/jitpack.yml index bf6dfbf10..e814479c8 100644 --- a/jitpack.yml +++ b/jitpack.yml @@ -1,13 +1,8 @@ -install: +before_install: - echo "groupId $GROUP" - echo "version $VERSION" - - echo "Prepare package" - - mvn prepare-package -DskipTest - - echo "Generate plugin descriptor" - - mvn plugin:descriptor - - echo "Replace plugin version" - - find graphwalker-maven-plugin -name "plugin.xml" | xargs sed -i -E -e "0,// s/[0-9\.]+-SNAPSHOT<\/version>/${VERSION}<\/version>/g" + - find . -name "pom.xml" | xargs sed -i -E -e "0,// s/[0-9\.]+-SNAPSHOT<\/version>/${VERSION}<\/version>/g" - echo "Replace plugin groupId" - - find graphwalker-maven-plugin -name "plugin.xml" | xargs sed -i -E -e "0,// s/org.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" + - find . -name "pom.xml" | xargs sed -i -E -e "0,// s/org.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" - echo "Installing" - ./mvnw install -DskipTests From 5afd08a0ca7a61c8683b7c98f788928a383ca59c Mon Sep 17 00:00:00 2001 From: Akhmad Fathonih Date: Tue, 23 Aug 2022 14:25:49 +0900 Subject: [PATCH 09/16] jitpack: debug pom --- jitpack.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/jitpack.yml b/jitpack.yml index e814479c8..fd2907e88 100644 --- a/jitpack.yml +++ b/jitpack.yml @@ -1,8 +1,11 @@ before_install: - echo "groupId $GROUP" - echo "version $VERSION" + - echo "Replace version" - find . -name "pom.xml" | xargs sed -i -E -e "0,// s/[0-9\.]+-SNAPSHOT<\/version>/${VERSION}<\/version>/g" - - echo "Replace plugin groupId" + - find . -name "pom.xml" | xargs grep version + - echo "Replace groupId" - find . -name "pom.xml" | xargs sed -i -E -e "0,// s/org.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" + - find . -name "pom.xml" | xargs grep groupId - echo "Installing" - ./mvnw install -DskipTests From bf46fc0fe0bafac1e3f97a3f36a11e66671dd558 Mon Sep 17 00:00:00 2001 From: Akhmad Fathonih Date: Tue, 23 Aug 2022 14:29:41 +0900 Subject: [PATCH 10/16] jitpack: replace groupid in dpedencies as well --- jitpack.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/jitpack.yml b/jitpack.yml index fd2907e88..0879fa06f 100644 --- a/jitpack.yml +++ b/jitpack.yml @@ -1,11 +1,11 @@ before_install: - echo "groupId $GROUP" - echo "version $VERSION" - - echo "Replace version" + - echo "Replace version (only in the parent tag)" - find . -name "pom.xml" | xargs sed -i -E -e "0,// s/[0-9\.]+-SNAPSHOT<\/version>/${VERSION}<\/version>/g" - find . -name "pom.xml" | xargs grep version - - echo "Replace groupId" - - find . -name "pom.xml" | xargs sed -i -E -e "0,// s/org.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" + - echo "Replace groupId in al dependencies" + - find . -name "pom.xml" | xargs sed -i -E -e "0,/<\/dependencies>/ s/org.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" - find . -name "pom.xml" | xargs grep groupId - echo "Installing" - ./mvnw install -DskipTests From 4e229ff3a1f6fc5e7028da21f9941bc3f7727c2b Mon Sep 17 00:00:00 2001 From: Akhmad Fathonih Date: Tue, 23 Aug 2022 14:56:01 +0900 Subject: [PATCH 11/16] jitpack: debug not all relevant groupId was replaced --- jitpack.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/jitpack.yml b/jitpack.yml index 0879fa06f..32545445d 100644 --- a/jitpack.yml +++ b/jitpack.yml @@ -3,9 +3,9 @@ before_install: - echo "version $VERSION" - echo "Replace version (only in the parent tag)" - find . -name "pom.xml" | xargs sed -i -E -e "0,// s/[0-9\.]+-SNAPSHOT<\/version>/${VERSION}<\/version>/g" - - find . -name "pom.xml" | xargs grep version + - find . -name "pom.xml" | xargs grep -n version - echo "Replace groupId in al dependencies" - - find . -name "pom.xml" | xargs sed -i -E -e "0,/<\/dependencies>/ s/org.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" - - find . -name "pom.xml" | xargs grep groupId + - find . -name "pom.xml" | xargs sed -i -E -e "0,/<\/dependencies>/ s/org\.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" + - find . -name "pom.xml" | xargs grep -n groupId - echo "Installing" - ./mvnw install -DskipTests From 124a682c26e333d6db90b0956980515e6922e24f Mon Sep 17 00:00:00 2001 From: Akhmad Fathonih Date: Tue, 23 Aug 2022 14:58:10 +0900 Subject: [PATCH 12/16] fix: add back-up name after -i --- jitpack.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jitpack.yml b/jitpack.yml index 32545445d..4f4272712 100644 --- a/jitpack.yml +++ b/jitpack.yml @@ -2,10 +2,10 @@ before_install: - echo "groupId $GROUP" - echo "version $VERSION" - echo "Replace version (only in the parent tag)" - - find . -name "pom.xml" | xargs sed -i -E -e "0,// s/[0-9\.]+-SNAPSHOT<\/version>/${VERSION}<\/version>/g" + - find . -name "pom.xml" | xargs sed -ibak -E -e "0,// s/[0-9\.]+-SNAPSHOT<\/version>/${VERSION}<\/version>/g" - find . -name "pom.xml" | xargs grep -n version - echo "Replace groupId in al dependencies" - - find . -name "pom.xml" | xargs sed -i -E -e "0,/<\/dependencies>/ s/org\.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" + - find . -name "pom.xml" | xargs sed -ibak -E -e "0,/<\/dependencies>/ s/org\.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" - find . -name "pom.xml" | xargs grep -n groupId - echo "Installing" - ./mvnw install -DskipTests From 77e33d5f39822f0fd79c014bf5e030e1dd67287b Mon Sep 17 00:00:00 2001 From: Akhmad Fathonih Date: Tue, 23 Aug 2022 15:27:42 +0900 Subject: [PATCH 13/16] jitpack: groupId to be replace thorugh out the pom.xml --- jitpack.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jitpack.yml b/jitpack.yml index 4f4272712..bf0bbaeb7 100644 --- a/jitpack.yml +++ b/jitpack.yml @@ -1,11 +1,11 @@ before_install: - echo "groupId $GROUP" - echo "version $VERSION" - - echo "Replace version (only in the parent tag)" - - find . -name "pom.xml" | xargs sed -ibak -E -e "0,// s/[0-9\.]+-SNAPSHOT<\/version>/${VERSION}<\/version>/g" + - echo "Replace version (only on parent tag)" + - find . -name "pom.xml" | xargs sed -ibak -E -e "0,/<\/parent>/ s/[0-9\.]+-SNAPSHOT<\/version>/${VERSION}<\/version>/g" - find . -name "pom.xml" | xargs grep -n version - - echo "Replace groupId in al dependencies" - - find . -name "pom.xml" | xargs sed -ibak -E -e "0,/<\/dependencies>/ s/org\.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" + - echo "Replace groupId in all pom" + - find . -name "pom.xml" | xargs sed -ibak -E -e "s/org\.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" - find . -name "pom.xml" | xargs grep -n groupId - echo "Installing" - ./mvnw install -DskipTests From 9945912dfcd60515b4313a3758be3fd52ff38d57 Mon Sep 17 00:00:00 2001 From: Akhmad Fathonih Date: Tue, 23 Aug 2022 18:02:35 +0900 Subject: [PATCH 14/16] jitpack: update groupId in plugin-help.xml --- jitpack.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/jitpack.yml b/jitpack.yml index bf0bbaeb7..a807e689d 100644 --- a/jitpack.yml +++ b/jitpack.yml @@ -7,5 +7,8 @@ before_install: - echo "Replace groupId in all pom" - find . -name "pom.xml" | xargs sed -ibak -E -e "s/org\.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" - find . -name "pom.xml" | xargs grep -n groupId + - echo "Replace groupId in all plugin-help.xml" + - find . -name "plugin-help.xml" | xargs sed -ibak -E -e "s/org\.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" + - find . -name "plugin-help.xml" | xargs grep -n groupId - echo "Installing" - ./mvnw install -DskipTests From 348850a38cf183adca21581af1d64b7e153e9403 Mon Sep 17 00:00:00 2001 From: Akhmad Fathonih Date: Tue, 23 Aug 2022 18:04:48 +0900 Subject: [PATCH 15/16] jitpack: handle version in plugin-help.xml --- jitpack.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/jitpack.yml b/jitpack.yml index a807e689d..a17725fdc 100644 --- a/jitpack.yml +++ b/jitpack.yml @@ -10,5 +10,8 @@ before_install: - echo "Replace groupId in all plugin-help.xml" - find . -name "plugin-help.xml" | xargs sed -ibak -E -e "s/org\.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" - find . -name "plugin-help.xml" | xargs grep -n groupId + - echo "Handle plugin-help version" + - find . -name "pom.xml" | xargs sed -ibak -E -e "0,// s/[0-9\.]+-SNAPSHOT<\/version>/${VERSION}<\/version>/g" + - find . -name "pom.xml" | xargs grep -n version - echo "Installing" - ./mvnw install -DskipTests From c3d5204f8c1eb82fcf07fc438d3c60dedb3da7de Mon Sep 17 00:00:00 2001 From: Akhmad Fathonih Date: Wed, 24 Aug 2022 08:40:34 +0900 Subject: [PATCH 16/16] remove jitpack as it's not relevant to the PR --- jitpack.yml | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 jitpack.yml diff --git a/jitpack.yml b/jitpack.yml deleted file mode 100644 index a17725fdc..000000000 --- a/jitpack.yml +++ /dev/null @@ -1,17 +0,0 @@ -before_install: - - echo "groupId $GROUP" - - echo "version $VERSION" - - echo "Replace version (only on parent tag)" - - find . -name "pom.xml" | xargs sed -ibak -E -e "0,/<\/parent>/ s/[0-9\.]+-SNAPSHOT<\/version>/${VERSION}<\/version>/g" - - find . -name "pom.xml" | xargs grep -n version - - echo "Replace groupId in all pom" - - find . -name "pom.xml" | xargs sed -ibak -E -e "s/org\.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" - - find . -name "pom.xml" | xargs grep -n groupId - - echo "Replace groupId in all plugin-help.xml" - - find . -name "plugin-help.xml" | xargs sed -ibak -E -e "s/org\.graphwalker<\/groupId>/${GROUP}<\/groupId>/g" - - find . -name "plugin-help.xml" | xargs grep -n groupId - - echo "Handle plugin-help version" - - find . -name "pom.xml" | xargs sed -ibak -E -e "0,// s/[0-9\.]+-SNAPSHOT<\/version>/${VERSION}<\/version>/g" - - find . -name "pom.xml" | xargs grep -n version - - echo "Installing" - - ./mvnw install -DskipTests