After tweaking this, here is what I have...
Manifest-Version: 1.0
Created-By: 1.8.0_121 (Oracle Corporation)
Main-Class: org.hibernate.Version
Specification-Title: hibernate-core
Specification-Version: 5.3
Specification-Vendor:
Implementation-Title: hibernate-core
Implementation-Version: 5.3.0.SNAPSHOT
Implementation-Vendor-Id: org.hibernate
Implementation-Vendor:
Automatic-Module-Name: org.hibernate.orm.core
Bundle-ManifestVersion: 2
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
Tool: Bnd-3.4.0.201707252008
Bundle-SymbolicName: org.hibernate.orm.core
Bundle-Version: 5.3.0.SNAPSHOT
Bundle-Name: hibernate-core
Bundle-Description: A module of the Hibernate O/RM project
Bundle-Vendor:
Bnd-LastModified: 1513615321000
Import-Package: ...
Export-Package: ...
Which looks great to me...
On Wed, Dec 27, 2017 at 3:39 PM Steve Ebersole <steve(a)hibernate.org> wrote:
I had intended this for 5.3 which hasn't even gone Beta yet (we
wont have
an Alpha).
On Wed, Dec 27, 2017 at 3:38 PM Brett Meyer <brett(a)hibernate.org> wrote:
> +1 from me on making them consistent. In practice, Bundle-SymbolicName
> isn't used for much, other than a guaranteed unique identifier. One of
> the Karaf guys pointed out that Bundle-SymbolicName is used to link a
> fragment bundle to its host bundle, but we've been able to avoid
> fragments like the plague on purpose.
>
> In practice, most users should be pulling in and interacting with our
> bundles purely through Maven artifacts or our features.xml, so a change
> would largely be unnoticed.
>
> We still might consider holding off doing that until at least a minor
> version change, since there is a potential issue for any tooling that
> might be relying on that (logging/auditing, etc.)...
>
>
> On 12/23/17 11:38 PM, Steve Ebersole wrote:
> > Another thing I was noticing was an annoying minor difference between
> the
> > OSGi bundle name and the Java 9 module name:
> >
> > Automatic-Module-Name: org.hibernate.orm.core
> > Bundle-SymbolicName: org.hibernate.core
> >
> > Does it make sense to adjust the OSGi bundle name to follow the module
> > naming?
> >
> > On Sat, Dec 23, 2017 at 8:47 AM Steve Ebersole <steve(a)hibernate.org>
> wrote:
> >
> >> I already did a PR for the `Automatic-Module-Name` yesterday and added
> you
> >> as a reviewer. when you get a chance...
> >>
> >>
> >>
> >> On Sat, Dec 23, 2017 at 8:36 AM Gunnar Morling <gunnar(a)hibernate.org>
> >> wrote:
> >>
> >>> 2017-12-22 23:07 GMT+01:00 Steve Ebersole <steve(a)hibernate.org>:
> >>>
> >>>> I created a Jira to track this:
> >>>>
https://hibernate.atlassian.net/browse/HHH-12188
> >>>>
> >>>> On Fri, Dec 22, 2017 at 5:33 AM Steve Ebersole
<steve(a)hibernate.org>
> >>>> wrote:
> >>>>
> >>>>> Thanks for investigating this Gunnar.
> >>>>>
> >>>>> Some thoughts inline...
> >>>>>
> >>>>> On Wed, Dec 20, 2017 at 3:54 PM Gunnar Morling <
> gunnar(a)hibernate.org>
> >>>>> wrote:
> >>>>>
> >>>>>
> >>>>>> * JDK 9 comes with an incomplete JTA module
(java.transaction), so
> a
> >>>>>> complete one must be provided via --upgrade-module-path
(I'm using
> the
> >>>>>> 2.0.0.Alpha1 version Tomaz Cerar has created for that
purpose)
> >>>>>>
> >>>>> Do you know if there is a plan to fix this in Java 9? Seems
bizarre
> >>>>> that Java 9 expects all kinds of strict modularity from
libraries
> and
> >>>>> applications when the JDK itself can't follow that..
> >>>>>
> >>> The "java.transaction" module of the JDK is marked with
> >>> @Deprecated(forRemoval=true) as of Java 9, but I don't know when
the
> >>> removal will happen. There's JEP 320 for this (
> >>>
http://openjdk.java.net/jeps/320), which also describes why the
> module
> >>> exists in its current form. It's not scheduled for Java 10
currently,
> and
> >>> given the latter is in rampdown already, I wouldn't expect this
> removal to
> >>> happen before Java 11.
> >>>
> >>>
> >>>>>> * hibernate-jpa-2.1-api-1.0.0.Final.jar can't be used as
an
> automatic
> >>>>>> module, as the automatic naming algorithm stumples upon the
numbers
> >>>>>> (2.1)
> >>>>>> within the module name it derives; I'm therefore using
my ModiTect
> >>>>>> tooling (
> >>>>>>
https://github.com/moditect/moditect/) to convert the JPA
API JAR
> >>>>>> into an
> >>>>>> explicit module on the fly
> >>>>>>
> >>>>> We actually no longer use that artifact as a dependency. Since
JPA
> >>>>> 2.2, the EG publishes a "blessed" API jar which is
what we use as a
> >>>>> dependency.
> >>>>>
> >>> Ah, yes, very nice. That one already defines an explicit module name
> >>> ("java.persistence") via the Automatic-Module-Name manifest
entry.
> >>>
> >>>>>> * When using ByteBuddy as the byte code provider, a reads
> relationship
> >>>>>> must
> >>>>>> be added from the user's module towards hibernate.core
("requires
> >>>>>> hibernate.core"). This is due to the usage of
> >>>>>> org.hibernate.proxy.ProxyConfiguration within the generated
proxy
> >>>>>> classes.
> >>>>>> Ideally no dependence to the JPA provider should be needed
when
> solely
> >>>>>> working with the JPA API (as this demo does), but I'm
not sure
> whether
> >>>>>> this
> >>>>>> can be avoided when using proxies (or could we construct
proxies
> in a
> >>>>>> way
> >>>>>> not requiring this dependence?).
> >>>>>>
> >>>>> I'm not sure what a decent solution would be here.
Ultimately the
> >>>>> runtime needs to be able to communicate with the generated
proxies
> - how
> >>>>> else would you suggest this happen?
> >>>>>
> >>> Not sure either. Maybe we could generate a dedicated interface into
> the
> >>> user's module and then inject a generated implementation -- living
> within
> >>> the ORM module -- of that interface into the entities. Worth some
> tinkering
> >>> I reckon.
> >>>
> >>>>> * When using ByteBuddy as the byte code provider, I still needed
to
> have
> >>>>>> Javassist around, as it's used in
ClassFileArchiveEntryHandler. I
> >>>>>> understand that eventually this should be using Jandex, but
I'm
> >>>>>> wondering
> >>>>>> whether we could (temporarily) change it to use ASM instead
of
> >>>>>> Javassist
> >>>>>> (at least when using ByteBuddy as byte code provider, which
is
> based on
> >>>>>> ASM), so people don't need to have Javassist *and*
ByteBuddy when
> >>>>>> using the
> >>>>>> latter as byte code provider? This seems desirable esp. once
we
> move to
> >>>>>> ByteBuddy by default.
> >>>>>>
> >>>>> Yes, Sanne brought this up in Paris and it is something I will
look
> at
> >>>>> prior to a 5.3.0.Final
> >>>>>
> >>> Excellent.
> >>>
> >>>>> * Multiple methods in ReflectHelper call setAccessible()
without
> >>>>>> checking
> >>>>>> whether the method/field/constructor already is accessible.
If we
> >>>>>> changed
> >>>>>> that to only call setAccessible() if actually needed, people
would
> >>>>>> have to
> >>>>>> be a little bit less permissive in their module descriptor.
It'd
> >>>>>> suffice
> >>>>>> for them to declare "exports com.example.entities to
> hibernate.core"
> >>>>>> instead of "opens com.example.entities to
hibernate.core", unless
> they
> >>>>>> mandate (private) field access for their entities.
> >>>>>>
> >>>>> Can you open a Jira for that?
> >>>>>
> >>> Done:
https://hibernate.atlassian.net/browse/HHH-12189.
> >>>
> >>>
> >>>>>> The demo is very simple (insert and load of an entity with a
lazy
> >>>>>> association). If there's anything else you'd like to
try out when
> >>>>>> using ORM
> >>>>>> as JPMS modules, let me know or just fork the demo and try
it out
> >>>>>> yourself
> >>>>>>
> >>>>> IIUC for jars targeting both Java 8 and Java 9 we cannot include
a
> >>>>> module-info file. But we need to set the module names - you
> mentioned
> >>>>> there was a "hinting" process. From what I could
glean from
> searching
> >>>>> (which was oddly not many hits), this is achieved by adding a
> >>>>> `Automatic-Module-Name` entry in the JAR's MANIFEST.MF.
Correct?
> >>>>>
> >>> Yes, exactly that's the mechanism. Jason Greene is working on a
> document
> >>> with recommendations around naming patterns, I hope it'll be
> published soon.
> >>>
> >>>
> >>>>> Also, IIRC we agreed with `org.hibernate.orm` as the base for
all
> ORM
> >>>>> module names, so we'd have:
> >>>>>
> >>>>> - org.hibernate.orm.c3p0
> >>>>> - org.hibernate.orm.core
> >>>>> - ...
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> > _______________________________________________
> > hibernate-dev mailing list
> > hibernate-dev(a)lists.jboss.org
> >
https://lists.jboss.org/mailman/listinfo/hibernate-dev
>
>
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/hibernate-dev