Package org.eclipse.sisu.plexus
Class PlexusXmlScanner
- java.lang.Object
-
- org.eclipse.sisu.plexus.PlexusXmlScanner
-
final class PlexusXmlScanner extends java.lang.Object
Helper class that can scan XML resources for Plexus metadata.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.String,PlexusBeanMetadata>
metadata
private java.net.URL
plexusXml
private java.util.Map<?,?>
variables
-
Constructor Summary
Constructors Constructor Description PlexusXmlScanner(java.util.Map<?,?> variables, java.net.URL plexusXml, java.util.Map<java.lang.String,PlexusBeanMetadata> metadata)
Creates an XML scanner that also accumulates Plexus bean metadata in the given map.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static java.io.Reader
filteredXmlReader(java.io.InputStream in, java.util.Map variables)
Wraps the givenInputStream
as aReader
with XML encoding detection and optional interpolation.private void
parseComponent(org.codehaus.plexus.util.xml.pull.MXParser parser, PlexusTypeRegistry registry)
Parses a <component> XML stanza into a deferred implementation, configuration, and requirements.private void
parseComponentsXml(java.net.URL url, PlexusTypeRegistry registry)
Parses acomponents.xml
resource into a series of Plexus bean metadata.private static void
parseConfiguration(org.codehaus.plexus.util.xml.pull.MXParser parser, java.util.Map<java.lang.String,org.codehaus.plexus.component.annotations.Configuration> configurationMap)
Parses a <configuration> XML stanza into a mapping from a field name to a @Configuration
.private static void
parseLoadOnStart(org.codehaus.plexus.util.xml.pull.MXParser parser, PlexusTypeRegistry registry)
Parses a load-on-start <component> XML stanza into a Plexus role-hint.private void
parsePlexusXml(java.net.URL url, PlexusTypeRegistry registry)
Parses aplexus.xml
resource into load-on-start settings and Plexus bean metadata.private static void
parseRequirement(org.codehaus.plexus.util.xml.pull.MXParser parser, ClassSpace space, java.util.Map<java.lang.String,org.codehaus.plexus.component.annotations.Requirement> requirementMap)
Parses a <requirement> XML stanza into a mapping from a field name to a @Requirement
.(package private) java.util.Map<org.codehaus.plexus.component.annotations.Component,DeferredClass<?>>
scan(ClassSpace space, boolean root)
private static java.lang.String
TEXT(org.codehaus.plexus.util.xml.pull.XmlPullParser parser)
Returns the text contained inside the current XML element, without any surrounding whitespace.private void
updatePlexusBeanMetadata(java.lang.String implementation, java.util.Map<java.lang.String,org.codehaus.plexus.component.annotations.Configuration> configurationMap, java.util.Map<java.lang.String,org.codehaus.plexus.component.annotations.Requirement> requirementMap)
Updates the shared Plexus bean metadata with the given local information.
-
-
-
Field Detail
-
variables
private final java.util.Map<?,?> variables
-
plexusXml
private final java.net.URL plexusXml
-
metadata
private final java.util.Map<java.lang.String,PlexusBeanMetadata> metadata
-
-
Constructor Detail
-
PlexusXmlScanner
PlexusXmlScanner(java.util.Map<?,?> variables, java.net.URL plexusXml, java.util.Map<java.lang.String,PlexusBeanMetadata> metadata)
Creates an XML scanner that also accumulates Plexus bean metadata in the given map.- Parameters:
variables
- The filter variablesplexusXml
- The plexus.xml URLmetadata
- The metadata map
-
-
Method Detail
-
scan
java.util.Map<org.codehaus.plexus.component.annotations.Component,DeferredClass<?>> scan(ClassSpace space, boolean root)
-
filteredXmlReader
private static java.io.Reader filteredXmlReader(java.io.InputStream in, java.util.Map variables) throws java.io.IOException
Wraps the givenInputStream
as aReader
with XML encoding detection and optional interpolation.- Parameters:
in
- The input streamvariables
- The filter variables- Returns:
- Reader that can automatically detect XML encodings and optionally interpolate variables
- Throws:
java.io.IOException
-
parsePlexusXml
private void parsePlexusXml(java.net.URL url, PlexusTypeRegistry registry)
Parses aplexus.xml
resource into load-on-start settings and Plexus bean metadata.- Parameters:
url
- The plexus.xml URLregistry
- The parsed components
-
parseComponentsXml
private void parseComponentsXml(java.net.URL url, PlexusTypeRegistry registry)
Parses acomponents.xml
resource into a series of Plexus bean metadata.- Parameters:
url
- The components.xml URLregistry
- The parsed components
-
parseLoadOnStart
private static void parseLoadOnStart(org.codehaus.plexus.util.xml.pull.MXParser parser, PlexusTypeRegistry registry) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, java.io.IOException
Parses a load-on-start <component> XML stanza into a Plexus role-hint.- Parameters:
parser
- The XML parserregistry
- The parsed components- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
java.io.IOException
-
parseComponent
private void parseComponent(org.codehaus.plexus.util.xml.pull.MXParser parser, PlexusTypeRegistry registry) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, java.io.IOException
Parses a <component> XML stanza into a deferred implementation, configuration, and requirements.- Parameters:
parser
- The XML parserregistry
- The parsed components- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
java.io.IOException
-
updatePlexusBeanMetadata
private void updatePlexusBeanMetadata(java.lang.String implementation, java.util.Map<java.lang.String,org.codehaus.plexus.component.annotations.Configuration> configurationMap, java.util.Map<java.lang.String,org.codehaus.plexus.component.annotations.Requirement> requirementMap)
Updates the shared Plexus bean metadata with the given local information.- Parameters:
implementation
- The component implementationconfigurationMap
- The field -> @Configuration
maprequirementMap
- The field -> @Requirement
map
-
parseRequirement
private static void parseRequirement(org.codehaus.plexus.util.xml.pull.MXParser parser, ClassSpace space, java.util.Map<java.lang.String,org.codehaus.plexus.component.annotations.Requirement> requirementMap) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, java.io.IOException
Parses a <requirement> XML stanza into a mapping from a field name to a @Requirement
.- Parameters:
parser
- The XML parserspace
- The class spacerequirementMap
- The field -> @Requirement
map- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
java.io.IOException
-
parseConfiguration
private static void parseConfiguration(org.codehaus.plexus.util.xml.pull.MXParser parser, java.util.Map<java.lang.String,org.codehaus.plexus.component.annotations.Configuration> configurationMap) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, java.io.IOException
Parses a <configuration> XML stanza into a mapping from a field name to a @Configuration
.- Parameters:
parser
- The XML parserconfigurationMap
- The field -> @Configuration
map- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
java.io.IOException
-
TEXT
private static java.lang.String TEXT(org.codehaus.plexus.util.xml.pull.XmlPullParser parser) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, java.io.IOException
Returns the text contained inside the current XML element, without any surrounding whitespace.- Parameters:
parser
- The XML parser- Returns:
- Trimmed TEXT element
- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
java.io.IOException
-
-