Class AnnotationConfiguration
java.lang.Object
org.eclipse.jetty.webapp.AbstractConfiguration
org.eclipse.jetty.annotations.AnnotationConfiguration
org.eclipse.jetty.osgi.annotations.AnnotationConfiguration
- All Implemented Interfaces:
Configuration
Extend the AnnotationConfiguration to support OSGi:
Look for annotations inside WEB-INF/lib and also in the fragments and required bundles.
Discover them using a scanner adapted to OSGi instead of the jarscanner.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.eclipse.jetty.annotations.AnnotationConfiguration
AnnotationConfiguration.ClassInheritanceMap, AnnotationConfiguration.DiscoveredServletContainerInitializerHolder, AnnotationConfiguration.ParserTask, AnnotationConfiguration.ServletContainerInitializerComparator, AnnotationConfiguration.ServletContainerInitializerOrdering, AnnotationConfiguration.TimeStatistic
Nested classes/interfaces inherited from interface org.eclipse.jetty.webapp.Configuration
Configuration.Wrapper, Configuration.WrapperFunction
-
Field Summary
Fields inherited from class org.eclipse.jetty.annotations.AnnotationConfiguration
_classInheritanceHandler, _containerInitializerAnnotationHandlers, _containerPathStats, _discoverableAnnotationHandlers, _parserTasks, _sciExcludePattern, _sciHolders, _webInfClassesStats, _webInfLibStats, CLASS_INHERITANCE_MAP, CONTAINER_INITIALIZER_STARTER, CONTAINER_INITIALIZERS, DEFAULT_MAX_SCAN_WAIT, DEFAULT_MULTI_THREADED, MAX_SCAN_WAIT, MULTI_THREADED, SERVLET_CONTAINER_INITIALIZER_EXCLUSION_PATTERN, SERVLET_CONTAINER_INITIALIZER_ORDER
Fields inherited from interface org.eclipse.jetty.webapp.Configuration
ATTR
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected AnnotationParser
createAnnotationParser
(int javaTargetVersion) This parser scans the bundles using the OSGi APIs instead of assuming a jar.getJarFor
(javax.servlet.ServletContainerInitializer service) protected void
parseBundle
(WebAppContext context, AnnotationParser parser, org.osgi.framework.Bundle webbundle, org.osgi.framework.Bundle bundle) protected void
parseFragmentBundle
(WebAppContext context, AnnotationParser parser, org.osgi.framework.Bundle webbundle, org.osgi.framework.Bundle fragmentBundle) Scan a fragment bundle for servlet annotationsprotected void
parseRequiredBundle
(WebAppContext context, AnnotationParser parser, org.osgi.framework.Bundle webbundle, org.osgi.framework.Bundle requiredBundle) Scan a bundle required by the webbundle for servlet annotationsprotected void
parseWebBundle
(WebAppContext context, AnnotationParser parser, org.osgi.framework.Bundle webbundle) Scan a bundle required by the webbundle for servlet annotationsvoid
parseWebInfClasses
(WebAppContext context, AnnotationParser parser) Scan classes in WEB-INF/classes.void
parseWebInfLib
(WebAppContext context, AnnotationParser parser) Here is the order in which jars and osgi artifacts are scanned for discoverable annotations.Class<? extends Configuration>
replaces()
Get a class that this class replaces/extends.Methods inherited from class org.eclipse.jetty.annotations.AnnotationConfiguration
addDiscoverableAnnotationHandler, cloneConfigure, configure, createServletContainerInitializerAnnotationHandlers, getInitializerOrdering, getMaxScanWait, getNonExcludedInitializers, isFromContainerClassPath, isFromExcludedJar, isFromWebInfClasses, isUseMultiThreading, matchesExclusionPattern, parseContainerPath, postConfigure, preConfigure, scanForAnnotations
Methods inherited from class org.eclipse.jetty.webapp.AbstractConfiguration
abort, addDependencies, addDependencies, addDependents, addDependents, deconfigure, destroy, expose, getDependencies, getDependents, getServerClasses, getSystemClasses, hide, isEnabledByDefault, protect, protectAndExpose
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.eclipse.jetty.webapp.Configuration
isAvailable
-
Constructor Details
-
AnnotationConfiguration
public AnnotationConfiguration()
-
-
Method Details
-
replaces
Description copied from interface:Configuration
Get a class that this class replaces/extends. If this is added toConfigurations
collection that already contains a configuration of the replaced class or that reports to replace the same class, then it is replaced with this instance.- Returns:
- The class this Configuration replaces/extends or null if it replaces no other configuration
-
createAnnotationParser
This parser scans the bundles using the OSGi APIs instead of assuming a jar.- Overrides:
createAnnotationParser
in classAnnotationConfiguration
- Parameters:
javaTargetVersion
- The java platform to scan for.- Returns:
- a new AnnotationParser. This method can be overridden to use a different implementation of the AnnotationParser. Note that this is considered internal API.
-
getJarFor
public Resource getJarFor(javax.servlet.ServletContainerInitializer service) throws MalformedURLException, IOException - Overrides:
getJarFor
in classAnnotationConfiguration
- Throws:
MalformedURLException
IOException
-
parseWebInfLib
Here is the order in which jars and osgi artifacts are scanned for discoverable annotations.- The container jars are scanned.
- The WEB-INF/classes are scanned
- The osgi fragment to the web bundle are parsed.
- The WEB-INF/lib are scanned
- The required bundles are parsed
- Overrides:
parseWebInfLib
in classAnnotationConfiguration
- Parameters:
context
- the context for the scanparser
- the annotation parser to use- Throws:
Exception
- if unable to scan and/or parse
-
parseFragmentBundle
protected void parseFragmentBundle(WebAppContext context, AnnotationParser parser, org.osgi.framework.Bundle webbundle, org.osgi.framework.Bundle fragmentBundle) throws Exception Scan a fragment bundle for servlet annotations- Parameters:
context
- The webapp contextparser
- The parserwebbundle
- The current webbundlefragmentBundle
- The OSGi fragment bundle to scan- Throws:
Exception
- if unable to parse fragment bundle
-
parseWebBundle
protected void parseWebBundle(WebAppContext context, AnnotationParser parser, org.osgi.framework.Bundle webbundle) throws Exception Scan a bundle required by the webbundle for servlet annotations- Parameters:
context
- The webapp contextparser
- The parserwebbundle
- The current webbundle- Throws:
Exception
- if unable to parse the web bundle
-
parseWebInfClasses
Description copied from class:AnnotationConfiguration
Scan classes in WEB-INF/classes.- Overrides:
parseWebInfClasses
in classAnnotationConfiguration
- Parameters:
context
- the context for the scanparser
- the annotation parser to use- Throws:
Exception
- if unable to scan and/or parse
-
parseRequiredBundle
protected void parseRequiredBundle(WebAppContext context, AnnotationParser parser, org.osgi.framework.Bundle webbundle, org.osgi.framework.Bundle requiredBundle) throws Exception Scan a bundle required by the webbundle for servlet annotations- Parameters:
context
- The webapp contextparser
- The parserwebbundle
- The current webbundlerequiredBundle
- The OSGi required bundle to scan- Throws:
Exception
- if unable to parse the required bundle
-
parseBundle
protected void parseBundle(WebAppContext context, AnnotationParser parser, org.osgi.framework.Bundle webbundle, org.osgi.framework.Bundle bundle) throws Exception - Throws:
Exception
-