Thnx Ove for creating the JIRA issue. We will probably not get fully rid of the problem as the Arquillian adapter probably also plays a role here, but my plan is to separate the scanning into a dedicated extension class so it can be deactivated (impacts only descriptor based JPA scenarios).
Cheers, Thomas On Sat, Oct 11, 2014 at 5:48 PM, Ove Ranheim <[email protected]> wrote: > Hi John, > > I followed your excellent rest and beyond showcase. Switched to properties > for building my EntityManagerFactory and it works. > > Still I hope DELTASPIKE-740 will be fixed. I'm studying the rest and > beyond. It's exactly what I'm after. A lightweight stack using bits of EE. > And Undertow is awesome!! > > Cheers > Ove > > On 11 Oct 2014, at 16:08, John D. Ament <[email protected]> wrote: > > > Ove, > > > > Please try the same thing I did - don't include persistence.xml in your > JAR > > file. Assuming it's in the right spot on your classpath, it should still > > get picked up when running embedded. > > > > I was planning to add a failDeploymentIfPersistenceXmlNotReadable to > > apache-deltaspike.properties to handle this case. By default you would > get > > the current behaviour, but you could turn it off if you so choose. I > > simply didn't have time before J1 to fix it. WDYT? > > > > John > > > > On Sat, Oct 11, 2014 at 5:23 AM, Ove Ranheim <[email protected]> wrote: > > > >> Hi Thomas > >> > >> I created this issue: > https://issues.apache.org/jira/browse/DELTASPIKE-740 > >> . > >> > >> Thanks for point out John's posting. > >> > >> Best regards > >> Ove > >> > >> On 10 Oct 2014, at 09:47, Thomas Hug <[email protected]> wrote: > >> > >>> 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) > >>>> > >>>> > >>>> > >>>> > >>>> > >> > >> > >
