Class PlexusXmlScanner


  • final class PlexusXmlScanner
    extends java.lang.Object
    Helper class that can scan XML resources for Plexus metadata.
    • 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 given InputStream as a Reader 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 a components.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 a plexus.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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • variables

        private final java.util.Map<?,​?> variables
      • plexusXml

        private final java.net.URL plexusXml
    • 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 variables
        plexusXml - The plexus.xml URL
        metadata - 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 given InputStream as a Reader with XML encoding detection and optional interpolation.
        Parameters:
        in - The input stream
        variables - 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 a plexus.xml resource into load-on-start settings and Plexus bean metadata.
        Parameters:
        url - The plexus.xml URL
        registry - The parsed components
      • parseComponentsXml

        private void parseComponentsXml​(java.net.URL url,
                                        PlexusTypeRegistry registry)
        Parses a components.xml resource into a series of Plexus bean metadata.
        Parameters:
        url - The components.xml URL
        registry - 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 parser
        registry - 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 parser
        registry - 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 implementation
        configurationMap - The field -> @Configuration map
        requirementMap - 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 parser
        space - The class space
        requirementMap - 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 parser
        configurationMap - 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