Regarding the project explosion part, we don't have a strong need to have a separate
"module packaging" solution. Creating module packages in the OGM project sounds
like a good way.
Having said that, I still want to continue adding persistence provider specific
integration code to the AS project and find a good home for that code.
Sent from my tardis
-----Original Message-----
From: Emmanuel Bernard [emmanuel(a)hibernate.org]
Received: Friday, 05 Oct 2012, 6:38pm
To: Scott Marlow [smarlow(a)redhat.com]
CC: Sanne Grinovero [sanne(a)hibernate.org]; Hibernate Dev [hibernate-dev(a)lists.jboss.org]
Subject: Re: [hibernate-dev] Documentation on OGM + JBoss AS
If that does not slow down the test suite significantly, I'd favor a module to limit
project explosion.
On 5 oct. 2012, at 06:56, Scott Marlow <smarlow(a)redhat.com> wrote:
On 10/05/2012 06:16 AM, Sanne Grinovero wrote:
> Thanks Scott, that documentation arrived just in time:
>
https://forum.hibernate.org/viewtopic.php?f=31&t=1024476
>
> It looks like we could simplify things by creating an AS7 module, and
> release it in tandem with an OGM release.
>
> What could be the best way to distribute this module?
A few different ways that we could proceed. In the OGM project, we could assemble an AS7
module that is ready to drop into the AS7 root folder. This wouldn't include the OGM
integration code module (which we haven't needed to write but could to make it easier
to use OGM with AS7).
Another way, would be to start a new project that packages the OGM provider into a ready
to use AS7 module. We could also package the OGM integration code (persistence provider
adapter) in this new project.
>
> Is there a "clean" way to create one? (by "clean" I mean possibly
not
> relying on the Maven assembly plugin, and more importantly making
> something which can be tested in automation)
If we create a new project for this, I'm open to suggestions for how to create the
module from within the project (whether its with Maven, Ant, Ivy or something else).
>
> Sanne
>
>
> On 1 October 2012 23:21, Sanne Grinovero <sanne(a)hibernate.org> wrote:
>> You don't have to build it but having it in the cache woud help :)
>>
>> The test is building and materializing an AS7 module on the filesystem
>> containing all dependencies, including Hibernate Search (among others)
>> and uses ShrinkWrap to do that; if you look in the test you should
>> find a line which forces it to stay offline (as it was massively slow
>> otherwise), you should comment that line at least once so that it
>> downloads all what it needs.
>>
>> On 1 October 2012 19:39, Scott Marlow <smarlow(a)redhat.com> wrote:
>>> On 10/01/2012 12:23 PM, Sanne Grinovero wrote:
>>>>
>>>> On 1 October 2012 17:08, Scott Marlow <smarlow(a)redhat.com> wrote:
>>>>>
>>>>> On 10/01/2012 11:05 AM, Sanne Grinovero wrote:
>>>>>>
>>>>>>
>>>>>> On 1 October 2012 15:51, Scott Marlow <smarlow(a)redhat.com>
wrote:
>>>>>>>
>>>>>>>
>>>>>>> I got further yesterday (after removing the
---PlaceHolderDSForOGM---
>>>>>>> property from HibernateOgmPersistence). Not sure what the
long term
>>>>>>> change is (perhaps we should only add the
---PlaceHolderDSForOGM--- for
>>>>>>> the non-container case).
>>>>>>
>>>>>>
>>>>>>
>>>>>> Nice. Is the AS still "mandating" a specific module
name and injecting
>>>>>> Hibernate 3?
>>>>>
>>>>>
>>>>>
>>>>> The OGM module name should be org.hibernate:ogm. The
org.hibernate:ogm
>>>>> module should depend on Hibernate 4 (org.hibernate:main) and
Hibernate 4
>>>>> should depend on OGM.
>>>>
>>>>
>>>> I'm still not understanding why we need to hardcode a constant
module
>>>> name for the OGM provider, that's unintuitive and brought me a lot
of
>>>> pain when trying to use a *different* version, when recently trying
>>>> out your instructions.
>>>>
>>>> I might want to deploy OGM using a different version of Hibernate ORM
>>>> than what I have in another OGM-using application; also it is very
>>>> likely that soon OGM will require a version which is not the one
>>>> bundled in the AS.
>>>>
>>>> I would expect the module to be something I can configure in my own
>>>> application:
>>>>
>>>>
>>>>
https://github.com/Sanne/ogm-kitchensink/blob/as711/src/main/webapp/WEB-I...
>>>>
>>>> it should be possible to use a different module name, how could I deal
>>>> with multiple deployments otherwise? The AS should not mandate the
>>>> module dependency, at best it could take some hint like you do with
>>>> the _jboss.as.jpa.adapterModule_ property
>>>>
>>>>
>>>>
https://github.com/Sanne/ogm-kitchensink/blob/as711/.openshift/config/mod...
>>>>
>>>> I didn't need any datasource, this worked fine:
>>>>
>>>>
https://github.com/Sanne/ogm-kitchensink/blob/as711/src/main/resources/ME...
>>>
>>>
>>> I tried building
https://github.com/Sanne/ogm-kitchensink (as711 branch)
>>> locally but got an error:
>>>
>>> Caused by: org.sonatype.aether.resolution.ArtifactResolutionException: The
>>> repository system is offline but the artifact
>>> org.hibernate:hibernate-search-orm:jar:4.1.1.Final is not available in the
>>> local repository.
>>>
>>> Do I need to build search locally to use this example?
>>>
>>>
>>>>
>>>> Sanne
>>>>
>>>>>> Last time I was trying that was driving me nuts, as to workaround
it I
>>>>>> needed lots of changes in AS.
>>>>>
>>>>>
>>>>>
>>>>> We should either create a blog update to explain this or as
previously
>>>>> discussed on this thread, document the changes needed.
>>>>>
>>>>>
http://pastie.org/4891854 is my current persistence.xml that I'm
testing
>>>>> with.
>>>>>
>>>>> I had to set jboss.as.jpa.adapterModule to
org.jboss.as.jpa.hibernate:4,
>>>>> so
>>>>> that we would use the Hibernate 4 integration code with OGM.
>>>>>
>>>>> I also had to set jboss.as.jpa.classtransformer to false so that we
>>>>> wouldn't
>>>>> try to create the EntityManagerFactory too soon (should probably
verify
>>>>> if
>>>>> that is still needed).
>>>>>
>>>>>
>>>>>>
>>>>>> I would expect to not have any OGM-specific code in the AS, but
that
>>>>>> it should be good enough to implement the JPA spec correctly
regarding
>>>>>> the provider implementation?
>>>>>
>>>>>
>>>>>
>>>>> I sometimes hear that question (why don't you just use the JPA
spec
>>>>> bootstrapping). However, we are allowed by the JPA specification,
to
>>>>> pass a
>>>>> map of integration properties when calling the
>>>>>
>>>>>
PersistenceProvider.createContainerEntityManagerFactory(PersistenceUnitInfo,
>>>>> Map integrationProperties) call. Sometimes, the persistence
providers
>>>>> include enough version specific application server integration code,
so
>>>>> that
>>>>> app servers find that its good enough to just call the JPA spec
>>>>> invocation
>>>>> but in practice this breaks when the app servers change too much.
>>>>>
>>>>> For AS7, I created persistence provider adapters that (optionally)
>>>>> contain
>>>>> the extra integration code that is not handled by the JPA
specification.
>>>>> For AS 8.0, I want to change the relationship between the
persistence
>>>>> provider adapters and providers to be less tightly coupled (its
currently
>>>>> a
>>>>> 1-1) but they make developing JPA applications for AS7 easier for
the
>>>>> developer (fewer properties have to be passed in).
>>>>>
>>>>>
>>>>>>
>>>>>>>
>>>>>>>
http://pastie.org/4891549 is the out from running one of the
example
>>>>>>> applications (jboss-javaee6-webapp). Obviously, I need to
try a
>>>>>>> different test. ;)
>>>>>>
>>>>>>
>>>>>>
>>>>>> Right, you might need to simplify an existing test, or take the
>>>>>> ogm-kitchensink as a starting point:
>>>>>> take branch as711 from:
>>>>>>
git://github.com/Sanne/ogm-kitchensink.git
>>>>>>
>>>>>> Hardy originally wrote that demo, but I don't remember if we
ever
>>>>>> integrated my changes from that branch to have it run on AS
7.1.1.
>>>>>>
>>>>>>> For AS documentation, I'm not sure if we are ready to add
that yet (it
>>>>>>> would be experimental with the goal of helping someone get
started).
>>>>>>> I'm open to suggestions but I think we could build on
what I blogged
>>>>>>> about last year here
>>>>>>>
>>>>>>>
>>>>>>>
http://in.relation.to/Bloggers/UsingADifferentPersistenceProviderWithAS70....
>>>>>>>
>>>>>>> - How to add the OGM module to AS
>>>>>>> - Changing existing AS module dependencies for OGM
>>>>>>> - Infinispan Configuration changes for OGM
>>>>>>> - Example
>>>>>>
>>>>>>
>>>>>>
>>>>>> That would be great, are you creating a patch for the docbook in
OGM?
>>>>>
>>>>>
>>>>>
>>>>> I created a git branch locally but haven't started the actual doc
changes
>>>>> yet.
>>>>>
>>>>> Scott
>>>>>
>>>>>>
>>>>>> Sanne
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 09/27/2012 11:13 AM, Emmanuel Bernard wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>> I'd still prefer a small section in our reference
documentation.
>>>>>>>> Stuff in the wiki is as useful as peeing in a violin as
we say in
>>>>>>>> France ;)
>>>>>>>>
>>>>>>>> Emmanuel
>>>>>>>>
>>>>>>>> On Thu 2012-09-27 9:52, Scott Marlow wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 09/27/2012 09:02 AM, Emmanuel Bernard wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Hey Scott,
>>>>>>>>>>
>>>>>>>>>> I stumbled upon
https://hibernate.onjira.com/browse/OGM-117 and
>>>>>>>>>> wondered
>>>>>>>>>> if you could contribute a paragraph or two on how
to use Hibernate
>>>>>>>>>> OGM
>>>>>>>>>> in JBoss AS latest.
>>>>>>>>>> The documentation is hosted in
>>>>>>>>>>
http://github.com/hibernate/hibernate-ogm, there
>>>>>>>>>> is a documentation module.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I could do that or
>>>>>>>>>
https://docs.jboss.org/author/display/AS72/JPA+Reference+Guide might
>>>>>>>>> be another place for the "how to use Hibernate
OGM with AS"
>>>>>>>>> documentation. This link is likely to change like
the wind but the
>>>>>>>>> content will be available.
>>>>>>>>>
>>>>>>>>> I'm not sure that either location is better, but
I do like using
>>>>>>>>> confluence as users can more easily fix the mistakes.
;)
>>>>>>>>>
>>>>>>>>> Do you have a preference?
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> If you can make it by end of week or Monday, you
gain extra karma
>>>>>>>>>> points.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Extra karma points are always good to have! :)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> hibernate-dev mailing list
>>>>>>> hibernate-dev(a)lists.jboss.org
>>>>>>>
https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>>>>
>>>>>
>>>>>
>>>