org.eclipse.jetty.webapp
Class JarScanner
java.lang.Object
org.eclipse.jetty.util.PatternMatcher
org.eclipse.jetty.webapp.JarScanner
public abstract class JarScanner
- extends PatternMatcher
JarScannerConfiguration
Abstract base class for configurations that want to scan jars in
WEB-INF/lib and the classloader hierarchy.
Jar name matching based on regexp patterns is provided.
Subclasses should implement the processEntry(URL jarUrl, JarEntry entry)
method to handle entries in jar files whose names match the supplied
pattern.
Method Summary |
void |
matched(URI uri)
|
abstract void |
processEntry(URI jarUri,
JarEntry entry)
|
void |
scan(Pattern pattern,
ClassLoader loader,
boolean isNullInclusive,
boolean visitParent)
Find jar names from the classloader matching a pattern. |
void |
scan(Pattern pattern,
URI[] uris,
boolean isNullInclusive)
Find jar names from the provided list matching a pattern. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
JarScanner
public JarScanner()
processEntry
public abstract void processEntry(URI jarUri,
JarEntry entry)
scan
public void scan(Pattern pattern,
URI[] uris,
boolean isNullInclusive)
throws Exception
- Find jar names from the provided list matching a pattern.
If the pattern is null and isNullInclusive is true, then
all jar names will match.
A pattern is a set of acceptable jar names. Each acceptable
jar name is a regex. Each regex can be separated by either a
"," or a "|". If you use a "|" this or's together the jar
name patterns. This means that ordering of the matches is
unimportant to you. If instead, you want to match particular
jar names, and you want to match them in order, you should
separate the regexs with "," instead.
Eg "aaa-.\*\.jar|bbb-.\*\.jar"
Will iterate over the jar names and match
in any order.
Eg "aaa-\*\.jar,bbb-.\*\.jar"
Will iterate over the jar names, matching
all those starting with "aaa-" first, then "bbb-".
- Parameters:
pattern
- uris
- isNullInclusive
- if true, an empty pattern means all names match, if false, none match
- Throws:
Exception
scan
public void scan(Pattern pattern,
ClassLoader loader,
boolean isNullInclusive,
boolean visitParent)
throws Exception
- Find jar names from the classloader matching a pattern.
If the pattern is null and isNullInclusive is true, then
all jar names in the classloader will match.
A pattern is a set of acceptable jar names. Each acceptable
jar name is a regex. Each regex can be separated by either a
"," or a "|". If you use a "|" this or's together the jar
name patterns. This means that ordering of the matches is
unimportant to you. If instead, you want to match particular
jar names, and you want to match them in order, you should
separate the regexs with "," instead.
Eg "aaa-.\*\.jar|bbb-.\*\.jar"
Will iterate over the jar names in the classloader and match
in any order.
Eg "aaa-\*\.jar,bbb-.\*\.jar"
Will iterate over the jar names in the classloader, matching
all those starting with "aaa-" first, then "bbb-".
If visitParent is true, then the pattern is applied to the
parent loader hierarchy. If false, it is only applied to the
classloader passed in.
- Parameters:
pattern
- loader
- isNullInclusive
- visitParent
-
- Throws:
Exception
matched
public void matched(URI uri)
throws Exception
- Specified by:
matched
in class PatternMatcher
- Throws:
Exception
Copyright © 1995-2012 Mort Bay Consulting. All Rights Reserved.