Hi Ove AFAIR John ran into similar issues recently, see http://mail-archives.apache.org/mod_mbox/deltaspike-dev/201409.mbox/%3ccaoqetn9hat9yiorqtsafbo5ysmntngaqpet4bnxtw9-czw5...@mail.gmail.com%3E
The reason we look for persistence.xml is to extract the orm.xml files - we're mainly interested in those as they define entities, primary keys etc. which is cached for later usage. Agree that failing deployments might be too aggressive. An option would be to have a dedicated extension for scanning which can be deactivated (as most use cases will have annotation based entities anyway). On Fri, Oct 10, 2014 at 8:13 AM, Ove Ranheim <[email protected]> wrote: > 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) > > > > >
