<?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>16</version>
        <relativePath>../bundles-pom/pom.xml</relativePath>
    </parent>

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

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

    <properties>
        <pkgGroupId>org.springframework</pkgGroupId>
        <pkgArtifactId>spring-webflux</pkgArtifactId>
        <pkgVersion>6.1.2</pkgVersion>
	      <servicemix.osgi.source.version>6.1.2.1</servicemix.osgi.source.version>
        <servicemix.osgi.export.pkg>
            org.springframework
        </servicemix.osgi.export.pkg>
        <servicemix.osgi.import.pkg>
            freemarker.cache;resolution:=optional,
	freemarker.core;resolution:=optional,
	freemarker.template;resolution:=optional,
	io.netty.buffer;resolution:=optional,
	io.netty.channel;resolution:=optional,
	io.netty.handler.codec.http;resolution:=optional,
	io.netty.handler.codec.http.websocketx;resolution:=optional,
	io.undertow.connector;resolution:=optional,
	io.undertow.server;resolution:=optional,
	io.undertow.websockets;resolution:=optional,
	io.undertow.websockets.client;resolution:=optional,
	io.undertow.websockets.core;resolution:=optional,
	io.undertow.websockets.core.protocol.version13;resolution:=optional,
	io.undertow.websockets.spi;resolution:=optional,
	javax.script,
	javax.servlet,
	javax.servlet.http,
	javax.websocket,
	javax.websocket.server,
	kotlin;resolution:=optional,
	kotlin.coroutines;resolution:=optional,
	kotlin.coroutines.intrinsics;resolution:=optional,
	kotlin.coroutines.jvm.internal;resolution:=optional,
	kotlin.jvm;resolution:=optional,
	kotlin.jvm.functions;resolution:=optional,
	kotlin.jvm.internal;resolution:=optional,
	kotlin.reflect;resolution:=optional,
	kotlinx.coroutines;resolution:=optional,
	kotlinx.coroutines.flow;resolution:=optional,
	kotlinx.coroutines.reactive;resolution:=optional,
	kotlinx.coroutines.reactor;resolution:=optional,
	org.aopalliance.aop,
	org.aopalliance.intercept,
	org.apache.commons.logging,
	org.apache.tomcat.websocket;resolution:=optional,
	org.apache.tomcat.websocket.server;resolution:=optional,
	org.eclipse.jetty.websocket.api;resolution:=optional,
	org.eclipse.jetty.websocket.api.annotations;resolution:=optional,
	org.eclipse.jetty.websocket.api.extensions;resolution:=optional,
	org.eclipse.jetty.websocket.client;resolution:=optional,
	org.eclipse.jetty.websocket.client.io;resolution:=optional,
	org.eclipse.jetty.websocket.server;resolution:=optional,
	org.eclipse.jetty.websocket.servlet;resolution:=optional,
	org.reactivestreams;version="[1.0,2)";resolution:=optional,
	org.springframework.aop.framework;version="[${pkgVersion},6.2)",
	org.springframework.aop.support;version="[${pkgVersion},6.2)",
	org.springframework.aop.target;version="[${pkgVersion},6.2)",
	org.springframework.beans;version="[${pkgVersion},6.2)",
	org.springframework.beans.factory;version="[${pkgVersion},6.2)",
	org.springframework.beans.factory.annotation;version="[${pkgVersion},6.2)",
	org.springframework.beans.factory.aot;version="[${pkgVersion},6.2)",
	org.springframework.beans.factory.config;version="[${pkgVersion},6.2)",
	org.springframework.cache;version="[${pkgVersion},6.2)",
	org.springframework.cache.concurrent;version="[${pkgVersion},6.2)",
	org.springframework.context;version="[${pkgVersion},6.2)",
	org.springframework.context.annotation;version="[${pkgVersion},6.2)",
	org.springframework.context.event;version="[${pkgVersion},6.2)",
	org.springframework.context.i18n;version="[${pkgVersion},6.2)",
	org.springframework.context.support;version="[${pkgVersion},6.2)",
	org.springframework.core;version="[${pkgVersion},6.2)",
	org.springframework.core.annotation;version="[${pkgVersion},6.2)",
	org.springframework.core.codec;version="[${pkgVersion},6.2)",
	org.springframework.core.convert;version="[${pkgVersion},6.2)",
	org.springframework.core.io;version="[${pkgVersion},6.2)",
	org.springframework.core.io.buffer;version="[${pkgVersion},6.2)",
	org.springframework.core.log;version="[${pkgVersion},6.2)",
	org.springframework.format;version="[${pkgVersion},6.2)",
	org.springframework.format.support;version="[${pkgVersion},6.2)",
	org.springframework.http;version="[${pkgVersion},6.2)",
	org.springframework.http.client;version="[${pkgVersion},6.2)",
	org.springframework.http.client.reactive;version="[${pkgVersion},6.2)",
	org.springframework.http.codec;version="[${pkgVersion},6.2)",
	org.springframework.http.codec.multipart;version="[${pkgVersion},6.2)",
	org.springframework.http.converter;version="[${pkgVersion},6.2)",
	org.springframework.http.server;version="[${pkgVersion},6.2)",
	org.springframework.http.server.reactive;version="[${pkgVersion},6.2)",
	org.springframework.lang;version="[${pkgVersion},6.2)",
	org.springframework.scripting.support;version="[${pkgVersion},6.2)",
	org.springframework.stereotype;version="[${pkgVersion},6.2)",
	org.springframework.ui;version="[${pkgVersion},6.2)",
	org.springframework.ui.freemarker;version="[${pkgVersion},6.2)";resolution:=optional,
	org.springframework.util;version="[${pkgVersion},6.2)",
	org.springframework.validation;version="[${pkgVersion},6.2)",
	org.springframework.validation.annotation;version="[${pkgVersion},6.2)",
	org.springframework.validation.support;version="[${pkgVersion},6.2)",
	org.springframework.web.bind;version="[${pkgVersion},6.2)",
	org.springframework.web.bind.annotation;version="[${pkgVersion},6.2)",
	org.springframework.web.bind.support;version="[${pkgVersion},6.2)",
	org.springframework.web.cors;version="[${pkgVersion},6.2)",
	org.springframework.web.cors.reactive;version="[${pkgVersion},6.2)",
	org.springframework.web.method;version="[${pkgVersion},6.2)",
	org.springframework.web.method.annotation;version="[${pkgVersion},6.2)",
	org.springframework.web.server;version="[${pkgVersion},6.2)",
	org.springframework.web.server.adapter;version="[${pkgVersion},6.2)",
	org.springframework.web.server.handler;version="[${pkgVersion},6.2)",
	org.springframework.web.server.i18n;version="[${pkgVersion},6.2)",
	org.springframework.web.util;version="[${pkgVersion},6.2)",
	org.springframework.web.util.pattern;version="[${pkgVersion},6.2)",
	org.webjars;resolution:=optional,
	org.xnio;resolution:=optional,
	reactor.core;version="[3.4,4)";resolution:=optional,
	reactor.core.publisher;version="[3.4,4)";resolution:=optional,
	reactor.core.scheduler;version="[3.4,4)";resolution:=optional,
	reactor.netty;resolution:=optional,
	reactor.netty.channel;resolution:=optional,
	reactor.netty.http.client;resolution:=optional,
	reactor.netty.http.server;resolution:=optional,
	reactor.netty.http.websocket;resolution:=optional,
	reactor.util.concurrent;version="[3.4,4)";resolution:=optional,
	reactor.util.context;version="[3.4,4)";resolution:=optional,
	reactor.util.function;version="[3.4,4)";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-expression</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context-support</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-web</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-expression</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context-support</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-web</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>**/*.properties</include>
                                        <include>**/*.ftl</include>
                                        <include>**/*.vm</include>
                                        <include>**/*.gif</include>
                                        <include>**/*.xsd</include>
                                        <include>META-INF/spring*</include>
                                    </includes>
                                </filter>
                            </filters>
                            <promoteTransitiveDependencies>true</promoteTransitiveDependencies>
                            <createDependencyReducedPom>true</createDependencyReducedPom>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
