From 6077658fd13dbfd18529c108a60f54b61f2d6e77 Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Sat, 12 Sep 2020 13:27:01 +0200 Subject: [PATCH 1/6] Issue #5256 --add-modules Signed-off-by: Greg Wilkins --- .../org/eclipse/jetty/start/BaseBuilder.java | 64 +++++++++++++++---- .../eclipse/jetty/start/FileInitializer.java | 4 +- .../org/eclipse/jetty/start/StartArgs.java | 22 +++++-- .../jetty/start/builders/StartDirBuilder.java | 2 +- .../fileinits/BaseHomeFileInitializer.java | 4 +- .../start/fileinits/LocalFileInitializer.java | 2 +- .../MavenLocalRepoFileInitializer.java | 2 +- .../usecases/empty.addModule.assert.txt | 34 ++++++++++ .../usecases/empty.addModule.prepare.txt | 2 + .../empty.addModuleCreateStartIni.assert.txt | 34 ++++++++++ .../empty.addModuleCreateStartIni.prepare.txt | 3 + .../empty.addToStartCreateStartd.prepare.txt | 3 - .../usecases/empty.createStartd.prepare.txt | 3 +- ... => minimal-start-d.addToStart.assert.txt} | 2 +- ...=> minimal-start-d.addToStart.prepare.txt} | 0 ...=> minimal-start-d.addToStartd.assert.txt} | 11 +--- .../minimal-start-d.addToStartd.prepare.txt | 1 + ... => minimal-start-d.addUnknown.assert.txt} | 0 ...=> minimal-start-d.addUnknown.prepare.txt} | 0 .../minimal-start-d.alreadyEnabled.assert.txt | 17 +++++ ...inimal-start-d.alreadyEnabled.prepare.txt} | 0 ....assert.txt => minimal-start-d.assert.txt} | 0 .../minimal-start-d.createStartIni.assert.txt | 23 +++++++ ...minimal-start-d.createStartIni.prepare.txt | 2 + ...> minimal-start-ini.addToStart.assert.txt} | 0 ... minimal-start-ini.addToStart.prepare.txt} | 1 - .../minimal-start-ini.addToStartd.assert.txt | 20 ++++++ .../minimal-start-ini.addToStartd.prepare.txt | 1 + .../minimal-start-ini.addUnknown.assert.txt | 1 + .../minimal-start-ini.addUnknown.prepare.txt | 2 + ...nimal-start-ini.alreadyEnabled.assert.txt} | 0 ...nimal-start-ini.alreadyEnabled.prepare.txt | 1 + .../usecases/minimal-start-ini.assert.txt | 11 ++++ .../start.ini | 0 34 files changed, 231 insertions(+), 41 deletions(-) create mode 100644 jetty-start/src/test/resources/usecases/empty.addModule.assert.txt create mode 100644 jetty-start/src/test/resources/usecases/empty.addModule.prepare.txt create mode 100644 jetty-start/src/test/resources/usecases/empty.addModuleCreateStartIni.assert.txt create mode 100644 jetty-start/src/test/resources/usecases/empty.addModuleCreateStartIni.prepare.txt delete mode 100644 jetty-start/src/test/resources/usecases/empty.addToStartCreateStartd.prepare.txt rename jetty-start/src/test/resources/usecases/{barebones.addToStartd.assert.txt => minimal-start-d.addToStart.assert.txt} (95%) rename jetty-start/src/test/resources/usecases/{barebones.addToStart.prepare.txt => minimal-start-d.addToStart.prepare.txt} (100%) rename jetty-start/src/test/resources/usecases/{empty.addToStartCreateStartd.assert.txt => minimal-start-d.addToStartd.assert.txt} (65%) create mode 100644 jetty-start/src/test/resources/usecases/minimal-start-d.addToStartd.prepare.txt rename jetty-start/src/test/resources/usecases/{barebones.addUnknown.assert.txt => minimal-start-d.addUnknown.assert.txt} (100%) rename jetty-start/src/test/resources/usecases/{barebones.addUnknown.prepare.txt => minimal-start-d.addUnknown.prepare.txt} (100%) create mode 100644 jetty-start/src/test/resources/usecases/minimal-start-d.alreadyEnabled.assert.txt rename jetty-start/src/test/resources/usecases/{barebones.alreadyEnabled.prepare.txt => minimal-start-d.alreadyEnabled.prepare.txt} (100%) rename jetty-start/src/test/resources/usecases/{barebones.assert.txt => minimal-start-d.assert.txt} (100%) create mode 100644 jetty-start/src/test/resources/usecases/minimal-start-d.createStartIni.assert.txt create mode 100644 jetty-start/src/test/resources/usecases/minimal-start-d.createStartIni.prepare.txt rename jetty-start/src/test/resources/usecases/{barebones.addToStart.assert.txt => minimal-start-ini.addToStart.assert.txt} (100%) rename jetty-start/src/test/resources/usecases/{barebones.addToStartd.prepare.txt => minimal-start-ini.addToStart.prepare.txt} (60%) create mode 100644 jetty-start/src/test/resources/usecases/minimal-start-ini.addToStartd.assert.txt create mode 100644 jetty-start/src/test/resources/usecases/minimal-start-ini.addToStartd.prepare.txt create mode 100644 jetty-start/src/test/resources/usecases/minimal-start-ini.addUnknown.assert.txt create mode 100644 jetty-start/src/test/resources/usecases/minimal-start-ini.addUnknown.prepare.txt rename jetty-start/src/test/resources/usecases/{barebones.alreadyEnabled.assert.txt => minimal-start-ini.alreadyEnabled.assert.txt} (100%) create mode 100644 jetty-start/src/test/resources/usecases/minimal-start-ini.alreadyEnabled.prepare.txt create mode 100644 jetty-start/src/test/resources/usecases/minimal-start-ini.assert.txt rename jetty-start/src/test/resources/usecases/{barebones => minimal-start-ini}/start.ini (100%) diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/BaseBuilder.java b/jetty-start/src/main/java/org/eclipse/jetty/start/BaseBuilder.java index 15eca129bfbc..29f0a93a8a81 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/BaseBuilder.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/BaseBuilder.java @@ -18,10 +18,13 @@ package org.eclipse.jetty.start; +import java.io.FileWriter; import java.io.IOException; import java.net.URI; +import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.PathMatcher; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -169,35 +172,70 @@ else if (!licensing.acknowledgeLicenses()) Path startd = getBaseHome().getBasePath("start.d"); Path startini = getBaseHome().getBasePath("start.ini"); - if (startArgs.isCreateStartd() && !Files.exists(startd)) + if (startArgs.isCreateStartIni()) { - if (FS.ensureDirectoryExists(startd)) + if (!Files.exists(startini)) { - StartLog.log("MKDIR", baseHome.toShortForm(startd)); + StartLog.log("INFO", "create " + baseHome.toShortForm(startini)); + Files.createFile(startini); modified.set(true); } - if (Files.exists(startini)) + + if (Files.exists(startd)) { - int ini = 0; - Path startdStartIni = startd.resolve("start.ini"); - while (Files.exists(startdStartIni)) + // Copy start.d files into start.ini + DirectoryStream.Filter filter = new DirectoryStream.Filter() + { + PathMatcher iniMatcher = PathMatchers.getMatcher("glob:**/start.d/*.ini"); + @Override + public boolean accept(Path entry) throws IOException + { + return iniMatcher.matches(entry); + } + }; + List paths = new ArrayList<>(); + for (Path path : Files.newDirectoryStream(startd, filter)) + paths.add(path); + paths.sort(new NaturalSort.Paths()); + + // Read config from start.d + List startLines = new ArrayList<>(); + for (Path path : paths) { - ini++; - startdStartIni = startd.resolve("start" + ini + ".ini"); + StartLog.log("INFO", "cp " + baseHome.toShortForm(path) + " to " + baseHome.toShortForm(startini)); + startLines.add(""); + startLines.add("# Config from " + baseHome.toShortForm(path)); + startLines.addAll(Files.readAllLines(path)); } - Files.move(startini, startdStartIni); - modified.set(true); + + // append config to start.ini + try (FileWriter out = new FileWriter(startini.toFile(), true)) + { + for (String line : startLines) + out.append(line).append(System.lineSeparator()); + } + + // delete start.d files + for (Path path : paths) + Files.delete(path); + Files.delete(startd); } } if (!newlyAdded.isEmpty()) { + if (!Files.exists(startini) && !Files.exists(startd) && FS.ensureDirectoryExists(startd)) + { + StartLog.log("INFO", "mkdir " + baseHome.toShortForm(startd)); + modified.set(true); + } + if (Files.exists(startini) && Files.exists(startd)) StartLog.warn("Use both %s and %s is deprecated", getBaseHome().toShortForm(startd), getBaseHome().toShortForm(startini)); boolean useStartD = Files.exists(startd); builder.set(useStartD ? new StartDirBuilder(this) : new StartIniBuilder(this)); - newlyAdded.stream().map(n -> modules.get(n)).forEach(module -> + newlyAdded.stream().map(modules::get).forEach(module -> { String ini = null; try @@ -243,9 +281,11 @@ else if (module.isTransitive()) StartLog.info("%-15s transitively enabled", module.getName()); } else + { StartLog.info("%-15s initialized in %s", module.getName(), ini); + } }); } diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/FileInitializer.java b/jetty-start/src/main/java/org/eclipse/jetty/start/FileInitializer.java index 1b3b12786d0d..037bf054fc6b 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/FileInitializer.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/FileInitializer.java @@ -128,7 +128,7 @@ protected Path getDestination(URI uri, String location) throws IOException protected void download(URI uri, Path destination) throws IOException { if (FS.ensureDirectoryExists(destination.getParent())) - StartLog.log("MKDIR", _basehome.toShortForm(destination.getParent())); + StartLog.log("INFO", "mkdir " + _basehome.toShortForm(destination.getParent())); StartLog.log("DOWNLD", "%s to %s", uri, _basehome.toShortForm(destination)); @@ -206,7 +206,7 @@ public boolean copyDirectory(Path source, Path destination) throws IOException { if (FS.ensureDirectoryExists(to)) { - StartLog.log("MKDIR", _basehome.toShortForm(to)); + StartLog.log("INFO", "mkdir " + _basehome.toShortForm(to)); modified = true; } diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java b/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java index 16ac7fce248e..864c96d16ed6 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java @@ -229,7 +229,7 @@ public class StartArgs private boolean dryRun = false; private final Set dryRunParts = new HashSet<>(); private boolean jpms = false; - private boolean createStartd = false; + private boolean createStartIni = false; private boolean updateIni = false; private String mavenBaseUri; @@ -1019,9 +1019,9 @@ public boolean isVersion() return version; } - public boolean isCreateStartd() + public boolean isCreateStartIni() { - return createStartd; + return createStartIni; } public boolean isUpdateIni() @@ -1260,9 +1260,18 @@ public void parse(final String rawarg, String source) } // jetty.base build-out : add to ${jetty.base}/start.ini + + if ("--create-start-ini".equals(arg)) + { + createStartIni = true; + run = false; + createFiles = true; + licenseCheckRequired = true; + return; + } if ("--create-startd".equals(arg)) { - createStartd = true; + StartLog.warn("--create-startd option is deprecated! By default start.d is used"); run = false; createFiles = true; licenseCheckRequired = true; @@ -1271,15 +1280,14 @@ public void parse(final String rawarg, String source) if (arg.startsWith("--add-to-startd=")) { String value = Props.getValue(arg); - StartLog.warn("--add-to-startd is deprecated! Instead use: --create-startd --add-to-start=%s", value); - createStartd = true; + StartLog.warn("--add-to-startd is deprecated! Instead use: --add-module=%s", value); startModules.addAll(Props.getValues(arg)); run = false; createFiles = true; licenseCheckRequired = true; return; } - if (arg.startsWith("--add-to-start=")) + if (arg.startsWith("--add-module=") || arg.startsWith("--add-to-start=") || arg.startsWith("--add=")) { startModules.addAll(Props.getValues(arg)); run = false; diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/builders/StartDirBuilder.java b/jetty-start/src/main/java/org/eclipse/jetty/start/builders/StartDirBuilder.java index 4e9f4341ea06..72e2e8103e78 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/builders/StartDirBuilder.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/builders/StartDirBuilder.java @@ -47,7 +47,7 @@ public StartDirBuilder(BaseBuilder baseBuilder) throws IOException this.baseHome = baseBuilder.getBaseHome(); this.startDir = baseHome.getBasePath("start.d"); if (FS.ensureDirectoryExists(startDir)) - StartLog.log("MKDIR", baseHome.toShortForm(startDir)); + StartLog.log("INFO", "mkdir " + baseHome.toShortForm(startDir)); } @Override diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/BaseHomeFileInitializer.java b/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/BaseHomeFileInitializer.java index da578b33117a..cd5fda814892 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/BaseHomeFileInitializer.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/BaseHomeFileInitializer.java @@ -69,7 +69,7 @@ public boolean create(URI uri, String location) throws IOException else if (FS.ensureDirectoryExists(destination)) { modified = true; - StartLog.log("MKDIR", _basehome.toShortForm(destination)); + StartLog.log("INFO", "mkdir " + _basehome.toShortForm(destination)); } copyDirectory(source, destination); @@ -79,7 +79,7 @@ else if (FS.ensureDirectoryExists(destination)) if (FS.ensureDirectoryExists(destination.getParent())) { modified = true; - StartLog.log("MKDIR", _basehome.toShortForm(destination.getParent())); + StartLog.log("INFO", "mkdir " + _basehome.toShortForm(destination.getParent())); } if (!FS.exists(destination)) diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/LocalFileInitializer.java b/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/LocalFileInitializer.java index f61ee0a9abf4..e88c8a6359a9 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/LocalFileInitializer.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/LocalFileInitializer.java @@ -78,7 +78,7 @@ public boolean create(URI uri, String location) throws IOException // Create directory boolean mkdir = FS.ensureDirectoryExists(destination); if (mkdir) - StartLog.log("MKDIR", _basehome.toShortForm(destination)); + StartLog.log("INFO", "mkdir " + _basehome.toShortForm(destination)); return mkdir; } diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/MavenLocalRepoFileInitializer.java b/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/MavenLocalRepoFileInitializer.java index 252fce02af14..5f31332d3962 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/MavenLocalRepoFileInitializer.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/MavenLocalRepoFileInitializer.java @@ -129,7 +129,7 @@ public boolean create(URI uri, String location) throws IOException if (localRepoFile != null) { if (FS.ensureDirectoryExists(destination.getParent())) - StartLog.log("MKDIR", _basehome.toShortForm(destination.getParent())); + StartLog.log("INFO", "mkdir " + _basehome.toShortForm(destination.getParent())); StartLog.log("COPY ", "%s to %s", localRepoFile, _basehome.toShortForm(destination)); Files.copy(localRepoFile, destination); return true; diff --git a/jetty-start/src/test/resources/usecases/empty.addModule.assert.txt b/jetty-start/src/test/resources/usecases/empty.addModule.assert.txt new file mode 100644 index 000000000000..51d73055a050 --- /dev/null +++ b/jetty-start/src/test/resources/usecases/empty.addModule.assert.txt @@ -0,0 +1,34 @@ +## The XMLs we expect (order is important) +XML|${jetty.home}/etc/optional.xml +XML|${jetty.home}/etc/base.xml +XML|${jetty.home}/etc/main.xml +XML|${jetty.home}/etc/extra.xml + +# The LIBs we expect (order is irrelevant) +LIB|${jetty.home}/lib/optional.jar +LIB|${jetty.home}/lib/base.jar +LIB|${jetty.home}/lib/main.jar +LIB|${jetty.home}/lib/other.jar +LIB|${jetty.home}/lib/extra/extra0.jar +LIB|${jetty.home}/lib/extra/extra1.jar + +# The Properties we expect (order is irrelevant) +PROP|extra.prop=value0 +PROP|main.prop=value0 +PROP|optional.prop=value0 + +# Files / Directories to create +EXISTS|maindir/ +EXISTS|start.ini + +# Output Assertions [regex!] (order is irrelevant) +OUTPUT|INFO : mkdir ..jetty.base./start.d +OUTPUT|INFO : extra initialized in \$\{jetty.base\}/start.d/extra.ini +OUTPUT|INFO : main transitively enabled, ini template available with --add-to-start=main +OUTPUT|INFO : optional initialized in \$\{jetty.base\}/start.d/optional.ini +OUTPUT|INFO : base transitively enabled +OUTPUT|INFO : mkdir ..jetty.base./maindir +OUTPUT|INFO : Base directory was modified + + + diff --git a/jetty-start/src/test/resources/usecases/empty.addModule.prepare.txt b/jetty-start/src/test/resources/usecases/empty.addModule.prepare.txt new file mode 100644 index 000000000000..5c9ba294d955 --- /dev/null +++ b/jetty-start/src/test/resources/usecases/empty.addModule.prepare.txt @@ -0,0 +1,2 @@ +--add-module=extra +--add-module=optional diff --git a/jetty-start/src/test/resources/usecases/empty.addModuleCreateStartIni.assert.txt b/jetty-start/src/test/resources/usecases/empty.addModuleCreateStartIni.assert.txt new file mode 100644 index 000000000000..c277b8d00108 --- /dev/null +++ b/jetty-start/src/test/resources/usecases/empty.addModuleCreateStartIni.assert.txt @@ -0,0 +1,34 @@ +## The XMLs we expect (order is important) +XML|${jetty.home}/etc/optional.xml +XML|${jetty.home}/etc/base.xml +XML|${jetty.home}/etc/main.xml +XML|${jetty.home}/etc/extra.xml + +# The LIBs we expect (order is irrelevant) +LIB|${jetty.home}/lib/optional.jar +LIB|${jetty.home}/lib/base.jar +LIB|${jetty.home}/lib/main.jar +LIB|${jetty.home}/lib/other.jar +LIB|${jetty.home}/lib/extra/extra0.jar +LIB|${jetty.home}/lib/extra/extra1.jar + +# The Properties we expect (order is irrelevant) +PROP|extra.prop=value0 +PROP|main.prop=value0 +PROP|optional.prop=value0 + +# Files / Directories to create +EXISTS|maindir/ +EXISTS|start.ini + +# Output Assertions [regex!] (order is irrelevant) +OUTPUT|INFO : create ..jetty.base./start.ini +OUTPUT|INFO : extra initialized in ..jetty.base./start.ini +OUTPUT|INFO : main transitively enabled, ini template available with --add-to-start=main +OUTPUT|INFO : optional initialized in ..jetty.base./start.ini +OUTPUT|INFO : base transitively enabled +OUTPUT|INFO : mkdir ..jetty.base./maindir +OUTPUT|INFO : Base directory was modified + + + diff --git a/jetty-start/src/test/resources/usecases/empty.addModuleCreateStartIni.prepare.txt b/jetty-start/src/test/resources/usecases/empty.addModuleCreateStartIni.prepare.txt new file mode 100644 index 000000000000..b4ce2c93cfc7 --- /dev/null +++ b/jetty-start/src/test/resources/usecases/empty.addModuleCreateStartIni.prepare.txt @@ -0,0 +1,3 @@ +--add-module=extra +--add-module=optional +--create-start-ini diff --git a/jetty-start/src/test/resources/usecases/empty.addToStartCreateStartd.prepare.txt b/jetty-start/src/test/resources/usecases/empty.addToStartCreateStartd.prepare.txt deleted file mode 100644 index 082a6aab8888..000000000000 --- a/jetty-start/src/test/resources/usecases/empty.addToStartCreateStartd.prepare.txt +++ /dev/null @@ -1,3 +0,0 @@ ---add-to-start=extra ---create-startd ---add-to-start=optional diff --git a/jetty-start/src/test/resources/usecases/empty.createStartd.prepare.txt b/jetty-start/src/test/resources/usecases/empty.createStartd.prepare.txt index ed259b5c4f31..a2c48c469de5 100644 --- a/jetty-start/src/test/resources/usecases/empty.createStartd.prepare.txt +++ b/jetty-start/src/test/resources/usecases/empty.createStartd.prepare.txt @@ -1,2 +1 @@ ---create-startd ---add-to-start=extra,optional +--add-to-startd=extra,optional diff --git a/jetty-start/src/test/resources/usecases/barebones.addToStartd.assert.txt b/jetty-start/src/test/resources/usecases/minimal-start-d.addToStart.assert.txt similarity index 95% rename from jetty-start/src/test/resources/usecases/barebones.addToStartd.assert.txt rename to jetty-start/src/test/resources/usecases/minimal-start-d.addToStart.assert.txt index 138901f6951f..c77e18910c8a 100644 --- a/jetty-start/src/test/resources/usecases/barebones.addToStartd.assert.txt +++ b/jetty-start/src/test/resources/usecases/minimal-start-d.addToStart.assert.txt @@ -15,5 +15,5 @@ PROP|optional.prop=value0 # Files / Directories to create EXISTS|maindir/ -EXISTS|start.d/start.ini +EXISTS|start.d/main.ini EXISTS|start.d/optional.ini diff --git a/jetty-start/src/test/resources/usecases/barebones.addToStart.prepare.txt b/jetty-start/src/test/resources/usecases/minimal-start-d.addToStart.prepare.txt similarity index 100% rename from jetty-start/src/test/resources/usecases/barebones.addToStart.prepare.txt rename to jetty-start/src/test/resources/usecases/minimal-start-d.addToStart.prepare.txt diff --git a/jetty-start/src/test/resources/usecases/empty.addToStartCreateStartd.assert.txt b/jetty-start/src/test/resources/usecases/minimal-start-d.addToStartd.assert.txt similarity index 65% rename from jetty-start/src/test/resources/usecases/empty.addToStartCreateStartd.assert.txt rename to jetty-start/src/test/resources/usecases/minimal-start-d.addToStartd.assert.txt index 1919711ff0dd..6da51a03e2c6 100644 --- a/jetty-start/src/test/resources/usecases/empty.addToStartCreateStartd.assert.txt +++ b/jetty-start/src/test/resources/usecases/minimal-start-d.addToStartd.assert.txt @@ -2,25 +2,20 @@ XML|${jetty.home}/etc/optional.xml XML|${jetty.home}/etc/base.xml XML|${jetty.home}/etc/main.xml -XML|${jetty.home}/etc/extra.xml # The LIBs we expect (order is irrelevant) -LIB|${jetty.home}/lib/optional.jar LIB|${jetty.home}/lib/base.jar LIB|${jetty.home}/lib/main.jar LIB|${jetty.home}/lib/other.jar -LIB|${jetty.home}/lib/extra/extra0.jar -LIB|${jetty.home}/lib/extra/extra1.jar +LIB|${jetty.home}/lib/optional.jar # The Properties we expect (order is irrelevant) -PROP|extra.prop=value0 PROP|main.prop=value0 PROP|optional.prop=value0 # Files / Directories to create EXISTS|maindir/ -EXISTS|start.d/extra.ini +EXISTS|start.d/main.ini EXISTS|start.d/optional.ini -# Output Assertions [regex!] (order is irrelevant) -OUTPUT|MKDIR : \$\{jetty.base\}[\\/]maindir +OUTPUT|WARN : --add-to-startd is deprecated! Instead use: --add-module=optional \ No newline at end of file diff --git a/jetty-start/src/test/resources/usecases/minimal-start-d.addToStartd.prepare.txt b/jetty-start/src/test/resources/usecases/minimal-start-d.addToStartd.prepare.txt new file mode 100644 index 000000000000..ba1e8a118f1a --- /dev/null +++ b/jetty-start/src/test/resources/usecases/minimal-start-d.addToStartd.prepare.txt @@ -0,0 +1 @@ +--add-to-startd=optional diff --git a/jetty-start/src/test/resources/usecases/barebones.addUnknown.assert.txt b/jetty-start/src/test/resources/usecases/minimal-start-d.addUnknown.assert.txt similarity index 100% rename from jetty-start/src/test/resources/usecases/barebones.addUnknown.assert.txt rename to jetty-start/src/test/resources/usecases/minimal-start-d.addUnknown.assert.txt diff --git a/jetty-start/src/test/resources/usecases/barebones.addUnknown.prepare.txt b/jetty-start/src/test/resources/usecases/minimal-start-d.addUnknown.prepare.txt similarity index 100% rename from jetty-start/src/test/resources/usecases/barebones.addUnknown.prepare.txt rename to jetty-start/src/test/resources/usecases/minimal-start-d.addUnknown.prepare.txt diff --git a/jetty-start/src/test/resources/usecases/minimal-start-d.alreadyEnabled.assert.txt b/jetty-start/src/test/resources/usecases/minimal-start-d.alreadyEnabled.assert.txt new file mode 100644 index 000000000000..dcd3d29c6bfc --- /dev/null +++ b/jetty-start/src/test/resources/usecases/minimal-start-d.alreadyEnabled.assert.txt @@ -0,0 +1,17 @@ +## The XMLs we expect (order is important) +XML|${jetty.home}/etc/base.xml +XML|${jetty.home}/etc/main.xml + +# The LIBs we expect (order is irrelevant) +LIB|${jetty.home}/lib/base.jar +LIB|${jetty.home}/lib/main.jar +LIB|${jetty.home}/lib/other.jar + +# The Properties we expect (order is irrelevant) +PROP|main.prop=value0 + +# Files / Directories to create +EXISTS|maindir/ +EXISTS|start.d/main.ini + +OUTPUT|INFO : main already enabled by \[\$\{jetty.base}[\\/]start.d/main.ini\] diff --git a/jetty-start/src/test/resources/usecases/barebones.alreadyEnabled.prepare.txt b/jetty-start/src/test/resources/usecases/minimal-start-d.alreadyEnabled.prepare.txt similarity index 100% rename from jetty-start/src/test/resources/usecases/barebones.alreadyEnabled.prepare.txt rename to jetty-start/src/test/resources/usecases/minimal-start-d.alreadyEnabled.prepare.txt diff --git a/jetty-start/src/test/resources/usecases/barebones.assert.txt b/jetty-start/src/test/resources/usecases/minimal-start-d.assert.txt similarity index 100% rename from jetty-start/src/test/resources/usecases/barebones.assert.txt rename to jetty-start/src/test/resources/usecases/minimal-start-d.assert.txt diff --git a/jetty-start/src/test/resources/usecases/minimal-start-d.createStartIni.assert.txt b/jetty-start/src/test/resources/usecases/minimal-start-d.createStartIni.assert.txt new file mode 100644 index 000000000000..d145418bac0c --- /dev/null +++ b/jetty-start/src/test/resources/usecases/minimal-start-d.createStartIni.assert.txt @@ -0,0 +1,23 @@ +## The XMLs we expect (order is important) +XML|${jetty.home}/etc/optional.xml +XML|${jetty.home}/etc/base.xml +XML|${jetty.home}/etc/main.xml + +# The LIBs we expect (order is irrelevant) +LIB|${jetty.home}/lib/base.jar +LIB|${jetty.home}/lib/main.jar +LIB|${jetty.home}/lib/other.jar +LIB|${jetty.home}/lib/optional.jar + +# The Properties we expect (order is irrelevant) +PROP|main.prop=value0 +PROP|optional.prop=value0 + +# Files / Directories to create +EXISTS|maindir/ +EXISTS|start.ini + +OUTPUT|INFO : cp ..jetty.base./start.d/main.ini to ..jetty.base./start.ini +OUTPUT|INFO : optional initialized in ..jetty.base./start.ini +OUTPUT|INFO : mkdir ..jetty.base./maindir +OUTPUT|INFO : Base directory was modified diff --git a/jetty-start/src/test/resources/usecases/minimal-start-d.createStartIni.prepare.txt b/jetty-start/src/test/resources/usecases/minimal-start-d.createStartIni.prepare.txt new file mode 100644 index 000000000000..70ff9c842415 --- /dev/null +++ b/jetty-start/src/test/resources/usecases/minimal-start-d.createStartIni.prepare.txt @@ -0,0 +1,2 @@ +--add-to-start=optional +--create-start-ini \ No newline at end of file diff --git a/jetty-start/src/test/resources/usecases/barebones.addToStart.assert.txt b/jetty-start/src/test/resources/usecases/minimal-start-ini.addToStart.assert.txt similarity index 100% rename from jetty-start/src/test/resources/usecases/barebones.addToStart.assert.txt rename to jetty-start/src/test/resources/usecases/minimal-start-ini.addToStart.assert.txt diff --git a/jetty-start/src/test/resources/usecases/barebones.addToStartd.prepare.txt b/jetty-start/src/test/resources/usecases/minimal-start-ini.addToStart.prepare.txt similarity index 60% rename from jetty-start/src/test/resources/usecases/barebones.addToStartd.prepare.txt rename to jetty-start/src/test/resources/usecases/minimal-start-ini.addToStart.prepare.txt index 683f7131d266..4690e3f5e0e6 100644 --- a/jetty-start/src/test/resources/usecases/barebones.addToStartd.prepare.txt +++ b/jetty-start/src/test/resources/usecases/minimal-start-ini.addToStart.prepare.txt @@ -1,2 +1 @@ ---create-startd --add-to-start=optional diff --git a/jetty-start/src/test/resources/usecases/minimal-start-ini.addToStartd.assert.txt b/jetty-start/src/test/resources/usecases/minimal-start-ini.addToStartd.assert.txt new file mode 100644 index 000000000000..a19054e46dd6 --- /dev/null +++ b/jetty-start/src/test/resources/usecases/minimal-start-ini.addToStartd.assert.txt @@ -0,0 +1,20 @@ +## The XMLs we expect (order is important) +XML|${jetty.home}/etc/optional.xml +XML|${jetty.home}/etc/base.xml +XML|${jetty.home}/etc/main.xml + +# The LIBs we expect (order is irrelevant) +LIB|${jetty.home}/lib/base.jar +LIB|${jetty.home}/lib/main.jar +LIB|${jetty.home}/lib/other.jar +LIB|${jetty.home}/lib/optional.jar + +# The Properties we expect (order is irrelevant) +PROP|main.prop=value0 +PROP|optional.prop=value0 + +# Files / Directories to create +EXISTS|maindir/ +EXISTS|start.ini + +OUTPUT|WARN : --add-to-startd is deprecated! Instead use: --add-module=optional \ No newline at end of file diff --git a/jetty-start/src/test/resources/usecases/minimal-start-ini.addToStartd.prepare.txt b/jetty-start/src/test/resources/usecases/minimal-start-ini.addToStartd.prepare.txt new file mode 100644 index 000000000000..ba1e8a118f1a --- /dev/null +++ b/jetty-start/src/test/resources/usecases/minimal-start-ini.addToStartd.prepare.txt @@ -0,0 +1 @@ +--add-to-startd=optional diff --git a/jetty-start/src/test/resources/usecases/minimal-start-ini.addUnknown.assert.txt b/jetty-start/src/test/resources/usecases/minimal-start-ini.addUnknown.assert.txt new file mode 100644 index 000000000000..273cda743907 --- /dev/null +++ b/jetty-start/src/test/resources/usecases/minimal-start-ini.addUnknown.assert.txt @@ -0,0 +1 @@ +EX|UsageException diff --git a/jetty-start/src/test/resources/usecases/minimal-start-ini.addUnknown.prepare.txt b/jetty-start/src/test/resources/usecases/minimal-start-ini.addUnknown.prepare.txt new file mode 100644 index 000000000000..e47d043e0d91 --- /dev/null +++ b/jetty-start/src/test/resources/usecases/minimal-start-ini.addUnknown.prepare.txt @@ -0,0 +1,2 @@ +--create-startd +--add-to-start=unknown diff --git a/jetty-start/src/test/resources/usecases/barebones.alreadyEnabled.assert.txt b/jetty-start/src/test/resources/usecases/minimal-start-ini.alreadyEnabled.assert.txt similarity index 100% rename from jetty-start/src/test/resources/usecases/barebones.alreadyEnabled.assert.txt rename to jetty-start/src/test/resources/usecases/minimal-start-ini.alreadyEnabled.assert.txt diff --git a/jetty-start/src/test/resources/usecases/minimal-start-ini.alreadyEnabled.prepare.txt b/jetty-start/src/test/resources/usecases/minimal-start-ini.alreadyEnabled.prepare.txt new file mode 100644 index 000000000000..b780ce193329 --- /dev/null +++ b/jetty-start/src/test/resources/usecases/minimal-start-ini.alreadyEnabled.prepare.txt @@ -0,0 +1 @@ +--add-to-start=main diff --git a/jetty-start/src/test/resources/usecases/minimal-start-ini.assert.txt b/jetty-start/src/test/resources/usecases/minimal-start-ini.assert.txt new file mode 100644 index 000000000000..312011d73cae --- /dev/null +++ b/jetty-start/src/test/resources/usecases/minimal-start-ini.assert.txt @@ -0,0 +1,11 @@ +## The XMLs we expect (order is important) +XML|${jetty.home}/etc/base.xml +XML|${jetty.home}/etc/main.xml + +# The LIBs we expect (order is irrelevant) +LIB|${jetty.home}/lib/base.jar +LIB|${jetty.home}/lib/main.jar +LIB|${jetty.home}/lib/other.jar + +# The Properties we expect (order is irrelevant) +PROP|main.prop=value0 diff --git a/jetty-start/src/test/resources/usecases/barebones/start.ini b/jetty-start/src/test/resources/usecases/minimal-start-ini/start.ini similarity index 100% rename from jetty-start/src/test/resources/usecases/barebones/start.ini rename to jetty-start/src/test/resources/usecases/minimal-start-ini/start.ini From a73bd7f6b41354b9dbce807ac5c1a13c22182a2b Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Sat, 12 Sep 2020 13:27:38 +0200 Subject: [PATCH 2/6] main.ini Signed-off-by: Greg Wilkins --- .../src/test/resources/usecases/minimal-start-d/start.d/main.ini | 1 + 1 file changed, 1 insertion(+) create mode 100644 jetty-start/src/test/resources/usecases/minimal-start-d/start.d/main.ini diff --git a/jetty-start/src/test/resources/usecases/minimal-start-d/start.d/main.ini b/jetty-start/src/test/resources/usecases/minimal-start-d/start.d/main.ini new file mode 100644 index 000000000000..4cae2dd2f88f --- /dev/null +++ b/jetty-start/src/test/resources/usecases/minimal-start-d/start.d/main.ini @@ -0,0 +1 @@ +--module=main From 877fd4ac7771bf295b840b9500bd2302851d078d Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Sat, 12 Sep 2020 14:10:04 +0200 Subject: [PATCH 3/6] Issue #5256 --add-modules usage.txt Signed-off-by: Greg Wilkins --- .../org/eclipse/jetty/start/StartArgs.java | 19 +++----- .../org/eclipse/jetty/start/usage.txt | 47 ++++++++++--------- .../minimal-start-d.addToStartd.assert.txt | 2 +- .../minimal-start-ini.addToStartd.assert.txt | 2 +- 4 files changed, 34 insertions(+), 36 deletions(-) diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java b/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java index 864c96d16ed6..1d015933c79e 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java @@ -193,7 +193,7 @@ public class StartArgs // jetty.base - build out commands /** - * --add-to-start[d]=[module,[module]] + * --add-module=[module,[module]] */ private List startModules = new ArrayList<>(); @@ -1277,18 +1277,13 @@ public void parse(final String rawarg, String source) licenseCheckRequired = true; return; } - if (arg.startsWith("--add-to-startd=")) - { - String value = Props.getValue(arg); - StartLog.warn("--add-to-startd is deprecated! Instead use: --add-module=%s", value); - startModules.addAll(Props.getValues(arg)); - run = false; - createFiles = true; - licenseCheckRequired = true; - return; - } - if (arg.startsWith("--add-module=") || arg.startsWith("--add-to-start=") || arg.startsWith("--add=")) + if (arg.startsWith("--add-module=") || arg.startsWith("--add-to-start=") || arg.startsWith("--add-to-startd=")) { + if (arg.startsWith("--add-to-start=") || arg.startsWith("--add-to-startd=")) + { + String value = Props.getValue(arg); + StartLog.warn("Option " + arg.split("=")[0] + " is deprecated! Instead use: --add-module=%s", value); + } startModules.addAll(Props.getValues(arg)); run = false; createFiles = true; diff --git a/jetty-start/src/main/resources/org/eclipse/jetty/start/usage.txt b/jetty-start/src/main/resources/org/eclipse/jetty/start/usage.txt index 4bd9fa87be52..52e7b34e7d9a 100644 --- a/jetty-start/src/main/resources/org/eclipse/jetty/start/usage.txt +++ b/jetty-start/src/main/resources/org/eclipse/jetty/start/usage.txt @@ -103,45 +103,48 @@ Module Management: List all modules. --module=(,)* - Temporarily enable a module from the command line. - Note: this can also be used in the ${jetty.base}/start.ini - or ${jetty.base}/start.d/*.ini files. + Enable a module for this run. To enable a module for all + future runs, use --add-module + Note: this option is used in the ${jetty.base}/start.ini + or ${jetty.base}/start.d/*.ini files created by --add-module. - --add-to-start=(,)* + --add-module=(,)* Add the modules to the list of modules enabled at start. Transitive dependencies are followed and dependent modules may also explicitly added. Modules are added to the start by creating an ini file that contains the --module argument and any other parameters defined in the modules ini template. - If the directory ${jetty.base}/start.d - exists then .ini files are created within - that directory, otherwise then enabling configuration - is appended to the ${jetty.base}/start.ini file. + If the ${jetty.base}/start.ini file exists, configuration is + appended, otherwise the directory ${jetty.base}/start.d + is used to create .ini files. If the ini template contains properties, these may be amended in the generated file by specifying those properties on the command line. - Note: not all modules have ini templates and thus may - be transitively enabled and not explicitly enabled in - a ini file. - + If a module is transitively enabled, it's ini file will not + be generated. An explicit --add-module is required to generate + an ini file. + + This option replaces the depecated --add-to-start and --add-to-startd. + --update-ini Scan all start.ini and start.d/*.ini files and update any properties with values specified on the command line. e.g. --update-ini jetty.http.port=8888 - --create-startd Ensure that a start.d directory exists for use by - subsequent --add-to-start=*. If a start.ini file exists - it is moved to the start.d directory + --create-start-ini + Create a ${jetty.base}/start.ini file. If a ${jetty.base}/start.d + directory exists, then all it's contained ini files are concatinated into + the start.ini file. --write-module-graph= Create a graphviz *.dot file of the module graph as it exists for the active ${jetty.base}. See http://graphviz.org/ for details on how to post-process this file into the output best suited for your needs. - - --create-files Create any missing files that are required by initialized - modules. This may download a file from the network if the + + --create-files Create any missing files that are required by initialized + modules. This may download a file from the network if the module provides a URL. --skip-file-validation=(, Add arbitrary classpath entries to the the server classpath. - + --include-jetty-dir= Include an extra jetty directory to use as a source for configuration details. This directory behaves similarly diff --git a/jetty-start/src/test/resources/usecases/minimal-start-d.addToStartd.assert.txt b/jetty-start/src/test/resources/usecases/minimal-start-d.addToStartd.assert.txt index 6da51a03e2c6..5399ae72d098 100644 --- a/jetty-start/src/test/resources/usecases/minimal-start-d.addToStartd.assert.txt +++ b/jetty-start/src/test/resources/usecases/minimal-start-d.addToStartd.assert.txt @@ -18,4 +18,4 @@ EXISTS|maindir/ EXISTS|start.d/main.ini EXISTS|start.d/optional.ini -OUTPUT|WARN : --add-to-startd is deprecated! Instead use: --add-module=optional \ No newline at end of file +OUTPUT|WARN : Option --add-to-startd is deprecated! Instead use: --add-module=optional \ No newline at end of file diff --git a/jetty-start/src/test/resources/usecases/minimal-start-ini.addToStartd.assert.txt b/jetty-start/src/test/resources/usecases/minimal-start-ini.addToStartd.assert.txt index a19054e46dd6..640eb44f6e8c 100644 --- a/jetty-start/src/test/resources/usecases/minimal-start-ini.addToStartd.assert.txt +++ b/jetty-start/src/test/resources/usecases/minimal-start-ini.addToStartd.assert.txt @@ -17,4 +17,4 @@ PROP|optional.prop=value0 EXISTS|maindir/ EXISTS|start.ini -OUTPUT|WARN : --add-to-startd is deprecated! Instead use: --add-module=optional \ No newline at end of file +OUTPUT|WARN : Option --add-to-startd is deprecated! Instead use: --add-module=optional \ No newline at end of file From 46f051d7e264f907c98d5ec4dd44102b436ee165 Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Mon, 14 Sep 2020 12:33:49 +0200 Subject: [PATCH 4/6] Issue #5256 --add-modules updates from review Signed-off-by: Greg Wilkins --- .../java/org/eclipse/jetty/start/BaseBuilder.java | 12 ++++++------ .../org/eclipse/jetty/start/FileInitializer.java | 8 ++++---- .../main/java/org/eclipse/jetty/start/Licensing.java | 2 +- .../main/java/org/eclipse/jetty/start/Modules.java | 2 +- .../main/java/org/eclipse/jetty/start/StartArgs.java | 2 +- .../main/java/org/eclipse/jetty/start/StartLog.java | 4 ++-- .../jetty/start/builders/StartDirBuilder.java | 4 ++-- .../jetty/start/builders/StartIniBuilder.java | 2 +- .../eclipse/jetty/start/config/DirConfigSource.java | 7 +++++++ .../start/fileinits/BaseHomeFileInitializer.java | 6 +++--- .../jetty/start/fileinits/LocalFileInitializer.java | 2 +- .../fileinits/MavenLocalRepoFileInitializer.java | 4 ++-- .../jetty/start/fileinits/TestFileInitializer.java | 2 +- .../resources/usecases/empty.addModule.assert.txt | 2 +- .../empty.addModuleCreateStartIni.assert.txt | 2 +- 15 files changed, 34 insertions(+), 27 deletions(-) diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/BaseBuilder.java b/jetty-start/src/main/java/org/eclipse/jetty/start/BaseBuilder.java index 29f0a93a8a81..df5e4154d17c 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/BaseBuilder.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/BaseBuilder.java @@ -128,11 +128,11 @@ public boolean build() throws IOException { for (String name : startArgs.getStartModules()) { - newlyAdded.addAll(modules.enable(name, "--add-to-start")); + newlyAdded.addAll(modules.enable(name, "--add-module")); if (!newlyAdded.contains(name)) { Set sources = modules.get(name).getEnableSources(); - sources.remove("--add-to-start"); + sources.remove("--add-module"); StartLog.info("%s already enabled by %s", name, sources); } } @@ -176,7 +176,7 @@ else if (!licensing.acknowledgeLicenses()) { if (!Files.exists(startini)) { - StartLog.log("INFO", "create " + baseHome.toShortForm(startini)); + StartLog.info("create " + baseHome.toShortForm(startini)); Files.createFile(startini); modified.set(true); } @@ -202,7 +202,7 @@ public boolean accept(Path entry) throws IOException List startLines = new ArrayList<>(); for (Path path : paths) { - StartLog.log("INFO", "cp " + baseHome.toShortForm(path) + " to " + baseHome.toShortForm(startini)); + StartLog.info("cp " + baseHome.toShortForm(path) + " to " + baseHome.toShortForm(startini)); startLines.add(""); startLines.add("# Config from " + baseHome.toShortForm(path)); startLines.addAll(Files.readAllLines(path)); @@ -226,7 +226,7 @@ public boolean accept(Path entry) throws IOException { if (!Files.exists(startini) && !Files.exists(startd) && FS.ensureDirectoryExists(startd)) { - StartLog.log("INFO", "mkdir " + baseHome.toShortForm(startd)); + StartLog.info("mkdir " + baseHome.toShortForm(startd)); modified.set(true); } @@ -274,7 +274,7 @@ public boolean accept(Path entry) throws IOException else if (module.isTransitive()) { if (module.hasIniTemplate()) - StartLog.info("%-15s transitively enabled, ini template available with --add-to-start=%s", + StartLog.info("%-15s transitively enabled, ini template available with --add-module=%s", module.getName(), module.getName()); else diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/FileInitializer.java b/jetty-start/src/main/java/org/eclipse/jetty/start/FileInitializer.java index 037bf054fc6b..4f6cfa4eda8f 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/FileInitializer.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/FileInitializer.java @@ -128,9 +128,9 @@ protected Path getDestination(URI uri, String location) throws IOException protected void download(URI uri, Path destination) throws IOException { if (FS.ensureDirectoryExists(destination.getParent())) - StartLog.log("INFO", "mkdir " + _basehome.toShortForm(destination.getParent())); + StartLog.info("mkdir " + _basehome.toShortForm(destination.getParent())); - StartLog.log("DOWNLD", "%s to %s", uri, _basehome.toShortForm(destination)); + StartLog.info("download %s to %s", uri, _basehome.toShortForm(destination)); HttpURLConnection http = (HttpURLConnection)uri.toURL().openConnection(); http.setInstanceFollowRedirects(true); @@ -206,7 +206,7 @@ public boolean copyDirectory(Path source, Path destination) throws IOException { if (FS.ensureDirectoryExists(to)) { - StartLog.log("INFO", "mkdir " + _basehome.toShortForm(to)); + StartLog.info("mkdir " + _basehome.toShortForm(to)); modified = true; } @@ -215,7 +215,7 @@ public boolean copyDirectory(Path source, Path destination) throws IOException } else if (!Files.exists(to)) { - StartLog.log("COPY ", "%s to %s", _basehome.toShortForm(from), _basehome.toShortForm(to)); + StartLog.info("copy %s to %s", _basehome.toShortForm(from), _basehome.toShortForm(to)); Files.copy(from, to); modified = true; } diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/Licensing.java b/jetty-start/src/main/java/org/eclipse/jetty/start/Licensing.java index e05b11aaa0c8..d0e8915e75c9 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/Licensing.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/Licensing.java @@ -85,7 +85,7 @@ public boolean acknowledgeLicenses() throws IOException String propBasedAckValue = System.getProperty(PROP_ACK_LICENSES); if (propBasedAckValue != null) { - StartLog.log("TESTING MODE", "Programmatic ACK - %s=%s", PROP_ACK_LICENSES, propBasedAckValue); + StartLog.info("Programmatic ACK - %s=%s", PROP_ACK_LICENSES, propBasedAckValue); licenseAck = Boolean.parseBoolean(propBasedAckValue); } else diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/Modules.java b/jetty-start/src/main/java/org/eclipse/jetty/start/Modules.java index 3e3c200bedae..2b3d13da26d4 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/Modules.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/Modules.java @@ -193,7 +193,7 @@ public void dumpEnabled() name = ""; } if (module.isTransitive() && module.hasIniTemplate()) - System.out.printf(" init template available with --add-to-start=%s%n", module.getName()); + System.out.printf(" init template available with --add-module=%s%n", module.getName()); } } diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java b/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java index 1d015933c79e..c5539d2bb610 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java @@ -1277,7 +1277,7 @@ public void parse(final String rawarg, String source) licenseCheckRequired = true; return; } - if (arg.startsWith("--add-module=") || arg.startsWith("--add-to-start=") || arg.startsWith("--add-to-startd=")) + if (arg.startsWith("--add-module=") || arg.startsWith("--add-modules=") || arg.startsWith("--add-to-start=") || arg.startsWith("--add-to-startd=")) { if (arg.startsWith("--add-to-start=") || arg.startsWith("--add-to-startd=")) { diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/StartLog.java b/jetty-start/src/main/java/org/eclipse/jetty/start/StartLog.java index be876154e532..cbb5eb323e71 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/StartLog.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/StartLog.java @@ -78,12 +78,12 @@ public static StartLog getInstance() return INSTANCE; } - public static void log(String type, String msg) + private static void log(String type, String msg) { logStream.printf("%-6s: %s%n", type, msg); } - public static void log(String type, String format, Object... args) + private static void log(String type, String format, Object... args) { log(type, String.format(format, args)); } diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/builders/StartDirBuilder.java b/jetty-start/src/main/java/org/eclipse/jetty/start/builders/StartDirBuilder.java index 72e2e8103e78..0eb24ff678a6 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/builders/StartDirBuilder.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/builders/StartDirBuilder.java @@ -35,7 +35,7 @@ /** * Management of the ${jetty.base}/start.d/ based configuration. *

- * Implementation of the --add-to-startd=[name] command line behavior + * Implementation of the --add-modues=[name] command line behavior */ public class StartDirBuilder implements BaseBuilder.Config { @@ -47,7 +47,7 @@ public StartDirBuilder(BaseBuilder baseBuilder) throws IOException this.baseHome = baseBuilder.getBaseHome(); this.startDir = baseHome.getBasePath("start.d"); if (FS.ensureDirectoryExists(startDir)) - StartLog.log("INFO", "mkdir " + baseHome.toShortForm(startDir)); + StartLog.info("mkdir " + baseHome.toShortForm(startDir)); } @Override diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/builders/StartIniBuilder.java b/jetty-start/src/main/java/org/eclipse/jetty/start/builders/StartIniBuilder.java index 78fdc9df13e8..b66627c7e73a 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/builders/StartIniBuilder.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/builders/StartIniBuilder.java @@ -38,7 +38,7 @@ /** * Management of the ${jetty.base}/start.ini based configuration. *

- * Implementation of the --add-to-start=[name] command line behavior + * Implementation of the --add-module=[name] command line behavior */ public class StartIniBuilder implements BaseBuilder.Config { diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/config/DirConfigSource.java b/jetty-start/src/main/java/org/eclipse/jetty/start/config/DirConfigSource.java index 72a61f43ac72..cf6e0d39d0ec 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/config/DirConfigSource.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/config/DirConfigSource.java @@ -62,14 +62,21 @@ public class DirConfigSource implements ConfigSource BANNED_ARGS.add("--exec-print"); BANNED_ARGS.add("--list-config"); BANNED_ARGS.add("--list-classpath"); + BANNED_ARGS.add("--list-module"); BANNED_ARGS.add("--list-modules"); + BANNED_ARGS.add("--show-module"); + BANNED_ARGS.add("--show-modules"); BANNED_ARGS.add("--write-module-graph"); BANNED_ARGS.add("--version"); BANNED_ARGS.add("-v"); BANNED_ARGS.add("--download"); BANNED_ARGS.add("--create-files"); + BANNED_ARGS.add("--create-startd"); + BANNED_ARGS.add("--create-start-ini"); BANNED_ARGS.add("--add-to-startd"); BANNED_ARGS.add("--add-to-start"); + BANNED_ARGS.add("--add-module"); + BANNED_ARGS.add("--add-modules"); } private final String id; diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/BaseHomeFileInitializer.java b/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/BaseHomeFileInitializer.java index cd5fda814892..f5dea1c0cbbe 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/BaseHomeFileInitializer.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/BaseHomeFileInitializer.java @@ -69,7 +69,7 @@ public boolean create(URI uri, String location) throws IOException else if (FS.ensureDirectoryExists(destination)) { modified = true; - StartLog.log("INFO", "mkdir " + _basehome.toShortForm(destination)); + StartLog.info("mkdir " + _basehome.toShortForm(destination)); } copyDirectory(source, destination); @@ -79,12 +79,12 @@ else if (FS.ensureDirectoryExists(destination)) if (FS.ensureDirectoryExists(destination.getParent())) { modified = true; - StartLog.log("INFO", "mkdir " + _basehome.toShortForm(destination.getParent())); + StartLog.info("mkdir " + _basehome.toShortForm(destination.getParent())); } if (!FS.exists(destination)) { - StartLog.log("COPY ", "%s to %s", _basehome.toShortForm(source), _basehome.toShortForm(destination)); + StartLog.info("copy %s to %s", _basehome.toShortForm(source), _basehome.toShortForm(destination)); Files.copy(source, destination); modified = true; } diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/LocalFileInitializer.java b/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/LocalFileInitializer.java index e88c8a6359a9..bbdd323da520 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/LocalFileInitializer.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/LocalFileInitializer.java @@ -78,7 +78,7 @@ public boolean create(URI uri, String location) throws IOException // Create directory boolean mkdir = FS.ensureDirectoryExists(destination); if (mkdir) - StartLog.log("INFO", "mkdir " + _basehome.toShortForm(destination)); + StartLog.info("mkdir " + _basehome.toShortForm(destination)); return mkdir; } diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/MavenLocalRepoFileInitializer.java b/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/MavenLocalRepoFileInitializer.java index 5f31332d3962..67386b4fe33b 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/MavenLocalRepoFileInitializer.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/MavenLocalRepoFileInitializer.java @@ -129,8 +129,8 @@ public boolean create(URI uri, String location) throws IOException if (localRepoFile != null) { if (FS.ensureDirectoryExists(destination.getParent())) - StartLog.log("INFO", "mkdir " + _basehome.toShortForm(destination.getParent())); - StartLog.log("COPY ", "%s to %s", localRepoFile, _basehome.toShortForm(destination)); + StartLog.info("mkdir " + _basehome.toShortForm(destination.getParent())); + StartLog.info("copy %s to %s", localRepoFile, _basehome.toShortForm(destination)); Files.copy(localRepoFile, destination); return true; } diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/TestFileInitializer.java b/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/TestFileInitializer.java index fc8214e781c8..0bbe5dda30f0 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/TestFileInitializer.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/fileinits/TestFileInitializer.java @@ -57,7 +57,7 @@ public boolean create(URI uri, String location) throws IOException FS.ensureDirectoryExists(destination.getParent()); } - StartLog.log("TESTING MODE", "Skipping download of " + uri); + StartLog.info("Skipping download of %s", uri); return true; } } diff --git a/jetty-start/src/test/resources/usecases/empty.addModule.assert.txt b/jetty-start/src/test/resources/usecases/empty.addModule.assert.txt index 51d73055a050..5b85abf84911 100644 --- a/jetty-start/src/test/resources/usecases/empty.addModule.assert.txt +++ b/jetty-start/src/test/resources/usecases/empty.addModule.assert.txt @@ -24,7 +24,7 @@ EXISTS|start.ini # Output Assertions [regex!] (order is irrelevant) OUTPUT|INFO : mkdir ..jetty.base./start.d OUTPUT|INFO : extra initialized in \$\{jetty.base\}/start.d/extra.ini -OUTPUT|INFO : main transitively enabled, ini template available with --add-to-start=main +OUTPUT|INFO : main transitively enabled, ini template available with --add-module=main OUTPUT|INFO : optional initialized in \$\{jetty.base\}/start.d/optional.ini OUTPUT|INFO : base transitively enabled OUTPUT|INFO : mkdir ..jetty.base./maindir diff --git a/jetty-start/src/test/resources/usecases/empty.addModuleCreateStartIni.assert.txt b/jetty-start/src/test/resources/usecases/empty.addModuleCreateStartIni.assert.txt index c277b8d00108..8c767ba8ff45 100644 --- a/jetty-start/src/test/resources/usecases/empty.addModuleCreateStartIni.assert.txt +++ b/jetty-start/src/test/resources/usecases/empty.addModuleCreateStartIni.assert.txt @@ -24,7 +24,7 @@ EXISTS|start.ini # Output Assertions [regex!] (order is irrelevant) OUTPUT|INFO : create ..jetty.base./start.ini OUTPUT|INFO : extra initialized in ..jetty.base./start.ini -OUTPUT|INFO : main transitively enabled, ini template available with --add-to-start=main +OUTPUT|INFO : main transitively enabled, ini template available with --add-module=main OUTPUT|INFO : optional initialized in ..jetty.base./start.ini OUTPUT|INFO : base transitively enabled OUTPUT|INFO : mkdir ..jetty.base./maindir From f4567a4dd6f036fe31a10506bf7c5d0ef7a6e0fa Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Mon, 14 Sep 2020 15:45:28 +0200 Subject: [PATCH 5/6] Issue #5256 --add-modules updates from review Signed-off-by: Greg Wilkins --- .../src/main/java/org/eclipse/jetty/start/BaseBuilder.java | 2 +- .../src/main/java/org/eclipse/jetty/start/Licensing.java | 2 +- .../java/org/eclipse/jetty/start/builders/StartDirBuilder.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/BaseBuilder.java b/jetty-start/src/main/java/org/eclipse/jetty/start/BaseBuilder.java index df5e4154d17c..b9f9f694cf40 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/BaseBuilder.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/BaseBuilder.java @@ -202,7 +202,7 @@ public boolean accept(Path entry) throws IOException List startLines = new ArrayList<>(); for (Path path : paths) { - StartLog.info("cp " + baseHome.toShortForm(path) + " to " + baseHome.toShortForm(startini)); + StartLog.info("copy " + baseHome.toShortForm(path) + " to " + baseHome.toShortForm(startini)); startLines.add(""); startLines.add("# Config from " + baseHome.toShortForm(path)); startLines.addAll(Files.readAllLines(path)); diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/Licensing.java b/jetty-start/src/main/java/org/eclipse/jetty/start/Licensing.java index d0e8915e75c9..71bb4c5cc626 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/Licensing.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/Licensing.java @@ -85,7 +85,7 @@ public boolean acknowledgeLicenses() throws IOException String propBasedAckValue = System.getProperty(PROP_ACK_LICENSES); if (propBasedAckValue != null) { - StartLog.info("Programmatic ACK - %s=%s", PROP_ACK_LICENSES, propBasedAckValue); + StartLog.info("Automatic License Acknowledgment - %s=%s", PROP_ACK_LICENSES, propBasedAckValue); licenseAck = Boolean.parseBoolean(propBasedAckValue); } else diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/builders/StartDirBuilder.java b/jetty-start/src/main/java/org/eclipse/jetty/start/builders/StartDirBuilder.java index 0eb24ff678a6..8d51181f5130 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/builders/StartDirBuilder.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/builders/StartDirBuilder.java @@ -35,7 +35,7 @@ /** * Management of the ${jetty.base}/start.d/ based configuration. *

- * Implementation of the --add-modues=[name] command line behavior + * Implementation of the --add-modules=[name] command line behavior */ public class StartDirBuilder implements BaseBuilder.Config { From 94999dead66ba1dd56a95b49dc9d1a4e46d9dc24 Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Mon, 14 Sep 2020 17:32:40 +0200 Subject: [PATCH 6/6] fixed test Signed-off-by: Greg Wilkins --- .../src/main/java/org/eclipse/jetty/start/BaseBuilder.java | 2 +- .../usecases/minimal-start-d.createStartIni.assert.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/BaseBuilder.java b/jetty-start/src/main/java/org/eclipse/jetty/start/BaseBuilder.java index b9f9f694cf40..5c350ce470c2 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/BaseBuilder.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/BaseBuilder.java @@ -202,7 +202,7 @@ public boolean accept(Path entry) throws IOException List startLines = new ArrayList<>(); for (Path path : paths) { - StartLog.info("copy " + baseHome.toShortForm(path) + " to " + baseHome.toShortForm(startini)); + StartLog.info("copy " + baseHome.toShortForm(path) + " into " + baseHome.toShortForm(startini)); startLines.add(""); startLines.add("# Config from " + baseHome.toShortForm(path)); startLines.addAll(Files.readAllLines(path)); diff --git a/jetty-start/src/test/resources/usecases/minimal-start-d.createStartIni.assert.txt b/jetty-start/src/test/resources/usecases/minimal-start-d.createStartIni.assert.txt index d145418bac0c..5e6bd45e6695 100644 --- a/jetty-start/src/test/resources/usecases/minimal-start-d.createStartIni.assert.txt +++ b/jetty-start/src/test/resources/usecases/minimal-start-d.createStartIni.assert.txt @@ -17,7 +17,7 @@ PROP|optional.prop=value0 EXISTS|maindir/ EXISTS|start.ini -OUTPUT|INFO : cp ..jetty.base./start.d/main.ini to ..jetty.base./start.ini +OUTPUT|INFO : copy ..jetty.base./start.d/main.ini into ..jetty.base./start.ini OUTPUT|INFO : optional initialized in ..jetty.base./start.ini OUTPUT|INFO : mkdir ..jetty.base./maindir OUTPUT|INFO : Base directory was modified