You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by do...@apache.org on 2001/06/05 09:49:36 UTC
cvs commit: jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmidon/components/builder DefaultProjectBuilder.java
donaldp 01/06/05 00:49:36
Modified: proposal/myrmidon/src/java/org/apache/myrmidon/components/builder
DefaultProjectBuilder.java
Log:
Update to work with JAXP1.1 rather than SAX2 mechanisms.
Revision Changes Path
1.6 +33 -13 jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmidon/components/builder/DefaultProjectBuilder.java
Index: DefaultProjectBuilder.java
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmidon/components/builder/DefaultProjectBuilder.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- DefaultProjectBuilder.java 2001/06/02 08:46:12 1.5
+++ DefaultProjectBuilder.java 2001/06/05 07:49:34 1.6
@@ -9,10 +9,12 @@
import java.io.File;
import java.io.IOException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
import org.apache.avalon.framework.ExceptionUtil;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
+import org.apache.avalon.framework.configuration.SAXConfigurationHandler;
import org.apache.avalon.framework.logger.AbstractLoggable;
import org.apache.log.Logger;
import org.apache.myrmidon.api.TaskContext;
@@ -21,8 +23,8 @@
import org.apache.myrmidon.components.model.DefaultTarget;
import org.apache.myrmidon.components.model.Project;
import org.apache.myrmidon.components.model.Target;
-import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
/**
* Default implementation to construct project from a build file.
@@ -33,13 +35,6 @@
extends AbstractLoggable
implements ProjectBuilder
{
- protected DefaultConfigurationBuilder m_builder;
-
- public DefaultProjectBuilder()
- {
- m_builder = new DefaultConfigurationBuilder();
- }
-
/**
* build a project from file.
*
@@ -51,10 +46,35 @@
public Project build( final File projectFile )
throws Exception
{
- final String location = projectFile.getCanonicalFile().toString();
- final Configuration configuration = (Configuration)m_builder.buildFromFile( location );
- return build( projectFile, configuration );
+ final SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
+ final SAXParser saxParser = saxParserFactory.newSAXParser();
+ final XMLReader parser = saxParser.getXMLReader();
+ parser.setFeature( "http://xml.org/sax/features/namespace-prefixes", false );
+ parser.setFeature( "http://xml.org/sax/features/namespaces", false );
+ //parser.setFeature( "http://xml.org/sax/features/validation", false );
+
+ final SAXConfigurationHandler handler = new SAXConfigurationHandler();
+ parser.setContentHandler( handler );
+ parser.setErrorHandler( handler );
+
+ final String location = projectFile.toURL().toString();
+ parser.parse( location );
+
+ return build( projectFile, handler.getConfiguration() );
+ }
+/*
+ private final void dump( final Configuration configuration )
+ throws Exception
+ {
+ System.out.println( "Configuration: "+ configuration.getName() + "/" + configuration.getLocation() );
+ final Configuration[] children = configuration.getChildren();
+
+ for( int i = 0; i < children.length; i++ )
+ {
+ dump( children[ i ] );
+ }
}
+*/
/**
* build project from configuration.
@@ -66,7 +86,7 @@
* @exception Exception if an error occurs
* @exception ConfigurationException if an error occurs
*/
- protected Project build( final File file, final Configuration configuration )
+ protected final Project build( final File file, final Configuration configuration )
throws Exception
{
if( !configuration.getName().equals("project") )