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/portage/, ...
Date: Fri, 01 Nov 2019 20:21:16
Message-Id: 1572639660.c0c86c63b7847b9d10d53c51e182df3c53263e4f.fordfrog@gentoo
1 commit: c0c86c63b7847b9d10d53c51e182df3c53263e4f
2 Author: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
3 AuthorDate: Fri Nov 1 20:21:00 2019 +0000
4 Commit: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
5 CommitDate: Fri Nov 1 20:21:00 2019 +0000
6 URL: https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=c0c86c63
7
8 enhanced maven cache so that it also contains main java eclass + added java eclass stats
9
10 Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>
11
12 .../org/gentoo/java/ebuilder/maven/MavenCache.java | 5 +-
13 .../gentoo/java/ebuilder/portage/CacheItem.java | 29 ++++++--
14 .../java/ebuilder/portage/PortageParser.java | 84 +++++++++++++++++-----
15 3 files changed, 96 insertions(+), 22 deletions(-)
16
17 diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
18 index 0aa33c5..4e8767e 100644
19 --- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
20 +++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java
21 @@ -102,7 +102,10 @@ public class MavenCache {
22 new FileReader(config.getCacheFile().toFile()))) {
23 String line = reader.readLine();
24
25 - if (!PortageParser.CACHE_VERSION.equals(line)) {
26 + if ("1.0".equals(line)) {
27 + config.getStdoutWriter().print("(warning: format is not "
28 + + "up-to-date, consider refreshing the cache)...");
29 + } else if (!PortageParser.CACHE_VERSION.equals(line)) {
30 config.getErrorWriter().println("ERROR: Unsupported version of "
31 + "cache. Please refresh the cache using command line "
32 + "switch --refresh-cache.");
33
34 diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/CacheItem.java b/src/main/java/org/gentoo/java/ebuilder/portage/CacheItem.java
35 index 17bce6b..feff43d 100644
36 --- a/src/main/java/org/gentoo/java/ebuilder/portage/CacheItem.java
37 +++ b/src/main/java/org/gentoo/java/ebuilder/portage/CacheItem.java
38 @@ -19,6 +19,10 @@ public class CacheItem {
39 * Maven group id.
40 */
41 private final String groupId;
42 + /**
43 + * Main Java eclass inherited.
44 + */
45 + private final String javaEclass;
46 /**
47 * Maven version (of package jar).
48 */
49 @@ -56,11 +60,12 @@ public class CacheItem {
50 * @param groupId {@link #groupId}
51 * @param artifactId {@link #artifactId}
52 * @param mavenVersion {@link #mavenVersion}
53 + * @param javaEclass {@link #javaEclass}
54 */
55 public CacheItem(final String category, final String pkg,
56 final String version, final String slot, final String useFlag,
57 final String groupId, final String artifactId,
58 - final String mavenVersion) {
59 + final String mavenVersion, final String javaEclass) {
60 this.category = category;
61 this.pkg = pkg;
62 this.version = version;
63 @@ -69,6 +74,7 @@ public class CacheItem {
64 this.groupId = groupId;
65 this.artifactId = artifactId;
66 this.mavenVersion = mavenVersion;
67 + this.javaEclass = javaEclass;
68
69 parsedMavenVersion = mavenVersion == null
70 ? null : new MavenVersion(mavenVersion);
71 @@ -95,14 +101,20 @@ public class CacheItem {
72 }
73
74 if (parts.length > 5) {
75 - groupId = parts[5];
76 - artifactId = parts[6];
77 - mavenVersion = parts[7];
78 + groupId = parts[5].isEmpty() ? null : parts[5];
79 + artifactId = parts[6].isEmpty() ? null : parts[6];
80 + mavenVersion = parts[7].isEmpty() ? null : parts[7];
81 } else {
82 groupId = null;
83 artifactId = null;
84 mavenVersion = null;
85 }
86 +
87 + if (parts.length > 8) {
88 + javaEclass = parts[8].isEmpty() ? null : parts[8];
89 + } else {
90 + javaEclass = null;
91 + }
92 } catch (final ArrayIndexOutOfBoundsException ex) {
93 throw new RuntimeException("Failed to parse cache line: " + line,
94 ex);
95 @@ -139,6 +151,15 @@ public class CacheItem {
96 return groupId;
97 }
98
99 + /**
100 + * Getter for {@link #javaEclass}.
101 + *
102 + * @return {@link #javaEclass}
103 + */
104 + public String getJavaEclass() {
105 + return javaEclass;
106 + }
107 +
108 /**
109 * Getter for {@link #mavenVersion}.
110 *
111
112 diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
113 index a85fe6c..8d49411 100644
114 --- a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
115 +++ b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java
116 @@ -28,7 +28,7 @@ public class PortageParser {
117 /**
118 * Cache version.
119 */
120 - public static final String CACHE_VERSION = "1.0";
121 + public static final String CACHE_VERSION = "1.1";
122 /**
123 * Current ant utilities eclass name.
124 */
125 @@ -116,6 +116,29 @@ public class PortageParser {
126 * List of cache items. This list is populated during parsing the tree.
127 */
128 private final List<CacheItem> cacheItems = new ArrayList<>(40_000);
129 + /**
130 + * Count of ebuilds inheriting {@link #ECLASS_ANT_TASKS} as the main eclass.
131 + */
132 + private int eclassAntTasksCount;
133 + /**
134 + * Count of ebuilds inheriting {@link #ECLASS_JAVA_PKG} as the main eclass.
135 + */
136 + private int eclassJavaPkgCount;
137 + /**
138 + * Count of ebuilds inheriting {@link #ECLASS_JAVA_PKG_OPT} as the main
139 + * eclass.
140 + */
141 + private int eclassJavaPkgOptCount;
142 + /**
143 + * Count of ebuilds inheriting {@link #ECLASS_JAVA_PKG_SIMPLE} as the main
144 + * eclass.
145 + */
146 + private int eclassJavaPkgSimpleCount;
147 + /**
148 + * Count of ebuilds inheriting {@link #ECLASS_JAVA_UTILS} as the main
149 + * eclass.
150 + */
151 + private int eclassJavaUtilsCount;
152 /**
153 * Number of processed categories. Updated during parsing the tree.
154 */
155 @@ -141,6 +164,11 @@ public class PortageParser {
156 processedCategories = 0;
157 processedPackages = 0;
158 processedEbuilds = 0;
159 + eclassAntTasksCount = 0;
160 + eclassJavaPkgCount = 0;
161 + eclassJavaPkgOptCount = 0;
162 + eclassJavaPkgSimpleCount = 0;
163 + eclassJavaUtilsCount = 0;
164
165 config.getStdoutWriter().println("Parsing portage tree @ "
166 + config.getPortageTree() + " ...");
167 @@ -150,9 +178,14 @@ public class PortageParser {
168
169 config.getStdoutWriter().println(MessageFormat.format(
170 "Parsed {0} categories {1} packages {2} ebuilds in {3}ms and "
171 - + "found {4} java ebuilds",
172 + + "found {4} java ebuilds (main java eclass: {5} = {6}, "
173 + + "{7} = {8}, {9} = {10}, {11} = {12}, {13} = {14})",
174 processedCategories, processedPackages, processedEbuilds,
175 - endTimestamp - startTimestamp, cacheItems.size()));
176 + endTimestamp - startTimestamp, cacheItems.size(),
177 + ECLASS_ANT_TASKS, eclassAntTasksCount, ECLASS_JAVA_PKG,
178 + eclassJavaPkgCount, ECLASS_JAVA_PKG_OPT, eclassJavaPkgOptCount,
179 + ECLASS_JAVA_PKG_SIMPLE, eclassJavaPkgSimpleCount,
180 + ECLASS_JAVA_UTILS, eclassJavaUtilsCount));
181
182 config.getStdoutWriter().print("Writing cache file...");
183 writeCacheFile(config);
184 @@ -325,7 +358,25 @@ public class PortageParser {
185 }
186
187 cacheItems.add(new CacheItem(category, pkg, version, slot, useFlag,
188 - groupId, artifactId, mavenVersion));
189 + groupId, artifactId, mavenVersion, eclass));
190 +
191 + switch (eclass) {
192 + case ECLASS_ANT_TASKS:
193 + eclassAntTasksCount++;
194 + break;
195 + case ECLASS_JAVA_PKG:
196 + eclassJavaPkgCount++;
197 + break;
198 + case ECLASS_JAVA_PKG_OPT:
199 + eclassJavaPkgOptCount++;
200 + break;
201 + case ECLASS_JAVA_PKG_SIMPLE:
202 + eclassJavaPkgSimpleCount++;
203 + break;
204 + case ECLASS_JAVA_UTILS:
205 + eclassJavaUtilsCount++;
206 + break;
207 + }
208 }
209
210 /**
211 @@ -437,7 +488,7 @@ public class PortageParser {
212 Charset.forName("UTF-8"))) {
213 writer.write(CACHE_VERSION);
214 writer.write("\n#category:pkg:version:slot:useFlag:groupId:"
215 - + "artifactId:mavenVersion\n");
216 + + "artifactId:mavenVersion:javaEclass\n");
217
218 for (final CacheItem cacheItem : cacheItems) {
219 writer.write(cacheItem.getCategory());
220 @@ -450,18 +501,17 @@ public class PortageParser {
221 writer.write(':');
222 writer.write(cacheItem.getUseFlag() == null
223 ? "" : cacheItem.getUseFlag());
224 -
225 - if (cacheItem.getGroupId() != null) {
226 - writer.write(':');
227 - writer.write(cacheItem.getGroupId());
228 - writer.write(':');
229 - writer.write(cacheItem.getArtifactId());
230 -
231 - if (cacheItem.getMavenVersion() != null) {
232 - writer.write(':');
233 - writer.write(cacheItem.getMavenVersion());
234 - }
235 - }
236 + writer.write(':');
237 + writer.write(cacheItem.getGroupId() == null
238 + ? "" : cacheItem.getGroupId());
239 + writer.write(':');
240 + writer.write(cacheItem.getArtifactId() == null
241 + ? "" : cacheItem.getArtifactId());
242 + writer.write(':');
243 + writer.write(cacheItem.getMavenVersion() == null
244 + ? "" : cacheItem.getMavenVersion());
245 + writer.write(':');
246 + writer.write(cacheItem.getJavaEclass());
247
248 writer.write('\n');
249 }