<?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>34</version>
    <relativePath/>
  </parent>

  <artifactId>org.apache.sling.karaf-distribution</artifactId>
  <version>0.1.1-SNAPSHOT</version>
  <packaging>karaf-assembly</packaging>

  <name>Apache Sling - Karaf Distribution</name>
  <description>Apache Sling Karaf Distribution</description>

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

  <!-- https://github.com/apache/karaf/blob/master/assemblies/apache-karaf/pom.xml -->

  <dependencies>
    <dependency>
      <groupId>org.apache.karaf.features</groupId>
      <artifactId>framework</artifactId>
      <version>4.2.2</version>
      <type>kar</type>
    </dependency>
    <dependency>
      <groupId>org.apache.karaf.features</groupId>
      <artifactId>standard</artifactId>
      <version>4.2.2</version>
      <classifier>features</classifier>
      <type>xml</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.karaf.features</groupId>
      <artifactId>enterprise</artifactId>
      <version>4.2.2</version>
      <classifier>features</classifier>
      <type>xml</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-features</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>features</classifier>
      <type>xml</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.felix.jaas.Configuration.factory-GuestLoginModule</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.felix.jaas.Configuration.factory-LoginModuleImpl</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.felix.jaas.Configuration.factory-TokenLoginModule</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.felix.jaas.ConfigurationSpi</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.jackrabbit.oak.security.user.UserConfigurationImpl</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.jackrabbit.oak.segment.SegmentNodeStoreService</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment-composum</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment-sling</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_caconfig</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_clam</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_discovery</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_event</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_i18n</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_installer_jcr</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_scripting</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_validation</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_xss</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.nosql.couchbase.client.CouchbaseClient.factory.config-default</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.nosql.couchbase.resourceprovider.CouchbaseNoSqlResourceProviderFactory.factory.config-default</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.nosql.mongodb.resourceprovider.MongoDBNoSqlResourceProviderFactory.factory.config-default</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-caconfig</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-clam</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-discovery</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-event</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-i18n</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-installer_jcr</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-jcr_resource</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-resource_presence</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-resourceresolver</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-rewriter</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-scripting</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-scripting_sightly</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-scripting_thymeleaf</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-servlets</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-validation</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>0.1.1-SNAPSHOT</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-xss</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>ianal-maven-plugin</artifactId>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.karaf.tooling</groupId>
        <artifactId>karaf-maven-plugin</artifactId>
        <version>4.2.2</version>
        <extensions>true</extensions>
        <executions>
          <execution>
            <id>process-resources</id>
            <phase>process-resources</phase>
            <goals>
              <goal>assembly</goal>
            </goals>
          </execution>
          <execution>
            <id>package</id>
            <goals>
              <goal>archive</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <installedFeatures>
            <!-- Apache Karaf (default) -->
            <feature>wrapper</feature>
            <!-- Apache Karaf (additional for Sling)-->
            <feature>http</feature>
            <feature>http-whiteboard</feature>
            <feature>scr</feature>
            <feature>webconsole</feature>
            <!-- Apache Sling -->
            <feature>sling</feature>
            <!-- Apache Sling Auth -->
            <feature>sling-auth-form</feature>
            <!-- Apache Sling Commons -->
            <feature>sling-commons-compiler</feature>
            <feature>sling-commons-clam</feature>
            <feature>sling-commons-classloader</feature>
            <feature>sling-commons-fsclassloader</feature>
            <feature>sling-commons-html</feature>
            <feature>sling-commons-messaging</feature>
            <feature>sling-commons-messaging-mail</feature>
            <feature>sling-commons-metrics</feature>
            <feature>sling-commons-scheduler</feature>
            <feature>sling-commons-threads</feature>
            <!-- Apache Sling Extensions -->
            <feature>sling-adapter</feature>
            <feature>sling-bundleresource</feature>
            <feature>sling-caconfig</feature>
            <feature>sling-clam</feature>
            <feature>sling-discovery</feature>
            <feature>sling-discovery-oak</feature>
            <feature>sling-discovery-standalone</feature>
            <feature>sling-distribution</feature>
            <feature>sling-event</feature>
            <feature>sling-featureflags</feature>
            <feature>sling-fsresource</feature>
            <feature>sling-healthcheck</feature>
            <feature>sling-i18n</feature>
            <feature>sling-jmx-provider</feature>
            <feature>sling-models</feature>
            <feature>sling-models-jacksonexporter</feature>
            <feature>sling-pipes</feature>
            <feature>sling-query</feature>
            <feature>sling-resource-inventory</feature>
            <feature>sling-resource-presence</feature>
            <feature>sling-resourcemerger</feature>
            <feature>sling-rewriter</feature>
            <feature>sling-security</feature>
            <feature>sling-extensions-threaddump</feature>
            <feature>sling-urlrewriter</feature>
            <feature>sling-validation</feature>
            <feature>sling-xss</feature>
            <!-- Apache Sling Installer -->
            <feature>sling-installer</feature>
            <feature>sling-installer-healthcheck</feature>
            <feature>sling-installer-provider-file</feature>
            <feature>sling-installer-provider-jcr</feature>
            <!-- Apache Sling JCR -->
            <feature>sling-jcr</feature>
            <feature>sling-jcr-compiler</feature>
            <feature>sling-jcr-jackrabbit-security</feature>
            <feature>sling-jcr-repoinit</feature>
            <!-- Apache Sling NoSQL -->
            <feature>sling-nosql-couchbase</feature>
            <feature>sling-nosql-generic</feature>
            <feature>sling-nosql-mongodb</feature>
            <!-- Apache Sling Quickstart -->
            <feature>sling-quickstart-nosql-couchbase</feature>
            <feature>sling-quickstart-nosql-mongodb</feature>
            <feature>sling-quickstart-oak</feature>
            <feature>sling-quickstart-oak-mongo</feature>
            <feature>sling-quickstart-oak-tar</feature>
            <!-- Apache Sling Scripting -->
            <feature>sling-scripting</feature>
            <feature>sling-scripting-freemarker</feature>
            <feature>sling-scripting-groovy</feature>
            <feature>sling-scripting-java</feature>
            <feature>sling-scripting-javascript</feature>
            <feature>sling-scripting-jsp</feature>
            <feature>sling-scripting-sightly</feature>
            <feature>sling-scripting-thymeleaf</feature>
            <!-- Apache Sling Servlets -->
            <feature>sling-servlets</feature>
            <!-- Apache Sling Starter -->
            <feature>sling-starter-content</feature>
            <!-- Apache Jackrabbit -->
            <feature>jackrabbit</feature>
            <feature>jackrabbit-oak</feature>
            <feature>jackrabbit-vault</feature>
            <!-- Apache Tika -->
            <feature>tika</feature>
            <!-- Apache Sling Samples -->
            <feature>sling-samples-fling</feature>
            <!-- Composum -->
            <feature>composum</feature>
          </installedFeatures>
          <startupFeatures>
            <feature>eventadmin</feature>
          </startupFeatures>
          <bootFeatures>
            <feature>wrap</feature>
            <feature>shell</feature>
            <feature>feature</feature>
            <feature>jaas</feature>
            <feature>ssh</feature>
            <feature>management</feature>
            <feature>bundle</feature>
            <feature>config</feature>
            <feature>deployer</feature>
            <feature>diagnostic</feature>
            <feature>feature</feature>
            <feature>instance</feature>
            <feature>kar</feature>
            <feature>log</feature>
            <feature>package</feature>
            <feature>service</feature>
            <feature>system</feature>
          </bootFeatures>
          <libraries>
          </libraries>
          <javase>1.8</javase>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <phase>prepare-package</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <!-- see maven-remote-resources-plugin in Sling parent -->
                <move file="${project.build.directory}/assembly/META-INF/LICENSE" tofile="${project.build.directory}/assembly/LICENSE"/>
                <move file="${project.build.directory}/assembly/META-INF/NOTICE" tofile="${project.build.directory}/assembly/NOTICE"/>
                <delete dir="${project.build.directory}/assembly/META-INF"/>
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>
