Hi,

I have a test case that uses jpa-module and hibernate; using 
org.jboss.arquillian.container:arquillian-weld-ee-embedded-1.1:1.0.0.CR8. The 
persistence.xml and the test case works correctly.

When I add the data-module, it tries to load the persistence.xml over again and 
it fails with: URL does not exist: 
archive:test.war/WEB-INF/classes/META-INF/persistence.xml

* Is there a way to disable DescriptorReader to load persistence.xml?
* Why does data-module load the persistence.xml?
* Any other way to circumvent this problem?
* Is this a bug?

I read through Mark's blog post: 
http://struberg.wordpress.com/2012/03/27/unit-testing-strategies-for-cdi-based-projects/,
 which indicates that this may be due to a  classloading issue. The links to 
Arquillian Wiki is broken (under "Embedded style Arquillian tests"), so I'm a 
bit lost.

Regards
Ove


INFO: class: org.apache.deltaspike.data.impl.RepositoryExtension activated=true
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: -123,542.439 
sec <<< FAILURE! - in org.jboss.weld.WeldTransactionServicesTest
org.jboss.weld.WeldTransactionServicesTest  Time elapsed: -123,542.44 sec  <<< 
ERROR!
org.jboss.weld.exceptions.DefinitionException: Exception List with 1 exceptions:
Exception 0 :
java.lang.IllegalArgumentException: URL does not exist: 
archive:test.war/WEB-INF/classes/META-INF/persistence.xml
        at 
org.apache.deltaspike.data.impl.meta.unit.DescriptorReader.readFromUrl(DescriptorReader.java:64)
        at 
org.apache.deltaspike.data.impl.meta.unit.DescriptorReader.readAllFromClassPath(DescriptorReader.java:50)
        at 
org.apache.deltaspike.data.impl.meta.unit.PersistenceUnitReader.readAll(PersistenceUnitReader.java:37)
        at 
org.apache.deltaspike.data.impl.meta.unit.PersistenceUnits.readPersistenceXmls(PersistenceUnits.java:98)
        at 
org.apache.deltaspike.data.impl.meta.unit.PersistenceUnits.init(PersistenceUnits.java:45)
        at 
org.apache.deltaspike.data.impl.RepositoryExtension.beforeBeanDiscovery(RepositoryExtension.java:74)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at 
org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:90)
        at 
org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:271)
        at 
org.jboss.weld.event.ExtensionObserverMethodImpl.sendEvent(ExtensionObserverMethodImpl.java:121)
        at 
org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:258)
        at 
org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:237)
        at 
org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:174)
        at 
org.jboss.weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:133)
        at 
org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:107)
        at 
org.jboss.weld.bootstrap.events.AbstractContainerEvent.fire(AbstractContainerEvent.java:54)
        at 
org.jboss.weld.bootstrap.events.AbstractDefinitionContainerEvent.fire(AbstractDefinitionContainerEvent.java:42)
        at 
org.jboss.weld.bootstrap.events.BeforeBeanDiscoveryImpl.fire(BeforeBeanDiscoveryImpl.java:45)
        at 
org.jboss.weld.bootstrap.WeldStartup.startInitialization(WeldStartup.java:385)
        at 
org.jboss.weld.bootstrap.WeldBootstrap.startInitialization(WeldBootstrap.java:76)
        at 
org.jboss.arquillian.container.weld.ee.embedded_1_1.mock.TestContainer.startContainer(TestContainer.java:273)
        at 
org.jboss.arquillian.container.weld.ee.embedded_1_1.WeldEEMockContainer.deploy(WeldEEMockContainer.java:105)
        at 
org.jboss.arquillian.container.impl.client.container.ContainerDeployController$3.call(ContainerDeployController.java:161)
        at 
org.jboss.arquillian.container.impl.client.container.ContainerDeployController$3.call(ContainerDeployController.java:128)
        at 
org.jboss.arquillian.container.impl.client.container.ContainerDeployController.executeOperation(ContainerDeployController.java:271)
        at 
org.jboss.arquillian.container.impl.client.container.ContainerDeployController.deploy(ContainerDeployController.java:127)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)




Reply via email to