<?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 http://maven.apache.org/maven-v4_0_0.xsd">
  <parent>
    <artifactId>shared-parent</artifactId>
    <groupId>org.apache.directory.shared</groupId>
    <version>0.9.12-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.directory.shared</groupId>
  <artifactId>shared-bouncycastle-reduced</artifactId>
  <name>Apache Directory Reduced Bouncycastle (repackaged)</name>
  <description>
    Repackages the BouncyCastle jar including only those files we require
    rather than everything which includes patented algorithms like IDEA.
  </description>
  <dependencies>
    <dependency>
      <groupId>bouncycastle</groupId>
      <artifactId>bcprov-jdk15</artifactId>
      <version>136</version>
      <exclusions>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>1.0.1</version>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <artifactSet>
                <excludes>
                  <exclude>org.slf4j:slf4j-api</exclude>
                </excludes>
              </artifactSet>
              <filters>
                <filter>
                  <artifact>bouncycastle:bcprov-jdk15</artifact>
                  <!-- includes contains some of the bc classes needed for startTLS functionality.  List is not yet complete-->
                  <!-- It is much easier to experiment with the installer noarch bundle which is extracting files from bc directly -->
<!--
                  <includes>
                    <include>org/bouncycastle/jce/provider/BouncyCastleProvider.class</include>
                    <include>org/bouncycastle/x509/X509V1CertificateGenerator.class</include>
                    <include>org/bouncycastle/jce/interfaces/ConfigurableProvider.class</include>
                    <include>org/bouncycastle/jce/provider/symmetric/AESMappings.class</include>
                    <include>org/bouncycastle/asn1/nist/NISTObjectIdentifiers.class</include>
                    <include>org/bouncycastle/asn1/DERObjectIdentifier.class</include>
                    <include>org/bouncycastle/asn1/ASN1Object.class</include>
                    <include>org/bouncycastle/asn1/DERObject.class</include>
                    <include>org/bouncycastle/asn1/DERTags.class</include>
                    <include>org/bouncycastle/asn1/ASN1Encodable.class</include>
                    <include>org/bouncycastle/asn1/DEREncodable.class</include>
                    <include>org/bouncycastle/jce/provider/symmetric/CamelliaMappings.class</include>
                    <include>org/bouncycastle/asn1/ntt/NTTObjectIdentifiers.class</include>
                  </includes>
-->
                  <excludes>
                    <!-- signature files -->
                    <exclude>META-INF/BCKEY.SF</exclude>
                    <exclude>META-INF/BCKEY.DSA</exclude>
                    <!-- IDEA patent implementation -->
                    <exclude>org/bouncycastle/crypto/engines/IDEAEngine.class</exclude>
                    <exclude>org/bouncycastle/asn1/misc/IDEACBCPar.class</exclude>
                    <exclude>org/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator$IDEA.class</exclude>
                    <exclude>org/bouncycastle/jce/provider/JCEKeyGenerator$IDEA.class</exclude>
                    <exclude>org/bouncycastle/jce/provider/JCEBlockCipher$IDEA.class</exclude>
                    <exclude>org/bouncycastle/jce/provider/JCESecretKeyFactory$PBEWithSHAAndIDEA.class</exclude>
                    <exclude>org/bouncycastle/jce/provider/JCEBlockCipher$PBEWithSHAAndIDEA.class</exclude>
                    <exclude>org/bouncycastle/jce/provider/JDKAlgorithmParameters$IDEAAlgorithmParameters.class</exclude>
                    <exclude>org/bouncycastle/jce/provider/JCEStreamCipher$IDEA_OFB8.class</exclude>
                    <exclude>org/bouncycastle/jce/provider/JCEMac$IDEACFB8.class</exclude>
                    <exclude>org/bouncycastle/jce/provider/JCEBlockCipher$IDEACBC.class</exclude>
                    <exclude>org/bouncycastle/jce/provider/JCEMac$IDEA.class</exclude>
                    <exclude>org/bouncycastle/jce/provider/JCEStreamCipher$IDEA_CFB8.class</exclude>
                  </excludes>
                </filter>
              </filters>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
