You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by do...@apache.org on 2002/07/30 14:26:33 UTC

cvs commit: jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/tools/configuration ConfigurationBuilder.java DTDResolver.java

donaldp     2002/07/30 05:26:33

  Modified:    src/java/org/apache/avalon/phoenix/tools/configuration
                        ConfigurationBuilder.java DTDResolver.java
  Log:
  Make sure that configuration for the mxinfo file is validated against a DTD.
  
  Revision  Changes    Path
  1.6       +36 -5     jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/tools/configuration/ConfigurationBuilder.java
  
  Index: ConfigurationBuilder.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/tools/configuration/ConfigurationBuilder.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ConfigurationBuilder.java	19 Jul 2002 01:13:33 -0000	1.5
  +++ ConfigurationBuilder.java	30 Jul 2002 12:26:33 -0000	1.6
  @@ -32,7 +32,10 @@
                        "org/apache/avalon/phoenix/tools/blockinfo.dtd" ),
           new DTDInfo( "-//PHOENIX/Assembly DTD Version 1.0//EN",
                        "http://jakarta.apache.org/phoenix/assembly_1_0.dtd",
  -                     "org/apache/avalon/phoenix/tools/assembly.dtd" )
  +                     "org/apache/avalon/phoenix/tools/assembly.dtd" ),
  +        new DTDInfo( "-//PHOENIX/Mx Info DTD Version 1.0//EN",
  +                     "http://jakarta.apache.org/phoenix/mxinfo_1_0.dtd",
  +                     "org/apache/avalon/phoenix/tools/mxinfo.dtd" )
       };
   
       private static final DTDResolver c_resolver =
  @@ -61,11 +64,19 @@
        * Internally sets up the XMLReader
        */
       private static void setupXMLReader( final XMLReader reader,
  -                                        final SAXConfigurationHandler handler )
  +                                        final SAXConfigurationHandler handler,
  +                                        final boolean validate)
  +        throws SAXException
       {
           reader.setEntityResolver( c_resolver );
           reader.setContentHandler( handler );
           reader.setErrorHandler( handler );
  +
  +        if (validate)
  +        {
  +            // Request validation
  +            reader.setFeature("http://xml.org/sax/features/validation", true);
  +        }
       }
   
       /**
  @@ -78,15 +89,35 @@
       }
   
       /**
  +     * Build a configuration object using an URI, and 
  +     * optionally validate the xml against the DTD.
  +     */
  +    public static Configuration build( final String uri, boolean validate )
  +        throws SAXException, ParserConfigurationException, IOException
  +    {
  +        return build( new InputSource( uri ), validate );
  +    }
  +
  +    /**
        * Build a configuration object using an XML InputSource object
        */
       public static Configuration build( final InputSource input )
           throws SAXException, ParserConfigurationException, IOException
       {
  +        return build( input, false );
  +    }
  +
  +    /**
  +     * Build a configuration object using an XML InputSource object, and 
  +     * optionally validate the xml against the DTD.
  +     */
  +    public static Configuration build( final InputSource input, boolean validate )
  +        throws SAXException, ParserConfigurationException, IOException
  +    {
           final XMLReader reader = createXMLReader();
           final SAXConfigurationHandler handler = new SAXConfigurationHandler();
  -        setupXMLReader( reader, handler );
  +        setupXMLReader( reader, handler, validate );
           reader.parse( input );
           return handler.getConfiguration();
  -    }
  +    }   
   }
  
  
  
  1.6       +3 -3      jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/tools/configuration/DTDResolver.java
  
  Index: DTDResolver.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/tools/configuration/DTDResolver.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DTDResolver.java	26 Jul 2002 09:49:22 -0000	1.5
  +++ DTDResolver.java	30 Jul 2002 12:26:33 -0000	1.6
  @@ -54,8 +54,8 @@
           {
               final DTDInfo info = m_dtdInfos[ i ];
   
  -            if( (publicId != null && publicId.equals( info.getPublicId() ))
  -                || (systemId != null && systemId.equals( info.getSystemId() )) )
  +            if( (publicId != null && publicId.equals( info.getPublicId() )) ||
  +                (systemId != null && systemId.equals( info.getSystemId() )) )
               {
                   final ClassLoader classLoader = getClassLoader();
                   final InputStream inputStream =
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>