Skip to content

Commit 9549660

Browse files
committed
zulu builder
1 parent 5902605 commit 9549660

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

src/main/java/dev/dashaun/shell/initializr/plusplus/PomFileCommands.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,25 @@ public String multiArchBuilder() {
149149
return "Successfully added multi-architecture builder support.";
150150
}
151151

152+
@ShellMethod("Use Zulu JDK for spring-boot:build-image with JVM args")
153+
public String zuluBuilder() {
154+
try {
155+
Model model = reader.read(new FileReader(POM_FILE));
156+
157+
// Update plugins
158+
Plugins.addZuluBuilder(model);
159+
160+
// Write updated model to file
161+
MavenXpp3Writer writer = new MavenXpp3Writer();
162+
writer.write(new FileWriter(POM_FILE), model);
163+
164+
}
165+
catch (XmlPullParserException | IOException e) {
166+
return "There was a problem adding multi-architecture builder support.";
167+
}
168+
return "Successfully added multi-architecture builder support.";
169+
}
170+
152171
@ShellMethod("Add Spring Java Format Maven Plugin and validate goal.")
153172
public String springFormat() {
154173
try {

src/main/java/dev/dashaun/shell/initializr/plusplus/models/Plugins.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,14 @@ public static void addMultiArchBuilder(Model model) {
6262
model.getBuild().getPlugins().add(Plugins.multiArchBuilder());
6363
}
6464

65+
public static void addZuluBuilder(Model model) {
66+
model.getBuild()
67+
.getPlugins()
68+
.removeIf(p -> p.getGroupId().equalsIgnoreCase(SPRING_BOOT_GROUP_ID)
69+
&& p.getArtifactId().equalsIgnoreCase(SPRING_BOOT_MAVEN_PLUGIN));
70+
model.getBuild().getPlugins().add(Plugins.zuluBuilder());
71+
}
72+
6573
public static void addSpringFormat(Model model) {
6674
model.getBuild()
6775
.getPlugins()
@@ -146,6 +154,34 @@ public static Plugin multiArchBuilder() {
146154
return p;
147155
}
148156

157+
public static Plugin zuluBuilder() {
158+
Plugin p = new Plugin();
159+
p.setGroupId(SPRING_BOOT_GROUP_ID);
160+
p.setArtifactId(SPRING_BOOT_MAVEN_PLUGIN);
161+
162+
Xpp3Dom configuration = new Xpp3Dom("configuration");
163+
Xpp3Dom image = new Xpp3Dom("image");
164+
Xpp3Dom buildpacks = new Xpp3Dom("buildpacks");
165+
Xpp3Dom zuluBuildpack = new Xpp3Dom("buildpack");
166+
zuluBuildpack.setValue("paketobuildpacks/azul-zulu");
167+
Xpp3Dom javaBuildpack = new Xpp3Dom("buildpack");
168+
javaBuildpack.setValue("paketobuildpacks/java");
169+
buildpacks.addChild(zuluBuildpack);
170+
buildpacks.addChild(javaBuildpack);
171+
image.addChild(buildpacks);
172+
173+
Xpp3Dom env = new Xpp3Dom("env");
174+
Xpp3Dom javaOptions = new Xpp3Dom("BPE_APPEND_JAVA_TOOL_OPTIONS");
175+
javaOptions.setValue("-Xlog:gc:gc.log");
176+
env.addChild(javaOptions);
177+
image.addChild(env);
178+
179+
configuration.addChild(image);
180+
181+
p.setConfiguration(configuration);
182+
return p;
183+
}
184+
149185
public static Plugin springFormat() {
150186
Plugin p = new Plugin();
151187
p.setGroupId("io.spring.javaformat");

0 commit comments

Comments
 (0)