[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: 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: 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: 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: 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/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: 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/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/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/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/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/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/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/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/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: 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: 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/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/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/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/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: 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/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/maven/

2019-10-30 Thread Miroslav Šulc
commit: fbe55dc306855e8743631402df4fc58bdc19a956
Author: Miroslav Šulc  gentoo  org>
AuthorDate: Wed Oct 30 17:41:47 2019 +
Commit: Miroslav Šulc  gentoo  org>
CommitDate: Wed Oct 30 17:43:16 2019 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=fbe55dc3

added todos

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

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

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 6e6435e..4ab15e9 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
@@ -515,8 +515,12 @@ public class MavenParser {
 switch (reader.getLocalName()) {
 case "artifactId":
 artifactId = reader.getElementText();
+
/* jsch.agentproxy is an empty artifact. */
-   if (artifactId.equals("jsch.agentproxy")) return;
+// TODO: this should go to a config file to ignore 
some artifacts
+   if (artifactId.equals("jsch.agentproxy")) {
+return;
+}
 break;
 case "groupId":
 groupId = reader.getElementText();
@@ -529,6 +533,7 @@ public class MavenParser {
 "");
/* crazy version from
 * org.khronos:opengl-api:gl1.1-android-2.1_r1 */
+// TODO: this should go to a file mapping crazy 
versions
if (version.equals("gl1.1-android-2.1_r1")) {
version = "2.1.1";
}



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

2019-10-30 Thread Michał Górny
commit: 304e54ebfcd4e20ca3e54aaf6add7e02a9f15210
Author: Benda Xu  gentoo  org>
AuthorDate: Mon Jan  9 11:48:48 2017 +
Commit: Michał Górny  gentoo  org>
CommitDate: Mon Jan  9 12:43:30 2017 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=304e54eb

MavenVersion.java: _rc3 should not be stripped.

  >=cat/pkg-1.0 does not match cat/pkg-1.0_rc3

 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 1295856..9d91528 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
@@ -163,13 +163,13 @@ public class MavenCache {
 }
 
 /**
- * Strips all -r* and _* segments from the version string.
+ * Strips all -r* from the version string.
  *
  * @param version version string
  *
  * @return stripped version string
  */
 private String stripExtraFromVersion(final String version) {
-return version.replaceAll("-r\\d+", "").replaceAll("_.*", "");
+return version.replaceAll("-r\\d+", "");
 }
 }



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

2019-10-30 Thread Michał Górny
commit: f5b6cd58d567592d8b919b1d1b10b173c23276b0
Author: William L. Thomson Jr  o-sinc  com>
AuthorDate: Wed Oct  5 15:38:48 2016 +
Commit: Michał Górny  gentoo  org>
CommitDate: Wed Oct  5 15:38:48 2016 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=f5b6cd58

src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java: Minor change

1. Relocated doc source, and though not used test IUSE variables from
   IUSE with rest of ebuild variables to above inherit using
   JAVA_PKG_IUSE. Left test there in case default test case is added to
   java eclasses, but at this time has no usage in JAVA_PKG_IUSE.

 .../gentoo/java/ebuilder/maven/MavenEbuilder.java   | 21 -
 1 file changed, 12 insertions(+), 9 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 067ea80..50c5992 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,11 @@ public class MavenEbuilder {
 writeHeader(writer);
 writeCommand(config, writer);
 writeEAPI(writer);
-writeInherit(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,
-mavenProjects.get(mavenProjects.size() - 1), writer);
+writePackageInfo(config, mp, writer);
 
 writeDependencies(config, mavenProjects, writer);
 writeSourceDir(writer);
@@ -481,7 +481,14 @@ public class MavenEbuilder {
  *
  * @param writer ebuild writer
  */
-private void writeInherit(final PrintWriter writer) {
+private void writeInherit(final MavenProject mavenProject,
+  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");
 }
@@ -562,11 +569,7 @@ public class MavenEbuilder {
 writer.print(config.getKeywords());
 writer.println('"');
 
-writer.print("IUSE=\"doc source");
-
-if (mavenProject.hasTests()) {
-writer.print(" test");
-}
+writer.print("IUSE=\"");
 
 writer.println('"');
 



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

2019-10-30 Thread Michał Górny
commit: 84942a498822697f13a6a34e9e0ee46d79310004
Author: heroxbd  gmail  com>
AuthorDate: Fri Sep  9 06:40:22 2016 +
Commit: Michał Górny  gentoo  org>
CommitDate: Fri Sep  9 06:40:22 2016 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=84942a49

org/gentoo/java/ebuilder/maven/MavenParser.java: fix result list

1. Parsed objects should be added the returning result ArrayList.
2. Some pom.xml has 'projects' tag enclosing 'project', ignore it if found.

 src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java | 5 +
 1 file changed, 5 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 d8e4b48..52449dc 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
@@ -49,6 +49,8 @@ public class MavenParser {
 "junit", "junit", "4.11", "test",
 mavenCache.getDependency("junit", "junit", "4.11")));
 }
+
+   result.add(mavenProject);
 });
 
 return result;
@@ -347,6 +349,9 @@ public class MavenParser {
 
 if (reader.isStartElement()) {
 switch (reader.getLocalName()) {
+case "projects":
+/* no-op */
+break;
 case "project":
 parseProject(mavenProject, mavenCache, reader);
 break;



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

2019-10-30 Thread Michał Górny
commit: 5efa2cb1e7912a64fca08378ba6426eb88c36766
Author: Miroslav Šulc  fordfrog  com>
AuthorDate: Fri Sep  9 07:10:40 2016 +
Commit: Michał Górny  gentoo  org>
CommitDate: Fri Sep  9 07:10:40 2016 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=5efa2cb1

added some comments useful for generation of ebuild from multiple projects

 .../org/gentoo/java/ebuilder/maven/MavenEbuilder.java| 16 
 1 file changed, 16 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 f717d9b..c6e18bd 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
@@ -489,6 +489,22 @@ public class MavenEbuilder {
 final List mavenProjects, final PrintWriter writer) {
 // TODO: implement multiple-project script
 throw new UnsupportedOperationException("Not implemented yet.");
+
+// Global:
+// JAVA_GENTOO_CLASSPATH
+// JAVA_CLASSPATH_EXTRA
+// JAVA_GENTOO_TEST_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_TEST_SRC_DIR
+// JAVA_TEST_RESOURCE_DIRS
+// Install (jars, doc, sources):
+// JAVA_MAIN_CLASS
 }
 
 /**



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

2019-10-30 Thread Michał Górny
commit: 10127d8936bec4f6e162d9d8a59ebc7bf10c9662
Author: Benda Xu  gentoo  org>
AuthorDate: Thu Oct  6 11:17:08 2016 +
Commit: Michał Górny  gentoo  org>
CommitDate: Thu Oct  6 11:17:08 2016 +
URL:https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=10127d89

Move the jsch-agentproxy into java.

  Ugly hack, but better than removing lines from ebuilds.

  Should put this into some configuration file.

 scripts/tree.sh  | 12 
 .../java/org/gentoo/java/ebuilder/maven/MavenParser.java |  2 ++
 2 files changed, 2 insertions(+), 12 deletions(-)

diff --git a/scripts/tree.sh b/scripts/tree.sh
index 7df27dc..8fef39d 100755
--- a/scripts/tree.sh
+++ b/scripts/tree.sh
@@ -83,24 +83,12 @@ gebd() {
 java-ebuilder -p "${POMDIR}"/${M}.pom -e "${ebd}" -g --workdir . \
   -u ${SRC_URI} --slot ${SLOT:-0} --keywords ~amd64 \
   --cache-file "${CACHEDIR}"/cache
-
-# empty parent artifacts
-# FIXME, this should be removed in poms
-sed -e '/app-maven\/jsch-agentproxy-bin/d' \
--e '/JAVA_GENTOO_CLASSPATH/s|jsch-agentproxy-bin,||' \
--i "${ebd}"
 fi
 
 if [[ -z "${MAVEN_NODEP}" ]] && mfill "${ebd}"; then
 java-ebuilder -p "${POMDIR}"/${M}.pom -e "${ebd}" -g --workdir . \
   -u ${SRC_URI} --slot ${SLOT:-0} --keywords ~amd64 \
   --cache-file "${CACHEDIR}"/cache
-
-# empty parent artifacts
-# FIXME, this should be removed in poms
-sed -e '/app-maven\/jsch-agentproxy-bin-[0-9]/d' \
--e '/JAVA_GENTOO_CLASSPATH/s|jsch-agentproxy-bin,||' \
--i "${ebd}"
 fi
 
 [[ ${SRC_URI} = *-sources.jar ]] || sed -i 
"/inherit/s/java-pkg-simple/java-pkg-binjar/" "${ebd}"

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 ba876f2..6e6435e 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
@@ -515,6 +515,8 @@ public class MavenParser {
 switch (reader.getLocalName()) {
 case "artifactId":
 artifactId = reader.getElementText();
+   /* jsch.agentproxy is an empty artifact. */
+   if (artifactId.equals("jsch.agentproxy")) return;
 break;
 case "groupId":
 groupId = reader.getElementText();