<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
* Copyright 2005 the original author or authors.
*
*  Licensed 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>
    <!-- the version of maven's project object model -->
    <pomVersion>3</pomVersion>

    <name>GBean :: Server</name>
    <id>gbean-server</id>
    <groupId>gbean</groupId>
    <currentVersion>1.0-SNAPSHOT</currentVersion>
    <organization>
        <name>GBean.org</name>
        <url>http://gbean.org</url>
    </organization>

    <package>org.gbean</package>

    <shortDescription>GBean: generic server components</shortDescription>

    <description>
        The GBean server module contains generic services useful in a server environment.
    </description>

    <url>http://www.gbean.org/</url>

    <siteAddress>www.gbean.org</siteAddress>
    <siteDirectory>/home/projects/gbean/public_html/maven</siteDirectory>

    <mailingLists>
        <mailingList>
            <name>gbean developers</name>
            <subscribe>mailto:dev-subscribe@gbean.org</subscribe>
            <unsubscribe>mailto:dev-unsubscribe@gbean.org</unsubscribe>
        </mailingList>
        <mailingList>
            <name>gbean users</name>
            <subscribe>mailto:user-subscribe@gbean.org</subscribe>
            <unsubscribe>mailto:user-unsubscribe@gbean.org</unsubscribe>
        </mailingList>
        <mailingList>
            <name>gbean source control messages</name>
            <subscribe>mailto:scm-subscribe@gbean.org</subscribe>
            <unsubscribe>mailto:scm-unsubscribe@gbean.org</unsubscribe>
        </mailingList>
    </mailingLists>

    <dependencies>
        <dependency>
            <groupId>backport-util-concurrent</groupId>
            <artifactId>backport-util-concurrent</artifactId>
            <version>2.0_01_pd</version>
        </dependency>
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib-nodep</artifactId>
            <version>2.1_2</version>
            <type>test</type>
        </dependency>
        <dependency>
            <groupId>gbean</groupId>
            <artifactId>gbean-kernel</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>mx4j</groupId>
            <artifactId>mx4j</artifactId>
            <version>3.0.1</version>
        </dependency>
    </dependencies>

    <build>
        <sourceDirectory>src/java</sourceDirectory>
        <unitTestSourceDirectory>src/test</unitTestSourceDirectory>
        <unitTest>
            <includes>
                <include>**/*Test.java</include>
            </includes>
        </unitTest>
    </build>

    <reports>
        <!-- <report>maven-license-plugin</report> -->
        <!-- <report>maven-checkstyle-plugin</report>-->
        <!-- <report>maven-pmd-plugin</report> -->
        <!-- <report>maven-simian-plugin</report> -->
        <!-- <report>maven-jdepend-plugin</report> -->
        <!-- <report>maven-changelog-plugin</report> -->
        <!-- <report>maven-statcvs-plugin</report> -->
        <!-- <report>maven-file-activity-plugin</report> -->
        <!-- <report>maven-developer-activity-plugin</report> -->
        <report>maven-jxr-plugin</report>
        <report>maven-javadoc-plugin</report>
        <report>maven-junit-report-plugin</report>
        <!-- <report>maven-faq-plugin</report> -->
        <!-- <report>maven-clover-plugin</report>-->
        <!-- <report>maven-changes-plugin</report>-->
    </reports>

</project>

