[hibernate-dev] Documentation on OGM + JBoss AS

Sanne Grinovero sanne at hibernate.org
Fri Oct 5 06:16:54 EDT 2012


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?

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)

Sanne


On 1 October 2012 23:21, Sanne Grinovero <sanne at 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 at redhat.com> wrote:
>> On 10/01/2012 12:23 PM, Sanne Grinovero wrote:
>>>
>>> On 1 October 2012 17:08, Scott Marlow <smarlow at redhat.com> wrote:
>>>>
>>>> On 10/01/2012 11:05 AM, Sanne Grinovero wrote:
>>>>>
>>>>>
>>>>> On 1 October 2012 15:51, Scott Marlow <smarlow at 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-INF/jboss-deployment-structure.xml
>>>
>>> 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/modules/org/hibernate/ogm/module.xml
>>>
>>> I didn't need any datasource, this worked fine:
>>>
>>> https://github.com/Sanne/ogm-kitchensink/blob/as711/src/main/resources/META-INF/persistence.xml
>>
>>
>> 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/UsingADifferentPersistenceProviderWithAS701#H-ExperimentalUseOfOGMOnAS701.
>>>>>>
>>>>>> - 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 at lists.jboss.org
>>>>>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>>>
>>>>
>>>>
>>


More information about the hibernate-dev mailing list