Package org.eclipse.sisu.plexus
Class PlexusXmlScanner
- java.lang.Object
-
- org.eclipse.sisu.plexus.PlexusXmlScanner
-
final class PlexusXmlScanner extends java.lang.ObjectHelper 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>metadataprivate java.net.URLplexusXmlprivate 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.ReaderfilteredXmlReader(java.io.InputStream in, java.util.Map variables)Wraps the givenInputStreamas aReaderwith XML encoding detection and optional interpolation.private voidparseComponent(org.codehaus.plexus.util.xml.pull.MXParser parser, PlexusTypeRegistry registry)Parses a <component> XML stanza into a deferred implementation, configuration, and requirements.private voidparseComponentsXml(java.net.URL url, PlexusTypeRegistry registry)Parses acomponents.xmlresource into a series of Plexus bean metadata.private static voidparseConfiguration(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 voidparseLoadOnStart(org.codehaus.plexus.util.xml.pull.MXParser parser, PlexusTypeRegistry registry)Parses a load-on-start <component> XML stanza into a Plexus role-hint.private voidparsePlexusXml(java.net.URL url, PlexusTypeRegistry registry)Parses aplexus.xmlresource into load-on-start settings and Plexus bean metadata.private static voidparseRequirement(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.StringTEXT(org.codehaus.plexus.util.xml.pull.XmlPullParser parser)Returns the text contained inside the current XML element, without any surrounding whitespace.private voidupdatePlexusBeanMetadata(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.IOExceptionWraps the givenInputStreamas aReaderwith 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.xmlresource 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.xmlresource 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.IOExceptionParses 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.XmlPullParserExceptionjava.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.IOExceptionParses 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.XmlPullParserExceptionjava.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 -> @ConfigurationmaprequirementMap- The field -> @Requirementmap
-
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.IOExceptionParses a <requirement> XML stanza into a mapping from a field name to a @Requirement.- Parameters:
parser- The XML parserspace- The class spacerequirementMap- The field -> @Requirementmap- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserExceptionjava.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.IOExceptionParses a <configuration> XML stanza into a mapping from a field name to a @Configuration.- Parameters:
parser- The XML parserconfigurationMap- The field -> @Configurationmap- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserExceptionjava.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.IOExceptionReturns 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.XmlPullParserExceptionjava.io.IOException
-
-