Strong,
Looks good, nice unit tests also! :)
Scott
On 08/16/2011 12:13 AM, Strong Liu wrote:
Hello guys,
I just pushed the fix of this issue to my folk, take a look
https://github.com/stliu/jboss-as/commit/4f8bce12c6cc90415d697d321442f827...
as
https://docs.jboss.org/author/display/AS7/JPA+Reference+Guide said, there are 3 ways
to use hibernate (different version) in AS7
1. the default/bundled one, hibernate core 4, in as7
2. bundle hibernate jars in app (hibernate-bundled property)
3. create a shared hibernate 3 module (with slot 3)
so, here are how to use envers within these 3 cases:
1. use bundled envers module, nothing specical needed, just annotate envers annotations
to your entity
2. bundle envers along with hibernate 3 jars in your app, and set envers listeners (check
envers doc)
3. create a org.hibernate.envers:main:3 module (not tested yet)
note: you need to use hibernate-core build from source (HHH-6573)
-----------
Strong Liu<stliu(a)hibernate.org>
http://hibernate.org
http://github.com/stliu
On Aug 4, 2011, at 8:35 PM, Scott Marlow wrote:
> On 08/04/2011 04:05 AM, Strong Liu wrote:
>>
>> -----------
>> Strong Liu<stliu(a)hibernate.org>
>>
http://hibernate.org
>>
http://github.com/stliu
>>
>> On Aug 4, 2011, at 2:48 AM, Adam Warski wrote:
>>
>>>
>>> On Aug 3, 2011, at 5:44 PM, Strong Liu wrote:
>>>
>>>> Hi there,
>>>>
>>>> I get envers embedded into as7 :D
>>>>
>>>> see below:
>>>>
>>>>
https://github.com/stliu/hibernate-core/tree/classloading
>>>>
https://github.com/stliu/jboss-as/tree/as7-928-2
>>>>
>>>> 1. org.hibernate module and org.hibernate.envers module depends on each
other.
>>>> 2. org.hibernte.envers module automaticly injected into app when it is a
jpa project.
>>>> 3.
org.jboss.as.testsuite.integration.jpa.hibernate.envers.BasicEnversTestCase in
as7/testsuite/integration passes
>>>> 4. use org.hibernate.integrator.internal.ServiceLoader instead
java.util.ServiceLoader to load META-INF/services file
>>>> this custom ServiceLoader uses ClassLoaderService.
>>>>
>>>> sounds okay?
>>>
>>>
>>> Great! :) Can't wait to see it in the main repo ;)
>>>
>>> I also managed to make an envers module for AS7, as I already described on
the forum. What you need is a:
>>> * new module with the envers jar and following deps:
>>> <module name="org.hibernate"/>
>>> <module name="org.jboss.logging"/>
>>> <module name="org.dom4j"/>
>>> <module name="javax.api"/>
>>> <module name="javax.persistence.api"/>
>>> <module name="javax.transaction.api"/>
>>> <module name="org.javassist"/>
>>> * Dependencies: org.hibernate.envers services in your META-INF
>>>
>>> What I didn't realize before (and that's why I couldn't make it
working) is that the dependencies declaration in the app's meta-inf affects the
interaction between modules.
>>>
>>> Still the bundled-envers-only-inside-app scenario doesn't work. But
I'm not sure it's valid any more, as I've got it working in AS7 and you've
done the integration for AS7.1. So do you still need the demo app?
>>
>> yeah, that's may not valid anymore, if users want to use hibernate envers 3,
it should bundle both hibernate core and envers 3 into app, right, Scott?
>
> Some doc on bundling hibernate 3 is included here
https://docs.jboss.org/author/display/AS7/JPA+Reference+Guide (contributions to the
Confluence doc are easy to make and welcome ;)
>
> Some users are starting to experiment with the AS 7.0.1 support for bundling
Hibernate 3 for JPA usage. Some are also using the ability to manually create a shared
Hibernate 3 module. As of yesterday, I made a slight change to the organization of the
Hibernate modules on AS 7.0.1. Rather than including version numbers in the module name,
I'm using the AS7 module "slot" mechanism to version the module contents.
So, module "org.hibernate" contains a slot (really a sub-folder) named
"main" for Hibernate 4 and can contain a slot named "3" for Hibernate
3.
>
> In theory, someone could try bundling envers 3 if they are bundling Hibernate 3 with
their app. If they are creating their own "as7/modules/org/hibernate/3"
sub-folder to hold the Hibernate 3 jars, they could put the jar in there or create a new
"3" slot in the envers module folder (would have envers/main for Hibernate4 and
envers/3 for Hibernate3). Creating the "3" slot (with contents) is left as an
exercise for the user.
>
> Strong, have you synced your patch with the AS7 master yet? I restructured things a
bit in the last few weeks, to better support multiple persistence providers. A few more
changes are needed but the major rework is done. The AS7 jpa source tree, is now broken
into core, spi, hibernate3, hibernate4. The Hibernate folders contain integration classes
for their respective Hibernate versions. On a private branch, I started creating a
generic integration adapter that might be used for other providers (not sure if that will
work yet, might need to have provider specific integration classes external to AS7).
>
> I probably gave more information than you wanted for the question. :)
>
> Scott
>>>
>>> Adam
>>>
>>> --
>>> Adam Warski
>>>
>>>
http://twitter.com/#!/adamwarski
>>>
http://www.softwaremill.com
>>>
http://www.warski.org
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>