Brian Demers created DIR-344:
--------------------------------

             Summary: Use of shade plugin replaces files required for 
distribution
                 Key: DIR-344
                 URL: https://issues.apache.org/jira/browse/DIR-344
             Project: Directory
          Issue Type: Bug
            Reporter: Brian Demers
            Assignee: Emmanuel Lécharny


The use of the shade plugin causes a handful of warnings in the `service` 
module's build.

Some of these may have legal concerns.  For example, only one `META-INF/NOTICE` 
file is present in most of the dependencies, but only the one from this project 
is present.

There are multiple LICENSE files 
- LICENSE  (Apache v2.0)
- LICENSE-notice.md (refers to other non-existent license files)
- LICENSE.md - (EPL)
- LICENSE.txt (Apache v2.0)

Shading doesn't work with the Java Module System.

And also remove many security constraints that may be in place. 
- Removes signatures
- Module isolation - Java Module System
- Cannot easily verify the provenance of included artifacts.

{noformat}
[WARNING] Discovered module-info.class. Shading will break its strong 
encapsulation.
[WARNING] jetty-http-9.4.51.v20230217.jar, jetty-io-9.4.51.v20230217.jar, 
jetty-security-9.4.51.v20230217.jar, jetty-server-9.4.51.v20230217.jar, 
jetty-servlet-9.4.51.v20230217.jar, jetty-util-9.4.51.v20230217.jar, 
jetty-util-ajax-9.4.51.v20230217.jar, jetty-webapp-9.4.51.v20230217.jar, 
jetty-xml-9.4.51.v20230217.jar define 1 overlapping resource: 
[WARNING]   - about.html
[WARNING] junit-jupiter-api-5.9.3.jar, junit-platform-commons-1.9.3.jar define 
2 overlapping resources: 
[WARNING]   - META-INF/LICENSE-notice.md
[WARNING]   - META-INF/LICENSE.md
[WARNING] apacheds-core-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-annotations-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-api-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-avl-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-constants-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-jndi-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-shared-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-http-directory-bridge-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-http-integration-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-i18n-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptor-kerberos-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-admin-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-authn-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-authz-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-changelog-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-collective-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-event-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-exception-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-hash-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-journal-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-normalization-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-number-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-operational-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-referral-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-schema-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-subtree-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-trigger-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-jdbm-partition-2.0.0.AM27-SNAPSHOT.jar, apacheds-jdbm1-2.0.0-M3.jar, 
apacheds-kerberos-codec-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-ldif-partition-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-mavibot-partition-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-dhcp-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-dns-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-ldap-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-ntp-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-shared-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-server-config-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-service-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-service-builder-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-xdbm-partition-2.0.0.AM27-SNAPSHOT.jar, api-asn1-api-2.1.3.jar, 
api-asn1-ber-2.1.3.jar, api-i18n-2.1.3.jar, api-ldap-client-api-2.1.3.jar, 
api-ldap-codec-core-2.1.3.jar, api-ldap-codec-standalone-2.1.3.jar, 
api-ldap-extras-aci-2.1.3.jar, api-ldap-extras-codec-2.1.3.jar, 
api-ldap-extras-codec-api-2.1.3.jar, api-ldap-extras-sp-2.1.3.jar, 
api-ldap-extras-trigger-2.1.3.jar, api-ldap-extras-util-2.1.3.jar, 
api-ldap-model-2.1.3.jar, api-ldap-net-mina-2.1.3.jar, 
api-ldap-schema-data-2.1.3.jar, api-util-2.1.3.jar, mavibot-1.0.0-M8.jar, 
mina-core-2.2.1.jar, org.apache.servicemix.bundles.antlr-2.7.7_5.jar define 1 
overlapping resource: 
[WARNING]   - META-INF/DEPENDENCIES
[WARNING] apacheds-core-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-annotations-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-api-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-avl-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-constants-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-jndi-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-shared-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-http-directory-bridge-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-http-integration-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-i18n-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptor-kerberos-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-admin-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-authn-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-authz-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-changelog-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-collective-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-event-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-exception-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-hash-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-journal-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-normalization-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-number-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-operational-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-referral-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-schema-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-subtree-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-trigger-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-jdbm-partition-2.0.0.AM27-SNAPSHOT.jar, apacheds-jdbm1-2.0.0-M3.jar, 
apacheds-kerberos-codec-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-ldif-partition-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-mavibot-partition-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-dhcp-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-dns-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-ldap-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-ntp-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-shared-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-server-config-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-service-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-service-builder-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-xdbm-partition-2.0.0.AM27-SNAPSHOT.jar, api-asn1-api-2.1.3.jar, 
api-asn1-ber-2.1.3.jar, api-i18n-2.1.3.jar, api-ldap-client-api-2.1.3.jar, 
api-ldap-codec-core-2.1.3.jar, api-ldap-codec-standalone-2.1.3.jar, 
api-ldap-extras-aci-2.1.3.jar, api-ldap-extras-codec-2.1.3.jar, 
api-ldap-extras-codec-api-2.1.3.jar, api-ldap-extras-sp-2.1.3.jar, 
api-ldap-extras-trigger-2.1.3.jar, api-ldap-extras-util-2.1.3.jar, 
api-ldap-model-2.1.3.jar, api-ldap-net-mina-2.1.3.jar, 
api-ldap-schema-data-2.1.3.jar, api-util-2.1.3.jar, apiguardian-api-1.1.2.jar, 
bcpkix-jdk15on-1.70.jar, bcprov-jdk15on-1.70.jar, bcutil-jdk15on-1.70.jar, 
caffeine-2.9.3.jar, commons-codec-1.15.jar, commons-collections-3.2.2.jar, 
commons-collections4-4.4.jar, commons-lang3-3.12.0.jar, 
commons-pool2-2.11.1.jar, javax.servlet-api-3.1.0.jar, 
jetty-http-9.4.51.v20230217.jar, jetty-io-9.4.51.v20230217.jar, 
jetty-security-9.4.51.v20230217.jar, jetty-server-9.4.51.v20230217.jar, 
jetty-servlet-9.4.51.v20230217.jar, jetty-util-9.4.51.v20230217.jar, 
jetty-util-ajax-9.4.51.v20230217.jar, jetty-webapp-9.4.51.v20230217.jar, 
jetty-xml-9.4.51.v20230217.jar, junit-jupiter-api-5.9.3.jar, 
junit-platform-commons-1.9.3.jar, mavibot-1.0.0-M8.jar, mina-core-2.2.1.jar, 
opentest4j-1.2.0.jar, org.apache.servicemix.bundles.antlr-2.7.7_5.jar, 
reload4j-1.2.19.jar, slf4j-api-1.7.36.jar, slf4j-reload4j-1.7.36.jar define 1 
overlapping resource: 
[WARNING]   - META-INF/MANIFEST.MF
[WARNING] commons-codec-1.15.jar, commons-collections-3.2.2.jar, 
commons-collections4-4.4.jar, commons-lang3-3.12.0.jar, 
commons-pool2-2.11.1.jar, javax.servlet-api-3.1.0.jar define 1 overlapping 
resource: 
[WARNING]   - META-INF/LICENSE.txt
[WARNING] apacheds-core-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-annotations-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-api-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-avl-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-constants-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-jndi-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-shared-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-http-directory-bridge-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-http-integration-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-i18n-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptor-kerberos-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-admin-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-authn-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-authz-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-changelog-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-collective-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-event-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-exception-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-hash-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-journal-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-normalization-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-number-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-operational-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-referral-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-schema-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-subtree-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-trigger-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-jdbm-partition-2.0.0.AM27-SNAPSHOT.jar, apacheds-jdbm1-2.0.0-M3.jar, 
apacheds-kerberos-codec-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-ldif-partition-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-mavibot-partition-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-dhcp-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-dns-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-ldap-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-ntp-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-shared-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-server-config-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-service-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-service-builder-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-xdbm-partition-2.0.0.AM27-SNAPSHOT.jar, api-asn1-api-2.1.3.jar, 
api-asn1-ber-2.1.3.jar, api-i18n-2.1.3.jar, api-ldap-client-api-2.1.3.jar, 
api-ldap-codec-core-2.1.3.jar, api-ldap-codec-standalone-2.1.3.jar, 
api-ldap-extras-aci-2.1.3.jar, api-ldap-extras-codec-2.1.3.jar, 
api-ldap-extras-codec-api-2.1.3.jar, api-ldap-extras-sp-2.1.3.jar, 
api-ldap-extras-trigger-2.1.3.jar, api-ldap-extras-util-2.1.3.jar, 
api-ldap-model-2.1.3.jar, api-ldap-net-mina-2.1.3.jar, 
api-ldap-schema-data-2.1.3.jar, api-util-2.1.3.jar, apiguardian-api-1.1.2.jar, 
caffeine-2.9.3.jar, jetty-http-9.4.51.v20230217.jar, 
jetty-io-9.4.51.v20230217.jar, jetty-security-9.4.51.v20230217.jar, 
jetty-server-9.4.51.v20230217.jar, jetty-servlet-9.4.51.v20230217.jar, 
jetty-util-9.4.51.v20230217.jar, jetty-util-ajax-9.4.51.v20230217.jar, 
jetty-webapp-9.4.51.v20230217.jar, jetty-xml-9.4.51.v20230217.jar, 
mavibot-1.0.0-M8.jar, mina-core-2.2.1.jar, 
org.apache.servicemix.bundles.antlr-2.7.7_5.jar, reload4j-1.2.19.jar define 1 
overlapping resource: 
[WARNING]   - META-INF/LICENSE
[WARNING] bcpkix-jdk15on-1.70.jar, bcprov-jdk15on-1.70.jar, 
bcutil-jdk15on-1.70.jar define 1 overlapping classes: 
[WARNING]   - META-INF.versions.9.module-info
[WARNING] apacheds-core-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-annotations-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-api-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-avl-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-constants-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-jndi-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-core-shared-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-http-directory-bridge-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-http-integration-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-i18n-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptor-kerberos-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-admin-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-authn-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-authz-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-changelog-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-collective-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-event-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-exception-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-hash-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-journal-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-normalization-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-number-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-operational-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-referral-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-schema-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-subtree-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-interceptors-trigger-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-jdbm-partition-2.0.0.AM27-SNAPSHOT.jar, apacheds-jdbm1-2.0.0-M3.jar, 
apacheds-kerberos-codec-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-ldif-partition-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-mavibot-partition-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-dhcp-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-dns-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-ldap-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-ntp-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-protocol-shared-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-server-config-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-service-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-service-builder-2.0.0.AM27-SNAPSHOT.jar, 
apacheds-xdbm-partition-2.0.0.AM27-SNAPSHOT.jar, api-asn1-api-2.1.3.jar, 
api-asn1-ber-2.1.3.jar, api-i18n-2.1.3.jar, api-ldap-client-api-2.1.3.jar, 
api-ldap-codec-core-2.1.3.jar, api-ldap-codec-standalone-2.1.3.jar, 
api-ldap-extras-aci-2.1.3.jar, api-ldap-extras-codec-2.1.3.jar, 
api-ldap-extras-codec-api-2.1.3.jar, api-ldap-extras-sp-2.1.3.jar, 
api-ldap-extras-trigger-2.1.3.jar, api-ldap-extras-util-2.1.3.jar, 
api-ldap-model-2.1.3.jar, api-ldap-net-mina-2.1.3.jar, 
api-ldap-schema-data-2.1.3.jar, api-util-2.1.3.jar, mavibot-1.0.0-M8.jar, 
mina-core-2.2.1.jar, org.apache.servicemix.bundles.antlr-2.7.7_5.jar, 
reload4j-1.2.19.jar define 1 overlapping resource: 
[WARNING]   - META-INF/NOTICE
[WARNING] commons-codec-1.15.jar, commons-collections-3.2.2.jar, 
commons-collections4-4.4.jar, commons-lang3-3.12.0.jar, 
commons-pool2-2.11.1.jar, jetty-http-9.4.51.v20230217.jar, 
jetty-io-9.4.51.v20230217.jar, jetty-security-9.4.51.v20230217.jar, 
jetty-server-9.4.51.v20230217.jar, jetty-servlet-9.4.51.v20230217.jar, 
jetty-util-9.4.51.v20230217.jar, jetty-util-ajax-9.4.51.v20230217.jar, 
jetty-webapp-9.4.51.v20230217.jar, jetty-xml-9.4.51.v20230217.jar define 1 
overlapping resource: 
[WARNING]   - META-INF/NOTICE.txt
[WARNING] maven-shade-plugin has detected that some class files are
[WARNING] present in two or more JARs. When this happens, only one
[WARNING] single version of the class is copied to the uber jar.

{noformat}


Potential solutions

* Use a transformer to merge NOTICES and licenses.
https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html
NOTE: Non-Apache license may need to be relocated.

Replace the use of the shade plugin; for example, the spring-boot-maven-plugin 
creates a jar-of-jars, (think: a self-executing war).  
NOTE: This would require additional changes to the ApacheDS Wrapper

{code}
      <!--
        Using the Spring Boot plugin to combine all dependencies into a single 
jar
        containing everything needed to launch the server. This does NOT 
require 
        the use of Spring Framework or Spring Boot.
       -->
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <version>3.1.0</version>
        <executions>
          <execution>
            <id>uberjar</id>
            <goals>
              <goal>repackage</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@directory.apache.org
For additional commands, e-mail: dev-h...@directory.apache.org

Reply via email to