Jump to: navigation, search

Difference between revisions of "EclipseLink/Build/Infrastructure"

(Downloadable Content)
(P2 Update Sites)
Line 5: Line 5:
 
   
 
   
 
== P2 Update Sites ==
 
== P2 Update Sites ==
EclipseLink currently organizes its update sites into two general categories; "released builds, and "incremental builds". Where "released builds" consist of product releases and thier associated bugfix maintenance patches, and "incremental builds" represent a specific "milestone" or a nightly build. There is a specific root site for each.
+
EclipseLink organizes its update sites into three different sites; signed "release builds", signed "milestone builds", and unsigned "nightly builds". Where "released builds" consist of product releases and thier associated bugfix maintenance patches, "milestone builds" are tested stable builds released regularly during development, and "nightly builds" are the latest and (hopefully) greatest build of the development codebase. Nightly builds are unsigned, and routinely have issues. However, milestone and even release builds are directly promoted from nightly builds (after various levels of testing), this can be done because of the continuous build process that regularly builds as test the codebase as transactions are merged.  
  
The latest available release can be found at: http://download.eclipse.org/rt/eclipselink/updates. Past releases can be found in a version specific subdirectory under that site. For example:
+
EclipseLink now utilizes "compound" repositories to make all the builds available in one site available for each type.
*http://download.eclipse.org/rt/eclipselink/updates/1.1.3
+
  
 +
The releases can be found at:
 +
* http://download.eclipse.org/rt/eclipselink/updates.
  
Nightly and milestone releases are stored similarly. However, it should be noted that due to space restrictions only the latest milestone or nightly build for releases currently under development are made available.
+
Milestone releases are stored similarly. However, it should be noted that due to space restrictions only milestones for versions under development are retained, and due to limitations with P2 the milestone a build belongs to can take some research. It is usually best to simply update to the latest if you choose to use milestone builds. They can be found at:
* http://download.eclipse.org/rt/eclipselink/incremental-updates/milestone/<version>
+
* http://download.eclipse.org/rt/eclipselink/milestone-updates
* http://download.eclipse.org/rt/eclipselink/incremental-updates/nightly/<version>
+
  
The use of composite repositories for the update sites is being investigated. While there are several advantages for maintenance and to users, there is a major drawback in that it would be easy for a user to inadvertently select *all* available released or incremental versions. Thus cluttering thier system, and causing a maintenance head-ache of thier own. No solution to this issue is currently available, however, not using a composite repository for incremental builds also has issues in that the user would need to be intimately familiar with the EclipseLink Project's current development schedule to know what versions are currently under development, and thus available. We may implement a composite update site for incremental builds only.
+
Nightly builds have similar restrictions. They are only only retained for about a week. The builds are unsigned, and maynot even be stable. It is best not to use them unless you are trying to get past a specific issue you know is resolved with a particular nightly build. The URL to the nightly build update site is:
 +
* http://download.eclipse.org/rt/eclipselink/nightly-updates
 +
 
 +
It should be noted that we have opted to use composite repositories in spite of a major drawback: a user can simply select the category checkbox, and inadvertently select *all* available builds. Thus cluttering , and causing a maintenance head-ache on thier own system. No solution to this issue is currently available, however, not using a composite repository for incremental builds also has issues led to issues that effected all users, all the time.
  
 
=== P2 organization ===
 
=== P2 organization ===
The Project update site is centered around catagorized features. Currently, all project update repositories are categorized under "EclipseLink" and "EclipseLink Source", though do to a bug currently under development most release sites do not show the categories properly.
+
The Project update site is now centered around a single catagorized feature. The SDK. In the past we made available several features, and corresponding "source" features. Those features are still avalailable, but to select them you will need to unselect "show categorozed items". Currently, only the SDK feature is categorized under "EclipseLink". All past release repositories have been regenerated to use the SDK (binary bundles have not been modified).
  
EclipseLink is currently made up of six (6) features. They are:
+
The EclipseLink SDK is currently made up of the other six (6) features. They are:
 
*EclipseLink JPA  (org.eclipse.persistence.jpa)
 
*EclipseLink JPA  (org.eclipse.persistence.jpa)
 
*EclipseLink MOXy (org.eclipse.persistence.moxy)
 
*EclipseLink MOXy (org.eclipse.persistence.moxy)
Line 31: Line 34:
 
Though the jar name of the feature is similar to an EclipseLink bundle of the same name, the two do not conflict because the feature
 
Though the jar name of the feature is similar to an EclipseLink bundle of the same name, the two do not conflict because the feature
 
(or in p2 parlance: the Installable Unit) is stored separately from the bundles it installs/includes.
 
(or in p2 parlance: the Installable Unit) is stored separately from the bundles it installs/includes.
 
There is a proposal on the table to simplify this offering by making a single "EclipseLink SDK" available. If approved, it will likely be structured as an additional feature that includes only the other EclipseLink features (for backward compatability, and other reasons).
 
  
 
=== Feature content ===
 
=== Feature content ===
The EclipseLink features are not 'nested', but rather are designed as completely autonomous units specific to the utilization of specific EclipseLink functionality. So though every 'feature' depends upon the EclipseLink core, there is no "Core feature". Instead "EclipseLink JPA" groups together all libraries (both project and external) that are distributable and are needed for developing and running an EclipseLink JPA application. The same is true of the MOXy and SDO features. This decision was made because it was felt to be more 'developer-centric', more easily understood and resulted in a less cluttered 'update' display.
+
With the exception of the SDK (which includes all the other features), EclipseLink features are not 'nested', but rather are designed as completely autonomous units specific to the utilization of specific EclipseLink functionality. So though every 'feature' depends upon the EclipseLink core, there is no "Core feature". Instead "EclipseLink JPA" groups together all libraries (both project and external) that are distributable and are needed for developing and running an EclipseLink JPA application. The same is true of the MOXy and SDO features. This decision was originally made because it was felt to be more 'developer-centric', more easily understood and resulted in a less cluttered 'update' display.
 +
 
 +
Now all the features are made available in a single SDK, and nesting may make more conceptual sense, but for backward compatability the original structure has been maintained. In addition there is no real need to change it since, becasue of the nature of OSGi, a specific bundle will only be installed once, no matter how many other bundles (or features) may depend upon it.
  
 
It has been requested that a breakdown be made available of the bundles included in each feature outside of the xml projects used to create them (thus sparing the reader from having to understand the "feature.xml" layout). Given the changing nature of these dependencies I will outline the dependencies for the latest release currently under development (2.1.0), with the caveat that the ultimate autority is the feature.xml stored in the "features" subproject of EclipseLink's SVN repository.  
 
It has been requested that a breakdown be made available of the bundles included in each feature outside of the xml projects used to create them (thus sparing the reader from having to understand the "feature.xml" layout). Given the changing nature of these dependencies I will outline the dependencies for the latest release currently under development (2.1.0), with the caveat that the ultimate autority is the feature.xml stored in the "features" subproject of EclipseLink's SVN repository.  
 +
 +
'''EclipseLink SDK''' (org.eclipse.persistence.sdk):
 +
  "includes" the other six features directly.
  
 
'''EclipseLink JPA ''' (org.eclipse.persistence.jpa):
 
'''EclipseLink JPA ''' (org.eclipse.persistence.jpa):

Revision as of 13:37, 17 May 2010

This page is a landing page dedicated to Infrastructure related issues for the EclipseLink project.


Download Infrastructure

P2 Update Sites

EclipseLink organizes its update sites into three different sites; signed "release builds", signed "milestone builds", and unsigned "nightly builds". Where "released builds" consist of product releases and thier associated bugfix maintenance patches, "milestone builds" are tested stable builds released regularly during development, and "nightly builds" are the latest and (hopefully) greatest build of the development codebase. Nightly builds are unsigned, and routinely have issues. However, milestone and even release builds are directly promoted from nightly builds (after various levels of testing), this can be done because of the continuous build process that regularly builds as test the codebase as transactions are merged.

EclipseLink now utilizes "compound" repositories to make all the builds available in one site available for each type.

The releases can be found at:

Milestone releases are stored similarly. However, it should be noted that due to space restrictions only milestones for versions under development are retained, and due to limitations with P2 the milestone a build belongs to can take some research. It is usually best to simply update to the latest if you choose to use milestone builds. They can be found at:

Nightly builds have similar restrictions. They are only only retained for about a week. The builds are unsigned, and maynot even be stable. It is best not to use them unless you are trying to get past a specific issue you know is resolved with a particular nightly build. The URL to the nightly build update site is:

It should be noted that we have opted to use composite repositories in spite of a major drawback: a user can simply select the category checkbox, and inadvertently select *all* available builds. Thus cluttering , and causing a maintenance head-ache on thier own system. No solution to this issue is currently available, however, not using a composite repository for incremental builds also has issues led to issues that effected all users, all the time.

P2 organization

The Project update site is now centered around a single catagorized feature. The SDK. In the past we made available several features, and corresponding "source" features. Those features are still avalailable, but to select them you will need to unselect "show categorozed items". Currently, only the SDK feature is categorized under "EclipseLink". All past release repositories have been regenerated to use the SDK (binary bundles have not been modified).

The EclipseLink SDK is currently made up of the other six (6) features. They are:

  • EclipseLink JPA (org.eclipse.persistence.jpa)
  • EclipseLink MOXy (org.eclipse.persistence.moxy)
  • EclipseLink SDO (org.eclipse.persistence.sdo)
  • EclipseLink JPA Source (org.eclipse.persistence.jpa.source)
  • EclipseLink MOXy Source (org.eclipse.persistence.moxy.source)
  • EclipseLink SDO Source (org.eclipse.persistence.sdo.source)


Though the jar name of the feature is similar to an EclipseLink bundle of the same name, the two do not conflict because the feature (or in p2 parlance: the Installable Unit) is stored separately from the bundles it installs/includes.

Feature content

With the exception of the SDK (which includes all the other features), EclipseLink features are not 'nested', but rather are designed as completely autonomous units specific to the utilization of specific EclipseLink functionality. So though every 'feature' depends upon the EclipseLink core, there is no "Core feature". Instead "EclipseLink JPA" groups together all libraries (both project and external) that are distributable and are needed for developing and running an EclipseLink JPA application. The same is true of the MOXy and SDO features. This decision was originally made because it was felt to be more 'developer-centric', more easily understood and resulted in a less cluttered 'update' display.

Now all the features are made available in a single SDK, and nesting may make more conceptual sense, but for backward compatability the original structure has been maintained. In addition there is no real need to change it since, becasue of the nature of OSGi, a specific bundle will only be installed once, no matter how many other bundles (or features) may depend upon it.

It has been requested that a breakdown be made available of the bundles included in each feature outside of the xml projects used to create them (thus sparing the reader from having to understand the "feature.xml" layout). Given the changing nature of these dependencies I will outline the dependencies for the latest release currently under development (2.1.0), with the caveat that the ultimate autority is the feature.xml stored in the "features" subproject of EclipseLink's SVN repository.

EclipseLink SDK (org.eclipse.persistence.sdk):

  "includes" the other six features directly.

EclipseLink JPA (org.eclipse.persistence.jpa):

  javax.activation_1.1.0.v200906290531.jar
  javax.mail_1.4.0.v200804091730.jar
  javax.persistence_2.0.0.v201002051058.jar
  javax.xml.stream_1.0.1.v201001131653.jar
  org.eclipse.persistence.antlr_2.1.0
  org.eclipse.persistence.asm_2.1.0
  org.eclipse.persistence.core_2.1.0
  org.eclipse.persistence.jpa_2.1.0
  org.eclipse.persistence.jpa.equinox_2.1.0
  org.eclipse.persistence.jpa.equinox.weaving_2.1.0
  org.eclipse.persistence.oracle_2.1.0

EclipseLink MOXy (org.eclipse.persistence.moxy):

  javax.activation_1.1.0.v200906290531.jar
  javax.mail_1.4.0.v200804091730.jar
  javax.persistence_2.0.0.v201002051058.jar
  javax.xml.bind_2.1.12.v200912160909
  javax.xml.stream_1.0.1.v201001131653
  org.eclipse.persistence.asm_2.1.0
  org.eclipse.persistence.core_2.1.0
  org.eclipse.persistence.moxy_2.1.0

EclipseLink SDO (org.eclipse.persistence.sdo):

  commonj.sdo_2.1.1.v200905221342
  javax.activation_1.1.0.v200906290531.jar
  javax.mail_1.4.0.v200804091730.jar
  javax.persistence_2.0.0.v201002051058.jar
  javax.xml.bind_2.1.12.v200912160909
  javax.xml.stream_1.0.1.v201001131653
  org.eclipse.persistence.asm_2.1.0
  org.eclipse.persistence.core_2.1.0
  org.eclipse.persistence.moxy_2.1.0
  org.eclipse.persistence.sdo_2.1.0

EclipseLink JPA Source (org.eclipse.persistence.jpa.source):

  org.eclipse.persistence.antlr.source_2.1.0
  org.eclipse.persistence.asm.source_2.1.0
  org.eclipse.persistence.core.source_2.1.0
  org.eclipse.persistence.jpa.source_2.1.0
  org.eclipse.persistence.jpa.equinox.source_2.1.0
  org.eclipse.persistence.jpa.equinox.weaving.source_2.1.0
  org.eclipse.persistence.oracle.source_2.1.0

EclipseLink MOXy Source (org.eclipse.persistence.moxy.source):

  org.eclipse.persistence.asm.source_2.1.0
  org.eclipse.persistence.core.source_2.1.0
  org.eclipse.persistence.moxy.source_2.1.0

EclipseLink SDO Source (org.eclipse.persistence.sdo.source):

  org.eclipse.persistence.asm.source_2.1.0
  org.eclipse.persistence.core.source_2.1.0
  org.eclipse.persistence.moxy.source_2.1.0
  org.eclipse.persistence.sdo.source_2.1.0

Downloadable Content

Since classic zip archives of content are made available via Webpages, it makes little sense to discuss directory hierarchies. It may be of benefit to talk about the web organization, and actual content of the archives will be related below. The latest release available for download can be found on the main download page

Installer Zip

Bundle Zip

  eclipselink-jpa-modelgen_2.1.0.v20100220-r6632.jar
  javax.activation_1.1.0.v200906290531.jar
  javax.jms_1.1.0.jar
  javax.mail_1.4.0.v200804091730.jar
  javax.persistence_1.0.0.v200905011740.jar
  javax.resource_1.5.0.jar
  javax.servlet_2.4.0.v200806031604.jar
  javax.transaction_1.1.0.v201002051055.jar
  javax.xml.bind.source_2.1.12.v200912160909.jar
  javax.xml.bind_2.1.12.v200912160909.jar
  javax.xml.soap_1.3.0.jar
  javax.xml.stream_1.0.1.v201001131653.jar
  javax.xml.ws_2.0.0.v200902170419.jar
  org.eclipse.persistence.antlr.source_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.antlr_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.asm.source_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.asm_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.core.source_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.core_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.dbws.source_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.dbws_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.jpa.equinox.source_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.jpa.equinox.weaving.source_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.jpa.equinox.weaving_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.jpa.equinox_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.jpa.modelgen.source_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.jpa.modelgen_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.jpa.source_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.jpa_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.moxy.source_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.moxy_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.oracle.source_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.oracle_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.sdo.source_2.1.0.v20100220-r6632.jar
  org.eclipse.persistence.sdo_2.1.0.v20100220-r6632.jar
  about.html
  license.html
  readme.html
  javax.persistence.source_2.0.0.v201002051058.jar
  javax.persistence_2.0.0.v201002051058.jar
  commonj.sdo_2.1.1.v200905221342.jar

Source Zip

Maven Repository

EclipseLink maintains a maven repository for nightly, milestone and release builds. Nightly builds are kept to the latest ten builds per release version. There is a bug being looked into to split the incremental from the release repo. There is also work to determine if recent p2 support for Maven could be utilized to replace the creation of additional Maven repositories.