[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[eclipselink-dev] Re: Enh 266912: JPA 2.0 Metamodel API - partial implementation snapshot
|
Everyone,
The following interim snapshot of the JPA 2.0 Metamodel API
implementation has been checked in under rev# 4353, there will be
several other snapshots over the next couple weeks as stubbed parts of
the API are completed and the implementation is fine tuned.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=266912
http://fisheye2.atlassian.com/changelog/eclipselink/?cs=4353
See the following section for what this snapshot includes and what
is pending...
http://wiki.eclipse.org/EclipseLink/Development/JPA_2.0/metamodel_api#Snapshot_Checkin_for_Rev_4350
Test Model, Suite
I will be checking in this test patch tomorrow.
http://wiki.eclipse.org/EclipseLink/Development/JPA_2.0/metamodel_api#Mapped_Superclass_Test_Model
\jpa\eclipselink.jpa.test\resource\eclipselink-metamodel-model
\jpa\eclipselink.jpa.test\src\org\eclipse\persistence\testing\tests\jpa\metamodel
\jpa\eclipselink.jpa.test\src\org\eclipse\persistence\testing\models\jpa\metamodel
JPA LRG results are unchanged from a clean 4350 build except for an
intermittent failure on an existing testEMCloseAndOpen
Core LRG Tests run: 6706, Failures: 0, Errors: 14 - matches my clean
view run
Code Reviewed
Ongoing by Gordon, this transaction's review is pending.
Tested against an update on a clean view - to verify any missing commits
Documentation
http://wiki.eclipse.org/EclipseLink/Development/JPA_2.0/metamodel_api#Metamodel_and_Criteria_packages_interfaces_API_-_Specification
thank you
/michael
www.eclipselink.org
Michael O'Brien wrote:
Everyone,
For community reference, here is a partial implementation of the
new Metamodel API as part of the JPA 2.0 JSR-317 specification (Ch 5
and 6.6) - this version extends Doug's initial implementation
framework and specification checkin for bug# 272748. It follows
ongoing reviews by Gordon, Guy and Doug.
This partial version may be added to trunk with a posted SVN rev# -
however the latest partial patches are for review and code sharing so
that the separate Criteria API work can begin to sync with what is
done here so far.
The final checkin including review and outstanding work items below
should occur shortly after 25 May (I am out of the office in 2 days
for 6 days from 14-22 May).
http://bugs.eclipse.org/266912
Based on rev# 4047
Design Doc page - currently being updated today to reflect the
following patches and direction for the next review.
http://wiki.eclipse.org/EclipseLink/Development/JPA_2.0/metamodel_api
EclipseLink jpa build patch (rev 4047) (23.32 KB, patch)
https://bugs.eclipse.org/bugs/attachment.cgi?id=135222&action=diff
Eclipselink jpa test patch (off of 4047) (104.34 KB, patch)
https://bugs.eclipse.org/bugs/attachment.cgi?id=135336&action=diff
Eclipselink JPA criteria.queryBuilder stub patch (off of 4047) (21.55
KB, patch)
https://bugs.eclipse.org/bugs/attachment.cgi?id=135338&action=diff
Eclipselink JPA metamodel (partial implementation) patch (off of 4047)
(100.81 KB, patch)
https://bugs.eclipse.org/bugs/attachment.cgi?id=135339&action=diff
The implementation is semi functional with part of EntityTypeImpl
and ManagedTypeImpl functioning. I am in the middle of finishing
mappedSuperclass hierarchy work to enable ManagedTypeImpl superType
functionality that all getDeclared*() functions require. Our current
native model does not store the mappedSuperclass that defines an
inherited mapping - we can either search up the hierarchy tree on
metamodel construction and find the new mappedSuperclass
pseudo-descriptor we have created or modify the native model with a
backpointer to the owning (java) superclass - this 2nd method was
suggested by Doug in april but I only just now (2 days ago) fully
understand the use case because it is required for getDeclared*()
functionality.
I am also in the middle of switching over the internal map of
mappedSuperclass objects to a set with equals/hashCode identity
overrides.
Pending work:
-----------------
>- remove all System.out runtime printouts and breakpoints
>- finish all javadocs
>- finish all mappings support for MappedSuperclass functionality -
currently only BasicAccessor support is added
-- TODO: verify all of OneToOneAccessor, ManyToOneAccessor,
OneToManyAccessor, ManyToManyAccessor, EmbeddedAccessor
-- TODO: Optionally verify and support TransientAccessor,
EmbeddedIdAccessor
-- No changes required yet to VariableOneToOneAccessor for abstract
hierarchy support (not in spec)
>-(Part of MappedSuperclass implementation)
-- finish Set and equals()/hashCode() changes from last
MappedSuperclass code review
-- implement no-clone-copy of mapping changes in MappedSuperclass code
in BasicAccessor
-- finish ManagedType.superType assignment - keyed on mappedSuperclass
implementation
-- finish all getDeclared*() calls that require checks based on
ManagedType.superType
-- finish rest of non-type and non-declared get*() calls
-- finish all get*Id
-- finish all get*Version
-- complete CORE embeddable support
-- complete TEST embeddable support (including table generation)
-- complete CORE ManyToMany support
-- complete TEST ManyToMany support (including table generation)
>- finish and expand exception handling
-- more extensive parameterized generics testing with variable types
is required
-- All IllegalArgumentExceptions for wrong name or type
- verify all toString() code
- expand test suite to include near TCK-level function and exception
testing
thank you
/michael