<?xml version="1.0"?>
<!--
     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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache.felix.atomos.examples</groupId>
        <artifactId>org.apache.felix.atomos.examples</artifactId>
        <version>1.0.1-SNAPSHOT</version>
    </parent>
    <artifactId>org.apache.felix.atomos.examples.jaxrs</artifactId>
    <name>atomos.examples.jaxrs</name>
    <description>Atomos example using Aries JAX-RS</description>

    <properties>
        <jaxb.version>2.3.3</jaxb.version>
        <aries.jaxrs.version>1.0.9</aries.jaxrs.version>
    </properties>

    <profiles>
        <profile>
            <id>default-compile</id>
            <dependencies>
                <dependency>
                   <groupId>org.osgi</groupId>
                    <artifactId>osgi.core</artifactId>
                </dependency>
            </dependencies>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>equinox</id>
            <dependencies>
                <dependency>
                    <groupId>org.eclipse.platform</groupId>
                    <artifactId>org.eclipse.osgi</artifactId>
                </dependency>
            </dependencies>
        </profile>
        <profile>
            <id>felix</id>
            <dependencies>
                <dependency>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>org.apache.felix.framework</artifactId>
                </dependency>
                <dependency>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>org.apache.felix.log</artifactId>
                </dependency>
            </dependencies>
        </profile>
    </profiles>

    <dependencies>
        <dependency>
            <groupId>org.apache.felix</groupId>
            <artifactId>org.apache.felix.atomos</artifactId>
            <version>1.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.apache.felix.atomos.examples</groupId>
            <artifactId>org.apache.felix.atomos.examples.webconsole.bom</artifactId>
            <version>1.0.1-SNAPSHOT</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>org.apache.felix.atomos.examples</groupId>
            <artifactId>org.apache.felix.atomos.examples.jaxrs.bundle</artifactId>
            <version>1.0.1-SNAPSHOT</version>
            <scope>runtime</scope>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.sun.activation</groupId>
            <artifactId>jakarta.activation</artifactId>
            <version>1.2.2</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-osgi</artifactId>
            <version>2.3.3</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>jakarta.xml.bind</groupId>
            <artifactId>jakarta.xml.bind-api</artifactId>
            <version>${jaxb.version}</version>
            <scope>runtime</scope>
            <exclusions>
                <exclusion>
                    <groupId>jakarta.activation</groupId>
                    <artifactId>jakarta.activation-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>jakarta.annotation</groupId>
                    <artifactId>jakarta.annotation-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>jakarta.xml.soap</groupId>
            <artifactId>jakarta.xml.soap-api</artifactId>
            <version>1.4.2</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>jakarta.xml.ws</groupId>
            <artifactId>jakarta.xml.ws-api</artifactId>
            <version>2.3.3</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.service.jaxrs</artifactId>
            <version>1.0.0</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.aries.jax.rs</groupId>
            <artifactId>org.apache.aries.jax.rs.whiteboard</artifactId>
            <version>${aries.jaxrs.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.aries.spifly</groupId>
            <artifactId>org.apache.aries.spifly.dynamic.framework.extension</artifactId>
            <version>1.3.0</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-annotation_1.3_spec</artifactId>
            <version>1.1</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jaxrs_2.1_spec</artifactId>
            <version>1.1</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-nop</artifactId>
            <version>1.7.2</version>
            <scope>runtime</scope>
        </dependency>

    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>atomos-maven-plugin</artifactId>
                <version>0.9.1-SNAPSHOT</version>
                <configuration>
                    <nativeImage>
                        <debug>true</debug>
                        <additionalInitializeAtBuildTime>
                            <additionalInitializeAtBuildTime>org.apache.felix.atomos</additionalInitializeAtBuildTime>
                            <additionalInitializeAtBuildTime>javax.servlet</additionalInitializeAtBuildTime>
                            <additionalInitializeAtBuildTime>org.apache.felix.service.command.Converter</additionalInitializeAtBuildTime>
                            <additionalInitializeAtBuildTime>org.eclipse.jetty.util.TypeUtil</additionalInitializeAtBuildTime>
                            <additionalInitializeAtBuildTime>org.eclipse.jetty.http.HttpTokens</additionalInitializeAtBuildTime>
                            <additionalInitializeAtBuildTime>org.eclipse.jetty.util.log.Log</additionalInitializeAtBuildTime>
                            <additionalInitializeAtBuildTime>org.eclipse.jetty.util.log.StdErrLog</additionalInitializeAtBuildTime>
                            <additionalInitializeAtBuildTime>org.eclipse.jetty.util.Uptime</additionalInitializeAtBuildTime>
                            <additionalInitializeAtBuildTime>org.eclipse.jetty.server.HttpOutput</additionalInitializeAtBuildTime>
                            <additionalInitializeAtBuildTime>org.eclipse.jetty.util.ModuleLocation</additionalInitializeAtBuildTime>
                            <additionalInitializeAtBuildTime>org.slf4j</additionalInitializeAtBuildTime>
                            <additionalInitializeAtBuildTime>org.slf4j.impl</additionalInitializeAtBuildTime>
                            <additionalInitializeAtBuildTime>org.apache.cxf.bus.managers.DestinationFactoryManagerImpl</additionalInitializeAtBuildTime>
                            <additionalInitializeAtBuildTime>org.apache.cxf.bus.managers.ConduitInitiatorManagerImpl</additionalInitializeAtBuildTime>
                            <additionalInitializeAtBuildTime>org.apache.cxf.bus.managers.BindingFactoryManagerImpl</additionalInitializeAtBuildTime>
                        </additionalInitializeAtBuildTime>
                        <resourceConfigurationFiles>
                            <resourceConfigurationFile>additionalResourceConfig.json</resourceConfigurationFile>
                            <resourceConfigurationFile>resourceAgentConfig.json</resourceConfigurationFile>
                        </resourceConfigurationFiles>
                        <dynamicProxyConfigurationFiles>
                            <dynamicProxyConfigurationFile>proxy_config.json</dynamicProxyConfigurationFile>
                        </dynamicProxyConfigurationFiles>

                        <reflectionConfigurationFiles>
                            <reflectionConfigurationFile>reflectConfig_felix_atomos.json</reflectionConfigurationFile>
                            <reflectionConfigurationFile>reflectConfig_felix_gogo.json</reflectionConfigurationFile>
                            <reflectionConfigurationFile>reflectConfig_felix_web.json</reflectionConfigurationFile>
                            <reflectionConfigurationFile>reflectConfig_jdk.json</reflectionConfigurationFile>
                            <reflectionConfigurationFile>reflectConfig_jetty.json</reflectionConfigurationFile>
                            <reflectionConfigurationFile>reflectAgentConfig.json</reflectionConfigurationFile>
                        </reflectionConfigurationFiles>
                    </nativeImage>
                </configuration>
                <executions>
                    <execution>
                        <id>native-jaxrs-build</id>
                        <goals>
                            <goal>atomos-native-image</goal>
                        </goals>
                        <phase>package</phase>
                    </execution>
                    <execution>
                        <id>index-jaxrs-build</id>
                        <goals>
                            <goal>atomos-index</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.4</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>org.apache.felix.atomos.Atomos</mainClass>
                                </transformer>
                            </transformers>
                            <filters>
                                <filter>
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/*.SF</exclude>
                                        <exclude>META-INF/*.DSA</exclude>
                                        <exclude>META-INF/*.RSA</exclude>
                                    </excludes>
                                </filter>
                            </filters>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>
