<?xml version="1.0" encoding="UTF-8"?>
<!--
 ******************************************************************************
 * Copyright (c) 2008, 2010 VMware Inc.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *   VMware Inc. - initial contribution
 ******************************************************************************
-->
<project name="artifact-common" xmlns:ivy="antlib:org.apache.ivy.ant"
		xmlns:bundlor="antlib:com.springsource.bundlor.ant">

<!-- Main targets -->
	<target name="javadoc-all" depends="ivy.init, resolve.compile, src.init" if="src.exists"
			description="Creates javadoc documentation for all classes.">
		<java-doc input.dir="${main.java.dir}" output.dir="${javadoc-all.output.dir}" classpath.id="compile.classpath"
				access="private"/>
	</target>

	<target name="javadoc-api" depends="ivy.init, resolve.compile, src.init" if="src.exists"
			description="Creates javadoc documentation for all classes.">
		<java-doc input.dir="${main.java.dir}" output.dir="${javadoc-api.output.dir}" classpath.id="compile.classpath"
				access="protected" exclude.package.names="${javadoc.exclude.package.names}"/>
	</target>

	<target name="jar" depends="ivy.init, resolve.compile, compile.init, jar.init"
			description="Creates a JAR file containing the output of a compilation of the source tree.">
		<delete quiet="true" file="${ivy.output.file}"/>
		<mkdir dir="${ivy.output.dir}"/>
		<delete quiet="true" file="${jar.output.file}"/>
		<mkdir dir="${jar.output.dir}"/>
		<delete quiet="true" file="${source-jar.output.file}"/>
		<mkdir dir="${source-jar.output.dir}"/>

		<compile classpath.id="compile.classpath" input.dir="${main.java.dir}" output.dir="${main.output.dir}"
				resources.dir="${main.resources.dir}"/>
		<ivy:retrieve resolveId="additional.classpath" conf="additional" type="jar" transitive="false"
				pattern="${main.output.dir}/[artifact]-[revision].[ext]" log="download-only"/>
		<antcall target="bundlor"/>
		<jar destfile="${jar.output.file}" basedir="${main.output.dir}" index="true" filesetmanifest="merge">
			<manifest>
				<attribute name="Bundle-ManifestVersion" value="2"/>
				<attribute name="Bundle-Version" value="${bundle.version}"/>
				<attribute name="Bundle-Creator" value="${user.name}"/>
				<attribute name="Implementation-Title" value="${implementation.title}"/>
				<attribute name="Implementation-Version" value="${implementation.version}"/>
			</manifest>
		</jar>
		<jar destfile="${source-jar.output.file}" basedir="${main.java.dir}" index="true"/>
		<ivy:publish resolver="integration" pubdate="${timestamp}" status="${release.type}">
			<artifacts pattern="${ivy.output.dir}/[artifact].[ext]"/>
			<artifacts pattern="${jar.output.dir}/[artifact].[ext]"/>
			<artifacts pattern="${source-jar.output.dir}/[artifact].[ext]"/>
		</ivy:publish>
	</target>

<!-- Other targets -->
	<propertyset id="bundlor.properties"/>

	<target name="compile.init" depends="ivy.init"/>

	<target name="jar.init">
		<fail message="The 'integration.repo.dir' property must be set on this project.">
			<condition>
				<not>
					<isset property="integration.repo.dir"/>
				</not>
			</condition>
		</fail>
		<fail message="The 'ivy.cache.dir' property must be set on this project.">
			<condition>
				<not>
					<isset property="ivy.cache.dir"/>
				</not>
			</condition>
		</fail>
		<fail message="The 'version' property must be set on this project.">
			<condition>
				<not>
					<isset property="version"/>
				</not>
			</condition>
		</fail>
	</target>

	<target name="bundlor" depends="bundlor.init" unless="disable.bundlor">
		<bundlor:bundlor inputPath="${main.output.dir}" outputPath="${main.output.dir}"
				bundleVersion="${bundle.version}" manifestTemplatePath="${manifest.template.file}"
				failOnWarnings="${fail.on.warnings}">
			<propertyset refid="bundlor.properties"/>
			<propertyset>
				<propertyref builtin="all"/>
			</propertyset>
		</bundlor:bundlor>
	</target>

	<target name="bundlor.init" depends="ivy.init" unless="disable.bundlor">
		<ivy:cachepath resolveId="bundlor.classpath" pathid="bundlor.classpath" organisation="com.springsource.bundlor"
				module="com.springsource.bundlor.ant" revision="${bundlor.ant.version}" conf="ant" inline="true"
				type="jar" log="download-only"/>
		<taskdef resource="com/springsource/bundlor/ant/antlib.xml" uri="antlib:com.springsource.bundlor.ant"
				classpathref="bundlor.classpath"/>
	</target>

	<target name="javadoc.prep" depends="src.init" if="src.exists">
		<mkdir dir="${javadoc.prep.dir}"/>
		<copy todir="${javadoc.prep.dir}">
			<fileset dir="${main.java.dir}" erroronmissingdir="false"/>
		</copy>
	</target>

</project>
