<?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">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.apache.sling</groupId>
        <artifactId>sling</artifactId>
        <version>35</version>
        <relativePath>../sling-parent</relativePath>
    </parent>

    <groupId>org.apache.sling</groupId>
    <artifactId>sling-bundle-parent</artifactId>
    <packaging>pom</packaging>

    <name>Apache Sling (Bundle Parent)</name>
    <description>The parent project for Apache Sling bundle modules</description>

    <scm>
        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-parent.git</connection>
        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-parent.git</developerConnection>
        <url>https://gitbox.apache.org/repos/asf?p=sling-parent.git</url>
        <tag>sling-parent-reactor-35</tag>
    </scm>

    <properties>
        <bnd.version>4.2.0</bnd.version>
    </properties>

    <build>
        <pluginManagement>
            <plugins>

                <plugin>
                    <groupId>org.apache.sling</groupId>
                    <artifactId>sling-maven-plugin</artifactId>
                    <version>2.4.0</version>
                </plugin>
                <plugin>
                    <groupId>biz.aQute.bnd</groupId>
                    <artifactId>bnd-maven-plugin</artifactId>
                    <version>${bnd.version}</version>
                    <executions>
                        <execution>
                            <id>bnd-process</id>
                            <goals>
                                <goal>bnd-process</goal>
                            </goals>
                            <configuration>
                                <bnd><![CDATA[
# a lot of bundle header are generated from pom elements by default: https://github.com/bndtools/bnd/tree/master/maven/bnd-maven-plugin#default-bundle-headers
Bundle-Category: sling

# export all versioned packages by default
-exportcontents: ${packages;VERSIONED}

# overwrite timestamp format used as qualifier for snapshots to make the resolution higher (i.e. make them differ for each build), 
# compare with https://www.mail-archive.com/dev@sling.apache.org/msg76177.html
-snapshot: ${tstamp;yyyyMMddHHmmssSSS}
                                ]]></bnd>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>biz.aQute.bnd</groupId>
                    <artifactId>bnd-baseline-maven-plugin</artifactId>
                    <version>${bnd.version}</version>
                    <executions>
                        <execution>
                            <id>bnd-baseline</id>
                            <goals>
                                <goal>baseline</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <configuration>
                        <archive>
                            <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
                        </archive>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <executions>
                    <execution>
                        <id>ban-maven-scr-plugin</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <bannedPlugins>
                                    <excludes>
                                        <exclude>org.apache.felix:maven-scr-plugin</exclude>
                                    </excludes>
                                    <message>Felix SCR annotations and the maven-scr-plugin are no longer supported - please migrate to OSGi
                                        annotations or stick with Sling Parent 29.</message>
                                </bannedPlugins>
                            </rules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>ban-felix-scr-annotations</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <bannedDependencies>
                                    <excludes>
                                        <exclude>org.apache.felix:org.apache.felix.scr.annotations</exclude>
                                    </excludes>
                                    <message>Felix SCR annotations and the maven-scr-plugin are no longer supported - please migrate to OSGi
                                        annotations or stick with Sling Parent 29.</message>
                                </bannedDependencies>
                            </rules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>ban-maven-bundle-plugin</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <bannedPlugins>
                                    <excludes>
                                        <exclude>org.apache.felix:maven-bundle-plugin</exclude>
                                    </excludes>
                                    <message>The maven-bundle-plugin is no longer supported - please migrate to bnd-maven-plugin or stick
                                        with Sling Parent 34.</message>
                                </bannedPlugins>
                            </rules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>ban-maven-sling-plugin</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <bannedPlugins>
                                    <excludes>
                                        <exclude>org.apache.sling:maven-sling-plugin</exclude>
                                    </excludes>
                                    <message>Please change all occurences of maven-sling-plugin to sling-maven-plugin (plugin was renamed).</message>
                                  </bannedPlugins>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>biz.aQute.bnd</groupId>
                <artifactId>bnd-maven-plugin</artifactId>
            </plugin>
             <plugin>
                <groupId>biz.aQute.bnd</groupId>
                <artifactId>bnd-baseline-maven-plugin</artifactId>
            </plugin>
        </plugins>

    </build>

    <profiles>
        <profile>
            <!--
                Use this profile to install the OSGi bundle
                automatically, during development
            -->
            <id>autoInstallBundle</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.sling</groupId>
                        <artifactId>sling-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>install-bundle</id>
                                <goals>
                                    <goal>install</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <dependencyManagement>

        <!-- OSGi -->
        <dependencies>
            <!-- Aggregates (rather use individual artifacts referenced below) -->
            <!-- Core R6 -->
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>osgi.core</artifactId>
                <version>6.0.0</version>
                <scope>provided</scope>
            </dependency>
            <!-- Compendium R6 -->
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>osgi.cmpn</artifactId>
                <version>6.0.0</version>
                <scope>provided</scope>
            </dependency>
            <!-- individual OSGi spec API artifacts (preferred) -->
            <!-- OSGi framework 1.8, Core R6 (https://osgi.org/javadoc/r6/core/org/osgi/framework/package-summary.html) -->
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>org.osgi.framework</artifactId>
                <version>1.8.0</version>
                <scope>provided</scope>
            </dependency>
            <!-- Configuration Admin 1.6, Compendium R7 (https://osgi.org/javadoc/osgi.cmpn/7.0.0/org/osgi/service/cm/package-frame.html) -->
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>org.osgi.service.cm</artifactId>
                <version>1.6.0</version>
                <scope>provided</scope>
            </dependency>
            <!-- Service Component 1.4, Compendium R7 (https://osgi.org/javadoc/osgi.cmpn/7.0.0/org/osgi/service/component/package-frame.html) -->
            <!-- and component property types (https://osgi.org/javadoc/osgi.cmpn/7.0.0/org/osgi/service/component/propertytypes/package-frame.html) -->
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>org.osgi.service.component</artifactId>
                <version>1.4.0</version>
                <scope>provided</scope>
            </dependency>
            <!-- Event Admin 1.3.1, Compendium R6 (https://osgi.org/javadoc/r6/cmpn/org/osgi/service/event/package-summary.html) -->
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>org.osgi.service.event</artifactId>
                <version>1.3.1</version>
                <scope>provided</scope>
            </dependency>
            <!-- OSGi annotations (OSGi R7) -->
            <!-- https://osgi.org/javadoc/osgi.annotation/7.0.0/org/osgi/annotation/versioning/package-frame.html -->
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>org.osgi.annotation.versioning</artifactId>
                <version>1.1.0</version>
                <scope>provided</scope>
            </dependency>
            <!-- https://osgi.org/javadoc/osgi.annotation/7.0.0/org/osgi/annotation/bundle/package-frame.html -->
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>org.osgi.annotation.bundle</artifactId>
                <version>1.0.0</version>
                <scope>provided</scope>
            </dependency>
            <!-- https://osgi.org/javadoc/osgi.cmpn/7.0.0/org/osgi/service/component/annotations/package-frame.html -->
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>org.osgi.service.component.annotations</artifactId>
                <version>1.4.0</version>
                <scope>provided</scope>
            </dependency>
            <!-- https://osgi.org/javadoc/osgi.cmpn/7.0.0/org/osgi/service/metatype/annotations/package-frame.html -->
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>org.osgi.service.metatype.annotations</artifactId>
                <version>1.4.0</version>
                <scope>provided</scope>
            </dependency>
            <!-- https://sling.apache.org/apidocs/sling11/org/apache/sling/servlets/annotations/package-summary.html -->
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.servlets.annotations</artifactId>
                <version>1.2.4</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>
