Hi Marina,
I did not change the "Specification-Version" 1.0, just the
"Implementation-Version" will be affected.
The SNAPSHOT version is used if ${build_id} is not given, I introduced the
SNAPSHOT version(e.g. 2.0-SNAPSHOT-20070212) just for the binary built
manually in the workspace. Is the ${build_id} given by build system for
promoted build? Then, the full release version (2.0-b35) will be inserted.
Or you can give ${build_id} manually by -Dbuild_id=b35 to Ant. Is the
process of uploading to Maven repository done manually or by build system? I
believe that it should be done automatically when promoted build is done.
Thanks,
-Wonseok
On 2/13/07, Marina Vatkina <Marina.Vatkina_at_sun.com> wrote:
>
> 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.javaalso.
> > 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
> >>
> >>
> >
>