<!--
 ! 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.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>org.apache.hyracks</groupId>
            <artifactId>hyracks-control-cc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.hyracks</groupId>
            <artifactId>hyracks-control-nc</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>
        <dependency>
            <groupId>com.rometools</groupId>
            <artifactId>rome</artifactId>
            <version>1.5.1</version>
        </dependency>
	</dependencies>

</project>
