[hibernate-dev] OSGI manifests for hibernate-orm

Steve Ebersole steve at hibernate.org
Wed Aug 15 20:40:09 EDT 2012


Ever hit send and immediately know you wanted to stop it/take it back ;)

https://hibernate.onjira.com/browse/HHH-7527


On Wed 15 Aug 2012 07:39:29 PM CDT, Steve Ebersole wrote:
> Martin, Brett,
>
> I went ahead and created a Jira for this.  Lets discuss there.
>
> On Wed 15 Aug 2012 07:30:51 PM CDT, Brett Meyer wrote:
>>
>> Martin makes good points. I'd highly recommend moving this into JIRA.
>> As frequently as Hibernate gets used within OSGi contexts, following
>> some basic guidelines would be incredibly helpful.
>>
>> +1 for enforcing package splits, as well as ensuring the manifests are
>> generated correctly/automatically for ALL jars. Having to rely on other
>> communities (Apache ServiceMix, etc.) to produce wrapper-bundles is
>> obnoxious and inconsistent. It'd be awesome if all Hibernate projects
>> supported it natively and tested the heck out of it. Automated tests
>> with Karaf or another OSGi runtime would be great.
>>
>> Technically, OSGi bundles can get away with exporting the same package,
>> but dependent manifests must use "require-bundle" and the symbolic name
>> (rather than "import-package"). However, it's definitely best practice
>> to avoid "require-bundle" as much as possible. "import-package" reduces
>> unforeseen symptoms in the dependency tree.
>>
>> Brett E. Meyer
>> (the new guy on Hibernate...)
>>
>>
>>
>> On 08/15/2012 06:12 PM, Steve Ebersole wrote:
>>>
>>> Brett, maybe you could help comment on this overall?
>>>
>>>
>>> -------- Original Message --------
>>> Subject: [hibernate-dev] OSGI manifests for hibernate-orm
>>> Date: Thu, 16 Aug 2012 00:08:39 +0200
>>> From: mailing at bibbernet.org <mailing at bibbernet.org>
>>> To: Hibernate hibernate-dev <hibernate-dev at lists.jboss.org>
>>>
>>>
>>>
>>> Hello,
>>>
>>> because I need clean OSGI bundles for Hibernate and especially
>>> Envers, I
>>> am working on some patches for the 4.1 branch of hibernate-orm to
>>> enable
>>> generation of OSGI compatible jar files.
>>>
>>> During the work I have found the following problems, and need some help
>>> and/or feedback. The problems are:
>>>
>>> - The package org.hibernate.engine.spi is exported by two jar files,
>>> hibernate-core and hibernate-entitymanager, which is not possible in
>>> OSGI. The Problem is the STYLES map in CascadeStyle in hibernate-core
>>> which prevent that the package in hibernate-entitymanager can be
>>> refactored from org.hibernate.engine.spi to
>>> org.hibernate.ejb.engine.spi, to solve the duplicate export.
>>> I think to fix this problem, the following steps should be done:
>>> - Add a setter method to CascadeStyle to allow subclasses to add
>>> CascadeStyles to the map STYLES
>>> - Refactor the package org.hibernate.engine.spi in hibernate-envers to
>>> org.hibernate.ejb.engine.spi
>>> - Use the setter method to add the new CascadeStyle in EJB3CascadeStyle
>>>
>>> - The package org.hibernate.tool.ant is exported by to jars,
>>> hibernate-tools (version: 3.2.0.ga) and hibernate-envers, which is also
>>> a duplicate export problem. The problem is that HibernateToolTask in
>>> hibernate-tools has no getters/setters for configurationTask and thus
>>> hibernate-envers is directly reading/modyifing the property
>>> configurationTask. I think to fix this problem, the following steps
>>> should be done:
>>> - hibernate-tools should add public getters/setters for
>>> configurationTask in class HibernateToolTask
>>> - the package org.hibernate.tool.ant in hibernate-envers should be
>>> refactored to org.hibernate.envers.tool.ant
>>> - the property configurationTask should be accessed sole thru the
>>> getters/setters .
>>>
>>> It would be nice if someone could check and comment my planned and
>>> already done changes.
>>>
>>> I have already done the CascadeStyle fix, the configurationTask fix is
>>> outstanding because I need to know against which version of
>>> hibernate-tools I should create the fix.
>>>
>>> In generally the following tasks are done until now:
>>> - added configuration to gradle scripts to generate the osgi manifests
>>> for all jar files in hibernate-orm (needs maybe some cleanup) - right
>>> now the build files for hibernate-core, hibernate-entitymanager and
>>> hibernate-envers are modified.
>>> - added blueprint.xml to hibernate-entitymanager to announce the
>>> availabillity of a javax.persistence.provider
>>>
>>> Next steps:
>>> - add osgi manifests to the other jars of hibernate-orm
>>> - write integration tests with pax exam and karaf 2.2.x
>>> - finish refactoring of hibernate-tools
>>> - add patches for other needed dependencies
>>> (hibernate-commons-annotations and more)
>>> - more testing, more integration tests
>>>
>>> Help, reviews and comments are welcome, and if someone has already done
>>> the work or parts, please drop me a note.
>>>
>>> Attached find a patch against the branch 4.1 of hibernate-orm.
>>>
>>> regards
>>> Martin Neimeier
>>>
>>>
>>>
>>>
>>>
>>>
>>
>> _______________________________________________
>> hibernate-dev mailing list
>> hibernate-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>> --
>> steve at hibernate.org
>> http://hibernate.org

--
steve at hibernate.org
http://hibernate.org


More information about the hibernate-dev mailing list