phew, that is odd. Did google have some hints? Or ever asked at the digester group? (maybe that is not so active?)
-Matthias On Thu, Jan 7, 2010 at 6:37 PM, Andrew Robinson <andrew.rw.robin...@gmail.com> wrote: > Okay, if I compile with Java6 but run the tests with Java5 it works, > the xpointer is processed fine. Perhaps there is a problem with the > Java 6 on linux? > java version "1.6.0_15" > Java(TM) SE Runtime Environment (build 1.6.0_15-b03) > Java HotSpot(TM) 64-Bit Server VM (build 14.1-b02, mixed mode) > > Or is anyone aware of changes to the XML parsing in Java6 that require > different code for xinclude parsing? > > -Andrew > > On Wed, Jan 6, 2010 at 6:10 PM, Andrew Robinson > <andrew.rw.robin...@gmail.com> wrote: >> Giving up for the night, but I found that this works: >> <xi:include href="TestInclude.xml" /> >> >> But not this: >> <xi:include href="./TestInclude.xml" >> xpointer="/faces-config/component/*"/> >> >> If the xpointer attribute has any value at all it seems to fail. >> >> On Wed, Jan 6, 2010 at 5:33 PM, Andrew Robinson >> <andrew.rw.robin...@gmail.com> wrote: >>> Update: >>> >>> I changed the code to this: >>> public void merge( >>> FacesConfigBean owner, >>> URL url) throws MojoExecutionException >>> { >>> try >>> { >>> URLConnection conn = url.openConnection(); >>> long lastModified = conn.getLastModified(); >>> >>> // Establish the current last-modified value >>> // As new components are added, they will remember >>> // this current value as their own last-modified >>> owner.touch(lastModified); >>> >>> Digester digester = createDigester(); >>> digester.push(url); >>> digester.push(owner); >>> digester.parse(url.toExternalForm()); >>> } >>> >>> Now the path is correct: >>> resolveEntity('null', >>> 'file:/home/anrobins/development/maven-trinidad/branches/2.0.0-branch/maven-faces-plugin/target/test-classes/META-INF/maven-faces-plugin/components/trinidad/faces/TestInclude.xml') >>> >>> testGenerate(org.apache.myfaces.trinidadbuild.plugin.faces.GenerateComponentsMojoTest) >>> Time elapsed: 0.359 sec <<< ERROR! >>> org.apache.maven.plugin.MojoExecutionException: Failed to parse >>> file:/home/anrobins/development/maven-trinidad/branches/2.0.0-branch/maven-faces-plugin/target/test-classes/META-INF/maven-faces-plugin/components/trinidad/faces/Command.xml >>> at >>> org.apache.myfaces.trinidadbuild.plugin.faces.parse.FacesConfigParser.merge(FacesConfigParser.java:68) >>> at >>> org.apache.myfaces.trinidadbuild.plugin.faces.AbstractFacesMojo.processIndexEntry(AbstractFacesMojo.java:297) >>> at >>> org.apache.myfaces.trinidadbuild.plugin.faces.AbstractFacesMojo.processIndex(AbstractFacesMojo.java:287) >>> at >>> org.apache.myfaces.trinidadbuild.plugin.faces.GenerateComponentsMojo.execute(GenerateComponentsMojo.java:59) >>> at >>> org.apache.myfaces.trinidadbuild.plugin.faces.GenerateComponentsMojoTest.testGenerate(GenerateComponentsMojoTest.java:89) >>> Caused by: org.xml.sax.SAXParseException: An 'include' failed, and no >>> 'fallback' element was found. >>> at >>> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1231) >>> at >>> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) >>> at org.apache.commons.digester.Digester.parse(Digester.java:1836) >>> at >>> org.apache.myfaces.trinidadbuild.plugin.faces.parse.FacesConfigParser.merge(FacesConfigParser.java:60) >>> ... 30 more >>> >>> But the include still fails with no helpful information. Still would >>> not mind any help. >>> >>> Thanks, >>> Andrew >>> >>> On Wed, Jan 6, 2010 at 4:51 PM, Andrew Robinson >>> <andrew.rw.robin...@gmail.com> wrote: >>>> Forgot to mention that it is looking for: >>>> /home/anrobins/development/maven-trinidad/branches/2.0.0-branch/maven-faces-plugin/TestInclude.xml >>>> but the correct path is: >>>> /home/anrobins/development/maven-trinidad/branches/2.0.0-branch/maven-faces-plugin/src/test/resources/META-INF/maven-faces-plugin/components/trinidad/faces/TestInclude.xml >>>> >>>> So I need to figure out how to set the base URL for the relative URL >>>> handling. >>>> >>>> -Andrew >>>> >>>> >>>> On Wed, Jan 6, 2010 at 4:21 PM, Andrew Robinson >>>> <andrew.rw.robin...@gmail.com> wrote: >>>>> Hey all, I could really use some help. I have been unable so far to >>>>> get the maven-faces-plugin to resolve xml includes in the 2.0.1 >>>>> version of the plugins. I removed xerces and the other XML >>>>> dependencies from the POM so that it would use the Java built-in XML. >>>>> Then I made it XInclude aware: >>>>> >>>>> static protected Digester createEmptyDigester() >>>>> throws ParserConfigurationException, SAXException >>>>> { >>>>> SAXParserFactory spf = SAXParserFactory.newInstance(); >>>>> spf.setNamespaceAware(true); >>>>> // requires JAXP 1.3, in JavaSE 5.0 >>>>> spf.setXIncludeAware(true); >>>>> >>>>> >>>>> Here is the logging output: >>>>> >>>>> resolveEntity('null', >>>>> 'file:///home/anrobins/development/maven-trinidad/branches/2.0.0-branch/maven-faces-plugin/TestInclude.xml') >>>>> Jan 6, 2010 4:10:54 PM org.apache.commons.digester.Digester fatalError >>>>> SEVERE: Parse Fatal Error at line 37 column 90: An 'include' failed, >>>>> and no 'fallback' element was found. >>>>> org.xml.sax.SAXParseException: An 'include' failed, and no 'fallback' >>>>> element was found. >>>>> at >>>>> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195) >>>>> at >>>>> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174) >>>>> at >>>>> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388) >>>>> at >>>>> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318) >>>>> at >>>>> com.sun.org.apache.xerces.internal.xinclude.XIncludeHandler.reportError(XIncludeHandler.java:2320) >>>>> at >>>>> com.sun.org.apache.xerces.internal.xinclude.XIncludeHandler.reportFatalError(XIncludeHandler.java:2315) >>>>> at >>>>> com.sun.org.apache.xerces.internal.xinclude.XIncludeHandler.reportFatalError(XIncludeHandler.java:2311) >>>>> at >>>>> com.sun.org.apache.xerces.internal.xinclude.XIncludeHandler.endElement(XIncludeHandler.java:1001) >>>>> >>>>> >>>>> I tried to turn on validation >>>>> spt.setValidating(true); >>>>> spf.setFeature("http://apache.org/xml/features/validation/schema", >>>>> true); >>>>> >>>>> But then I ran into this: >>>>> SEVERE: Parse Error at line 26 column 73: cvc-elt.1: Cannot find the >>>>> declaration of element 'faces-config'. >>>>> org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration >>>>> of element 'faces-config'. >>>>> at >>>>> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195) >>>>> at >>>>> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131) >>>>> at >>>>> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384) >>>>> at >>>>> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318) >>>>> at >>>>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1887) >>>>> at >>>>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:685) >>>>> at >>>>> com.sun.org.apache.xerces.internal.xinclude.XIncludeHandler.startElement(XIncludeHandler.java:908) >>>>> at >>>>> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400) >>>>> >>>>> >>>>> In my project I have some of the fmd:* attributes being pulled in >>>>> through xi:include elements. Not using include would be a very hard >>>>> thing as we have many includes. Anyone know what I can do to get the >>>>> includes parsing correctly with the digester? >>>>> >>>>> Thank you! >>>>> -Andrew >>>>> >>>> >>> >> > -- Matthias Wessendorf blog: http://matthiaswessendorf.wordpress.com/ sessions: http://www.slideshare.net/mwessendorf twitter: http://twitter.com/mwessendorf