<?xml version="1.0" encoding="UTF-8" ?>
<!-- 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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<sshwagon.version>2.6</sshwagon.version>
		<javadoc.version>2.9.1</javadoc.version>
		<slf4j.version>1.7.6</slf4j.version>
		<junit.version>4.11</junit.version>
		<guava.version>16.0.1</guava.version>
		<easymock.version>3.2</easymock.version>
		<httpcomponents.version>4.3.1</httpcomponents.version>
		<checksum-maven-plugin.version>1.2</checksum-maven-plugin.version>
		<skipTests>false</skipTests>
	</properties>
	<parent>
		<groupId>org.apache</groupId>
		<artifactId>apache</artifactId>
		<version>13</version>
	</parent>
	<scm>
		<url>https://git-wip-us.apache.org/repos/asf?p=incubator-metamodel.git</url>
		<connection>scm:git:http://git-wip-us.apache.org/repos/asf/incubator-metamodel.git</connection>
		<developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-metamodel.git</developerConnection>
		<tag>MetaModel-4.2.0-incubating</tag>
	</scm>
	<groupId>org.apache.metamodel</groupId>
	<artifactId>MetaModel</artifactId>
	<version>4.2.0-incubating</version>
	<name>MetaModel</name>
	<description>MetaModel is a library that encapsulates the differences and enhances 
		the capabilities of different datastores. Rich querying abilities are
		offered to datastores that do not otherwise support advanced querying
		and a unified view of the datastore structure is offered through a
		single model of the schemas, tables, columns and relationships.</description>
	<url>http://metamodel.incubator.apache.org</url>
	<inceptionYear>2007</inceptionYear>
	<packaging>pom</packaging>
	<modules>
		<module>core</module>
		<module>pojo</module>
		<module>fixedwidth</module>
		<module>excel</module>
		<module>csv</module>
		<module>json</module>
		<module>xml</module>
		<module>jdbc</module>
		<module>hbase</module>
		<module>mongodb</module>
		<module>couchdb</module>
		<module>openoffice</module>
		<module>salesforce</module>
		<module>sugarcrm</module>
		<module>full</module>
		<module>spring</module>
	</modules>
	<issueManagement>
		<system>Jira</system>
		<url>https://issues.apache.org/jira/browse/METAMODEL</url>
	</issueManagement>
	<mailingLists>
		<mailingList>
			<name>Development</name>
			<post>dev@metamodel.incubator.apache.org</post>
			<subscribe>dev-subscribe@metamodel.incubator.apache.org</subscribe>
			<unsubscribe>dev-unsubscribe@metamodel.incubator.apache.org</unsubscribe>
			<archive>http://mail-archives.apache.org/mod_mbox/incubator-metamodel-dev/</archive>
		</mailingList>
		<mailingList>
			<name>Commits</name>
			<post>commits@metamodel.incubator.apache.org</post>
			<subscribe>commits-subscribe@metamodel.incubator.apache.org</subscribe>
			<unsubscribe>commits-unsubscribe@metamodel.incubator.apache.org</unsubscribe>
			<archive>http://mail-archives.apache.org/mod_mbox/incubator-metamodel-commits/</archive>
		</mailingList>
	</mailingLists>
	<organization>
		<name>The Apache Software Foundation</name>
		<url>http://www.apache.org/</url>
	</organization>
	<developers>
		<developer>
			<id>kasper</id>
			<name>Kasper Sørensen</name>
			<email>kasper.sorensen@humaninference.com</email>
			<url>http://kasper.eobjects.org</url>
			<organization>Human Inference</organization>
			<organizationUrl>http://www.humaninference.com</organizationUrl>
		</developer>
	</developers>
	<contributors>
		<contributor>
			<name>Saurabh Gupta</name>
			<organization>Xebia India</organization>
		</contributor>
		<contributor>
			<name>Balendra Singh</name>
			<organization>Xebia India</organization>
		</contributor>
		<contributor>
			<name>Sameer Arora</name>
			<organization>Xebia India</organization>
		</contributor>
	</contributors>
	<licenses>
		<license>
			<name>The Apache Software License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
		</license>
	</licenses>
	<distributionManagement>
		<repository>
			<id>apache.releases.https</id>
			<name>Apache Release Distribution Repository</name>
			<url>https://repository.apache.org/service/local/staging/deploy/maven2</url>
		</repository>
		<snapshotRepository>
			<id>apache.snapshots.https</id>
			<name>Apache Development Snapshot Repository</name>
			<url>https://repository.apache.org/content/repositories/snapshots</url>
		</snapshotRepository>
	</distributionManagement>

	<repositories>
		<repository>
			<id>apache.snapshots</id>
			<url>http://repository.apache.org/snapshots/</url>
			<name>Apache Snapshot Repo</name>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
			<releases>
				<enabled>false</enabled>
			</releases>
		</repository>
	</repositories>

	<build>
		<plugins>
			<plugin>
				<!-- Ensures java 6 compatibility -->
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
					<encoding>utf-8</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.rat</groupId>
				<artifactId>apache-rat-plugin</artifactId>
				<executions>
					<execution>
						<id>rat-verify</id>
						<phase>validate</phase>
						<goals>
							<goal>check</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-release-plugin</artifactId>
				<configuration>
					<autoVersionSubmodules>true</autoVersionSubmodules>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.codehaus.sonar</groupId>
				<artifactId>sonar-maven3-plugin</artifactId>
				<version>2.8</version>
			</plugin>

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>cobertura-maven-plugin</artifactId>
				<version>2.5.2</version>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
				<dependencies>
					<dependency>
						<!-- Provide support for scp based deployment of site -->
						<groupId>org.apache.maven.wagon</groupId>
						<artifactId>wagon-ssh</artifactId>
						<version>${sshwagon.version}</version>
					</dependency>
				</dependencies>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<executions>
					<execution>
						<!-- create aggregate report when "mvn site" is invoked. -->
						<id>aggregate</id>
						<goals>
							<goal>aggregate</goal>
						</goals>
						<phase>site</phase>
						<configuration>
							<excludePackageNames>org.apache.metamodel.jdbc.dialects:org.apache.metamodel.detect</excludePackageNames>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>net.ju-n.maven.plugins</groupId>
				<artifactId>checksum-maven-plugin</artifactId>
				<version>${checksum-maven-plugin.version}</version>
			</plugin>

			<plugin>
				<!-- enforce certain banned dependencies -->
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
				<executions>
					<execution>
						<id>enforce-versions</id>
						<goals>
							<goal>enforce</goal>
						</goals>
						<configuration>
							<rules>
								<bannedDependencies>
									<excludes>
										<exclude>commons-logging:commons-logging</exclude>
										<exclude>org.codehaus.jackson</exclude>
									</excludes>
								</bannedDependencies>
							</rules>
						</configuration>
					</execution>
				</executions>
			</plugin>

		</plugins>

		<extensions>
			<extension>
				<!-- Provide support for scp based deployment of site -->
				<groupId>org.apache.maven.wagon</groupId>
				<artifactId>wagon-ssh</artifactId>
				<version>${sshwagon.version}</version>
			</extension>
		</extensions>

		<pluginManagement>
			<plugins>
				<plugin>
					<!-- Ignore instructions for m2e (overrides eclipse warning) -->
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-enforcer-plugin</artifactId>
										<versionRange>[1.0,)</versionRange>
										<goals>
											<goal>enforce</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>
											org.apache.rat
										</groupId>
										<artifactId>
											apache-rat-plugin
										</artifactId>
										<versionRange>
											[0.8,)
										</versionRange>
										<goals>
											<goal>check</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.apache.rat</groupId>
					<artifactId>apache-rat-plugin</artifactId>
					<configuration>
						<licenses>
							<license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
								<licenseFamilyCategory>ASL20</licenseFamilyCategory>
								<licenseFamilyName>Apache Software License, 2.0</licenseFamilyName>
								<notes>Single licensed ASL v2.0</notes>
								<patterns>
									<pattern>Licensed to the Apache Software Foundation (ASF) under
										one
										or more contributor license agreements.</pattern>
								</patterns>
							</license>
						</licenses>
						<excludeSubProjects>false</excludeSubProjects>
						<excludes>
							<exclude>CHANGES.txt</exclude>
							<exclude>README</exclude>
							<exclude>NOTICE.txt</exclude>
							<exclude>LICENSE.txt</exclude>
							<exclude>KEYS</exclude>
							<exclude>*.md</exclude>
							<exclude>example-metamodel-integrationtest-configuration.properties</exclude>
							<exclude>**/.gitignore/**</exclude>
							<exclude>.git/**</exclude>
							<exclude>**/src/test/resources/**</exclude>
							<exclude>**/src/site/**</exclude>
							<exclude>**/.project</exclude>
							<exclude>**/.classpath</exclude>
							<exclude>**/.settings/**</exclude>
							<exclude>**/.travis.yml</exclude>
							<exclude>**/target/**</exclude>
							<exclude>DEPENDENCIES</exclude>
							<exclude>DISCLAIMER</exclude>
						</excludes>
					</configuration>

				</plugin>

			</plugins>
		</pluginManagement>
	</build>
	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>${javadoc.version}</version>
				<reportSets>
					<reportSet>
						<id>aggregate</id>
						<reports>
							<report>aggregate</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-project-info-reports-plugin</artifactId>
				<version>2.6</version>
				<configuration>
					<dependencyDetailsEnabled>false</dependencyDetailsEnabled>
					<dependencyLocationsEnabled>false</dependencyLocationsEnabled>
				</configuration>
			</plugin>
		</plugins>
	</reporting>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>com.google.guava</groupId>
				<artifactId>guava</artifactId>
				<version>${guava.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.httpcomponents</groupId>
				<artifactId>httpclient</artifactId>
				<version>${httpcomponents.version}</version>
				<exclusions>
					<exclusion>
						<artifactId>commons-logging</artifactId>
						<groupId>commons-logging</groupId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>org.apache.httpcomponents</groupId>
				<artifactId>httpcore</artifactId>
				<version>${httpcomponents.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.httpcomponents</groupId>
				<artifactId>httpclient-cache</artifactId>
				<version>${httpcomponents.version}</version>
			</dependency>
			<dependency>
				<groupId>commons-lang</groupId>
				<artifactId>commons-lang</artifactId>
				<version>2.6</version>
			</dependency>
			<dependency>
				<groupId>commons-codec</groupId>
				<artifactId>commons-codec</artifactId>
				<version>1.7</version>
			</dependency>
			<dependency>
				<groupId>commons-io</groupId>
				<artifactId>commons-io</artifactId>
				<version>2.4</version>
			</dependency>
			<dependency>
				<groupId>commons-pool</groupId>
				<artifactId>commons-pool</artifactId>
				<version>1.6</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-api</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>jcl-over-slf4j</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-core</artifactId>
				<version>2.4.1.1</version>
			</dependency>
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-databind</artifactId>
				<version>2.4.1.3</version>
			</dependency>
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-annotations</artifactId>
				<version>2.4.1</version>
			</dependency>
			<dependency>
				<groupId>hsqldb</groupId>
				<artifactId>hsqldb</artifactId>
				<version>1.8.0.10</version>
			</dependency>

			<!-- Test dependencies -->
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>${junit.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.easymock</groupId>
				<artifactId>easymock</artifactId>
				<version>${easymock.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-nop</artifactId>
				<version>${slf4j.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-log4j12</artifactId>
				<version>${slf4j.version}</version>
				<scope>test</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
</project>
