« Return to Thread: Some continuum-jpa branch updates

Re: Some continuum-jpa branch updates

by Erik Bengtson-2 :: Rate this Message:

Reply to Author | View in Thread

FYI, jdo 2.1 supports JPA 1.0 annotations. That would be helpful to interchange jdo and jpa apis. However when that comes to non RDBMS datastores, such as db4o jpa annotations would not be a good match. Another advantage of JPA annotations is tooling, eg eclipse dali or NetBeans. My selection criteria would start with asking if remaining datastore agnostic is mandatory, then operational speaking which implementation provide the best tools to troubleshoot, diagnostic and manage the runtime app, finally dev tools.

Cheers
--   BlackBerry® from Mobistar    ---

-----Original Message-----
From: "Rahul Thakur" <rahul.thakur.xdev@...>

Date: Mon, 10 Dec 2007 12:04:51
To:continuum-dev@...
Cc:Rinku <rahul.thakur.xdev@...>
Subject: Some continuum-jpa branch updates


Hi All,

Scribbling some quick notes on some of the toying around I have been
doing with OpenJPA, Generics etc on the continuum-jpa branch[1]:

1) Use JPA for persistence
Motivation behind this has been to investigate how this compares to
JPOX/JDO for managing the model - both in terms on performance and
ease of use (Store APIs). Continuum model classes are annotated with
JPA annotations on the branch. However, this needs a review as there
are some elements (for example 'configuration' typed as Map) that I am
not sure yet how to persist yet. The provider used is OpenJPA [2].

2) Refactorings to Store interface
Main motivation has been to keep the core Store interface lean and
mean (read extensible). The Store interface[3] now has 4 methods:
lookup()
save()
delete()
query()

The lookup(), save() and delete() act on single model Entity, while
query() will filter and obtain matching Entities from the underlying
database based on the Query specified. Query implementations control
how a resulting JPQL gets constructed and which matching entities get
pulled, and can be easily extended.

To preserve compatibility with the existing Store interface, we can
mimick the existing ContinuumStore interface operations by having a
facade that can prepare requisite queries and delegate to a Store
instance.

3) Misc.
There are a few I am investigating:
1) Spring/Guice under the hood.
2) JUnit 4.4 (and Hamcrest library)
, but these are still in early stages.

I am keen to get a feedback on what others think.

Cheers,

Rahul


[1] - http://svn.apache.org/repos/asf/maven/continuum/branches/continuum-jpa/

[2] - http://openjpa.apache.org/

[3] - http://svn.apache.org/repos/asf/maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/Store.java

 « Return to Thread: Some continuum-jpa branch updates