Jump to: navigation, search

SetRequiredBundleVersionRanges

Revision as of 15:56, 28 August 2006 by Codeslave.ca.ibm.com (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

SetRequiredBundleVersionRanges is an Ant task used to automatically set RequiredBundle version range values in MANIFEST.MF files during EMF builds, rather than having to set them manually and update them manually.

Here's how it works:

This plugin is used as a jarred plugin during the EMF build, like this:

1. Eclipse Build is started from build.sh.
scriptsDir="/home/www-data/emf-build/scripts";
echo "Copy $scriptsDir/org.eclipse.emf.build.ant*.jar to $relengBaseBuilderDir/plugins/";
for f in `find $scriptsDir -name "org.eclipse.emf.build.ant*.jar"`; do cp $f $relengBaseBuilderDir/plugins/; done

echo Invoking Eclipse build

command="$vm -cp $relengBaseBuilderDir/startup.jar org.eclipse.core.launcher.Main"
command=$command" -application org.eclipse.ant.core.antRunner"
command=$command" -f $antScript $target" # for testing, add -verbose before -f to increase log verbosity (and also size!)
#command=$command" $bootclasspath" # removed: this is now specified in the ant task
command=$command" -DmapVersionTag=$mapVersionTag"
command=$command" -DbuildType=$buildType"
command=$command" $buildID"
command=$command" $buildTimestamp"
command=$command" $buildDir"
command=$command" $buildAlias"
command=$command" $downloadsDir"
command=$command" $rsyncPWFile $ftpUser $ftpPassword"
$baseDir/scripts/executeCommand.sh "$command"
2. PDE build looks in all available customTargets.xml files.
 	<emf.build.SetRequiredBundleVersionRanges verbose="true">
 	  	<manifestSet dir="${eclipse.plugins}">
 	  	  	<include name="org.eclipse.emf*/META-INF/MANIFEST.MF" />
 	  	  	<include name="org.eclipse.xsd*/META-INF/MANIFEST.MF" />
           <exclude name="*-feature/**" />
 	  	</manifestSet>
 		
 	  	<dependencySet dir="${eclipse.plugins}">
 	  	    <include name="*.jar" />
 	  	    <include name="*/META-INF/MANIFEST.MF" />
 	  	    <exclude name="org.eclipse.emf*/**" />
 	  	    <exclude name="org.eclipse.xsd*/**" />
 	  	</dependencySet>

 	  	<versionRangeRule requiredBundleRegex="org\.eclipse\.(emf|xsd)" />
 	  	<versionRangeRule lowerVersion="{current}.{current}.0" />
 	</emf.build.SetRequiredBundleVersionRanges>  	
3. emf.build.SetRequiredBundleVersionRanges task, as defined in the plugin.xml file, is then run to manipulate MANIFEST.MF files.