| <?xml version="1.0" encoding="UTF-8"?> |
| <project name="build-kernel" xmlns:ivy="antlib:org.apache.ivy.ant"> |
| |
| <path id="unit.test.bundles"> |
| <pathelement location="../org.eclipse.virgo.kernel.shutdown"/> |
| <pathelement location="../org.eclipse.virgo.kernel.authentication"/> |
| <pathelement location="../org.eclipse.virgo.kernel.core"/> |
| <pathelement location="../org.eclipse.virgo.kernel.artifact"/> |
| <pathelement location="../org.eclipse.virgo.kernel.services"/> |
| <pathelement location="../org.eclipse.virgo.kernel.osgi"/> |
| <pathelement location="../org.eclipse.virgo.kernel.deployer"/> |
| <pathelement location="../org.eclipse.virgo.kernel.userregionfactory"/> |
| <pathelement location="../org.eclipse.virgo.kernel.userregion"/> |
| <pathelement location="../org.eclipse.virgo.kernel.agent.dm"/> |
| <pathelement location="../org.eclipse.virgo.kernel.kerneldmfragment"/> |
| <pathelement location="../org.eclipse.virgo.kernel.dmfragment"/> |
| <pathelement location="../org.eclipse.virgo.kernel.deployer.dm"/> |
| <pathelement location="../org.eclipse.virgo.kernel.model"/> |
| <pathelement location="../org.eclipse.virgo.kernel.shell"/> |
| <pathelement location="../org.eclipse.virgo.kernel.osgicommand"/> |
| <pathelement location="../org.eclipse.virgo.kernel.stubs"/> |
| </path> |
| |
| <path id="bundles"> |
| <path refid="unit.test.bundles" /> |
| <pathelement location="../org.eclipse.virgo.kernel"/> |
| <pathelement location="../org.eclipse.virgo.kernel.test"/> |
| <pathelement location="../org.eclipse.virgo.kernel.deployer.testbundle"/> |
| <pathelement location="../org.eclipse.virgo.kernel.deployer.test"/> |
| </path> |
| |
| <property file="${basedir}/../build.properties"/> |
| <property file="${basedir}/../build.versions"/> |
| <import file="${basedir}/../virgo-build/multi-bundle/default.xml"/> |
| |
| <!--P2 publishing properties--> |
| <property name="publishing.dir" value="${basedir}/target/repository"/> |
| <property name="distro.res" value="${basedir}/distro_resources"/> |
| <property name="p2.repo.url" value="file:///${publishing.dir}"/> |
| <property name="product.file" value="${basedir}/org.eclipse.virgo.kernel.product"/> |
| <property name="lib.product.file" value="${basedir}/org.eclipse.virgo.kernel.lib.product"/> |
| <property name="lib.kernel.product.file" value="${basedir}/org.eclipse.virgo.kernel.lib.kernel.product"/> |
| <property name="repository.ext.product.file" value="${basedir}/org.eclipse.virgo.kernel.repository.ext.product"/> |
| |
| <target name="precommit" depends="clean, clean-integration, test, findbugs, package, smoke-test" |
| description="Performs a CI server-like build, should be run prior to performing a Git push"/> |
| |
| <target name="package" depends="ivy.init"> |
| <delete dir="${package.output.dir}" quiet="true"/> |
| <mkdir dir="${package.output.dir}"/> |
| |
| <ivy:resolve resolveId="copy.path" file="${basedir}/lib-ivy.xml" transitive="true"/> |
| <ivy:retrieve resolveId="copy.path" pattern="${package.output.dir}/lib/[artifact]-[revision].[ext]" conf="lib" type="jar"/> |
| |
| <ivy:resolve resolveId="copy.path" file="${basedir}/kernel-ivy.xml" transitive="true"/> |
| <ivy:retrieve resolveId="copy.path" pattern="${package.output.dir}/lib/kernel/[artifact]-[revision].[ext]" conf="lib-kernel" type="jar"/> |
| <!-- Workaround for the issue that exclude does not work properly for Equinox in kernel-ivy.xml --> |
| <delete file="${package.output.dir}/lib/kernel/org.eclipse.osgi-${org.eclipse.osgi}.jar"/> |
| |
| <ivy:resolve resolveId="copy.path" file="${basedir}/repository-ext-ivy.xml" transitive="true"/> |
| <ivy:retrieve resolveId="copy.path" pattern="${package.output.dir}/repository/ext/[artifact]-[revision].[ext]" conf="repository-ext" type="jar"/> |
| |
| <mkdir dir="${package.output.dir}/config"/> |
| <mkdir dir="${package.output.dir}/work"/> |
| <mkdir dir="${package.output.dir}/pickup"/> |
| |
| <echo file="${package.output.dir}/lib/.version" |
| message="virgo.kernel.version=${bundle.version}
"/> |
| |
| <copy todir="${package.output.dir}" failonerror="false"> |
| <fileset dir="${basedir}/resources"/> |
| </copy> |
| |
| <copy todir="${package.output.dir}/bin" failonerror="false"> |
| <fileset dir="${basedir}/bin"/> |
| </copy> |
| |
| <copy todir="${package.output.dir}/lib" failonerror="false"> |
| <fileset dir="${basedir}/lib"/> |
| <filterset> |
| <filter token="ASPECTJ.VERSION" value="${org.aspectj}"/> |
| <filter token="OSGI.SERVICES.VERSION" value="${org.eclipse.osgi.services}"/> |
| <filter token="EQUINOX.EVENT.VERSION" value="${org.eclipse.equinox.event}"/> |
| <filter token="EQUINOX.CONFIGADMIN.VERSION" value="${org.eclipse.equinox.cm}"/> |
| <filter token="EQUINOX.DS.VERSION" value="${org.eclipse.equinox.ds}"/> |
| <filter token="EQUINOX.UTIL.VERSION" value="${org.eclipse.equinox.util}"/> |
| <filter token="EQUINOX.REGION.VERSION" value="${org.eclipse.equinox.region}"/> |
| <filter token="KERNEL.VERSION" value="${bundle.version}"/> |
| <filter token="MEDIC.VERSION" value="${org.eclipse.virgo.medic}"/> |
| <filter token="REPOSITORY.VERSION" value="${org.eclipse.virgo.repository}"/> |
| <filter token="SLF4J.VERSION" value="${org.slf4j}"/> |
| <filter token="SPRING.DM.VERSION" value="${org.springframework.osgi}"/> |
| <filter token="SPRING.VERSION" value="${org.springframework}"/> |
| <filter token="UTIL.VERSION" value="${org.eclipse.virgo.util}"/> |
| <filter token="OSGI.EXTENSIONS.VERSION" value="${org.eclipse.virgo.osgi}"/> |
| <filter token="FELIX.GOGO.VERSION" value="${org.apache.felix.gogo}"/> |
| <filter token="MINA.CORE.VERSION" value="${com.springsource.org.apache.mina.core}"/> |
| <filter token="SSHD.CORE.VERSION" value="${com.springsource.org.apache.sshd.core}"/> |
| <filter token="EQUINOX.CONSOLE.VERSION" value="${org.eclipse.equinox.console.supportability}"/> |
| </filterset> |
| </copy> |
| |
| <copy todir="${package.output.dir}/config" failonerror="false"> |
| <fileset dir="${basedir}/config" excludes="keystore"/> |
| <filterset> |
| <filter token="ASPECTJ.VERSION" value="${org.aspectj}"/> |
| <filter token="OSGI.SERVICES.VERSION" value="${org.eclipse.osgi.services}"/> |
| <filter token="EQUINOX.EVENT.VERSION" value="${org.eclipse.equinox.event}"/> |
| <filter token="EQUINOX.CONFIGADMIN.VERSION" value="${org.eclipse.equinox.cm}"/> |
| <filter token="EQUINOX.DS.VERSION" value="${org.eclipse.equinox.ds}"/> |
| <filter token="EQUINOX.UTIL.VERSION" value="${org.eclipse.equinox.util}"/> |
| <filter token="KERNEL.VERSION" value="${bundle.version}"/> |
| <filter token="MEDIC.VERSION" value="${org.eclipse.virgo.medic}"/> |
| <filter token="REPOSITORY.VERSION" value="${org.eclipse.virgo.repository}"/> |
| <filter token="SLF4J.VERSION" value="${org.slf4j}"/> |
| <filter token="SPRING.DM.VERSION" value="${org.springframework.osgi}"/> |
| <filter token="SPRING.VERSION" value="${org.springframework}"/> |
| <filter token="UTIL.VERSION" value="${org.eclipse.virgo.util}"/> |
| <filter token="FELIX.GOGO.VERSION" value="${org.apache.felix.gogo}"/> |
| <filter token="MINA.CORE.VERSION" value="${com.springsource.org.apache.mina.core}"/> |
| <filter token="SSHD.CORE.VERSION" value="${com.springsource.org.apache.sshd.core}"/> |
| <filter token="EQUINOX.CONSOLE.VERSION" value="${org.eclipse.equinox.console.supportability}"/> |
| </filterset> |
| </copy> |
| |
| <copy todir="${package.output.dir}/repository/ext" failonerror="false"> |
| <fileset dir="${basedir}/repository/ext"/> |
| </copy> |
| |
| <copy todir="${package.output.dir}/repository/ext" failonerror="false"> |
| <fileset dir="${package.output.dir}/lib/kernel"> |
| <include name="org.eclipse.virgo.kernel.agent.dm-*.jar"/> |
| </fileset> |
| </copy> |
| |
| <move todir="${package.output.dir}/repository/ext" failonerror="false"> |
| <fileset dir="${package.output.dir}/lib/kernel"> |
| <include name="org.eclipse.virgo.kernel.dmfragment-*.jar"/> |
| <include name="org.eclipse.virgo.kernel.deployer.dm-*.jar"/> |
| </fileset> |
| </move> |
| |
| <mkdir dir="${package.output.dir}/repository/usr"/> |
| |
| <copy file="${basedir}/config/keystore" todir="${package.output.dir}/config" failonerror="false"/> |
| |
| <chmod perm="600"> |
| <fileset dir="${package.output.dir}/config"> |
| <include name="org.eclipse.virgo.kernel.jmxremote.access.properties"/> |
| </fileset> |
| </chmod> |
| |
| <chmod perm="755"> |
| <fileset dir="${package.output.dir}/bin"> |
| <include name="*.sh"/> |
| </fileset> |
| </chmod> |
| |
| <mkdir dir="${artifacts.dir}"/> |
| <zip destfile="${package.output.file}"> |
| <zipfileset dir="${package.dir}" includes="${package.basename}/bin/*.sh" filemode="755"/> |
| <zipfileset dir="${package.dir}" includes="${package.basename}/config/org.eclipse.virgo.kernel.jmxremote.access.properties" filemode="600"/> |
| <zipfileset dir="${package.dir}"> |
| <exclude name="${package.basename}/bin/*.sh"/> |
| <exclude name="${package.basename}/config/org.eclipse.virgo.kernel.jmxremote.access.properties"/> |
| </zipfileset> |
| </zip> |
| </target> |
| |
| <target name="smoke-test" description="Runs a smoke test on the kernel packaged build"> |
| <path id="smoke.test.bundles"> |
| <pathelement location="${basedir}/../org.eclipse.virgo.kernel.smoketest" /> |
| </path> |
| <antcall target="test.pre"/> |
| <all-bundles target="test-package" buildpathRef="smoke.test.bundles"> |
| <property name="package.output.file" value="${package.output.file}"/> |
| <property name="package.basename" value="${package.basename}"/> |
| </all-bundles> |
| <antcall target="test.post"/> |
| </target> |
| |
| <target name="package.resources" depends="package" |
| description="Creates a special bundle containing Virgo entities that are not bundles"> |
| <property name="meta.inf" value="${distro.res}/META-INF"/> |
| <property name="content" value="${distro.res}/root_content"/> |
| <property name="resources.jar" value="${package.output.dir}/lib/org.eclipse.virgo.kernel.resources.jar"/> |
| <zip destfile="${resources.jar}"> |
| <zipfileset dir="${distro.res}"/> |
| <zipfileset dir="${package.dir}/${package.basename}" |
| includes="bin/*.sh" filemode="755"/> |
| <zipfileset dir="${package.dir}/${package.basename}" |
| includes="config/org.eclipse.virgo.kernel.jmxremote.access.properties" filemode="600"/> |
| <zipfileset dir="${package.dir}/${package.basename}"> |
| <exclude name="bin/*.sh"/> |
| <exclude name="config/org.eclipse.virgo.kernel.jmxremote.access.properties"/> |
| <exclude name="**/*.jar"/> |
| </zipfileset> |
| </zip> |
| </target> |
| |
| <target name="p2.publish" depends="package.resources, p2.extract-publisher" |
| description="Publishes bundles, features and product"> |
| <java jar="${p2.launcher.jar}" fork="true" taskname="p2bundles" failonerror="true" maxmemory="256m"> |
| <arg line="-application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher"/> |
| <arg line="-metadataRepository ${p2.repo.url}"/> |
| <arg line="-artifactRepository ${p2.repo.url}"/> |
| <arg line="-bundles ${package.output.dir}/lib,${package.output.dir}/repository/ext"/> |
| <arg line="-publishArtifacts"/> |
| <arg line="-configs all"/> |
| </java> |
| |
| <sshexec host="build.eclipse.org" |
| username="${eclipse.buildId}" |
| keyfile="${key.file}" |
| passphrase="${passphrase}" |
| command="mkdir -pv /opt/public/rt/virgo/update-site/${release.type}/${build.stamp}"/> |
| |
| <scp todir="${eclipse.buildId}@build.eclipse.org:/opt/public/rt/virgo/update-site/${release.type}/${build.stamp}/" |
| keyfile="${key.file}" |
| passphrase="${passphrase}"> |
| <fileset dir="${publishing.dir}"/> |
| </scp> |
| |
| |
| |
| <!-- <java jar="${p2.launcher.jar}" fork="true" taskname="p2product" failonerror="true" maxmemory="256m"> |
| <arg line="-application org.eclipse.equinox.p2.publisher.ProductPublisher"/> |
| <arg line="-metadataRepository ${p2.repo.url}"/> |
| <arg line="-artifactRepository ${p2.repo.url}"/> |
| <arg line="-productFile ${product.file}"/> |
| <arg line="-append"/> |
| <arg line="-publishArtifacts"/> |
| <arg line="-flavor tooling"/> |
| <arg line="-configs all"/> |
| </java> |
| <java jar="${p2.launcher.jar}" fork="true" taskname="p2product" failonerror="true" maxmemory="256m"> |
| <arg line="-application org.eclipse.equinox.p2.publisher.ProductPublisher"/> |
| <arg line="-metadataRepository ${p2.repo.url}"/> |
| <arg line="-artifactRepository ${p2.repo.url}"/> |
| <arg line="-productFile ${lib.product.file}"/> |
| <arg line="-append"/> |
| <arg line="-publishArtifacts"/> |
| <arg line="-flavor tooling"/> |
| <arg line="-configs all"/> |
| </java> |
| <java jar="${p2.launcher.jar}" fork="true" taskname="p2product" failonerror="true" maxmemory="256m"> |
| <arg line="-application org.eclipse.equinox.p2.publisher.ProductPublisher"/> |
| <arg line="-metadataRepository ${p2.repo.url}"/> |
| <arg line="-artifactRepository ${p2.repo.url}"/> |
| <arg line="-productFile ${lib.kernel.product.file}"/> |
| <arg line="-append"/> |
| <arg line="-publishArtifacts"/> |
| <arg line="-flavor tooling"/> |
| <arg line="-configs all"/> |
| </java> |
| <java jar="${p2.launcher.jar}" fork="true" taskname="p2product" failonerror="true" maxmemory="256m"> |
| <arg line="-application org.eclipse.equinox.p2.publisher.ProductPublisher"/> |
| <arg line="-metadataRepository ${p2.repo.url}"/> |
| <arg line="-artifactRepository ${p2.repo.url}"/> |
| <arg line="-productFile ${repository.ext.product.file}"/> |
| <arg line="-append"/> |
| <arg line="-publishArtifacts"/> |
| <arg line="-flavor tooling"/> |
| <arg line="-configs all"/> |
| </java> --> |
| <delete dir="${p2.publishing.dir}" excludes="p2agent.zip" includeemptydirs="true" quiet="true"/> |
| </target> |
| |
| </project> |