[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/portage/

2023-04-15 Thread Miroslav Šulc
commit: 7f5126275eb7178328b1ff4bea732e06746b
Author: Yuan Liao  gmail  com>
AuthorDate: Wed Jun 23 21:38:30 2021 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sat Apr 15 08:13:53 2023 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=7f512627

Add support for ebuild variables in MAVEN_PROVIDES

Signed-off-by: Yuan Liao  gmail.com>
Closes: https://github.com/gentoo/java-ebuilder/pull/11
Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
index ff4acf3..8026542 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
@@ -394,6 +394,9 @@ public class PortageParser {
 groupId, artifactId, mavenVersion, eclasses));
 
 for (String providedId: mavenProvide) {
+// Allow declarations like MAVEN_PROVIDES="groupId:${PN}:${PV}"
+providedId = providedId.replaceAll("\\$(\\{PN\\}|PN)", pkg).
+replaceAll("\\$(\\{PV\\}|PV)", pv);
 final String[] parts = providedId.split(":");
 cacheItems.add(new CacheItem(category, pkg, version, slot, useFlag,
 parts[0], parts[1], parts[2], eclasses));



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/portage/

2023-04-15 Thread Miroslav Šulc
commit: 3dc12a1cf977e05cd3ff4ef0c61267c5e4abf395
Author: Yuan Liao  gmail  com>
AuthorDate: Fri Jun 11 20:52:25 2021 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sat Apr 15 08:13:52 2023 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=3dc12a1c

Add support for multi-line MAVEN_PROVIDES definition

Closes: https://bugs.gentoo.org/903666
Signed-off-by: Yuan Liao  gmail.com>
Signed-off-by: Miroslav Šulc  gentoo.org>

 .../java/ebuilder/portage/PortageParser.java   | 81 ++
 1 file changed, 52 insertions(+), 29 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
index a1a7075..ff4acf3 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
@@ -263,8 +263,9 @@ public class PortageParser {
 String groupId = null;
 String artifactId = null;
 String mavenVersion = null;
-String[] mavenProvide = null;
+List mavenProvide = new ArrayList<>();
 
+boolean readingMultiLineMavenProvide = false;
 try (final BufferedReader reader = new BufferedReader(
 new InputStreamReader(Files.newInputStream(ebuild.toPath(),
 StandardOpenOption.READ {
@@ -282,31 +283,55 @@ public class PortageParser {
 }
 
 if (!line.isEmpty()) {
-final Matcher matcher = PATTERN_VARIABLE.matcher(line);
-
-if (matcher.matches()) {
-variables.put(matcher.group(1),
-matcher.group(2).replaceAll("(^\"|\"$)", ""));
-}
+// Check if a multi-line MAVEN_PROVIDES declaration is
+// being read
+if (readingMultiLineMavenProvide) {
+if (!line.startsWith("\"")) {
+// Line contains an artifact ID
+mavenProvide.add(line.replace("\"", ""));
+}
+if (line.contains("\"")) {
+// Closing double quote
+readingMultiLineMavenProvide = false;
+}
+} else {
+// Check if the line contains variable declaration
+final Matcher matcher = PATTERN_VARIABLE.matcher(line);
 
-if (line.startsWith("inherit ")) {
-eclasses = getJavaInheritEclasses(line);
+if (matcher.matches()) {
+variables.put(matcher.group(1),
+matcher.group(2).replaceAll("(^\"|\"$)", 
""));
+}
 
-if (eclasses == null || eclasses.isEmpty()) {
-return;
+if (line.startsWith("inherit ")) {
+eclasses = getJavaInheritEclasses(line);
+
+if (eclasses == null || eclasses.isEmpty()) {
+return;
+}
+} else if (line.startsWith("SLOT=")) {
+slot = line.substring("SLOT=".length()).replace(
+"\"", "").replaceAll("/.*", "");
+} else if (line.startsWith("JAVA_PKG_OPT_USE=")) {
+useFlag = 
line.substring("JAVA_PKG_OPT_USE=".length()).
+replace("\"", "");
+} else if (line.startsWith("MAVEN_ID=")) {
+mavenId = line.substring("MAVEN_ID=".length()).
+replace("\"", "");
+} else if (line.startsWith("MAVEN_PROVIDES=")) {
+boolean atMostOneDoubleQuote =
+line.indexOf("\"") == 
line.lastIndexOf("\"");
+line = line.substring("MAVEN_PROVIDES=".length());
+if (!atMostOneDoubleQuote || !line.endsWith("\"")) 
{
+// Line contains an artifact ID
+mavenProvide.addAll(Arrays.asList(
+line.replace("\"", "").split(" ")));
+}
+if (atMostOneDoubleQuote && line.contains("\"")) {
+// Only one double quote -- multi-line 
declaration
+readingMultiLineMavenProvide = true;
+}
 }
-} else if (line.startsWith("SLOT=")) {
-slot = line.substring("SLOT=".length()).replace(

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2021-12-02 Thread Miroslav Šulc
commit: 4f68c6d6cc05acc40c2b7f4d29a5ba3807d987b3
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Thu Dec  2 16:38:41 2021 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Thu Dec  2 16:38:41 2021 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=4f68c6d6

changed eapi to 8

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 1543b5c..ce1b852 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -35,7 +35,7 @@ public class MavenEbuilder {
 /**
  * EAPI version.
  */
-private static final String EAPI = "7";
+private static final String EAPI = "8";
 /**
  * Pattern for retrieval of tarball extension.
  */



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2021-07-01 Thread Miroslav Šulc
commit: e7b4d104d20a6b1faac3c3e67463d49294fb79b4
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Thu Jul  1 13:12:45 2021 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Thu Jul  1 13:12:45 2021 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=e7b4d104

fixed a typo

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
index 98864f8..60ef9d1 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
@@ -65,7 +65,7 @@ public class MavenCache {
 }
 
 if (cacheItem == null) {
-return "!!!suitble-mavenVersion-not-found!!!";
+return "!!!suitable-mavenVersion-not-found!!!";
 }
 
 final StringBuilder sbDependency = new StringBuilder(50);



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2021-06-15 Thread Miroslav Šulc
commit: 61ac9154ef648de0dacbc8f1977d093c1374cca4
Author: Yuan Liao  gmail  com>
AuthorDate: Mon Jun 14 16:09:15 2021 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Tue Jun 15 07:40:21 2021 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=61ac9154

Fix hanging Maven process when lots of artifacts are being downloaded

The MavenParser class uses Java's ProcessBuilder to start a Maven
process without consuming the process's output.  This might cause the
Maven process to hang indefinitely after the output stream buffer is
full, because the process is blocked to wait for the contents in the
buffer to be cleared, but no other program is going to clear them.

When java-ebuilder is asked to create an ebuild for a Maven artifact
whose dependencies are mostly not cached in the local Maven repository
(stored in ~/.m2 by default), it will call Maven, which in turn will
download artifacts for all those dependencies, flooding lots of contents
into the output stream.  The size of output stream buffers Java uses for
the processes created from ProcessBuilder is just 8192 bytes, so with
lots of output, the buffer can become full fairly easily.

This explains why a hanging process is often observed when java-ebuilder
is requested to generate ebuilds for some new Maven artifacts, but
interrupting the process and restarting java-ebuilder can resolve the
issue.  When java-ebuilder is restarted, as long as MAVEN_ARTS is
unchanged, it can skip downloading the dependencies that have already
been cached in the previous execution before the buffer is full, so the
number of artifacts it still needs to download is reduced, and it might
be able to complete before the buffer is full again.

The solution to this issue is simple: either suppress Maven's output, or
consume the output stream buffer's contents to prevent blocking.  The
former solution is probably more preferable because it only requires
minimal change to both the source code and the program's behavior, and
it avoids output redirection, which is not easily portable between
different operating systems.

Reference: 
https://stackoverflow.com/questions/3285408/java-processbuilder-resultant-process-hangs

Signed-off-by: Yuan Liao  gmail.com>
Closes: https://github.com/gentoo/java-ebuilder/pull/10
Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
index 07ae96e..1411307 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
@@ -110,6 +110,10 @@ public class MavenParser {
 
 final ProcessBuilder processBuilder = new ProcessBuilder("mvn", "-f",
 pomFile.toString(), "help:effective-pom",
+// If output was not suppressed, mvn would hang indefinitely
+// if new artifact should be downloaded, probably because of
+// limited output stream buffer size
+"-q",
 "-Doutput=" + outputPath);
 processBuilder.directory(config.getWorkdir().toFile());
 final ProcessBuilder xmlBuilder = new 
ProcessBuilder("simple-xml-formatter",



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2021-06-03 Thread Miroslav Šulc
commit: ad01a8f58da50aa36582fbd0b84b54f7db9c44b6
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Thu Jun  3 08:37:40 2021 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Thu Jun  3 08:37:40 2021 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=ad01a8f5

put unzip in BDEPEND

Closes: https://bugs.gentoo.org/793863
Signed-off-by: Miroslav Šulc  gentoo.org>

 .../java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 4a63494..1543b5c 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -552,11 +552,6 @@ public class MavenEbuilder {
 mavenProjects, config.getForceMinJavaVersion()));
 writer.println(":*");
 
-if (config.getDownloadUri() != null && config.getDownloadUri().
-toString().matches("^.*?\\.(jar|zip)$")) {
-writer.println("\tapp-arch/unzip");
-}
-
 if (config.hasBinjarUri()) {
 if (hasCDepend && compileDependencies.isEmpty()) {
 writer.println("\t!binary? ( ${CDEPEND} )");
@@ -633,6 +628,11 @@ public class MavenEbuilder {
 }
 
 writer.println('"');
+
+if (config.getDownloadUri() != null && config.getDownloadUri().
+toString().matches("^.*?\\.(jar|zip)$")) {
+writer.println("\nBDEPEND=\"app-arch/unzip\"");
+}
 }
 
 /**



[gentoo-commits] proj/java-ebuilder:master commit in: scripts/resources/Makefiles/, src/main/resources/, ...

2020-10-02 Thread Miroslav Šulc
commit: 76e11179439770ad964985476562a390683e70f7
Author: Zhang Zongyu  gmail  com>
AuthorDate: Fri Sep  4 11:34:16 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Fri Sep  4 12:15:53 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=76e11179

new switch: --skip-tests

specify it to prevent java-ebuilder from printing
lines that are related to src_test().

Signed-off-by: Zhang Zongyu  gmail.com>

 scripts/resources/Makefiles/stage2.mk  |  2 ++
 src/main/java/org/gentoo/java/ebuilder/Config.java | 22 ++
 src/main/java/org/gentoo/java/ebuilder/Main.java   |  3 +++
 .../gentoo/java/ebuilder/maven/MavenParser.java|  4 
 src/main/resources/usage.txt   |  1 +
 5 files changed, 32 insertions(+)

diff --git a/scripts/resources/Makefiles/stage2.mk 
b/scripts/resources/Makefiles/stage2.mk
index 764bc5c..71546ea 100644
--- a/scripts/resources/Makefiles/stage2.mk
+++ b/scripts/resources/Makefiles/stage2.mk
@@ -21,4 +21,6 @@ clean-stage2:
\( -name \*.ebuild \
-o  -name Manifest \)\
-delete;\
+   find ${MAVEN_OVERLAY_DIR} -type d \
+   -empty -delete;\
fi

diff --git a/src/main/java/org/gentoo/java/ebuilder/Config.java 
b/src/main/java/org/gentoo/java/ebuilder/Config.java
index e9396ca..731585d 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Config.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Config.java
@@ -93,6 +93,10 @@ public class Config {
  * Whether ebuild cache should be refreshed.
  */
 private boolean refreshCache;
+/**
+ * Whether java-ebuilder will explictly unset hasTests of the Maven 
project.
+ */
+private boolean skipTests;
 /**
  * SLOT number.
  */
@@ -526,4 +530,22 @@ public class Config {
 public void setRefreshCache(final boolean refreshCache) {
 this.refreshCache = refreshCache;
 }
+
+/**
+ * Getter for {@link #skipTests}.
+ *
+ * @return {@link #skipTests}
+ */
+public boolean willSkipTests() {
+return skipTests;
+}
+
+/**
+ * Setter for {@link #skipTests}.
+ *
+ * @param skipTests {@link #skipTests}
+ */
+public void setSkipTests(final boolean skipTests) {
+this.skipTests = skipTests;
+}
 }

diff --git a/src/main/java/org/gentoo/java/ebuilder/Main.java 
b/src/main/java/org/gentoo/java/ebuilder/Main.java
index 6aaf24a..80b3d8b 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Main.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Main.java
@@ -292,6 +292,9 @@ public class Main {
 case "-c":
 config.setRefreshCache(true);
 break;
+case "--skip-tests":
+config.setSkipTests(true);
+break;
 case "--slot":
 case "-s":
 i++;

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
index f69527f..07ae96e 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
@@ -56,6 +56,10 @@ public class MavenParser {
 mavenProject.setHasTests(true);
 }
 
+if (config.willSkipTests()) {
+mavenProject.setHasTests(false);
+}
+
 result.add(mavenProject);
 });
 

diff --git a/src/main/resources/usage.txt b/src/main/resources/usage.txt
index b197a39..2354315 100644
--- a/src/main/resources/usage.txt
+++ b/src/main/resources/usage.txt
@@ -16,6 +16,7 @@ Generating ebuild:
 --pom|-p path to pom.xml that should be parsed,
the path must be relative to workdir (can be
specified multiple times)
+--skip-tests   disable testing framework detecting
 --slot|-sSLOT number
 --workdir|-w  path to ebuild workdir (${WORKDIR}, default
is current directory)



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-10-02 Thread Miroslav Šulc
commit: 744e9bdcbf51b80f4595f77ad88c435ec67a7e5e
Author: Zhang Zongyu  gmail  com>
AuthorDate: Fri Sep  4 12:09:36 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Fri Sep  4 12:15:58 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=744e9bdc

only detect frameworks when the project has tests.

Signed-off-by: Zhang Zongyu  gmail.com>

 .../org/gentoo/java/ebuilder/maven/MavenEbuilder.java| 16 +---
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 19fc43c..4a63494 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -172,14 +172,16 @@ public class MavenEbuilder {
 final MavenProject mavenProject, final Config config) {
 Set frameworks = new HashSet<>(10);
 
-for (final MavenDependency dependency : mavenProject.
-getTestDependencies()) {
-frameworks.add(determineTestingFrameworkByDependency(dependency));
-}
+if (mavenProject.hasTests()) {
+for (final MavenDependency dependency : mavenProject.
+getTestDependencies()) {
+
frameworks.add(determineTestingFrameworkByDependency(dependency));
+}
 
-for (final MavenDependency dependency : mavenProject.
-getCommonDependencies()) {
-frameworks.add(determineTestingFrameworkByDependency(dependency));
+for (final MavenDependency dependency : mavenProject.
+getCommonDependencies()) {
+
frameworks.add(determineTestingFrameworkByDependency(dependency));
+}
 }
 
 if (config.hasBinjarUri()) {



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-08-30 Thread Miroslav Šulc
commit: a34a975a19e5c9a963cb96c1c0496d55a1430f3c
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sun Aug 30 18:21:47 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Aug 30 18:21:47 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=a34a975a

filtering out resource directories that are not valid

Signed-off-by: Miroslav Šulc  gentoo.org>

 .../gentoo/java/ebuilder/maven/MavenProject.java   | 77 +++---
 1 file changed, 38 insertions(+), 39 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
index e91bb80..48c6506 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
@@ -32,14 +32,6 @@ public class MavenProject {
  * Maven group id.
  */
 private String groupId;
-/**
- * Whether the package has resources.
- */
-private Boolean hasResources;
-/**
- * Whether the package has test resources.
- */
-private Boolean hasTestResources;
 /**
  * Whether the package has test classes.
  */
@@ -126,18 +118,38 @@ public class MavenProject {
  * Adds path to {@link #resourceDirectories}.
  *
  * @param path resource path
+ *
+ * @return true if the path was added, otherwise false
+ *
+ * @see #isValidResourcesDir(java.nio.file.Path)
  */
-public void addResourceDirectory(final Path path) {
+public boolean addResourceDirectory(final Path path) {
+if (!isValidResourcesDir(path)) {
+return false;
+}
+
 resourceDirectories.add(path);
+
+return true;
 }
 
 /**
- * Adds path to {@link #testResourceDirectories}.
+ * Adds path to {@link #testResourceDirectories}. The path must be valid.
  *
  * @param path resource path
+ *
+ * @return true if the path was added, otherwise false
+ *
+ * @see #isValidResourcesDir(java.nio.file.Path)
  */
-public void addTestResourceDirectory(final Path path) {
+public boolean addTestResourceDirectory(final Path path) {
+if (!isValidResourcesDir(path)) {
+return false;
+}
+
 testResourceDirectories.add(path);
+
+return true;
 }
 
 /**
@@ -549,20 +561,7 @@ public class MavenProject {
  * @return {@link #hasResources}
  */
 public boolean hasResources() {
-if (hasResources == null) {
-hasResources = false;
-
-for (final Path resources : resourceDirectories) {
-if (resources.toFile().exists()
-&& resources.toFile().list().length != 0) {
-hasResources = true;
-
-break;
-}
-}
-}
-
-return hasResources;
+return !resourceDirectories.isEmpty();
 }
 
 /**
@@ -571,20 +570,7 @@ public class MavenProject {
  * @return {@link #hasTestResources}
  */
 public boolean hasTestResources() {
-if (hasTestResources == null) {
-hasTestResources = false;
-
-for (final Path resources : testResourceDirectories) {
-if (resources.toFile().exists()
-&& resources.toFile().list().length != 0) {
-hasTestResources = true;
-
-break;
-}
-}
-}
-
-return hasTestResources;
+return !testResourceDirectories.isEmpty();
 }
 
 /**
@@ -633,4 +619,17 @@ public class MavenProject {
 
 return result;
 }
+
+/**
+ * Checks whether the provided path is a valid directory for resources. It
+ * must exist and contain at least one file.
+ *
+ * @param resources path to resources
+ *
+ * @return true if the resources directory is valid, otherwise false
+ */
+private boolean isValidResourcesDir(final Path resources) {
+return resources.toFile().exists()
+&& resources.toFile().list().length != 0;
+}
 }



[gentoo-commits] proj/java-ebuilder:master commit in: /

2020-08-30 Thread Miroslav Šulc
commit: 76d79bb0675419facd8154807be3465d3132f997
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sun Aug 30 18:17:46 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Aug 30 18:17:46 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=76d79bb0

version updated

Signed-off-by: Miroslav Šulc  gentoo.org>

 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 74a0451..7bd3596 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
 4.0.0
 org.gentoo
 java-ebuilder
-0.5.1
+0.5.2-SNAPSHOT
 jar
 Gentoo Java ebuild Builder
 Java team tool for semi-automatic creation of ebuilds from 
pom.xml.



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-08-30 Thread Miroslav Šulc
commit: 766ecd34d054a963c7b7149d8e53676b289b8ea8
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sun Aug 30 18:20:44 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Aug 30 18:20:44 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=766ecd34

minor style fixes and sorted methods in MavenProject

Signed-off-by: Miroslav Šulc  gentoo.org>

 .../gentoo/java/ebuilder/maven/MavenProject.java   | 98 +++---
 1 file changed, 50 insertions(+), 48 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
index b7553b0..e91bb80 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
@@ -3,6 +3,7 @@ package org.gentoo.java.ebuilder.maven;
 import java.io.PrintWriter;
 import java.nio.file.Path;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.SortedSet;
@@ -43,14 +44,14 @@ public class MavenProject {
  * Whether the package has test classes.
  */
 private Boolean hasTests;
-/**
- * Lisences.
- */
-private SortedSet licenses = new TreeSet<>();
 /**
  * Homepage URL.
  */
 private String homepage;
+/**
+ * Lisences.
+ */
+private final SortedSet licenses = new TreeSet<>();
 /**
  * Application main class.
  */
@@ -113,14 +114,12 @@ public class MavenProject {
 /**
  * Adds license to {@link #licenses}.
  *
- * @param license {@link #licenses}
+ * @param portageLicenses {@link #licenses}
  */
 public void addLicense(final String portageLicenses) {
 final String[] parts = portageLicenses.split(":");
 
-for (String eachLicense: parts) {
-licenses.add(eachLicense);
-}
+licenses.addAll(Arrays.asList(parts));
 }
 
 /**
@@ -279,6 +278,40 @@ public class MavenProject {
 this.description = description.replaceAll("[\n ]+", " ");
 }
 
+/**
+ * deal with scope == "system" dependencies
+ *
+ * @param writer writer
+ *
+ * @return lines of ebuild variables
+ */
+@SuppressWarnings("unchecked")
+public String getExtraJars(final PrintWriter writer) {
+String ret = "";
+List systemDependencies = getDependencies(new 
String[]{
+"system"});
+
+for (final MavenDependency dependency : systemDependencies) {
+switch (dependency.getGroupId()) {
+case "com.sun":
+switch (dependency.getArtifactId()) {
+case "tools":
+ret += "JAVA_NEEDS_TOOLS=1\n";
+break;
+default:
+writer.println("Equivalent variable for "
++ dependency.getArtifactId() + " not 
found.");
+}
+break;
+default:
+writer.println("Equivalent variable for " + dependency.
+getGroupId() + " not found.");
+}
+}
+
+return ret;
+}
+
 /**
  * Getter for {@link #groupId}.
  *
@@ -297,6 +330,15 @@ public class MavenProject {
 this.groupId = groupId;
 }
 
+/**
+ * Setter for {@link #hasTests}
+ *
+ * @param hasTests {@link #hasTests}
+ */
+public void setHasTests(boolean hasTests) {
+this.hasTests = hasTests;
+}
+
 /**
  * Getter for {@link #homepage}.
  *
@@ -423,37 +465,6 @@ public class MavenProject {
 this.sourceVersion = sourceVersion;
 }
 
-/**
- * deal with scope == "system" dependencies
- *
- * @return lines of ebuild variables
- */
-@SuppressWarnings("unchecked")
-public String getExtraJars(final PrintWriter writer) {
-String ret = "";
-List systemDependencies = getDependencies(new 
String[]{"system"});
-
-for (final MavenDependency dependency : systemDependencies) {
-switch (dependency.getGroupId()) {
-case "com.sun":
-switch (dependency.getArtifactId()) {
-case "tools":
-ret += "JAVA_NEEDS_TOOLS=1\n";
-break;
-default:
-writer.println("Equivalent variable for " +
-dependency.getArtifactId() + " not found.");
-}
-break;
-default:
-writer.println("Equivalent variable for " +
-dependency.getGroupId() + " not found.");
-}
-}
-
-return ret;
-}
-
 /**
  * Getter for {@link #targetVersion}.
  

[gentoo-commits] proj/java-ebuilder:master commit in: scripts/bin/, src/main/java/org/gentoo/java/ebuilder/maven/

2020-08-30 Thread Miroslav Šulc
commit: 2fc8f0371559d97e28265bc422d9114d42cf61cf
Author: Zhang Zongyu  gmail  com>
AuthorDate: Fri Aug 28 04:09:53 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Aug 30 15:12:07 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=2fc8f037

reduce useless output of `movl`

Signed-off-by: Zhang Zongyu  gmail.com>

 scripts/bin/compare-maven-version | 4 ++--
 scripts/bin/tree.sh   | 2 +-
 src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java | 3 ++-
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/scripts/bin/compare-maven-version 
b/scripts/bin/compare-maven-version
index de0ab47..f98a6c7 100755
--- a/scripts/bin/compare-maven-version
+++ b/scripts/bin/compare-maven-version
@@ -94,8 +94,8 @@ parser.add_argument('--maven-version', dest='mv', 
action='store',
 if __name__ == "__main__":
 args = parser.parse_args()
 
-dep = MavenVersion.MavenVersion(args.dep)
-mv = MavenVersion.MavenSingleVersion(args.mv)
+dep = MavenVersion(args.dep)
+mv = MavenSingleVersion(args.mv)
 
 if dep.max.version[0] != :
 print(f"SLOT={dep.min.version[0]}.{dep.min.version[1]}")

diff --git a/scripts/bin/tree.sh b/scripts/bin/tree.sh
index 69dfbd6..5cec2c7 100755
--- a/scripts/bin/tree.sh
+++ b/scripts/bin/tree.sh
@@ -82,7 +82,7 @@ get_maven() {
 MV=$(xmllint --xpath 
"/metadata/versioning/versions/version/text()"\
 "${ARTIFACT_METADATA}"\
 | awk "NR==${line_number}{print $1}")
-if compare-maven-version 2>&1 1>/dev/null; then
+if compare-maven-version -h 2>/dev/null 1>/dev/null; then
 TMP_SLOT=$(compare-maven-version --dep "${MV_RANGE}" 
--maven-version ${MV}) || continue
 fi
 eval $TMP_SLOT

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
index 6e0e447..f69527f 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
@@ -133,7 +133,8 @@ public class MavenParser {
 xmlProcess = xmlBuilder.start();
 xmlProcess.waitFor(10, TimeUnit.MINUTES);
 } catch (final IOException | InterruptedException ex) {
-config.getStdoutWriter().println('\n' + ex.toString());
+config.getStdoutWriter().print("");
+//config.getStdoutWriter().println('\n' + ex.toString());
 }
 
 if (process.exitValue() != 0) {



[gentoo-commits] proj/java-ebuilder:master commit in: /

2020-08-30 Thread Miroslav Šulc
commit: e29f4b10888fb61835d79888f4dec08afd23599b
Author: Zhang Zongyu  gmail  com>
AuthorDate: Fri Aug 28 07:16:20 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Aug 30 15:12:13 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=e29f4b10

release 0.5.1: bugfixes

Signed-off-by: Zhang Zongyu  gmail.com>

 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 8fe211e..74a0451 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
 4.0.0
 org.gentoo
 java-ebuilder
-0.5.0
+0.5.1
 jar
 Gentoo Java ebuild Builder
 Java team tool for semi-automatic creation of ebuilds from 
pom.xml.



[gentoo-commits] proj/java-ebuilder:master commit in: scripts/resources/resources/, scripts/bin/

2020-08-30 Thread Miroslav Šulc
commit: 6c3712c73e51dac2a4e2b07b468378dbbe483cf2
Author: Zhang Zongyu  gmail  com>
AuthorDate: Fri Aug 28 07:14:17 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Aug 30 15:12:13 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=6c3712c7

tree.sh: ignore more elements of pom.xml

Signed-off-by: Zhang Zongyu  gmail.com>

 scripts/bin/tree.sh |  1 +
 scripts/resources/resources/LUT | 84 -
 2 files changed, 1 insertion(+), 84 deletions(-)

diff --git a/scripts/bin/tree.sh b/scripts/bin/tree.sh
index 5cec2c7..c9f895a 100755
--- a/scripts/bin/tree.sh
+++ b/scripts/bin/tree.sh
@@ -166,6 +166,7 @@ gebd() {
 # distributionManagement is invalid for maven 3
 # net.sf.jtidy:jtidy:r938 version is not maven-compliant
 sed -e '/bundle/d' \
+-e '/eclipse-plugin/d' \
 -e '//,/<\/distributionManagement>/d' \
 -e '//,/<\/build>/d' \
 -e '//,/<\/modules>/d' \

diff --git a/scripts/resources/resources/LUT b/scripts/resources/resources/LUT
index 0a4f02e..933d015 100644
--- a/scripts/resources/resources/LUT
+++ b/scripts/resources/resources/LUT
@@ -4104,90 +4104,6 @@
 ]
 ]
 },
-"maven-bin": {
-"3.6": [
-[
-"org.apache.maven",
-"maven-core"
-],
-[
-"org.apache.maven",
-"maven-artifact"
-],
-[
-"org.apache.maven",
-"maven-builder-support"
-],
-[
-"org.apache.maven",
-"maven-compat"
-],
-[
-"org.apache.maven",
-"maven-embedder"
-],
-[
-"org.apache.maven",
-"maven-model"
-],
-[
-"org.apache.maven",
-"maven-model-builder"
-],
-[
-"org.apache.maven",
-"maven-plugin-api"
-],
-[
-"org.apache.maven",
-"maven-repository-metadata"
-],
-[
-"org.apache.maven",
-"maven-resolver-api"
-],
-[
-"org.apache.maven",
-"maven-resolver-connector-basic"
-],
-[
-"org.apache.maven",
-"maven-resolver-impl"
-],
-[
-"org.apache.maven",
-"maven-resolver-provider"
-],
-[
-"org.apache.maven",
-"maven-resolver-spi"
-],
-[
-"org.apache.maven",
-"maven-resolver-transport-wagon"
-],
-[
-"org.apache.maven",
-"maven-resolver-util"
-],
-[
-"org.apache.maven",
-"maven-settings"
-],
-[
-"org.apache.maven",
-"maven-settings-builder"
-],
-[
-"org.apache.maven",
-"maven-shared-utils"
-],
-[
-"org.apache.maven",
-"maven-slf4j-provider"
-]
-]
-},
 "maven-hawtjni-plugin": {
 "0": [
 [



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/resources/, src/main/java/org/gentoo/java/ebuilder/, ...

2020-08-27 Thread Miroslav Šulc
commit: 3012503417562f24f1479c10bde1b86da1917817
Author: zongyu  gmail  com>
AuthorDate: Thu Aug 20 10:50:38 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Thu Aug 20 14:04:15 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=30125034

accept multiple --portage-trees while generating cache

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/Config.java| 10 +-
 src/main/java/org/gentoo/java/ebuilder/Main.java  | 19 +++
 .../gentoo/java/ebuilder/portage/PortageParser.java   |  8 +---
 src/main/resources/usage.txt  |  4 ++--
 4 files changed, 23 insertions(+), 18 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/Config.java 
b/src/main/java/org/gentoo/java/ebuilder/Config.java
index 4502ab3..e9396ca 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Config.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Config.java
@@ -88,7 +88,7 @@ public class Config {
 /**
  * Path to portage tree.
  */
-private Path portageTree;
+private SortedSet portageTree = new TreeSet<>();
 /**
  * Whether ebuild cache should be refreshed.
  */
@@ -365,17 +365,17 @@ public class Config {
  *
  * @return {@link #portageTree}
  */
-public Path getPortageTree() {
+public SortedSet getPortageTree() {
 return portageTree;
 }
 
 /**
- * Setter for {@link #portageTree}.
+ * Add portageTrees to {@link #portageTree}.
  *
  * @param portageTree {@link #portageTree}
  */
-public void setPortageTree(final Path portageTree) {
-this.portageTree = portageTree;
+public void addPortageTree(final Path portageTree) {
+this.portageTree.add(portageTree);
 }
 
 /**

diff --git a/src/main/java/org/gentoo/java/ebuilder/Main.java 
b/src/main/java/org/gentoo/java/ebuilder/Main.java
index 999f741..6aaf24a 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Main.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Main.java
@@ -7,6 +7,7 @@ import java.io.InputStreamReader;
 import java.io.PrintWriter;
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.text.MessageFormat;
 import java.util.List;
@@ -63,16 +64,18 @@ public class Main {
  */
 private static void checkArgs(final Config config) {
 if (config.isRefreshCache()) {
-if (config.getPortageTree() == null) {
-config.setPortageTree(Paths.get("/usr/portage"));
+if (config.getPortageTree().isEmpty()) {
+config.addPortageTree(Paths.get("/usr/portage"));
 }
 
-if (!config.getPortageTree().toFile().exists()) {
-config.getErrorWriter().println("ERROR: Portage tree "
-+ config.getPortageTree() + " does not exist.");
-Runtime.getRuntime().exit(1);
+for (Path portageTree : config.getPortageTree()) {
+if (!portageTree.toFile().exists()) {
+config.getErrorWriter().println("ERROR: Portage tree "
++ portageTree + " does not exist.");
+Runtime.getRuntime().exit(1);
+}
 }
-} else if (config.getPortageTree() != null) {
+} else if (!config.getPortageTree().isEmpty()) {
 config.getErrorWriter().println("WARNING: Portage tree is used "
 + "only when refreshing cache.");
 }
@@ -277,7 +280,7 @@ public class Main {
 case "--portage-tree":
 case "-t":
 i++;
-config.setPortageTree(Paths.get(args[i]).toAbsolutePath().
+config.addPortageTree(Paths.get(args[i]).toAbsolutePath().
 normalize());
 break;
 case "--cache-file":

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
index b48e0d2..a1a7075 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
@@ -139,9 +139,11 @@ public class PortageParser {
 processedEbuilds = 0;
 eclassesCounts.clear();
 
-config.getStdoutWriter().println("Parsing portage tree @ "
-+ config.getPortageTree() + " ...");
-parseCategories(config.getPortageTree());
+for (Path portageTree : config.getPortageTree()) {
+config.getStdoutWriter().println("Parsing portage tree @ "
++ portageTree + " ...");
+parseCategories(portageTree);
+}
 
 final long endTimestamp = System.currentTimeMillis();
 

diff --git a/src/main/resources/usage.txt b/src/main/resources/usage.txt
index 

[gentoo-commits] proj/java-ebuilder:master commit in: scripts/, scripts.new/, scripts.new/resources/Makefiles/, scripts.new/bin/, ...

2020-08-27 Thread Miroslav Šulc
commit: ecd495b383dc06f1193c22c172b05660f70ddb83
Author: zongyu  gmail  com>
AuthorDate: Mon Aug 24 03:39:36 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Thu Aug 27 06:22:35 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=ecd495b3

migrate scripts from scripts.new/ to scripts/

Signed-off-by: zongyu  gmail.com>

 scripts.new/movl   |  43 --
 {scripts.new => scripts}/bin/compare-maven-version |   0
 {scripts.new => scripts}/bin/fill-cache|   0
 {scripts.new => scripts}/bin/simple-xml-formatter  |   0
 {scripts.new => scripts}/bin/tree-wrapper.sh   |   2 +-
 {scripts.new => scripts}/bin/tree.sh   |   4 +-
 scripts/meta.sh| 121 -
 scripts/movl   | 123 ++---
 .../resources/Makefiles/Makefile   |   0
 .../resources/Makefiles/cache.mk   |   0
 .../resources/Makefiles/environment.mk |   0
 .../resources/Makefiles/stage1.mk  |   8 +-
 .../resources/Makefiles/stage2.mk  |   0
 {scripts.new => scripts}/resources/resources/LUT   |  24 
 scripts/tree.sh| 145 -
 15 files changed, 44 insertions(+), 426 deletions(-)

diff --git a/scripts.new/movl b/scripts.new/movl
deleted file mode 100755
index 793eea9..000
--- a/scripts.new/movl
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash
-[[ ${CONFIG} ]] && CONFIG=$(printf "%q\n" "$(realpath "${CONFIG}")")
-export PATH="${PATH}:/usr/lib/java-ebuilder/bin"
-export EROOT=$(dirname /etc)
-
-if [[ $# -gt 0 ]]; then
-if [[ "$1" == "-h" || "$1" == "--help" ]]; then
-echo This is a helper to automagically generate ebuild for 
-echo Maven artifacts defined in ${EROOT}/etc/java-ebuilder.conf
-echo
-echo Usage: movl [options] [target] ...
-echo Options: please refer to \`make -h\`
-echo Targets:
-echo "  allalias for stage2 and post-stage2"
-echo "  build  alias for stage2 and post-stage2"
-echo "  stage1 resolve the dependency graph of the 
provided Maven artifact"
-echo "  stage2 generate ebuild files of the whole dep 
graph"
-echo "  force-stage2   force generate stage2 ebuild files"
-echo "  post-stage2generate digests for ebuilds"
-echo "  clean-cacheremove cache files"
-echo "  clean-stage1   remove stage1-related stuffs"
-echo "  clean-stage2   remove stage2-related stuffs"
-echo "  clean  remove all the generated stuffs"
-echo "Bash Variables:"
-echo "  CONFIG path to the config file"
-echo " default: ${EROOT}/etc/java-ebuilder.conf"
-echo "  DEFAULT_CATEGORY   the default category of the generated 
ebuilds"
-echo " default: app-maven"
-echo "  MAVEN_NODEPset this variable to stop tree.sh from 
recursively resolving"
-echo " the dependencies of MAVEN_ARTS"
-echo "  REPOSITORY where to find the pom and jar files"
-echo " default: https://repo1.maven.org/maven2;
-echo "  TSH_NODEBUGset this variable to make \`movl build\` 
more silent"
-exit
-fi
-else
-movl -h
-exit 0
-fi
-
-cd "${EROOT}/usr/lib/java-ebuilder/Makefiles"
-make $@
-

diff --git a/scripts.new/bin/compare-maven-version 
b/scripts/bin/compare-maven-version
similarity index 100%
rename from scripts.new/bin/compare-maven-version
rename to scripts/bin/compare-maven-version

diff --git a/scripts.new/bin/fill-cache b/scripts/bin/fill-cache
similarity index 100%
rename from scripts.new/bin/fill-cache
rename to scripts/bin/fill-cache

diff --git a/scripts.new/bin/simple-xml-formatter 
b/scripts/bin/simple-xml-formatter
similarity index 100%
rename from scripts.new/bin/simple-xml-formatter
rename to scripts/bin/simple-xml-formatter

diff --git a/scripts.new/bin/tree-wrapper.sh b/scripts/bin/tree-wrapper.sh
similarity index 94%
rename from scripts.new/bin/tree-wrapper.sh
rename to scripts/bin/tree-wrapper.sh
index 259bf3f..6b29286 100755
--- a/scripts.new/bin/tree-wrapper.sh
+++ b/scripts/bin/tree-wrapper.sh
@@ -11,7 +11,7 @@ mkdir -p "${POMDIR}"
 mkdir -p "${CUR_STAGE_DIR}"
 
 for artifact in $MAVEN_ARTS; do
-$TSH $artifact
+"$TSH" $artifact
 if [[ $? -ne 0 ]]; then
 echo [!] While processing $artifact, TSH returned an error
 exit 1

diff --git a/scripts.new/bin/tree.sh b/scripts/bin/tree.sh
similarity index 98%
rename from scripts.new/bin/tree.sh
rename to scripts/bin/tree.sh
index 00eb870..69dfbd6 100755
--- a/scripts.new/bin/tree.sh
+++ b/scripts/bin/tree.sh
@@ -185,7 +185,7 @@ gebd() {
 
 # generate ebuild 

[gentoo-commits] proj/java-ebuilder:master commit in: scripts.new/resources/Makefiles/, scripts.new/

2020-08-27 Thread Miroslav Šulc
commit: 13dc4654dc4c919fad3983c8a9eceab316e19858
Author: zongyu  gmail  com>
AuthorDate: Sun Aug 23 03:28:36 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Aug 23 14:01:22 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=13dc4654

update scripts.new/* to make use of 'hprefixify'

Signed-off-by: zongyu  gmail.com>

 scripts.new/movl   |  4 ++--
 scripts.new/resources/Makefiles/cache.mk   |  4 ++--
 scripts.new/resources/Makefiles/environment.mk | 23 +--
 scripts.new/resources/Makefiles/stage2.mk  |  9 +
 4 files changed, 22 insertions(+), 18 deletions(-)

diff --git a/scripts.new/movl b/scripts.new/movl
index 1f8ae3d..793eea9 100755
--- a/scripts.new/movl
+++ b/scripts.new/movl
@@ -1,7 +1,7 @@
 #!/bin/bash
-EROOT=$(python -c "import portage;print(portage.root)")
 [[ ${CONFIG} ]] && CONFIG=$(printf "%q\n" "$(realpath "${CONFIG}")")
-export PATH="${PATH}:${EROOT}/usr/lib/java-ebuilder/bin"
+export PATH="${PATH}:/usr/lib/java-ebuilder/bin"
+export EROOT=$(dirname /etc)
 
 if [[ $# -gt 0 ]]; then
 if [[ "$1" == "-h" || "$1" == "--help" ]]; then

diff --git a/scripts.new/resources/Makefiles/cache.mk 
b/scripts.new/resources/Makefiles/cache.mk
index 459bab9..a2d7a29 100644
--- a/scripts.new/resources/Makefiles/cache.mk
+++ b/scripts.new/resources/Makefiles/cache.mk
@@ -4,7 +4,7 @@ ${CACHE_TIMESTAMP}:
 ${PRE_STAGE1_CACHE}.raw: ${CACHE_TIMESTAMP}
args=" --refresh-cache";\
for repo in ${REPOS}; do\
-   args+=" -t $${repo}";\
+   args="$${args} -t $${repo}";\
done;\
java-ebuilder $${args} --cache-file "$@"
 
@@ -14,7 +14,7 @@ ${PRE_STAGE1_CACHE}: ${PRE_STAGE1_CACHE}.raw
 ${POST_STAGE1_CACHE}.raw: ${STAGE2_MAKEFILE}
args=" --refresh-cache -t ${STAGE1_DIR}";\
for repo in ${REPOS}; do\
-   args+=" -t $${repo}";\
+   args="$${args} -t $${repo}";\
done;\
java-ebuilder $${args} --cache-file "$@"
 

diff --git a/scripts.new/resources/Makefiles/environment.mk 
b/scripts.new/resources/Makefiles/environment.mk
index 4ce014a..d583cb8 100644
--- a/scripts.new/resources/Makefiles/environment.mk
+++ b/scripts.new/resources/Makefiles/environment.mk
@@ -1,11 +1,12 @@
 # Variables to drive tree.sh
 
-# determine EROOT
-# ${EROOT} with '\' to deal with spaces
-EROOT=$(shell printf "%q\n" \
-   "$(shell python -c "import portage;print(portage.root)")")
-# quoted verion of ${EROOT}
-EROOT_SH="$(shell python -c "import portage;print(portage.root)")"
+# SH is bad
+SHELL=bash
+
+# determine EROOT.
+# thanks to hprefixify, I do not need to call "python3 -c ..."
+EROOT_SH="$(shell dirname /etc)"
+EROOT=$(shell printf "%q\n" ${EROOT_SH})
 
 # java-ebuilder.conf
 CONFIG?=${EROOT}/etc/java-ebuilder.conf
@@ -14,7 +15,6 @@ include ${CONFIG}
 # Aritifact whose dependency to be fill
 MAVEN_OVERLAY_DIR?=${EROOT}/var/lib/java-ebuilder/maven
 POMDIR?=${EROOT}/var/lib/java-ebuilder/poms
-CACHE_DIR=$(shell printf "%q\n" ${CACHEDIR})
 
 # helpers
 TSH=${EROOT}/usr/lib/java-ebuilder/bin/tree.sh
@@ -27,12 +27,15 @@ 
STAGE2_MAKEFILE?=${EROOT}/var/lib/java-ebuilder/stage1/stage2.mk
 
 # PORTAGE REPOS
 ## grab all the repositories installed on this system
-REPOS?=$(shell portageq get_repo_path ${EROOT_SH}\
-   $(shell portageq get_repos ${EROOT_SH}))
+REPOS?=$(shell portageq get_repo_path ${EROOT}\
+   $(shell portageq get_repos ${EROOT}))
 REPOS+=${MAVEN_OVERLAY_DIR}
 
-# cache
+# where is the LookUp Table
 LUTFILE?=${EROOT}/usr/lib/java-ebuilder/resources/LUT
+
+# cache, redefine CACHE_DIR to make it work with GNU Make
+CACHE_DIR=$(shell printf "%q\n" ${CACHEDIR})
 CACHE_TIMESTAMP?=${CACHE_DIR}/cache.stamp
 PRE_STAGE1_CACHE?=${CACHE_DIR}/pre-stage1-cache
 POST_STAGE1_CACHE?=${CACHE_DIR}/post-stage1-cache

diff --git a/scripts.new/resources/Makefiles/stage2.mk 
b/scripts.new/resources/Makefiles/stage2.mk
index 09518dc..764bc5c 100644
--- a/scripts.new/resources/Makefiles/stage2.mk
+++ b/scripts.new/resources/Makefiles/stage2.mk
@@ -7,7 +7,7 @@ force-stage2: ${STAGE2_MAKEFILE} ${POST_STAGE1_CACHE}
make -f ${STAGE2_MAKEFILE} all -j`nproc` -B
 
 post-stage2:
-   for dir in "${MAVEN_OVERLAY_DIR}"/*; do \
+   for dir in ${MAVEN_OVERLAY_DIR}/*; do \
find $${dir} -type f -name \*.ebuild | grep . || continue;\
pushd $${dir} > /dev/null;\
parallel ebuild '$$(echo {}/*.ebuild | cut -d\  -f1)' digest 
::: *;\
@@ -16,8 +16,9 @@ post-stage2:
 
 clean-stage2:
# just to make sure "${MAVEN_OVERLAY_DIR}" points to an overlay
-   [[ -f "${MAVEN_OVERLAY_DIR}"/profiles/repo_name ]] &&\
-   find "${MAVEN_OVERLAY_DIR}" -type f \
+   if [[ -f ${MAVEN_OVERLAY_DIR}/profiles/repo_name ]]; then\
+   find ${MAVEN_OVERLAY_DIR} -type f \
\( -name \*.ebuild \
-o  -name Manifest \)\
-   -delete

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-08-27 Thread Miroslav Šulc
commit: ab9e52a462aa9107adf7fbe6940c8ce01eddde60
Author: zongyu  gmail  com>
AuthorDate: Wed Aug 19 08:33:23 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Aug 19 08:55:39 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=ab9e52a4

Distinguish "dev-java/junit:0" and "dev-java/junit-4"

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index c1e84d1..19fc43c 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -12,6 +12,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.Set;
 import org.gentoo.java.ebuilder.Config;
+import org.gentoo.java.ebuilder.portage.MavenVersion;
 
 /**
  * Generates ebuild from maven project.
@@ -209,7 +210,12 @@ public class MavenEbuilder {
  */
 if ("junit".equals(dependency.getGroupId())
 && "junit".equals(dependency.getArtifactId())) {
-return "junit";
+if (dependency.getMavenVersion().
+compareTo(new MavenVersion("3.9.9")) < 1) {
+return "junit";
+} else {
+return "junit-4";
+}
 } else if ("org.testng".equals(dependency.getGroupId())
 && "testng".equals(dependency.getArtifactId())) {
 return "testng";



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-08-27 Thread Miroslav Šulc
commit: e024794b5f61201fc1db11fdfc40fa05b03125ed
Author: zongyu  gmail  com>
AuthorDate: Wed Aug 19 08:02:07 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Aug 19 08:07:40 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=e024794b

recognize and write JAVA_NEEDS_TOOLS automatically

Signed-off-by: zongyu  gmail.com>

 .../gentoo/java/ebuilder/maven/MavenEbuilder.java  |  3 +++
 .../gentoo/java/ebuilder/maven/MavenProject.java   | 31 ++
 2 files changed, 34 insertions(+)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index b16a64e..c1e84d1 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -749,6 +749,7 @@ public class MavenEbuilder {
 // JAVA_CLASSPATH_EXTRA
 // JAVA_TEST_GENTOO_CLASSPATH
 // JAVA_ENCODING (unless it differs in projects)
+// JAVA_NEED_TOOLS
 // Compile (jars, doc):
 // JAVA_SRC_DIR
 // JAVA_RESOURCE_DIRS
@@ -878,6 +879,8 @@ public class MavenEbuilder {
 writer.println('"');
 }
 
+writer.print(mavenProject.getExtraJars(config.getStdoutWriter()));
+
 writer.print("JAVA_SRC_DIR=\"");
 writer.print(replaceWithVars(config.getWorkdir().relativize(
 mavenProject.getSourceDirectory()).toString(), config));

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
index 794f992..b7553b0 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
@@ -423,6 +423,37 @@ public class MavenProject {
 this.sourceVersion = sourceVersion;
 }
 
+/**
+ * deal with scope == "system" dependencies
+ *
+ * @return lines of ebuild variables
+ */
+@SuppressWarnings("unchecked")
+public String getExtraJars(final PrintWriter writer) {
+String ret = "";
+List systemDependencies = getDependencies(new 
String[]{"system"});
+
+for (final MavenDependency dependency : systemDependencies) {
+switch (dependency.getGroupId()) {
+case "com.sun":
+switch (dependency.getArtifactId()) {
+case "tools":
+ret += "JAVA_NEEDS_TOOLS=1\n";
+break;
+default:
+writer.println("Equivalent variable for " +
+dependency.getArtifactId() + " not found.");
+}
+break;
+default:
+writer.println("Equivalent variable for " +
+dependency.getGroupId() + " not found.");
+}
+}
+
+return ret;
+}
+
 /**
  * Getter for {@link #targetVersion}.
  *



[gentoo-commits] proj/java-ebuilder:master commit in: /

2020-08-27 Thread Miroslav Šulc
commit: 13e876b2befa2b5ca70cc18ce9fce54ac0853d7b
Author: Zhang Zongyu  gmail  com>
AuthorDate: Wed Aug 26 02:46:24 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Thu Aug 27 06:22:41 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=13e876b2

release 0.5.0

Signed-off-by: Zhang Zongyu  gmail.com>

 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 97a38d1..8fe211e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
 4.0.0
 org.gentoo
 java-ebuilder
-0.4.1
+0.5.0
 jar
 Gentoo Java ebuild Builder
 Java team tool for semi-automatic creation of ebuilds from 
pom.xml.



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-08-18 Thread Miroslav Šulc
commit: ab6630af6804d8e79e3a3f6ab31b5abb8a6f6d9c
Author: zongyu  gmail  com>
AuthorDate: Tue Aug 18 03:20:45 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Tue Aug 18 08:05:21 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=ab6630af

improve the coding style of ebuild

Signed-off-by: zongyu  gmail.com>

 .../gentoo/java/ebuilder/maven/MavenEbuilder.java  | 107 ++---
 1 file changed, 53 insertions(+), 54 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index bfedb68..b16a64e 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -31,14 +31,6 @@ public class MavenEbuilder {
 private static final String defaultHomepage
 = "https://wiki.gentoo.org/wiki/No_homepage;;
 
-/**
- * The extra dependency for framework "pkgdiff"
- */
-private static final String dependencyForPkgdiff
-= "\n\t\tamd64? (\n\t\t\tdev-util/pkgdiff"
-  + "\n\t\t\tdev-util/japi-compliance-checker"
-  + "\n\t\t)";
-
 /**
  * EAPI version.
  */
@@ -389,7 +381,9 @@ public class MavenEbuilder {
 
 dependencies.stream().filter((dependency)
 -> (dependency.getSystemDependency() != null
-&& !result.contains(dependency.getSystemDependency(.
+&& !result.contains(dependency.getSystemDependency())
+&& (determineTestingFrameworkByDependency(dependency) == 
null
+|| type != "test"))).
 forEach((dependency) -> {
 result.add(dependency.getSystemDependency());
 });
@@ -555,26 +549,39 @@ public class MavenEbuilder {
 writer.println("\tapp-arch/unzip");
 }
 
-if (config.hasBinjarUri() && (hasCDepend || 
!compileDependencies.isEmpty())) {
-writer.println("\t!binary? (");
-}
-
-if (hasCDepend) {
-writer.println("\t${CDEPEND}");
-}
+if (config.hasBinjarUri()) {
+if (hasCDepend && compileDependencies.isEmpty()) {
+writer.println("\t!binary? ( ${CDEPEND} )");
+} else if (!compileDependencies.isEmpty()) {
+writer.println("\t!binary? (");
+
+if (hasCDepend) {
+writer.println("\t\t${CDEPEND}");
+}
+
+if (!compileDependencies.isEmpty()) {
+compileDependencies.stream().forEach((dependency) -> {
+writer.print("\t\t");
+writer.println(dependency);
+});
+}
 
-if (!compileDependencies.isEmpty()) {
-compileDependencies.stream().forEach((dependency) -> {
-writer.print('\t');
-writer.println(dependency);
-});
-}
+writer.println("\t)");
+}
+} else {
+if (hasCDepend) {
+writer.println("\t${CDEPEND}");
+}
 
-if (config.hasBinjarUri() && (hasCDepend || 
!compileDependencies.isEmpty())) {
-writer.println("\t)");
+if (!compileDependencies.isEmpty()) {
+compileDependencies.stream().forEach((dependency) -> {
+writer.print('\t');
+writer.println(dependency);
+});
+}
 }
 
-if (!testDependencies.isEmpty() || config.hasBinjarUri()) {
+if (!testDependencies.isEmpty()) {
 writer.println("\ttest? (");
 
 testDependencies.stream().forEach((dependency) -> {
@@ -582,11 +589,6 @@ public class MavenEbuilder {
 writer.println(dependency);
 });
 
-// TODO: is it necessary to check whether amd64 is inside KEYWORDS?
-if (config.hasBinjarUri()) {
-writer.println(dependencyForPkgdiff);
-}
-
 writer.println("\t)");
 }
 
@@ -611,7 +613,7 @@ public class MavenEbuilder {
 writer.println(":*");
 
 if (hasCDepend) {
-writer.print("${CDEPEND}");
+writer.print("\t${CDEPEND}");
 }
 
 if (!runtimeDependencies.isEmpty()) {
@@ -700,6 +702,26 @@ public class MavenEbuilder {
 }
 
 writer.println('"');
+
+// write MAVEN_ID ahead of DESCRIPTION
+writer.print("MAVEN_ID=\"");
+writer.print(mavenProject.getGroupId());
+writer.print(':');
+writer.print(mavenProject.getArtifactId());
+writer.print(':');
+writer.print(mavenProject.getVersion());
+writer.println('"');
+
+// write testing framworks, so java-pkg-simple.eclass can deal with it

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/resources/

2020-08-18 Thread Miroslav Šulc
commit: 8173b238277ef2c8f122c8676b84058eb9ea1fba
Author: zongyu  gmail  com>
AuthorDate: Tue Aug 11 09:08:47 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Tue Aug 18 08:05:09 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=8173b238

update licensemap

Signed-off-by: zongyu  gmail.com>

 src/main/resources/licenseMap.properties | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/main/resources/licenseMap.properties 
b/src/main/resources/licenseMap.properties
index a2fdbc6..a574b2d 100644
--- a/src/main/resources/licenseMap.properties
+++ b/src/main/resources/licenseMap.properties
@@ -85,6 +85,7 @@ edl\ 1.0=EPL-1.0
 epl=EPL-1.0
 epl\ 2.0=EPL-2.0
 epl-2.0=EPL-2.0
+gnu\ general\ lesser\ public\ license\ (lgpl)\ version\ 3.0=LGPL-3
 gnu\ general\ public\ library=GPL-1
 gnu\ general\ public\ license,\ version\ 2=GPL-2
 gnu\ general\ public\ license\ version\ 2=GPL-2



[gentoo-commits] proj/java-ebuilder:master commit in: maven/eclass/, maven/licenses/

2020-08-18 Thread Miroslav Šulc
commit: 2635a5185a661a73e3d53f55d6622f0c0f1e171e
Author: zongyu  gmail  com>
AuthorDate: Tue Aug 18 03:20:15 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Tue Aug 18 08:05:21 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=2635a518

update java-pkg-maven, add two licenses

Signed-off-by: zongyu  gmail.com>

 maven/eclass/java-pkg-maven.eclass| 19 +++--
 maven/licenses/Indiana-University-Extreme-Lab | 58 +++
 maven/licenses/UPL-1.0| 35 
 3 files changed, 108 insertions(+), 4 deletions(-)

diff --git a/maven/eclass/java-pkg-maven.eclass 
b/maven/eclass/java-pkg-maven.eclass
index 68f6712..089523c 100644
--- a/maven/eclass/java-pkg-maven.eclass
+++ b/maven/eclass/java-pkg-maven.eclass
@@ -37,26 +37,35 @@ EXPORT_FUNCTIONS src_unpack
 # the application. Give it a default value to handle src_unpack.
 : ${JAVA_TEST_SRC_DIR:=src/test/java}
 
+# @ECLASS-VARIABLE: JAVA_BINJAR_FILENAME
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# The name of the binary jar file that java-pkg-maven will not unpack
+
 # @FUNCTION: java-pkg-binjar_src_unpack
 # @DESCRIPTION:
 # Copy the binary jar into the expected place of java-pkg-simple.  Do
 # not extract files from archive.
 java-pkg-maven_src_unpack() {
+   # mkdir
+   mkdir -p "${S}"/${JAVA_TEST_SRC_DIR}\
+   || die "Could not create ${JAVA_TEST_SRC_DIR}"
+   mkdir -p "${S}"/${JAVA_SRC_DIR}\
+   || die "Could not create ${JAVA_SRC_DIR}"
+
+   # unpack files
for file in ${A}; do
case ${file} in
*-test-sources.jar)
-   mkdir -p "${S}"/${JAVA_TEST_SRC_DIR}\
-   || die "Could not create 
${JAVA_TEST_SRC_DIR}"
unzip -q -o "${DISTDIR}"/${file} -d 
"${S}"/${JAVA_TEST_SRC_DIR}\
|| die "Could not unzip source code for 
testing" ;;
*-sources.jar)
-   mkdir -p "${S}"/${JAVA_SRC_DIR}\
-   || die "Could not create 
${JAVA_SRC_DIR}"
unzip -q -o "${DISTDIR}"/${file} -d 
"${S}"/${JAVA_SRC_DIR}\
|| die "Could not unzip source code"
if [[ -d "${S}"/${JAVA_SRC_DIR}/META-INF ]] ; 
then
rm "${S}"/${JAVA_SRC_DIR}/META-INF -r 
|| die
fi ;;
+   ${JAVA_BINJAR_FILENAME}) ;;
*)
unpack ${file};;
esac
@@ -67,5 +76,7 @@ java-pkg-maven_src_unpack() {
cp "${S}"/${JAVA_SRC_DIR} "${S}"/${JAVA_RESOURCE_DIRS} -r || die
find "${S}"/${JAVA_RESOURCE_DIRS} -type f ! -name \*.properties \
-exec rm {} \; || die
+   find "${S}"/${JAVA_RESOURCE_DIRS} -type d -empty -delete || die
+   mkdir -p "${S}"/${JAVA_RESOURCE_DIRS}
 }
 

diff --git a/maven/licenses/Indiana-University-Extreme-Lab 
b/maven/licenses/Indiana-University-Extreme-Lab
new file mode 100644
index 000..104f189
--- /dev/null
+++ b/maven/licenses/Indiana-University-Extreme-Lab
@@ -0,0 +1,58 @@
+LICENSE FOR THE Extreme! Lab PullParser 
+
+
+Copyright � 2002 The Trustees of Indiana University.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+1) All redistributions of source code must retain the above
+   copyright notice, the list of authors in the original source
+   code, this list of conditions and the disclaimer listed in this
+   license;
+
+2) All redistributions in binary form must reproduce the above
+   copyright notice, this list of conditions and the disclaimer
+   listed in this license in the documentation and/or other
+   materials provided with the distribution;
+
+3) Any documentation included with all redistributions must include
+   the following acknowledgement:
+
+ "This product includes software developed by the Indiana 
+ University Extreme! Lab.  For further information please visit 
+ http://www.extreme.indiana.edu/;
+
+   Alternatively, this acknowledgment may appear in the software
+   itself, and wherever such third-party acknowledgments normally
+   appear.
+
+4) The name "Indiana Univeristy" and "Indiana Univeristy
+   Extreme! Lab" shall not be used to endorse or promote
+   products derived from this software without prior written
+   permission from Indiana University.  For written permission,
+   please contact http://www.extreme.indiana.edu/.
+
+5) Products derived from this software may not use "Indiana
+   Univeristy" name nor may "Indiana Univeristy" appear in their name,
+  

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-08-18 Thread Miroslav Šulc
commit: 0d8dcd56027708943ffd97869f268e9d17be6723
Author: zongyu  gmail  com>
AuthorDate: Thu Aug 13 07:49:21 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Tue Aug 18 08:05:21 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=0d8dcd56

the minimum version of jdk should be 1.8 to make it compatible with jdk-11

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java
index b1918b0..6df982a 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java
@@ -41,7 +41,7 @@ public class JavaVersion {
 
 versionNumber = Integer.parseInt(matcher.group(1), 10);
 if (versionNumber <= 8) {
-this.versionString = "1." + Integer.toString(versionNumber);
+this.versionString = "1.8";
 }
 else {
 this.versionString = versionString;



[gentoo-commits] proj/java-ebuilder:master commit in: maven/eclass/, src/main/java/org/gentoo/java/ebuilder/maven/

2020-08-07 Thread Miroslav Šulc
commit: ab5d26a990de18f3ec1f2166f39da7971c910e2b
Author: zongyu  gmail  com>
AuthorDate: Fri Aug  7 02:48:43 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Fri Aug  7 03:14:36 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=ab5d26a9

minor bugfixes:

1. ebuild for jsch-agent-proxy can be generated by hand, remove the related 
lines
2. make java-pkg-binjar.eclass record dependencies of the pkg
3. fix typo: juniper -> jupiter
4. move the pre-process of maven's license name to MavenLicense

Signed-off-by: zongyu  gmail.com>

 maven/eclass/java-pkg-binjar.eclass|  6 +-
 maven/eclass/java-pkg-maven.eclass |  2 +-
 .../java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java | 10 +-
 .../java/org/gentoo/java/ebuilder/maven/MavenLicenses.java |  6 --
 src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java  | 10 +-
 5 files changed, 16 insertions(+), 18 deletions(-)

diff --git a/maven/eclass/java-pkg-binjar.eclass 
b/maven/eclass/java-pkg-binjar.eclass
index 79947e7..5406455 100644
--- a/maven/eclass/java-pkg-binjar.eclass
+++ b/maven/eclass/java-pkg-binjar.eclass
@@ -27,4 +27,8 @@ java-pkg-binjar_src_unpack() {
 # @FUNCTION: java-pkg-simple_src_compile
 # @DESCRIPTION:
 # Do nothing as we are doing binary install.
-java-pkg-binjar_src_compile() { :; }
+java-pkg-binjar_src_compile() {
+   for dependency in ${JAVA_GENTOO_CLASSPATH//,/ }; do
+   java-pkg_record-jar_ ${dependency}
+   done
+}

diff --git a/maven/eclass/java-pkg-maven.eclass 
b/maven/eclass/java-pkg-maven.eclass
index fb41bb2..68f6712 100644
--- a/maven/eclass/java-pkg-maven.eclass
+++ b/maven/eclass/java-pkg-maven.eclass
@@ -28,7 +28,7 @@ EXPORT_FUNCTIONS src_unpack
 # @DESCRIPTION:
 # A directory relative to ${S} which contains the resources of the
 # application. Give it a default value to handle src_unpack.
-: ${JAVA_RESOURCE_DIRS:=src/main/resources}
+: ${JAVA_RESOURCE_DIRS:=resources}
 
 # @ECLASS-VARIABLE: JAVA_RESOURCE_DIRS
 # @DEFAULT_UNSET

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index e73a1fd..bfedb68 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -223,15 +223,15 @@ public class MavenEbuilder {
 return "testng";
 } else if ("org.junit.jupiter".equals(dependency.getGroupId())
 && "junit-jupiter-engine".equals(dependency.getArtifactId())) {
-// java-pkg-simple do not support now
-return "junit-juniper";
+// java-pkg-simple does not support this framework
+return "junit-jupiter";
 } else if ("org.junit.vintage".equals(dependency.getGroupId())
 && "junit-vintage-engine".equals(dependency.getArtifactId())) {
-// java-pkg-simple do not support now
+// java-pkg-simple does not support this framework
 return "junit-vintage";
 } else if ("io.cucumber".equals(dependency.getGroupId())
 && "cucumber-junit".equals(dependency.getArtifactId())) {
-// java-pkg-simple do not support now
+// java-pkg-simple does not support this framework
 return "cucumber";
 } else {
 return null;
@@ -582,7 +582,7 @@ public class MavenEbuilder {
 writer.println(dependency);
 });
 
-// TODO: check whether amd64 is inside KEYWORDS
+// TODO: is it necessary to check whether amd64 is inside KEYWORDS?
 if (config.hasBinjarUri()) {
 writer.println(dependencyForPkgdiff);
 }

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenLicenses.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenLicenses.java
index f2f4f9a..5309353 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenLicenses.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenLicenses.java
@@ -34,7 +34,7 @@ public class MavenLicenses {
 try {
 mapProperty.load(
 this.getClass().getResourceAsStream(
-licenseMapFile));
+licenseMapFile));
 } catch (final IOException ex) {
 throw new RuntimeException(
 "Failed to read license map from resource", ex);
@@ -52,7 +52,9 @@ public class MavenLicenses {
  */
 public String getEquivalentLicense(String licenseName) {
 final String portageLicense =
-licenseMap.get(licenseName.toLowerCase());
+licenseMap.get(licenseName.trim().
+replaceAll("[\n ]+", " ").
+toLowerCase());
 
 

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-08-05 Thread Miroslav Šulc
commit: 84b4ee711e35b9b53a443cd92d31a108e2aaa569
Author: zongyu  gmail  com>
AuthorDate: Sat Aug  1 15:21:31 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sat Aug  1 15:26:41 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=84b4ee71

update the recorded skeleton cmd

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java | 9 +
 1 file changed, 9 insertions(+)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 8fceec6..810358c 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -364,11 +364,20 @@ public class MavenEbuilder {
 });
 }
 
+if (config.isFromMavenCentral()) {
+writer.print(" --from-maven-central");
+}
+
 if (config.getDownloadUri() != null) {
 writer.print(" --download-uri ");
 writer.print(config.getDownloadUri());
 }
 
+if (config.hasBinjarUri()) {
+writer.print(" --binjar-uri ");
+writer.print(config.getBinjarUri());
+}
+
 if (config.getLicense() != null) {
 writer.print(" --license ");
 writer.print(config.getLicense());



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/, src/main/resources/

2020-08-05 Thread Miroslav Šulc
commit: cc8aa4b89b5f9e268d4d40d04b25418e70955ea3
Author: zongyu  gmail  com>
AuthorDate: Fri Jul 31 09:07:48 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Fri Jul 31 16:25:14 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=cc8aa4b8

initial effort to make java-ebuilder parse licenses from pom.xml

Signed-off-by: zongyu  gmail.com>

 .../gentoo/java/ebuilder/maven/MavenEbuilder.java  |  2 +
 .../gentoo/java/ebuilder/maven/MavenLicenses.java  | 62 
 .../gentoo/java/ebuilder/maven/MavenParser.java| 66 ++
 .../gentoo/java/ebuilder/maven/MavenProject.java   | 22 
 src/main/resources/licenseMap.properties   |  2 +
 5 files changed, 154 insertions(+)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 37d45a4..3b5c3d6 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -702,6 +702,8 @@ public class MavenEbuilder {
 
 if (config.getLicense() != null) {
 writer.print(config.getLicense());
+} else {
+writer.print(mavenProject.getLicenses());
 }
 
 writer.println('"');

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenLicenses.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenLicenses.java
new file mode 100644
index 000..e2db62c
--- /dev/null
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenLicenses.java
@@ -0,0 +1,62 @@
+package org.gentoo.java.ebuilder.maven;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+/**
+ * translate licenses from pom.xml to portage
+ *
+ * @author Zhang Zongyu
+ */
+public class MavenLicenses {
+
+/**
+ * Location of the resource file mapping licenses.
+ */
+private static final String licenseMapFile
+= "/licenseMap.properties";
+
+/**
+ * the Map that will convert license from maven
+ * to portage.
+ */
+private Map licenseMap;
+
+/**
+ * Load cache from resource
+ */
+@SuppressWarnings({"unchecked", "rawtypes"})
+MavenLicenses() {
+Properties mapProperty = new Properties();
+try {
+mapProperty.load(
+this.getClass().getResourceAsStream(
+licenseMapFile));
+} catch (final IOException ex) {
+throw new RuntimeException(
+"Failed to read license map from resource", ex);
+}
+
+licenseMap = (Map)mapProperty;
+}
+
+/**
+ * query the LicenseMap
+ *
+ * @param licenseName the licenses/license/name in pom.xml
+ *
+ * @return license identifier that works with Portage
+ */
+public String getEquivalentLicense(String licenseName) {
+final String portageLicense = licenseMap.get(licenseName);
+
+if (portageLicense == null) {
+return "!!!equivalentPortageLicenseName-not-found!!!";
+} else {
+return portageLicense;
+}
+}
+}

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
index 8abc0aa..8c64e37 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
@@ -16,6 +16,7 @@ import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import org.gentoo.java.ebuilder.Config;
+import org.gentoo.java.ebuilder.maven.MavenLicenses;
 
 /**
  * Parser for parsing pom.xml into project collector class.
@@ -419,6 +420,9 @@ public class MavenParser {
 case "groupId":
 mavenProject.setGroupId(reader.getElementText());
 break;
+case "licenses":
+parseProjectLicenses(mavenProject, reader);
+break;
 case "properties":
 parseProjectProperties(mavenProject, reader);
 break;
@@ -572,6 +576,68 @@ public class MavenParser {
 }
 }
 
+/**
+ * Parses project licenses.
+ *
+ * @param mavenProject maven project instance
+ * @param reader   XML stream reader
+ *
+ * @throws XMLStreamException Thrown if problem occurred while reading the
+ *XML stream.
+ */
+private void parseProjectLicenses(final MavenProject mavenProject,
+final XMLStreamReader reader)
+   

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-08-05 Thread Miroslav Šulc
commit: 1a3f3a54a35473811acf16057529703199a3df76
Author: zongyu  gmail  com>
AuthorDate: Wed Aug  5 04:20:07 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Aug  5 07:49:29 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=1a3f3a54

make java-ebuilder able to recogize junit-5 and cucumber testing frameworks

Signed-off-by: zongyu  gmail.com>

 .../org/gentoo/java/ebuilder/maven/MavenEbuilder.java  | 18 --
 .../org/gentoo/java/ebuilder/maven/MavenProject.java   |  2 +-
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index b9778ef..e73a1fd 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -211,11 +211,9 @@ public class MavenEbuilder {
  */
 private String determineTestingFrameworkByDependency(
 final MavenDependency dependency) {
-/** TODO: missing support for
- *"org.junit.vintage:junit-vintage-engine" tests
+/** TODO: missing determination for
  *"POJO" tests
  *"spock" tests
- *"cucumber" tests
  */
 if ("junit".equals(dependency.getGroupId())
 && "junit".equals(dependency.getArtifactId())) {
@@ -224,9 +222,17 @@ public class MavenEbuilder {
 && "testng".equals(dependency.getArtifactId())) {
 return "testng";
 } else if ("org.junit.jupiter".equals(dependency.getGroupId())
-&& "junit-jupiter-engine".
-equals(dependency.getArtifactId())) {
-return "junit-5";
+&& "junit-jupiter-engine".equals(dependency.getArtifactId())) {
+// java-pkg-simple do not support now
+return "junit-juniper";
+} else if ("org.junit.vintage".equals(dependency.getGroupId())
+&& "junit-vintage-engine".equals(dependency.getArtifactId())) {
+// java-pkg-simple do not support now
+return "junit-vintage";
+} else if ("io.cucumber".equals(dependency.getGroupId())
+&& "cucumber-junit".equals(dependency.getArtifactId())) {
+// java-pkg-simple do not support now
+return "cucumber";
 } else {
 return null;
 }

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
index 51ec844..794f992 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
@@ -276,7 +276,7 @@ public class MavenProject {
  * @param description {@link #description}
  */
 public void setDescription(final String description) {
-this.description = description;
+this.description = description.replaceAll("[\n ]+", " ");
 }
 
 /**



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/resources/, src/main/java/org/gentoo/java/ebuilder/maven/

2020-08-05 Thread Miroslav Šulc
commit: 1a0861fce9d1eed817114871b073edf1f527e21d
Author: zongyu  gmail  com>
AuthorDate: Sat Aug  1 09:16:04 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sat Aug  1 15:25:32 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=1a0861fc

update usage.txt, fix Copyright statement of Gentoo

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java | 2 +-
 src/main/resources/usage.txt| 5 -
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 3b5c3d6..8fceec6 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -598,7 +598,7 @@ public class MavenEbuilder {
  * @param writer ebuild writer
  */
 private void writeHeader(final PrintWriter writer) {
-writer.printf("# Copyright 1999-%d Gentoo Foundation\n",
+writer.printf("# Copyright 1999-%d Gentoo Authors\n",
 LocalDate.now().getYear());
 writer.println("# Distributed under the terms of the GNU General "
 + "Public License v2");

diff --git a/src/main/resources/usage.txt b/src/main/resources/usage.txt
index 725643c..78ab745 100644
--- a/src/main/resources/usage.txt
+++ b/src/main/resources/usage.txt
@@ -2,13 +2,16 @@ Usage: java-ebuilder 
 
 Generating ebuild:
 --download-uri|-u uri that goes to SRC_URI
+--binjar-uri  uri that goes to binary jar
 --dump-projects|-d outputs information about parsed projects
(useful for debugging)
 --ebuild|-e  path to ebuild that should be created
 --force-min-java-version  force minimum JDK/JRE version in 
dependencies
+--from-maven-central   make java-ebuilder inherit 
java-pkg-maven.eclass
 --generate-ebuild|-g   generates ebuild from pom.xml
 --keywords|-karch keywords
---license|-l  license name
+--license|-l  license name, if it is not specified,
+   java-ebuilder will determine LICENSE from 
pom.xml
 --pom|-p path to pom.xml that should be parsed,
the path must be relative to workdir (can be
specified multiple times)



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-08-05 Thread Miroslav Šulc
commit: 6f952b0dfa64958ddd6f391703995c6c97f75bce
Author: zongyu  gmail  com>
AuthorDate: Sun Aug  2 02:48:45 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Aug  2 03:21:21 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=6f952b0d

create proper GENTOO_CLASSPATH for java-virtuals/*.

Signed-off-by: zongyu  gmail.com>

 .../org/gentoo/java/ebuilder/maven/MavenEbuilder.java| 16 ++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 810358c..646fc13 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -33,6 +33,12 @@ public class MavenEbuilder {
 private static final Pattern PATTERN_TARBALL_NAME
 = 
Pattern.compile("^.*/\\$\\{P\\}-sources.((?:\\.tar)\\.\\S+|(?:\\.jar))$");
 
+/**
+ * Pattern for checking whether the dependency is specifying versions.
+ */
+private static final Pattern PATTERN_EBUILD_VERSIONING
+= Pattern.compile("^[~=<>].*$");
+
 /**
  * Generates ebuild from the collected information at the specified path.
  *
@@ -88,14 +94,20 @@ public class MavenEbuilder {
 sbCP.append(',');
 }
 
-final String[] parts = dependency.getSystemDependency().
+final String ebuildDependency =
+dependency.getSystemDependency();
+
+final String[] parts = ebuildDependency.
 replaceAll(".*/", "").
 replaceAll("\\[.*\\]", "").
 split(":");
 String pn = parts[0].replaceAll("-r\\d+$", "");
 
 if (parts.length == 2) {
-pn = pn.substring(0, pn.lastIndexOf('-'));
+if (PATTERN_EBUILD_VERSIONING.
+matcher(ebuildDependency).matches()) {
+pn = pn.substring(0, pn.lastIndexOf('-'));
+}
 
 if (!parts[1].equals("0")) {
 pn += "-" + parts[1];



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/resources/, src/main/java/org/gentoo/java/ebuilder/maven/

2020-08-05 Thread Miroslav Šulc
commit: 1c7018663e04e676f4ff74a9604913a81ddbfbf4
Author: zongyu  gmail  com>
AuthorDate: Sat Aug  1 09:04:07 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sat Aug  1 15:17:55 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=1c701866

Use Set instead of List for storing Licenses, update license map

Signed-off-by: zongyu  gmail.com>

 .../gentoo/java/ebuilder/maven/MavenLicenses.java  |   3 +-
 .../gentoo/java/ebuilder/maven/MavenProject.java   |  12 +-
 src/main/resources/licenseMap.properties   | 152 -
 3 files changed, 161 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenLicenses.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenLicenses.java
index e2db62c..f2f4f9a 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenLicenses.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenLicenses.java
@@ -51,7 +51,8 @@ public class MavenLicenses {
  * @return license identifier that works with Portage
  */
 public String getEquivalentLicense(String licenseName) {
-final String portageLicense = licenseMap.get(licenseName);
+final String portageLicense =
+licenseMap.get(licenseName.toLowerCase());
 
 if (portageLicense == null) {
 return "!!!equivalentPortageLicenseName-not-found!!!";

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
index fa4958d..2fd88de 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
@@ -4,7 +4,9 @@ import java.io.PrintWriter;
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 /**
  * Contains information about maven project collected from pom.xml.
@@ -44,7 +46,7 @@ public class MavenProject {
 /**
  * Lisences.
  */
-private List licenses = new ArrayList<>(10);
+private Set licenses = new HashSet<>(10);
 /**
  * Homepage URL.
  */
@@ -113,8 +115,12 @@ public class MavenProject {
  *
  * @param license {@link #licenses}
  */
-public void addLicense(final String license) {
-licenses.add(license);
+public void addLicense(final String portageLicenses) {
+final String[] parts = portageLicenses.split(":");
+
+for (String eachLicense: parts) {
+licenses.add(eachLicense);
+}
 }
 
 /**

diff --git a/src/main/resources/licenseMap.properties 
b/src/main/resources/licenseMap.properties
index fe9262a..5cd2e5d 100644
--- a/src/main/resources/licenseMap.properties
+++ b/src/main/resources/licenseMap.properties
@@ -1,2 +1,150 @@
-#Fri Jul 31 23:28:29 CST 2020
-Apache\ License,\ Version\ 2.0=Apache-2.0
+#Sat Aug 01 15:44:04 CST 2020
+# A properties file that maps license name of pom.xml to
+#   portage compatible names.
+#
+# If the name indicates multiple licenses, please record
+#   the license like:
+#@CODE
+#   name\ from\ pom.xml=GPL-2:MIT:BSD
+#@CODE
+#
+# If it indicates multiple choices of licenses, please
+#   record the license like:
+#@CODE
+#   name\ from\ pom.xml=||\ (\ GPL-2\ MIT\ )
+#@CODE
+#
+# according to dev-java/bcpkix::gentoo
+bouncy\ castle\ licence=BSD
+# according to dev-lang/scala::gentoo
+bsd-like=BSD
+#
+3-clause\ bsd\ license=BSD
+apache\ 2=Apache-2.0
+apache\ 2.0=Apache-2.0
+apache-2.0=Apache-2.0
+apache\ 2.0\ license=Apache-2.0
+apache\ license=Apache
+apache\ license\ 2=Apache-2.0
+apache\ license\ 2.0=Apache-2.0
+apache\ license,\ 2.0=Apache-2.0
+apache\ license\ v2.0=Apache-2.0
+apache\ license\ version\ 2=Apache-2.0
+apache\ license,\ version\ 2.0=Apache-2.0
+apache\ license\ version\ 2.0=Apache-2.0
+apache\ license,\ version\ 2.0=Apache-2.0
+apache\ public\ license\ 2.0=Apache-2.0
+apache\ software\ license,\ version\ 1.1=Apache-1.1
+apache\ software\ license\ -\ version\ 2.0=Apache-2.0
+apache\ v2=Apache-2.0
+asf\ 2.0=Apache-2.0
+asl=Apache-2.0
+asl\ 2.0=Apache-2.0
+asl,\ version\ 2=Apache-2.0
+bsd=BSD-1
+bsd\ 2-clause=BSD-2
+bsd-2-clause=BSD-2
+bsd\ 2-clause\ license=BSD-2
+bsd\ 3-clause=BSD
+bsd-3-clause=BSD
+bsd\ licence=BSD-1
+bsd\ license=BSD-1
+bsd\ style=BSD
+cc0=CC0-1.0
+cddl\ 1.0=CDDL
+cddl\ 1.1=CDDL-1.1
+cddl+gpl\ license=CDDL:GPL-1
+cddl/gplv2+ce=||\ (\ CDDL\ GPL-2-with-classpath-exception\ )
+cddl\ +\ gplv2\ with\ classpath\ exception=CDDL:GPL-2-with-classpath-exception
+cddl\ license=CDDL
+cddl\ v1.1\ /\ gpl\ v2\ dual\ license=CDDL-1.1:GPL-2
+common\ development\ and\ distribution\ license=CDDL
+common\ development\ and\ distribution\ license\ (cddl)\ plus\ gpl=CDDL:GPL
+common\ development\ and\ distribution\ license\ (cddl)\ v1.0=CDDL
+common\ development\ and\ distribution\ license\ (cddl)\ version\ 

[gentoo-commits] proj/java-ebuilder:master commit in: maven/eclass/

2020-08-05 Thread Miroslav Šulc
commit: 6630c8b0d4c1beb5dee68d4481487e8acd0340e4
Author: zongyu  gmail  com>
AuthorDate: Wed Aug  5 04:04:34 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Aug  5 04:05:29 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=6630c8b0

update java-pkg-maven: recogize files by suffixes

Signed-off-by: zongyu  gmail.com>

 maven/eclass/java-pkg-maven.eclass | 45 --
 1 file changed, 28 insertions(+), 17 deletions(-)

diff --git a/maven/eclass/java-pkg-maven.eclass 
b/maven/eclass/java-pkg-maven.eclass
index d926cc3..fb41bb2 100644
--- a/maven/eclass/java-pkg-maven.eclass
+++ b/maven/eclass/java-pkg-maven.eclass
@@ -13,23 +13,30 @@
 
 EXPORT_FUNCTIONS src_unpack
 
-# @ECLASS-VARIABLE: JAVA_SOURCE_FILENAME
+# @ECLASS-VARIABLE: JAVA_SRC_DIR
 # @DESCRIPTION:
-# The filename of the source code.
-: ${JAVA_SOURCE_FILENAME:=${P}-sources.jar}
-
-# @ECLASS-VARIABLE: JAVA_TEST_SOURCE_FILENAME
-# @DESCRIPTION:
-# The filename of the source code for launch testing.
-: ${JAVA_TEST_SOURCE_FILENAME:=${P}-test-sources.jar}
+# A directory relative to ${S} which contains the source code.
+# source code distributed by Maven Central are exactly the root of
+# the source code, we need to assign them a separate directory to
+# avoid the situation that the source code, the resources and the
+# source code for testing are mixed in ${S}.
+#
+: ${JAVA_SRC_DIR:=src/main/java}
 
 # @ECLASS-VARIABLE: JAVA_RESOURCE_DIRS
 # @DEFAULT_UNSET
 # @DESCRIPTION:
-# A directory relative to ${S} which contain the resources of the
+# A directory relative to ${S} which contains the resources of the
 # application. Give it a default value to handle src_unpack.
 : ${JAVA_RESOURCE_DIRS:=src/main/resources}
 
+# @ECLASS-VARIABLE: JAVA_RESOURCE_DIRS
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# A directory relative to ${S} which contains the source code for testing
+# the application. Give it a default value to handle src_unpack.
+: ${JAVA_TEST_SRC_DIR:=src/test/java}
+
 # @FUNCTION: java-pkg-binjar_src_unpack
 # @DESCRIPTION:
 # Copy the binary jar into the expected place of java-pkg-simple.  Do
@@ -37,23 +44,27 @@ EXPORT_FUNCTIONS src_unpack
 java-pkg-maven_src_unpack() {
for file in ${A}; do
case ${file} in
-   ${JAVA_BINJAR_FILENAME}) ;;
-   ${JAVA_SOURCE_FILENAME})
-   mkdir -p "${S}"/${JAVA_SRC_DIR}\
-   || die "Could not create 
${JAVA_SRC_DIR}"
-   unzip -q -o "${DISTDIR}"/${file} -d 
"${S}"/${JAVA_SRC_DIR}\
-   || die "Could not unzip source code" ;;
-   ${JAVA_TEST_SOURCE_FILENAME})
+   *-test-sources.jar)
mkdir -p "${S}"/${JAVA_TEST_SRC_DIR}\
|| die "Could not create 
${JAVA_TEST_SRC_DIR}"
unzip -q -o "${DISTDIR}"/${file} -d 
"${S}"/${JAVA_TEST_SRC_DIR}\
|| die "Could not unzip source code for 
testing" ;;
+   *-sources.jar)
+   mkdir -p "${S}"/${JAVA_SRC_DIR}\
+   || die "Could not create 
${JAVA_SRC_DIR}"
+   unzip -q -o "${DISTDIR}"/${file} -d 
"${S}"/${JAVA_SRC_DIR}\
+   || die "Could not unzip source code"
+   if [[ -d "${S}"/${JAVA_SRC_DIR}/META-INF ]] ; 
then
+   rm "${S}"/${JAVA_SRC_DIR}/META-INF -r 
|| die
+   fi ;;
+   *)
+   unpack ${file};;
esac
done
 
# the resources (maven resources are bundled inside source file)
+   mkdir -p $(dirname "${S}"/${JAVA_RESOURCE_DIRS}) || die
cp "${S}"/${JAVA_SRC_DIR} "${S}"/${JAVA_RESOURCE_DIRS} -r || die
-   rm "${S}"/${JAVA_RESOURCE_DIRS}/META-INF -r || die
find "${S}"/${JAVA_RESOURCE_DIRS} -type f ! -name \*.properties \
-exec rm {} \; || die
 }



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/, ...

2020-08-05 Thread Miroslav Šulc
commit: 11678b72a491963a8bad6d65c84d6228a0e3ac5a
Author: zongyu  gmail  com>
AuthorDate: Tue Aug  4 07:10:01 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Aug  5 04:05:24 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=11678b72

sort KEYWORDS

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/Config.java | 32 
 src/main/java/org/gentoo/java/ebuilder/Main.java   |  2 +-
 .../gentoo/java/ebuilder/maven/MavenProject.java   |  2 +-
 .../java/ebuilder/portage/KeywordComparator.java   | 35 ++
 src/main/resources/usage.txt   |  2 +-
 5 files changed, 64 insertions(+), 9 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/Config.java 
b/src/main/java/org/gentoo/java/ebuilder/Config.java
index dbfa30b..4502ab3 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Config.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Config.java
@@ -7,7 +7,10 @@ import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.SortedSet;
+import java.util.TreeSet;
 import org.gentoo.java.ebuilder.maven.JavaVersion;
+import org.gentoo.java.ebuilder.portage.KeywordComparator;
 
 /**
  * Container for command line configuration.
@@ -73,7 +76,7 @@ public class Config {
 /**
  * Arch keywords.
  */
-private String keywords;
+private SortedSet keywords = new TreeSet<>(new 
KeywordComparator());
 /**
  * License name.
  */
@@ -301,16 +304,33 @@ public class Config {
  * @return {@link #keywords}
  */
 public String getKeywords() {
-return keywords;
+return String.join(" ", keywords);
 }
 
 /**
- * Setter for {@link #keywords}.
+ * add keyword to {@link #keywords}.
  *
- * @param keywords {@link #keywords}
+ * @param keyword String that contains one or more keywords
  */
-public void setKeywords(final String keywords) {
-this.keywords = keywords;
+public void addKeywords(final String keywords) {
+String[] parts = keywords.split(" ");
+
+/**
+ * Make "-amd64" replace "amd64 ~amd64"
+ * Make "amd64" replace "~amd64"
+ */
+for (String part : parts) {
+if (part.startsWith("-")) {
+this.keywords.remove(part.substring(1));
+this.keywords.remove("~" + part.substring(1));
+this.keywords.add(part);
+} else if (part.startsWith("~")) {
+this.keywords.add(part);
+} else {
+this.keywords.remove("~" + part);
+this.keywords.add(part);
+}
+}
 }
 
 /**

diff --git a/src/main/java/org/gentoo/java/ebuilder/Main.java 
b/src/main/java/org/gentoo/java/ebuilder/Main.java
index 49f6a49..999f741 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Main.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Main.java
@@ -262,7 +262,7 @@ public class Main {
 case "--keywords":
 case "-k":
 i++;
-config.setKeywords(args[i]);
+config.addKeywords(args[i]);
 break;
 case "--license":
 case "-l":

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
index e1016a8..51ec844 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
@@ -46,7 +46,7 @@ public class MavenProject {
 /**
  * Lisences.
  */
-private SortedSet licenses = new TreeSet<>(10);
+private SortedSet licenses = new TreeSet<>();
 /**
  * Homepage URL.
  */

diff --git 
a/src/main/java/org/gentoo/java/ebuilder/portage/KeywordComparator.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/KeywordComparator.java
new file mode 100644
index 000..4382cf4
--- /dev/null
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/KeywordComparator.java
@@ -0,0 +1,35 @@
+package org.gentoo.java.ebuilder.portage;
+
+import java.util.Comparator;
+
+/**
+ * a comparator to sort keywords
+ *
+ * @author Zhang Zongyu
+ */
+public class KeywordComparator implements Comparator {
+
+/**
+ * it is designed to compare KEYWORDS as what repoman will do:
+ * 1) "-amd64", "amd64" and "~amd64" are the same -- they will
+ *not appear at the same time in a TreeSet;
+ * 2) After splitting the strings into two parts by "-", it will
+ *compare the suffixes before it compares the prefixes.
+ */
+@Override
+public int compare(String o1, String o2) {
+// prepend "-0-" to make sure the length of the array is 2
+final String[] trimmedO1 = (o1 + "-0-").
+replaceAll("^[-~]", "").
+

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/resources/, src/main/java/org/gentoo/java/ebuilder/maven/

2020-08-05 Thread Miroslav Šulc
commit: 1198ae64e71b5d8dab832c78ab16a103512eaf58
Author: zongyu  gmail  com>
AuthorDate: Sun Aug  2 09:13:54 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Mon Aug  3 02:28:40 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=1198ae64

reformat the license/name string

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java | 4 +++-
 src/main/resources/licenseMap.properties  | 5 +++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
index 8c64e37..d487024 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
@@ -627,7 +627,9 @@ public class MavenParser {
 case "name":
 mavenProject.addLicense(
 mavenLicenses.getEquivalentLicense(
-reader.getElementText()));
+reader.getElementText().
+trim().
+replaceAll("[\n ]+", " ")));
 break;
 default:
 consumeElement(reader);

diff --git a/src/main/resources/licenseMap.properties 
b/src/main/resources/licenseMap.properties
index 5cd2e5d..a2fdbc6 100644
--- a/src/main/resources/licenseMap.properties
+++ b/src/main/resources/licenseMap.properties
@@ -59,7 +59,7 @@ cddl\ +\ gplv2\ with\ classpath\ 
exception=CDDL:GPL-2-with-classpath-exception
 cddl\ license=CDDL
 cddl\ v1.1\ /\ gpl\ v2\ dual\ license=CDDL-1.1:GPL-2
 common\ development\ and\ distribution\ license=CDDL
-common\ development\ and\ distribution\ license\ (cddl)\ plus\ gpl=CDDL:GPL
+common\ development\ and\ distribution\ license\ (cddl)\ plus\ gpl=CDDL:GPL-1
 common\ development\ and\ distribution\ license\ (cddl)\ v1.0=CDDL
 common\ development\ and\ distribution\ license\ (cddl)\ version\ 1.0=CDDL
 common\ public\ license\ -\ v\ 1.0=CPL-1.0
@@ -113,7 +113,8 @@ hsqldb\ license=BSD
 indiana\ university\ extreme!\ lab\ software\ 
license=Indiana-University-Extreme-Lab
 indiana\ university\ extreme!\ lab\ software\ license\ 
1.1.1=Indiana-University-Extreme-Lab
 indiana\ university\ extreme!\ lab\ software\ license,\ vesion\ 
1.1.1=Indiana-University-Extreme-Lab
-jquery\ license=MIT:CC0
+jquery\ license=MIT:CC0-1.0
+jsr-000107\ jcache\ 2.9\ public\ review\ -\ updated\ specification\ 
license=Apache-2.0
 lgpl=LGPL-3
 lgpl\ 2.1=LGPL-2.1
 lgpl-2.1=LGPL-2.1



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/, ...

2020-08-05 Thread Miroslav Šulc
commit: 6052789c154452e2198ddf57983d626ba870c321
Author: zongyu  gmail  com>
AuthorDate: Mon Aug  3 13:16:36 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Mon Aug  3 14:42:52 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=6052789c

initial effort to support multiple testing frameworks

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/Config.java |  40 +++
 src/main/java/org/gentoo/java/ebuilder/Main.java   |  17 ++-
 .../gentoo/java/ebuilder/maven/MavenEbuilder.java  | 128 +++--
 .../gentoo/java/ebuilder/maven/MavenParser.java|   5 +
 .../gentoo/java/ebuilder/maven/MavenProject.java   |   9 ++
 src/main/resources/usage.txt   |   1 +
 6 files changed, 161 insertions(+), 39 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/Config.java 
b/src/main/java/org/gentoo/java/ebuilder/Config.java
index 27dbc7c..dbfa30b 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Config.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Config.java
@@ -98,6 +98,14 @@ public class Config {
  * Writer for standard output.
  */
 private final PrintWriter stdoutWriter;
+/**
+ * URI that goes to *-test-sources.jar distributed by maven central
+ */
+private URI testSrcUri;
+/**
+ * whether testSrcUri is set and whether the pkg is from maven central.
+ */
+private boolean testSrcUriExists;
 /**
  * Path to workdir.
  */
@@ -377,6 +385,35 @@ public class Config {
 return stdoutWriter;
 }
 
+/**
+ * Getter for {@link #testSrcUri}.
+ *
+ * @return {@link #testSrcUri}
+ */
+public URI getTestSrcUri() {
+return testSrcUri;
+}
+
+/**
+ * Getter for {@link #testSrcUriExists}.
+ *
+ * @return {@link #testSrcUriExists}
+ */
+public boolean hasTestSrcUri() {
+return testSrcUriExists;
+}
+
+/**
+ * Setter for {@link #testSrcUri}.
+ *
+ * @param testSrcUri {@link #testSrcUri}
+ */
+public void setTestSrcUri(final URI testSrcUri) {
+this.testSrcUri = testSrcUri;
+if (isFromMavenCentral()) {
+this.testSrcUriExists = true;
+}
+}
 /**
  * Getter for {@link #workdir}.
  *
@@ -429,6 +466,9 @@ public class Config {
  */
 public void setFromMavenCentral(final boolean fromMavenCentral) {
 this.fromMavenCentral = fromMavenCentral;
+if (getTestSrcUri() != null) {
+this.testSrcUriExists = true;
+}
 }
 
 /**

diff --git a/src/main/java/org/gentoo/java/ebuilder/Main.java 
b/src/main/java/org/gentoo/java/ebuilder/Main.java
index 72e0a04..49f6a49 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Main.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Main.java
@@ -219,7 +219,9 @@ public class Main {
 try {
 config.setBinjarUri(new URI(args[i]));
 } catch (final URISyntaxException ex) {
-config.getErrorWriter().println("ERROR: BINJAR_URI " + 
args[i]
+config.getErrorWriter().println(
+"ERROR: URI goes to binary jar "
++ args[i]
 + " is not valid.");
 }
 
@@ -291,6 +293,19 @@ public class Main {
 case "-s":
 i++;
 config.setSlot(args[i]);
+break;
+case "--test-src-uri":
+i++;
+
+try {
+config.setTestSrcUri(new URI(args[i]));
+} catch (final URISyntaxException ex) {
+config.getErrorWriter().println(
+"ERROR: URI that goes to src code for testing"
++ args[i]
++ " is not valid.");
+}
+
 break;
 case "--workdir":
 case "-w":

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 857d6c1..b9778ef 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -6,9 +6,11 @@ import java.io.PrintWriter;
 import java.nio.file.Path;
 import java.time.LocalDate;
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import java.util.Set;
 import org.gentoo.java.ebuilder.Config;
 
 /**
@@ -29,6 +31,14 @@ public class MavenEbuilder {
 private static final String defaultHomepage
 = "https://wiki.gentoo.org/wiki/No_homepage;;
 
+/**
+ * The extra dependency for framework "pkgdiff"
+ */
+   

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-08-05 Thread Miroslav Šulc
commit: 22348c9c8ef160aab32ed4231cd45279ec56cdd2
Author: zongyu  gmail  com>
AuthorDate: Mon Aug  3 02:37:54 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Mon Aug  3 02:40:52 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=22348c9c

add default{Desciption,Homepage}

Signed-off-by: zongyu  gmail.com>

 .../gentoo/java/ebuilder/maven/MavenEbuilder.java  | 33 --
 1 file changed, 25 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 646fc13..1fde760 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -18,6 +18,17 @@ import org.gentoo.java.ebuilder.Config;
  */
 public class MavenEbuilder {
 
+/**
+ * The fallback description if no description is found in pom.xml.
+ */
+private static final String defaultDescription = "${MAVEN_ID}";
+
+/**
+ * The fallback homepage if no homepage is found in pom.xml.
+ */
+private static final String defaultHomepage
+= "https://wiki.gentoo.org/wiki/No_homepage;;
+
 /**
  * EAPI version.
  */
@@ -694,10 +705,22 @@ public class MavenEbuilder {
 final MavenProject mavenProject, final PrintWriter writer) {
 writer.println();
 
+// write MAVEN_ID ahead of DESCRIPTION,
+//   becase defaultDescription need ${MAVEN_ID}
+writer.print("MAVEN_ID=\"");
+writer.print(mavenProject.getGroupId());
+writer.print(':');
+writer.print(mavenProject.getArtifactId());
+writer.print(':');
+writer.print(mavenProject.getVersion());
+writer.println('"');
+
 writer.print("DESCRIPTION=\"");
 
 if (mavenProject.getDescription() != null) {
 writer.print(mavenProject.getDescription().replace("\"", "\\\""));
+} else {
+writer.print(defaultDescription);
 }
 
 writer.println('"');
@@ -706,6 +729,8 @@ public class MavenEbuilder {
 
 if (mavenProject.getHomepage() != null) {
 writer.print(mavenProject.getHomepage());
+} else {
+writer.print(defaultHomepage);
 }
 
 writer.println('"');
@@ -736,14 +761,6 @@ public class MavenEbuilder {
 writer.print("KEYWORDS=\"");
 writer.print(config.getKeywords());
 writer.println('"');
-
-writer.print("MAVEN_ID=\"");
-writer.print(mavenProject.getGroupId());
-writer.print(':');
-writer.print(mavenProject.getArtifactId());
-writer.print(':');
-writer.print(mavenProject.getVersion());
-writer.println('"');
 }
 
 /**



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-08-05 Thread Miroslav Šulc
commit: 774340875eb0e929b0db193cd4e84887e52339d8
Author: zongyu  gmail  com>
AuthorDate: Mon Aug  3 08:38:58 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Mon Aug  3 10:56:22 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=77434087

make MavenEbuilder not print unnecessary lines

Signed-off-by: zongyu  gmail.com>

 .../gentoo/java/ebuilder/maven/MavenEbuilder.java  | 24 --
 1 file changed, 8 insertions(+), 16 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 1fde760..857d6c1 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -450,10 +450,8 @@ public class MavenEbuilder {
 mavenProjects, "runtime");
 final boolean hasCDepend = !commonDependencies.isEmpty();
 
-writer.println();
-
 if (hasCDepend) {
-writer.println("# Common dependencies");
+writer.println("\n# Common dependencies");
 
 mavenProjects.stream().
 filter((mavenProject)
@@ -474,11 +472,9 @@ public class MavenEbuilder {
 writer.println('"');
 }
 
-writer.println();
-
 if (!compileDependencies.isEmpty()
 || !testDependencies.isEmpty()) {
-writer.println("# Compile dependencies");
+writer.println("\n# Compile dependencies");
 
 mavenProjects.stream().
 filter((mavenProject)
@@ -543,10 +539,8 @@ public class MavenEbuilder {
 
 writer.println('"');
 
-writer.println();
-
 if (!runtimeDependencies.isEmpty()) {
-writer.println("# Runtime dependencies");
+writer.println("\n# Runtime dependencies");
 
 mavenProjects.stream().
 filter((mavenProject)
@@ -558,7 +552,7 @@ public class MavenEbuilder {
 });
 }
 
-writer.print("RDEPEND=\"\n\t>=virtual/jre-");
+writer.print("\nRDEPEND=\"\n\t>=virtual/jre-");
 writer.print(getMinTargetVersion(
 mavenProjects, config.getForceMinJavaVersion()));
 writer.println(":*");
@@ -575,8 +569,6 @@ public class MavenEbuilder {
 });
 }
 
-
-
 writer.println('"');
 }
 
@@ -680,14 +672,14 @@ public class MavenEbuilder {
 // Global:
 // JAVA_GENTOO_CLASSPATH
 // JAVA_CLASSPATH_EXTRA
-// JAVA_GENTOO_TEST_CLASSPATH
+// JAVA_TEST_GENTOO_CLASSPATH
 // JAVA_ENCODING (unless it differs in projects)
 // Compile (jars, doc):
 // JAVA_SRC_DIR
 // JAVA_RESOURCE_DIRS
 // JAVA_ENCODING (in case project encodings are different)
 // Test:
-// JAVA_TESTING_FRAMEWORK
+// JAVA_TESTING_FRAMEWORKS
 // JAVA_TEST_SRC_DIR
 // JAVA_TEST_RESOURCE_DIRS
 // Install (jars, doc, sources):
@@ -855,7 +847,7 @@ public class MavenEbuilder {
 firstTestVar = false;
 }
 
-writer.print("JAVA_TESTING_FRAMEWORK=\"");
+writer.print("JAVA_TESTING_FRAMEWORKS=\"");
 writer.print(testingFramework);
 writer.println('"');
 }
@@ -866,7 +858,7 @@ public class MavenEbuilder {
 firstTestVar = false;
 }
 
-writer.print("JAVA_GENTOO_TEST_CLASSPATH=\"");
+writer.print("JAVA_TEST_GENTOO_CLASSPATH=\"");
 writer.print(createClassPath(mavenProject.getTestDependencies()));
 writer.println('"');
 }



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-08-05 Thread Miroslav Šulc
commit: d87268c1674caf498a8cb65033a6a1b763112e35
Author: zongyu  gmail  com>
AuthorDate: Tue Aug  4 07:08:00 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Tue Aug  4 07:08:00 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=d87268c1

sort licenses

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
index 4ce11b8..e1016a8 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
@@ -4,9 +4,9 @@ import java.io.PrintWriter;
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
 
 /**
  * Contains information about maven project collected from pom.xml.
@@ -46,7 +46,7 @@ public class MavenProject {
 /**
  * Lisences.
  */
-private Set licenses = new HashSet<>(10);
+private SortedSet licenses = new TreeSet<>(10);
 /**
  * Homepage URL.
  */



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/, maven/eclass/

2020-07-31 Thread Miroslav Šulc
commit: 970308e5d845b5da6818131c75f84c38691691c6
Author: zongyu  gmail  com>
AuthorDate: Wed Jul 29 06:13:04 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Jul 29 06:19:25 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=970308e5

write src_unpack everytime is not elegant, use java-pkg-maven to handle it

Signed-off-by: zongyu  gmail.com>

 maven/eclass/java-pkg-maven.eclass | 60 ++
 .../gentoo/java/ebuilder/maven/MavenEbuilder.java  | 41 +++
 2 files changed, 67 insertions(+), 34 deletions(-)

diff --git a/maven/eclass/java-pkg-maven.eclass 
b/maven/eclass/java-pkg-maven.eclass
new file mode 100644
index 000..d926cc3
--- /dev/null
+++ b/maven/eclass/java-pkg-maven.eclass
@@ -0,0 +1,60 @@
+# Copyright 2004-2020 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# @ECLASS: java-pkg-binjar.eclass
+# @MAINTAINER:
+# zzy2529420...@gmail.com
+# @AUTHOR:
+# Zhang Zongyu
+# @BLURB: Eclass for unpacking Maven aritfacts
+# @DESCRIPTION:
+# This class is an attempt to unpack Maven artifacts properly.
+
+EXPORT_FUNCTIONS src_unpack
+
+# @ECLASS-VARIABLE: JAVA_SOURCE_FILENAME
+# @DESCRIPTION:
+# The filename of the source code.
+: ${JAVA_SOURCE_FILENAME:=${P}-sources.jar}
+
+# @ECLASS-VARIABLE: JAVA_TEST_SOURCE_FILENAME
+# @DESCRIPTION:
+# The filename of the source code for launch testing.
+: ${JAVA_TEST_SOURCE_FILENAME:=${P}-test-sources.jar}
+
+# @ECLASS-VARIABLE: JAVA_RESOURCE_DIRS
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# A directory relative to ${S} which contain the resources of the
+# application. Give it a default value to handle src_unpack.
+: ${JAVA_RESOURCE_DIRS:=src/main/resources}
+
+# @FUNCTION: java-pkg-binjar_src_unpack
+# @DESCRIPTION:
+# Copy the binary jar into the expected place of java-pkg-simple.  Do
+# not extract files from archive.
+java-pkg-maven_src_unpack() {
+   for file in ${A}; do
+   case ${file} in
+   ${JAVA_BINJAR_FILENAME}) ;;
+   ${JAVA_SOURCE_FILENAME})
+   mkdir -p "${S}"/${JAVA_SRC_DIR}\
+   || die "Could not create 
${JAVA_SRC_DIR}"
+   unzip -q -o "${DISTDIR}"/${file} -d 
"${S}"/${JAVA_SRC_DIR}\
+   || die "Could not unzip source code" ;;
+   ${JAVA_TEST_SOURCE_FILENAME})
+   mkdir -p "${S}"/${JAVA_TEST_SRC_DIR}\
+   || die "Could not create 
${JAVA_TEST_SRC_DIR}"
+   unzip -q -o "${DISTDIR}"/${file} -d 
"${S}"/${JAVA_TEST_SRC_DIR}\
+   || die "Could not unzip source code for 
testing" ;;
+   esac
+   done
+
+   # the resources (maven resources are bundled inside source file)
+   cp "${S}"/${JAVA_SRC_DIR} "${S}"/${JAVA_RESOURCE_DIRS} -r || die
+   rm "${S}"/${JAVA_RESOURCE_DIRS}/META-INF -r || die
+   find "${S}"/${JAVA_RESOURCE_DIRS} -type f ! -name \*.properties \
+   -exec rm {} \; || die
+}
+

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 3f74241..37d45a4 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -624,7 +624,13 @@ public class MavenEbuilder {
 
 writer.println('"');
 writer.println();
-writer.println("inherit java-pkg-2 java-pkg-simple");
+writer.print("inherit java-pkg-2 java-pkg-simple");
+
+if (config.isFromMavenCentral()) {
+writer.print(" java-pkg-maven");
+}
+
+writer.println("");
 }
 
 /**
@@ -849,11 +855,6 @@ public class MavenEbuilder {
 writer.println(')');
 }
 }
-
-if (config.isFromMavenCentral()) {
-writeMavenUnpack(mavenProject, writer);
-}
-
 }
 
 /**
@@ -865,32 +866,4 @@ public class MavenEbuilder {
 writer.println();
 writer.println("S=\"${WORKDIR}\"");
 }
-
-/**
- * modify src_unpack() if we use Maven distributed source codes.
- *
- * @param writer ebuild writer
- */
-private void writeMavenUnpack(final MavenProject mavenProject,
-final PrintWriter writer) {
-writer.println();
-writer.println("src_unpack() {");
-writer.println("\tmkdir -p \"${S}\"/${JAVA_SRC_DIR}");
-writer.println(
-"\tunzip \"${DISTDIR}\"/${P}-sources.jar" +
-" -d \"${S}\"/${JAVA_SRC_DIR} || die");
-
-/**
- * unzip ${P}-test-sources.jar, uncomment it after the switch
- * --test-source-uri is supported
- if (mavenProject.hasTests()) {
-

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/, ...

2020-07-31 Thread Miroslav Šulc
commit: 3a5c4037419a4bd29bd017305d1b2c5c6f8e2b23
Author: zongyu  gmail  com>
AuthorDate: Mon Jul 27 06:24:49 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Mon Jul 27 06:29:49 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=3a5c4037

replace "\t" with spaces, enable test if --binjar-uri is set

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/Main.java   |  6 ++---
 .../org/gentoo/java/ebuilder/maven/MavenCache.java |  8 +++
 .../gentoo/java/ebuilder/maven/MavenEbuilder.java  | 26 ++
 .../gentoo/java/ebuilder/maven/MavenParser.java| 16 ++---
 .../java/ebuilder/portage/PortageParser.java   | 10 -
 src/main/resources/usage.txt   |  2 +-
 6 files changed, 38 insertions(+), 30 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/Main.java 
b/src/main/java/org/gentoo/java/ebuilder/Main.java
index 6843af7..72e0a04 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Main.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Main.java
@@ -250,9 +250,9 @@ public class Main {
 i++;
 config.setForceMinJavaVersion(new JavaVersion(args[i]));
 break;
-   case "--from-maven-central":
-   config.setFromMavenCentral(true);
-   break;
+case "--from-maven-central":
+config.setFromMavenCentral(true);
+break;
 case "--generate-ebuild":
 case "-g":
 config.setGenerateEbuild(true);

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
index d6345bf..98864f8 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
@@ -69,16 +69,16 @@ public class MavenCache {
 }
 
 final StringBuilder sbDependency = new StringBuilder(50);
-   if (cacheItem.getCategory().compareTo("java-virtuals") != 0) {
+if (cacheItem.getCategory().compareTo("java-virtuals") != 0) {
 sbDependency.append(">=");
-   }
+}
 sbDependency.append(cacheItem.getCategory());
 sbDependency.append('/');
 sbDependency.append(cacheItem.getPkg());
-   if (cacheItem.getCategory().compareTo("java-virtuals") != 0) {
+if (cacheItem.getCategory().compareTo("java-virtuals") != 0) {
 sbDependency.append('-');
 sbDependency.append(stripExtraFromVersion(cacheItem.getVersion()));
-   }
+}
 
 if (cacheItem.getUseFlag() != null) {
 sbDependency.append('[');

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 38a8bf8..3f74241 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -614,7 +614,7 @@ public class MavenEbuilder {
 writer.println();
 writer.print("JAVA_PKG_IUSE=\"doc source");
 
-if (mavenProject.hasTests()) {
+if (mavenProject.hasTests() || config.hasBinjarUri()) {
 writer.print(" test");
 }
 
@@ -796,9 +796,9 @@ public class MavenEbuilder {
 writer.println(')');
 }
 
-   if (config.hasBinjarUri()) {
+if (config.hasBinjarUri()) {
 writer.println("JAVA_BINJAR_FILENAME=\"${P}-bin.jar\"");
-   }
+}
 
 final String testingFramework = 
determineTestingFramework(mavenProject);
 boolean firstTestVar = true;
@@ -875,13 +875,21 @@ public class MavenEbuilder {
 final PrintWriter writer) {
 writer.println();
 writer.println("src_unpack() {");
-writer.println("\tmkdir -p ${S}/${JAVA_SRC_DIR}");
-writer.println("\tunzip ${DISTDIR}/${P}-sources.jar -d 
${S}/${JAVA_SRC_DIR} || die");
+writer.println("\tmkdir -p \"${S}\"/${JAVA_SRC_DIR}");
+writer.println(
+"\tunzip \"${DISTDIR}\"/${P}-sources.jar" +
+" -d \"${S}\"/${JAVA_SRC_DIR} || die");
 
-if (mavenProject.hasTests()) {
-writer.println("\tmkdir -p ${JAVA_TEST_SRC_DIR}");
-writer.println("\tunzip ${DISTDIR}/${P}-test.jar -d 
${S}/${JAVA_TEST_SRC_DIR} || die");
-}
+/**
+ * unzip ${P}-test-sources.jar, uncomment it after the switch
+ * --test-source-uri is supported
+ if (mavenProject.hasTests()) {
+writer.println("\tmkdir -p \"${S}\"/${JAVA_TEST_SRC_DIR}");
+writer.println(
+"\tunzip \"${DISTDIR}\"/${P}-test-sources.jar" +
+" -d \"${S}\"/${JAVA_TEST_SRC_DIR} || die");
+ }
+*/
 
 writer.println("}");
 }


[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-07-24 Thread Miroslav Šulc
commit: 2079ef593386ada75e3afc6750e11a2165896569
Author: zongyu  gmail  com>
AuthorDate: Sun Jul 19 12:12:25 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Jul 19 12:12:25 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=2079ef59

rename source code file to ${P}-sources.[extension]

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index da3a01b..38a8bf8 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -31,7 +31,7 @@ public class MavenEbuilder {
  * Pattern for checking whether download tarball name matches expected 
name.
  */
 private static final Pattern PATTERN_TARBALL_NAME
-= Pattern.compile("^.*/\\$\\{P\\}((?:\\.tar)\\.\\S+|(?:\\.jar))$");
+= 
Pattern.compile("^.*/\\$\\{P\\}-sources.((?:\\.tar)\\.\\S+|(?:\\.jar))$");
 
 /**
  * Generates ebuild from the collected information at the specified path.
@@ -232,7 +232,7 @@ public class MavenEbuilder {
 return srcUri;
 }
 
-return srcUri + " -> " + "${P}" + matcher.group(1);
+return srcUri + " -> " + "${P}-sources" + matcher.group(1);
 }
 
 /**
@@ -876,7 +876,7 @@ public class MavenEbuilder {
 writer.println();
 writer.println("src_unpack() {");
 writer.println("\tmkdir -p ${S}/${JAVA_SRC_DIR}");
-writer.println("\tunzip ${DISTDIR}/${P}.jar -d ${S}/${JAVA_SRC_DIR} || 
die");
+writer.println("\tunzip ${DISTDIR}/${P}-sources.jar -d 
${S}/${JAVA_SRC_DIR} || die");
 
 if (mavenProject.hasTests()) {
 writer.println("\tmkdir -p ${JAVA_TEST_SRC_DIR}");



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-07-24 Thread Miroslav Šulc
commit: 6d3d209a35ee2102d633061b3f0a2d5ad671608f
Author: zongyu  gmail  com>
AuthorDate: Sat Jul 18 07:37:44 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sat Jul 18 14:50:03 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=6d3d209a

format a right string for java-virtuals/*

Signed-off-by: zongyu  gmail.com>

 .../org/gentoo/java/ebuilder/maven/MavenCache.java | 10 ++--
 .../gentoo/java/ebuilder/maven/MavenEbuilder.java  | 54 ++
 2 files changed, 32 insertions(+), 32 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
index 0443dd4..d6345bf 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
@@ -69,12 +69,16 @@ public class MavenCache {
 }
 
 final StringBuilder sbDependency = new StringBuilder(50);
-sbDependency.append(">=");
+   if (cacheItem.getCategory().compareTo("java-virtuals") != 0) {
+sbDependency.append(">=");
+   }
 sbDependency.append(cacheItem.getCategory());
 sbDependency.append('/');
 sbDependency.append(cacheItem.getPkg());
-sbDependency.append('-');
-sbDependency.append(stripExtraFromVersion(cacheItem.getVersion()));
+   if (cacheItem.getCategory().compareTo("java-virtuals") != 0) {
+sbDependency.append('-');
+sbDependency.append(stripExtraFromVersion(cacheItem.getVersion()));
+   }
 
 if (cacheItem.getUseFlag() != null) {
 sbDependency.append('[');

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 08a5f99..da3a01b 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -57,7 +57,7 @@ public class MavenEbuilder {
  */
 final MavenProject mavenProject
 = mavenProjects.get(mavenProjects.size() - 1);
-writeInherit(mavenProject, writer);
+writeInherit(config, mavenProject, writer);
 writePackageInfo(config, mavenProject, writer);
 
 writeDependencies(config, mavenProjects, writer);
@@ -244,16 +244,11 @@ public class MavenEbuilder {
  */
 private String improveBinjarUri(final String binjarUri) {
 
-final Matcher matcher = PATTERN_TARBALL_EXTENSION.matcher(binjarUri);
-
 /**
- * We do not know how to get the extension so assume it will be jar
+ * Binary file should be jars
  */
-if (!matcher.matches()) {
-return binjarUri + " -> " + "${P}-bin.jar";
-}
+return binjarUri + " -> " + "${P}-bin.jar";
 
-return binjarUri + " -> " + "${P}-bin" + matcher.group(1);
 }
 
 /**
@@ -479,15 +474,19 @@ public class MavenEbuilder {
 mavenProjects, config.getForceMinJavaVersion()));
 writer.println(":*");
 
-if (hasCDepend) {
-writer.println("\t${CDEPEND}");
-}
-
 if (config.getDownloadUri() != null && config.getDownloadUri().
 toString().matches("^.*?\\.(jar|zip)$")) {
 writer.println("\tapp-arch/unzip");
 }
 
+if (config.hasBinjarUri() && (hasCDepend || 
!compileDependencies.isEmpty())) {
+writer.println("\t!binary? (");
+}
+
+if (hasCDepend) {
+writer.println("\t${CDEPEND}");
+}
+
 if (!compileDependencies.isEmpty()) {
 compileDependencies.stream().forEach((dependency) -> {
 writer.print('\t');
@@ -495,6 +494,10 @@ public class MavenEbuilder {
 });
 }
 
+if (config.hasBinjarUri() && (hasCDepend || 
!compileDependencies.isEmpty())) {
+writer.println("\t)");
+}
+
 if (!testDependencies.isEmpty()) {
 writer.println("\ttest? (");
 
@@ -528,10 +531,6 @@ public class MavenEbuilder {
 mavenProjects, config.getForceMinJavaVersion()));
 writer.println(":*");
 
-if (config.hasBinjarUri()) {
-writer.println("\t!binary? (");
-}
-
 if (hasCDepend) {
 writer.print("${CDEPEND}");
 }
@@ -544,9 +543,6 @@ public class MavenEbuilder {
 });
 }
 
-if (config.hasBinjarUri()) {
-writer.println("\t)");
-}
 
 
 writer.println('"');
@@ -613,8 +609,8 @@ public class MavenEbuilder {
  *
  * @param writer ebuild writer
  */
-private void writeInherit(final MavenProject mavenProject,
-final PrintWriter writer) {
+private void writeInherit(final Config config,
+final MavenProject mavenProject, final PrintWriter writer) {
 

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/portage/, ...

2020-07-12 Thread Miroslav Šulc
commit: 40ff29ff64cb6cf411682bfeca58817a24bc1e05
Author: zongyu  gmail  com>
AuthorDate: Sat Jul 11 15:02:22 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sat Jul 11 15:02:22 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=40ff29ff

add more command-line switches

--binjar-uri, which specifies uri of the pre-compiled jar

support installing binary maven packge
support future src_test(), which will
compare Gentoo-compiled jars and Maven
Central distributed jars

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/Config.java | 36 
 src/main/java/org/gentoo/java/ebuilder/Main.java   | 13 +-
 .../gentoo/java/ebuilder/maven/MavenEbuilder.java  | 50 --
 .../java/ebuilder/portage/PortageParser.java   |  4 +-
 4 files changed, 97 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/Config.java 
b/src/main/java/org/gentoo/java/ebuilder/Config.java
index 53af30f..27dbc7c 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Config.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Config.java
@@ -21,6 +21,14 @@ public class Config {
  */
 private Path cacheFile = Paths.get(System.getProperty("user.home"),
 ".java-ebuilder/cache");
+/**
+ * URI that goes to pre-compiled Maven Jar.
+ */
+private URI binjarUri;
+/**
+ * whether binjarUri is set.
+ */
+private boolean binjarUriExists;
 /**
  * URI that goes to SRC_URI.
  */
@@ -134,6 +142,34 @@ public class Config {
 this.cacheFile = cacheFile;
 }
 
+/**
+ * Getter for {@link #binjarUri}.
+ *
+ * @return {@link #binjarUri}
+ */
+public URI getBinjarUri() {
+return binjarUri;
+}
+
+/**
+ * Getter for {@link #binjarUriExists}.
+ *
+ * @return {@link #binjarUriExists}
+ */
+public boolean hasBinjarUri() {
+return binjarUriExists;
+}
+
+/**
+ * Setter for {@link #binjarUri}.
+ *
+ * @param binjarUri {@link #binjarUri}
+ */
+public void setBinjarUri(final URI binjarUri) {
+this.binjarUri = binjarUri;
+this.binjarUriExists = true;
+}
+
 /**
  * Getter for {@link #downloadUri}.
  *

diff --git a/src/main/java/org/gentoo/java/ebuilder/Main.java 
b/src/main/java/org/gentoo/java/ebuilder/Main.java
index 0b4eff6..6843af7 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Main.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Main.java
@@ -213,6 +213,17 @@ public class Main {
 final String arg = args[i];
 
 switch (arg) {
+case "--binjar-uri":
+i++;
+
+try {
+config.setBinjarUri(new URI(args[i]));
+} catch (final URISyntaxException ex) {
+config.getErrorWriter().println("ERROR: BINJAR_URI " + 
args[i]
++ " is not valid.");
+}
+
+break;
 case "--download-uri":
 case "-u":
 i++;
@@ -220,7 +231,7 @@ public class Main {
 try {
 config.setDownloadUri(new URI(args[i]));
 } catch (final URISyntaxException ex) {
-config.getErrorWriter().println("ERROR: URI " + args[i]
+config.getErrorWriter().println("ERROR: SRC_URI " + 
args[i]
 + " is not valid.");
 }
 

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 48920e5..08a5f99 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -235,6 +235,27 @@ public class MavenEbuilder {
 return srcUri + " -> " + "${P}" + matcher.group(1);
 }
 
+/**
+ * Rename binjar file to ${P}-bin.ext
+ *
+ * @param binjarUri binjar URI
+ *
+ * @return updated binjar URI
+ */
+private String improveBinjarUri(final String binjarUri) {
+
+final Matcher matcher = PATTERN_TARBALL_EXTENSION.matcher(binjarUri);
+
+/**
+ * We do not know how to get the extension so assume it will be jar
+ */
+if (!matcher.matches()) {
+return binjarUri + " -> " + "${P}-bin.jar";
+}
+
+return binjarUri + " -> " + "${P}-bin" + matcher.group(1);
+}
+
 /**
  * If the tarball name does not match pattern ${P}-test.ext then we will 
update
  * it to store the tarball as ${P}-test.ext.
@@ -507,6 +528,10 @@ public class MavenEbuilder {
 mavenProjects, config.getForceMinJavaVersion()));
 writer.println(":*");
 
+if (config.hasBinjarUri()) {
+

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-07-06 Thread Miroslav Šulc
commit: ddca794355fa2f062a5c6c711e91ec80f18ef936
Author: zongyu  gmail  com>
AuthorDate: Mon Jun 15 01:39:41 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Mon Jul  6 09:48:27 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=ddca7943

run simple_formatter after mvn -f, which enables us to re-format the irregular 
xml file produced by mvn

Signed-off-by: zongyu  gmail.com>

 .../java/org/gentoo/java/ebuilder/maven/MavenCache.java |  4 ++--
 .../org/gentoo/java/ebuilder/maven/MavenParser.java | 17 +
 2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
index 4e8767e..19e40f9 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
@@ -24,7 +24,7 @@ public class MavenCache {
  * items.
  */
 private final Map>> cache
-= new HashMap<>(200);
+= new HashMap<>();
 
 /**
  * Searches for system dependency using maven group id, artifact id and
@@ -151,7 +151,7 @@ public class MavenCache {
 = cache.get(cacheItem.getGroupId());
 
 if (artifactIds == null) {
-artifactIds = new HashMap<>(100);
+artifactIds = new HashMap<>();
 cache.put(cacheItem.getGroupId(), artifactIds);
 }
 

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
index 7c9d162..63ba043 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
@@ -102,6 +102,9 @@ public class MavenParser {
 pomFile.toString(), "help:effective-pom",
 "-Doutput=" + outputPath);
 processBuilder.directory(config.getWorkdir().toFile());
+final ProcessBuilder xmlBuilder = new 
ProcessBuilder("/usr/lib/java-ebuilder/simple_formatter",
+"" + outputPath);
+xmlBuilder.directory(config.getWorkdir().toFile());
 
 final Process process;
 
@@ -119,6 +122,20 @@ public class MavenParser {
 Runtime.getRuntime().exit(1);
 }
 
+final Process xmlProcess;
+try {
+xmlProcess = xmlBuilder.start();
+} catch (final IOException ex) {
+throw new RuntimeException("Failed to format xml", ex);
+}
+try {
+xmlProcess.waitFor(10, TimeUnit.MINUTES);
+} catch (final InterruptedException ex) {
+config.getErrorWriter().println("ERROR: xml formatter run 10 
minutes??");
+Runtime.getRuntime().exit(1);
+}
+
+
 if (process.exitValue() != 0) {
 config.getErrorWriter().println(
 "ERROR: Failed to run mvn command:");



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/portage/

2020-07-06 Thread Miroslav Šulc
commit: eceb93b00b8a1b4c8841f43bf61347fbb613f249
Author: zongyu  gmail  com>
AuthorDate: Mon Jun 29 08:22:46 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Mon Jul  6 09:48:27 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=eceb93b0

enable java-ebuilder to read metadata of a Gentoo package, and get a proper SLOT

Signed-off-by: zongyu  gmail.com>

 .../java/ebuilder/portage/PortageParser.java   | 44 +-
 1 file changed, 43 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
index fd9e2c4..96e0c06 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
@@ -8,6 +8,7 @@ import java.io.OutputStreamWriter;
 import java.nio.charset.Charset;
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.nio.file.StandardOpenOption;
 import java.text.MessageFormat;
 import java.util.ArrayList;
@@ -251,6 +252,8 @@ public class PortageParser {
 final String pkg = ebuild.getParentFile().getName();
 final String version = filename.substring(pkg.length() + 1);
 final Map variables = new HashMap<>(20);
+final Path ebuildMetadata = Paths.get(ebuild.getParent(), "..", "..",
+"metadata", "md5-cache", category, filename).normalize();
 List eclasses = null;
 String slot = "0";
 String useFlag = null;
@@ -328,7 +331,12 @@ public class PortageParser {
 pv = version.substring(0, pos);
 }
 
-slot = processSlot(slot, pv, variables);
+if (Files.exists(ebuildMetadata)) {
+slot = processSlot(slot, ebuildMetadata);
+}
+else {
+slot = processSlot(slot, pv, variables);
+}
 
 if (mavenId != null) {
 mavenId = mavenId.replaceAll("\\$(\\{PN\\}|PN)", pkg).
@@ -388,6 +396,40 @@ public class PortageParser {
 }
 }
 
+/**
+ * Processes various instructions in SLOT string.
+ *
+ * @param slot   SLOT string
+ * @param ebuildMetadata path to the metadata of the Gentoo package
+ *
+ * @return processed SLOT string
+ */
+private String processSlot(final String slot,
+final Path ebuildMetadata) {
+//final metadata = new File(ebuildMetadata.toString());
+   String result = slot;
+try (final BufferedReader reader = new BufferedReader(
+new InputStreamReader(Files.newInputStream(ebuildMetadata,
+StandardOpenOption.READ {
+String line = reader.readLine();
+while (line != null) {
+line = line.trim();
+
+if (!line.isEmpty()) {
+if (line.startsWith("SLOT=")) {
+result = line.substring("SLOT=".length()).replace(
+"\"", "").replaceAll("/.*", "");
+}
+
+line = reader.readLine();
+}
+}
+} catch (final IOException ex) {
+throw new RuntimeException("Failed to read ebuild", ex);
+}
+   return result;
+}
+
 /**
  * Processes various instructions in SLOT string.
  *



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-07-06 Thread Miroslav Šulc
commit: 22dd78f39f031a7c5a410ffacabae75e1ff04f91
Author: zongyu  gmail  com>
AuthorDate: Thu Jun 18 07:10:50 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Mon Jul  6 09:48:27 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=22dd78f3

compare maven version and required maven version correctly

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
index 19e40f9..45ff1d9 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
@@ -57,7 +57,7 @@ public class MavenCache {
 
 for (final CacheItem curCacheItem : versions) {
 if (curCacheItem.getParsedMavenVersion().compareTo(mavenVersion)
-<= 0) {
+>= 0) {
 cacheItem = curCacheItem;
 
 break;
@@ -65,7 +65,7 @@ public class MavenCache {
 }
 
 if (cacheItem == null) {
-cacheItem = versions.get(versions.size() - 1);
+return "!!!suitble-avenVersion-not-found!!!";
 }
 
 final StringBuilder sbDependency = new StringBuilder(50);



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-07-06 Thread Miroslav Šulc
commit: 78af8f695010209d0aa09acace7532eecd305020
Author: zongyu  gmail  com>
AuthorDate: Mon Jun 15 01:44:16 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Mon Jul  6 09:48:27 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=78af8f69

prevent java-ebuilder from writing "JAVA_SRC_DIR"

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 4becd69..f17f860 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -418,7 +418,7 @@ public class MavenEbuilder {
 });
 }
 
-writer.print("\nDEPEND=\"\n\t=virtual/jdk-");
+writer.print("\nDEPEND=\"\n\t>=virtual/jdk-");
 writer.print(getMinSourceVersion(
 mavenProjects, config.getForceMinJavaVersion()));
 writer.println(":*");
@@ -702,10 +702,12 @@ public class MavenEbuilder {
 writer.println('"');
 }
 
+/*
 writer.print("JAVA_SRC_DIR=\"");
 writer.print(replaceWithVars(config.getWorkdir().relativize(
 mavenProject.getSourceDirectory()).toString(), config));
 writer.println('"');
+   */
 
 if (mavenProject.getMainClass() != null) {
 writer.print("JAVA_MAIN_CLASS=\"");



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/portage/

2020-07-06 Thread Miroslav Šulc
commit: 8dbb7efca5167ec4dd00da315582af83cae445b8
Author: zongyu  gmail  com>
AuthorDate: Mon Jun 15 01:45:56 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Mon Jul  6 09:48:27 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=8dbb7efc

modify PATTERN_VERSION to match things like "r4"

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java
index 26b06b9..71da8a6 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java
@@ -14,7 +14,7 @@ public class MavenVersion implements Comparable 
{
  * Pattern for parsing maven version number.
  */
 private static final Pattern PATTERN_VERSION = Pattern.compile(
-
"^v?(\\d+)(?:\\.(\\d+))?(?:(?:\\.|b|beta)(\\d+))?(?:[\\.-](.*))?$");
+
"^[vr]?(\\d+)(?:\\.(\\d+))?(?:(?:\\.|b|beta)(\\d+))?(?:[\\.-]?(.*))?$");
 /**
  * Pattern for parsing maven version range.
  */



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/, ...

2020-07-06 Thread Miroslav Šulc
commit: 3c816ce40c84791ac55f4bbe037e2da366e3e1e5
Author: zongyu  gmail  com>
AuthorDate: Wed Jul  1 14:07:24 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Mon Jul  6 09:48:27 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=3c816ce4

initial support for Maven Central Distributed Source jars

new CLI switch:
--from-maven-central

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/Config.java | 22 
 src/main/java/org/gentoo/java/ebuilder/Main.java   |  3 +
 .../gentoo/java/ebuilder/maven/MavenEbuilder.java  | 64 --
 3 files changed, 85 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/Config.java 
b/src/main/java/org/gentoo/java/ebuilder/Config.java
index c53e7a9..53af30f 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Config.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Config.java
@@ -54,6 +54,10 @@ public class Config {
  * this one.
  */
 private JavaVersion forceMinJavaVersion;
+/**
+ * Whethe the source code is distributed by Maven Central
+ */
+private boolean fromMavenCentral;
 /**
  * Whether ebuild should be generated.
  */
@@ -373,6 +377,24 @@ public class Config {
 this.dumpProjects = dumpProjects;
 }
 
+/**
+ * Getter for {@link #fromMavenCentral}.
+ *
+ * @return {@link #fromMavenCentral}
+ */
+public boolean isFromMavenCentral() {
+return fromMavenCentral;
+}
+
+/**
+ * Setter for {@link #fromMavenCentral}.
+ *
+ * @param fromMavenCentral {@link #fromMavenCentral}
+ */
+public void setFromMavenCentral(final boolean fromMavenCentral) {
+this.fromMavenCentral = fromMavenCentral;
+}
+
 /**
  * Getter for {@link #generateEbuild}.
  *

diff --git a/src/main/java/org/gentoo/java/ebuilder/Main.java 
b/src/main/java/org/gentoo/java/ebuilder/Main.java
index fa4a85e..0b4eff6 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Main.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Main.java
@@ -239,6 +239,9 @@ public class Main {
 i++;
 config.setForceMinJavaVersion(new JavaVersion(args[i]));
 break;
+   case "--from-maven-central":
+   config.setFromMavenCentral(true);
+   break;
 case "--generate-ebuild":
 case "-g":
 config.setGenerateEbuild(true);

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index f17f860..0387120 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -26,12 +26,12 @@ public class MavenEbuilder {
  * Pattern for retrieval of tarball extension.
  */
 private static final Pattern PATTERN_TARBALL_EXTENSION = Pattern.compile(
-"^.*((?:\\.tar)\\.\\S+)$");
+"^.*((?:\\.tar)\\.\\S+|(?:\\.jar))$");
 /**
  * Pattern for checking whether download tarball name matches expected 
name.
  */
 private static final Pattern PATTERN_TARBALL_NAME
-= Pattern.compile("^.*/\\$\\{P\\}(?:\\.tar)\\.\\S+$");
+= Pattern.compile("^.*/\\$\\{P\\}((?:\\.tar)\\.\\S+|(?:\\.jar))$");
 
 /**
  * Generates ebuild from the collected information at the specified path.
@@ -235,6 +235,41 @@ public class MavenEbuilder {
 return srcUri + " -> " + "${P}" + matcher.group(1);
 }
 
+/**
+ * If the tarball name does not match pattern ${P}-test.ext then we will 
update
+ * it to store the tarball as ${P}-test.ext.
+ *
+ * @param TestSrcUri source test URI
+ *
+ * @return either original source test URI or updated source test URI
+private String improveTestSrcUri(final String TestSrcUri) {
+if (PATTERN_TEST_TARBALL_NAME.matcher(TestSrcUri).matches()) {
+return TestSrcUri;
+}
+
+final Matcher matcher = PATTERN_TARBALL_EXTENSION.matcher(TestSrcUri);
+
+/**
+ * We do not know how to get the extension so we will leave the tarball
+ * name as it is.
+/
+if (!matcher.matches()) {
+return TestSrcUri;
+}
+
+return TestSrcUri + " -> " + "${P}-test" + matcher.group(1);
+}
+ */
+
+/**
+ * Merges maven project system dependencies of specified type and removed
+ * duplicates.
+ *
+ * @param mavenProjects list of maven projects
+ * @param type  type of dependencies ("common", "compile", 
"runtime"
+ *  and "test")
+ *
+ * @return list of merged dependencies
 /**
  * Merges maven project system dependencies of specified type and removed
  * duplicates.
@@ -702,12 +737,10 @@ public class MavenEbuilder {

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-07-06 Thread Miroslav Šulc
commit: 55d4da9bfad9e4773edc1aded22bb154571e9e56
Author: zongyu  gmail  com>
AuthorDate: Mon Jul  6 04:19:49 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Mon Jul  6 09:48:27 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=55d4da9b

fix some typos

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java| 2 +-
 src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
index 45ff1d9..0443dd4 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
@@ -65,7 +65,7 @@ public class MavenCache {
 }
 
 if (cacheItem == null) {
-return "!!!suitble-avenVersion-not-found!!!";
+return "!!!suitble-mavenVersion-not-found!!!";
 }
 
 final StringBuilder sbDependency = new StringBuilder(50);

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 0387120..48920e5 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -838,10 +838,10 @@ public class MavenEbuilder {
 writer.println();
 writer.println("src_unpack() {");
 writer.println("\tmkdir -p ${S}/${JAVA_SRC_DIR}");
-writer.println("\tunzip ${DISTDIR}/${P}.jar -d ${S}/${JAVA_SRC_DIR}");
+writer.println("\tunzip ${DISTDIR}/${P}.jar -d ${S}/${JAVA_SRC_DIR} || 
die");
 if (mavenProject.hasTests()) {
 writer.println("\tmkdir -p ${JAVA_TEST_SRC_DIR}");
-writer.println("\tunzip ${DISTDIR}/${P}-test.jar -d 
${S}/${JAVA_TEST_SRC_DIR}");
+writer.println("\tunzip ${DISTDIR}/${P}-test.jar -d 
${S}/${JAVA_TEST_SRC_DIR} || die");
 }
 writer.println("}");
 }



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/portage/

2020-07-06 Thread Miroslav Šulc
commit: c3771a74b781e7ebc97065e8201fd3a8e45a43d1
Author: zongyu  gmail  com>
AuthorDate: Thu Jun 18 07:25:44 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Mon Jul  6 09:48:27 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=c3771a74

fix bugs of MAVEN_PROVIDE

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
index a222956..fd9e2c4 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
@@ -358,9 +358,9 @@ public class PortageParser {
 cacheItems.add(new CacheItem(category, pkg, version, slot, useFlag,
 groupId, artifactId, mavenVersion, eclasses));
 
-   if (mavenP != null) {
+   if (mavenProvide != null) {
 for (String providedId: mavenProvide) {
-parts = mavenProvide.split(":")
+final String[] parts = providedId.split(":");
 cacheItems.add(new CacheItem(category, pkg, version, slot, 
useFlag,
 parts[0], parts[1], parts[2], eclasses));
 }



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/portage/

2020-07-06 Thread Miroslav Šulc
commit: 21791ad72a6db7e9f809df55a74b52746dad801a
Author: zongyu  gmail  com>
AuthorDate: Mon Jun 15 01:37:30 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Mon Jul  6 09:48:27 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=21791ad7

modify PATTERN_VERSION_RANGE to match things like "[3.0, )"

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java
index 1de54e1..26b06b9 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java
@@ -19,7 +19,7 @@ public class MavenVersion implements Comparable 
{
  * Pattern for parsing maven version range.
  */
 private static final Pattern PATTERN_VERSION_RANGE
-= Pattern.compile("\\[.*, ?(.*?)\\]");
+= Pattern.compile("[\\[\\(](.*), ?(.*?)[\\]\\)]");
 /**
  * Incremental version number.
  */



[gentoo-commits] proj/java-ebuilder:master commit in: scripts/

2020-07-06 Thread Miroslav Šulc
commit: c64e847510fe9f6f3bcd10a6bc4525505d20e9a1
Author: zongyu  gmail  com>
AuthorDate: Mon Jun 15 01:35:23 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Mon Jul  6 09:48:25 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=c64e8475

replace SRC_URI in tree.sh with the new domain of maven-central

Signed-off-by: zongyu  gmail.com>

 scripts/tree.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/tree.sh b/scripts/tree.sh
index c44c127..6bb7cc5 100755
--- a/scripts/tree.sh
+++ b/scripts/tree.sh
@@ -72,7 +72,7 @@ gebd() {
 PA=${PA//_/-}
 
 local M=${MA}-${MV}
-local 
SRC_URI="http://central.maven.org/maven2/${WORKDIR}/${MV}/${M}-sources.jar;
+local 
SRC_URI="https://repo.maven.apache.org/maven2/${WORKDIR}/${MV}/${M}-sources.jar;
 
 if [[ ! -f "${POMDIR}"/${M}.pom ]]; then
 pushd "${POMDIR}" > /dev/null



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/portage/

2020-07-06 Thread Miroslav Šulc
commit: a1b98fecda5e9d9c832b73305fb47edc604dd06d
Author: zongyu  gmail  com>
AuthorDate: Fri Jun 19 05:37:34 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Mon Jul  6 09:48:27 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=a1b98fec

MavenVersion.class enhancement:

make MavenVersion.class able to compare incremental version
make it convert qualifier to lowercase to avoid the situation when
  maintainer mixes uppercase and lowercase

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java
index 71da8a6..42cd9cd 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java
@@ -70,7 +70,7 @@ public class MavenVersion implements Comparable 
{
 ? 0 : Integer.parseInt(matcher.group(2), 10);
 incrementalVersion = matcher.group(3) == null
 ? 0 : Integer.parseInt(matcher.group(3), 10);
-qualifier = matcher.group(4) == null ? "" : matcher.group(4);
+qualifier = matcher.group(4) == null ? "" : 
matcher.group(4).toLowerCase();
 }
 
 @Override
@@ -81,6 +81,8 @@ public class MavenVersion implements Comparable 
{
 return 
Integer.valueOf(majorVersion).compareTo(o.getMajorVersion());
 } else if (minorVersion != o.getMinorVersion()) {
 return 
Integer.valueOf(minorVersion).compareTo(o.getMinorVersion());
+} else if (incrementalVersion != o.getIncrementalVersion()) {
+return 
Integer.valueOf(incrementalVersion).compareTo(o.getIncrementalVersion());
 } else {
 return qualifier.compareTo(o.getQualifier());
 }



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/portage/

2020-07-06 Thread Miroslav Šulc
commit: 59131006cb675af7b176225af7a670e2803649d8
Author: zongyu  gmail  com>
AuthorDate: Thu Jun 18 07:11:21 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Mon Jul  6 09:48:27 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=59131006

initial code to support MAVEN_PROVIDE

Signed-off-by: zongyu  gmail.com>

 .../java/org/gentoo/java/ebuilder/portage/PortageParser.java  | 11 +++
 1 file changed, 11 insertions(+)

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
index 9da0fb7..a222956 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
@@ -258,6 +258,7 @@ public class PortageParser {
 String groupId = null;
 String artifactId = null;
 String mavenVersion = null;
+   String[] mavenProvide = null;
 
 try (final BufferedReader reader = new BufferedReader(
 new InputStreamReader(Files.newInputStream(ebuild.toPath(),
@@ -298,6 +299,9 @@ public class PortageParser {
 } else if (line.startsWith("MAVEN_ID=")) {
 mavenId = line.substring("MAVEN_ID=".length()).
 replace("\"", "");
+} else if (line.startsWith("MAVEN_PROVIDE=")) {
+mavenProvide = 
line.substring("MAVEN_PROVIDE=".length()).
+   replace("\"", "").split(" ");
 }
 }
 
@@ -354,6 +358,13 @@ public class PortageParser {
 cacheItems.add(new CacheItem(category, pkg, version, slot, useFlag,
 groupId, artifactId, mavenVersion, eclasses));
 
+   if (mavenP != null) {
+for (String providedId: mavenProvide) {
+parts = mavenProvide.split(":")
+cacheItems.add(new CacheItem(category, pkg, version, slot, 
useFlag,
+parts[0], parts[1], parts[2], eclasses));
+}
+}
 countEclasses(eclasses);
 }
 



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2020-07-06 Thread Miroslav Šulc
commit: 446eb983de84a4240b387bfd6c080a3d90281363
Author: zongyu  gmail  com>
AuthorDate: Mon Jun 22 07:18:19 2020 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Mon Jul  6 09:48:27 2020 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=446eb983

jdk-8 -> jdk-1.8

Signed-off-by: zongyu  gmail.com>

 src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java | 9 +++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java
index 7402cd2..b1918b0 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java
@@ -32,8 +32,6 @@ public class JavaVersion {
  * @param versionString version string
  */
 public JavaVersion(final String versionString) {
-this.versionString = versionString;
-
 final Matcher matcher = PATTERN_VERSION.matcher(versionString);
 
 if (!matcher.matches()) {
@@ -42,6 +40,13 @@ public class JavaVersion {
 }
 
 versionNumber = Integer.parseInt(matcher.group(1), 10);
+if (versionNumber <= 8) {
+this.versionString = "1." + Integer.toString(versionNumber);
+}
+else {
+this.versionString = versionString;
+}
+
 }
 
 /**



[gentoo-commits] proj/java-ebuilder:master commit in: /

2019-11-27 Thread Miroslav Šulc
commit: c3b197f0e69c06f58f982f8d8dd16c88e2d5d518
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Wed Nov 27 09:47:25 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Nov 27 09:49:27 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=c3b197f0

release 0.4.1

Signed-off-by: Miroslav Šulc  gentoo.org>

 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 1922b7d..97a38d1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
 4.0.0
 org.gentoo
 java-ebuilder
-0.4.1-SNAPSHOT
+0.4.1
 jar
 Gentoo Java ebuild Builder
 Java team tool for semi-automatic creation of ebuilds from 
pom.xml.



[gentoo-commits] proj/java-ebuilder:master commit in: /

2019-11-27 Thread Miroslav Šulc
commit: ed3a286a00c25081979245b079e7e4a47ced4d68
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Wed Nov 27 09:42:59 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Nov 27 09:49:14 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=ed3a286a

updated maven plugin version

Signed-off-by: Miroslav Šulc  gentoo.org>

 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index f9e3100..1922b7d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
 
 org.apache.maven.plugins
 maven-jar-plugin
-3.1.2
+3.2.0
 
 
 



[gentoo-commits] proj/java-ebuilder:master commit in: /

2019-11-27 Thread Miroslav Šulc
commit: 3b9f92b5bb301d5ddf79f64c56049dddb2bf37ef
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Wed Nov 27 09:42:41 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Nov 27 09:48:46 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=3b9f92b5

version updated

Signed-off-by: Miroslav Šulc  gentoo.org>

 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 23df7aa..f9e3100 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
 4.0.0
 org.gentoo
 java-ebuilder
-0.4.0
+0.4.1-SNAPSHOT
 jar
 Gentoo Java ebuild Builder
 Java team tool for semi-automatic creation of ebuilds from 
pom.xml.



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-27 Thread Miroslav Šulc
commit: 46bbaf55e2d6924a324fbff3dc0755e4ad8280eb
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Wed Nov 27 09:44:05 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Nov 27 09:49:19 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=46bbaf55

fixing download tarball name

Signed-off-by: Miroslav Šulc  gentoo.org>

 .../gentoo/java/ebuilder/maven/MavenEbuilder.java  | 42 --
 1 file changed, 40 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 5ddfd9b..c9ec5b9 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -7,6 +7,8 @@ import java.nio.file.Path;
 import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import org.gentoo.java.ebuilder.Config;
 
 /**
@@ -20,6 +22,16 @@ public class MavenEbuilder {
  * EAPI version.
  */
 private static final String EAPI = "7";
+/**
+ * Pattern for retrieval of tarball extension.
+ */
+private static final Pattern PATTERN_TARBALL_EXTENSION = Pattern.compile(
+"^.*((?:\\.tar)\\.\\S+)$");
+/**
+ * Pattern for checking whether download tarball name matches expected 
name.
+ */
+private static final Pattern PATTERN_TARBALL_NAME
+= Pattern.compile("^.*/\\$\\{P\\}(?:\\.tar)\\.\\S+$");
 
 /**
  * Generates ebuild from the collected information at the specified path.
@@ -194,6 +206,32 @@ public class MavenEbuilder {
 return result;
 }
 
+/**
+ * If the tarball name does not match pattern ${P}.ext then we will update
+ * it to store the tarball as ${P}.ext.
+ *
+ * @param srcUri source URI
+ *
+ * @return either original source URI or updated source URI
+ */
+private String improveSrcUri(final String srcUri) {
+if (PATTERN_TARBALL_NAME.matcher(srcUri).matches()) {
+return srcUri;
+}
+
+final Matcher matcher = PATTERN_TARBALL_EXTENSION.matcher(srcUri);
+
+/**
+ * We do not know how to get the extension so we will leave the tarball
+ * name as it is.
+ */
+if (!matcher.matches()) {
+return srcUri;
+}
+
+return srcUri + " -> " + "${P}" + matcher.group(1);
+}
+
 /**
  * Merges maven project system dependencies of specified type and removed
  * duplicates.
@@ -578,8 +616,8 @@ public class MavenEbuilder {
 writer.println('"');
 
 writer.print("SRC_URI=\"");
-writer.print(
-replaceWithVars(config.getDownloadUri().toString(), config));
+writer.print(improveSrcUri(
+replaceWithVars(config.getDownloadUri().toString(), config)));
 writer.println('"');
 
 writer.print("LICENSE=\"");



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-27 Thread Miroslav Šulc
commit: ca925dfbe04523d44329cd4f9233f763bf8974da
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Wed Nov 27 09:46:30 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Nov 27 09:49:25 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=ca925dfb

reformatted

Signed-off-by: Miroslav Šulc  gentoo.org>

 .../gentoo/java/ebuilder/maven/MavenEbuilder.java  | 49 --
 1 file changed, 26 insertions(+), 23 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index c9ec5b9..4becd69 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -88,18 +88,21 @@ public class MavenEbuilder {
 sbCP.append(',');
 }
 
-   String[] parts = dependency.getSystemDependency().
-   replaceAll(".*/", "").
-   replaceAll("\\[.*\\]", "").
-   split(":");
-   String PN = parts[0].replaceAll("-r\\d+$", "");
-   if (parts.length == 2) {
-   PN = PN.substring(0, PN.lastIndexOf('-'));
-   if (!parts[1].equals("0")) {
-   PN += "-" + parts[1];
-   }
-   }
-sbCP.append(PN);
+final String[] parts = dependency.getSystemDependency().
+replaceAll(".*/", "").
+replaceAll("\\[.*\\]", "").
+split(":");
+String pn = parts[0].replaceAll("-r\\d+$", "");
+
+if (parts.length == 2) {
+pn = pn.substring(0, pn.lastIndexOf('-'));
+
+if (!parts[1].equals("0")) {
+pn += "-" + parts[1];
+}
+}
+
+sbCP.append(pn);
 });
 
 return sbCP.toString();
@@ -155,7 +158,7 @@ public class MavenEbuilder {
 /**
  * Retrieves minimum source version from the maven projects.
  *
- * @param mavenProjects list of maven projects
+ * @param mavenProjects   list of maven projects
  * @param forceMinVersion optional minimum version to force
  *
  * @return minimum source version
@@ -182,7 +185,7 @@ public class MavenEbuilder {
 /**
  * Retrieves minimum target version from the maven projects.
  *
- * @param mavenProjects list of maven projects
+ * @param mavenProjects   list of maven projects
  * @param forceMinVersion optional minimum version to force
  *
  * @return minimum target version
@@ -371,7 +374,7 @@ public class MavenEbuilder {
 
 mavenProjects.stream().
 filter((mavenProject)
--> !mavenProject.getCommonDependencies().isEmpty()).
+-> 
!mavenProject.getCommonDependencies().isEmpty()).
 forEach((mavenProject) -> {
 writeDependenciesInfo(config, writer,
 mavenProject.getPomFile(),
@@ -395,8 +398,8 @@ public class MavenEbuilder {
 writer.println("# Compile dependencies");
 
 mavenProjects.stream().
-filter((mavenProject) ->
-!mavenProject.getCompileDependencies().isEmpty()
+filter((mavenProject)
+-> !mavenProject.getCompileDependencies().isEmpty()
 || !mavenProject.getTestDependencies().isEmpty())
 .forEach((mavenProject) -> {
 if (!mavenProject.getCompileDependencies().isEmpty()) {
@@ -546,7 +549,7 @@ public class MavenEbuilder {
  * @param writer ebuild writer
  */
 private void writeInherit(final MavenProject mavenProject,
-  final PrintWriter writer) {
+final PrintWriter writer) {
 writer.println();
 writer.print("JAVA_PKG_IUSE=\"doc source");
 
@@ -764,11 +767,11 @@ public class MavenEbuilder {
 
 mavenProject.getTestResourceDirectories().
 forEach((directory) -> {
-writer.print("\t\"");
-writer.print(replaceWithVars(config.getWorkdir().
-relativize(directory).toString(), config));
-writer.println('"');
-});
+writer.print("\t\"");
+writer.print(replaceWithVars(config.getWorkdir().
+relativize(directory).toString(), config));
+writer.println('"');
+});
 
 writer.println(')');
  

[gentoo-commits] proj/java-ebuilder:master commit in: /

2019-11-03 Thread Miroslav Šulc
commit: 4b2a4637ab026982ca541b12d33e646ec5a2eded
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sun Nov  3 20:52:51 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Nov  3 20:53:01 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=4b2a4637

release 0.4.0

Signed-off-by: Miroslav Šulc  gentoo.org>

 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 0f7729f..23df7aa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
 4.0.0
 org.gentoo
 java-ebuilder
-0.4.0-SNAPSHOT
+0.4.0
 jar
 Gentoo Java ebuild Builder
 Java team tool for semi-automatic creation of ebuilds from 
pom.xml.



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-03 Thread Miroslav Šulc
commit: 1d76ee8e7d73653f56e228fb3cc30742bfa0abd4
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sun Nov  3 15:14:27 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Nov  3 15:14:27 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=1d76ee8e

fixed test dependencies and reformatted dependencies

Signed-off-by: Miroslav Šulc  gentoo.org>

 .../gentoo/java/ebuilder/maven/MavenEbuilder.java  | 132 ++---
 1 file changed, 62 insertions(+), 70 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 61f97f2..5ddfd9b 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -324,125 +324,117 @@ public class MavenEbuilder {
 mavenProjects, "compile");
 final List runtimeDependencies = mergeSystemDependencies(
 mavenProjects, "runtime");
-boolean hasCDepend = !commonDependencies.isEmpty()
-|| !testDependencies.isEmpty();
+final boolean hasCDepend = !commonDependencies.isEmpty();
+
+writer.println();
 
 if (hasCDepend) {
-writer.println();
 writer.println("# Common dependencies");
 
-for (final MavenProject mavenProject : mavenProjects) {
-if (mavenProject.getCommonDependencies().isEmpty()
-&& mavenProject.getTestDependencies().isEmpty()) {
-continue;
-}
-
-if (!mavenProject.getCommonDependencies().isEmpty()) {
-writeDependenciesInfo(config, writer,
-mavenProject.getPomFile(),
-mavenProject.getCommonDependencies(), null);
-}
-
-if (mavenProject.getTargetVersion() != null) {
-writeDependenciesInfo(config, writer,
-mavenProject.getPomFile(),
-mavenProject.getTestDependencies(), "test?");
-}
-
-hasCDepend = true;
-}
+mavenProjects.stream().
+filter((mavenProject)
+-> !mavenProject.getCommonDependencies().isEmpty()).
+forEach((mavenProject) -> {
+writeDependenciesInfo(config, writer,
+mavenProject.getPomFile(),
+mavenProject.getCommonDependencies(), null);
+});
 
 writer.println("\nCDEPEND=\"");
 
-if (!commonDependencies.isEmpty()) {
-commonDependencies.stream().forEach((dependency) -> {
-writer.print('\t');
-writer.println(dependency);
-});
-}
-
-if (!testDependencies.isEmpty()) {
-writer.println("\ttest? (");
-
-testDependencies.stream().forEach((dependency) -> {
-writer.print("\t\t");
-writer.println(dependency);
-});
-
-writer.println("\t)");
-}
+commonDependencies.stream().forEach((dependency) -> {
+writer.print('\t');
+writer.println(dependency);
+});
 
 writer.println('"');
 }
 
-if (!compileDependencies.isEmpty()) {
+writer.println();
+
+if (!compileDependencies.isEmpty()
+|| !testDependencies.isEmpty()) {
 writer.println("# Compile dependencies");
 
-mavenProjects.stream().filter((mavenProject) ->
-(!mavenProject.getCompileDependencies().isEmpty()))
+mavenProjects.stream().
+filter((mavenProject) ->
+!mavenProject.getCompileDependencies().isEmpty()
+|| !mavenProject.getTestDependencies().isEmpty())
 .forEach((mavenProject) -> {
-writeDependenciesInfo(config, writer,
-mavenProject.getPomFile(),
-mavenProject.getCompileDependencies(), null);
+if (!mavenProject.getCompileDependencies().isEmpty()) {
+writeDependenciesInfo(config, writer,
+mavenProject.getPomFile(),
+mavenProject.getCompileDependencies(),
+null);
+}
+
+if (!mavenProject.getTestDependencies().isEmpty()) {
+writeDependenciesInfo(config, writer,
+mavenProject.getPomFile(),
+

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/portage/

2019-11-03 Thread Miroslav Šulc
commit: 9f694b0493877d9bf6f86b8be26f9e98a3d80eb4
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sun Nov  3 13:54:04 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Nov  3 13:54:04 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=9f694b04

changed handling of java eclasses

1) now parsing all java eclasses
2) all java eclasses are written to the cache file
3) usage of each java eclass is written to the output when regreshing cache

Signed-off-by: Miroslav Šulc  gentoo.org>

 .../gentoo/java/ebuilder/portage/CacheItem.java|  30 ++--
 .../java/ebuilder/portage/PortageParser.java   | 154 +
 2 files changed, 86 insertions(+), 98 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/CacheItem.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/CacheItem.java
index feff43d..e48177f 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/CacheItem.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/CacheItem.java
@@ -1,5 +1,10 @@
 package org.gentoo.java.ebuilder.portage;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
 /**
  * Container for cache item information.
  *
@@ -20,9 +25,9 @@ public class CacheItem {
  */
 private final String groupId;
 /**
- * Main Java eclass inherited.
+ * List of inherited java eclasses, in the order as they are inherited.
  */
-private final String javaEclass;
+private final List javaEclasses;
 /**
  * Maven version (of package jar).
  */
@@ -60,12 +65,12 @@ public class CacheItem {
  * @param groupId  {@link #groupId}
  * @param artifactId   {@link #artifactId}
  * @param mavenVersion {@link #mavenVersion}
- * @param javaEclass   {@link #javaEclass}
+ * @param javaEclasses {@link #javaEclasses}
  */
 public CacheItem(final String category, final String pkg,
 final String version, final String slot, final String useFlag,
 final String groupId, final String artifactId,
-final String mavenVersion, final String javaEclass) {
+final String mavenVersion, final List javaEclasses) {
 this.category = category;
 this.pkg = pkg;
 this.version = version;
@@ -74,7 +79,8 @@ public class CacheItem {
 this.groupId = groupId;
 this.artifactId = artifactId;
 this.mavenVersion = mavenVersion;
-this.javaEclass = javaEclass;
+this.javaEclasses
+= Collections.unmodifiableList(new ArrayList<>(javaEclasses));
 
 parsedMavenVersion = mavenVersion == null
 ? null : new MavenVersion(mavenVersion);
@@ -110,10 +116,10 @@ public class CacheItem {
 mavenVersion = null;
 }
 
-if (parts.length > 8) {
-javaEclass = parts[8].isEmpty() ? null : parts[8];
+if (parts.length > 8 && !parts[0].isEmpty()) {
+javaEclasses = Arrays.asList(parts[8].split(","));
 } else {
-javaEclass = null;
+javaEclasses = null;
 }
 } catch (final ArrayIndexOutOfBoundsException ex) {
 throw new RuntimeException("Failed to parse cache line: " + line,
@@ -152,12 +158,12 @@ public class CacheItem {
 }
 
 /**
- * Getter for {@link #javaEclass}.
+ * Getter for {@link #javaEclasses}.
  *
- * @return {@link #javaEclass}
+ * @return {@link #javaEclasses}
  */
-public String getJavaEclass() {
-return javaEclass;
+public List getJavaEclasses() {
+return Collections.unmodifiableList(javaEclasses);
 }
 
 /**

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
index 8d49411..9da0fb7 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
@@ -11,11 +11,14 @@ import java.nio.file.Path;
 import java.nio.file.StandardOpenOption;
 import java.text.MessageFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import java.util.stream.Collectors;
 import org.gentoo.java.ebuilder.Config;
 
 /**
@@ -33,22 +36,10 @@ public class PortageParser {
  * Current ant utilities eclass name.
  */
 private static final String ECLASS_ANT_TASKS = "ant-tasks";
-/**
- * Current java package eclass name.
- */
-private static final String ECLASS_JAVA_PKG = "java-pkg-2";
 /**
  * Current java optional package eclass name.
  */
 private static final String ECLASS_JAVA_PKG_OPT = "java-pkg-opt-2";
-/**
- * Current java simple package 

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-03 Thread Miroslav Šulc
commit: 88779df1d44e081fab5d3602f0b7baf4a6802fbe
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sun Nov  3 12:15:16 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Nov  3 12:15:16 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=88779df1

fixed parsing of java version

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java
index 5aa600d..7402cd2 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java
@@ -15,7 +15,7 @@ public class JavaVersion {
  * Pattern for parsing Java versionNumber.
  */
 private static final Pattern PATTERN_VERSION
-= Pattern.compile("^(?:1\\.)(\\d+)$");
+= Pattern.compile("^(?:1\\.)?(\\d+)$");
 /**
  * Java versionNumber number.
  */



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-03 Thread Miroslav Šulc
commit: 7d91defe12e3ddda4746a1d5e37655536f6e2d32
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sun Nov  3 12:17:29 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Nov  3 12:17:29 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=7d91defe

added slot information to virtual/{jdk,jre} dependencies

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index d6e3f1a..61f97f2 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -399,6 +399,7 @@ public class MavenEbuilder {
 writer.print("\t>=virtual/jdk-");
 writer.print(getMinSourceVersion(
 mavenProjects, config.getForceMinJavaVersion()));
+writer.print(":*");
 
 if (config.getDownloadUri() != null && config.getDownloadUri().
 toString().matches("^.*?\\.(jar|zip)$")) {
@@ -440,6 +441,7 @@ public class MavenEbuilder {
 writer.print("\t>=virtual/jre-");
 writer.print(getMinTargetVersion(
 mavenProjects, config.getForceMinJavaVersion()));
+writer.print(":*");
 
 if (!runtimeDependencies.isEmpty()) {
 runtimeDependencies.stream().forEach((dependency) -> {



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-03 Thread Miroslav Šulc
commit: af344112881d635949535ba6a5fc9e11ad284dc5
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sun Nov  3 11:26:07 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Nov  3 11:26:07 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=af344112

encapsulated java version in new container

Signed-off-by: Miroslav Šulc  gentoo.org>

 .../gentoo/java/ebuilder/maven/JavaVersion.java| 87 ++
 .../gentoo/java/ebuilder/maven/MavenParser.java| 10 ++-
 .../gentoo/java/ebuilder/maven/MavenProject.java   | 12 +--
 3 files changed, 99 insertions(+), 10 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java
new file mode 100644
index 000..5aa600d
--- /dev/null
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java
@@ -0,0 +1,87 @@
+package org.gentoo.java.ebuilder.maven;
+
+import java.text.MessageFormat;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Java versionNumber container.
+ *
+ * @author fordfrog
+ */
+public class JavaVersion {
+
+/**
+ * Pattern for parsing Java versionNumber.
+ */
+private static final Pattern PATTERN_VERSION
+= Pattern.compile("^(?:1\\.)(\\d+)$");
+/**
+ * Java versionNumber number.
+ */
+private final int versionNumber;
+/**
+ * Java version string.
+ */
+private final String versionString;
+
+/**
+ * Creates new instance of JavaVersion. Parses the version string and uses
+ * the main Java version. Terminates if the version is not valid.
+ *
+ * @param versionString version string
+ */
+public JavaVersion(final String versionString) {
+this.versionString = versionString;
+
+final Matcher matcher = PATTERN_VERSION.matcher(versionString);
+
+if (!matcher.matches()) {
+throw new IllegalArgumentException(MessageFormat.format(
+"Java version \"{0}\" is not valid!", versionString));
+}
+
+versionNumber = Integer.parseInt(matcher.group(1), 10);
+}
+
+/**
+ * Compares this JavaVersion to the passed JavaVersion.
+ *
+ * @param javaVersion JavaVersion to compare to.
+ *
+ * @return -1 if this versionNumber is lower, 1 if this versionNumber is
+ * higher and 0 if both are equal
+ */
+public int compareTo(final JavaVersion javaVersion) {
+if (javaVersion.getVersionNumber() > versionNumber) {
+return -1;
+} else if (javaVersion.getVersionNumber() < versionNumber) {
+return 1;
+} else {
+return 0;
+}
+}
+
+/**
+ * Getter for {@link #versionNumber}.
+ *
+ * @return {@link #versionNumber}
+ */
+public int getVersionNumber() {
+return versionNumber;
+}
+
+/**
+ * Getter for {@link #versionString}.
+ *
+ * @return {@link #versionString}
+ */
+public String getVersionString() {
+return versionString;
+}
+
+@Override
+public String toString() {
+return versionString;
+}
+}

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
index 942ee27..7c9d162 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
@@ -208,7 +208,7 @@ public class MavenParser {
 case "source":
 if ("maven-compiler-plugin".equals(artifactId)) {
 mavenProject.setSourceVersion(
-reader.getElementText());
+new JavaVersion(reader.getElementText()));
 } else {
 consumeElement(reader);
 }
@@ -217,7 +217,7 @@ public class MavenParser {
 case "target":
 if ("maven-compiler-plugin".equals(artifactId)) {
 mavenProject.setTargetVersion(
-reader.getElementText());
+new JavaVersion(reader.getElementText()));
 } else {
 consumeElement(reader);
 }
@@ -572,10 +572,12 @@ public class MavenParser {
 if (reader.isStartElement()) {
 switch (reader.getLocalName()) {
 case "maven.compiler.source":
-mavenProject.setSourceVersion(reader.getElementText());
+mavenProject.setSourceVersion(
+new JavaVersion(reader.getElementText()));
 break;
 case "maven.compiler.target":
-

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/

2019-11-03 Thread Miroslav Šulc
commit: 7a0f4c5fcab9a0d3bb7d52d1308af2ed9f7652ad
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sun Nov  3 11:24:11 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Nov  3 11:24:11 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=7a0f4c5f

fixed error message output printer

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/Main.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/Main.java 
b/src/main/java/org/gentoo/java/ebuilder/Main.java
index 84def14..cc9a3c5 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Main.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Main.java
@@ -306,7 +306,7 @@ public class Main {
 config.getEbuildName(), config.getEbuildVersion(),
 config.getEbuildVersionSuffix()));
 } catch (final IllegalArgumentException ex) {
-config.getStdoutWriter().println("Cannot parse ebuild file name");
+config.getErrorWriter().println("Cannot parse ebuild file name");
 
 Runtime.getRuntime().exit(1);
 }



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/, src/main/resources/, ...

2019-11-03 Thread Miroslav Šulc
commit: a7f4247c96b248b86d657137bbb8312884bde5dd
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sun Nov  3 11:26:41 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Nov  3 11:26:41 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=a7f4247c

added support for forcing minimal java version

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/Config.java | 24 ++
 src/main/java/org/gentoo/java/ebuilder/Main.java   |  8 +
 .../gentoo/java/ebuilder/maven/MavenEbuilder.java  | 33 +++
 src/main/resources/usage.txt   | 38 --
 4 files changed, 79 insertions(+), 24 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/Config.java 
b/src/main/java/org/gentoo/java/ebuilder/Config.java
index 3bf8cb8..c53e7a9 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Config.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Config.java
@@ -7,6 +7,7 @@ import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import org.gentoo.java.ebuilder.maven.JavaVersion;
 
 /**
  * Container for command line configuration.
@@ -48,6 +49,11 @@ public class Config {
  * Writer for errors.
  */
 private final PrintWriter errorWriter;
+/**
+ * JDK/JRE version that will be used if version in POM files is lower than
+ * this one.
+ */
+private JavaVersion forceMinJavaVersion;
 /**
  * Whether ebuild should be generated.
  */
@@ -223,6 +229,24 @@ public class Config {
 return errorWriter;
 }
 
+/**
+ * Getter for {@link #forceMinJavaVersion}.
+ *
+ * @return {@link #forceMinJavaVersion}
+ */
+public JavaVersion getForceMinJavaVersion() {
+return forceMinJavaVersion;
+}
+
+/**
+ * Setter for {@link #forceMinJavaVersion}.
+ *
+ * @param forceMinJavaVersion {@link #forceMinJavaVersion}
+ */
+public void setForceMinJavaVersion(final JavaVersion forceMinJavaVersion) {
+this.forceMinJavaVersion = forceMinJavaVersion;
+}
+
 /**
  * Getter for {@link #keywords}.
  *

diff --git a/src/main/java/org/gentoo/java/ebuilder/Main.java 
b/src/main/java/org/gentoo/java/ebuilder/Main.java
index cc9a3c5..fa4a85e 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Main.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Main.java
@@ -11,6 +11,7 @@ import java.nio.file.Paths;
 import java.text.MessageFormat;
 import java.util.List;
 import java.util.Map;
+import org.gentoo.java.ebuilder.maven.JavaVersion;
 import org.gentoo.java.ebuilder.maven.MavenCache;
 import org.gentoo.java.ebuilder.maven.MavenEbuilder;
 import org.gentoo.java.ebuilder.maven.MavenParser;
@@ -132,6 +133,9 @@ public class Main {
 } else if (config.getEbuild() != null) {
 config.getErrorWriter().println(
 "WARNING: Ebuild is used only when generating ebuild.");
+} else if (config.getForceMinJavaVersion() != null) {
+config.getErrorWriter().println("WARNING: Forcing minimum JDK/JRE "
++ "version applies only when generating ebuild.");
 } else if (config.getKeywords() != null) {
 config.getErrorWriter().println("WARNING: Keywords are used only "
 + "when generating ebuild.");
@@ -231,6 +235,10 @@ public class Main {
 config.setEbuild(Paths.get(args[i]).toAbsolutePath().
 normalize());
 break;
+case "--force-min-java-version":
+i++;
+config.setForceMinJavaVersion(new JavaVersion(args[i]));
+break;
 case "--generate-ebuild":
 case "-g":
 config.setGenerateEbuild(true);

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 53708e9..d6e3f1a 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -144,11 +144,14 @@ public class MavenEbuilder {
  * Retrieves minimum source version from the maven projects.
  *
  * @param mavenProjects list of maven projects
+ * @param forceMinVersion optional minimum version to force
  *
  * @return minimum source version
  */
-private String getMinSourceVersion(final List mavenProjects) 
{
-String result = null;
+private JavaVersion getMinSourceVersion(
+final List mavenProjects,
+final JavaVersion forceMinVersion) {
+JavaVersion result = null;
 
 for (final MavenProject mavenProject : mavenProjects) {
 if (result == null || mavenProject.getSourceVersion().compareTo(
@@ -157,6 +160,10 @@ public class MavenEbuilder {

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/

2019-11-03 Thread Miroslav Šulc
commit: c503fbc2aecbee2926341cdd8c9bed5a0df62309
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sun Nov  3 11:23:41 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Nov  3 11:23:41 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=c503fbc2

reformatted

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/Main.java | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/Main.java 
b/src/main/java/org/gentoo/java/ebuilder/Main.java
index 871ac2a..84def14 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Main.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Main.java
@@ -131,8 +131,7 @@ public class Main {
 + "be used only when generating ebuild.");
 } else if (config.getEbuild() != null) {
 config.getErrorWriter().println(
-"WARNING: Ebuild is used only when "
-+ "generating ebuild.");
+"WARNING: Ebuild is used only when generating ebuild.");
 } else if (config.getKeywords() != null) {
 config.getErrorWriter().println("WARNING: Keywords are used only "
 + "when generating ebuild.");



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-03 Thread Miroslav Šulc
commit: 590141ced5bc7cc8e28f4aae854d5e0f9ad2857e
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sun Nov  3 10:37:40 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Nov  3 10:37:40 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=590141ce

reformatted dependencies output

Signed-off-by: Miroslav Šulc  gentoo.org>

 .../gentoo/java/ebuilder/maven/MavenEbuilder.java  | 74 +++---
 1 file changed, 36 insertions(+), 38 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index b7192d6..53708e9 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -319,41 +319,38 @@ public class MavenEbuilder {
 }
 
 if (!mavenProject.getCommonDependencies().isEmpty()) {
-writeDependenciesInfo(writer, mavenProject.getPomFile(),
+writeDependenciesInfo(config, writer,
+mavenProject.getPomFile(),
 mavenProject.getCommonDependencies(), null);
 }
 
-if (mavenProject.getTargetVersion()!=null) {
-writeDependenciesInfo(writer, mavenProject.getPomFile(),
+if (mavenProject.getTargetVersion() != null) {
+writeDependenciesInfo(config, writer,
+mavenProject.getPomFile(),
 mavenProject.getTestDependencies(), "test?");
 }
 
 hasCDepend = true;
 }
 
-writer.print("CDEPEND=\"");
+writer.println("\nCDEPEND=\"");
 
 if (!commonDependencies.isEmpty()) {
-commonDependencies.stream().
-forEach((dependency) -> {
-writer.println();
-writer.print('\t');
-writer.print(dependency);
-});
+commonDependencies.stream().forEach((dependency) -> {
+writer.print('\t');
+writer.println(dependency);
+});
 }
 
 if (!testDependencies.isEmpty()) {
-writer.println();
 writer.println("\ttest? (");
 
-testDependencies.stream().
-forEach((dependency) -> {
-writer.println();
-writer.print("\t\t");
-writer.print(dependency);
-});
+testDependencies.stream().forEach((dependency) -> {
+writer.print("\t\t");
+writer.println(dependency);
+});
 
-writer.print("\t)");
+writer.println("\t)");
 }
 
 writer.println('"');
@@ -362,10 +359,11 @@ public class MavenEbuilder {
 if (!compileDependencies.isEmpty()) {
 writer.println("# Compile dependencies");
 
-mavenProjects.stream().filter((mavenProject) -> (!mavenProject.
-getCompileDependencies().isEmpty()))
+mavenProjects.stream().filter((mavenProject) ->
+(!mavenProject.getCompileDependencies().isEmpty()))
 .forEach((mavenProject) -> {
-writeDependenciesInfo(writer, 
mavenProject.getPomFile(),
+writeDependenciesInfo(config, writer,
+mavenProject.getPomFile(),
 mavenProject.getCompileDependencies(), null);
 });
 } else {
@@ -389,12 +387,11 @@ public class MavenEbuilder {
 }
 
 if (!compileDependencies.isEmpty()) {
-compileDependencies.stream().
-forEach((dependency) -> {
-writer.println();
-writer.print('\t');
-writer.print(dependency);
-});
+compileDependencies.stream().forEach((dependency) -> {
+writer.println();
+writer.print('\t');
+writer.println(dependency);
+});
 }
 
 writer.println('"');
@@ -405,7 +402,8 @@ public class MavenEbuilder {
 mavenProjects.stream().filter((mavenProject) -> (!mavenProject.
 getRuntimeDependencies().isEmpty()))
 .forEach((mavenProject) -> {
-writeDependenciesInfo(writer, 
mavenProject.getPomFile(),
+writeDependenciesInfo(config, writer,
+mavenProject.getPomFile(),
 mavenProject.getRuntimeDependencies(), null);
  

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-03 Thread Miroslav Šulc
commit: 08c9231f4893571a89387035c4e63e09f08dfa9e
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sun Nov  3 10:14:44 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Nov  3 10:14:44 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=08c9231f

reformatted

Signed-off-by: Miroslav Šulc  gentoo.org>

 .../java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java | 14 +-
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 5953815..b7192d6 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -38,11 +38,15 @@ public class MavenEbuilder {
 writeHeader(writer);
 writeCommand(config, writer);
 writeEAPI(writer);
-MavenProject mp = mavenProjects.get(mavenProjects.size() - 1);
-writeInherit(mp, writer);
-// write the info from the last project as it is probably the one
-// that depends on the rest
-writePackageInfo(config, mp, writer);
+
+/**
+ * Write the info from the last project as it is probably the one
+ * that depends on the rest.
+ */
+final MavenProject mavenProject
+= mavenProjects.get(mavenProjects.size() - 1);
+writeInherit(mavenProject, writer);
+writePackageInfo(config, mavenProject, writer);
 
 writeDependencies(config, mavenProjects, writer);
 writeSourceDir(writer);



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-03 Thread Miroslav Šulc
commit: 7f0292efdc6698bd28dc6137660c6145cd357690
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sun Nov  3 10:11:14 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Nov  3 10:11:14 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=7f0292ef

fixed and reformatted ebuild variables

Signed-off-by: Miroslav Šulc  gentoo.org>

 .../gentoo/java/ebuilder/maven/MavenEbuilder.java  | 96 --
 1 file changed, 52 insertions(+), 44 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 1be72cb..5953815 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -618,6 +618,12 @@ public class MavenEbuilder {
 final MavenProject mavenProject, final PrintWriter writer) {
 writer.println();
 
+if (!"UTF-8".equals(mavenProject.getSourceEncoding())) {
+writer.print("JAVA_ENCODING=\"");
+writer.print(mavenProject.getSourceEncoding());
+writer.println("\"\n");
+}
+
 if (!mavenProject.getCommonDependencies().isEmpty()
 || !mavenProject.getRuntimeDependencies().isEmpty()) {
 final List dependencies
@@ -638,78 +644,80 @@ public class MavenEbuilder {
 writer.println('"');
 }
 
-if (!mavenProject.getTestDependencies().isEmpty()) {
-writer.print("JAVA_GENTOO_TEST_CLASSPATH=\"");
-writer.print(createClassPath(mavenProject.getTestDependencies()));
+writer.print("JAVA_SRC_DIR=\"");
+writer.print(replaceWithVars(config.getWorkdir().relativize(
+mavenProject.getSourceDirectory()).toString(), config));
+writer.println('"');
+
+if (mavenProject.getMainClass() != null) {
+writer.print("JAVA_MAIN_CLASS=\"");
+writer.print(mavenProject.getMainClass());
 writer.println('"');
 }
 
+if (mavenProject.hasResources()) {
+writer.println("JAVA_RESOURCE_DIRS=(");
+
+mavenProject.getResourceDirectories().forEach((directory) -> {
+writer.print("\t\"");
+writer.print(replaceWithVars(
+config.getWorkdir().relativize(directory).toString(),
+config));
+writer.println('"');
+});
+
+writer.println(')');
+}
+
 final String testingFramework = 
determineTestingFramework(mavenProject);
+boolean firstTestVar = true;
 
 if (testingFramework != null) {
+if (firstTestVar) {
+writer.println();
+firstTestVar = false;
+}
+
 writer.print("JAVA_TESTING_FRAMEWORK=\"");
 writer.print(testingFramework);
 writer.println('"');
 }
 
-if (mavenProject.hasResources()) {
-writer.print("JAVA_RESOURCE_DIRS=\"");
-
-boolean first = true;
-
-for (final Path resources : mavenProject.getResourceDirectories()) 
{
-if (first) {
-first = false;
-} else {
-writer.print(':');
-}
-
-writer.print(replaceWithVars(
-config.getWorkdir().relativize(resources).toString(),
-config));
+if (!mavenProject.getTestDependencies().isEmpty()) {
+if (firstTestVar) {
+writer.println();
+firstTestVar = false;
 }
 
+writer.print("JAVA_GENTOO_TEST_CLASSPATH=\"");
+writer.print(createClassPath(mavenProject.getTestDependencies()));
 writer.println('"');
 }
 
 if (mavenProject.hasTests()) {
+if (firstTestVar) {
+writer.println();
+}
+
 writer.print("JAVA_TEST_SRC_DIR=\"");
 writer.print(replaceWithVars(config.getWorkdir().relativize(
 mavenProject.getTestSourceDirectory()).toString(), 
config));
 writer.println('"');
 
 if (mavenProject.hasTestResources()) {
-writer.print("JAVA_TEST_RESOURCE_DIRS=\"");
-
-boolean first = true;
-
-for (final Path resources : mavenProject.
-getTestResourceDirectories()) {
-if (first) {
-first = false;
-} else {
-writer.print(':');
-}
+writer.println("JAVA_TEST_RESOURCE_DIRS=(");
 
+mavenProject.getTestResourceDirectories().
+forEach((directory) -> {
+writer.print("\t\"");
 

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/, ...

2019-11-03 Thread Miroslav Šulc
commit: 19b00d811bf2c5ef67146a8afabed9c7b09e984a
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sun Nov  3 10:12:12 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Nov  3 10:12:12 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=19b00d81

fixed project dump maven version output

Signed-off-by: Miroslav Šulc  gentoo.org>

 .../java/org/gentoo/java/ebuilder/maven/MavenProject.java |  2 +-
 .../org/gentoo/java/ebuilder/portage/MavenVersion.java| 15 +++
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
index c3f45f8..6cead37 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
@@ -185,7 +185,7 @@ public class MavenProject {
 writer.print("  artifactId: ");
 writer.println(dependency.getArtifactId());
 writer.print("  mavenVersion: ");
-writer.println(dependency.getMavenVersion());
+writer.println(dependency.getMavenVersion().getVersion());
 writer.print("  scope: ");
 writer.println(dependency.getScope());
 writer.print("  systemDependency: ");

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java
index 657d3c4..1de54e1 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java
@@ -36,6 +36,10 @@ public class MavenVersion implements 
Comparable {
  * Version qualifier.
  */
 private final String qualifier;
+/**
+ * Original version string.
+ */
+private final String version;
 
 /**
  * Creates new instance of MavenVersion.
@@ -43,6 +47,8 @@ public class MavenVersion implements Comparable 
{
  * @param version version string
  */
 public MavenVersion(final String version) {
+this.version = version;
+
 final Matcher matcherRange = PATTERN_VERSION_RANGE.matcher(version);
 final String useVersion;
 
@@ -115,4 +121,13 @@ public class MavenVersion implements 
Comparable {
 public String getQualifier() {
 return qualifier;
 }
+
+/**
+ * Getter for {@link #version}.
+ *
+ * @return {@link #version}
+ */
+public String getVersion() {
+return version;
+}
 }



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-03 Thread Miroslav Šulc
commit: d5c08b1662e06096f8bd0ce9ee1407250a842119
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sun Nov  3 10:11:48 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sun Nov  3 10:11:48 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=d5c08b16

improved project dump layout

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
index eb379e0..c3f45f8 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
@@ -180,7 +180,7 @@ public class MavenProject {
 
 if (dependencies != null) {
 dependencies.forEach((dependency) -> {
-writer.print("\n  groupId: ");
+writer.print("- groupId: ");
 writer.println(dependency.getGroupId());
 writer.print("  artifactId: ");
 writer.println(dependency.getArtifactId());



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-02 Thread Miroslav Šulc
commit: 2cfc1a85a6306b51d9ce5771f7645cad74206eaf
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sat Nov  2 22:27:15 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sat Nov  2 22:27:15 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=2cfc1a85

switched from IUSE to JAVA_PKG_IUSE

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 2194b80..1be72cb 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -493,7 +493,7 @@ public class MavenEbuilder {
 private void writeInherit(final MavenProject mavenProject,
   final PrintWriter writer) {
 writer.println();
-writer.print("IUSE=\"doc source");
+writer.print("JAVA_PKG_IUSE=\"doc source");
 
 if (mavenProject.hasTests()) {
 writer.print(" test");



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-02 Thread Miroslav Šulc
commit: 9982eb3cbf850fe6985fb29017f2161489cae07a
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sat Nov  2 21:53:49 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sat Nov  2 21:53:49 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=9982eb3c

replacing ebuild name and version with variables

Signed-off-by: Miroslav Šulc  gentoo.org>

 .../gentoo/java/ebuilder/maven/MavenEbuilder.java  | 24 +-
 1 file changed, 19 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index ffb6e66..2194b80 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -226,6 +226,16 @@ public class MavenEbuilder {
 return result;
 }
 
+private String replaceWithVars(final String string, final Config config) {
+final String pString
+= config.getEbuildName() + '-' + config.getEbuildVersion();
+
+return string.
+replace(pString, "${P}").
+replace(config.getEbuildName(), "${PN}").
+replace(config.getEbuildVersion(), "${PV}");
+}
+
 /**
  * Writes command that was used to create skeleton of the ebuild.
  *
@@ -551,7 +561,8 @@ public class MavenEbuilder {
 writer.println('"');
 
 writer.print("SRC_URI=\"");
-writer.print(config.getDownloadUri());
+writer.print(
+replaceWithVars(config.getDownloadUri().toString(), config));
 writer.println('"');
 
 writer.print("LICENSE=\"");
@@ -653,7 +664,9 @@ public class MavenEbuilder {
 writer.print(':');
 }
 
-writer.print(config.getWorkdir().relativize(resources));
+writer.print(replaceWithVars(
+config.getWorkdir().relativize(resources).toString(),
+config));
 }
 
 writer.println('"');
@@ -661,8 +674,8 @@ public class MavenEbuilder {
 
 if (mavenProject.hasTests()) {
 writer.print("JAVA_TEST_SRC_DIR=\"");
-writer.print(config.getWorkdir().relativize(
-mavenProject.getTestSourceDirectory()));
+writer.print(replaceWithVars(config.getWorkdir().relativize(
+mavenProject.getTestSourceDirectory()).toString(), 
config));
 writer.println('"');
 
 if (mavenProject.hasTestResources()) {
@@ -678,7 +691,8 @@ public class MavenEbuilder {
 writer.print(':');
 }
 
-writer.print(config.getWorkdir().relativize(resources));
+writer.print(replaceWithVars(config.getWorkdir().
+relativize(resources).toString(), config));
 }
 
 writer.println('"');



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-02 Thread Miroslav Šulc
commit: 6ffda4c5bb983ee60afe8cdbdd8cac800d2dda4e
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sat Nov  2 21:41:55 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sat Nov  2 21:41:55 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=6ffda4c5

fixed projects dump issues

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
index 6d0d8ec..eb379e0 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
@@ -151,9 +151,9 @@ public class MavenProject {
 writer.print("sourceDirectory: ");
 writer.println(sourceDirectory);
 writer.print("hasResources: ");
-writer.println(hasResources);
+writer.println(hasResources());
 
-writer.print("resourceDirectories:");
+writer.println("resourceDirectories:");
 
 if (resourceDirectories != null) {
 resourceDirectories.forEach((resourceDirectory) -> {
@@ -163,11 +163,11 @@ public class MavenProject {
 }
 
 writer.print("hasTests: ");
-writer.println(hasTests);
+writer.println(hasTests());
 writer.print("testSourceDirectory: ");
 writer.println(testSourceDirectory);
 writer.print("hasTestResources: ");
-writer.println(hasTestResources);
+writer.println(hasTestResources());
 
 writer.println("testResourceDirectories:");
 



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-02 Thread Miroslav Šulc
commit: 54202dcc53c082b4b62bd82510e79ab3f9e53825
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sat Nov  2 21:41:30 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sat Nov  2 21:41:30 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=54202dcc

fixed parsing of project build tree

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
index 2e81541..942ee27 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
@@ -389,6 +389,9 @@ public class MavenParser {
 case "artifactId":
 mavenProject.setArtifactId(reader.getElementText());
 break;
+case "build":
+parseProjectBuild(mavenProject, reader);
+break;
 case "dependencies":
 parseProjectDependencies(mavenProject, mavenCache,
 reader);



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/, ...

2019-11-02 Thread Miroslav Šulc
commit: 1673958029040f3368d310341832db6d03c18c9c
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Sat Nov  2 21:32:16 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Sat Nov  2 21:32:16 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=16739580

added option for dumping parsed projects

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/Config.java | 22 +++
 src/main/java/org/gentoo/java/ebuilder/Main.java   | 28 
 .../gentoo/java/ebuilder/maven/MavenProject.java   | 75 ++
 src/main/resources/usage.txt   |  2 +
 4 files changed, 127 insertions(+)

diff --git a/src/main/java/org/gentoo/java/ebuilder/Config.java 
b/src/main/java/org/gentoo/java/ebuilder/Config.java
index 9bc98f8..3bf8cb8 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Config.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Config.java
@@ -24,6 +24,10 @@ public class Config {
  * URI that goes to SRC_URI.
  */
 private URI downloadUri;
+/**
+ * Whether to output information about parsed projects.
+ */
+private boolean dumpProjects;
 /**
  * Path to ebuild file that should be generated.
  */
@@ -327,6 +331,24 @@ public class Config {
 this.workdir = workdir;
 }
 
+/**
+ * Getter for {@link #dumpProjects}.
+ *
+ * @return {@link #dumpProjects}
+ */
+public boolean isDumpProjects() {
+return dumpProjects;
+}
+
+/**
+ * Setter for {@link #dumpProjects}.
+ *
+ * @param dumpProjects {@link #dumpProjects}
+ */
+public void setDumpProjects(final boolean dumpProjects) {
+this.dumpProjects = dumpProjects;
+}
+
 /**
  * Getter for {@link #generateEbuild}.
  *

diff --git a/src/main/java/org/gentoo/java/ebuilder/Main.java 
b/src/main/java/org/gentoo/java/ebuilder/Main.java
index bb6fbd7..871ac2a 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Main.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Main.java
@@ -126,6 +126,9 @@ public class Main {
 } else if (config.getDownloadUri() != null) {
 config.getErrorWriter().println("WARNING: Download URI is used "
 + "only when generating ebuild.");
+} else if (config.isDumpProjects()) {
+config.getErrorWriter().println("WARNING: Dumping of projects can "
++ "be used only when generating ebuild.");
 } else if (config.getEbuild() != null) {
 config.getErrorWriter().println(
 "WARNING: Ebuild is used only when "
@@ -155,6 +158,23 @@ public class Main {
 }
 }
 
+private static void dumpMavenProjects(final Config config,
+final List mavenProjects) {
+int i = 0;
+
+for (final MavenProject mavenProject : mavenProjects) {
+config.getStdoutWriter().println(MessageFormat.format(
+"\n= PROJECT {0} DUMP START =", i));
+mavenProject.dump(config.getStdoutWriter());
+config.getStdoutWriter().println(MessageFormat.format(
+"= PROJECT {0} DUMP END =", i));
+
+i++;
+}
+
+config.getStdoutWriter().println();
+}
+
 /**
  * Processed generation of ebuild.
  *
@@ -170,6 +190,10 @@ public class Main {
 final List mavenProjects
 = mavenParser.parsePomFiles(config, mavenCache);
 
+if (config.isDumpProjects()) {
+dumpMavenProjects(config, mavenProjects);
+}
+
 final MavenEbuilder mavenEbuilder = new MavenEbuilder();
 mavenEbuilder.generateEbuild(config, mavenProjects, mavenCache);
 }
@@ -197,6 +221,10 @@ public class Main {
 + " is not valid.");
 }
 
+break;
+case "--dump-projects":
+case "-d":
+config.setDumpProjects(true);
 break;
 case "--ebuild":
 case "-e":

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
index ba575b1..6d0d8ec 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
@@ -1,5 +1,6 @@
 package org.gentoo.java.ebuilder.maven;
 
+import java.io.PrintWriter;
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -121,6 +122,80 @@ public class MavenProject {
 testResourceDirectories.add(path);
 }
 
+/**
+ * Outputs project properties to the writer.
+ *
+ * @param writer writer
+ */
+public void dump(final PrintWriter writer) {
+writer.print("POM file: ");
+writer.println(pomFile);
+writer.print("groupId: ");
+

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/portage/, ...

2019-11-01 Thread Miroslav Šulc
commit: c0c86c63b7847b9d10d53c51e182df3c53263e4f
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Fri Nov  1 20:21:00 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Fri Nov  1 20:21:00 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=c0c86c63

enhanced maven cache so that it also contains main java eclass + added java 
eclass stats

Signed-off-by: Miroslav Šulc  gentoo.org>

 .../org/gentoo/java/ebuilder/maven/MavenCache.java |  5 +-
 .../gentoo/java/ebuilder/portage/CacheItem.java| 29 ++--
 .../java/ebuilder/portage/PortageParser.java   | 84 +-
 3 files changed, 96 insertions(+), 22 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
index 0aa33c5..4e8767e 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
@@ -102,7 +102,10 @@ public class MavenCache {
 new FileReader(config.getCacheFile().toFile( {
 String line = reader.readLine();
 
-if (!PortageParser.CACHE_VERSION.equals(line)) {
+if ("1.0".equals(line)) {
+config.getStdoutWriter().print("(warning: format is not "
++ "up-to-date, consider refreshing the cache)...");
+} else if (!PortageParser.CACHE_VERSION.equals(line)) {
 config.getErrorWriter().println("ERROR: Unsupported version of 
"
 + "cache. Please refresh the cache using command line "
 + "switch --refresh-cache.");

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/CacheItem.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/CacheItem.java
index 17bce6b..feff43d 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/CacheItem.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/CacheItem.java
@@ -19,6 +19,10 @@ public class CacheItem {
  * Maven group id.
  */
 private final String groupId;
+/**
+ * Main Java eclass inherited.
+ */
+private final String javaEclass;
 /**
  * Maven version (of package jar).
  */
@@ -56,11 +60,12 @@ public class CacheItem {
  * @param groupId  {@link #groupId}
  * @param artifactId   {@link #artifactId}
  * @param mavenVersion {@link #mavenVersion}
+ * @param javaEclass   {@link #javaEclass}
  */
 public CacheItem(final String category, final String pkg,
 final String version, final String slot, final String useFlag,
 final String groupId, final String artifactId,
-final String mavenVersion) {
+final String mavenVersion, final String javaEclass) {
 this.category = category;
 this.pkg = pkg;
 this.version = version;
@@ -69,6 +74,7 @@ public class CacheItem {
 this.groupId = groupId;
 this.artifactId = artifactId;
 this.mavenVersion = mavenVersion;
+this.javaEclass = javaEclass;
 
 parsedMavenVersion = mavenVersion == null
 ? null : new MavenVersion(mavenVersion);
@@ -95,14 +101,20 @@ public class CacheItem {
 }
 
 if (parts.length > 5) {
-groupId = parts[5];
-artifactId = parts[6];
-mavenVersion = parts[7];
+groupId = parts[5].isEmpty() ? null : parts[5];
+artifactId = parts[6].isEmpty() ? null : parts[6];
+mavenVersion = parts[7].isEmpty() ? null : parts[7];
 } else {
 groupId = null;
 artifactId = null;
 mavenVersion = null;
 }
+
+if (parts.length > 8) {
+javaEclass = parts[8].isEmpty() ? null : parts[8];
+} else {
+javaEclass = null;
+}
 } catch (final ArrayIndexOutOfBoundsException ex) {
 throw new RuntimeException("Failed to parse cache line: " + line,
 ex);
@@ -139,6 +151,15 @@ public class CacheItem {
 return groupId;
 }
 
+/**
+ * Getter for {@link #javaEclass}.
+ *
+ * @return {@link #javaEclass}
+ */
+public String getJavaEclass() {
+return javaEclass;
+}
+
 /**
  * Getter for {@link #mavenVersion}.
  *

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
index a85fe6c..8d49411 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
@@ -28,7 +28,7 @@ public class PortageParser {
 /**
  * Cache version.
  */
-public static final String CACHE_VERSION = "1.0";
+public static final String CACHE_VERSION = "1.1";
 /**
  * Current 

[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/

2019-11-01 Thread Miroslav Šulc
commit: b9eb365fa9ba4541ec10ec6ae7ccd724dca3411f
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Fri Nov  1 20:19:20 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Fri Nov  1 20:19:20 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=b9eb365f

improved ebuild parsing output info format

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/Main.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/Main.java 
b/src/main/java/org/gentoo/java/ebuilder/Main.java
index 5328eb7..bb6fbd7 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Main.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Main.java
@@ -274,7 +274,8 @@ public class Main {
 config.setEbuildVersionSuffix(result.get("suffix"));
 
 config.getStdoutWriter().println(MessageFormat.format("Parsed "
-+ "ebuild file name - name: {0} version: {1} suffix: {2}",
++ "ebuild file name: name = {0}, version = {1}, "
++ "suffix = {2}",
 config.getEbuildName(), config.getEbuildVersion(),
 config.getEbuildVersionSuffix()));
 } catch (final IllegalArgumentException ex) {



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/

2019-11-01 Thread Miroslav Šulc
commit: d380ae7497646faa26912e34f2b747ae553c87b4
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Fri Nov  1 20:06:19 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Fri Nov  1 20:06:19 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=d380ae74

using message formatter for ebuild name parsing info

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/Main.java | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/Main.java 
b/src/main/java/org/gentoo/java/ebuilder/Main.java
index 6c5cd13..5328eb7 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Main.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Main.java
@@ -8,6 +8,7 @@ import java.io.PrintWriter;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.nio.file.Paths;
+import java.text.MessageFormat;
 import java.util.List;
 import java.util.Map;
 import org.gentoo.java.ebuilder.maven.MavenCache;
@@ -272,10 +273,10 @@ public class Main {
 config.setEbuildVersion(result.get("version"));
 config.setEbuildVersionSuffix(result.get("suffix"));
 
-config.getStdoutWriter().println("Parsed ebuild file name - name: "
-+ config.getEbuildName() + " version: "
-+ config.getEbuildVersion() + " suffix: "
-+ config.getEbuildVersionSuffix());
+config.getStdoutWriter().println(MessageFormat.format("Parsed "
++ "ebuild file name - name: {0} version: {1} suffix: {2}",
+config.getEbuildName(), config.getEbuildVersion(),
+config.getEbuildVersionSuffix()));
 } catch (final IllegalArgumentException ex) {
 config.getStdoutWriter().println("Cannot parse ebuild file name");
 



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/portage/, ...

2019-11-01 Thread Miroslav Šulc
commit: 889bcaf2504570a64c9b0a8e1f22b092a83e0c0c
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Fri Nov  1 19:41:43 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Fri Nov  1 19:41:43 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=889bcaf2

added parsing of ebuild file name components

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/Config.java | 66 ++
 src/main/java/org/gentoo/java/ebuilder/Main.java   | 30 ++
 .../java/ebuilder/portage/PortageParser.java   | 45 +++
 3 files changed, 141 insertions(+)

diff --git a/src/main/java/org/gentoo/java/ebuilder/Config.java 
b/src/main/java/org/gentoo/java/ebuilder/Config.java
index 4127266..9bc98f8 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Config.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Config.java
@@ -28,6 +28,18 @@ public class Config {
  * Path to ebuild file that should be generated.
  */
 private Path ebuild;
+/**
+ * Ebuild name.
+ */
+private String ebuildName;
+/**
+ * Ebuild version excluding suffix.
+ */
+private String ebuildVersion;
+/**
+ * Ebuild version suffix (-r).
+ */
+private String ebuildVersionSuffix;
 /**
  * Writer for errors.
  */
@@ -144,6 +156,60 @@ public class Config {
 this.ebuild = ebuild;
 }
 
+/**
+ * Getter for {@link #ebuildName}.
+ *
+ * @return {@link #ebuildName}
+ */
+public String getEbuildName() {
+return ebuildName;
+}
+
+/**
+ * Setter for {@link #ebuildName}.
+ *
+ * @param ebuildName {@link #ebuildName}
+ */
+public void setEbuildName(final String ebuildName) {
+this.ebuildName = ebuildName;
+}
+
+/**
+ * Getter for {@link #ebuildVersion}.
+ *
+ * @return {@link #ebuildVersion}
+ */
+public String getEbuildVersion() {
+return ebuildVersion;
+}
+
+/**
+ * Setter for {@link #ebuildVersion}.
+ *
+ * @param ebuildVersion {@link #ebuildVersion}
+ */
+public void setEbuildVersion(final String ebuildVersion) {
+this.ebuildVersion = ebuildVersion;
+}
+
+/**
+ * Getter for {@link #ebuildVersionSuffix}.
+ *
+ * @return {@link #ebuildVersionSuffix}
+ */
+public String getEbuildVersionSuffix() {
+return ebuildVersionSuffix;
+}
+
+/**
+ * Setter for {@link #ebuildVersionSuffix}.
+ *
+ * @param ebuildVersionSuffix {@link #ebuildVersionSuffix}
+ */
+public void setEbuildVersionSuffix(final String ebuildVersionSuffix) {
+this.ebuildVersionSuffix = ebuildVersionSuffix;
+}
+
 /**
  * Getter for {@link #errorWriter}.
  *

diff --git a/src/main/java/org/gentoo/java/ebuilder/Main.java 
b/src/main/java/org/gentoo/java/ebuilder/Main.java
index 5921ea1..6c5cd13 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Main.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Main.java
@@ -9,6 +9,7 @@ import java.net.URI;
 import java.net.URISyntaxException;
 import java.nio.file.Paths;
 import java.util.List;
+import java.util.Map;
 import org.gentoo.java.ebuilder.maven.MavenCache;
 import org.gentoo.java.ebuilder.maven.MavenEbuilder;
 import org.gentoo.java.ebuilder.maven.MavenParser;
@@ -159,6 +160,8 @@ public class Main {
  * @param config application configuration
  */
 private static void generateEbuild(final Config config) {
+parseEbuildName(config);
+
 final MavenCache mavenCache = new MavenCache();
 mavenCache.loadCache(config);
 
@@ -253,6 +256,33 @@ public class Main {
 }
 }
 
+/**
+ * Parses ebuild file name into its components.
+ *
+ * @param config app configuration containing ebuild information
+ */
+private static void parseEbuildName(final Config config) {
+final Map result;
+
+try {
+result = PortageParser.parseEbuildName(
+config.getEbuild().getFileName().toString());
+
+config.setEbuildName(result.get("name"));
+config.setEbuildVersion(result.get("version"));
+config.setEbuildVersionSuffix(result.get("suffix"));
+
+config.getStdoutWriter().println("Parsed ebuild file name - name: "
++ config.getEbuildName() + " version: "
++ config.getEbuildVersion() + " suffix: "
++ config.getEbuildVersionSuffix());
+} catch (final IllegalArgumentException ex) {
+config.getStdoutWriter().println("Cannot parse ebuild file name");
+
+Runtime.getRuntime().exit(1);
+}
+}
+
 /**
  * Prints application usage information.
  */

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
index d504b2c..a85fe6c 100644
--- 

[gentoo-commits] proj/java-ebuilder:master commit in: /

2019-11-01 Thread Miroslav Šulc
commit: 005ac61b0661256c5a05f2e684c8e3bd2b522c89
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Fri Nov  1 19:41:08 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Fri Nov  1 19:41:08 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=005ac61b

version updated

Signed-off-by: Miroslav Šulc  gentoo.org>

 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 4c069e2..0f7729f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
 4.0.0
 org.gentoo
 java-ebuilder
-0.3.1-SNAPSHOT
+0.4.0-SNAPSHOT
 jar
 Gentoo Java ebuild Builder
 Java team tool for semi-automatic creation of ebuilds from 
pom.xml.



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/resources/

2019-11-01 Thread Miroslav Šulc
commit: 74183b4fabbf629ade1ba60b66c4f81db854af07
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Fri Nov  1 19:04:38 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Fri Nov  1 19:04:38 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=74183b4f

updated usage

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/resources/usage.txt | 14 +++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/main/resources/usage.txt b/src/main/resources/usage.txt
index c874ace..4ad06d7 100644
--- a/src/main/resources/usage.txt
+++ b/src/main/resources/usage.txt
@@ -1,4 +1,6 @@
 Usage: java-ebuilder 
+
+Generating ebuild:
 --download-uri|-u  uri that goes to SRC_URI
 --ebuild|-e   path to ebuild that should be created
 --generate-ebuild|-ggenerates ebuild from pom.xml
@@ -7,9 +9,15 @@ Usage: java-ebuilder 
 --pom|-p  path to pom.xml that should be parsed, the path 
must
 be relative to workdir (can be specified multiple
 times)
+--slot|-s SLOT number
+--workdir|-w   path to ebuild workdir (${WORKDIR}, default is
+current directory)
+
+Refreshing cache:
 --portage-tree|-t   path to portage tree that should be parsed when
 refreshing cache (default is /usr/portage)
---cache-file   location of output cache file (default is 
~/.java-ebuilder/cache)
 --refresh-cache|-c  refreshes java ebuild cache
---slot|-s SLOT number
---workdir|-w   path to workdir (default is current directory)
+
+Common:
+--cache-file   location of cache file (default is
+~/.java-ebuilder/cache)



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-01 Thread Miroslav Šulc
commit: 7b10390839585c4bf129814380bb2f099678b7d0
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Fri Nov  1 18:40:28 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Fri Nov  1 18:42:45 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=7b103908

updated eapi to 7

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 50c5992..796bd9c 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -19,7 +19,7 @@ public class MavenEbuilder {
 /**
  * EAPI version.
  */
-private static final String EAPI = "5";
+private static final String EAPI = "7";
 
 /**
  * Generates ebuild from the collected information at the specified path.



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-01 Thread Miroslav Šulc
commit: ea70051f2d5c72b2712f2a12942c8f0346b15019
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Fri Nov  1 18:41:40 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Fri Nov  1 18:43:08 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=ea70051f

reformatted

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index f4f380a..ffb6e66 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -484,9 +484,11 @@ public class MavenEbuilder {
   final PrintWriter writer) {
 writer.println();
 writer.print("IUSE=\"doc source");
+
 if (mavenProject.hasTests()) {
 writer.print(" test");
 }
+
 writer.println('"');
 writer.println();
 writer.println("inherit java-pkg-2 java-pkg-simple");



[gentoo-commits] proj/java-ebuilder:master commit in: /

2019-11-01 Thread Miroslav Šulc
commit: 3994507547810914a68d20677a5006370db11910
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Fri Nov  1 18:39:57 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Fri Nov  1 18:42:35 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=39945075

added project homepage

Signed-off-by: Miroslav Šulc  gentoo.org>

 pom.xml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pom.xml b/pom.xml
index 921c3ef..4c069e2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,6 +10,7 @@
 jar
 Gentoo Java ebuild Builder
 Java team tool for semi-automatic creation of ebuilds from 
pom.xml.
+https://gitweb.gentoo.org/proj/java-ebuilder.git/
 
 UTF-8
 1.8



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-01 Thread Miroslav Šulc
commit: fa9dcf8c73d4e65f11fb0b1caf130b85f6493fc7
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Fri Nov  1 18:40:45 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Fri Nov  1 18:42:52 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=fa9dcf8c

updated ebuild header

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 796bd9c..8e0780d 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -473,7 +473,6 @@ public class MavenEbuilder {
 LocalDate.now().getYear());
 writer.println("# Distributed under the terms of the GNU General "
 + "Public License v2");
-writer.println("# $Id$");
 }
 
 /**



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-01 Thread Miroslav Šulc
commit: e7cc54b0e4a218d494333ab027d6c35aa49301de
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Fri Nov  1 18:41:29 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Fri Nov  1 18:43:03 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=e7cc54b0

updated default ebuild jdk version to 1.8

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
index af05c7c..ba575b1 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
@@ -67,11 +67,11 @@ public class MavenProject {
 /**
  * Source compile version.
  */
-private String sourceVersion = "1.7";
+private String sourceVersion = "1.8";
 /**
  * Target compile version.
  */
-private String targetVersion = "1.7";
+private String targetVersion = "1.8";
 /**
  * Test resource directories.
  */



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/

2019-11-01 Thread Miroslav Šulc
commit: 3d0f19ba3367571b88ab40332b3d8245bcbc0209
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Fri Nov  1 18:41:12 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Fri Nov  1 18:42:58 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=3d0f19ba

removed redundant IUSE

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java | 4 
 1 file changed, 4 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
index 8e0780d..f4f380a 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -568,10 +568,6 @@ public class MavenEbuilder {
 writer.print(config.getKeywords());
 writer.println('"');
 
-writer.print("IUSE=\"");
-
-writer.println('"');
-
 writer.print("MAVEN_ID=\"");
 writer.print(mavenProject.getGroupId());
 writer.print(':');



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/resources/

2019-10-30 Thread Miroslav Šulc
commit: a9eaed866badaffb61c98b4ec9bf7281c6d4d30e
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Wed Oct 30 20:00:05 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Oct 30 20:00:05 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=a9eaed86

fixed usage app name

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/resources/usage.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/resources/usage.txt b/src/main/resources/usage.txt
index 40e1914..c874ace 100644
--- a/src/main/resources/usage.txt
+++ b/src/main/resources/usage.txt
@@ -1,4 +1,4 @@
-Usage: jar 
+Usage: java-ebuilder 
 --download-uri|-u  uri that goes to SRC_URI
 --ebuild|-e   path to ebuild that should be created
 --generate-ebuild|-ggenerates ebuild from pom.xml



[gentoo-commits] proj/java-ebuilder:master commit in: /

2019-10-30 Thread Miroslav Šulc
commit: 527a7af2c4863fd76321e1f077539ff60b4aa182
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Wed Oct 30 19:59:43 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Oct 30 19:59:43 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=527a7af2

version updated

Signed-off-by: Miroslav Šulc  gentoo.org>

 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index d669adc..921c3ef 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
 4.0.0
 org.gentoo
 java-ebuilder
-0.3.0
+0.3.1-SNAPSHOT
 jar
 Gentoo Java ebuild Builder
 Java team tool for semi-automatic creation of ebuilds from 
pom.xml.



[gentoo-commits] proj/java-ebuilder:master commit in: /

2019-10-30 Thread Miroslav Šulc
commit: 59d676837063bd608fd288c4d42c54858151b2ab
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Wed Oct 30 19:56:54 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Oct 30 19:56:54 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=59d67683

release 0.3.0

Signed-off-by: Miroslav Šulc  gentoo.org>

 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index d0f6d2e..d669adc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
 4.0.0
 org.gentoo
 java-ebuilder
-1.0.0-SNAPSHOT
+0.3.0
 jar
 Gentoo Java ebuild Builder
 Java team tool for semi-automatic creation of ebuilds from 
pom.xml.



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/, ...

2019-10-30 Thread Miroslav Šulc
commit: e71822f64bdddf72820cdbda93a3339946a2f9e3
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Wed Oct 30 19:22:19 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Oct 30 19:22:30 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=e71822f6

added header to the cache file

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java  | 2 +-
 src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
index 9d91528..4772e61 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
@@ -112,7 +112,7 @@ public class MavenCache {
 line = reader.readLine();
 
 while (line != null) {
-if (!line.isEmpty()) {
+if (!line.isEmpty() && line.charAt(0) != '#') {
 addCacheItem(new CacheItem(line));
 }
 

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
index 095e001..12422c2 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
@@ -386,7 +386,8 @@ public class PortageParser {
 StandardOpenOption.TRUNCATE_EXISTING),
 Charset.forName("UTF-8"))) {
 writer.write(CACHE_VERSION);
-writer.write('\n');
+writer.write("\n#category:pkg:version:slot:useFlag:groupId:"
++ "artifactId:mavenVersion\n");
 
 for (final CacheItem cacheItem : cacheItems) {
 writer.write(cacheItem.getCategory());



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/, ...

2019-10-30 Thread Miroslav Šulc
commit: 6997747f61ccd821b0f31a1f0228a57ba9a2ded6
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Wed Oct 30 19:26:31 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Oct 30 19:26:31 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=6997747f

reformatted

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java  |  4 ++--
 .../java/org/gentoo/java/ebuilder/portage/PortageParser.java  | 11 ++-
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
index 4772e61..0aa33c5 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
@@ -98,8 +98,8 @@ public class MavenCache {
 
 cache.clear();
 
-try (final BufferedReader reader = new BufferedReader(new FileReader(
-config.getCacheFile().toFile( {
+try (final BufferedReader reader = new BufferedReader(
+new FileReader(config.getCacheFile().toFile( {
 String line = reader.readLine();
 
 if (!PortageParser.CACHE_VERSION.equals(line)) {

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
index 6b0ae3c..d504b2c 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
@@ -174,7 +174,8 @@ public class PortageParser {
  */
 private void parseEbuild(final File ebuild) {
 final String filename = ebuild.getName().replaceAll("\\.ebuild$", "");
-final String category = 
ebuild.getParentFile().getParentFile().getName();
+final String category
+= ebuild.getParentFile().getParentFile().getName();
 final String pkg = ebuild.getParentFile().getName();
 final String version = filename.substring(pkg.length() + 1);
 final Map variables = new HashMap<>(20);
@@ -206,8 +207,8 @@ public class PortageParser {
 final Matcher matcher = PATTERN_VARIABLE.matcher(line);
 
 if (matcher.matches()) {
-variables.put(matcher.group(1), matcher.group(2).
-replaceAll("(^\"|\"$)", ""));
+variables.put(matcher.group(1),
+matcher.group(2).replaceAll("(^\"|\"$)", ""));
 }
 
 if (line.startsWith("inherit ")) {
@@ -336,8 +337,8 @@ public class PortageParser {
 }
 
 if (result.indexOf('$') != -1) {
-final Matcher matcher = PATTERN_SLOT_VERSION_COMPOPONENT_RANGE.
-matcher(result);
+final Matcher matcher
+= PATTERN_SLOT_VERSION_COMPOPONENT_RANGE.matcher(result);
 
 if (matcher.matches()) {
 final int start = Integer.parseInt(matcher.group(1), 10);



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/portage/

2019-10-30 Thread Miroslav Šulc
commit: 54cf529486ad0702ba76e9269552c53a817075fa
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Wed Oct 30 19:26:01 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Oct 30 19:26:01 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=54cf5294

added fix to avoid parsing directories that are not package directories

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
index 12422c2..6b0ae3c 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
@@ -292,6 +292,10 @@ public class PortageParser {
 (final File pathname) -> pathname.isFile()
 && pathname.getName().endsWith(".ebuild"));
 
+if (ebuilds == null) {
+return;
+}
+
 for (final File ebuild : ebuilds) {
 parseEbuild(ebuild);
 processedEbuilds++;



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/portage/, ...

2019-10-30 Thread Miroslav Šulc
commit: 93acbb64ecbc2d5da73c96033d047209b3f74963
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Wed Oct 30 17:42:12 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Oct 30 17:43:31 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=93acbb64

reformatted and improved style

Signed-off-by: Miroslav Šulc  gentoo.org>

 .../gentoo/java/ebuilder/maven/MavenParser.java|  5 +++--
 .../gentoo/java/ebuilder/portage/MavenVersion.java | 22 ++
 .../java/ebuilder/portage/PortageParser.java   | 12 ++--
 3 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java 
b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
index 4ab15e9..2e81541 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
@@ -529,8 +529,9 @@ public class MavenParser {
 scope = reader.getElementText();
 break;
 case "version":
-version = reader.getElementText().replace("-SNAPSHOT",
-"");
+version = reader.getElementText().replace(
+"-SNAPSHOT", "");
+
/* crazy version from
 * org.khronos:opengl-api:gl1.1-android-2.1_r1 */
 // TODO: this should go to a file mapping crazy 
versions

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java
index e2bf46f..657d3c4 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java
@@ -18,7 +18,8 @@ public class MavenVersion implements Comparable 
{
 /**
  * Pattern for parsing maven version range.
  */
-private static final Pattern p_VERSION_RANGE = Pattern.compile("\\[.*, 
?(.*?)\\]");
+private static final Pattern PATTERN_VERSION_RANGE
+= Pattern.compile("\\[.*, ?(.*?)\\]");
 /**
  * Incremental version number.
  */
@@ -41,16 +42,21 @@ public class MavenVersion implements 
Comparable {
  *
  * @param version version string
  */
-public MavenVersion(String version) {
-   Matcher m_RANGE = p_VERSION_RANGE.matcher(version);
-if (m_RANGE.matches()) {
-version = m_RANGE.group(1);
+public MavenVersion(final String version) {
+final Matcher matcherRange = PATTERN_VERSION_RANGE.matcher(version);
+final String useVersion;
+
+if (matcherRange.matches()) {
+useVersion = matcherRange.group(1);
+} else {
+useVersion = version;
 }
-final Matcher matcher = PATTERN_VERSION.matcher(version);
+
+final Matcher matcher = PATTERN_VERSION.matcher(useVersion);
 
 if (!matcher.matches()) {
-throw new RuntimeException("Maven version " + version
-+ " is not valid.");
+throw new RuntimeException(
+"Maven version " + useVersion + " is not valid.");
 }
 
 majorVersion = Integer.parseInt(matcher.group(1), 10);

diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java 
b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
index aa8a14b..095e001 100644
--- a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
@@ -29,6 +29,10 @@ public class PortageParser {
  * Cache version.
  */
 public static final String CACHE_VERSION = "1.0";
+/**
+ * Current ant utilities eclass name.
+ */
+private static final String ECLASS_ANT_TASKS = "ant-tasks";
 /**
  * Current java package eclass name.
  */
@@ -45,10 +49,6 @@ public class PortageParser {
  * Current java utilities eclass name.
  */
 private static final String ECLASS_JAVA_UTILS = "java-utils-2";
-/**
- * Current ant utilities eclass name.
- */
-private static final String ECLASS_ANT_TASKS = "ant-tasks";
 /**
  * Pattern for parsing SLOT with bash substring.
  */
@@ -130,8 +130,8 @@ public class PortageParser {
 return ECLASS_JAVA_PKG_SIMPLE;
 } else if (inheritLine.contains(ECLASS_JAVA_UTILS)) {
 return ECLASS_JAVA_UTILS;
-   } else if (inheritLine.contains(ECLASS_ANT_TASKS)) {
-   return ECLASS_ANT_TASKS;
+} else if (inheritLine.contains(ECLASS_ANT_TASKS)) {
+return ECLASS_ANT_TASKS;
 } else {
 return null;
 }



[gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/

2019-10-30 Thread Miroslav Šulc
commit: 26b77b6db177bb7f47ff93de1739c49272d28b22
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Wed Oct 30 17:37:51 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Oct 30 17:37:51 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=26b77b6d

removed unused import

Signed-off-by: Miroslav Šulc  gentoo.org>

 src/main/java/org/gentoo/java/ebuilder/Main.java | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/main/java/org/gentoo/java/ebuilder/Main.java 
b/src/main/java/org/gentoo/java/ebuilder/Main.java
index 0a69442..5921ea1 100644
--- a/src/main/java/org/gentoo/java/ebuilder/Main.java
+++ b/src/main/java/org/gentoo/java/ebuilder/Main.java
@@ -7,7 +7,6 @@ import java.io.InputStreamReader;
 import java.io.PrintWriter;
 import java.net.URI;
 import java.net.URISyntaxException;
-import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.List;
 import org.gentoo.java.ebuilder.maven.MavenCache;



  1   2   >