Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Erdfelt2015-11-12 00:30:55 +0000
committerJoakim Erdfelt2015-11-12 00:30:55 +0000
commit59652eeb3f24a73a233adfbe052a8f83e2f8ca8c (patch)
tree3e252c8363d065f1b4a2a9837a10692419b189f1
parent5ebc9e7c5ed060cf409efc37e14a843122d1461a (diff)
downloadorg.eclipse.jetty.project-59652eeb3f24a73a233adfbe052a8f83e2f8ca8c.tar.gz
org.eclipse.jetty.project-59652eeb3f24a73a233adfbe052a8f83e2f8ca8c.tar.xz
org.eclipse.jetty.project-59652eeb3f24a73a233adfbe052a8f83e2f8ca8c.zip
481960 - Add --skip-file-validation to 9.1.x
-rw-r--r--jetty-start/src/main/java/org/eclipse/jetty/start/Main.java11
-rw-r--r--jetty-start/src/main/java/org/eclipse/jetty/start/Module.java14
-rw-r--r--jetty-start/src/main/java/org/eclipse/jetty/start/Modules.java1
-rw-r--r--jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java36
-rw-r--r--jetty-start/src/test/java/org/eclipse/jetty/start/ModulesTest.java6
5 files changed, 62 insertions, 6 deletions
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 acea4b833d..7e9fec9a36 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
@@ -469,9 +469,16 @@ public class Main
}
// Do downloads now
- for (String file : module.getFiles())
+ if (module.isSkipFilesValidation())
{
- initFile(new FileArg(file));
+ StartLog.info("Skipping [files] validation on module: %s",module.getName());
+ }
+ else
+ {
+ for (String file : module.getFiles())
+ {
+ initFile(new FileArg(file));
+ }
}
// Process dependencies from top level only
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 892f11a86f..c1bd4ab40e 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
@@ -105,6 +105,9 @@ public class Module
private boolean enabled = false;
/** List of sources that enabled this module */
private final Set<String> sources = new HashSet<>();
+
+ /** Skip the validation of [files] section */
+ private boolean skipFilesValidation = false;
public Module(BaseHome basehome, File file) throws FileNotFoundException, IOException
{
@@ -288,6 +291,11 @@ public class Module
return enabled;
}
+ public boolean isSkipFilesValidation()
+ {
+ return skipFilesValidation;
+ }
+
public void process(BaseHome basehome) throws FileNotFoundException, IOException
{
Pattern section = Pattern.compile("\\s*\\[([^]]*)\\]\\s*");
@@ -381,6 +389,11 @@ public class Module
this.parentNames.addAll(parents);
}
}
+
+ public void setSkipFilesValidation(boolean skip)
+ {
+ this.skipFilesValidation = skip;
+ }
@Override
public String toString()
@@ -395,4 +408,5 @@ public class Module
str.append(']');
return str.toString();
}
+
}
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 95bd8076f4..49767f0d07 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
@@ -421,6 +421,7 @@ public class Modules implements Iterable<Module>
}
StartLog.debug("Registering Module: %s",basehome.toShortForm(file));
Module module = new Module(basehome,file);
+ module.setSkipFilesValidation(args.isSkippedFileValidation(module.getName()));
module.expandProperties(args.getProperties());
return register(module);
}
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 8e0ec3d27b..27620dd5e0 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
@@ -27,11 +27,13 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.TreeSet;
import org.eclipse.jetty.start.Props.Prop;
@@ -69,6 +71,8 @@ public class StartArgs
private List<String> commandLine = new ArrayList<>();
private Set<String> modules = new HashSet<>();
+ /** List of modules to skip [files] section validation */
+ private Set<String> skipFileValidationModules = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
private Map<String, List<String>> sources = new HashMap<>();
private List<FileArg> files = new ArrayList<>();
private Classpath classpath;
@@ -104,8 +108,14 @@ public class StartArgs
classpath = new Classpath();
}
- private void addFile(String uriLocation)
+ private void addFile(Module module, String uriLocation)
{
+ if (module != null && module.isSkipFilesValidation())
+ {
+ StartLog.debug("Not validating %s [files] for %s",module,uriLocation);
+ return;
+ }
+
FileArg arg = new FileArg(uriLocation);
if (!files.contains(arg))
{
@@ -410,7 +420,7 @@ public class StartArgs
for (String file : module.getFiles())
{
StartLog.debug("Adding module specified file: %s",file);
- addFile(file);
+ addFile(module, file);
}
}
}
@@ -629,6 +639,15 @@ public class StartArgs
{
return listModules;
}
+
+ public boolean isSkippedFileValidation(String moduleName)
+ {
+ if(skipFileValidationModules == null) {
+ return false;
+ }
+
+ return skipFileValidationModules.contains(moduleName);
+ }
private void setProperty(String key, String value, String source)
{
@@ -737,7 +756,7 @@ public class StartArgs
if (arg.startsWith("--download="))
{
- addFile(getValue(arg));
+ addFile(null, getValue(arg));
run = false;
download = true;
return;
@@ -780,6 +799,17 @@ public class StartArgs
exec = true;
return;
}
+
+ // Skip [files] validation on a module
+ if (arg.startsWith("--skip-vile-validation="))
+ {
+ List<String> moduleNames = getValues(arg);
+ for (String moduleName : moduleNames)
+ {
+ skipFileValidationModules.add(moduleName);
+ }
+ return;
+ }
// Arbitrary Libraries
diff --git a/jetty-start/src/test/java/org/eclipse/jetty/start/ModulesTest.java b/jetty-start/src/test/java/org/eclipse/jetty/start/ModulesTest.java
index beb8366c2e..f797600ba8 100644
--- a/jetty-start/src/test/java/org/eclipse/jetty/start/ModulesTest.java
+++ b/jetty-start/src/test/java/org/eclipse/jetty/start/ModulesTest.java
@@ -18,7 +18,9 @@
package org.eclipse.jetty.start;
+import static org.hamcrest.Matchers.anyOf;
import static org.hamcrest.Matchers.contains;
+import static org.hamcrest.Matchers.either;
import static org.hamcrest.Matchers.is;
import java.io.File;
@@ -44,7 +46,9 @@ public class ModulesTest
Modules modules = new Modules();
modules.registerAll(basehome, DEFAULT_ARGS);
- Assert.assertThat("Module count",modules.count(),is(29));
+ // 29 for java versions inside of NPN list
+ // 30 for java versions outside of NPN list
+ Assert.assertThat("Module count",modules.count(),anyOf(is(29),is(30)));
}
@Test

Back to the top