Skip to main content
aboutsummaryrefslogblamecommitdiffstats
blob: 56d5a0fb289ac5b582701ce753962c0e5278565b (plain) (tree)
1
2
3
4
5
6
7
8


                                                                        

                                                                         


                                                          














                                                                             












                                                                                 


                                                              





                                                                         
                                                                                                                                                       




                                                                                    
 

                                                                                             
                                                                                 
                                                                               
 


                                                                                
                                                                          
                                                                                      
                               
 


                                                     













                                                                                                                                                  











                                                                         


                                                                
                                                               
                                                                     

                                                             
 








                                                                                                   
 








                                                                                                                                     






                                                                                     
                                                                                                













                                                                                           






















                                                                                                                                   
          
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="IncrementVersionsTask" basedir="." default="set-version">

	<property name="WORKSPACE" location="${ant.file}/../../../../" />

	<target name="show-workspace-path">
		<echo message="WORKSPACE: ${WORKSPACE}" />
	</target>

	<target name="stripSnapshot">
        <script language="javascript">
            <![CDATA[

	                // getting the value
	                buildnumber = project.getProperty("project.version");
	                index = buildnumber.lastIndexOf("-SNAPSHOT");
	                counter = buildnumber.substring(0, index);
	    			project.setProperty("version.main",counter);

	            ]]>
        </script>
    </target>

	<target name="getMajorMinorVersion">
	    <script language="javascript">
	        <![CDATA[
	                // getting the value
	                buildnumber = project.getProperty("version.main");
	                index = buildnumber.lastIndexOf(".");
	                counter = buildnumber.substring(0, index);
	    			project.setProperty("majorMinorVersion",counter);

	            ]]>
	    </script>
	</target>

    <target name="test_stripSnapshot" depends="stripSnapshot">
        <echo message="version.main: ${version.main}"/>
    </target>

	<target name="test_getMajorMinor" depends="getMajorMinorVersion">
		<echo message="majorMinorVersion: ${majorMinorVersion}"/>
	</target>

	<target name="askVersion">
		<input message="Please enter the new release version (MAJOR.MINOR.MICRO):" addproperty="version.main" defaultvalue="${version_main}" />
	</target>

	<target name="retrieveMajorMinor" depends="askVersion,getMajorMinorVersion">
		<echo message="majorMinorVersion: ${majorMinorVersion}"/>
	</target>

	<target name="set-version" description="Modifies artifacts to set a release version" 
			depends="retrieveMajorMinor" >
		<property name="version.osgi" value="${version.main}.qualifier"/>
		<property name="version.mvn" value="${version.main}-SNAPSHOT"/>

		<propertyfile file="release.properties" comment="Build version">
			<entry key="version_main" value="${version.main}" />
			<entry key="version_osgi" value="${version.osgi}" />
			<entry key="version_mvn" value="${version.mvn}" />
			<entry key="majorMinorVersion" value="${majorMinorVersion}" />
		</propertyfile>

		<antcall target="-modify-artifacts"/>
	</target>

	<!-- strip the -SNAPSHOT from the property project.version -->
	<target name="set-version-release" depends="stripSnapshot" description="Modifies artifacts to set a release version (without -SNAPSHOT)" >
		<property name="version.osgi" value="${version.main}"/>
		<property name="version.mvn" value="${version.main}"/>
		
		<echo message="VERSION MAIN: ${version.main}" />
		<echo message="VERSION OSGI: ${version.osgi}" />
		<echo message="VERSION MVN : ${version.mvn}" />
		<echo message="WORKSPACE   : ${WORKSPACE}" />
		<echo message="" />
		
		<antcall target="-modify-artifacts"/>
	</target>

	<target name="bump-timestamps" >
		<tstamp/>

		<replaceregexp>
			<regexp pattern=".*" />
			<substitution expression="${DSTAMP}-${TSTAMP}" />
			<fileset id="path.timestamp" dir="${WORKSPACE}">
				<include name="**/timestamp" />
			</fileset>
		</replaceregexp>
	</target>

	<target name="-modify-artifacts" if="version.main" >
		<echo message="VERSION MAIN: ${version.main}" />
		<echo message="VERSION OSGI: ${version.osgi}" />
		<echo message="VERSION MVN : ${version.mvn}" />
		<echo message="major.minor : ${majorMinorVersion}" />
		<echo message="WORKSPACE   : ${WORKSPACE}" />
		<echo message="" />

		<!-- pom.xml -->
		<replaceregexp>
			<regexp pattern="&lt;version&gt;(.*)&lt;/version&gt;" />
			<substitution expression="&lt;version&gt;${version.mvn}&lt;/version&gt;" />
			<fileset id="path.pom" dir="${WORKSPACE}">
				<include name="**/pom.xml" />
				<exclude name="**/target/**" />
			</fileset>
		</replaceregexp>

		<replaceregexp>
			<regexp pattern="&lt;p2\.versionMajorMinor&gt;(.*)&lt;/p2\.versionMajorMinor&gt;" />
			<substitution expression="&lt;p2\.versionMajorMinor&gt;${majorMinorVersion}&lt;/p2\.versionMajorMinor&gt;" />
			<fileset id="path.pom" dir="${WORKSPACE}">
				<include name="**/pom.xml" />
				<exclude name="**/target/**" />
			</fileset>
		</replaceregexp>

		<!-- MANIFEST.MF -->
		<replaceregexp>
			<regexp pattern="Bundle-Version: .*" />
			<substitution expression="Bundle-Version: ${version.osgi}" />
			<fileset id="path.manifest" dir="${WORKSPACE}">
				<include name="**/META-INF/MANIFEST.MF" />
				<exclude name="buildroot/**" />
				<exclude name="examples/org.eclipse.emf.examples.library*/**" />
			</fileset>
		</replaceregexp>

		<!-- feature.xml -->
		<replaceregexp>
			<regexp pattern="(\s\s+)version=&quot;.*&quot;" />
			<substitution expression="\1version=&quot;${version.osgi}&quot;" />
			<fileset id="path.feature" dir="${WORKSPACE}">
				<include name="**/feature.xml" />
				<exclude name="buildroot/**" />
			</fileset>
		</replaceregexp>

	</target>
	
	<target name="set-version-xtext" description="Sets the Xtext version constraints in MANIFEST.MF">
		<!-- Read the last entered values for defaults -->
		<property file="version.properties" />
		<input message="Please enter the new Xtext version:" addproperty="version.xtext" defaultvalue="${version_xtext}" />
		<!-- MANIFEST.MF -->
		<replaceregexp>
			<regexp pattern='org\.eclipse\.xtext;bundle-version=".*\"(.*)' />
			<substitution expression='org.eclipse.xtext;bundle-version="${version.xtext}"\1' />
			<fileset id="path.manifest" dir="${WORKSPACE}">
				<include name="**/META-INF/MANIFEST.MF" />
				<exclude name="**/target/**" />
			</fileset>
		</replaceregexp>
		<replaceregexp>
			<regexp pattern='org\.eclipse\.xtext\.(?!example)(.*);bundle-version=".*\"(.*)' />
			<substitution expression='org.eclipse.xtext.\1;bundle-version="${version.xtext}"\2' />
			<fileset id="path.manifest" dir="${WORKSPACE}">
				<include name="**/META-INF/MANIFEST.MF" />
				<exclude name="**/target/**" />
			</fileset>
		</replaceregexp>
	</target>
</project>

Back to the top