-
1. Re: Implementing JAXB style parsing for aop-mc-int
adrian.brock Feb 21, 2008 9:23 AM (in response to kabirkhan)No you don't, you just use a BeanMetaDataFactory.
I rewrote the BeanFactory parsing this way, it's much nicer :-)
Examples:
beanfactory http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbossas/projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/factory/GenericBeanFactoryMetaData2.java?revision=68661&view=markup
new classloader http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbossas/projects/microcontainer/trunk/classloading-vfs/src/main/org/jboss/classloading/spi/vfs/metadata/VFSClassLoaderFactory.java?revision=69880&view=markup
well reallyit's subclass
http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbossas/projects/microcontainer/trunk/classloading-vfs/src/main/org/jboss/classloading/spi/vfs/metadata/VFSClassLoaderFactory10.java?revision=69880&view=markup
See my many posts on "use case xml" or what others like to call
"domain specific language" ;-) -
2. Re: Implementing JAXB style parsing for aop-mc-int
kabirkhan Feb 21, 2008 9:35 AM (in response to kabirkhan)Thanks, I will look into that. I think that answers a lot of the other questions I was about to ask.
However, I also need to be able to have -
3. Re: Implementing JAXB style parsing for aop-mc-int
kabirkhan Feb 21, 2008 9:37 AM (in response to kabirkhan)FULL POST...
Thanks, I will look into that. I think that answers a lot of the other questions I was about to ask.
However, I also need to be able to have<aop> </aop>
at the top level so that I can support deployments similar to the current -aop.xml. Do you have any tips on how to achieve that? -
4. Re: Implementing JAXB style parsing for aop-mc-int
alesj Feb 21, 2008 9:47 AM (in response to kabirkhan)"adrian@jboss.org" wrote:
beanfactory http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbossas/projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/factory/GenericBeanFactoryMetaData2.java?revision=68661&view=markup
That's the stuff that was presented at recent JBoss dev meeting in Orlando. ;-) -
5. Re: Implementing JAXB style parsing for aop-mc-int
adrian.brock Feb 21, 2008 9:59 AM (in response to kabirkhan)That should be:
@JBossXmlSchema(elementFormDefault=XmlNsForm.UNQUALIFIED) @XmlRootElement(name="aop") public class AOPDeployment extends AbstractKernelDeployment { }
-
6. Re: Implementing JAXB style parsing for aop-mc-int
adrian.brock Feb 21, 2008 10:06 AM (in response to kabirkhan)I seemed to have editied my posting instead of posting a correction.
Here's the full correct post:
Something like:@JBossXmlSchema(elementFormDefault=XmlNsForm.UNQUALIFIED) @XmlRootElement(name="aop"); public class AOPDeployment extends AbstractKernelDeployment { }
Although I don't think Alex has put much testing into unqualified schemas in JBossXB
so you might want to force people to update their xml to use a namespace?@JBossXmlSchema(namespace="urn:jboss:aop:2.0", elementFormDefault=XmlNsForm.QUALIFIED) @XmlRootElement(name="aop"); <aop xmlns="urn:jboss:aop:2.0"> </aop>
-
7. Re: Implementing JAXB style parsing for aop-mc-int
kabirkhan Feb 21, 2008 11:30 AM (in response to kabirkhan)I am getting the following error when trying to set up the SchemaResolver
java.lang.RuntimeException: No such property for bean org.jboss.beans.info.spi.EventInfo available [] at org.jboss.beans.info.spi.EventInfo. at org.jboss.beans.info.spi.BeanInfo.events at org.jboss.kernel.spi.dependency.KernelControllerContext.beanInfo at org.jboss.aop.microcontainer.beans.beanmetadatafactory.AOPDeployment.installedContexts at org.jboss.aop.microcontainer.beans.beanmetadatafactory.AOPDeployment at org.jboss.xb.builder.JBossXBNoSchemaBuilder.rethrowWithLocation(JBossXBNoSchemaBuilder.java:1854) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.createRootElementBinding(JBossXBNoSchemaBuilder.java:285) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.createRootElements(JBossXBNoSchemaBuilder.java:260) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.build(JBossXBNoSchemaBuilder.java:184) at org.jboss.xb.builder.JBossXBBuilder.build(JBossXBBuilder.java:102) at org.jboss.aop.microcontainer.junit.JAXBDeployer.addSchemaBinding(JAXBDeployer.java:105) at org.jboss.aop.microcontainer.junit.JAXBDeployer.setupResolver(JAXBDeployer.java:96) at org.jboss.aop.microcontainer.junit.JAXBDeployer.unmarshal(JAXBDeployer.java:82) at org.jboss.aop.microcontainer.junit.AOPMicrocontainerTestDelegate.unmarshal(AOPMicrocontainerTestDelegate.java:138) at org.jboss.aop.microcontainer.junit.ForceJAXBAOPMicrocontainerTest.unmarshal(ForceJAXBAOPMicrocontainerTest.java:50) at org.jboss.test.microcontainer.beans.test.JAXBAnnotationSanityTestCase.unmarshal(JAXBAnnotationSanityTestCase.java:178) at org.jboss.test.microcontainer.beans.test.JAXBAnnotationSanityTestCase.testAspectWithDefaultNameAndScope(JAXBAnnotationSanityTestCase.java:62) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at junit.framework.TestCase.runTest(TestCase.java:154) at junit.framework.TestCase.runBare(TestCase.java:127) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:118) at junit.framework.TestSuite.runTest(TestSuite.java:208) at junit.framework.TestSuite.run(TestSuite.java:203) at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22) at junit.extensions.TestSetup$1.protect(TestSetup.java:19) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.extensions.TestSetup.run(TestSetup.java:23) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) Caused by: java.lang.IllegalArgumentException: No such property for bean org.jboss.beans.info.spi.EventInfo available [] at org.jboss.beans.info.plugins.AbstractBeanInfo.getProperty(AbstractBeanInfo.java:160) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateType(JBossXBNoSchemaBuilder.java:1053) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateBean(JBossXBNoSchemaBuilder.java:695) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateBean(JBossXBNoSchemaBuilder.java:683) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateTypeBinding(JBossXBNoSchemaBuilder.java:462) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.resolveTypeBinding(JBossXBNoSchemaBuilder.java:421) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.bindProperty(JBossXBNoSchemaBuilder.java:1715) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateType(JBossXBNoSchemaBuilder.java:1054) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateBean(JBossXBNoSchemaBuilder.java:695) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateBean(JBossXBNoSchemaBuilder.java:683) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateTypeBinding(JBossXBNoSchemaBuilder.java:462) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.resolveTypeBinding(JBossXBNoSchemaBuilder.java:421) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.bindProperty(JBossXBNoSchemaBuilder.java:1715) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateType(JBossXBNoSchemaBuilder.java:1054) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateBean(JBossXBNoSchemaBuilder.java:695) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateBean(JBossXBNoSchemaBuilder.java:683) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateTypeBinding(JBossXBNoSchemaBuilder.java:462) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.resolveTypeBinding(JBossXBNoSchemaBuilder.java:421) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.bindProperty(JBossXBNoSchemaBuilder.java:1715) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateType(JBossXBNoSchemaBuilder.java:1054) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateBean(JBossXBNoSchemaBuilder.java:695) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateBean(JBossXBNoSchemaBuilder.java:683) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateTypeBinding(JBossXBNoSchemaBuilder.java:462) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.resolveTypeBinding(JBossXBNoSchemaBuilder.java:421) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.createElementBinding(JBossXBNoSchemaBuilder.java:300) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.createRootElementBinding(JBossXBNoSchemaBuilder.java:280) ... 32 more
public KernelDeployment unmarshal(final URL url) throws Exception { TestSchemaResolver resolver = setupResolver(); KernelDeployment deployment = (KernelDeployment)jbossXbTestDelegate.unmarshal(url.toString(), resolver); deployment.setName(url.toString()); return deployment; } private TestSchemaResolver setupResolver() { TestSchemaResolver resolver = new TestSchemaResolver(); addSchemaBinding(resolver, AbstractKernelDeployment.class); addSchemaBinding(resolver, AOPDeployment.class); //Error happens here ... return resolver; } private SchemaBinding addSchemaBinding(TestSchemaResolver resolver, Class<?> clazz) { SchemaBinding binding = JBossXBBuilder.build(clazz); resolver.addSchemaBinding(binding); return binding; }
Where@JBossXmlSchema(namespace="urn:jboss:aop-beans:1.0", elementFormDefault=XmlNsForm.QUALIFIED) //@JBossXmlSchema(elementFormDefault=XmlNsForm.UNQUALIFIED) @XmlRootElement(name="aop") public class AOPDeployment extends AbstractKernelDeployment { private static final long serialVersionUID = 1L; }
-
8. Re: Implementing JAXB style parsing for aop-mc-int
adrian.brock Feb 21, 2008 11:53 AM (in response to kabirkhan)It's a stupid error message, it means it can't use some part of your object
because it is defined using interfaces without any idea of implementation.
The reason is this in AbstractKernelDeployment (look at the stacktrace of your message)public List<KernelControllerContext> getInstalledContexts() { return installedContexts; }
There's two ways to fix it.
1) You mark either the getter or setter as @XmlTransient
2) You do like is done on AbstractKernelDeployment and list the
properties you want to explicity include in the xml@XmlType(propOrder={"annotations", "classLoader", "beanFactories", "create", "start", "stop", "destroy", "aliases"})
-
9. Re: Implementing JAXB style parsing for aop-mc-int
kabirkhan Feb 21, 2008 11:59 AM (in response to kabirkhan)"kabir.khan@jboss.com" wrote:
I am getting the following error when trying to set up the SchemaResolverjava.lang.RuntimeException: No such property for bean org.jboss.beans.info.spi.EventInfo available [] at org.jboss.beans.info.spi.EventInfo. at org.jboss.beans.info.spi.BeanInfo.events at org.jboss.kernel.spi.dependency.KernelControllerContext.beanInfo at org.jboss.aop.microcontainer.beans.beanmetadatafactory.AOPDeployment.installedContexts at org.jboss.aop.microcontainer.beans.beanmetadatafactory.AOPDeployment at org.jboss.xb.builder.JBossXBNoSchemaBuilder.rethrowWithLocation(JBossXBNoSchemaBuilder.java:1854) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.createRootElementBinding(JBossXBNoSchemaBuilder.java:285) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.createRootElements(JBossXBNoSchemaBuilder.java:260) at org.jboss.xb.builder.JBossXBNoSchemaBuilder.build(JBossXBNoSchemaBuilder.java:184) at org.jboss.xb.builder.JBossXBBuilder.build(JBossXBBuilder.java:102) at org.jboss.aop.microcontainer.junit.JAXBDeployer.addSchemaBinding(JAXBDeployer.java:105)
Adding the same @XMLType as AbstractKernelDeployment fixes it@JBossXmlSchema(namespace="urn:jboss:aop-beans:1.0", elementFormDefault=XmlNsForm.QUALIFIED) @XmlRootElement(name="aop") @XmlType(propOrder={"annotations", "classLoader", "beanFactories", "create", "start", "stop", "destroy", "aliases"}) public class AOPDeployment extends AbstractKernelDeployment { private static final long serialVersionUID = 1L; }
-
10. Re: Implementing JAXB style parsing for aop-mc-int
kabirkhan Feb 21, 2008 1:10 PM (in response to kabirkhan)When setting up my schema resolver
private TestSchemaResolver setupResolver() { TestSchemaResolver resolver = new TestSchemaResolver(); SchemaBinding binding1 = addSchemaBinding(resolver, AbstractKernelDeployment.class); SchemaBinding binding2 = addSchemaBinding(resolver, AOPDeployment.class); SchemaBinding binding3 = addSchemaBinding(resolver, AspectBeanMetaDataFactory.class); SchemaBinding binding4 = addSchemaBinding(resolver, JavaBean.class); return resolver; } private SchemaBinding addSchemaBinding(TestSchemaResolver resolver, Class<?> clazz) { SchemaBinding binding = JBossXBBuilder.build(clazz); resolver.addSchemaBinding(binding); return binding; }
the AspectBeanMetaDataFactory replaces the AOPDeployment, which is obvious having looked at the TestSchemaResolver. For AbstractKernelDeployment, all the associated metadata classes are added. My guess is that this is because they are referenced somehow by the AbstractKernelDeployment. If I have understood the previous posts correctly, the AOPDeployment should be kept simple, i.e.:@JBossXmlSchema(namespace="urn:jboss:aop-beans:1.0", elementFormDefault=XmlNsForm.QUALIFIED) @XmlRootElement(name="aop") @XmlType(propOrder={"annotations", "classLoader", "beanFactories", "create", "start", "stop", "destroy", "aliases"}) public class AOPDeployment extends AbstractKernelDeployment { private static final long serialVersionUID = 1L; }
The question is how do I get metadata classes such as AspectBeanMetaDataFactory, into the same SchemaBinding as AOPDeployment (into binding2)? -
11. Re: Implementing JAXB style parsing for aop-mc-int
kabirkhan Feb 21, 2008 5:09 PM (in response to kabirkhan)I seem to need more in my AOPDeployment, the following works for both
<aop xmlns="urn:jboss:aop-beans:1.0"> <aspect class="org.jboss.test.microcontainer.beans.TestAspect"/> </aop>
and<deployment xmlns="urn:jboss:bean-deployer:2.0"> <aspect xmlns="urn:jboss:aop-beans:1.0" class="org.jboss.test.microcontainer.beans.TestAspect"/> </deployment>
private TestSchemaResolver setupResolver() { TestSchemaResolver resolver = new TestSchemaResolver(); SchemaBinding binding = addSchemaBinding(resolver, AbstractKernelDeployment.class); binding = addSchemaBinding(resolver, AOPDeployment.class); binding = addSchemaBinding(resolver, JavaBean.class); return resolver; }
And I need to add the aspect stuff to AOPDeployment. If "aspects" is not listed in the propOrder it does not get picked up@ManagementObject(properties = ManagementProperties.EXPLICIT) // TODO - explicitly add props we want to manage @JBossXmlSchema(namespace="urn:jboss:aop-beans:1.0", elementFormDefault=XmlNsForm.QUALIFIED) @XmlRootElement(name="aop") @XmlType(propOrder={"annotations", "classLoader", "beanFactories", "create", "start", "stop", "destroy", "aliases", "aspects"}) public class AOPDeployment extends AbstractKernelDeployment { private static final long serialVersionUID = 1L; List<AspectBeanMetaDataFactory> aspects; public List<BeanMetaDataFactory> getBeanFactories() { return beanFactories; } public List<AspectBeanMetaDataFactory> getAspects() { return aspects; } @XmlElement(name="aspect") public void setAspects(List<AspectBeanMetaDataFactory> aspects) { this.aspects = aspects; } @Override public List<BeanMetaData> getBeans() { List<BeanMetaData> allBeans = super.getBeans(); if (allBeans == null) { allBeans = new ArrayList<BeanMetaData>(); } for (AspectBeanMetaDataFactory aspect : aspects) { allBeans.addAll(aspect.getBeans()); } if (allBeans.size() == 0) { return null; } return allBeans; } }
Does this look like the correct approach? -
12. Re: Implementing JAXB style parsing for aop-mc-int
adrian.brock Feb 22, 2008 4:18 AM (in response to kabirkhan)You look to be getting very confused. :-)
The first problem:
the AspectBeanMetaDataFactory replaces the AOPDeployment, which is obvious having looked at the TestSchemaResolver. For AbstractKernelDeployment, all the associated metadata classes are added. My guess is that this is because they are referenced somehow by the AbstractKernelDeployment. If I have understood the previous posts correctly, the AOPDeployment should be kept simple, i.e.:
No its because you are registering two schemas with the same namespace.
(two top level classes in the resolver).
You should register one schema for the top level class and annotate the classes
you want as @XmlRootElement.
The second problem
Does this look like the correct approach?
Looks like you don't understand how it works? :-)
The aspect element is an xml wildcard in the microcontainer schema.
If you want it native to your schema, you need to subclasses the setBeanFactories() and
change the annotations to say what is valid.
Illustrative example (trying to show how it works):@XmlElements ({ @XmlElement(name="aspect", type=AspectFactoryMetaData.class), // aspect in your namespace @XmlElement(name="bean" type=AbstractBeanMetaData.class), // bean in your namespace @XmlElement(name="bean" namespace="urn:jboss:bean-deployer:2.0", type=AbstractBeanMetaData.class), // bean in the MC namespace // etc. }) @XmlAnyElement // This accepts anything in a different namespace that implements BeanMetaDataFactory public void setBeanFactories(List<BeanMetaDataFactory> beanFactories) { // No need for your own interface, just subclass and change annotations super.setBeanFactories(beanFactories); }
Your element is called {urn:jboss:aop-beans:1.0}aspects.
It can be used as such (as a wildcard) in the bean schema
(providing it is a root element in your schema.
In your schema you just list it explctly and then there's no need to qualify it
with a namespace, it's native. -
13. Re: Implementing JAXB style parsing for aop-mc-int
kabirkhan Feb 25, 2008 12:33 PM (in response to kabirkhan)That makes more sense now. But I am getting the following error for the following xml
<?xml version="1.0" encoding="UTF-8"?> <aop xmlns="urn:jboss:aop-beans:1.0"> <bean xmlns="urn:jboss:bean-deployer:2.0" name="AspectManager" class="org.jboss.aop.AspectManager"> <constructor xmlns="urn:jboss:bean-deployer:2.0" factoryClass="org.jboss.aop.AspectManager" factoryMethod="instance"/> </bean> <aspect class="org.jboss.test.microcontainer.beans.TestAspect"> </aspect> ... </aop>
If I comment out the "constructor" element, it parses, but I want to be able to use stuff from the bean-deployer schema. Error:org.jboss.xb.binding.JBossXBException: Failed to parse source: file:/C:/cygwin/home/Kabir/sourcecontrol/microcontainer/aop-mc-int/target/tests-classes/org/jboss/test/microcontainer/beans/test/AspectSimpleJaxbAopTestCase.xml@6,125 at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:177) at org.jboss.xb.binding.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:139) at org.jboss.test.xb.builder.JBossXBTestDelegate.unmarshal(JBossXBTestDelegate.java:122) at org.jboss.aop.microcontainer.junit.JAXBDeployer.unmarshal(JAXBDeployer.java:84) at org.jboss.aop.microcontainer.junit.JAXBDeployer.deploy(JAXBDeployer.java:127) at org.jboss.test.kernel.junit.MicrocontainerTestDelegate.deploy(MicrocontainerTestDelegate.java:256) at org.jboss.test.kernel.junit.MicrocontainerTestDelegate.deploy(MicrocontainerTestDelegate.java:400) at org.jboss.aop.microcontainer.junit.AOPMicrocontainerTestDelegate.deploy(AOPMicrocontainerTestDelegate.java:76) at org.jboss.test.kernel.junit.MicrocontainerTestDelegate.setUp(MicrocontainerTestDelegate.java:83) at org.jboss.aop.microcontainer.junit.AOPMicrocontainerTestDelegate.setUp(AOPMicrocontainerTestDelegate.java:60) at org.jboss.test.AbstractTestSetup.setUp(AbstractTestSetup.java:63) at junit.extensions.TestSetup$1.protect(TestSetup.java:18) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.extensions.TestSetup.run(TestSetup.java:23) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) Caused by: org.jboss.xb.binding.JBossXBRuntimeException: {urn:jboss:bean-deployer:2.0}constructor not found as a child of {urn:jboss:bean-deployer:2.0}bean at org.jboss.xb.binding.sunday.unmarshalling.SundayContentHandler.startElement(SundayContentHandler.java:396) at org.jboss.xb.binding.parser.sax.SaxJBossXBParser$DelegatingContentHandler.startElement(SaxJBossXBParser.java:407) at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source) at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source) at org.apache.xerces.xinclude.XIncludeHandler.emptyElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.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:173) ... 19 more
I get the same error if I do<?xml version="1.0" encoding="UTF-8"?> <aop xmlns="urn:jboss:aop-beans:1.0"> <bean xmlns="urn:jboss:bean-deployer:2.0" name="AspectManager" class="org.jboss.aop.AspectManager"> <constructor factoryClass="org.jboss.aop.AspectManager" factoryMethod="instance"/> </bean> <aspect class="org.jboss.test.microcontainer.beans.TestAspect"> </aspect> ... </aop>
From my schema, the "aop" element is defined as<xsd:element name="aop" type="aopType"> <xsd:annotation> <xsd:documentation> <![CDATA[ A domain ]]> </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:complexType name="aopType"> <xsd:annotation> <xsd:documentation> <![CDATA[ aspects or interceptors ]]> </xsd:documentation> </xsd:annotation> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="domain" type="domainType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="interceptor" type="aspectOrInterceptorType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="aspect" type="aspectOrInterceptorType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="bind" type="bindType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="stack" type="stackType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="typedef" type="typedefType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="cflow-stack" type="cflowStackType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="dynamic-cflow" type="dynamicCflowStackType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="prepare" type="prepareType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="pointcut" type="pointcutType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="annotation-introduction" type="annotationIntroductionType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="annotation" type="annotationType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="precedence" type="precedenceType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="introduction" type="introductionType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="arrayreplacement" type="arrayreplacementType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="arraybind" type="arraybindType" minOccurs="0" maxOccurs="unbounded"/> <xsd:any namespace="##other" processContents="strict" minOccurs="0"> <xsd:annotation> <xsd:documentation>An extension value</xsd:documentation> </xsd:annotation> </xsd:any> </xsd:choice> </xsd:complexType>
-
14. Re: Implementing JAXB style parsing for aop-mc-int
adrian.brock Feb 25, 2008 6:29 PM (in response to kabirkhan)The builder stuff doesn't use the schema, it "generates it" from the annotations.
Turn on trace logging for org.jboss.xb. It will tell you what it is doing.
There's also a simple "SchemaPrinter" class you can use to look
at what it thinks the schema should be.
Or alternatively, commit the code and Alex or me can look at it.
I can only guess what the problem is since I can't see your code. :-)