<?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>23</version>
	</parent>
	
	<groupId>org.apache.empire-db</groupId>
	<artifactId>empire-db-parent</artifactId>
	<packaging>pom</packaging>
	<version>3.0.1-SNAPSHOT</version>
	<name>Apache Empire-db</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>
	
	<modules>
		<module>empire-db</module>
		<module>empire-db-jsf2</module>
		<module>empire-db-codegen</module>
		<module>empire-db-maven-plugin</module>
		<module>empire-db-examples</module>
	</modules>
	
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<maven.compile.source>1.8</maven.compile.source>
		<maven.compile.target>1.8</maven.compile.target>
		<disclaimer.dir>{project.basedir}</disclaimer.dir>
	</properties>

    <prerequisites>
        <maven>3.0</maven>
    </prerequisites>
	
	<profiles>
	
		<!-- Hudson profile -->
		<profile>
			<id>CI</id>
			<build>
				<plugins>
					<!-- maven-enforcer-plugin -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-enforcer-plugin</artifactId>
						<executions>
							<execution>
								<id>enforce-maven</id>
								<goals>
									<goal>enforce</goal>
								</goals>
								<configuration>
									<rules>
										<requireMavenVersion>
											<version>3.0</version>
										</requireMavenVersion>
									</rules>
								</configuration>
							</execution>
						</executions>
					</plugin>					
					<!-- check the apache headers -->
					<plugin>
						<groupId>com.mycila.maven-license-plugin</groupId>
						<artifactId>maven-license-plugin</artifactId>
						<configuration>
							<!-- TODO enable strict checking and fix issues -->
							<strictCheck>false</strictCheck>
						</configuration>
					</plugin>
					<plugin>
				      	<groupId>org.apache.rat</groupId>
        				<artifactId>apache-rat-plugin</artifactId>
        				<inherited>false</inherited>
						<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>
					<!-- temporarily disable due to build problem -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<configuration>
							<additionalparam>-Xdoclint:none</additionalparam>
						</configuration>
						<executions>
							<execution>
								<id>attach-javadocs</id>
								<goals>
									<goal>jar</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		
		<!-- empire-db-dist -->
		<profile>
			<!-- Part of the release profile, merged with release profile defined in apache parent pom -->
			<id>apache-release</id>
			<modules>
				<module>empire-db-dist</module>
			</modules>
			<build>
				<plugins>
					<!-- maven-enforcer-plugin -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-enforcer-plugin</artifactId>
						<executions>
							<execution>
								<id>enforce-maven</id>
								<goals>
									<goal>enforce</goal>
								</goals>
								<configuration>
									<rules>
										<requireMavenVersion>
											<version>3.0</version>
										</requireMavenVersion>
									</rules>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<!-- RAT-Plugin -->					
					<plugin>
			      		<groupId>org.apache.rat</groupId>
        				<artifactId>apache-rat-plugin</artifactId>
        				<inherited>false</inherited>
						<executions>
							<execution>
								<phase>verify</phase>
								<goals>
									<goal>check</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<!-- temporarily disable due to build problem -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<configuration>
							<additionalparam>-Xdoclint:none</additionalparam>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
		
		<!-- eclipse-plugin -->
		<profile>
			<id>eclipse-plugin</id>
			<modules>
				<module>empire-db-eclipse-codegen</module>
			</modules>
		</profile>
		
	</profiles>
	
	<!-- project info -->
	<url>https://empire-db.apache.org</url>
	<organization>
		<name>Apache Software Foundation</name>
		<url>https://apache.org</url>
	</organization>
	<licenses>
		<license>
			<name>The Apache Software License, Version 2.0</name>
			<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
		</license>
	</licenses>
	<scm>
		<connection>scm:git:https://gitbox.apache.org/repos/asf/empire-db.git</connection>
		<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/empire-db.git</developerConnection>
		<url>https://gitbox.apache.org/repos/asf/empire-db.git</url>
		<tag>HEAD</tag>
	</scm>

	<mailingLists>
		<mailingList>
			<name>Empire-db User List</name>
			<post>user@empire-db.apache.org</post>
			<subscribe>user-subscribe@empire-db.apache.org</subscribe>
			<unsubscribe>user-unsubscribe@empire-db.apache.org</unsubscribe>
			<archive>https://lists.apache.org/list.html?user@empire-db.apache.org</archive>
		</mailingList>
		<mailingList>
			<name>Empire-db Development List</name>
			<post>dev@empire-db.apache.org</post>
			<subscribe>dev-subscribe@empire-db.apache.org</subscribe>
			<unsubscribe>dev-unsubscribe@empire-db.apache.org</unsubscribe>
			<archive>https://lists.apache.org/list.html?dev@empire-db.apache.org</archive>
		</mailingList>
		<mailingList>
			<name>Empire-db commit List</name>
			<subscribe>commits-subscribe@empire-db.apache.org</subscribe>
			<unsubscribe>commits-unsubscribe@empire-db.apache.org</unsubscribe>
			<archive>https://lists.apache.org/list.html?commits@empire-db.apache.org</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-jsf2</artifactId>
				<version>${project.version}</version>
				<type>jar</type>
			</dependency>
			<dependency>
				<groupId>org.apache.empire-db</groupId>
				<artifactId>empire-db-codegen</artifactId>
				<version>${project.version}</version>
				<type>jar</type>
			</dependency>
			<!-- logging -->
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-api</artifactId>
				<version>1.7.36</version>
			</dependency>
			<dependency>
			    <groupId>org.slf4j</groupId>
			    <artifactId>slf4j-reload4j</artifactId>
			    <version>1.7.36</version>
			</dependency>
			<!-- indirectly through slf4j-reload4j
			<dependency>
			    <groupId>ch.qos.reload4j</groupId>
			    <artifactId>reload4j</artifactId>
			    <version>1.2.19</version>
			</dependency>
			 -->
			<!-- commons -->			
			<dependency>
				<groupId>commons-beanutils</groupId>
				<artifactId>commons-beanutils</artifactId>
				<version>1.9.4</version>
			</dependency>
			<dependency>
			    <groupId>commons-io</groupId>
			    <artifactId>commons-io</artifactId>
			    <version>2.8.0</version>
			    <scope>test</scope>
			</dependency>
			<!-- databases -->
			<dependency>
			    <groupId>org.hsqldb</groupId>
			    <artifactId>hsqldb</artifactId>
			    <version>2.5.2</version>
			</dependency>
			<dependency>
			    <groupId>com.h2database</groupId>
			    <artifactId>h2</artifactId>
			    <version>2.1.210</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.derby</groupId>
			    <artifactId>derby</artifactId>
			    <version>10.14.2.0</version>
			</dependency>
			<dependency>
			    <groupId>org.xerial</groupId>
			    <artifactId>sqlite-jdbc</artifactId>
			    <version>3.34.0</version>
			</dependency>
			<dependency>
			    <groupId>mysql</groupId>
			    <artifactId>mysql-connector-java</artifactId>
			    <version>8.0.28</version>
			</dependency>
			<dependency>
			    <groupId>org.postgresql</groupId>
			    <artifactId>postgresql</artifactId>
			    <version>42.2.24</version>
			</dependency>
			<dependency>
			    <groupId>com.microsoft.sqlserver</groupId>
			    <artifactId>mssql-jdbc</artifactId>
			    <version>9.4.1.jre8</version>
			</dependency>
			<dependency>
			    <groupId>com.oracle.database.jdbc</groupId>
			    <artifactId>ojdbc8</artifactId>
			    <version>19.13.0.0.1</version>
			</dependency>
			<!-- web -->
			<dependency>
			    <groupId>javax.servlet</groupId>
			    <artifactId>javax.servlet-api</artifactId>
			    <version>4.0.0</version>
			    <scope>provided</scope>
			</dependency>
			<!-- Sun Mojarra -->			
			<dependency>
				<groupId>com.sun.faces</groupId>
				<artifactId>jsf-api</artifactId>
				<version>2.2.20</version>
			</dependency>
			<dependency>
				<groupId>com.sun.faces</groupId>
				<artifactId>jsf-impl</artifactId>
				<version>2.2.20</version>
			</dependency>
			<!-- Apache MyFaces -->
			<dependency>
				<groupId>org.apache.myfaces.core</groupId>
				<artifactId>myfaces-api</artifactId>
				<version>2.2.14</version>
			</dependency>
			<dependency>
				<groupId>org.apache.myfaces.core</groupId>
				<artifactId>myfaces-impl</artifactId>
				<version>2.2.14</version>
			</dependency>
			<dependency>
			    <groupId>javax.el</groupId>
			    <artifactId>javax.el-api</artifactId>
			    <version>3.0.0</version>
			</dependency>
	        <!-- Misc -->
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>4.7</version>
			</dependency> 
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-core</artifactId>
				<version>1.8.2</version>
			</dependency> 
		</dependencies>
	</dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<defaultGoal>install</defaultGoal>
		<plugins>
			<!-- maven-remote-resources-plugin -->
		 	<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-remote-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>
                            <resourceBundles>
                                <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
                            </resourceBundles>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
            	<!-- add osgi manifests -->
				<groupId>org.apache.felix</groupId>
				<artifactId>maven-bundle-plugin</artifactId>
				<inherited>true</inherited>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>animal-sniffer-maven-plugin</artifactId>
			</plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
            </plugin>
        </plugins>
        
		<pluginManagement>
			<plugins>
				<!-- Release Audit Tool mvn rat:check -->
			    <plugin>
			      	<groupId>org.apache.rat</groupId>
        			<artifactId>apache-rat-plugin</artifactId>
			       	<version>0.11</version>
			       	<configuration>
			       		<excludes>
							<!-- folders -->
							<exclude>**/target/**</exclude>
							<exclude>**/.idea/**</exclude>
							<exclude>**/.settings/**</exclude>
							<exclude>**/empire-db-example-vue/src/main/webapp/static/**</exclude>
							<exclude>**/empire-db-example-vue/src/main/vue/node_modules/**</exclude>
							<!-- file types -->
							<exclude>**/*.iml</exclude>
							<exclude>**/*.json</exclude>
							<exclude>**/*.jml</exclude>
							<!-- specific files -->
							<exclude>**/META-INF/MANIFEST.MF</exclude>
							<exclude>**/.factorypath</exclude>                            
							<exclude>**/.project</exclude>
							<exclude>**/.classpath</exclude>
							<exclude>**/.tomcatplugin</exclude>
							<exclude>**/empire-db-example-vue/src/main/vue/.*</exclude>
							<exclude>**/_eslintrc.js.bak</exclude>
							<exclude>**/application.yml</exclude>
							<exclude>release.properties</exclude>
							<!-- should the sample databases be created in target? -->
							<exclude>**/hsqldb/sample.*</exclude>
			       		</excludes>
			       		<excludeSubProjects>false</excludeSubProjects>
			       	</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>
					<inherited>true</inherited>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.1</version>
					<configuration>
						<source>${maven.compile.source}</source>
						<target>${maven.compile.target}</target>
						<optimize>true</optimize>
						<debug>true</debug>
					</configuration>
				</plugin>
				<plugin>
				    <inherited>true</inherited>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.1.1</version>
                    <configuration>
                    	<skipIfEmpty>true</skipIfEmpty>
                    	<!-- 
                        <useDefaultManifestFile>true</useDefaultManifestFile>
                         -->
                        <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>
                    <executions>
                        <execution>
                            <goals>
                                <goal>test-jar</goal>
                            </goals>
                            <!-- 
                            <configuration>
                                <useDefaultManifestFile>false</useDefaultManifestFile>
                            </configuration>
                             -->
                        </execution>
                    </executions>
                </plugin>
                <!-- check license headers -->
				<plugin>
		            <groupId>com.mycila.maven-license-plugin</groupId>
		            <artifactId>maven-license-plugin</artifactId>
		            <version>1.9.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>**/*.xml</include>
		                </includes>
                        <excludes>
                            <exclude>**/.idea/**</exclude>
			       			<exclude>**/*.json</exclude>
			       			<exclude>**/*.vue</exclude>
			       			<exclude>**/_eslintrc.js.bak</exclude>
			       			<exclude>**/static/js/*.js</exclude>
			       			<exclude>**/app.*.css</exclude>
			       			<exclude>**/readme.txt</exclude>
			       			<exclude>**/application.yml</exclude>
			       			<exclude>**/.factorypath</exclude>
                        </excludes>
		                <encoding>UTF-8</encoding>
		            </configuration>
		            <executions>
		                <execution>
		                    <goals>
		                        <goal>check</goal>
		                    </goals>
		                </execution>
		            </executions>
		        </plugin>
				<!-- check that all api calls are java8 compatible -->
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>animal-sniffer-maven-plugin</artifactId>
					<version>1.20</version>
					<executions>
						<execution>
							<id>check-api</id>
							<phase>integration-test</phase>
							<goals>
								<goal>check</goal>
							</goals>
						</execution>
			        </executions>
					<configuration>
						<signature>
							<groupId>org.codehaus.mojo.signature</groupId>
							<artifactId>java18</artifactId>
							<version>1.0</version>
						</signature>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-eclipse-plugin</artifactId>
					<version>2.10</version>
					<configuration>
						<downloadSources>true</downloadSources>
						<!-- downloadJavadocs>true</downloadJavadocs -->
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.felix</groupId>
					<artifactId>maven-bundle-plugin</artifactId>
					<version>3.5.1</version>
					<executions>
						<execution>
							<id>bundle-manifest</id>
							<phase>process-classes</phase>
							<goals>
								<goal>manifest</goal>
							</goals>
							<configuration>
								<instructions>
									<Import-Package>org.apache.empire*</Import-Package>
									<DynamicImport-Package>*</DynamicImport-Package>
									<_nouses>true</_nouses>
								</instructions>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<plugin>
				    <groupId>org.apache.maven.plugins</groupId>
				    <artifactId>maven-surefire-plugin</artifactId>
				    <version>2.22.2</version>
				    <configuration>
				        <systemPropertyVariables>
				            <derby.stream.error.file>target/derby.log</derby.stream.error.file>
				        </systemPropertyVariables>
				    </configuration>
				</plugin>
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<!-- org.apache.felix:org.apache.felix -->
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.felix</groupId>
										<artifactId>maven-bundle-plugin</artifactId>
										<versionRange>[1.0.0,)</versionRange>
										<goals>
											<goal>manifest</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
								<!-- tycho-compiler-plugin -->
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.eclipse.tycho</groupId>
										<artifactId>tycho-compiler-plugin</artifactId>
										<versionRange>[0.0,)</versionRange>
										<goals>
											<goal>compile</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
								<!-- tycho-packaging-plugin -->
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.eclipse.tycho</groupId>
										<artifactId>tycho-packaging-plugin</artifactId>
										<versionRange>[0.0,)</versionRange>
										<goals>
											<goal>build-qualifier</goal>
											<goal>validate-id</goal>
											<goal>validate-version</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
								<!-- maven-remote-resources-plugin -->
								<!-- Eclipse: avoid message "maven-remote-resources-plugin (goal "process") is ignored by m2e." -->
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-remote-resources-plugin</artifactId>
										<versionRange>[1.0,)</versionRange>
										<goals>
											<goal>process</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>			
		</pluginManagement>
	</build>
	
	<reporting>
        <excludeDefaults>true</excludeDefaults>
        <outputDirectory>${project.build.directory}/site</outputDirectory>
		<plugins>
			<!--  maven-project-info-reports-plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>3.1.2</version>
                <configuration>
                    <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
                    <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
                </configuration>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>dependencies</report>
                            <report>scm</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <!-- apache-rat-plugin -->
			<plugin>
			    <groupId>org.apache.rat</groupId>
        		<artifactId>apache-rat-plugin</artifactId>
		    </plugin>
		    <!-- maven-site-plugin -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
			</plugin>
			<!-- maven-pmd-plugin -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-pmd-plugin</artifactId>
				<version>3.15.0</version>
				<configuration>
					<targetJdk>1.8</targetJdk>
				</configuration>
			</plugin>
			<!-- findbugs-maven-plugin -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>findbugs-maven-plugin</artifactId>
				<version>2.5.5</version>
				<configuration>
					<findbugsXmlOutput>true</findbugsXmlOutput>
					<xmlOutput>true</xmlOutput>
					<omitVisitors>SerializableIdiom</omitVisitors>
				</configuration>
			</plugin>
			<!-- jdepend-maven-plugin -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>jdepend-maven-plugin</artifactId>
				<version>2.0</version>
			</plugin>
			<!-- cobertura-maven-plugin -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>cobertura-maven-plugin</artifactId>
				<version>2.4</version>
				<configuration>
					<formats>
						<format>html</format>
						<format>xml</format>
					</formats>
				</configuration>
			</plugin>
			<!-- maven-jxr-plugin -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jxr-plugin</artifactId>
				<version>3.1.1</version>
			</plugin>
			<!-- maven-javadoc-plugin 
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>2.10.3</version>
			</plugin>
			-->
			<!-- maven-changelog-plugin -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-changelog-plugin</artifactId>
				<version>2.3</version>
			</plugin>
		</plugins>
	</reporting>

	<distributionManagement>
		<site>
			<id>people.apache.org.site</id>
			<name>Empire-db Maven Site</name>
			<!-- FIXME find a place for this -->
			<url>scp://people.apache.org/home/francisdb/public_html/empire-db/site</url>
		</site>
	</distributionManagement>

</project>
