Gentoo Archives: gentoo-commits

From: "Miroslav Šulc" <fordfrog@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/
Date: Sun, 03 Nov 2019 11:26:58
Message-Id: 1572780367.af344112881d635949535ba6a5fc9e11ad284dc5.fordfrog@gentoo
1 commit: af344112881d635949535ba6a5fc9e11ad284dc5
2 Author: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
3 AuthorDate: Sun Nov 3 11:26:07 2019 +0000
4 Commit: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
5 CommitDate: Sun Nov 3 11:26:07 2019 +0000
6 URL: https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=af344112
7
8 encapsulated java version in new container
9
10 Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>
11
12 .../gentoo/java/ebuilder/maven/JavaVersion.java | 87 ++++++++++++++++++++++
13 .../gentoo/java/ebuilder/maven/MavenParser.java | 10 ++-
14 .../gentoo/java/ebuilder/maven/MavenProject.java | 12 +--
15 3 files changed, 99 insertions(+), 10 deletions(-)
16
17 diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java b/src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java
18 new file mode 100644
19 index 0000000..5aa600d
20 --- /dev/null
21 +++ b/src/main/java/org/gentoo/java/ebuilder/maven/JavaVersion.java
22 @@ -0,0 +1,87 @@
23 +package org.gentoo.java.ebuilder.maven;
24 +
25 +import java.text.MessageFormat;
26 +import java.util.regex.Matcher;
27 +import java.util.regex.Pattern;
28 +
29 +/**
30 + * Java versionNumber container.
31 + *
32 + * @author fordfrog
33 + */
34 +public class JavaVersion {
35 +
36 + /**
37 + * Pattern for parsing Java versionNumber.
38 + */
39 + private static final Pattern PATTERN_VERSION
40 + = Pattern.compile("^(?:1\\.)(\\d+)$");
41 + /**
42 + * Java versionNumber number.
43 + */
44 + private final int versionNumber;
45 + /**
46 + * Java version string.
47 + */
48 + private final String versionString;
49 +
50 + /**
51 + * Creates new instance of JavaVersion. Parses the version string and uses
52 + * the main Java version. Terminates if the version is not valid.
53 + *
54 + * @param versionString version string
55 + */
56 + public JavaVersion(final String versionString) {
57 + this.versionString = versionString;
58 +
59 + final Matcher matcher = PATTERN_VERSION.matcher(versionString);
60 +
61 + if (!matcher.matches()) {
62 + throw new IllegalArgumentException(MessageFormat.format(
63 + "Java version \"{0}\" is not valid!", versionString));
64 + }
65 +
66 + versionNumber = Integer.parseInt(matcher.group(1), 10);
67 + }
68 +
69 + /**
70 + * Compares this JavaVersion to the passed JavaVersion.
71 + *
72 + * @param javaVersion JavaVersion to compare to.
73 + *
74 + * @return -1 if this versionNumber is lower, 1 if this versionNumber is
75 + * higher and 0 if both are equal
76 + */
77 + public int compareTo(final JavaVersion javaVersion) {
78 + if (javaVersion.getVersionNumber() > versionNumber) {
79 + return -1;
80 + } else if (javaVersion.getVersionNumber() < versionNumber) {
81 + return 1;
82 + } else {
83 + return 0;
84 + }
85 + }
86 +
87 + /**
88 + * Getter for {@link #versionNumber}.
89 + *
90 + * @return {@link #versionNumber}
91 + */
92 + public int getVersionNumber() {
93 + return versionNumber;
94 + }
95 +
96 + /**
97 + * Getter for {@link #versionString}.
98 + *
99 + * @return {@link #versionString}
100 + */
101 + public String getVersionString() {
102 + return versionString;
103 + }
104 +
105 + @Override
106 + public String toString() {
107 + return versionString;
108 + }
109 +}
110
111 diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
112 index 942ee27..7c9d162 100644
113 --- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
114 +++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
115 @@ -208,7 +208,7 @@ public class MavenParser {
116 case "source":
117 if ("maven-compiler-plugin".equals(artifactId)) {
118 mavenProject.setSourceVersion(
119 - reader.getElementText());
120 + new JavaVersion(reader.getElementText()));
121 } else {
122 consumeElement(reader);
123 }
124 @@ -217,7 +217,7 @@ public class MavenParser {
125 case "target":
126 if ("maven-compiler-plugin".equals(artifactId)) {
127 mavenProject.setTargetVersion(
128 - reader.getElementText());
129 + new JavaVersion(reader.getElementText()));
130 } else {
131 consumeElement(reader);
132 }
133 @@ -572,10 +572,12 @@ public class MavenParser {
134 if (reader.isStartElement()) {
135 switch (reader.getLocalName()) {
136 case "maven.compiler.source":
137 - mavenProject.setSourceVersion(reader.getElementText());
138 + mavenProject.setSourceVersion(
139 + new JavaVersion(reader.getElementText()));
140 break;
141 case "maven.compiler.target":
142 - mavenProject.setTargetVersion(reader.getElementText());
143 + mavenProject.setTargetVersion(
144 + new JavaVersion(reader.getElementText()));
145 break;
146 case "project.build.sourceEncoding":
147 mavenProject.setSourceEncoding(reader.getElementText());
148
149 diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
150 index 6cead37..07fa60e 100644
151 --- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
152 +++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
153 @@ -68,11 +68,11 @@ public class MavenProject {
154 /**
155 * Source compile version.
156 */
157 - private String sourceVersion = "1.8";
158 + private JavaVersion sourceVersion = new JavaVersion("1.8");
159 /**
160 * Target compile version.
161 */
162 - private String targetVersion = "1.8";
163 + private JavaVersion targetVersion = new JavaVersion("1.8");
164 /**
165 * Test resource directories.
166 */
167 @@ -382,7 +382,7 @@ public class MavenProject {
168 *
169 * @return {@link #sourceVersion}
170 */
171 - public String getSourceVersion() {
172 + public JavaVersion getSourceVersion() {
173 return sourceVersion;
174 }
175
176 @@ -391,7 +391,7 @@ public class MavenProject {
177 *
178 * @param sourceVersion {@link #sourceVersion}
179 */
180 - public void setSourceVersion(final String sourceVersion) {
181 + public void setSourceVersion(final JavaVersion sourceVersion) {
182 this.sourceVersion = sourceVersion;
183 }
184
185 @@ -400,7 +400,7 @@ public class MavenProject {
186 *
187 * @return {@link #targetVersion}
188 */
189 - public String getTargetVersion() {
190 + public JavaVersion getTargetVersion() {
191 return targetVersion;
192 }
193
194 @@ -409,7 +409,7 @@ public class MavenProject {
195 *
196 * @param targetVersion {@link #targetVersion}
197 */
198 - public void setTargetVersion(final String targetVersion) {
199 + public void setTargetVersion(final JavaVersion targetVersion) {
200 this.targetVersion = targetVersion;
201 }