Author: mrglavas
Date: Mon Feb 27 20:02:23 2006
New Revision: 381557

URL: http://svn.apache.org/viewcvs?rev=381557&view=rev
Log:
Fixing JIRA Bug #1121:
http://issues.apache.org/jira/browse/XERCESJ-1121

It took about 50 or so hacks but the dtdjars target is working again.
Unfortuately it's likely it will break again in the future. Sigh...

Modified:
    xerces/java/trunk/build.xml

Modified: xerces/java/trunk/build.xml
URL: 
http://svn.apache.org/viewcvs/xerces/java/trunk/build.xml?rev=381557&r1=381556&r2=381557&view=diff
==============================================================================
--- xerces/java/trunk/build.xml (original)
+++ xerces/java/trunk/build.xml Mon Feb 27 20:02:23 2006
@@ -897,22 +897,26 @@
   <!-- (that is, with no schema support or WML/HTML DOM.)                  -->
   <!-- =================================================================== -->
   <target name="dtdjar" depends="dtdcompile">
+    <!-- take care of manifest file -->
+    <filter token="java.version" value="${java.version}"/>
+    <filter token="java.vendor" value="${java.vendor}"/>
+    <filter token="impl.name" value="${parser.Name} ${parser.Version}"/>
+    <filter token="impl.version" value="${parser.Version}"/>   
+    <copy todir="${build.dir}" file="${src.dir}/manifest.xerces" 
filtering="true"/>
     <jar jarfile="${build.dir}/dtd-${jar.parser}"
          basedir="${build.dest}"
          compress="true"
          includes="org/apache/**, META-INF/**
-                   org/w3c/dom/html/HTMLDOMImplementation.class
-                   org/w3c/dom/ls/**
-                   org/w3c/dom/DOMError.class
-                   org/w3c/dom/DOMErrorHandler.class
-                   org/w3c/dom/DOMImplementationSource.class
-                   org/w3c/dom/DOMImplementationRegistry.class
-                   org/w3c/dom/DOMLocator.class
-                   org/w3c/dom/UserDataHandler.class"/>
+                   org/w3c/dom/html/HTMLDOMImplementation.class"
+         manifest="${build.dir}/manifest.xerces">
+      <manifest>
+        <attribute name="Ant-Version" value="${ant.version}"/>
+      </manifest>
+    </jar>
   </target>
 
   <!-- =================================================================== -->
-  <!-- Compiles the dtd source directory                                  -->
+  <!-- Compiles the dtd source directory                                   -->
   <!-- =================================================================== -->
   <target name="dtdcompile" depends="dtdprepare-src">
     <copy todir="${build.dest}">
@@ -928,7 +932,7 @@
            optimize="${optimize}"
            includeAntRuntime="false"
            includeJavaRuntime="true"
-           classpath="${tools.dir}/${jar.resolver}"/>
+           classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}"/>
   </target>
 
 
@@ -941,6 +945,11 @@
       
     <copy 
file="${src.dir}/org/apache/xerces/dom/org.apache.xerces.dom.DOMImplementationSourceImpl"
       
tofile="${build.dest}/META-INF/services/org.w3c.dom.DOMImplementationSourceList"/>
+       
+    <!-- delete META-INF/services files for DatatypeFactory/SchemaFactory 
+         since no implementation is provided in this jar -->
+       <delete 
file="${build.dest}/META-INF/services/javax.xml.datatype.DatatypeFactory"/>
+    <delete 
file="${build.dest}/META-INF/services/javax.xml.validation.SchemaFactory"/>
 
     <!-- copy src files -->
     <copy todir="${build.src}">
@@ -951,7 +960,6 @@
                        **/DatatypeContentModel.java **/ComplexTypeInfo.java
                        **/v1/** **/v2/**
                         javax.xml.parsers.ConvertToURI.java
-                        
org/apache/xerces/dom/DOMXSImplementationSourceImpl.java
                         org/apache/xerces/impl/xs/*.java
                         org/apache/xerces/impl/dv/xs/**
                         org/apache/xerces/impl/xs/identity/**
@@ -992,11 +1000,18 @@
                         org/apache/xerces/xpointer/**
                         org/apache/xerces/dom/ASModelImpl.java
                         org/apache/xerces/dom/ASDOMImplementationImpl.java
+                        
org/apache/xerces/dom/DOMXSImplementationSourceImpl.java
+                        org/apache/xerces/dom3/as/**
                         org/apache/xerces/impl/XML11D*.java
                         org/apache/xerces/impl/XML11NamespaceBinder.java
                         org/apache/xerces/impl/XML11NSDocumentScannerImpl.java
                         org/apache/xerces/impl/XMLVersionDetector.java
                         org/apache/xerces/impl/dtd/XML11*.java
+                        org/apache/xerces/impl/msg/DatatypeMessage*.properties
+                        
org/apache/xerces/impl/msg/JAXPValidationMessage*.properties
+                        org/apache/xerces/impl/msg/XIncludeMessage*.properties
+                        org/apache/xerces/impl/msg/XPointerMessage*.properties
+                        org/apache/xerces/util/DatatypeMessageFormatter.java
                         org/apache/html/**
                         org/apache/wml/**
            ">
@@ -1007,17 +1022,18 @@
     <copy todir="${build.src}">
         <fileset 
             dir="${src.dir}"
-            includes="org/apache/xerces/xs/**,
+            includes="org/apache/xerces/xs/*.java,
                       org/apache/xerces/impl/xs/XSTypeDecl.java
                      ">
         </fileset>
     </copy>
 
     <!-- HACK: DOM implementation now is aware of type information
-         and thus is imports XSSimpleTypeDecl (for XML Schema type support)
-         Since in DTD jars we never going to have XSSimpleTypeDecl we can 
safely
-         replace it by String. The code after replacement may look a bit 
strange.. 
-         but there is nothing we can do at this point-->
+         and thus is imports XSSimpleTypeDecl (among other XSModel interfaces 
+         for XML Schema type support) Since in DTD jars we never going to have 
+         XSSimpleTypeDecl we can safely replace it by String. The code after 
+         replacement may look a bit strange.. but there is nothing we can do 
at 
+         this point -->
     <replace file="${build.dir}/src/org/apache/xerces/dom/AttrNSImpl.java" 
              token="import org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl;" 
value=""/>
     <replace file="${build.dir}/src/org/apache/xerces/dom/AttrNSImpl.java" 
@@ -1034,8 +1050,33 @@
              token="return ((String)type).getName();" value="return 
(String)type;"/>
     <replace file="${build.dir}/src/org/apache/xerces/dom/AttrNSImpl.java" 
              token="return ((String)type).getNamespace();" value="return 
null;"/>
+
+    <replace file="${build.dir}/src/org/apache/xerces/dom/ElementNSImpl.java" 
+             token="import org.apache.xerces.xs.XSSimpleTypeDefinition;" 
value=""/>
+    <replace file="${build.dir}/src/org/apache/xerces/dom/ElementNSImpl.java" 
+             token="import org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl;" 
value=""/>
+    <replace file="${build.dir}/src/org/apache/xerces/dom/ElementNSImpl.java" 
+             token="import org.apache.xerces.impl.xs.XSComplexTypeDecl;" 
value=""/>
+    <replace file="${build.dir}/src/org/apache/xerces/dom/ElementNSImpl.java" 
+             token="transient XSTypeDefinition type;" value="transient Object 
type;"/>
+    <replace file="${build.dir}/src/org/apache/xerces/dom/ElementNSImpl.java" 
+             token="XSSimpleTypeDefinition" value="String"/>
+    <replace file="${build.dir}/src/org/apache/xerces/dom/ElementNSImpl.java" 
+             token="return ((XSSimpleTypeDecl) type).getTypeName();" 
value="return null;"/>
+    <replace file="${build.dir}/src/org/apache/xerces/dom/ElementNSImpl.java" 
+             token="return ((XSComplexTypeDecl) type).getTypeName();" 
value="return null;"/>
+    <replace file="${build.dir}/src/org/apache/xerces/dom/ElementNSImpl.java" 
+             token="return type.getNamespace();" value="return null;"/>
+    <replace file="${build.dir}/src/org/apache/xerces/dom/ElementNSImpl.java" 
+             token="return type.getNamespace();" value="return null;"/>
+    <replace file="${build.dir}/src/org/apache/xerces/dom/ElementNSImpl.java" 
+             token="return ((XSSimpleTypeDecl) type).isDOMDerivedFrom(" 
value="return false;"/>
+    <replace file="${build.dir}/src/org/apache/xerces/dom/ElementNSImpl.java" 
+             token="return ((XSComplexTypeDecl) type).isDOMDerivedFrom(" 
value="return false;"/>
+    <replace file="${build.dir}/src/org/apache/xerces/dom/ElementNSImpl.java" 
+             token="typeNamespaceArg, typeNameArg, derivationMethod);" 
value=""/>
        
-       <!-- HACK: Remove references to schema DOM from DOMUtil -->
+    <!-- HACK: Remove references to schema DOM from DOMUtil -->
     <replace file="${build.dir}/src/org/apache/xerces/util/DOMUtil.java" 
              token="import org.apache.xerces.impl.xs.opti.ElementImpl;" 
value=""/>
     <replace file="${build.dir}/src/org/apache/xerces/util/DOMUtil.java" 
@@ -1052,6 +1093,59 @@
              
token="((org.apache.xerces.impl.xs.opti.NodeImpl)node).setReadOnly(false, 
false);" value="return;"/>
     <replace file="${build.dir}/src/org/apache/xerces/util/DOMUtil.java" 
              token="return 
((org.apache.xerces.impl.xs.opti.NodeImpl)node).getReadOnly();" value="return 
false;"/>
+       
+       <!-- HACK: Remove references to schema validation support from 
org.apache.xerces.jaxp -->
+    <replace file="${build.dir}/src/org/apache/xerces/jaxp/SAXParserImpl.java" 
+             token="import org.apache.xerces.impl.xs.XMLSchemaValidator;" 
value=""/>
+    <replace file="${build.dir}/src/org/apache/xerces/jaxp/SAXParserImpl.java" 
+             token="import 
org.apache.xerces.jaxp.validation.XSGrammarPoolContainer;" value=""/>
+    <replace file="${build.dir}/src/org/apache/xerces/jaxp/SAXParserImpl.java" 
+             token="this.grammar = spf.getSchema();" value="this.grammar = 
null;"/>
+    <replace file="${build.dir}/src/org/apache/xerces/jaxp/SAXParserImpl.java" 
+             token="(grammar != null)" value="(false)"/>
+    <replace file="${build.dir}/src/org/apache/xerces/jaxp/SAXParserImpl.java" 
+             token="(grammar instanceof XSGrammarPoolContainer)" 
value="(grammar != null)"/>
+    <replace file="${build.dir}/src/org/apache/xerces/jaxp/SAXParserImpl.java" 
+             token="new XMLSchemaValidator();" value="null;"/>
+    <replace file="${build.dir}/src/org/apache/xerces/jaxp/SAXParserImpl.java" 
+             token="new UnparsedEntityHandler(fSchemaValidationManager);" 
value="null;"/>
+    <replace file="${build.dir}/src/org/apache/xerces/jaxp/SAXParserImpl.java" 
+             token="new 
JAXPValidatorComponent(grammar.newValidatorHandler());" value="null;"/>
+    <replace file="${build.dir}/src/org/apache/xerces/jaxp/SAXParserImpl.java" 
+             token="new SchemaValidatorConfiguration(config," value="null;"/>
+    <replace file="${build.dir}/src/org/apache/xerces/jaxp/SAXParserImpl.java" 
+             token="(XSGrammarPoolContainer) grammar, 
fSchemaValidationManager);" value=""/>
+       
+    <replace 
file="${build.dir}/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java" 
+             token="import org.apache.xerces.impl.xs.XMLSchemaValidator;" 
value=""/>
+    <replace 
file="${build.dir}/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java" 
+             token="import 
org.apache.xerces.jaxp.validation.XSGrammarPoolContainer;" value=""/>
+    <replace 
file="${build.dir}/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java" 
+             token="this.grammar = dbf.getSchema();" value="this.grammar = 
null;"/>
+    <replace 
file="${build.dir}/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java" 
+             token="(grammar != null)" value="(false)"/>
+    <replace 
file="${build.dir}/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java" 
+             token="(grammar instanceof XSGrammarPoolContainer)" 
value="(grammar != null)"/>
+    <replace 
file="${build.dir}/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java" 
+             token="new XMLSchemaValidator();" value="null;"/>
+    <replace 
file="${build.dir}/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java" 
+             token="new UnparsedEntityHandler(fSchemaValidationManager);" 
value="null;"/>
+    <replace 
file="${build.dir}/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java" 
+             token="new 
JAXPValidatorComponent(grammar.newValidatorHandler());" value="null;"/>
+    <replace 
file="${build.dir}/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java" 
+             token="new SchemaValidatorConfiguration(config," value="null;"/>
+    <replace 
file="${build.dir}/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java" 
+             token="(XSGrammarPoolContainer) grammar, 
fSchemaValidationManager);" value=""/>
+       
+    <replace 
file="${build.dir}/src/org/apache/xerces/jaxp/SAXParserFactoryImpl.java" 
+             token="return grammar;" value="throw new 
UnsupportedOperationException();"/>
+    <replace 
file="${build.dir}/src/org/apache/xerces/jaxp/SAXParserFactoryImpl.java" 
+             token="this.grammar = grammar;" value="throw new 
UnsupportedOperationException();"/>
+
+    <replace 
file="${build.dir}/src/org/apache/xerces/jaxp/DocumentBuilderFactoryImpl.java" 
+             token="return grammar;" value="throw new 
UnsupportedOperationException();"/>
+    <replace 
file="${build.dir}/src/org/apache/xerces/jaxp/DocumentBuilderFactoryImpl.java" 
+             token="this.grammar = grammar;" value="throw new 
UnsupportedOperationException();"/>
              
     <!-- HACK: Remove reference to XML11Configurable from SAX parser -->
     <replace 
file="${build.dir}/src/org/apache/xerces/parsers/AbstractSAXParser.java"



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to