AltDD processing missing from MultipleVFSParsingDeployer
adrian.brock Jul 14, 2008 9:04 AMSince the RARParsingDeployer moved to the new MultipleVFSParsingDeployer
the AltDD test is failing:
http://hudson.jboss.org/hudson/job/JBoss-AS-5.0.x-TestSuite-sun15/lastBuild/testReport/org.jboss.test.deployers.ear.test/EARAltDDConnectorDeploymentUnitTestCase/testEARDeployment/
This is because it is not using the alternate deployment descriptor specified in the
ear deployment descriptor.
Caused by: org.xml.sax.SAXException: Content is not allowed in prolog. @ vfszip:/home/ejort/jboss-head/testsuite/output/lib/testdeployers-ear-altdd-connector.ear/testdeployers-invalidmcf.rar/META-INF/ra.xml[1,1] at org.jboss.xb.binding.parser.sax.SaxJBossXBParser$MetaDataErrorHandler.fatalError(SaxJBossXBParser.java:432) at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source) at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:199) ... 69 more 14:13:30,058 WARN [MainDeployer] Failed to deploy: file:/home/ejort/jboss-head/testsuite/output/lib/testdeployers-ear-altdd-connector.ear
The processing that is missing is to look for the .altDD attachment.
See AbstractVFSParsingDeployer.
In fact, The MultipleVFSParsingDeployer overrides the wrong method.
1) It is wrong for it to check for the altDD on the "merged" metadata class name
in the method inherited from AbstractVFSParsingDeployer.
It should be checking for the "expectedType".getName() + ".altDD"
attachment.
2) If there's an altDD, the original metadata file may not even exist
(currently the deployment would be ignored altogether in this case).
so it should be matching against the name of the file not assuming the file exists.