<?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 :: Kernel</name>
    <id>gbean-kernel</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: kernel for containers</shortDescription>

    <description>
        GBean is a kernel architecture and server for ioc containers such as spring.
    </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>
    </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>

