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: Sat, 02 Nov 2019 21:32:33
Message-Id: 1572730336.1673958029040f3368d310341832db6d03c18c9c.fordfrog@gentoo
1 commit: 1673958029040f3368d310341832db6d03c18c9c
2 Author: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
3 AuthorDate: Sat Nov 2 21:32:16 2019 +0000
4 Commit: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
5 CommitDate: Sat Nov 2 21:32:16 2019 +0000
6 URL: https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=16739580
7
8 added option for dumping parsed projects
9
10 Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>
11
12 src/main/java/org/gentoo/java/ebuilder/Config.java | 22 +++++++
13 src/main/java/org/gentoo/java/ebuilder/Main.java | 28 ++++++++
14 .../gentoo/java/ebuilder/maven/MavenProject.java | 75 ++++++++++++++++++++++
15 src/main/resources/usage.txt | 2 +
16 4 files changed, 127 insertions(+)
17
18 diff --git a/src/main/java/org/gentoo/java/ebuilder/Config.java b/src/main/java/org/gentoo/java/ebuilder/Config.java
19 index 9bc98f8..3bf8cb8 100644
20 --- a/src/main/java/org/gentoo/java/ebuilder/Config.java
21 +++ b/src/main/java/org/gentoo/java/ebuilder/Config.java
22 @@ -24,6 +24,10 @@ public class Config {
23 * URI that goes to SRC_URI.
24 */
25 private URI downloadUri;
26 + /**
27 + * Whether to output information about parsed projects.
28 + */
29 + private boolean dumpProjects;
30 /**
31 * Path to ebuild file that should be generated.
32 */
33 @@ -327,6 +331,24 @@ public class Config {
34 this.workdir = workdir;
35 }
36
37 + /**
38 + * Getter for {@link #dumpProjects}.
39 + *
40 + * @return {@link #dumpProjects}
41 + */
42 + public boolean isDumpProjects() {
43 + return dumpProjects;
44 + }
45 +
46 + /**
47 + * Setter for {@link #dumpProjects}.
48 + *
49 + * @param dumpProjects {@link #dumpProjects}
50 + */
51 + public void setDumpProjects(final boolean dumpProjects) {
52 + this.dumpProjects = dumpProjects;
53 + }
54 +
55 /**
56 * Getter for {@link #generateEbuild}.
57 *
58
59 diff --git a/src/main/java/org/gentoo/java/ebuilder/Main.java b/src/main/java/org/gentoo/java/ebuilder/Main.java
60 index bb6fbd7..871ac2a 100644
61 --- a/src/main/java/org/gentoo/java/ebuilder/Main.java
62 +++ b/src/main/java/org/gentoo/java/ebuilder/Main.java
63 @@ -126,6 +126,9 @@ public class Main {
64 } else if (config.getDownloadUri() != null) {
65 config.getErrorWriter().println("WARNING: Download URI is used "
66 + "only when generating ebuild.");
67 + } else if (config.isDumpProjects()) {
68 + config.getErrorWriter().println("WARNING: Dumping of projects can "
69 + + "be used only when generating ebuild.");
70 } else if (config.getEbuild() != null) {
71 config.getErrorWriter().println(
72 "WARNING: Ebuild is used only when "
73 @@ -155,6 +158,23 @@ public class Main {
74 }
75 }
76
77 + private static void dumpMavenProjects(final Config config,
78 + final List<MavenProject> mavenProjects) {
79 + int i = 0;
80 +
81 + for (final MavenProject mavenProject : mavenProjects) {
82 + config.getStdoutWriter().println(MessageFormat.format(
83 + "\n===== PROJECT {0} DUMP START =====", i));
84 + mavenProject.dump(config.getStdoutWriter());
85 + config.getStdoutWriter().println(MessageFormat.format(
86 + "===== PROJECT {0} DUMP END =====", i));
87 +
88 + i++;
89 + }
90 +
91 + config.getStdoutWriter().println();
92 + }
93 +
94 /**
95 * Processed generation of ebuild.
96 *
97 @@ -170,6 +190,10 @@ public class Main {
98 final List<MavenProject> mavenProjects
99 = mavenParser.parsePomFiles(config, mavenCache);
100
101 + if (config.isDumpProjects()) {
102 + dumpMavenProjects(config, mavenProjects);
103 + }
104 +
105 final MavenEbuilder mavenEbuilder = new MavenEbuilder();
106 mavenEbuilder.generateEbuild(config, mavenProjects, mavenCache);
107 }
108 @@ -197,6 +221,10 @@ public class Main {
109 + " is not valid.");
110 }
111
112 + break;
113 + case "--dump-projects":
114 + case "-d":
115 + config.setDumpProjects(true);
116 break;
117 case "--ebuild":
118 case "-e":
119
120 diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
121 index ba575b1..6d0d8ec 100644
122 --- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
123 +++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java
124 @@ -1,5 +1,6 @@
125 package org.gentoo.java.ebuilder.maven;
126
127 +import java.io.PrintWriter;
128 import java.nio.file.Path;
129 import java.util.ArrayList;
130 import java.util.Collections;
131 @@ -121,6 +122,80 @@ public class MavenProject {
132 testResourceDirectories.add(path);
133 }
134
135 + /**
136 + * Outputs project properties to the writer.
137 + *
138 + * @param writer writer
139 + */
140 + public void dump(final PrintWriter writer) {
141 + writer.print("POM file: ");
142 + writer.println(pomFile);
143 + writer.print("groupId: ");
144 + writer.println(groupId);
145 + writer.print("artifactId: ");
146 + writer.println(artifactId);
147 + writer.print("version: ");
148 + writer.println(version);
149 + writer.print("description: ");
150 + writer.println(description);
151 + writer.print("homepage: ");
152 + writer.println(homepage);
153 + writer.print("mainClass: ");
154 + writer.println(mainClass);
155 + writer.print("sourceVersion: ");
156 + writer.println(sourceVersion);
157 + writer.print("targetVersion: ");
158 + writer.println(targetVersion);
159 + writer.print("sourceEncoding: ");
160 + writer.println(sourceEncoding);
161 + writer.print("sourceDirectory: ");
162 + writer.println(sourceDirectory);
163 + writer.print("hasResources: ");
164 + writer.println(hasResources);
165 +
166 + writer.print("resourceDirectories:");
167 +
168 + if (resourceDirectories != null) {
169 + resourceDirectories.forEach((resourceDirectory) -> {
170 + writer.print(" ");
171 + writer.println(resourceDirectory);
172 + });
173 + }
174 +
175 + writer.print("hasTests: ");
176 + writer.println(hasTests);
177 + writer.print("testSourceDirectory: ");
178 + writer.println(testSourceDirectory);
179 + writer.print("hasTestResources: ");
180 + writer.println(hasTestResources);
181 +
182 + writer.println("testResourceDirectories:");
183 +
184 + testResourceDirectories.forEach((testResourceDirectory) -> {
185 + writer.print(" ");
186 + writer.println(testResourceDirectory);
187 + });
188 +
189 + writer.println("dependencies:");
190 +
191 + if (dependencies != null) {
192 + dependencies.forEach((dependency) -> {
193 + writer.print("\n groupId: ");
194 + writer.println(dependency.getGroupId());
195 + writer.print(" artifactId: ");
196 + writer.println(dependency.getArtifactId());
197 + writer.print(" mavenVersion: ");
198 + writer.println(dependency.getMavenVersion());
199 + writer.print(" scope: ");
200 + writer.println(dependency.getScope());
201 + writer.print(" systemDependency: ");
202 + writer.println(dependency.getSystemDependency());
203 + writer.print(" version: ");
204 + writer.println(dependency.getVersion());
205 + });
206 + }
207 + }
208 +
209 /**
210 * Getter for {@link #artifactId}.
211 *
212
213 diff --git a/src/main/resources/usage.txt b/src/main/resources/usage.txt
214 index 4ad06d7..fc2689f 100644
215 --- a/src/main/resources/usage.txt
216 +++ b/src/main/resources/usage.txt
217 @@ -2,6 +2,8 @@ Usage: java-ebuilder <args>
218
219 Generating ebuild:
220 --download-uri|-u <uri> uri that goes to SRC_URI
221 +--dump-projects|-d outputs information about parsed projects (useful
222 + for debugging)
223 --ebuild|-e <file> path to ebuild that should be created
224 --generate-ebuild|-g generates ebuild from pom.xml
225 --keywords|-k <keywords> arch keywords