<!--
 ! Licensed to the Apache Software Foundation (ASF) under one
 ! or more contributor license agreements. See the NOTICE file
 ! distributed with this work for additional information
 ! regarding copyright ownership. The ASF licenses this file
 ! to you 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 at
 !
 ! 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>apache-asterixdb</artifactId>
		<groupId>org.apache.asterix</groupId>
		<version>0.8.9-SNAPSHOT</version>
	</parent>
	<artifactId>asterix-common</artifactId>

	<licenses>
		<license>
			<name>Apache License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
			<comments>A business-friendly OSS license</comments>
		</license>
	</licenses>

	<properties>
			<appendedResourcesDirectory>${basedir}/../src/main/appended-resources</appendedResourcesDirectory>
	</properties>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.3.2</version>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
					<fork>true</fork>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.jvnet.jaxb2.maven2</groupId>
				<artifactId>maven-jaxb2-plugin</artifactId>
				<version>0.9.0</version>
				<executions>
					<execution>
						<id>configuration</id>
						<goals>
							<goal>generate</goal>
						</goals>
						<configuration>
							<args>
								<arg>-Xsetters</arg>
								<arg>-Xvalue-constructor</arg>
							</args>
							<plugins>
								<plugin>
									<groupId>org.jvnet.jaxb2_commons</groupId>
									<artifactId>jaxb2-basics</artifactId>
									<version>0.6.2</version>
								</plugin>
								<plugin>
									<groupId>org.jvnet.jaxb2_commons</groupId>
									<artifactId>jaxb2-value-constructor</artifactId>
									<version>3.0</version>
								</plugin>
							</plugins>
							<schemaDirectory>src/main/resources/schema</schemaDirectory>
							<schemaIncludes>
								<include>asterix-conf.xsd</include>
							</schemaIncludes>
							<generatePackage>org.apache.asterix.common.configuration</generatePackage>
							<bindingDirectory>src/main/resources/schema</bindingDirectory>
							<bindingIncludes>
								<bindingInclude>jaxb-bindings.xjb</bindingInclude>
							</bindingIncludes>
							<generateDirectory>${project.build.directory}/generated-sources/configuration</generateDirectory>
						</configuration>
					</execution>
					<execution>
						<id>cluster</id>
						<goals>
							<goal>generate</goal>
						</goals>
						<configuration>
							<args>
								<arg>-Xsetters</arg>
								<arg>-Xvalue-constructor</arg>
							</args>
							<plugins>
								<plugin>
									<groupId>org.jvnet.jaxb2_commons</groupId>
									<artifactId>jaxb2-basics</artifactId>
									<version>0.6.2</version>
								</plugin>
								<plugin>
									<groupId>org.jvnet.jaxb2_commons</groupId>
									<artifactId>jaxb2-value-constructor</artifactId>
									<version>3.0</version>
								</plugin>
							</plugins>
							<schemaDirectory>src/main/resources/schema</schemaDirectory>
							<schemaIncludes>
								<include>cluster.xsd</include>
							</schemaIncludes>
							<generatePackage>org.apache.asterix.event.schema.cluster</generatePackage>
							<generateDirectory>${project.build.directory}/generated-sources/cluster</generateDirectory>
							<bindingDirectory>src/main/resources/schema</bindingDirectory>
							<bindingIncludes>
								<bindingInclude>jaxb-bindings.xjb</bindingInclude>
							</bindingIncludes>
						</configuration>
					</execution>
					<execution>
						<id>yarn_cluster</id>
						<goals>
							<goal>generate</goal>
						</goals>
						<configuration>
							<args>
								<arg>-Xsetters</arg>
								<arg>-Xvalue-constructor</arg>
							</args>
							<plugins>
								<plugin>
									<groupId>org.jvnet.jaxb2_commons</groupId>
									<artifactId>jaxb2-basics</artifactId>
									<version>0.6.2</version>
								</plugin>
								<plugin>
									<groupId>org.jvnet.jaxb2_commons</groupId>
									<artifactId>jaxb2-value-constructor</artifactId>
									<version>3.0</version>
								</plugin>
							</plugins>
							<schemaDirectory>src/main/resources/schema</schemaDirectory>
							<schemaIncludes>
								<include>yarn_cluster.xsd</include>
							</schemaIncludes>
							<generatePackage>org.apache.asterix.event.schema.yarnCluster</generatePackage>
							<generateDirectory>${project.build.directory}/generated-sources/yarn_cluster</generateDirectory>
							<bindingDirectory>src/main/resources/schema</bindingDirectory>
							<bindingIncludes>
								<bindingInclude>jaxb-bindings.xjb</bindingInclude>
							</bindingIncludes>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>2.4</version>
				<configuration>
					<includes>
						<include>**/*.class</include>
						<include>**/README*</include>
						<include>**/DISCLAIMER*</include>
						<include>**/NOTICE*</include>
						<include>**/LICENSE*</include>
						<include>**/DEPENDENCIES*</include>
					</includes>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>test-jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

	<dependencies>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
		</dependency>
		<dependency>
			<groupId>commons-httpclient</groupId>
			<artifactId>commons-httpclient</artifactId>
			<version>3.0.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.hyracks</groupId>
			<artifactId>algebricks-compiler</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.hyracks</groupId>
			<artifactId>hyracks-dataflow-std</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.hyracks</groupId>
			<artifactId>hyracks-storage-am-lsm-common</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.hyracks</groupId>
			<artifactId>hyracks-storage-am-common</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.hyracks</groupId>
			<artifactId>hyracks-api</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.asterix</groupId>
			<artifactId>asterix-test-framework</artifactId>
			<version>0.8.9-SNAPSHOT</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.hyracks</groupId>
			<artifactId>hyracks-storage-am-lsm-btree</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.hyracks</groupId>
			<artifactId>
				hyracks-storage-am-lsm-invertedindex
			</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.hyracks</groupId>
			<artifactId>hyracks-storage-am-lsm-rtree</artifactId>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>2.2.0</version>
		</dependency>
		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-mapper-asl</artifactId>
			<version>1.9.12</version>
		</dependency>
	</dependencies>

</project>

