diff --git a/jetty-distribution/src/main/resources/start.d/demo.ini b/jetty-distribution/src/main/resources/start.d/demo.ini deleted file mode 100644 index d256443e08c..00000000000 --- a/jetty-distribution/src/main/resources/start.d/demo.ini +++ /dev/null @@ -1,12 +0,0 @@ -# =========================================================== -# Enable the demonstration web applications -# -# To disable the demos, either delete this file, move it out of -# the start.d directory or rename it to not end with ".ini" -# =========================================================== - ---module=demo - -demo.realm=demo/realm.properties -jaas.login.conf=demo/login.conf - diff --git a/jetty-distribution/src/main/resources/start.ini b/jetty-distribution/src/main/resources/start.ini index 70f94401fc0..4818161a834 100644 --- a/jetty-distribution/src/main/resources/start.ini +++ b/jetty-distribution/src/main/resources/start.ini @@ -1,15 +1,15 @@ #=========================================================== # Jetty start.jar arguments # -# The contents of this file, together with the start.ini -# fragments found in start.d directory are used to build +# The contents of this file, together with the *.ini +# files found in start.d directory are used to build # the classpath and command line on a call to # java -jar start.jar [arg...] # # Use the following command to see more options # java -jar start.jar --help # -# Each line in this file is prepended to the command line +# Each line in these files is prepended to the command line # as arguments, which may be either: # + A property like: name=value # + A module to enable like: --module=jmx @@ -21,20 +21,10 @@ # + A JVM option like: -Xmx2000m # + A System Property like: -Dcom.sun.management.jmxremote # -#----------------------------------------------------------- -# -# NOTE: The lines in this file may be uncommented to activate -# features. Alternately, the lines may be copied to a ini file -# in the start.d directory to enabled configuration without -# editing this file. See start.d/demo.ini for an example. +# The options --initialize can be used to create a template +# start.d/module.ini file for defined modules. For example +# to create an ini template for https use +# java -jar start.jar --initialize=https # #=========================================================== - - - - - - - - diff --git a/jetty-server/src/main/config/modules/ssl.mod b/jetty-server/src/main/config/modules/ssl.mod index 2bfc167e939..96d6f81aa41 100644 --- a/jetty-server/src/main/config/modules/ssl.mod +++ b/jetty-server/src/main/config/modules/ssl.mod @@ -3,6 +3,7 @@ DEPEND=server etc/jetty-ssl.xml +DOWNLOAD=http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/plain/jetty-server/src/main/config/etc/keystore:etc/keystore INI=jetty.keystore=etc/keystore INI=jetty.keystore.password=OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4 diff --git a/jetty-spdy/spdy-http-server/src/main/config/modules/npn.mod b/jetty-spdy/spdy-http-server/src/main/config/modules/npn.mod index 45bfd2ad67b..10750265b56 100644 --- a/jetty-spdy/spdy-http-server/src/main/config/modules/npn.mod +++ b/jetty-spdy/spdy-http-server/src/main/config/modules/npn.mod @@ -1,4 +1,5 @@ DOWNLOAD=http://repo1.maven.org/maven2/org/mortbay/jetty/npn/npn-boot/1.1.5.v20130313/npn-boot-1.1.5.v20130313.jar:lib/npn/npn-boot-1.1.5.v20130313.jar -BOOTLIB=-Xbootclasspath/p:lib/npn/npn-boot-1.1.5.v20130313.jar +INI=-Xbootclasspath/p:lib/npn/npn-boot-1.1.5.v20130313.jar +INI=--exec \ No newline at end of file diff --git a/jetty-spdy/spdy-http-server/src/main/config/modules/spdy.mod b/jetty-spdy/spdy-http-server/src/main/config/modules/spdy.mod index cd45fad3a8e..46ba7b3c1ae 100644 --- a/jetty-spdy/spdy-http-server/src/main/config/modules/spdy.mod +++ b/jetty-spdy/spdy-http-server/src/main/config/modules/spdy.mod @@ -1,5 +1,5 @@ -DEPEND=server +DEPEND=ssl DEPEND=npn LIB=lib/spdy/*.jar diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/Main.java b/jetty-start/src/main/java/org/eclipse/jetty/start/Main.java index e2891a96218..0b04612b831 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/Main.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/Main.java @@ -43,6 +43,7 @@ import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Locale; +import java.util.Set; import java.util.regex.Pattern; import org.eclipse.jetty.start.StartArgs.DownloadArg; @@ -332,12 +333,6 @@ public class Main modules.dumpEnabledTree(); } - private ModulePersistence loadModulePersistence() throws IOException - { - File file = baseHome.getBaseFile("modules/enabled"); - return new ModulePersistence(file); - } - /** * Convenience for processCommandLine(cmdLine.toArray(new String[cmdLine.size()])) */ @@ -411,7 +406,6 @@ public class Main List sources = args.getSources(enabledModule); modules.enable(enabledModule,sources); } - modules.enable(loadModulePersistence()); StartLog.debug("Building Module Graph"); modules.buildGraph(); @@ -444,6 +438,7 @@ public class Main } // Various Downloads + // TODO should this only be done by init? for (DownloadArg url : args.getDownloads()) { download(url); @@ -474,23 +469,6 @@ public class Main System.out.println(cmd.toString()); } - // Enables/Disable - ModulePersistence persistence = loadModulePersistence(); - if (args.isModulePersistenceChanging()) - { - System.out.println("Persistent Module Management:"); - System.out.println("-----------------------------"); - System.out.printf("Persistence file: %s%n",baseHome.toShortForm(persistence.getFile())); - for (String module : args.getModulePersistDisable()) - { - persistence.disableModule(args,module); - } - for (String module : args.getModulePersistEnable()) - { - persistence.enableModule(args,module); - } - } - if (args.isStopCommand()) { int stopPort = Integer.parseInt(args.getProperties().getProperty("STOP.PORT")); @@ -639,54 +617,73 @@ public class Main File start_d=baseHome.getFile("start.d"); // Is this a module? - Module module=args.getAllModules().get(name); + Modules modules=args.getAllModules(); + Module module=modules.get(name); if (module==null) { StartLog.warn("ERROR: No known module for %s",name); return; } - + Set sources=module.getSources(); + boolean explictly_enabled=sources!=null && sources.size()>0; + // Is it already enabled File ini=new File(start_d,name+".ini"); + String short_ini = baseHome.toShortForm(ini); if (ini.exists()) { if (new StartIni(ini).getLineMatches(Pattern.compile("--module=(.*, *)*"+name)).size()==0) - StartLog.warn("ERROR: %s not initialised in %s!",name,baseHome.toShortForm(ini)); + StartLog.warn("WARNING: %s not initialised in %s!",name,short_ini); else - StartLog.warn("%-15s initialised in %s",name,baseHome.toShortForm(ini)); - return; - } - else - { - // Should we create an ini file? - if (topLevel || module.getInitialise().size()>0) - { - if (ini.createNewFile()) - { - StartLog.warn("%-15s initialised in %s (created)",name,baseHome.toShortForm(ini)); + StartLog.warn("%-15s initialised in %s",name,short_ini); - // Create an ini - try(PrintWriter out = new PrintWriter(ini)) - { - out.println("# Initialize module "+name); - out.println("--module="+name); - for (String line : module.getInitialise()) - out.println(line); - } - args.parse(baseHome, new StartIni(ini)); - } - else - { - StartLog.warn("ERROR: %s cannot be initialised in %s! ",name,baseHome.toShortForm(ini)); - return; - } + } + + // If this is a top level init, or a transitive dependency with init lines that has not already been explicitly enabled + else if (topLevel || (module.getInitialise().size()>0 && !explictly_enabled)) + { + // Create a new ini file for it + if (!ini.createNewFile()) + { + StartLog.warn("ERROR: %s cannot be initialised in %s! ",name,short_ini); + return; + } + StartLog.warn("%-15s initialised in %s (created)",name,short_ini); + + // Create an ini + try(PrintWriter out = new PrintWriter(ini)) + { + out.println("# Initialize module "+name); + out.println("--module="+name); + for (String line : module.getInitialise()) + out.println(line); + } + StartIni start_ini=new StartIni(ini); + args.parse(baseHome, start_ini); + for (String enable:start_ini.getLineMatches(Pattern.compile("--module=.*"))) + { + modules.enable(enable.substring(enable.indexOf('=')+1).trim(),Collections.singletonList(short_ini)); } } + // transitive module already enabled, so only list sources + for(String source:sources) + { + if (!short_ini.equals(source)) + StartLog.warn("%-15s enabled in %s",name,baseHome.toShortForm(source)); + } + + // Do downloads now + for (String download : module.getDownloads()) + download(StartArgs.toDownloadArg(download)); + // Process dependencies - if (module!=null) - for (String parent:module.getParentNames()) - initialize(args,parent,false); + if (module!=null && topLevel) + { + for (String parent:modules.resolveParentModulesOf(name)) + if (!name.equals(parent)) + initialize(args,parent,false); + } } public void usage(boolean exit) diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/Module.java b/jetty-start/src/main/java/org/eclipse/jetty/start/Module.java index 99c6de44577..026547b797c 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/Module.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/Module.java @@ -90,10 +90,7 @@ public class Module extends TextFile /** List of library options for this Module */ private List libs; /** List of downloads for this Module */ - private List downloads; - /** List of bootlib for this Module */ - private List bootlibs; - + private List downloads; /** Is this Module enabled via start.jar command line, start.ini, or start.d/*.ini ? */ @@ -210,11 +207,6 @@ public class Module extends TextFile return downloads; } - public List getBootLibs() - { - return bootlibs; - } - @Override public int hashCode() { @@ -240,7 +232,6 @@ public class Module extends TextFile initialise=new ArrayList<>(); libs=new ArrayList<>(); downloads=new ArrayList<>(); - bootlibs=new ArrayList<>(); } public boolean isEnabled() @@ -283,10 +274,6 @@ public class Module extends TextFile downloads.add(value); handled = true; break; - case "BOOTLIB": - bootlibs.add(value); - handled = true; - break; case "INI": initialise.add(value); handled = true; diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/ModulePersistence.java b/jetty-start/src/main/java/org/eclipse/jetty/start/ModulePersistence.java deleted file mode 100644 index 0fe072051ce..00000000000 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/ModulePersistence.java +++ /dev/null @@ -1,182 +0,0 @@ -// -// ======================================================================== -// Copyright (c) 1995-2013 Mort Bay Consulting Pty. Ltd. -// ------------------------------------------------------------------------ -// All rights reserved. This program and the accompanying materials -// are made available under the terms of the Eclipse Public License v1.0 -// and Apache License v2.0 which accompanies this distribution. -// -// The Eclipse Public License is available at -// http://www.eclipse.org/legal/epl-v10.html -// -// The Apache License v2.0 is available at -// http://www.opensource.org/licenses/apache2.0.php -// -// You may elect to redistribute this code under either of these licenses. -// ======================================================================== -// - -package org.eclipse.jetty.start; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileWriter; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; -import java.util.Set; - -/** - * Represents the optional, managed by jetty command line, file at ${jetty.base}/modules/enabled - */ -public class ModulePersistence extends TextFile -{ - public ModulePersistence(File file) throws FileNotFoundException, IOException - { - super(file); - } - - public boolean disableModule(StartArgs args, String moduleName) throws IOException - { - // capture of what modules were disabled by this action - List modulesThatWereDisabled = new ArrayList<>(); - // capture of what modules were automatically enabled by this action - // this list can occur if you attempt to disable a leaf node, the parent nodes - // of that leaf would then become enabled - List modulesThatWereEnabled = new ArrayList<>(); - // set of child modules that should be disabled by this action - Set resolvedModulesToDisable = args.getAllModules().resolveChildModulesOf(moduleName); - - // Show user what could be disabled - System.out.printf(" - Disabling Module: %s%n",moduleName); - if (resolvedModulesToDisable.size() > 1) - { - System.out.printf(" - (Resolved to) : "); - boolean needDelim = false; - for (String name : resolvedModulesToDisable) - { - if (needDelim) - { - System.out.print(" -> "); - } - System.out.print(name); - needDelim = true; - } - System.out.println(); - } - - // Do the disabling - - // Step 1: set parent modules to enabled. - // This is to handle the case where the leaf is disabled, you still - // want the branch itself to be active upto the step before that leaf - Modules modules = args.getAllModules(); - Module leaf = modules.get(moduleName); - // no children, this is a leaf - if (leaf.getChildEdges().size() <= 0) - { - // mark all parents as enabled - List sources = new ArrayList<>(); - sources.add(""); - for (Module parent : leaf.getParentEdges()) - { - parent.setEnabled(true); - parent.addSources(sources); - addUniqueLine(parent.getName()); - modulesThatWereEnabled.add(parent.getName()); - } - } - - // Step 2: mark the leaf nodes disabled - ListIterator iter = super.listIterator(); - while (iter.hasNext()) - { - String line = iter.next().trim(); - if (resolvedModulesToDisable.contains(line)) - { - iter.remove(); - modulesThatWereDisabled.add(line); - } - } - - // Save file - saveFile(); - - // Show user what was disabled - if (modulesThatWereDisabled.size() > 0) - { - System.out.printf("Disabled %d module%s%n",modulesThatWereDisabled.size(),modulesThatWereDisabled.size() > 1?"s":""); - for (String name : modulesThatWereDisabled) - { - System.out.printf(" - %s%n",name); - } - return true; - } - else if (modulesThatWereEnabled.size() > 0) - { - System.out.printf("Module %s was has been effectively disabled.%n",moduleName); - return true; - } - else - { - System.out.printf("Module %s not found, no changes made to module persistence.%n",moduleName); - return false; - } - } - - public boolean enableModule(StartArgs args, String moduleName) throws IOException - { - boolean ret = false; - System.out.printf(" - Enabling Module: %s%n",moduleName); - if (getLines().contains(moduleName)) - { - // duplicate - System.out.printf(" - Already present, not adding again%n"); - } - else - { - // add it - getLines().add(moduleName); - System.out.printf(" - Adding module %s%n",moduleName); - Set transitiveNames = args.getAllModules().resolveParentModulesOf(moduleName); - if (transitiveNames.size() > 1) - { - System.out.print(" - Enabled: "); - boolean needDelim = false; - for (String name : transitiveNames) - { - if (needDelim) - { - System.out.print(" -> "); - } - System.out.print(name); - needDelim = true; - } - System.out.println(); - } - saveFile(); - } - return ret; - } - - public List getEnabled() - { - return getLines(); - } - - private void saveFile() throws IOException - { - File file = getFile(); - File parent = file.getParentFile(); - FS.ensureDirectoryExists(parent); - - try (FileWriter writer = new FileWriter(file,false)) - { - for (String line : getLines()) - { - writer.append(line).append('\n'); - } - } - } -} 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 70a2861caa2..bac372bb2e7 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 @@ -202,76 +202,6 @@ public class Modules implements Iterable } } - /** - * Enable all modules found in module persistence - * - * @param persistence - * the module persistence to use - */ - public void enable(ModulePersistence persistence) - { - List source = new ArrayList<>(); - source.add(""); - - if (persistence.getEnabled().size() > 0) - { - // show user warning about module enablement + module persistence - List enabled = new ArrayList<>(); - for (Module module : modules.values()) - { - if (module.isEnabled()) - { - if (!persistence.getEnabled().contains(module.getName())) - { - // only add if not already covered by module persistence - enabled.add(module.getName()); - } - } - } - - if (enabled.size() > 0) - { - StringBuilder err = new StringBuilder(); - err.append("WARNING: Module Persistence Mode is being used.\n"); - err.append("The following "); - if (enabled.size() > 1) - { - err.append(enabled.size()).append("modules"); - } - else - { - err.append("module"); - } - err.append(", defined outside of the module persistence mechanism, "); - if (enabled.size() > 1) - { - err.append("are "); - } - else - { - err.append("is "); - } - err.append("being ignored."); - System.err.println(err); - - for (int i = 0; i < enabled.size(); i++) - { - String name = enabled.get(i); - Module module = modules.get(name); - System.err.printf(" [%d] \"%s\" - defined in [%s]%n",i + 1,name,Main.join(module.getSources(),", ")); - module.setEnabled(false); - module.clearSources(); - } - } - - // use module persistence mode - for (String module : persistence.getEnabled()) - { - enable(module,source); - } - } - } - public void enable(String name, List sources) { Module module = modules.get(name); 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 1a36c1ce296..2637ca4073a 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 @@ -168,7 +168,7 @@ public class StartArgs classpath = new Classpath(); } - private void addDownload(String uriLocation) + static DownloadArg toDownloadArg(String uriLocation) { String parts[] = uriLocation.split(":",3); if (parts.length != 3) @@ -186,7 +186,12 @@ public class StartArgs DownloadArg arg = new DownloadArg(); arg.uri = String.format("%s:%s",parts[0],parts[1]); arg.location = parts[2]; - + return arg; + } + + private void addDownload(String uriLocation) + { + DownloadArg arg=toDownloadArg(uriLocation); if (!downloads.contains(arg)) { downloads.add(arg); @@ -428,14 +433,6 @@ public class StartArgs StartLog.debug("Adding module specified download: %s",download); addDownload(download); } - - // Register BootLib references - for (String bootlib : module.getBootLibs()) - { - StartLog.debug("Adding module specified bootlib: %s",bootlib); - exec = true; - jvmArgs.add(bootlib); - } } } diff --git a/jetty-start/src/test/java/org/eclipse/jetty/start/ModulePersistenceTest.java b/jetty-start/src/test/java/org/eclipse/jetty/start/ModulePersistenceTest.java deleted file mode 100644 index 1d32f93df19..00000000000 --- a/jetty-start/src/test/java/org/eclipse/jetty/start/ModulePersistenceTest.java +++ /dev/null @@ -1,177 +0,0 @@ -// -// ======================================================================== -// Copyright (c) 1995-2013 Mort Bay Consulting Pty. Ltd. -// ------------------------------------------------------------------------ -// All rights reserved. This program and the accompanying materials -// are made available under the terms of the Eclipse Public License v1.0 -// and Apache License v2.0 which accompanies this distribution. -// -// The Eclipse Public License is available at -// http://www.eclipse.org/legal/epl-v10.html -// -// The Apache License v2.0 is available at -// http://www.opensource.org/licenses/apache2.0.php -// -// You may elect to redistribute this code under either of these licenses. -// ======================================================================== -// - -package org.eclipse.jetty.start; - -import static org.hamcrest.Matchers.*; - -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.jetty.toolchain.test.MavenTestingUtils; -import org.eclipse.jetty.toolchain.test.TestingDir; -import org.eclipse.jetty.toolchain.test.FS; -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; - -public class ModulePersistenceTest -{ - @Rule - public TestingDir testdir = new TestingDir(); - - @Test - public void testLoadNoFile() throws IOException - { - File baseDir = testdir.getEmptyDir(); - - File mfile = new File(baseDir,"modules.p"); - ModulePersistence persistence = new ModulePersistence(mfile); - Assert.assertThat("persistence.enabled.size",persistence.getEnabled().size(),is(0)); - } - - @Test - public void testOneLine() throws IOException - { - File baseDir = testdir.getEmptyDir(); - File mfile = new File(baseDir,"modules.p"); - - writeFile(mfile,"hello"); - - ModulePersistence persistence = new ModulePersistence(mfile); - Assert.assertThat("persistence.enabled",persistence.getEnabled(),containsInAnyOrder("hello")); - } - - @Test - public void testDuplicateLines() throws IOException - { - File baseDir = testdir.getEmptyDir(); - File mfile = new File(baseDir,"modules.p"); - - writeFile(mfile,"hello","there","earthling","hello"); - - ModulePersistence persistence = new ModulePersistence(mfile); - Assert.assertThat("persistence.enabled",persistence.getEnabled(),containsInAnyOrder("hello","there","earthling")); - } - - @Test - public void testDisableHttp() throws Exception - { - File homeDir = MavenTestingUtils.getTestResourceDir("usecases/home"); - File baseDir = testdir.getEmptyDir(); - File modulesDir = testdir.getFile("modules"); - FS.ensureEmpty(modulesDir); - File mfile = new File(modulesDir,"enabled"); - - writeFile(mfile,"http","websocket"); - - ModulePersistence persistence = new ModulePersistence(mfile); - Assert.assertThat("persistence.enabled",persistence.getEnabled(),containsInAnyOrder("http","websocket")); - - Main main = new Main(); - List cmds = new ArrayList<>(); - cmds.add("jetty.home=" + homeDir.getAbsolutePath()); - cmds.add("jetty.base=" + baseDir.getAbsolutePath()); - cmds.add("--disable-module=http"); - StartArgs args = main.processCommandLine(cmds); - - Assert.assertThat("isRun", args.isRun(), is(false)); - - main.start(args); - - // Load persistence file again - persistence = new ModulePersistence(mfile); - Assert.assertThat("persistence.enabled",persistence.getEnabled(),containsInAnyOrder("server","websocket")); - } - - @Test - public void testDisableAnnotations() throws Exception - { - File homeDir = MavenTestingUtils.getTestResourceDir("usecases/home"); - File baseDir = testdir.getEmptyDir(); - File modulesDir = testdir.getFile("modules"); - FS.ensureEmpty(modulesDir); - File mfile = new File(modulesDir,"enabled"); - - writeFile(mfile,"http","websocket"); - - ModulePersistence persistence = new ModulePersistence(mfile); - Assert.assertThat("persistence.enabled",persistence.getEnabled(),containsInAnyOrder("http","websocket")); - - Main main = new Main(); - List cmds = new ArrayList<>(); - cmds.add("jetty.home=" + homeDir.getAbsolutePath()); - cmds.add("jetty.base=" + baseDir.getAbsolutePath()); - cmds.add("--disable-module=annotations"); - StartArgs args = main.processCommandLine(cmds); - - Assert.assertThat("isRun", args.isRun(), is(false)); - - main.start(args); - - // Load persistence file again - persistence = new ModulePersistence(mfile); - Assert.assertThat("persistence.enabled",persistence.getEnabled(),containsInAnyOrder("http")); - } - - @Test - public void testEnableWebSocket() throws Exception - { - File homeDir = MavenTestingUtils.getTestResourceDir("usecases/home"); - File baseDir = testdir.getEmptyDir(); - File modulesDir = testdir.getFile("modules"); - FS.ensureEmpty(modulesDir); - File mfile = new File(modulesDir,"enabled"); - - writeFile(mfile,"http"); - - ModulePersistence persistence = new ModulePersistence(mfile); - Assert.assertThat("persistence.enabled",persistence.getEnabled(),containsInAnyOrder("http")); - - Main main = new Main(); - List cmds = new ArrayList<>(); - cmds.add("jetty.home=" + homeDir.getAbsolutePath()); - cmds.add("jetty.base=" + baseDir.getAbsolutePath()); - cmds.add("--enable-module=websocket"); - StartArgs args = main.processCommandLine(cmds); - - Assert.assertThat("isRun", args.isRun(), is(false)); - - main.start(args); - - // Load persistence file again - persistence = new ModulePersistence(mfile); - Assert.assertThat("persistence.enabled",persistence.getEnabled(),containsInAnyOrder("http","websocket")); - } - - private void writeFile(File mfile, String... lines) throws IOException - { - final String LN = System.getProperty("line.separator"); - - try (FileWriter writer = new FileWriter(mfile,false)) - { - for (String line : lines) - { - writer.append(line).append(LN); - } - } - } -} diff --git a/tests/test-webapps/test-jetty-webapp/src/main/config/modules/demo.mod b/tests/test-webapps/test-jetty-webapp/src/main/config/modules/demo.mod index 9312d07fb89..64048565b09 100644 --- a/tests/test-webapps/test-jetty-webapp/src/main/config/modules/demo.mod +++ b/tests/test-webapps/test-jetty-webapp/src/main/config/modules/demo.mod @@ -2,8 +2,8 @@ # Jetty Demo Module # -DEPEND=jndi DEPEND=jaas +DEPEND=jndi DEPEND=rewrite DEPEND=client DEPEND=annotations @@ -15,5 +15,6 @@ LIB=demo/lib/*.jar demo/test-realm.xml demo/jetty-demo.xml +INI=--module=jaas INI=demo.realm=demo/realm.properties INI=jaas.login.conf=demo/login.conf