<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright 2010 Portland Webworks, Inc.
  ~
  ~ This file is part of PWW Commons.
  ~
  ~ PWW Commons is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General
  ~ Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any
  ~ later version.
  ~
  ~ PWW Commons is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
  ~ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
  ~ more details.
  ~
  ~ You should have received a copy of the GNU Lesser General Public License along with PWW Commons.  If not, see
  ~ <http://www.gnu.org/licenses />.
  -->

<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>
        <groupId>org.sonatype.oss</groupId>
        <artifactId>oss-parent</artifactId>
        <version>7</version>
    </parent>

	<groupId>com.portlandwebworks</groupId>
	<artifactId>pww-commons</artifactId>
    <version>1.0.2</version>
	<packaging>jar</packaging>
	<name>PWW Commons</name>
	<developers>
		<developer>
			<name>Ronnie Northup</name>
			<email>ronnie@portlandwebworks.com</email>
			<organization>Portland Webworks, Inc.</organization>
			<organizationUrl>http://www.portlandwebworks.com</organizationUrl>
		</developer>
	</developers>
	<description>
		PWW Commons is a collection of useful, reusable components for java applications that leverage Spring Framework
		and Hibernate.  Its primary focus is simplifying database access via a generic DAO interface with an
		annotation-based Hibernate implementation.
	</description>
	<licenses>
		<license>
			<name>GNU Lesser General Public License Version 3</name>
			<url>http://www.gnu.org/licenses/</url>
		</license>
	</licenses>

    <scm>
        <connection>scm:svn:https://svn.portlandwebworks.com/repos/portlandwebworks.com/java/PWWCommons/tags/pww-commons-1.0.2
        </connection>
        <developerConnection>scm:svn:https://svn.portlandwebworks.com/repos/portlandwebworks.com/java/PWWCommons/tags/pww-commons-1.0.2
        </developerConnection>
        <url>https://svn.portlandwebworks.com/repos/portlandwebworks.com/java/PWWCommons/tags/pww-commons-1.0.2</url>
    </scm>

    <distributionManagement>

    </distributionManagement>

    <repositories>
        <repository>
            <id>internal</id>
            <url>${internal.repository.url}</url>
        </repository>
        <repository>
            <id>thirdparty</id>
            <url>${third-party.repository.url}</url>
        </repository>
        <repository>
            <id>central-proxy</id>
            <url>${central.repository.url}</url>
        </repository>
        <repository>
            <id>jboss-proxy</id>
            <url>${jboss.repository.url}</url>
        </repository>
    </repositories>

	<properties>
		<hibernate.version>3.6.10.Final</hibernate.version>
		<hibernate-annotations.version>3.5.6-Final</hibernate-annotations.version>
		<hibernate-commons-annotations.version>3.2.0.Final</hibernate-commons-annotations.version>
		<hibernate-validator.version>4.2.0.Final</hibernate-validator.version>
		<hibernate-search.version>3.4.1.Final</hibernate-search.version>
		<org.slf4j.version>1.5.10</org.slf4j.version>
        <log4j.version>1.2.14</log4j.version>
		<commons-collections.version>3.2.1</commons-collections.version>
		<commons-lang.version>2.4</commons-lang.version>
		<commons-dbcp.version>1.2</commons-dbcp.version>
		<commons-io.version>1.4</commons-io.version>
		<commons-codec.version>1.4</commons-codec.version>
		<commons-beanutils.version>1.8.2</commons-beanutils.version>
		<spring.version>3.0.6.RELEASE</spring.version>
		<spring.security.version>3.0.6.RELEASE</spring.security.version>
		<xstream.version>1.3.1</xstream.version>
		<jackson-mapper-asl.version>1.5.0</jackson-mapper-asl.version>
		<junit.version>4.8.1</junit.version>
		<dbunit.version>2.4.7</dbunit.version>
		<velocity.version>1.6.4</velocity.version>
		<velocity-tools.version>2.0</velocity-tools.version>
		<itext.version>2.0.8</itext.version>
		<flying-saucer.version>8RC1</flying-saucer.version>
		<jtidy.version>r938</jtidy.version>
		<javassist.version>3.4.GA</javassist.version>
		<cglib.version>2.2</cglib.version>
		<mysql-connector.version>5.1.12</mysql-connector.version>
		<javax.mail.version>1.4.1</javax.mail.version>
		<hsqldb.version>2.2.6</hsqldb.version>
		<ojdbc5.jar.version>11.1.0.7.0</ojdbc5.jar.version>
		<jsf-api-2.0.version>1.0.0.Final</jsf-api-2.0.version>
		<liquibase.version>2.0.3</liquibase.version>
	</properties>

    <dependencies>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${hibernate.version}</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${hibernate.version}</version>
            <classifier>sources</classifier>
        </dependency>

<!--
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>${hibernate-annotations.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.hibernate</groupId>
                    <artifactId>hibernate</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
-->

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>${hibernate-validator.version}</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-commons-annotations</artifactId>
            <version>${hibernate-commons-annotations.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.hibernate</groupId>
                    <artifactId>hibernate</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- Need to have this in here to prevent Jboss 4 from supplying its own jar of the incompatible version -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-search</artifactId>
            <version>${hibernate-search.version}</version>
        </dependency>

<!--
	    <dependency>
		    <groupId>org.hibernate</groupId>
		    <artifactId>ejb3-persistence</artifactId>
		    <version>3.3.2.Beta1</version>
		    <packaging>pom</packaging>
	    </dependency>
-->

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</version>
            <scope>provided</scope>
        </dependency>
	    
	    <dependency>
		    <groupId>org.springframework.security</groupId>
		    <artifactId>spring-security-web</artifactId>
		    <version>${spring.security.version}</version>
		    <scope>provided</scope>
	    </dependency>

		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-ldap</artifactId>
			<version>${spring.security.version}</version>
			<scope>provided</scope>
		</dependency>

	    <dependency>
	        <groupId>org.springframework</groupId>
	        <artifactId>spring-webmvc</artifactId>
	        <version>${spring.version}</version>
	        <scope>provided</scope>
	    </dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>${spring.version}</version>
            <scope>provided</scope>
 		</dependency>

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>${spring.version}</version>
            <exclusions>
                <!-- Exclude Commons Logging in favor of SLF4 -->
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
	    
	    <dependency>
	        <groupId>commons-lang</groupId>
	        <artifactId>commons-lang</artifactId>
	        <version>${commons-lang.version}</version>
	    </dependency>

        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>${commons-beanutils.version}</version>
        </dependency>

        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>${commons-dbcp.version}</version>
        </dependency>

        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>${commons-collections.version}</version>
        </dependency>

		<dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>${commons-io.version}</version>
		</dependency>

		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>${commons-codec.version}</version>
		</dependency>

		<dependency>
            <groupId>com.thoughtworks.xstream</groupId>
            <artifactId>xstream</artifactId>
            <version>${xstream.version}</version>
		</dependency>
	    
        <!-- JSON data mapper -->
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>${jackson-mapper-asl.version}</version>
        </dependency>
	    
		<dependency>
		    <groupId>org.dbunit</groupId>
		    <artifactId>dbunit</artifactId>
		    <version>${dbunit.version}</version>
		</dependency>

        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>${javax.mail.version}</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>${velocity.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-tools</artifactId>
            <version>${velocity-tools.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.struts</groupId>
                    <artifactId>struts-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.struts</groupId>
                    <artifactId>struts-taglib</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.struts</groupId>
                    <artifactId>struts-tiles</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
	    
		<dependency>
			<groupId>cglib</groupId>
			<artifactId>cglib-nodep</artifactId>
			<version>${cglib.version}</version>
		</dependency>

	    <dependency>
	         <groupId>com.lowagie</groupId>
	         <artifactId>itext</artifactId>
	         <version>${itext.version}</version>
	     </dependency>

	     <dependency>
	         <groupId>de.huxhorn.lilith</groupId>
	         <artifactId>de.huxhorn.lilith.3rdparty.flyingsaucer.core-renderer</artifactId>
	         <version>${flying-saucer.version}</version>
	     </dependency>

		<dependency>
			<groupId>net.sf.jtidy</groupId>
			<artifactId>jtidy</artifactId>
			<version>${jtidy.version}</version>
		</dependency>

	    <dependency>
		    <groupId>log4j</groupId>
		    <artifactId>log4j</artifactId>
		    <version>${log4j.version}</version>
		    <exclusions>
			    <exclusion>
				    <groupId>javax.mail</groupId>
				    <artifactId>mail</artifactId>
			    </exclusion>
			    <exclusion>
				    <groupId>javax.jms</groupId>
				    <artifactId>jms</artifactId>
			    </exclusion>
			    <exclusion>
				    <groupId>com.sun.jdmk</groupId>
				    <artifactId>jmxtools</artifactId>
			    </exclusion>
			    <exclusion>
				    <groupId>com.sun.jmx</groupId>
				    <artifactId>jmxri</artifactId>
			    </exclusion>
		    </exclusions>
	    </dependency>

        <!-- Simple Logging Facade for Java -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${org.slf4j.version}</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${org.slf4j.version}</version>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j.version}</version>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>${javassist.version}</version>
        </dependency>

	    <dependency>
			<groupId>org.jboss.spec.javax.faces</groupId>
			<artifactId>jboss-jsf-api_2.0_spec</artifactId>
			<version>${jsf-api-2.0.version}</version>
		</dependency>

	    <dependency>
		    <groupId>javax.el</groupId>
		    <artifactId>el-api</artifactId>
		    <version>1.0</version>
		    <scope>provided</scope>
	    </dependency>

		<dependency>
			<groupId>org.hsqldb</groupId>
			<artifactId>hsqldb</artifactId>
			<version>${hsqldb.version}</version>
		</dependency>

	    <dependency>
		    <groupId>mysql</groupId>
		    <artifactId>mysql-connector-java</artifactId>
		    <version>${mysql-connector.version}</version>
	    </dependency>

		<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>ojdbc5.jar</artifactId>
			<version>${ojdbc5.jar.version}</version>
			<scope>test</scope>
		</dependency>

	    <dependency>
		    <groupId>org.liquibase</groupId>
		    <artifactId>liquibase-core</artifactId>
		    <version>${liquibase.version}</version>
	    </dependency>

	    <dependency>
		    <groupId>org.apache.poi</groupId>
		    <artifactId>poi</artifactId>
		    <version>3.7</version>
		    <scope>provided</scope>
	    </dependency>

	</dependencies>

	<build>
	    <finalName>${project.artifactId}-${project.version}</finalName>

        <plugins>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.3.2</version>
				<configuration>
					<source>1.5</source>
					<target>1.5</target>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>2.1.2</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <formats>
                        <format>html</format>
                    </formats>
                </configuration>
            </plugin>
		</plugins>
		<testResources>
			<testResource>
				<directory>src/test/resources</directory>
				<filtering>true</filtering>
				<includes>
					<include>**/*.properties</include>
					<include>**/*.xml</include>
				</includes>
			</testResource>
		</testResources>
	</build>

	<profiles>
		<!-- Use this profile if you want to do development against a database with persistent schema elements and data. -->
		<profile>
			<id>dev</id>
			<properties>
				<jdbc.driverClassName>com.mysql.jdbc.Driver</jdbc.driverClassName>
				<jdbc.url>jdbc:mysql://localhost/pww_commons</jdbc.url>
				<jdbc.username>pww_commons</jdbc.username>
				<jdbc.password>pww_commons</jdbc.password>
				<hibernate.dialect>org.hibernate.dialect.MySQLInnoDBDialect</hibernate.dialect>
				<hibernate.formatSql>true</hibernate.formatSql>
				<hibernate.hbm2ddl>update</hibernate.hbm2ddl>
				<internal.repository.url>http://nexus.portlandwebworks.com/nexus/content/repositories/PWW-Internal</internal.repository.url>
				<third-party.repository.url>http://nexus.portlandwebworks.com/nexus/content/repositories/thirdparty</third-party.repository.url>
				<central.repository.url>http://nexus.portlandwebworks.com/nexus/content/repositories/central-proxy/</central.repository.url>
				<jboss.repository.url>http://nexus.portlandwebworks.com/nexus/content/repositories/jboss-proxy</jboss.repository.url>
			</properties>
		</profile>
		<!-- Use this profile if you just want to run unit tests. -->
		<profile>
			<id>test</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<properties>
				<jdbc.driverClassName>org.hsqldb.jdbcDriver</jdbc.driverClassName>
				<jdbc.url>jdbc:hsqldb:mem:test</jdbc.url>
				<jdbc.username>sa</jdbc.username>
                <jdbc.password />
				<hibernate.dialect>com.portlandwebworks.commons.hibernate.CustomHSQLDialect</hibernate.dialect>
				<hibernate.formatSql>true</hibernate.formatSql>
				<hibernate.hbm2ddl>create</hibernate.hbm2ddl>
				<internal.repository.url>http://nexus.portlandwebworks.com/nexus/content/repositories/PWW-Internal</internal.repository.url>
				<third-party.repository.url>http://nexus.portlandwebworks.com/nexus/content/repositories/thirdparty</third-party.repository.url>
				<central.repository.url>http://nexus.portlandwebworks.com/nexus/content/repositories/central-proxy/</central.repository.url>
				<jboss.repository.url>http://nexus.portlandwebworks.com/nexus/content/repositories/jboss-proxy</jboss.repository.url>
			</properties>
		</profile>
	</profiles>

</project>
		
