Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
OTJPA dependencies
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.