<!-- ! Copyright 2009-2013 by The Regents of the University of California 
	! Licensed under the Apache License, Version 2.0 (the "License"); ! you may 
	not use this file except in compliance with the License. ! you may obtain 
	a copy of the License from ! ! http://www.apache.org/licenses/LICENSE-2.0 
	! ! Unless required by applicable law or agreed to in writing, software ! 
	distributed under the License is distributed on an "AS IS" BASIS, ! WITHOUT 
	WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ! See the 
	License for the specific language governing permissions and ! limitations 
	under the License. ! -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<artifactId>asterix</artifactId>
		<groupId>edu.uci.ics.asterix</groupId>
		<version>0.8.4-SNAPSHOT</version>
	</parent>
	<artifactId>asterix-doc</artifactId>
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
				<version>3.3</version>
				<configuration>
					<generateReports>false</generateReports>
				</configuration>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>site</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<version>2.6</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>copy-resources</goal>
						</goals>
						<inherited>false</inherited>
						<configuration>
							<outputDirectory>${project.build.directory}/site/download</outputDirectory>
							<resources>
								<resource>
									<directory>../asterix-examples/src/main/resources/</directory>
									<includes>
										<include>asterix-sdk-stable.js</include>
									</includes>
								</resource>
								<resource>
									<directory>../asterix-examples/target/</directory>
									<includes>
										<include>admaql101-demo.zip</include>
										<include>tweetbook-demo.zip</include>
									</includes>
								</resource>
							</resources>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> 
				<executions> <execution> <phase>package</phase> <goals> <goal>assembly</goal> 
				</goals> <inherited>false</inherited> <configuration> <descriptor>src/assembly/assembly.xml</descriptor> 
				</configuration> </execution> </executions> </plugin> -->
		</plugins>
	</build>
</project>
