blob: d58896c9c586e5e8f6b1cf5434ae834629f9fc2c [file] [log] [blame]
<?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.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"/>
<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"/>
<ivy:resolve resolveId="copy.path" file="${basedir}/kernel-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}&#xa;"/>
<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="FELIX.CONFIGADMIN.VERSION" value="${org.apache.felix}"/>
<filter token="FELIX.EVENTADMIN.VERSION" value="${org.apache.felix.eventadmin}"/>
<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}"/>
</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="FELIX.CONFIGADMIN.VERSION" value="${org.apache.felix}"/>
<filter token="FELIX.EVENTADMIN.VERSION" value="${org.apache.felix.eventadmin}"/>
<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}"/>
</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>
</project>