OTJPA dependencies

From Eclipsepedia

Revision as of 07:00, 5 May 2011 by Stephan.cs.tu-berlin.de (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The OT/JPA library enables full JPA persistence support for Object Teams using a lightweight, Object Teams based adaptation of the eclipselink JPA implementation.

However, for migrating the library it must first pass IP review.  This page features a first analysis of the OT/JPA dependencies in order to assess necessary changes before migrating to the eclipse repositories.

The following analysis was performed using the maven dependency plugin. CQ <number> references an issue in the IPZilla issue tracking.

URL: https://svn.objectteams.org/ot/trunk/src/maven/objectteams-jpa
Revision: 23682 
 media/development/objeccteams/otjpa-trunk/objectteams-jpa$ mvn dependency:tree
[INFO] Scanning for projects...
[INFO] Reactor build order: 
[INFO] Objectteams JPA projects parent pom
[INFO] Objectteams JPA utils
[INFO] Objectteams eclipselink adapter
[INFO] Objectteams JPA lazyloading
[INFO] Objectteams eclipselink spring-support
[INFO] Searching repository for plugin with prefix: 'dependency'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Objectteams JPA projects parent pom
[INFO] task-segment: [dependency:tree]
[INFO] ------------------------------------------------------------------------
[INFO] [dependency:tree {execution: default-cli}]
[INFO] org.objectteams:objectteams-jpa-parent:pom:0.4-SNAPSHOT
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Objectteams JPA utils
[INFO] task-segment: [dependency:tree]
[INFO] ------------------------------------------------------------------------
[INFO] [dependency:tree {execution: default-cli}]
[INFO] org.objectteams:objectteams-jpa-utils:jar:0.4-SNAPSHOT
[INFO] +- org.objectteams:objectteams-otre:jar:1.3.5-SNAPSHOT:compile
[INFO] +- log4j:log4j:jar:1.2.15:compile 

Okay (CQ 3815)

[INFO] +- commons-lang:commons-lang:jar:2.4:compile 

Okay (CQ 2735)

[INFO] +- net.sourceforge.collections:collections-generic:jar:4.01:compile 

No CQ. Suggest switching to google collections (CQ 3679). Effort: Medium.

[INFO] +- cglib:cglib-nodep:jar:2.2:compile 

Not good. No approval for cglib exists. Fix: Remove dependency, refactor CglibProxyHelper. Effort: easy.

[INFO] +- javax.persistence:persistence-api:jar:1.0:compile 

Not in IPZilla. Must be okay - EclipseLink ist the reference implementation!

[INFO] +- org.mockito:mockito-all:jar:1.7:test 

CQ 3930 awaits analysis. However, we do not ship this artifact as part of the runtime, it is a test dependency only - "workswith" very likely a solution!

[INFO] \- junit:junit:jar:4.6:test 

CQ 3437 was withdrawn. Suggesting to switch to newer, approved version, in example CQ 4118.

[INFO] ------------------------------------------------------------------------
[INFO] Building Objectteams eclipselink adapter
[INFO] task-segment: [dependency:tree]
[INFO] ------------------------------------------------------------------------
[INFO] [dependency:tree {execution: default-cli}]
[INFO] org.objectteams:objectteams-eclipselink:jar:0.4-SNAPSHOT
[INFO] +- org.objectteams:objectteams-otre:jar:1.3.5-SNAPSHOT:compile
[INFO] +- javax.persistence:persistence-api:jar:1.0:compile

(See above)

[INFO] +- org.eclipse.persistence:eclipselink:jar:1.1.3:compile 

Okay- is an eclipse project.

[INFO] +- junit:junit:jar:4.6:test

(See above)

[INFO] +- org.mockito:mockito-all:jar:1.7:test

(See above)

[INFO] +- log4j:log4j:jar:1.2.15:compile

(See above)

[INFO] +- commons-lang:commons-lang:jar:2.4:compile

(See above)

[INFO] +- org.objenesis:objenesis:jar:1.1:compile

No CQ exists. However in CQ 3931, objenesis 1.0 is reviewed. Effort: this is a core dependency and cannot be removed.

Suggested solution: Repackage as ot-objenesis, with excluded JRockit support (see CQ 3931) and create IPZilla request for approval.

[INFO] +- net.sourceforge.collections:collections-generic:jar:4.01:compile

(See above)

[INFO] ------------------------------------------------------------------------
[INFO] Building Objectteams JPA lazyloading
[INFO] task-segment: [dependency:tree]
[INFO] ------------------------------------------------------------------------
[INFO] [dependency:tree {execution: default-cli}]
[INFO] org.objectteams:objectteams-jpa-lazyloading:jar:0.4-SNAPSHOT
[INFO] +- log4j:log4j:jar:1.2.15:compile

(See above)

[INFO] +- javax.persistence:persistence-api:jar:1.0:provided (scope not updated to compile)

(See above)

[INFO] +- junit:junit:jar:4.6:test

(See above)

[INFO] +- org.mockito:mockito-all:jar:1.7:test

(See above)

[INFO] ------------------------------------------------------------------------
[INFO] Building Objectteams eclipselink spring-support
[INFO] task-segment: [dependency:tree]
[INFO] ------------------------------------------------------------------------
[INFO] [dependency:tree {execution: default-cli}]
[INFO] org.objectteams:objectteams-eclipselink-spring:jar:0.4-SNAPSHOT
[INFO] +- cglib:cglib-nodep:jar:2.1_3:runtime (scope not updated to compile)

(See above)

[INFO] +- javax.persistence:persistence-api:jar:1.0:compile

(See above)

[INFO] +- org.springframework:spring-beans:jar:2.5.6:compile

Okay (CQ 3664)

[INFO] +- org.springframework:spring-core:jar:2.5.6:compile

Okay (CQ 3666)

[INFO] +- org.springframework:spring-agent:jar:2.5.6:compile

No CQ. However CQ 2353 approves version 2.5.3. Suggestion: Create IPzilla request.

[INFO] +- org.springframework:spring-orm:jar:2.5.6:compile

No CQ. Suggestion: Create IPzilla request.

[INFO] +- org.springframework:spring-context:jar:2.5.6:compile

Okay (CQ 3665)

[INFO] +- org.springframework:spring-jdbc:jar:2.5.6:compile

No CQ. Suggestion: Create IPzilla request.

[INFO] +- org.springframework:spring-aspects:jar:2.5.6:compile

No CQ. Suggestion: Create IPzilla request.

[INFO] +- org.springframework:spring-aop:jar:2.5.6:compile

Okay (CQ 3663)

[INFO] +- org.eclipse.persistence:eclipselink:jar:1.1.3:compile

Okay

[INFO] +- commons-dbcp:commons-dbcp:jar:1.2.2:runtime

Okay (CQ 2765)

[INFO] +- commons-collections:commons-collections:jar:3.2.1:compile

No CQ. However, CQ 3817 permits 3.2.0. Suggested Solution: Create IPzilla request

[INFO] +- log4j:log4j:jar:1.2.15:compile

(See above)

[INFO] +- org.springframework:spring-test:jar:2.5.6:test

Okay (CQ 4148) - used as test dependency.

[INFO] +- junit:junit:jar:4.4:test

Okay (CQ 2027)

[INFO] +- hsqldb:hsqldb:jar:1.8.0.7:test

No CQ. However CQ 4237 approves 1.8.0.8 as workswith. Suggestion: Switch to 1.8.0.8. This is a test dependency.

[INFO] \- mysql:mysql-connector-java:jar:5.0.7:compile

Not okay, later version was rejected (see f.e. CQ 4238). Suggested solution: Make optional. This must not be provided as part of our runtime.

[INFO] Building Objectteams plexus-compiler-eclipse plugin
[INFO] task-segment: [dependency:tree]
[INFO] ------------------------------------------------------------------------
[INFO] [dependency:tree {execution: default-cli}]
[INFO] org.objectteams:objectteams-plexus-compiler-eclipse:jar:1.3.5-SNAPSHOT
[INFO] +- org.codehaus.plexus:plexus-compiler-api:jar:1.5.3:compile
[INFO] +- org.codehaus.plexus:plexus-utils:jar:1.0.5:compile
[INFO] | \- classworlds:classworlds:jar:1.1-alpha-2:compile
[INFO] +- org.codehaus.plexus:plexus-container-default:jar:1.0-beta-1.1:compile
[INFO] | +- org.codehaus.plexus:plexus-classworlds:jar:1.2-alpha-13:compile
[INFO] | \- org.apache.xbean:xbean-reflect:jar:3.4:compile
[INFO] | +- log4j:log4j:jar:1.2.15:compile (version managed from 1.2.12)
[INFO] | \- commons-logging:commons-logging-api:jar:1.1:compile 

Not okay. Plexus code was rejected in the past (f.e. CQ 3161).
Suggested solution: Rewrite the compiler plugin for maven and drop support for maven 2. Maven 3 uses google guice as a container, which will pass the eclipse IP review.