<?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>
	
	<parent>
		<groupId>org.apache</groupId>
		<artifactId>apache</artifactId>
		<version>6</version>
	</parent>
	
	<groupId>org.apache.empire-db</groupId>
	<artifactId>empire-db-parent</artifactId>
	<packaging>pom</packaging>
	<version>2.0.5-incubating</version>
	<name>Apache Empire-db Parent</name>
	<description>Apache Empire-db is an Open Source relational data persistence component which allows database vendor independent dynamic query definition as well as safe and simple data retrieval and updating. Compared to most other solutions like e.g. Hibernate, TopLink, iBATIS or JPA implementations, Empire-db takes a considerably different approach, with a special focus on compile-time safety, reduced redundancies and improved developer productivity.</description>
	<inceptionYear>2008</inceptionYear>
	
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<maven.compile.source>1.5</maven.compile.source>
		<maven.compile.target>1.5</maven.compile.target>
		<disclaimer.dir>{project.basedir}</disclaimer.dir>
	</properties>
	
	<profiles>
		<profile>
			<id>all</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<modules>
				<module>empire-db</module>
				<module>empire-db-struts2</module>
				<module>empire-db-examples</module>
			</modules>
		</profile>
		<profile>
			<!-- Hudson profile -->
			<id>CI</id>
			<modules>
				<module>empire-db</module>
    				<module>empire-db-struts2</module>
    				<module>empire-db-examples</module>
			</modules>
			<build>
				<plugins>
					<!-- check the headers -->
					<plugin>
			            <groupId>com.google.code.maven-license-plugin</groupId>
			            <artifactId>maven-license-plugin</artifactId>
			        </plugin>
			      	<plugin>
				        <groupId>org.codehaus.mojo</groupId>
				        <artifactId>rat-maven-plugin</artifactId>
				        <executions>
				          <execution>
				            <phase>verify</phase>
				            <goals>
				              <goal>check</goal>
				            </goals>
				          </execution>
				        </executions>
				    </plugin>
					<plugin>
					  <groupId>org.apache.maven.plugins</groupId>
					  <artifactId>maven-source-plugin</artifactId>
					  <executions>
					    <execution>
					      <id>attach-sources</id>
					      <goals>
					        <goal>jar</goal>
					      </goals>
					    </execution>
					  </executions>
					</plugin>
					<plugin>
					  <groupId>org.apache.maven.plugins</groupId>
					  <artifactId>maven-javadoc-plugin</artifactId>
					  <executions>
					    <execution>
					      <id>attach-javadocs</id>
					      <goals>
					        <goal>jar</goal>
					      </goals>
					    </execution>
					  </executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<!-- Part of the release profile, rest in apache parent pom -->
	      <id>release</id>
	      <build>
	        <plugins>
	          <plugin>
	            <groupId>org.codehaus.mojo</groupId>
	            <artifactId>rat-maven-plugin</artifactId>
	            <version>1.0-alpha-3</version>
	            <executions>
	              <execution>
	                <phase>verify</phase>
	                <goals>
	                  <goal>check</goal>
	                </goals>
	              </execution>
	            </executions>
	          </plugin>
	        </plugins>
	      </build>
	    </profile>
	</profiles>
	
	
	<url>http://incubator.apache.org/empire-db/${project.artifactId}</url>
	<organization>
		<name>Apache Software Foundation</name>
		<url>http://apache.org</url>
	</organization>
	<licenses>
		<license>
			<name>The Apache Software License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
		</license>
	</licenses>
	<scm>
		<connection>scm:svn:http://svn.apache.org/repos/asf/incubator/empire-db/tags/apache-empire-db-2.0.5-incubating-rc6</connection>
		<developerConnection>scm:svn:https://svn.apache.org/repos/asf/incubator/empire-db/tags/apache-empire-db-2.0.5-incubating-rc6</developerConnection>
		<url>http://svn.apache.org/viewvc/incubator/empire-db/tags/apache-empire-db-2.0.5-incubating-rc6</url>
	</scm>
	<mailingLists>
		<mailingList>
			<name>Empire-db User List</name>
			<post>empire-db-user@incubator.apache.org</post>
			<subscribe>empire-db-user-subscribe@incubator.apache.org</subscribe>
			<unsubscribe>empire-db-user-unsubscribe@incubator.apache.org</unsubscribe>
			<archive>http://mail-archives.apache.org/mod_mbox/incubator-empire-db-user/</archive>
		</mailingList>
		<mailingList>
			<name>Empire-db Development List</name>
			<post>empire-db-user@incubator.apache.org</post>
			<subscribe>empire-db-dev-subscribe@incubator.apache.org</subscribe>
			<unsubscribe>empire-db-dev-unsubscribe@incubator.apache.org</unsubscribe>
			<archive>http://mail-archives.apache.org/mod_mbox/incubator-empire-db-dev/</archive>
		</mailingList>
		<mailingList>
			<name>Empire-db commit List</name>
			<subscribe>empire-db-commits-subscribe@incubator.apache.org</subscribe>
			<unsubscribe>empire-db-commits-unsubscribe@incubator.apache.org</unsubscribe>
			<archive>http://mail-archives.apache.org/mod_mbox/incubator-empire-db-commits/</archive>
		</mailingList>
	</mailingLists>
	<issueManagement>
		<system>jira</system>
		<url>https://issues.apache.org/jira/browse/EMPIREDB</url>
	</issueManagement>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.apache.empire-db</groupId>
				<artifactId>empire-db</artifactId>
				<version>${project.version}</version>
				<type>jar</type>
			</dependency>
			<dependency>
				<groupId>org.apache.empire-db</groupId>
				<artifactId>empire-db-struts2</artifactId>
				<version>${project.version}</version>
				<type>jar</type>
			</dependency>
			<dependency>
				<groupId>commons-logging</groupId>
				<artifactId>commons-logging</artifactId>
				<version>1.0.4</version>
			</dependency>
			<dependency>
				<groupId>log4j</groupId>
				<artifactId>log4j</artifactId>
				<version>1.2.14</version>
			</dependency>
			<dependency>
				<groupId>commons-beanutils</groupId>
				<artifactId>commons-beanutils</artifactId>
				<version>1.7.0</version>
			</dependency>
			<dependency>
				<groupId>commons-collections</groupId>
				<artifactId>commons-collections</artifactId>
				<version>3.2.1</version>
			</dependency>
			<dependency>
			    <groupId>hsqldb</groupId>
			    <artifactId>hsqldb</artifactId>
			    <version>1.8.0.7</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.struts</groupId>
			    <artifactId>struts2-core</artifactId>
			    <version>2.1.6</version>
			</dependency> 
			<dependency>
			    <groupId>javax.servlet</groupId>
			    <artifactId>servlet-api</artifactId>
			    <version>2.4</version>
			    <scope>provided</scope>
			</dependency>
			<dependency>
			    <groupId>javax.servlet.jsp</groupId>
			    <artifactId>jsp-api</artifactId>
			    <version>2.0</version>
			    <scope>provided</scope>
			</dependency> 
			<dependency>
			    <groupId>junit</groupId>
			    <artifactId>junit</artifactId>
			    <version>4.6</version>
			</dependency> 
		</dependencies>
	</dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<scope>provided</scope>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<defaultGoal>install</defaultGoal>
	
		<plugins>
		 	<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-remote-resources-plugin</artifactId>
                <!-- TODO remove after graduation -->
                <executions>
                    <execution>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>
                            <resourceBundles>
                                <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
                                <!-- add the DISCLAIMER -->
                                <resourceBundle>org.apache:apache-incubator-disclaimer-resource-bundle:1.1</resourceBundle>
                            </resourceBundles>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        
		<pluginManagement>
			<plugins>
				<!-- Release Audit Tool mvn rat:check -->
			    <plugin>
			      	<groupId>org.codehaus.mojo</groupId>
			       	<artifactId>rat-maven-plugin</artifactId>
			       	<version>1.0-alpha-3</version>
			       	<configuration>
			       		<excludes>
			       			<!-- This might be to generic -->
			       			<exclude>**/target/**</exclude>
			      			<exclude>**/dependencies.txt</exclude>
			       			<exclude>**/.settings/**</exclude>
			       			<exclude>**/.project</exclude>
			       			<exclude>**/.classpath</exclude>
			       			<exclude>**/.tomcatplugin</exclude>
			       		</excludes>
			       	</configuration>
			  	</plugin>
			  	<plugin>
			  		<groupId>org.apache.maven.plugins</groupId>
			  		<artifactId>maven-release-plugin</artifactId>
			  		<configuration>
			  			<!-- do not ask version for each module -->
			  			<autoVersionSubmodules>true</autoVersionSubmodules>
			  		</configuration>
			  	</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-assembly-plugin</artifactId>
					<version>2.2-beta-4</version>
					<configuration>
						<appendAssemblyId>true</appendAssemblyId>
						<tarLongFileMode>gnu</tarLongFileMode>
						<outputDirectory>target/dist</outputDirectory>
						<descriptors>
							<descriptor>empire-assembly-all.xml</descriptor>
						</descriptors>
						<finalName>apache-empire-db-${project.version}</finalName>
					</configuration>
				</plugin>
				<plugin>
					<inherited>true</inherited>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<configuration>
						<source>${maven.compile.source}</source>
						<target>${maven.compile.target}</target>
						<optimise>true</optimise>
						<debug>true</debug>
					</configuration>
				</plugin>
				<plugin>
					<inherited>true</inherited>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<configuration>
						<archive>
							<manifestEntries>
								<X-Compile-Source-JDK>${maven.compile.source}</X-Compile-Source-JDK>
								<X-Compile-Target-JDK>${maven.compile.target}</X-Compile-Target-JDK>
							</manifestEntries>
						</archive>
					</configuration>
				</plugin>
				<plugin>
		            <groupId>com.google.code.maven-license-plugin</groupId>
		            <artifactId>maven-license-plugin</artifactId>
		            <version>1.4.0</version>
		            <configuration>
		                <basedir>${basedir}</basedir>
		                <header>tools/header.txt</header>
		                <!--<header>${basedir}/src/etc/header.txt</header>-->
		                <quiet>false</quiet>
		                <failIfMissing>true</failIfMissing>
		                <aggregate>false</aggregate>
		                <includes>
		                    <include>src/**</include>
		                    <include>**/test/**</include>
		                </includes>
		                <mapping>
		                    <jwc>XML_STYLE</jwc>
		                    <application>XML_STYLE</application>
		                    <myFileExtension>JAVADOC_STYLE</myFileExtension>
		                </mapping>
		                <encoding>UTF-8</encoding>
		            </configuration>
		            <executions>
		                <execution>
		                    <goals>
		                        <goal>check</goal>
		                    </goals>
		                </execution>
		            </executions>
		        </plugin>
			</plugins>
		</pluginManagement>
	</build>
	<reporting>
		<plugins>
			<plugin>
		        <groupId>org.codehaus.mojo</groupId>
		        <artifactId>rat-maven-plugin</artifactId>
		    </plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
				<version>2.0-beta-5</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-pmd-plugin</artifactId>
				<version>2.4</version>
				<configuration>
					<targetJdk>1.5</targetJdk>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>findbugs-maven-plugin</artifactId>
				<version>2.1</version>
				<configuration>
					<findbugsXmlOutput>true</findbugsXmlOutput>
					<xmlOutput>true</xmlOutput>
					<omitVisitors>SerializableIdiom</omitVisitors>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>jdepend-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>cobertura-maven-plugin</artifactId>
				<configuration>
					<formats>
						<format>html</format>
						<format>xml</format>
					</formats>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jxr-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-changelog-plugin</artifactId>
			</plugin>
		</plugins>
	</reporting>

	<distributionManagement>
		<site>
			<id>people.apache.org.site</id>
			<name>Empire-db Maven Site</name>
			<url>scp://people.apache.org/home/francisdb/public_html/empire-db/site</url>
		</site>
	</distributionManagement>

</project>
