<project 
		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" 
		xmlns="http://maven.apache.org/POM/4.0.0" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
		
	<modelVersion>4.0.0</modelVersion> 
	<parent>
		<groupId>org.eclipse.bpel</groupId>
		<artifactId>org.eclipse.bpel.parent.pom</artifactId>
		<version>0.0.1-SNAPSHOT</version>
		<relativePath>../parent/pom.xml</relativePath>
	</parent>
	
	<!-- 
		The Maven version is also used as a directory name.
		Please, update it every time the BPEL Designer version changes.
	 -->
	<groupId>org.eclipse.bpel</groupId>
	<artifactId>site</artifactId> 
	<name>bpel.site</name>
	<version>1.0.3</version>
	<packaging>eclipse-repository</packaging>
	
	<profiles>
		<profile>
			<id>eclipse-build</id>
			<activation>
				<property>
					<name>build.at.eclipse.org</name>
					<value>true</value>
				</property>
			</activation>
			
			<properties>
				<staging.directory>/home/data/httpd/download-staging.priv/soa/bpel</staging.directory>
				<publish.directory>/shared/soa/bpel/${project.version}/${platform.name}</publish.directory>
				<update.site.directory>${publish.directory}/update-site</update.site.directory>
				<tycho-version>0.16.0</tycho-version>
				<tycho-extras-version>${tycho-version}</tycho-extras-version>
			</properties>
			
			<build>
				<plugins>
				
					<!-- Pack and sign the update site -->
					<plugin>
						<groupId>org.eclipse.tycho.extras</groupId>
						<artifactId>tycho-pack200a-plugin</artifactId>
						<version>${tycho-extras-version}</version>
						<executions>
							<execution>
								<id>pack200-normalize</id>
								<goals>
									<goal>normalize</goal>
								</goals>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<groupId>org.eclipse.cbi.maven.plugins</groupId>
						<artifactId>eclipse-jarsigner-plugin</artifactId>
						<version>1.0.5</version>
								
						<executions>
							<execution>
								<id>sign</id>
								<configuration>
									<inputFile>${project.build.directory}/site.zip</inputFile>
									<signerInputDirectory>${staging.directory}</signerInputDirectory>
									<maxZipChecks>50</maxZipChecks>
								</configuration>
								<phase>package</phase>
								<goals>
									<goal>sign</goal>
								</goals>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<groupId>org.eclipse.tycho.extras</groupId>
						<artifactId>tycho-pack200b-plugin</artifactId>
						<version>${tycho-extras-version}</version>
						<executions>
							<execution>
								<id>pack200-pack</id>
								<goals>
									<goal>pack</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				
					<!-- Publish the update site -->
					<plugin>
						<artifactId>maven-antrun-plugin</artifactId>
						<version>1.6</version>
						<executions>
							<execution>
								<id>publish-update-site</id>
								<phase>install</phase>
								
								<configuration>
									<target>
									
										<!-- Create directories -->
										<mkdir dir="${publish.directory}" />
										<mkdir dir="${update.site.directory}" />
										
										<!-- Prepare the publication -->
										<mkdir dir="${update.site.directory}" />								
										<delete includeemptydirs="true">
											<fileset dir="${update.site.directory}">
												<include name="**/*" />
											</fileset>
										</delete>
																				
										<!-- Copy the update site for aggregation -->
										<copy includeemptydirs="false" todir="${update.site.directory}">
					                     	<fileset dir="${project.build.directory}/checksumFix">
					                        	<exclude name="META-INF" />
					                        	<exclude name="META-INF/**" />
					                       	</fileset>
					                    </copy>
										
										<!-- Now, make a ZIP archive of the update site -->
										<tstamp>
											<format property="TODAY" pattern="yyyyMMddHHmmss" />
										</tstamp>
		              					
		              					<!-- ZIP the signed update site -->
		              					<zip basedir="${update.site.directory}" destfile="${publish.directory}/BPEL-Designer--${project.version}.${TODAY}.zip" />
										
										<!-- Clean up the signing directory -->
										<delete includeemptydirs="true">
											<fileset dir="${staging.directory}" includes="**/*" />
										</delete>
										
									</target>
								</configuration>
								
								<goals>
									<goal>run</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					
					<!-- End of plug-ins -->
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
