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

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

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

    <parent>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2</artifactId>
        <version>1.7.1</version>
        <relativePath>../../pom.xml</relativePath>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <artifactId>org.apache.axis2.osgi</artifactId>
    <packaging>bundle</packaging>
    <name>Apache Axis2 - OSGi Integration</name>
    <description>Apache Axis2 OSGi Integration</description>
    <url>http://axis.apache.org/axis2/java/core/</url>
    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/axis/axis2/java/core/tags/v1.7.1/modules/osgi</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/core/tags/v1.7.1/modules/osgi</developerConnection>
        <url>http://svn.apache.org/viewvc/axis/axis2/java/core/tags/v1.7.1/modules/osgi</url>
    </scm>
    <build>
        <sourceDirectory>src</sourceDirectory>
        <resources>
            <resource>
                <directory>resources</directory>
                <filtering>false</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <artifactId>maven-remote-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>
                            <resourceBundles>
                                <resourceBundle>org.apache.axis2:axis2-resource-bundle:${project.version}</resourceBundle>
                            </resourceBundles>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <extensions>true</extensions>
                <configuration>
                    <instructions>
                        <Bundle-Version>1.0.0.${project.version}</Bundle-Version>
                        <Bundle-Name>${project.artifactId}</Bundle-Name>
                        <Bundle-Vendor>Apache Axis2, 2008</Bundle-Vendor>
                        <Bundle-Description>${project.description}</Bundle-Description>
                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                        <Export-Package>
                            !org.apache.axis2.osgi.internal,
                            org.apache.axis2.osgi.*; version=1.0.0,
                            org.apache.axis2.*;-split-package:=merge-last; version=1.5,
                        </Export-Package>
                        <Import-Package>
                            !javax.xml.namespace,
                            !org.apache.axis2.*,
                            javax.ws.rs; version=1.0,
                            javax.xml.namespace; version=0.0.0,
                            javax.servlet; version=2.4.0,
                            javax.servlet.http; version=2.4.0,
                            javax.transaction,
                            org.apache.commons.io,
                            org.osgi.framework; version=1.3.0,
                            org.osgi.service.http; version=1.2.0,
                            org.osgi.util.tracker; version=1.3.1,
                            org.osgi.service.log; version=1.3,
                            org.osgi.service.cm; version=1.2.0,
                            com.ibm.wsdl.util.xml,
                            com.ibm.wsdl,
                            javax.activation;version="1.1",
                            javax.jws;version="2.0",
                            javax.jms;version="1.1",
                            javax.mail;version="1.4",
                            javax.management,
                            javax.mail.internet;version="1.4",
                            javax.mail.util;version="1.4",
                            javax.naming;resolution:=optional,
                            javax.rmi;resolution:=optional,
                            javax.wsdl,
                            javax.wsdl.extensions.*,
                            javax.wsdl.factory,
                            javax.wsdl.xml,
                            javax.net.*,
                            javax.xml.parsers;resolution:=optional,
                            javax.xml.stream;resolution:=optional;version="1.0",
                            javax.xml.transform;resolution:=optional,
                            javax.xml.transform.dom;resolution:=optional,
                            javax.xml.transform.stream;resolution:=optional,
                            javax.xml.datatype.*,
                            org.apache.axiom.*,
                            org.apache.commons.fileupload.*,
                            org.apache.commons.httpclient.*,
                            org.apache.commons.lang;resolution:=optional,
                            org.apache.commons.logging,
                            org.apache.http;resolution:=optional,
                            org.apache.http.entity;resolution:=optional,
                            org.apache.http.impl;resolution:=optional,
                            org.apache.http.impl.entity;resolution:=optional,
                            org.apache.http.impl.io;resolution:=optional,
                            org.apache.http.impl.auth;resolution:=optional,
                            org.apache.http.impl.conn;resolution:=optional,
                            org.apache.http.io;resolution:=optional,
                            org.apache.http.message;resolution:=optional,
                            org.apache.http.params;resolution:=optional,
                            org.apache.http.protocol;resolution:=optional,
                            org.apache.http.util;resolution:=optional,
                            org.apache.neethi,
                            org.apache.woden.*;version="0.0.0",
                            org.apache.ws.commons.schema.*,
                            org.w3c.dom;resolution:=optional,
                            org.w3c.dom.traversal;resolution:=optional,
                            org.xml.sax;resolution:=optional,
                            org.apache.http.client.*,
                            org.apache.http.auth;resolution:=optional,
                            org.apache.http.auth.params;resolution:=optional,
                            org.apache.http.conn;resolution:=optional,
                            org.apache.http.conn.params;resolution:=optional,
                            org.apache.http.conn.scheme;resolution:=optional,
                            org.apache.http.conn.ssl;resolution:=optional,
                            org.apache.http.impl.client;resolution:=optional,
                            org.apache.http.impl.conn.tsccm;resolution:=optional
                        </Import-Package>
                        <Private-Package>
                            org.apache.axis2.osgi.internal,
                        </Private-Package>
                        <Bundle-Activator>
                            org.apache.axis2.osgi.internal.Activator
                        </Bundle-Activator>
                        <Export-Service>
                            org.apache.axis2.context.ConfigurationContext
                        </Export-Service>
                        <Bundle-RequiredExecutionEnvironment>
                            J2SE-1.5
                        </Bundle-RequiredExecutionEnvironment>
                    </instructions>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.4</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-adb</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-kernel</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.felix</groupId>
            <artifactId>org.osgi.core</artifactId>
            <version>1.0.0</version>
            <scope>provided</scope>
        </dependency>
         <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-transport-http</artifactId>
            <version>${project.version}</version>
        </dependency>
         <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-transport-local</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.felix</groupId>
            <artifactId>org.osgi.compendium</artifactId>
            <version>1.0.0</version>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>javax.servlet</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>org.osgi.foundation</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>


</project>
