From 4cb38cddac332d8e108264364db885892189f7b3 Mon Sep 17 00:00:00 2001 From: Yegor Bugayenko Date: Fri, 16 Sep 2022 21:01:03 +0300 Subject: [PATCH] #1228 four levels of deps --- .../src/it/fibonacci/verify.groovy | 3 ++- .../main/java/org/eolang/maven/Central.java | 2 +- .../main/java/org/eolang/maven/DepDirs.java | 8 ++++---- .../main/java/org/eolang/maven/FtCached.java | 7 +++---- .../main/java/org/eolang/maven/HashOfTag.java | 2 +- .../main/java/org/eolang/maven/MarkMojo.java | 2 +- .../main/java/org/eolang/maven/ParseMojo.java | 2 +- .../java/org/eolang/maven/ResolveMojo.java | 20 ++++++++----------- .../java/org/eolang/maven/DepDirsTest.java | 2 +- .../java/org/eolang/maven/MarkMojoTest.java | 2 +- .../java/org/eolang/maven/PlaceMojoTest.java | 6 +++--- 11 files changed, 26 insertions(+), 30 deletions(-) diff --git a/eo-maven-plugin/src/it/fibonacci/verify.groovy b/eo-maven-plugin/src/it/fibonacci/verify.groovy index 0cb5ab655f..e90cbf9015 100644 --- a/eo-maven-plugin/src/it/fibonacci/verify.groovy +++ b/eo-maven-plugin/src/it/fibonacci/verify.groovy @@ -43,7 +43,8 @@ String log = new File(basedir, 'build.log').text [ '--- eo-maven-plugin:', - 'org.eolang unpacked to eo-runtime', + 'org.eolang:eo-runtime:', + ' unpacked to ', '6th Fibonacci number is 8', 'BUILD SUCCESS', ].each { assert log.contains(it) } diff --git a/eo-maven-plugin/src/main/java/org/eolang/maven/Central.java b/eo-maven-plugin/src/main/java/org/eolang/maven/Central.java index 0ac0a24f69..a4b503b8ee 100644 --- a/eo-maven-plugin/src/main/java/org/eolang/maven/Central.java +++ b/eo-maven-plugin/src/main/java/org/eolang/maven/Central.java @@ -116,7 +116,7 @@ public void accept(final Dependency dep, final Path path) { throw new IllegalStateException(ex); } Logger.info( - this, "%s unpacked to %s:%s:%s:%s", + this, "%s:%s:%s:%s unpacked to %s", dep.getGroupId(), dep.getArtifactId(), dep.getClassifier(), dep.getVersion(), Save.rel(path) ); diff --git a/eo-maven-plugin/src/main/java/org/eolang/maven/DepDirs.java b/eo-maven-plugin/src/main/java/org/eolang/maven/DepDirs.java index d8966b79c4..48bbb35934 100644 --- a/eo-maven-plugin/src/main/java/org/eolang/maven/DepDirs.java +++ b/eo-maven-plugin/src/main/java/org/eolang/maven/DepDirs.java @@ -35,8 +35,8 @@ /** * Walk through directories in a directory and find dep names. Each - * dep is a sub-directory of the third level, - * for example "org.eolang/eo-runtime/0.10.0". + * dep is a subdirectory of the FOURTH level, + * for example "org.eolang/eo-runtime/jar-with-dependencies/0.10.0". * * @since 0.13 */ @@ -63,12 +63,12 @@ private static List list(final Path dir) throws IOException { if (Files.exists(dir)) { final String home = dir.toAbsolutePath().toString(); names.addAll( - Files.find(dir, 3, (t, u) -> true) + Files.find(dir, 4, (t, u) -> true) .filter(file -> file.toFile().isDirectory()) .map(file -> file.toAbsolutePath().toString()) .filter(name -> !name.equals(home)) .map(name -> name.substring(home.length() + 1)) - .filter(name -> name.split(Pattern.quote(File.separator)).length == 3) + .filter(name -> name.split(Pattern.quote(File.separator)).length == 4) .collect(Collectors.toList()) ); } diff --git a/eo-maven-plugin/src/main/java/org/eolang/maven/FtCached.java b/eo-maven-plugin/src/main/java/org/eolang/maven/FtCached.java index 07a26ed7b3..4c73d8aaf1 100644 --- a/eo-maven-plugin/src/main/java/org/eolang/maven/FtCached.java +++ b/eo-maven-plugin/src/main/java/org/eolang/maven/FtCached.java @@ -102,11 +102,10 @@ public void save(final String program, final String ext, final Scalar co final Path target = new Place(program).make(this.main, ext); final String text; if (cached.toFile().exists()) { - Logger.info( + Logger.debug( this, - "Program %s found in cache: %s", - program, - cached + "Program %s.%s found in cache: %s", + program, ext, cached ); text = this.load(program, ext); } else { diff --git a/eo-maven-plugin/src/main/java/org/eolang/maven/HashOfTag.java b/eo-maven-plugin/src/main/java/org/eolang/maven/HashOfTag.java index 81ffe89612..11eb1b1424 100644 --- a/eo-maven-plugin/src/main/java/org/eolang/maven/HashOfTag.java +++ b/eo-maven-plugin/src/main/java/org/eolang/maven/HashOfTag.java @@ -74,7 +74,7 @@ public String hash() { ) ); } - Logger.info(this, "Git sha of %s is %s", this.tag, result); + Logger.debug(this, "Git sha of %s is %s", this.tag, result); return result; } diff --git a/eo-maven-plugin/src/main/java/org/eolang/maven/MarkMojo.java b/eo-maven-plugin/src/main/java/org/eolang/maven/MarkMojo.java index 5091930c32..71d46c837b 100644 --- a/eo-maven-plugin/src/main/java/org/eolang/maven/MarkMojo.java +++ b/eo-maven-plugin/src/main/java/org/eolang/maven/MarkMojo.java @@ -60,7 +60,7 @@ public void exec() throws IOException { if (!Files.exists(sub)) { continue; } - final String ver = dep.split(Pattern.quote(File.separator))[2]; + final String ver = dep.split(Pattern.quote(File.separator))[3]; found += this.scan(sub, ver); } Logger.info( diff --git a/eo-maven-plugin/src/main/java/org/eolang/maven/ParseMojo.java b/eo-maven-plugin/src/main/java/org/eolang/maven/ParseMojo.java index c5f68cee11..563a131799 100644 --- a/eo-maven-plugin/src/main/java/org/eolang/maven/ParseMojo.java +++ b/eo-maven-plugin/src/main/java/org/eolang/maven/ParseMojo.java @@ -164,7 +164,7 @@ private void parse(final Tojo tojo) throws IOException { ) ).applyQuietly(new XMLDocument(baos.toByteArray()).node()) ).toString(); - Logger.info( + Logger.debug( this, "Parsed program %s:\n %s", name, diff --git a/eo-maven-plugin/src/main/java/org/eolang/maven/ResolveMojo.java b/eo-maven-plugin/src/main/java/org/eolang/maven/ResolveMojo.java index d465890578..be7f0340db 100644 --- a/eo-maven-plugin/src/main/java/org/eolang/maven/ResolveMojo.java +++ b/eo-maven-plugin/src/main/java/org/eolang/maven/ResolveMojo.java @@ -104,19 +104,15 @@ public void exec() throws IOException { final Collection deps = this.deps(); for (final Dependency dep : deps) { final String coords = ResolveMojo.coords(dep); - final Path dest; - if (dep.getClassifier().isEmpty()) { - dest = this.targetDir.toPath().resolve(ResolveMojo.DIR) - .resolve(dep.getGroupId()) - .resolve(dep.getArtifactId()) - .resolve(dep.getVersion()); - } else { - dest = this.targetDir.toPath().resolve(ResolveMojo.DIR) - .resolve(dep.getGroupId()) - .resolve(dep.getArtifactId()) - .resolve(dep.getClassifier()) - .resolve(dep.getVersion()); + String classifier = dep.getClassifier(); + if (classifier.isEmpty()) { + classifier = "-"; } + final Path dest = this.targetDir.toPath().resolve(ResolveMojo.DIR) + .resolve(dep.getGroupId()) + .resolve(dep.getArtifactId()) + .resolve(classifier) + .resolve(dep.getVersion()); if (Files.exists(dest)) { Logger.debug( this, "Dependency %s already resolved to %s", diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/DepDirsTest.java b/eo-maven-plugin/src/test/java/org/eolang/maven/DepDirsTest.java index faa50f7694..67dfd5470c 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/DepDirsTest.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/DepDirsTest.java @@ -46,7 +46,7 @@ void findsDirs(@TempDir final Path temp) throws IOException { new Save("", temp.resolve("a/g")).save(); MatcherAssert.assertThat( new DepDirs(temp), - Matchers.contains(String.format("a%sb%1$sc", File.separator)) + Matchers.contains(String.format("a%sb%1$sc%1$sf", File.separator)) ); MatcherAssert.assertThat( new DepDirs(temp), diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/MarkMojoTest.java b/eo-maven-plugin/src/test/java/org/eolang/maven/MarkMojoTest.java index 9e94266ba1..00944c58d2 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/MarkMojoTest.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/MarkMojoTest.java @@ -43,7 +43,7 @@ void extendForeignWithNewObjects(@TempDir final Path temp) throws Exception { final Path bins = temp.resolve(ResolveMojo.DIR); new Save( "hi", - bins.resolve(String.format("foo/hello/0.1.8/%s/foo/bar.eo", CopyMojo.DIR)) + bins.resolve(String.format("foo/hello/-/0.1.8/%s/foo/bar.eo", CopyMojo.DIR)) ).save(); final Path foreign = temp.resolve("placed.json"); new Moja<>(MarkMojo.class) diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/PlaceMojoTest.java b/eo-maven-plugin/src/test/java/org/eolang/maven/PlaceMojoTest.java index 76dd0afe35..eb64f3267a 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/PlaceMojoTest.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/PlaceMojoTest.java @@ -41,9 +41,9 @@ final class PlaceMojoTest { void placesBinaries(@TempDir final Path temp) throws Exception { final Path bins = temp.resolve(ResolveMojo.DIR); final Path classes = temp.resolve("classes"); - new Save("x1", bins.resolve("foo/hello/0.1/EObar/x.bin")).save(); - new Save("x2", bins.resolve("foo/hello/0.1/org/eolang/f/x.a.class")).save(); - new Save("x3", bins.resolve("foo/hello/0.1/org/eolang/t.txt")).save(); + new Save("x1", bins.resolve("foo/hello/-/0.1/EObar/x.bin")).save(); + new Save("x2", bins.resolve("foo/hello/-/0.1/org/eolang/f/x.a.class")).save(); + new Save("x3", bins.resolve("foo/hello/-/0.1/org/eolang/t.txt")).save(); new Moja<>(PlaceMojo.class) .with("targetDir", temp.toFile()) .with("outputDir", classes.toFile())