descriptions = buildResult.consumeMulti(ConfigDescriptionBuildItem.class);
- Collections.sort(descriptions);
-
- String existing = "";
- if (Files.exists(configFile)) {
- try (InputStream in = new FileInputStream(configFile.toFile())) {
- existing = new String(FileUtil.readFileContents(in), StandardCharsets.UTF_8);
- }
- }
-
- StringBuilder sb = new StringBuilder();
- for (ConfigDescriptionBuildItem i : descriptions) {
- //we don't want to add these if they already exist
- //either in commended or uncommented form
- if (existing.contains("\n" + i.getPropertyName() + "=") ||
- existing.contains("\n#" + i.getPropertyName() + "=")) {
- continue;
- }
-
- sb.append("\n#\n");
- sb.append(formatDocs(i.getDocs()));
- sb.append("\n#\n#");
- sb.append(i.getPropertyName() + "=" + i.getDefaultValue());
- sb.append("\n");
- }
-
- try (FileOutputStream out = new FileOutputStream(configFile.toFile(), true)) {
- out.write(sb.toString().getBytes(StandardCharsets.UTF_8));
- }
-
- } finally {
- Thread.currentThread().setContextClassLoader(old);
- }
- } catch (Exception e) {
- throw new AppCreatorException("Failed to generate config file", e);
- } finally {
- if (runnerClassLoader != null) {
- try {
- runnerClassLoader.close();
- } catch (IOException e) {
- log.warn("Failed to close runner classloader", e);
- }
- }
- }
- return configFile;
- }
-
- private String formatDocs(String docs) {
-
- if (docs == null) {
- return "";
- }
- StringBuilder builder = new StringBuilder();
-
- boolean lastEmpty = false;
- boolean first = true;
-
- for (String line : docs.replace("", "\n").split("\n")) {
- //process line by line
- String trimmed = line.trim();
- //if the lines are empty we only include a single empty line at most, and add a # character
- if (trimmed.isEmpty()) {
- if (!lastEmpty && !first) {
- lastEmpty = true;
- builder.append("\n#");
- }
- continue;
- }
- //add the newlines
- lastEmpty = false;
- if (first) {
- first = false;
- } else {
- builder.append("\n");
- }
- //replace some special characters, others are taken care of by regex below
- builder.append("# " + trimmed.replace("\n", "\n#")
- .replace("
", "")
- .replace("", " - ")
- .replace("", ""));
- }
-
- String ret = builder.toString();
- //replace @code
- ret = Pattern.compile("\\{@code (.*?)\\}").matcher(ret).replaceAll("'$1'");
- //replace @link with a reference to the field name
- Matcher matcher = Pattern.compile("\\{@link #(.*?)\\}").matcher(ret);
- while (matcher.find()) {
- ret = ret.replace(matcher.group(0), "'" + configify(matcher.group(1)) + "'");
- }
-
- return ret;
- }
-
- private String configify(String group) {
- //replace uppercase characters with a - followed by lowercase
- StringBuilder ret = new StringBuilder();
- for (int i = 0; i < group.length(); ++i) {
- char c = group.charAt(i);
- if (Character.isUpperCase(c)) {
- ret.append("-");
- ret.append(Character.toLowerCase(c));
- } else {
- ret.append(c);
- }
- }
- return ret.toString();
- }
-}
diff --git a/core/creator/src/main/resources/META-INF/services/io.quarkus.creator.AppCreationPhase b/core/creator/src/main/resources/META-INF/services/io.quarkus.creator.AppCreationPhase
deleted file mode 100644
index 2e71c3599..000000000
--- a/core/creator/src/main/resources/META-INF/services/io.quarkus.creator.AppCreationPhase
+++ /dev/null
@@ -1,4 +0,0 @@
-io.quarkus.creator.phase.augment.AugmentTask
-io.quarkus.creator.curator.Curator
-io.quarkus.creator.phase.nativeimage.NativeImagePhase
-io.quarkus.creator.phase.runnerjar.ExecutableOutputTask
diff --git a/core/creator/src/test/java/io/quarkus/creator/phase/curate/test/CurateOutcomeCuratedTask.java b/core/creator/src/test/java/io/quarkus/creator/phase/curate/test/CurateOutcomeCuratedTask.java
deleted file mode 100644
index c0945ad0e..000000000
--- a/core/creator/src/test/java/io/quarkus/creator/phase/curate/test/CurateOutcomeCuratedTask.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package io.quarkus.creator.phase.curate.test;
-
-import io.quarkus.creator.AppCreatorException;
-import io.quarkus.creator.CuratedApplicationCreator;
-import io.quarkus.creator.CuratedTask;
-import io.quarkus.creator.curator.CurateOutcome;
-
-class CurateOutcomeCuratedTask implements CuratedTask {
-
- public static final CurateOutcomeCuratedTask INSTANCE = new CurateOutcomeCuratedTask();
-
- @Override
- public CurateOutcome run(CurateOutcome outcome, CuratedApplicationCreator creator) throws AppCreatorException {
- return outcome;
- }
-}
diff --git a/core/deployment/pom.xml b/core/deployment/pom.xml
index 1ff41a167..d9be37778 100644
--- a/core/deployment/pom.xml
+++ b/core/deployment/pom.xml
@@ -31,6 +31,10 @@
org.ow2.asm
asm