<project name="TargetPlatformProject" default="installAll">
<!--
The following properties are inherited from parent project:
rcpTargetPath - the directory to where the target will be installed
toolsPath - the directory where tools like p2 director is installed
we assume ${toolsPath}/eclipse/eclipse is an executable
Currently, we install following features:
Features from remote website
http://download.eclipse.org/releases/juno/
- birt (emf)
- cdt
- rse
http://download.eclipse.org/tools/orbit/downloads/drops/R20130118183705/repository
- antlr
- httpcomponents.httpclient
- httpcomponents.httpcore
- httpcomponents.httpcore.nio
- org.codehaus.jackson.core
- org.codehaus.jackson.jaxrs
- org.codehaus.jackson.mapper
- com.google.gson,com.google.guava
http://download.eclipse.org/technology/dltk/updates-dev/4.0-nightly
- dltk
http://download.eclipse.org/egit/updates"
- egit
http://download.eclipse.org/r4e/updates/
- r4e
http://download.eclipse.org/mylyn/releases/latest
- mylyn
To run:
$> ant installRcpTarget -DrcpTargetPath=/tmp/rcp_target
-->
<!-- following properties need to be customized for each release -->
<property name="staging.p2.site" value="http://download.eclipse.org/releases/kepler/"/>
<property name="orbit.p2.site" value="http://download.eclipse.org/tools/orbit/downloads/drops/R20130118183705/repository"/>
<property name="dltk.p2.site" value="http://download.eclipse.org/technology/dltk/updates-dev/4.0-nightly"/>
<property name="egit.p2.site" value="http://download.eclipse.org/egit/updates"/>
<property name="r4e.p2.site" value="http://download.eclipse.org/r4e/updates/"/>
<!-- property name="mylyn.p2.site" value="http://download.eclipse.org/mylyn/releases/latest"/ -->
<property name="mylyn.p2.site" value="http://download.eclipse.org/mylyn/snapshots/nightly"/>
<property name="php.p2.site" value="http://download.eclipse.org/tools/pdt/updates/release"/>
<property name="wtp.p2.site" value="http://download.eclipse.org/webtools/repository/juno/"/>
<property name="vjet.p2.site" value="http://download.eclipse.org/vjet/updates-0.9"/>
<property name="emmet.p2.site" value="http://emmet.io/eclipse/updates/"/>
<property name="extra.dir" value="${toolsPath}/extra"/>
<property name="delta.dir" value="${extra.dir}/delta"/>
<!-- property name="delta.name" value="eclipse-3.8.2-delta-pack.zip"/ -->
<!--property name="delta.url" value="http://download.eclipse.org/eclipse/downloads/drops/R-3.8.2-201301310800/${delta.name}"/-->
<property name="delta.name" value="eclipse-4.3M6-delta-pack.zip"/>
<property name="delta.url" value="http://download.eclipse.org/eclipse/downloads/drops4/S-4.3M6-201303141330/${delta.name}"/>
<property name="test.dir" value="${extra.dir}/test"/>
<!--property name="test.name" value="eclipse-test-framework-3.8.2.zip"/>
<property name="test.url" value="http://download.eclipse.org/eclipse/downloads/drops/R-3.8.2-201301310800/${test.name}"/-->
<property name="test.name" value="eclipse-test-framework-4.3M6.zip"/>
<property name="test.url" value="http://download.eclipse.org/eclipse/downloads/drops4/S-4.3M6-201303141330/${test.name}"/>
<property name="svn.plugin.site" value="http://download.eclipse.org/technology/subversive/1.0/update-site/" />
<property name="svn.connector.site" value="http://community.polarion.com/projects/subversive/download/eclipse/3.0/update-site" />
<target name="installAll" description="Install SDK product, deltapack, test and all the features required for build and test RCP">
<if>
<available file="${rcpTargetPath}/features" />
<then>
<find dir="${rcpTargetPath}/features" pattern="**/org.eclipse.sdk_*/feature.xml" property="sdk.feature"></find>
<if>
<or>
<not><isset property="sdk.feature"/></not>
<equals arg1="${sdk.feature}" arg2=""/>
</or>
<then>
<mkdir dir="${rcpTargetPath}/tmp"/>
<getAndUnzipSDK toFolder="${rcpTargetPath}/tmp"/>
<move todir="${rcpTargetPath}">
<fileset dir="${rcpTargetPath}/tmp/eclipse" />
</move>
<chmod perm="ugo+rwx" file="${rcpTargetPath}/eclipse" />
<delete dir="${rcpTargetPath}/tmp" />
</then>
<else>
<echo message="${sdk.feature} already installed." />
</else>
</if>
</then>
<else>
<mkdir dir="${rcpTargetPath}/tmp"/>
<getAndUnzipSDK toFolder="${rcpTargetPath}/tmp"/>
<move todir="${rcpTargetPath}">
<fileset dir="${rcpTargetPath}/tmp/eclipse" />
</move>
<chmod perm="ugo+rwx" file="${rcpTargetPath}/eclipse" />
<delete dir="${rcpTargetPath}/tmp" />
</else>
</if>
<antcall target="installDelta" />
<antcall target="installTest" />
<antcall target="installOrbit" />
<antcall target="installFeaturesRemote" />
<antcall target="installMylyn" />
<antcall target="installEGit" />
<antcall target="installDltk" />
<!-- antcall target="installR4E" / -->
<antcall target="installSvn" />
<!-- antcall target="installPhp" /-->
<!-- antcall target="installWtp" /-->
<!-- antcall target="installVjet" /-->
<!-- antcall target="installEmmet" /-->
</target>
<target name="checkExtra">
<available file="${extra.dir}" property="extra.exists" />
</target>
<target name="installDelta" description="Copy Deltapack to SDK">
<echo message="Downloading delta pack from ${delta.url} to ${delta.dir}, then copy ${delta.dir} to ${rcpTargetPath}"/>
<mkdir dir="${extra.dir}/delta"/>
<find dir="${rcpTargetPath}/features" pattern="**/org.eclipse.equinox.executable_*/feature.xml" property="delta.feature"></find>
<if>
<equals arg1="${delta.feature}" arg2=""/>
<then>
<get src="${delta.url}" dest="${extra.dir}" />
<unzip src="${extra.dir}/${delta.name}" dest="${delta.dir}" />
<copy todir="${rcpTargetPath}" overwrite="true">
<fileset dir="${delta.dir}/eclipse">
<include name="**/*"/>
</fileset>
</copy>
</then>
<else>
<echo message="${delta.feature} already installed." />
</else>
</if>
</target>
<target name="installTest" description="Install the PDE test feature to SDK">
<echo message="Downloading test framework to ${test.dir}, then use SDK embeded director to install PDE test feature to ${rcpTargetPath}" />
<find dir="${rcpTargetPath}/features" pattern="**/org.eclipse.test_*/feature.xml" property="test.feature"></find>
<if>
<equals arg1="${test.feature}" arg2=""/>
<then>
<get src="${test.url}" dest="${extra.dir}" />
<unzip src="${extra.dir}/${test.name}" dest="${test.dir}" />
<echo/>
<echo message="site=file:${test.dir}" />
<echo message="dir=${rcpTargetPath}" />
<launchEclipse app="director" eclipse.dir="${rcpTargetPath}">
<args>
<jvmarg value="-Declipse.p2.mirrors=false" />
<arg line="-application org.eclipse.equinox.p2.director" />
<arg line="-metadataRepository file:${test.dir}" />
<arg line="-artifactRepository file:${test.dir}" />
<arg line="-destination file:${rcpTargetPath}" />
<arg line="-profileProperties org.eclipse.update.install.features=true" />
<arg line="-installIU org.eclipse.test.feature.group" />
</args>
</launchEclipse>
</then>
<else>
<echo message="${test.feature} already installed." />
</else>
</if>
</target>
<target name="installFeaturesRemote" description="Install features(remote) for build and test to SDK">
<echo message="Using SDK embeded director to install birt, cdt, rse features" />
<echo/>
<echo message="site=${staging.p2.site}" />
<launchEclipse app="director" eclipse.dir="${rcpTargetPath}">
<args>
<jvmarg value="-Declipse.p2.mirrors=false" />
<arg line="-application org.eclipse.equinox.p2.director" />
<arg line="-metadataRepository ${staging.p2.site}" />
<arg line="-artifactRepository ${staging.p2.site}" />
<arg line="-destination file:${rcpTargetPath}" />
<arg line="-profileProperties org.eclipse.update.install.features=true" />
<arg line="-installIU
org.eclipse.birt.feature.group,org.eclipse.birt.source.feature.group,org.eclipse.cdt.sdk.feature.group,org.eclipse.rse.feature.group
" />
</args>
</launchEclipse>
</target>
<target name="installOrbit" description="Install antlr (remote) for build and test to SDK">
<echo message="Using SDK embeded director to install antlr features" />
<echo/>
<echo message="site=${orbit.p2.site}" />
<launchEclipse app="director" eclipse.dir="${rcpTargetPath}">
<args>
<jvmarg value="-Declipse.p2.mirrors=false" />
<arg line="-application org.eclipse.equinox.p2.director" />
<arg line="-metadataRepository ${orbit.p2.site}" />
<arg line="-artifactRepository ${orbit.p2.site}" />
<arg line="-destination file:${rcpTargetPath}" />
<arg line="-profileProperties org.eclipse.update.install.features=true" />
<arg line="-installIU
org.antlr.runtime/3.0.0.v200803061811,org.antlr.runtime.source/3.0.0.v200803061811,org.apache.httpcomponents.httpclient,org.apache.httpcomponents.httpcore,org.apache.httpcomponents.httpcore.nio,org.codehaus.jackson.core,org.codehaus.jackson.jaxrs,org.codehaus.jackson.mapper,com.google.gson,com.google.guava,org.apache.commons.collections
" />
</args>
</launchEclipse>
</target>
<target name="installDltk" description="Install dltk (remote) for build and test to SDK">
<echo message="Using SDK embeded director to install dltk features" />
<echo/>
<echo message="site=${dltk.p2.site}" />
<launchEclipse app="director" eclipse.dir="${rcpTargetPath}">
<args>
<jvmarg value="-Declipse.p2.mirrors=false" />
<arg line="-application org.eclipse.equinox.p2.director" />
<arg line="-metadataRepository ${dltk.p2.site}" />
<arg line="-artifactRepository ${dltk.p2.site}" />
<arg line="-destination file:${rcpTargetPath}" />
<arg line="-profileProperties org.eclipse.update.install.features=true" />
<arg line="-installIU
org.eclipse.dltk.core.feature.group,org.eclipse.dltk.core.sdk.feature.group,org.eclipse.dltk.python.feature.group,org.eclipse.dltk.python.sdk.feature.group,org.eclipse.dltk.rse.feature.group,org.eclipse.dltk.rse.sdk.feature.group,org.eclipse.dltk.mylyn.feature.group,org.eclipse.dltk.ruby.sdk.feature.group,org.eclipse.dltk.ruby.feature.group
" />
</args>
</launchEclipse>
</target>
<target name="installEGit" description="Install egit (remote) for build and test to SDK">
<echo message="Using SDK embeded director to install egit features" />
<echo/>
<echo message="site=${egit.p2.site}" />
<launchEclipse app="director" eclipse.dir="${rcpTargetPath}">
<args>
<jvmarg value="-Declipse.p2.mirrors=false" />
<arg line="-application org.eclipse.equinox.p2.director" />
<arg line="-metadataRepository ${egit.p2.site}" />
<arg line="-artifactRepository ${egit.p2.site}" />
<arg line="-destination file:${rcpTargetPath}" />
<arg line="-profileProperties org.eclipse.update.install.features=true" />
<arg line="-installIU
org.eclipse.egit.feature.group,org.eclipse.egit.source.feature.group,org.eclipse.egit.import.feature.group,org.eclipse.jgit.source.feature.group,org.eclipse.jgit.pgm.feature.group,org.eclipse.jgit.pgm.source.feature.group,org.eclipse.egit.mylyn.feature.group
" />
</args>
</launchEclipse>
</target>
<target name="installMylyn" description="Install mylyn for Eclipse (remote) for build and test to SDK">
<echo message="Using SDK embeded director to install mylyne features" />
<echo/>
<echo message="site=${mylyn.p2.site}" />
<launchEclipse app="director" eclipse.dir="${rcpTargetPath}">
<args>
<jvmarg value="-Declipse.p2.mirrors=false" />
<arg line="-application org.eclipse.equinox.p2.director" />
<arg line="-metadataRepository ${mylyn.p2.site},${egit.p2.site}" />
<arg line="-artifactRepository ${mylyn.p2.site},${egit.p2.site}" />
<arg line="-destination file:${rcpTargetPath}" />
<arg line="-profileProperties org.eclipse.update.install.features=true" />
<arg line="-installIU
org.eclipse.mylyn.sdk_feature.feature.group,org.eclipse.mylyn.context.sdk.feature.group,org.eclipse.mylyn.versions.sdk.feature.group,org.eclipse.mylyn.builds.sdk.feature.group,org.eclipse.mylyn.commons.sdk.feature.group,org.eclipse.mylyn.wikitext.sdk.feature.group,org.eclipse.mylyn.docs.sdk.feature.group,org.eclipse.mylyn.docs.epub.sdk.feature.group,org.eclipse.mylyn.test_feature.feature.group
" />
</args>
</launchEclipse>
</target>
<target name="installR4E" description="Install review for Eclipse (remote) for build and test to SDK">
<echo message="Using SDK embeded director to install r4e features" />
<echo/>
<echo message="site=${r4e.p2.site}" />
<launchEclipse app="director" eclipse.dir="${rcpTargetPath}">
<args>
<jvmarg value="-Declipse.p2.mirrors=false" />
<arg line="-application org.eclipse.equinox.p2.director" />
<arg line="-metadataRepository ${r4e.p2.site}" />
<arg line="-artifactRepository ${r4e.p2.site}" />
<arg line="-destination file:${rcpTargetPath}" />
<arg line="-profileProperties org.eclipse.update.install.features=true" />
<arg line="-installIU
org.eclipse.mylyn.reviews.r4e.sdk.feature.feature.group
" />
</args>
</launchEclipse>
</target>
<target name="installSvn" description="Install SVN plugin (Eclipse) and connector (Polarion)">
<echo message="Using SDK embeded director to install SVN features" />
<echo/>
<echo message="site=${svn.plugin.site},${svn.connector.site}" />
<echo message="rcpTargetPath=${rcpTargetPath}" />
<launchEclipse app="director" eclipse.dir="${rcpTargetPath}">
<args>
<jvmarg value="-Declipse.p2.mirrors=false" />
<!--jvmarg value="-Declipse.p2.data.area=file:${rcpTargetPath}/p2" /-->
<arg line="-application org.eclipse.equinox.p2.director" />
<arg line="-metadataRepository ${svn.plugin.site},${svn.connector.site}" />
<arg line="-artifactRepository ${svn.plugin.site},${svn.connector.site}" />
<arg line="-destination file:${rcpTargetPath}" />
<arg line="-profileProperties org.eclipse.update.install.features=true" />
<arg line="-installIU
org.eclipse.team.svn.feature.group,org.eclipse.team.svn.source.feature.group,org.polarion.eclipse.team.svn.connector.feature.group,org.polarion.eclipse.team.svn.connector.source.feature.group,org.polarion.eclipse.team.svn.connector.svnkit16.feature.group,org.polarion.eclipse.team.svn.connector.svnkit17.feature.group
" />
</args>
</launchEclipse>
</target>
<target name="installPhp" description="Install php for Eclipse (remote) for build and test to SDK">
<echo message="Using SDK embeded director to install php features" />
<echo/>
<echo message="site=${php.p2.site}" />
<launchEclipse app="director" eclipse.dir="${rcpTargetPath}">
<args>
<jvmarg value="-Declipse.p2.mirrors=false" />
<arg line="-application org.eclipse.equinox.p2.director" />
<arg line="-metadataRepository ${r4e.p2.site}" />
<arg line="-artifactRepository ${r4e.p2.site}" />
<arg line="-destination file:${rcpTargetPath}" />
<arg line="-profileProperties org.eclipse.update.install.features=true" />
<arg line="-installIU
org.eclipse.php.feature.group,org.eclipse.php.test.feature.group,org.eclipse.mylyn.feature.group,org.eclipse.php.source.feature.group
" />
</args>
</launchEclipse>
</target>
<target name="installWtp" description="Install WTP for Eclipse (remote) for build and test to SDK">
<echo message="Using SDK embeded director to install wtp features" />
<echo/>
<echo message="site=${wtp.p2.site}" />
<launchEclipse app="director" eclipse.dir="${rcpTargetPath}">
<args>
<jvmarg value="-Declipse.p2.mirrors=false" />
<arg line="-application org.eclipse.equinox.p2.director" />
<arg line="-metadataRepository ${wtp.p2.site}" />
<arg line="-artifactRepository ${wtp.p2.site}" />
<arg line="-destination file:${rcpTargetPath}" />
<arg line="-profileProperties org.eclipse.update.install.features=true" />
<arg line="-installIU
org.eclipse.wst.jsdt_sdk.feature.feature.group
" />
</args>
</launchEclipse>
</target>
<target name="installVjet" description="Install Vjet for Eclipse (remote) for build and test to SDK">
<echo message="Using SDK embeded director to install vjet features" />
<echo/>
<echo message="site=${vjet.p2.site}" />
<launchEclipse app="director" eclipse.dir="${rcpTargetPath}">
<args>
<jvmarg value="-Declipse.p2.mirrors=false" />
<arg line="-application org.eclipse.equinox.p2.director" />
<arg line="-metadataRepository ${wtp.p2.site}" />
<arg line="-artifactRepository ${wtp.p2.site}" />
<arg line="-destination file:${rcpTargetPath}" />
<arg line="-profileProperties org.eclipse.update.install.features=true" />
<arg line="-installIU
org.eclipse.vjet.js.ide.feature.group,org.eclipse.vjet.codegen.feature.group,org.eclipse.vjet.vsf.domkit.feature.group
" />
</args>
</launchEclipse>
</target>
<target name="installEmmet" description="Install Emmet for Eclipse (remote) for build and test to SDK">
<echo message="Using SDK embeded director to install Emmet features" />
<echo/>
<echo message="site=${emmet.p2.site}" />
<launchEclipse app="director" eclipse.dir="${rcpTargetPath}">
<args>
<jvmarg value="-Declipse.p2.mirrors=false" />
<arg line="-application org.eclipse.equinox.p2.director" />
<arg line="-metadataRepository ${wtp.p2.site}" />
<arg line="-artifactRepository ${wtp.p2.site}" />
<arg line="-destination file:${rcpTargetPath}" />
<arg line="-profileProperties org.eclipse.update.install.features=true" />
<arg line="-installIU
io.emmet.eclipse.feature.group
" />
</args>
</launchEclipse>
</target>
</project>
<!-- -metadataRepository
C:\gef.repo,C:\eclipse\p2\org.eclipse.equinox.p2.engine/profileRegistry/SDKProfile.profile -->
<!--
java -jar plugins/org.eclipse.equinox.launcher_*.jar -application org.eclipse.equinox.p2.director -metadataRepository file:/tmp/abc_feature -artifactRepository file:/tmp/abc_feature -installIU abc.rcp.feature.feature.group -destination /tmp/a -profile AbcProfile -vmArgs -Declipse.p2.data.area=/tmp/a/p2
-->