<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
 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.
-->

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

<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.geronimo.plugins</groupId>
        <artifactId>system-database</artifactId>
        <version>2.2.1</version>
    </parent>

    <artifactId>sysdb-console-jetty</artifactId>
    <name>Geronimo Plugins, Console :: System Database (Jetty)</name>
    <packaging>car</packaging>
    <description>
        Geronimo Administration Console System Database Portlet Plugin allows users to view information about the internal database and run SQL scripts.
    </description>


    <dependencies>
        <dependency>
            <groupId>org.apache.geronimo.configs</groupId>
            <artifactId>${jetty}-deployer</artifactId>
            <version>${version}</version>
            <type>car</type>
            <scope>provided</scope>
        </dependency>
        
        <dependency>
            <groupId>org.apache.geronimo.configs</groupId>
            <artifactId>jasper-deployer</artifactId>
            <version>${version}</version>
            <type>car</type>
            <scope>provided</scope>
        </dependency>
        
        <dependency>
            <groupId>org.apache.geronimo.plugins</groupId>
            <artifactId>sysdb-portlets</artifactId>
            <version>${version}</version>
            <type>war</type>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.plugins</groupId>
            <artifactId>console-jetty</artifactId>
            <version>${version}</version>
            <type>car</type>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.plugins</groupId>
            <artifactId>console-core</artifactId>
            <version>${version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.configs</groupId>
            <artifactId>system-database</artifactId>
            <version>${version}</version>
            <type>car</type>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.configs</groupId>
            <artifactId>connector-deployer</artifactId>
            <version>${version}</version>
            <type>car</type>
        </dependency>
        
        <dependency>
            <groupId>org.apache.geronimo.framework</groupId>
            <artifactId>geronimo-deploy-jsr88</artifactId>
            <version>${version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.framework</groupId>
            <artifactId>geronimo-gbean-deployer</artifactId>
            <version>${version}</version>
            <type>car</type>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.framework</groupId>
            <artifactId>geronimo-kernel</artifactId>
            <version>${version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.modules</groupId>
            <artifactId>geronimo-converter</artifactId>
            <version>${version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.framework</groupId>
            <artifactId>geronimo-management</artifactId>
            <version>${version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.framework</groupId>
            <artifactId>plugin</artifactId>
            <version>${version}</version>
            <type>car</type>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.modules</groupId>
            <artifactId>geronimo-test-ddbean</artifactId>
            <version>${version}</version>
        </dependency>

        <dependency>
            <groupId>org.tranql</groupId>
            <artifactId>tranql-connector-derby-embed-local</artifactId>
            <type>rar</type>
        </dependency>

        <dependency>
            <groupId>org.tranql</groupId>
            <artifactId>tranql-connector-derby-embed-xa</artifactId>
            <type>rar</type>
        </dependency>

        <dependency>
            <groupId>org.tranql</groupId>
            <artifactId>tranql-connector-ra</artifactId>
            <type>rar</type>
        </dependency>

        <dependency>
            <groupId>org.tranql</groupId>
            <artifactId>tranql-connector-derby-client-local</artifactId>
            <type>rar</type>
        </dependency>

        <dependency>
            <groupId>org.tranql</groupId>
            <artifactId>tranql-connector-derby-client-xa</artifactId>
            <type>rar</type>
        </dependency>

        <dependency>
            <groupId>org.tranql</groupId>
            <artifactId>tranql-connector-db2-xa</artifactId>
            <type>rar</type>
        </dependency>

        <dependency>
            <groupId>org.tranql</groupId>
            <artifactId>tranql-connector-informix-xa</artifactId>
            <type>rar</type>
        </dependency>

        <dependency>
            <groupId>org.tranql</groupId>
            <artifactId>tranql-connector-mysql-local</artifactId>
            <type>rar</type>
        </dependency>

        <dependency>
            <groupId>org.tranql</groupId>
            <artifactId>tranql-connector-mysql-xa</artifactId>
            <type>rar</type>
        </dependency>

        <dependency>
            <groupId>org.tranql</groupId>
            <artifactId>tranql-connector-oracle-local</artifactId>
            <type>rar</type>
        </dependency>

        <dependency>
            <groupId>org.tranql</groupId>
            <artifactId>tranql-connector-oracle-xa</artifactId>
            <type>rar</type>
        </dependency>

        <dependency>
            <groupId>org.tranql</groupId>
            <artifactId>tranql-connector-oracle-rac-local</artifactId>
            <type>rar</type>
        </dependency>

        <dependency>
            <groupId>org.tranql</groupId>
            <artifactId>tranql-connector-postgresql-local</artifactId>
            <type>rar</type>
        </dependency>

        <dependency>
            <groupId>org.tranql</groupId>
            <artifactId>tranql-connector-postgresql-xa</artifactId>
            <type>rar</type>
        </dependency>

        <dependency>
            <groupId>org.tranql</groupId>
            <artifactId>tranql-connector-sqlserver2000-xa</artifactId>
            <type>rar</type>
        </dependency>
        <dependency>
            <groupId>org.tranql</groupId>
            <artifactId>tranql-connector-sqlserver2005-xa</artifactId>
            <type>rar</type>
        </dependency>
        
        <dependency>
            <groupId>org.tranql</groupId>
            <artifactId>tranql-connector-db2ISeries-xa</artifactId>
            <type>rar</type>
        </dependency>

        <dependency>
            <groupId>org.directwebremoting</groupId>
            <artifactId>dwr</artifactId>
        </dependency>

        <dependency>
            <groupId>org.directwebremoting</groupId>
            <artifactId>dwr</artifactId>
        </dependency>

        <!-- for jspc. why is this needed? -->
        <dependency>
            <groupId>org.apache.geronimo.configs</groupId>
            <artifactId>jasper</artifactId>
            <version>${version}</version>
            <type>car</type>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.geronimo.buildsupport</groupId>
                <artifactId>car-maven-plugin</artifactId>
                <configuration>
                    <deploymentConfigs>
                        <deploymentConfig>${gbeanDeployer}</deploymentConfig>
                        <deploymentConfig>${j2eeDeployer}</deploymentConfig>
                        <deploymentConfig>${jettyDeployer}</deploymentConfig>
                        <deploymentConfig>${jasperDeployer}</deploymentConfig>
                    </deploymentConfigs>
                    <module>
                        <groupId>org.apache.geronimo.plugins</groupId>
                        <artifactId>sysdb-portlets</artifactId>
                        <version>${version}</version>
                        <type>war</type>
                    </module>
                    <category>Administration</category>
                    <osiApproved>true</osiApproved>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>
