<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">

    <!--

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

    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.apache.servicemix.bundles</groupId>
        <artifactId>bundles-pom</artifactId>
        <version>12</version>
        <relativePath>../bundles-pom/pom.xml</relativePath>
    </parent>

    <groupId>org.apache.servicemix.bundles</groupId>
    <artifactId>org.apache.servicemix.bundles.spring-context</artifactId>
    <version>4.3.1.RELEASE_2-SNAPSHOT</version>
    <packaging>bundle</packaging>
    <name>Apache ServiceMix :: Bundles :: ${pkgArtifactId}</name>

    <scm>
        <connection>scm:git:https://git-wip-us.apache.org/repos/asf/servicemix-bundles.git</connection>
        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/servicemix-bundles.git</developerConnection>
        <url>https://git-wip-us.apache.org/repos/asf?p=servicemix-bundles.git</url>
    <tag>HEAD</tag>
  </scm>

    <properties>
        <pkgGroupId>org.springframework</pkgGroupId>
        <pkgArtifactId>spring-context</pkgArtifactId>
        <pkgVersion>4.3.1.RELEASE</pkgVersion>
        <servicemix.osgi.export.pkg>
            org.springframework
        </servicemix.osgi.export.pkg>
        <servicemix.osgi.import.pkg>
            bsh;version="[2,3)";resolution:=optional,
            com.ibm.websphere.management;resolution:=optional,
            com.sun.net.httpserver;resolution:=optional,
            edu.emory.mathcs.backport.java.util.concurrent;version="[3,4)";resolution:=optional,
            groovy.lang;version="[2.4,3)";resolution:=optional,
            javax.annotation;resolution:=optional,
            javax.ejb;resolution:=optional,
            javax.enterprise.concurrent;resolution:=optional,
            javax.inject;resolution:=optional,
            javax.interceptor;resolution:=optional,
            javax.jms;resolution:=optional,
            javax.management;resolution:=optional,
            javax.management.modelmbean;resolution:=optional,
            javax.management.openmbean;resolution:=optional,
            javax.management.remote;resolution:=optional,
            javax.money;resolution:=optional, 
            javax.money.format;resolution:=optional,
            javax.naming;resolution:=optional,
            javax.persistence;resolution:=optional,
            javax.persistence.spi;resolution:=optional,
            javax.rmi;resolution:=optional,
            javax.script;resolution:=optional,
            javax.validation;resolution:=optional,
            javax.validation.bootstrap;resolution:=optional,
            javax.validation.metadata;resolution:=optional,
            javax.xml.namespace;resolution:=optional,
            javax.xml.ws;resolution:=optional,
            org.aopalliance.aop;version="[1,2)";resolution:=optional,
            org.aopalliance.intercept;version="[1,2)";resolution:=optional,
            org.apache.commons.logging;version="[1.1.1,2)";resolution:=optional,
            org.aspectj.weaver.loadtime;version="[1.8.6,2)";resolution:=optional,
            org.codehaus.groovy.control;version="[2.4,3)";resolution:=optional,
            org.hibernate.validator;version="[4,5)";resolution:=optional,
            org.hibernate.validator.messageinterpolation;version="[4,5)";resolution:=optional,
            org.hibernate.validator.method;version="[4,5)";resolution:=optional,
            org.hibernate.validator.resourceloading;version="[4,5)";resolution:=optional,
            org.hibernate.validator.spi.resourceloading;version="[4,5)";resolution:=optional,
            org.joda.time;version="[2,3)";resolution:=optional,
            org.joda.time.format;version="[2,3)";resolution:=optional,
            org.jruby;version="[1.7,2)";resolution:=optional,
            org.jruby.ast;version="[1.7,2)";resolution:=optional,
            org.jruby.exceptions;version="[1.7,2)";resolution:=optional,
            org.jruby.javasupport;version="[1.7,2)";resolution:=optional,
            org.jruby.runtime;version="[1.7,2)";resolution:=optional,
            org.jruby.runtime.builtin;version="[1.7,2)";resolution:=optional,
            org.omg.CORBA;resolution:=optional,
            org.springframework.aop;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.aop.config;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.aop.framework;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.aop.framework.adapter;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.aop.interceptor;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.aop.scope;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.aop.support;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.aop.support.annotation;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.aop.target;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.aop.target.dynamic;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.aop.framework.autoproxy;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.asm;version="[${pkgVersion},4.4)",
            org.springframework.beans;version="[${pkgVersion},4.4)",
            org.springframework.beans.annotation;version="[${pkgVersion},4.4)",
            org.springframework.beans.factory;version="[${pkgVersion},4.4)",
            org.springframework.beans.factory.access;version="[${pkgVersion},4.4)",
            org.springframework.beans.factory.annotation;version="[${pkgVersion},4.4)",
            org.springframework.beans.factory.config;version="[${pkgVersion},4.4)",
            org.springframework.beans.factory.parsing;version="[${pkgVersion},4.4)",
            org.springframework.beans.factory.support;version="[${pkgVersion},4.4)",
            org.springframework.beans.factory.xml;version="[${pkgVersion},4.4)",
            org.springframework.beans.factory.groovy;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.beans.propertyeditors;version="[${pkgVersion},4.4)",
            org.springframework.beans.support;version="[${pkgVersion},4.4)",
            org.springframework.cglib.core;version="[${pkgVersion},4.4)",
            org.springframework.cglib.proxy;version="[${pkgVersion},4.4)",
            org.springframework.cglib.transform;version="[${pkgVersion},4.4)",
            org.springframework.core;version="[${pkgVersion},4.4)",
            org.springframework.core.annotation;version="[${pkgVersion},4.4)",
            org.springframework.core.convert;version="[${pkgVersion},4.4)",
            org.springframework.core.convert.converter;version="[${pkgVersion},4.4)",
            org.springframework.core.convert.support;version="[${pkgVersion},4.4)",
            org.springframework.core.env;version="[${pkgVersion},4.4)",
            org.springframework.core.io;version="[${pkgVersion},4.4)",
            org.springframework.core.io.support;version="[${pkgVersion},4.4)",
            org.springframework.core.serializer.support;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.core.task;version="[${pkgVersion},4.4)",
            org.springframework.core.task.support;version="[${pkgVersion},4.4)",
            org.springframework.core.type;version="[${pkgVersion},4.4)",
            org.springframework.core.type.classreading;version="[${pkgVersion},4.4)",
            org.springframework.core.type.filter;version="[${pkgVersion},4.4)",
            org.springframework.expression;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.expression.spel;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.expression.spel.standard;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.expression.spel.support;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.instrument;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.objenesis;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.orm.jpa.support;version="[${pkgVersion},4.4)";resolution:=optional,
            org.springframework.util;version="[${pkgVersion},4.4)",
            org.springframework.util.concurrent;version="[${pkgVersion},4.4)",
            org.springframework.util.xml;version="[${pkgVersion},4.4)",
            org.w3c.dom;resolution:=optional,
            org.xml.sax;resolution:=optional
        </servicemix.osgi.import.pkg>
    </properties>

    <dependencies>
        <dependency>
            <groupId>${pkgGroupId}</groupId>
            <artifactId>${pkgArtifactId}</artifactId>
            <version>${pkgVersion}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-aop</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-beans</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-expression</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- sources -->
        <dependency>
            <groupId>${pkgGroupId}</groupId>
            <artifactId>${pkgArtifactId}</artifactId>
            <version>${pkgVersion}</version>
            <classifier>sources</classifier>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-aop</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-beans</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-expression</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <artifactSet>
                                <includes>
                                    <include>${pkgGroupId}:${pkgArtifactId}</include>
                                </includes>
                            </artifactSet>
                            <filters>
                                <filter>
                                    <artifact>${pkgGroupId}:${pkgArtifactId}</artifact>
                                    <includes>
                                        <include>**/*.gif</include>
                                        <include>**/*.xsd</include>
                                        <include>**/*.xml</include>
                                        <include>META-INF/spring*</include>
                                    </includes>
                                </filter>
                            </filters>
                            <promoteTransitiveDependencies>true</promoteTransitiveDependencies>
                            <createDependencyReducedPom>true</createDependencyReducedPom>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
