<?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.6</version>
      <type>kar</type>
    </dependency>
    <dependency>
      <groupId>org.apache.karaf.features</groupId>
      <artifactId>standard</artifactId>
      <version>4.2.6</version>
      <classifier>features</classifier>
      <type>xml</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.karaf.features</groupId>
      <artifactId>enterprise</artifactId>
      <version>4.2.6</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_htl</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.6</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-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-htl</feature>
            <feature>sling-scripting-thymeleaf</feature>
            <!-- Apache Sling Servlets -->
            <feature>sling-servlets</feature>
            <!-- Apache Sling Starter -->
            <feature>sling-starter-content</feature>
            <!-- Apache Felix Healthcheck -->
            <feature>felix-healthcheck</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>
