<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright 2005 The Apache Software Foundation

    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.
-->

<!-- $Rev$ $Date$ -->

<project>
    <pomVersion>3</pomVersion>
    <extend>../../etc/project.xml</extend>
    <id>axis</id>
    <name>Axis Configuration for the J2EE Server</name>

    <dependencies>
        <!-- dependency on deployer -->
        <dependency>
            <groupId>geronimo</groupId>
            <artifactId>geronimo-packaging-plugin</artifactId>
            <version>${geronimo_packaging_plugin_version}</version>
            <type>plugin</type>
        </dependency>
        <dependency>
            <groupId>geronimo</groupId>
            <artifactId>geronimo-gbean-deployer</artifactId>
            <version>${geronimo_version}</version>
            <type>car</type>
            <properties>
                <packaging.config.order>1</packaging.config.order>
            </properties>
        </dependency>
        <!-- parent config -->
        <dependency>
            <groupId>geronimo</groupId>
            <artifactId>j2ee-server</artifactId>
            <version>${geronimo_version}</version>
            <type>car</type>
            <properties>
                 <geronimo.import>true</geronimo.import>
             </properties>
        </dependency>

        <dependency>
            <groupId>geronimo</groupId>
            <artifactId>geronimo-axis</artifactId>
            <version>${geronimo_version}</version>
            <properties>
                 <geronimo.dependency>true</geronimo.dependency>
             </properties>
        </dependency>

        <dependency>
            <groupId>geronimo</groupId>
            <artifactId>geronimo-system</artifactId>
            <version>${geronimo_version}</version>
        </dependency>

        <dependency>
            <groupId>geronimo</groupId>
            <artifactId>geronimo-gbean-deployer</artifactId>
            <version>${geronimo_version}</version>
            <type>car</type>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-j2ee_1.4_spec</artifactId>
            <version>${geronimo_spec_j2ee_version}</version>
        </dependency>

        <dependency>
            <groupId>geronimo</groupId>
            <artifactId>geronimo-activation</artifactId>
            <version>${geronimo_version}</version>
        </dependency>
        <dependency>
            <groupId>geronimo</groupId>
            <artifactId>geronimo-management</artifactId>
            <version>${geronimo_version}</version>
        </dependency>
        <dependency>
            <groupId>geronimo</groupId>
            <artifactId>geronimo-j2ee</artifactId>
            <version>${geronimo_version}</version>
        </dependency>
        <dependency>
            <groupId>geronimo</groupId>
            <artifactId>geronimo-naming</artifactId>
            <version>${geronimo_version}</version>
        </dependency>
        <dependency>
            <groupId>geronimo</groupId>
            <artifactId>geronimo-transaction</artifactId>
            <version>${geronimo_version}</version>
        </dependency>
        <dependency>
            <groupId>geronimo</groupId>
            <artifactId>geronimo-security</artifactId>
            <version>${geronimo_version}</version>
        </dependency>
        <dependency>
            <groupId>geronimo</groupId>
            <artifactId>geronimo-jmxremoting</artifactId>
            <version>${geronimo_version}</version>
        </dependency>
        <dependency>
            <groupId>geronimo</groupId>
            <artifactId>geronimo-jetty</artifactId>
            <version>${geronimo_version}</version>
        </dependency>

        <dependency>
            <groupId>concurrent</groupId>
            <artifactId>concurrent</artifactId>
            <version>${concurrent_version}</version>
        </dependency>
        <dependency>
            <groupId>tranql</groupId>
            <artifactId>tranql</artifactId>
            <version>${tranql_version}</version>
        </dependency>
        <dependency>
            <groupId>howl</groupId>
            <artifactId>howl-logger</artifactId>
            <version>${howl_version}</version>
        </dependency>
        <dependency>
            <groupId>antlr</groupId>
            <artifactId>antlr</artifactId>
            <version>${antlr_version}</version>
        </dependency>
        <dependency>
            <groupId>regexp</groupId>
            <artifactId>regexp</artifactId>
            <version>${regexp_version}</version>
        </dependency>

        <dependency>
            <groupId>axis</groupId>
            <artifactId>axis</artifactId>
            <version>${axis_version}</version>
        </dependency>

        <dependency>
            <groupId>commons-discovery</groupId>
            <artifactId>commons-discovery</artifactId>
            <version>${commons_discovery_version}</version>
        </dependency>
    </dependencies>
</project>

