<?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/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

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

  <artifactId>org.apache.sling.karaf-configs</artifactId>
  <version>0.1.1-SNAPSHOT</version>

  <name>Apache Sling - Karaf Configs</name>
  <description>Apache Sling configurations for provisioning with Apache Karaf</description>

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

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludes combine.children="append">
            <exclude>**/*.config</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>attach-artifact</goal>
            </goals>
            <configuration>
              <artifacts>
                <artifact>
                  <classifier>org.apache.felix.jaas.Configuration.factory-GuestLoginModule</classifier>
                  <file>src/main/resources/org.apache.felix.jaas.Configuration.factory-GuestLoginModule.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.felix.jaas.Configuration.factory-LoginModuleImpl</classifier>
                  <file>src/main/resources/org.apache.felix.jaas.Configuration.factory-LoginModuleImpl.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.felix.jaas.Configuration.factory-TokenLoginModule</classifier>
                  <file>src/main/resources/org.apache.felix.jaas.Configuration.factory-TokenLoginModule.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.felix.jaas.ConfigurationSpi</classifier>
                  <file>src/main/resources/org.apache.felix.jaas.ConfigurationSpi.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService</classifier>
                  <file>src/main/resources/org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService</classifier>
                  <file>src/main/resources/org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.jackrabbit.oak.segment.SegmentNodeStoreService</classifier>
                  <file>src/main/resources/org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl</classifier>
                  <file>src/main/resources/org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName</classifier>
                  <file>src/main/resources/org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.jackrabbit.oak.security.user.UserConfigurationImpl</classifier>
                  <file>src/main/resources/org.apache.jackrabbit.oak.security.user.UserConfigurationImpl.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider</classifier>
                  <file>src/main/resources/org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment-composum_nodes</classifier>
                  <file>src/main/resources/org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment-composum_nodes.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment-sling</classifier>
                  <file>src/main/resources/org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment-sling.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling</classifier>
                  <file>src/main/resources/org.apache.sling.jcr.repoinit.RepositoryInitializer-sling.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_caconfig</classifier>
                  <file>src/main/resources/org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_caconfig.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_clam</classifier>
                  <file>src/main/resources/org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_clam.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_discovery</classifier>
                  <file>src/main/resources/org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_discovery.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_event</classifier>
                  <file>src/main/resources/org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_event.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_i18n</classifier>
                  <file>src/main/resources/org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_i18n.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_installer_jcr</classifier>
                  <file>src/main/resources/org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_installer_jcr.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_mapping</classifier>
                  <file>src/main/resources/org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_mapping.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_readall</classifier>
                  <file>src/main/resources/org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_readall.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_scripting</classifier>
                  <file>src/main/resources/org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_scripting.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_validation</classifier>
                  <file>src/main/resources/org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_validation.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_xss</classifier>
                  <file>src/main/resources/org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_xss.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-event</classifier>
                  <file>src/main/resources/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-event.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-caconfig</classifier>
                  <file>src/main/resources/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-caconfig.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-clam</classifier>
                  <file>src/main/resources/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-clam.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-discovery</classifier>
                  <file>src/main/resources/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-discovery.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-i18n</classifier>
                  <file>src/main/resources/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-i18n.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-installer_jcr</classifier>
                  <file>src/main/resources/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-installer_jcr.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-jcr_resource</classifier>
                  <file>src/main/resources/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-jcr_resource.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-resource_presence</classifier>
                  <file>src/main/resources/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-resource_presence.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-resourceresolver</classifier>
                  <file>src/main/resources/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-resourceresolver.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-servlets</classifier>
                  <file>src/main/resources/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-servlets.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-rewriter</classifier>
                  <file>src/main/resources/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-rewriter.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-scripting</classifier>
                  <file>src/main/resources/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-scripting.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-scripting_htl</classifier>
                  <file>src/main/resources/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-scripting_htl.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-scripting_thymeleaf</classifier>
                  <file>src/main/resources/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-scripting_thymeleaf.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-validation</classifier>
                  <file>src/main/resources/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-validation.config</file>
                  <type>config</type>
                </artifact>
                <artifact>
                  <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-xss</classifier>
                  <file>src/main/resources/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-xss.config</file>
                  <type>config</type>
                </artifact>
              </artifacts>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>
