You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltaspike.apache.org by Ove Ranheim <or...@gmail.com> on 2014/10/10 11:16:59 UTC

Re: Data Module - some issues in SE/Maven Tests

Which class should be excluded in beans.xml to omit the
"archive:.../persistence.xml" exception?

2014-09-02 11:29 GMT+02:00 John D. Ament <jo...@gmail.com>:

> For the first issue, looks like if I just exclude the file from the archive
> my problems are resolved.  I'll go with that for now.  For some reason,
> this issue doesn't pop up using META-INF/apache-deltaspike.properties but
> using the same approach doesn't fix it.
>
> For the second, the easiest fix I have (that's also a bit clean) is to
> simply veto the class within the repository extension.  If there are no
> objections, I'll commit that change this morning.  Right now I cannot
> exclude the API from the uber jar.
>
> John
>
>
> On Tue, Sep 2, 2014 at 3:17 AM, Thomas Hug <th...@gmail.com> wrote:
>
> > Instead of patching the second one, for an uber-jar it might also be a
> > valid recommendation to exclude the class over the beans.xml.
> >
> >
> > On Tue, Sep 2, 2014 at 8:12 AM, Thomas Hug <th...@gmail.com> wrote:
> >
> > > Hi John
> > >
> > > First one should - as Romain mentioned - usually not be a problem.
> Might
> > > still be worth adding the exception check as I've run into problems on
> > WLS
> > > with this particular approach. We lose the ability to deal with
> entities
> > > defined in orm.xml's but that's probably still better than crashing :-)
> > >
> > > The second one comes from creating an uber-jar - the api module doesn't
> > > have a beans.xml. Can't think of a different approach to get rid of
> this
> > > one...
> > >
> > >
> > > On Tue, Sep 2, 2014 at 6:54 AM, Romain Manni-Bucau <
> > rmannibucau@gmail.com>
> > > wrote:
> > >
> > >> Hi
> > >>
> > >> Archive url issue is due to the arquillian adapter (so no problem for
> > data
> > >> module)
> > >>
> > >> Can't the other one be fixed using @Typed?
> > >> Le 1 sept. 2014 21:41, "John D. Ament" <jo...@gmail.com> a
> > écrit :
> > >>
> > >> > Hi All!
> > >> >
> > >> > I've hit a couple of issues with the Data Module and wanted to know
> if
> > >> it
> > >> > was worth fixing.
> > >> >
> > >> > First, my sample app can be found at [1] (note you'll need JDK8 to
> > run)
> > >> and
> > >> > you can run the test JPATest to see the results, using
> > >> >
> > >> > mvn -Dtest=JPATest -Ddeltaspike.version=1.0.2
> > >> >
> > >> > First issue you'll note is that the following output (or something
> > >> similar
> > >> > to it will be given):
> > >> >
> > >> > java.lang.IllegalArgumentException: URL does not exist:
> > >> > archive:se-examples.jar/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:73)
> > >> >
> > >> > (full stack available at [2], test.log).  It seems like the
> > >> > RepositoryExtension is picking up on my persistence.xml and
> > aggressively
> > >> > trying to parse them (at this point, I don't have any @Repository's
> > >> defined
> > >> > in my app).  For some reason it cannot parse this URL but it does
> seem
> > >> to
> > >> > pick up the persistence.xml from target/classes/META-INF so it does
> > >> > eventually parse it.  To work around this, I wrapped
> > >> > DescriptorReader.readAllFromClassPath's result.add with an exception
> > >> check.
> > >> >  I figure if it can't read the descriptor, no reason to make the
> whole
> > >> app
> > >> > die.  What do you think?
> > >> >
> > >> > Second issue, after fixing this one, was that
> AbstractEntityRepository
> > >> was
> > >> > being picked up as a @Repository and erroring out saying that
> there's
> > no
> > >> > entity for it. This one I wasn't expecting.  To fix it, in
> > >> > RepsitoryComponents, I added an explicit check if it was the base
> > >> class, if
> > >> > it was return null rather than exception and check for null in the
> add
> > >> > method.  This also fixed things and the tests started running fine.
> > >> This
> > >> > fix seems more hacky, and I'm wondering if I'm just doing something
> > >> wrong
> > >> > to make this class be picked up.
> > >> >
> > >> > You can see the summary of changes in the gist's patch.txt.
> > >> >
> > >> > John
> > >> >
> > >> >
> > >> > [1]: https://github.com/johnament/restful-and-beyond-tut2184
> > >> > [2]: https://gist.github.com/johnament/d4a55ce7251062ee0b85
> > >> >
> > >>
> > >
> > >
> >
>

Re: Data Module - some issues in SE/Maven Tests

Posted by "John D. Ament" <jo...@gmail.com>.
That I never got a good resolution for.  In my case, I was able to work
around by not including the persistence.xml in my archive.

On Fri, Oct 10, 2014 at 5:16 AM, Ove Ranheim <or...@gmail.com> wrote:

> Which class should be excluded in beans.xml to omit the
> "archive:.../persistence.xml" exception?
>
> 2014-09-02 11:29 GMT+02:00 John D. Ament <jo...@gmail.com>:
>
> > For the first issue, looks like if I just exclude the file from the
> archive
> > my problems are resolved.  I'll go with that for now.  For some reason,
> > this issue doesn't pop up using META-INF/apache-deltaspike.properties but
> > using the same approach doesn't fix it.
> >
> > For the second, the easiest fix I have (that's also a bit clean) is to
> > simply veto the class within the repository extension.  If there are no
> > objections, I'll commit that change this morning.  Right now I cannot
> > exclude the API from the uber jar.
> >
> > John
> >
> >
> > On Tue, Sep 2, 2014 at 3:17 AM, Thomas Hug <th...@gmail.com> wrote:
> >
> > > Instead of patching the second one, for an uber-jar it might also be a
> > > valid recommendation to exclude the class over the beans.xml.
> > >
> > >
> > > On Tue, Sep 2, 2014 at 8:12 AM, Thomas Hug <th...@gmail.com>
> wrote:
> > >
> > > > Hi John
> > > >
> > > > First one should - as Romain mentioned - usually not be a problem.
> > Might
> > > > still be worth adding the exception check as I've run into problems
> on
> > > WLS
> > > > with this particular approach. We lose the ability to deal with
> > entities
> > > > defined in orm.xml's but that's probably still better than crashing
> :-)
> > > >
> > > > The second one comes from creating an uber-jar - the api module
> doesn't
> > > > have a beans.xml. Can't think of a different approach to get rid of
> > this
> > > > one...
> > > >
> > > >
> > > > On Tue, Sep 2, 2014 at 6:54 AM, Romain Manni-Bucau <
> > > rmannibucau@gmail.com>
> > > > wrote:
> > > >
> > > >> Hi
> > > >>
> > > >> Archive url issue is due to the arquillian adapter (so no problem
> for
> > > data
> > > >> module)
> > > >>
> > > >> Can't the other one be fixed using @Typed?
> > > >> Le 1 sept. 2014 21:41, "John D. Ament" <jo...@gmail.com> a
> > > écrit :
> > > >>
> > > >> > Hi All!
> > > >> >
> > > >> > I've hit a couple of issues with the Data Module and wanted to
> know
> > if
> > > >> it
> > > >> > was worth fixing.
> > > >> >
> > > >> > First, my sample app can be found at [1] (note you'll need JDK8 to
> > > run)
> > > >> and
> > > >> > you can run the test JPATest to see the results, using
> > > >> >
> > > >> > mvn -Dtest=JPATest -Ddeltaspike.version=1.0.2
> > > >> >
> > > >> > First issue you'll note is that the following output (or something
> > > >> similar
> > > >> > to it will be given):
> > > >> >
> > > >> > java.lang.IllegalArgumentException: URL does not exist:
> > > >> > archive:se-examples.jar/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:73)
> > > >> >
> > > >> > (full stack available at [2], test.log).  It seems like the
> > > >> > RepositoryExtension is picking up on my persistence.xml and
> > > aggressively
> > > >> > trying to parse them (at this point, I don't have any
> @Repository's
> > > >> defined
> > > >> > in my app).  For some reason it cannot parse this URL but it does
> > seem
> > > >> to
> > > >> > pick up the persistence.xml from target/classes/META-INF so it
> does
> > > >> > eventually parse it.  To work around this, I wrapped
> > > >> > DescriptorReader.readAllFromClassPath's result.add with an
> exception
> > > >> check.
> > > >> >  I figure if it can't read the descriptor, no reason to make the
> > whole
> > > >> app
> > > >> > die.  What do you think?
> > > >> >
> > > >> > Second issue, after fixing this one, was that
> > AbstractEntityRepository
> > > >> was
> > > >> > being picked up as a @Repository and erroring out saying that
> > there's
> > > no
> > > >> > entity for it. This one I wasn't expecting.  To fix it, in
> > > >> > RepsitoryComponents, I added an explicit check if it was the base
> > > >> class, if
> > > >> > it was return null rather than exception and check for null in the
> > add
> > > >> > method.  This also fixed things and the tests started running
> fine.
> > > >> This
> > > >> > fix seems more hacky, and I'm wondering if I'm just doing
> something
> > > >> wrong
> > > >> > to make this class be picked up.
> > > >> >
> > > >> > You can see the summary of changes in the gist's patch.txt.
> > > >> >
> > > >> > John
> > > >> >
> > > >> >
> > > >> > [1]: https://github.com/johnament/restful-and-beyond-tut2184
> > > >> > [2]: https://gist.github.com/johnament/d4a55ce7251062ee0b85
> > > >> >
> > > >>
> > > >
> > > >
> > >
> >
>