Hi Wonseok,
This is a good idea, but I think that a) "Specification-Version" should stay 1.0
(the spec didn't change), and b) I don't think that SNAPSHOT in the maven
repository should have dates attached - isn't it just the latest version and
should be the only one with such name?
Tom, do you see any problems with the other changes?
thanks,
-marina
Wonseok Kim wrote:
> Hi Lance and all team members,
>
> As I said, what I worry is that there are two confusing version schemes
> - 9.1-b35 and 2.0-b35.
>
> How about using one version scheme "2.0" from now? I think TopLink
> Essentials(TLE) don't need to follow the SJSAS version because it can be
> used as standalone.
>
> If all agree to this, we need to change MANIFEST.mf and Version.java also.
> I did some job for this. Please see below diff and the attached file.
>
> Summary of fix:
> * Modify release.version to 2.0 in build.properties
> * The version field of Class Version is replaced with ${release.version}
> like buildNumber field.
> * MANIFEST.MF "Implementation-Version" field now has the new version
> scheme ${ release.version}-${build.id <http://build.id>} - e.g.) 2.0-b35
> * If ${build.id <http://build.id>} is not given, SNAPSHOT-yyyyMMdd is
> used. Full version will be 2.0-SNAPSHOT-20070212 for example.
> * Arranged toplink-essentials.mf and toplink-essentials-agent.mf files
> to be same as the generated MANIFEST.MF inside jars.
> * The version element of POM is replaced with the full version - 2.0-b35
>
> Index: build.xml
> ===================================================================
> RCS file: /cvs/glassfish/entity-persistence/build.xml,v
> retrieving revision 1.17
> diff -c -w -r1.17 build.xml
> *** build.xml 4 Oct 2006 17:16:54 -0000 1.17
> --- build.xml 12 Feb 2007 13:10:27 -0000
> ***************
> *** 49,62 ****
> &commonBuild;
>
> <tstamp>
> ! <format property="build_date" pattern="MM/dd/yyyy"/>
> </tstamp>
> <condition property="build_string" value="${build_id}">
> <not>
> <equals arg1="${build_id}" arg2="" trim="true"/>
> </not>
> </condition>
> ! <property name="build_string" value="non promoted: ${build_date}"/>
>
> <!-- all -->
> <target name="all" depends="compile, assemble"
> --- 49,66 ----
> &commonBuild;
>
> <tstamp>
> ! <format property="build_date" pattern="yyyyMMdd"/>
> </tstamp>
> <condition property="build_string" value="${build_id}">
> <not>
> + <or>
> <equals arg1="${build_id}" arg2="" trim="true"/>
> + <equals arg1="${build_id}" arg2="local" trim="true"/>
> + </or>
> </not>
> </condition>
> ! <property name="build_string" value="SNAPSHOT-${build_date}"/>
> ! <property name="full_version"
> value="${release.version}-${build_string}"/>
>
> <!-- all -->
> <target name="all" depends="compile, assemble"
> ***************
> *** 83,89 ****
> description="Compile TopLink Essentials sources">
> <copy file="${src.dir}/oracle/toplink/essentials/Version.java"
> tofile="${
> component.classes.dir}/oracle/toplink/essentials/Version.java"/>
> ! <replace
> file="${component.classes.dir}/oracle/toplink/essentials/Version.java"
> token="ESSENTIALS_BUILD_NUMBER" value="${build_string}"/>
> <javac srcdir="${component.classes.dir}"
> destdir="${component.classes.dir}"
> includes="oracle/toplink/essentials/Version.java"
> --- 87,96 ----
> description="Compile TopLink Essentials sources">
> <copy file="${src.dir}/oracle/toplink/essentials/Version.java"
> tofile="${component.classes.dir
> }/oracle/toplink/essentials/Version.java"/>
> ! <replace
> file="${component.classes.dir}/oracle/toplink/essentials/Version.java">
> ! <replacefilter token="@VERSION@" value="${ release.version}"/>
> ! <replacefilter token="@BUILD_NUMBER@"
> value="${build_string}"/>
> ! </replace>
> <javac srcdir="${component.classes.dir }"
> destdir="${component.classes.dir}"
> includes="oracle/toplink/essentials/Version.java"
> ***************
> *** 140,146 ****
> <attribute name="Specification-Version" value=" 1.0"/>
> <attribute name="Implementation-Title" value="TopLink
> Essentials"/>
> <attribute name="Implementation-Vendor" value="Sun
> Microsystems, Inc., Oracle Corp."/>
> ! <attribute name="Implementation-Version" value="9.1
> build: ${build_string}"/>
> </manifest>
> <fileset dir="${component.classes.dir }">
> <include name="javax/persistence/**/*.class"/>
> --- 147,153 ----
> <attribute name="Specification-Version" value="1.0"/>
> <attribute name="Implementation-Title" value="TopLink
> Essentials"/>
> <attribute name="Implementation-Vendor" value="Sun
> Microsystems, Inc., Oracle Corp."/>
> ! <attribute name="Implementation-Version"
> value="${full_version}"/>
> </manifest>
> <fileset dir="${component.classes.dir}">
> <include name="javax/persistence/**/*.class"/>
> ***************
> *** 168,174 ****
> <attribute name="Specification-Version" value="1.0"/>
> <attribute name="Implementation-Title" value="TopLink
> Essentials "/>
> <attribute name="Implementation-Vendor" value="Sun
> Microsystems, Inc., Oracle Corp."/>
> ! <attribute name="Implementation-Version" value="9.1
> build: ${build_string}"/>
> </manifest>
> <fileset dir="${component.classes.dir}">
> <include
> name="oracle/toplink/essentials/internal/ejb/cmp3/JavaSECMPInitializerAgent.class"/>
>
> --- 175,181 ----
> <attribute name="Specification-Version" value="1.0"/>
> <attribute name="Implementation-Title" value="TopLink
> Essentials "/>
> <attribute name="Implementation-Vendor" value="Sun
> Microsystems, Inc., Oracle Corp."/>
> ! <attribute name="Implementation-Version"
> value="${full_version}"/>
> </manifest>
> <fileset dir="${component.classes.dir}">
> <include
> name="oracle/toplink/essentials/internal/ejb/cmp3/JavaSECMPInitializerAgent.class"/>
>
> ***************
> *** 235,241 ****
> <copy todir="${release.dir}/manifest">
> <fileset dir="." includes="*.mf" />
> <filterset>
> ! <filter token="VERSION" value="${release.version}"/>
> </filterset>
> </copy>
> </target>
> --- 242,248 ----
> <copy todir="${ release.dir}/manifest">
> <fileset dir="." includes="*.mf" />
> <filterset>
> ! <filter token="VERSION" value="${full_version}"/>
> </filterset>
> </copy>
> </target>
> ***************
> *** 320,326 ****
> <target name="push-to-maven-prepare" depends="-push-to-maven-init,
> jar"
> description="creates an image for the 'push-to-maven' goal">
> <delete dir="build/maven-repo" /><!-- clean it -->
> ! <maven-repository-importer destdir="build/maven-repo"
> version="${ release.version}">
> <artifact jar="${release.dir}/toplink-essentials.jar"
> pom="toplink-essentials.pom"
> srczip="${release.dir}/toplink-essentials.src.zip" />
> <artifact jar="${
> release.dir}/toplink-essentials-agent.jar"
> pom="toplink-essentials-agent.pom"
> srczip="${release.dir}/toplink-essentials-agent.src.zip" />
> </maven-repository-importer>
> --- 327,333 ----
> <target name="push-to-maven-prepare" depends="-push-to-maven-init,
> jar"
> description="creates an image for the 'push-to-maven' goal">
> <delete dir="build/maven-repo" /><!-- clean it -->
> ! <maven-repository-importer destdir="build/maven-repo"
> version="${full_version}">
> <artifact jar="${release.dir}/toplink-essentials.jar"
> pom="toplink-essentials.pom "
> srczip="${release.dir}/toplink-essentials.src.zip" />
> <artifact
> jar="${release.dir}/toplink-essentials-agent.jar"
> pom="toplink-essentials-agent.pom" srczip="${
> release.dir}/toplink-essentials-agent.src.zip" />
> </maven-repository-importer>
> Index: build.properties
> ===================================================================
> RCS file: /cvs/glassfish/entity-persistence/build.properties,v
> retrieving revision 1.2
> diff -c -w -r1.2 build.properties
> *** build.properties 13 May 2006 01:34:16 -0000 1.2
> --- build.properties 12 Feb 2007 13:10:27 -0000
> ***************
> *** 26,32 ****
>
> ### Additonal Component Properties for standalone release ###
> release.dir=build/release
> ! release.version=1.0
> release.toplink-essentials.jar=${release.dir}/toplink-essentials.jar
>
> release.toplink-essentials-agent.jar=${release.dir}/toplink-essentials-agent.jar
>
>
> --- 26,32 ----
>
> ### Additonal Component Properties for standalone release ###
> release.dir=build/release
> ! release.version=2.0
> release.toplink-essentials.jar=${release.dir}/toplink-essentials.jar
>
> release.toplink-essentials-agent.jar=${release.dir}/toplink-essentials-agent.jar
>
> Index: src/java/oracle/toplink/essentials/Version.java
> ===================================================================
> RCS file:
> /cvs/glassfish/entity-persistence/src/java/oracle/toplink/essentials/Version.java,v
> retrieving revision 1.47
> diff -c -w -r1.47 Version.java
> *** src/java/oracle/toplink/essentials/Version.java 4 Jan 2007
> 14:30:28 -0000 1.47
> --- src/java/oracle/toplink/essentials/Version.java 12 Feb 2007
> 13:10:27 -0000
> ***************
> *** 36,43 ****
> // The current version of TopLink.
> // This will be used by all product components and included in
> exceptions.
> private static String product = "Oracle TopLink Essentials";
> ! private static final String version = "9.1";
> ! private static final String buildNumber = "ESSENTIALS_BUILD_NUMBER";
>
> /** Keep track of JDK version in order to make some decisions
> about datastructures. **/
> public static final int JDK_VERSION_NOT_SET = 0;
> --- 36,43 ----
> // The current version of TopLink.
> // This will be used by all product components and included in
> exceptions.
> private static String product = "Oracle TopLink Essentials";
> ! private static final String version = "@VERSION@";
> ! private static final String buildNumber = "@BUILD_NUMBER@";
>
> /** Keep track of JDK version in order to make some decisions
> about datastructures. **/
> public static final int JDK_VERSION_NOT_SET = 0;
>
>
> On 2/10/07, *Lance J. Andersen* <Lance.Andersen_at_sun.com
> <mailto:Lance.Andersen_at_sun.com>> wrote:
>
> Hi Wonseok,
>
> Great question and this is something Marina and i discussed
> yesterday. The issue is that the jars in the maven repository are
> from june 2006. One of the issues is that signatures had some
> errors which have since been addressed. Where the 1.0b version
> came from is this is the version of the JPA TCK which has recorded
> the corrected signatures per the specification.
>
> For Toplink Essentials, the versioning aligns with the Glassfish
> build that the jar originated from.
>
> If you(or anyone else) has a better suggestion WRT versioning, let
> us know.
>
> We just need to release a new set of jars to the maven repository ASAP.
>
> Regards
> Lance
>
>
> Wonseok Kim wrote:
>
>> Hi Marina,
>> I'm curious about the version policy, indeed.
>>
>> persistence-api:
>> What does it mean by "1.0b"? does "b" mean a patch version?
>>
>> toplink-essentials:
>> Does TopLink Essentials have unique version policy ( 2.0?) other
>> than SJSAS version (9.1)?
>> Manifest has version like "9.1 build: b35". Also I don't think
>> trunk build has 2.0 changes (if 9.0 build is 1.0). Then should it
>> be 1.1? I'm not sure.
>>
>> I believe that version policy is important because ugly version
>> scheme could confuse users/developers and it would not be easy to
>> change it later.
>>
>> Also I have following questions in my mind.
>> - Could TopLink Essentials be independent project (separation from
>> GlassFish like Grizzly) in the future?
>> - Does TopLink Essentials require unique version policy than SJSAS
>> version( 9.0, 9.1)?
>> - If not, should the SJSAS version be used for maven repository?
>>
>> Regards,
>> -Wonseok
>>
>> On 2/9/07, *Marina Vatkina* < Marina.Vatkina_at_sun.com
>> <mailto:Marina.Vatkina_at_sun.com>> wrote:
>>
>> I made the following changes to create jars with a new version:
>>
>> 1. Changed version of the persistence-api related files to
>> 1.0b in persistence-api:
>> Index: build.properties
>> ===================================================================
>> RCS file: /cvs/glassfish/persistence-api/build.properties,v
>> retrieving revision 1.4
>> diff -r1.4 build.properties
>> 29c29
>> < release.version=1.0
>> ---
>>> release.version=1.0b
>>
>> 2. Changed version of the toplink related files to 2.0-35 and
>> the dependency on
>> the p-api to 1.0b in entity-persistence:
>>
>> Index: build.properties
>> ===================================================================
>> RCS file: /cvs/glassfish/entity-persistence/build.properties,v
>> retrieving revision 1.2
>> diff -r1.2 build.properties
>> 29c29
>> < release.version=1.0
>> ---
>>> release.version=2.0-35
>> Index: toplink-essentials.pom
>> ===================================================================
>> RCS file: /cvs/glassfish/entity-persistence/toplink-
>> essentials.pom,v
>> retrieving revision 1.1
>> diff -r1.1 toplink-essentials.pom
>> 10c10
>> < <version>1.0</version>
>> ---
>>> <version>1.0b</version>
>>
>> I tested by creating the files without pushing them to the
>> repository. Their
>> names look correct:
>>
>> persistence-api/build/maven-repo/javax.persistence/jars/persistence-api-1.0b.jar
>> persistence-api/build/maven-repo/javax.persistence/jars/persistence-api-1.0b.jar.md5
>> persistence-api/build/maven-repo/javax.persistence/poms/persistence-
>> api-1.0b.pom
>> persistence-api/build/maven-repo/javax.persistence/poms/persistence-api-1.0b.pom.md5
>> persistence-api/build/maven-repo/javax.persistence/java-sources/persistence-api-1.0b-sources.jar
>> persistence-api/build/maven-repo/javax.persistence/java-sources/persistence-
>> api-1.0b-sources.jar.md5
>>
>> entity-persistence/build/maven-repo/javax.persistence/jars/toplink-essentials-2.0-35.jar
>> entity-persistence/build/maven-repo/javax.persistence/jars/toplink-essentials-2.0-35.jar.md5
>> entity-persistence/build/maven-repo/javax.persistence/poms/toplink-
>> essentials-2.0-35.pom
>> entity-persistence/build/maven-repo/javax.persistence/poms/toplink-essentials-2.0-35.pom.md5
>> entity-persistence/build/maven-repo/javax.persistence/java-sources/toplink-essentials-2.0-35-sources.jar
>>
>> entity-persistence/build/maven-repo/javax.persistence/java-sources/toplink-essentials-2.0-35-sources.jar.md5
>> entity-persistence/build/maven-repo/oracle.toplink.essentials.agent/jars/toplink-essentials-agent-2.0-35.jar
>>
>> entity-persistence/build/maven-repo/oracle.toplink.essentials.agent/jars/toplink-essentials-agent-2.0-35.jar.md5
>> entity-persistence/build/maven-repo/oracle.toplink.essentials.agent/poms/toplink-essentials-agent-2.0-35.pom
>>
>> entity-persistence/build/maven-repo/oracle.toplink.essentials.agent/poms/toplink-essentials-agent-2.0-35.pom.md5
>> entity-persistence/build/maven-repo/oracle.toplink.essentials.agent/java-sources/toplink-essentials-agent-2.0-35-sources.jar
>>
>> entity-persistence/build/maven-repo/oracle.toplink.essentials.agent/java-sources/toplink-essentials-agent-2.0-35-sources.jar.md5
>>
>>
>> thanks,
>> -marina
>>
>>
>