[jira] [Commented] (JAMES-3214) Remove test only libraries from being pulled as transitive dependencies of production artifacts

2020-06-28 Thread Benoit Tellier (Jira)


[ 
https://issues.apache.org/jira/browse/JAMES-3214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17147549#comment-17147549
 ] 

Benoit Tellier commented on JAMES-3214:
---

https://github.com/apache/james-project/pull/209 is related to some of the 
issue comments, and reduced dependencies needed for the CLI (merged)

> Remove test only libraries from being pulled as transitive dependencies of 
> production artifacts
> ---
>
> Key: JAMES-3214
> URL: https://issues.apache.org/jira/browse/JAMES-3214
> Project: James Server
>  Issue Type: Improvement
>Reporter: Ioan Eugen Stan
>Assignee: Ioan Eugen Stan
>Priority: Major
> Attachments: runtimeClasspath.txt
>
>  Time Spent: 4h 20m
>  Remaining Estimate: 0h
>
> assertj-core , equalsverifier, rest-assured (and maybe other libraries) 
> belong to testing (probably more). And they leaked to our "production" builds 
> which depends on just 2 jars from James:
> implementation "org.apache.james:james-server-jpa-guice:${jamesVersion}"
> implementation "org.apache.james:james-server-cli:${jamesVersion}"
> == Context
> I'm working with David @dleangen on the self hosting with Apache James. We 
> built a sandbox to play around and experiment: 
> https://github.com/ieugen/james-self-hosting-sandbox . 
> Current setup is to use gradle + application plugin to build a custom 
> distribution.
> We build a zip distribution that pulls in all the dependencies including the 
> offending ones used in testing.
> The distribution has 137MB unpacked. files just James, without the JRE. 
> On initial inspection it seems there are test only dependencies that are 
> being pulled as transitive dependencies of the 2 dependencies:
> Bellow is a list of top most large dependencies with ls -lSh 
> james-self-hosting-sandbox/lib | head -n 40
> total 132M
> -rw-r--r-- 1 ieugen ieugen  13M iun 12 13:19 icu4j-64.2.jar
> -rw-r--r-- 1 ieugen ieugen  12M iun 12 13:19 testcontainers-1.12.0.jar
> -rw-r--r-- 1 ieugen ieugen 5,5M iun 12 13:19 scala-library-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 5,3M iun 12 13:19 groovy-2.5.6.jar
> -rw-r--r-- 1 ieugen ieugen 5,0M iun 12 13:19 camel-core-2.24.1.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 openjpa-3.1.0.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 bcprov-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 4,2M iun 12 13:19 assertj-core-3.12.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,7M iun 12 13:19 jaxb-osgi-2.2.10.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 scala-reflect-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 lucene-smartcn-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,2M iun 12 13:19 shapeless_2.13-2.3.3.jar
> -rw-r--r-- 1 ieugen ieugen 3,1M mai  3 05:45 derby-10.14.2.0.jar
> -rw-r--r-- 1 ieugen ieugen 2,8M iun 12 13:19 equalsverifier-3.1.9.jar
> -rw-r--r-- 1 ieugen ieugen 2,7M iun 12 13:19 guava-28.1-jre.jar
> -rw-r--r-- 1 ieugen ieugen 2,6M iun 12 13:19 jna-platform-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 2,4M iun 12 13:19 jgroups-3.6.13.Final.jar
> -rw-r--r-- 1 ieugen ieugen 2,2M feb 17 21:24 commons-math3-3.6.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 lucene-core-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 reactor-core-3.3.0.RELEASE.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 jna-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 activemq-client-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 jackson-databind-2.10.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 httpclient-osgi-4.5.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,3M iun 12 13:19 netty-3.10.6.Final.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 activemq-broker-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 lucene-analyzers-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,1M iun 12 13:19 jaxb-impl-2.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 851K iun 12 13:19 bcpkix-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 827K iun 12 13:19 guice-4.2.2.jar
> -rw-r--r-- 1 ieugen ieugen 757K iun 12 13:19 httpclient-4.5.10.jar
> -rw-r--r-- 1 ieugen ieugen 737K iun 12 13:19 commons-collections4-4.3.jar
> -rw-r--r-- 1 ieugen ieugen 732K iun 12 13:19 play-json_2.13-2.8.1.jar
> -rw-r--r-- 1 ieugen ieugen 718K iun 12 13:19 javassist-3.21.0-GA.jar
> -rw-r--r-- 1 ieugen ieugen 715K iun 12 13:19 artemis-core-client-2.9.0.jar
> -rw-r--r-- 1 ieugen ieugen 687K iun 12 13:19 rest-assured-4.0.0.jar
> -rw-r--r-- 1 ieugen ieugen 670K iun 12 13:19 
> activemq-openwire-legacy-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 663K iun 12 13:19 activemq-kahadb-store-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 644K mai  3 05:45 javax.mail-1.6.2.jar
> I believe this is quite big.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

--

[jira] [Commented] (JAMES-3214) Remove test only libraries from being pulled as transitive dependencies of production artifacts

2020-06-19 Thread Ioan Eugen Stan (Jira)


[ 
https://issues.apache.org/jira/browse/JAMES-3214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17140444#comment-17140444
 ] 

Ioan Eugen Stan commented on JAMES-3214:


It's marked as resolved. 
Am I missing something?

> Remove test only libraries from being pulled as transitive dependencies of 
> production artifacts
> ---
>
> Key: JAMES-3214
> URL: https://issues.apache.org/jira/browse/JAMES-3214
> Project: James Server
>  Issue Type: Improvement
>Reporter: Ioan Eugen Stan
>Assignee: Ioan Eugen Stan
>Priority: Major
> Attachments: runtimeClasspath.txt
>
>  Time Spent: 3.5h
>  Remaining Estimate: 0h
>
> assertj-core , equalsverifier, rest-assured (and maybe other libraries) 
> belong to testing (probably more). And they leaked to our "production" builds 
> which depends on just 2 jars from James:
> implementation "org.apache.james:james-server-jpa-guice:${jamesVersion}"
> implementation "org.apache.james:james-server-cli:${jamesVersion}"
> == Context
> I'm working with David @dleangen on the self hosting with Apache James. We 
> built a sandbox to play around and experiment: 
> https://github.com/ieugen/james-self-hosting-sandbox . 
> Current setup is to use gradle + application plugin to build a custom 
> distribution.
> We build a zip distribution that pulls in all the dependencies including the 
> offending ones used in testing.
> The distribution has 137MB unpacked. files just James, without the JRE. 
> On initial inspection it seems there are test only dependencies that are 
> being pulled as transitive dependencies of the 2 dependencies:
> Bellow is a list of top most large dependencies with ls -lSh 
> james-self-hosting-sandbox/lib | head -n 40
> total 132M
> -rw-r--r-- 1 ieugen ieugen  13M iun 12 13:19 icu4j-64.2.jar
> -rw-r--r-- 1 ieugen ieugen  12M iun 12 13:19 testcontainers-1.12.0.jar
> -rw-r--r-- 1 ieugen ieugen 5,5M iun 12 13:19 scala-library-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 5,3M iun 12 13:19 groovy-2.5.6.jar
> -rw-r--r-- 1 ieugen ieugen 5,0M iun 12 13:19 camel-core-2.24.1.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 openjpa-3.1.0.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 bcprov-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 4,2M iun 12 13:19 assertj-core-3.12.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,7M iun 12 13:19 jaxb-osgi-2.2.10.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 scala-reflect-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 lucene-smartcn-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,2M iun 12 13:19 shapeless_2.13-2.3.3.jar
> -rw-r--r-- 1 ieugen ieugen 3,1M mai  3 05:45 derby-10.14.2.0.jar
> -rw-r--r-- 1 ieugen ieugen 2,8M iun 12 13:19 equalsverifier-3.1.9.jar
> -rw-r--r-- 1 ieugen ieugen 2,7M iun 12 13:19 guava-28.1-jre.jar
> -rw-r--r-- 1 ieugen ieugen 2,6M iun 12 13:19 jna-platform-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 2,4M iun 12 13:19 jgroups-3.6.13.Final.jar
> -rw-r--r-- 1 ieugen ieugen 2,2M feb 17 21:24 commons-math3-3.6.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 lucene-core-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 reactor-core-3.3.0.RELEASE.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 jna-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 activemq-client-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 jackson-databind-2.10.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 httpclient-osgi-4.5.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,3M iun 12 13:19 netty-3.10.6.Final.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 activemq-broker-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 lucene-analyzers-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,1M iun 12 13:19 jaxb-impl-2.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 851K iun 12 13:19 bcpkix-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 827K iun 12 13:19 guice-4.2.2.jar
> -rw-r--r-- 1 ieugen ieugen 757K iun 12 13:19 httpclient-4.5.10.jar
> -rw-r--r-- 1 ieugen ieugen 737K iun 12 13:19 commons-collections4-4.3.jar
> -rw-r--r-- 1 ieugen ieugen 732K iun 12 13:19 play-json_2.13-2.8.1.jar
> -rw-r--r-- 1 ieugen ieugen 718K iun 12 13:19 javassist-3.21.0-GA.jar
> -rw-r--r-- 1 ieugen ieugen 715K iun 12 13:19 artemis-core-client-2.9.0.jar
> -rw-r--r-- 1 ieugen ieugen 687K iun 12 13:19 rest-assured-4.0.0.jar
> -rw-r--r-- 1 ieugen ieugen 670K iun 12 13:19 
> activemq-openwire-legacy-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 663K iun 12 13:19 activemq-kahadb-store-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 644K mai  3 05:45 javax.mail-1.6.2.jar
> I believe this is quite big.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional 

[jira] [Commented] (JAMES-3214) Remove test only libraries from being pulled as transitive dependencies of production artifacts

2020-06-18 Thread Benoit Tellier (Jira)


[ 
https://issues.apache.org/jira/browse/JAMES-3214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17140195#comment-17140195
 ] 

Benoit Tellier commented on JAMES-3214:
---

https://github.com/apache/james-project/pull/210 solved it.

Given that test dependencies are no longer present in released artifacts, 
should we consider this done?

> Remove test only libraries from being pulled as transitive dependencies of 
> production artifacts
> ---
>
> Key: JAMES-3214
> URL: https://issues.apache.org/jira/browse/JAMES-3214
> Project: James Server
>  Issue Type: Improvement
>Reporter: Ioan Eugen Stan
>Assignee: Ioan Eugen Stan
>Priority: Major
> Attachments: runtimeClasspath.txt
>
>  Time Spent: 3h 10m
>  Remaining Estimate: 0h
>
> assertj-core , equalsverifier, rest-assured (and maybe other libraries) 
> belong to testing (probably more). And they leaked to our "production" builds 
> which depends on just 2 jars from James:
> implementation "org.apache.james:james-server-jpa-guice:${jamesVersion}"
> implementation "org.apache.james:james-server-cli:${jamesVersion}"
> == Context
> I'm working with David @dleangen on the self hosting with Apache James. We 
> built a sandbox to play around and experiment: 
> https://github.com/ieugen/james-self-hosting-sandbox . 
> Current setup is to use gradle + application plugin to build a custom 
> distribution.
> We build a zip distribution that pulls in all the dependencies including the 
> offending ones used in testing.
> The distribution has 137MB unpacked. files just James, without the JRE. 
> On initial inspection it seems there are test only dependencies that are 
> being pulled as transitive dependencies of the 2 dependencies:
> Bellow is a list of top most large dependencies with ls -lSh 
> james-self-hosting-sandbox/lib | head -n 40
> total 132M
> -rw-r--r-- 1 ieugen ieugen  13M iun 12 13:19 icu4j-64.2.jar
> -rw-r--r-- 1 ieugen ieugen  12M iun 12 13:19 testcontainers-1.12.0.jar
> -rw-r--r-- 1 ieugen ieugen 5,5M iun 12 13:19 scala-library-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 5,3M iun 12 13:19 groovy-2.5.6.jar
> -rw-r--r-- 1 ieugen ieugen 5,0M iun 12 13:19 camel-core-2.24.1.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 openjpa-3.1.0.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 bcprov-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 4,2M iun 12 13:19 assertj-core-3.12.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,7M iun 12 13:19 jaxb-osgi-2.2.10.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 scala-reflect-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 lucene-smartcn-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,2M iun 12 13:19 shapeless_2.13-2.3.3.jar
> -rw-r--r-- 1 ieugen ieugen 3,1M mai  3 05:45 derby-10.14.2.0.jar
> -rw-r--r-- 1 ieugen ieugen 2,8M iun 12 13:19 equalsverifier-3.1.9.jar
> -rw-r--r-- 1 ieugen ieugen 2,7M iun 12 13:19 guava-28.1-jre.jar
> -rw-r--r-- 1 ieugen ieugen 2,6M iun 12 13:19 jna-platform-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 2,4M iun 12 13:19 jgroups-3.6.13.Final.jar
> -rw-r--r-- 1 ieugen ieugen 2,2M feb 17 21:24 commons-math3-3.6.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 lucene-core-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 reactor-core-3.3.0.RELEASE.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 jna-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 activemq-client-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 jackson-databind-2.10.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 httpclient-osgi-4.5.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,3M iun 12 13:19 netty-3.10.6.Final.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 activemq-broker-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 lucene-analyzers-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,1M iun 12 13:19 jaxb-impl-2.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 851K iun 12 13:19 bcpkix-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 827K iun 12 13:19 guice-4.2.2.jar
> -rw-r--r-- 1 ieugen ieugen 757K iun 12 13:19 httpclient-4.5.10.jar
> -rw-r--r-- 1 ieugen ieugen 737K iun 12 13:19 commons-collections4-4.3.jar
> -rw-r--r-- 1 ieugen ieugen 732K iun 12 13:19 play-json_2.13-2.8.1.jar
> -rw-r--r-- 1 ieugen ieugen 718K iun 12 13:19 javassist-3.21.0-GA.jar
> -rw-r--r-- 1 ieugen ieugen 715K iun 12 13:19 artemis-core-client-2.9.0.jar
> -rw-r--r-- 1 ieugen ieugen 687K iun 12 13:19 rest-assured-4.0.0.jar
> -rw-r--r-- 1 ieugen ieugen 670K iun 12 13:19 
> activemq-openwire-legacy-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 663K iun 12 13:19 activemq-kahadb-store-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 644K mai  3 05:45 javax.mail-1.6.2.jar
> I believe this is quite big.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-

[jira] [Commented] (JAMES-3214) Remove test only libraries from being pulled as transitive dependencies of production artifacts

2020-06-15 Thread Benoit Tellier (Jira)


[ 
https://issues.apache.org/jira/browse/JAMES-3214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17135691#comment-17135691
 ] 

Benoit Tellier commented on JAMES-3214:
---

https://github.com/linagora/james-jenkins2/ (work in progress)

> Remove test only libraries from being pulled as transitive dependencies of 
> production artifacts
> ---
>
> Key: JAMES-3214
> URL: https://issues.apache.org/jira/browse/JAMES-3214
> Project: James Server
>  Issue Type: Improvement
>Reporter: Ioan Eugen Stan
>Assignee: Ioan Eugen Stan
>Priority: Major
> Attachments: runtimeClasspath.txt
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> assertj-core , equalsverifier, rest-assured (and maybe other libraries) 
> belong to testing (probably more). And they leaked to our "production" builds 
> which depends on just 2 jars from James:
> implementation "org.apache.james:james-server-jpa-guice:${jamesVersion}"
> implementation "org.apache.james:james-server-cli:${jamesVersion}"
> == Context
> I'm working with David @dleangen on the self hosting with Apache James. We 
> built a sandbox to play around and experiment: 
> https://github.com/ieugen/james-self-hosting-sandbox . 
> Current setup is to use gradle + application plugin to build a custom 
> distribution.
> We build a zip distribution that pulls in all the dependencies including the 
> offending ones used in testing.
> The distribution has 137MB unpacked. files just James, without the JRE. 
> On initial inspection it seems there are test only dependencies that are 
> being pulled as transitive dependencies of the 2 dependencies:
> Bellow is a list of top most large dependencies with ls -lSh 
> james-self-hosting-sandbox/lib | head -n 40
> total 132M
> -rw-r--r-- 1 ieugen ieugen  13M iun 12 13:19 icu4j-64.2.jar
> -rw-r--r-- 1 ieugen ieugen  12M iun 12 13:19 testcontainers-1.12.0.jar
> -rw-r--r-- 1 ieugen ieugen 5,5M iun 12 13:19 scala-library-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 5,3M iun 12 13:19 groovy-2.5.6.jar
> -rw-r--r-- 1 ieugen ieugen 5,0M iun 12 13:19 camel-core-2.24.1.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 openjpa-3.1.0.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 bcprov-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 4,2M iun 12 13:19 assertj-core-3.12.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,7M iun 12 13:19 jaxb-osgi-2.2.10.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 scala-reflect-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 lucene-smartcn-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,2M iun 12 13:19 shapeless_2.13-2.3.3.jar
> -rw-r--r-- 1 ieugen ieugen 3,1M mai  3 05:45 derby-10.14.2.0.jar
> -rw-r--r-- 1 ieugen ieugen 2,8M iun 12 13:19 equalsverifier-3.1.9.jar
> -rw-r--r-- 1 ieugen ieugen 2,7M iun 12 13:19 guava-28.1-jre.jar
> -rw-r--r-- 1 ieugen ieugen 2,6M iun 12 13:19 jna-platform-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 2,4M iun 12 13:19 jgroups-3.6.13.Final.jar
> -rw-r--r-- 1 ieugen ieugen 2,2M feb 17 21:24 commons-math3-3.6.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 lucene-core-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 reactor-core-3.3.0.RELEASE.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 jna-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 activemq-client-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 jackson-databind-2.10.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 httpclient-osgi-4.5.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,3M iun 12 13:19 netty-3.10.6.Final.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 activemq-broker-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 lucene-analyzers-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,1M iun 12 13:19 jaxb-impl-2.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 851K iun 12 13:19 bcpkix-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 827K iun 12 13:19 guice-4.2.2.jar
> -rw-r--r-- 1 ieugen ieugen 757K iun 12 13:19 httpclient-4.5.10.jar
> -rw-r--r-- 1 ieugen ieugen 737K iun 12 13:19 commons-collections4-4.3.jar
> -rw-r--r-- 1 ieugen ieugen 732K iun 12 13:19 play-json_2.13-2.8.1.jar
> -rw-r--r-- 1 ieugen ieugen 718K iun 12 13:19 javassist-3.21.0-GA.jar
> -rw-r--r-- 1 ieugen ieugen 715K iun 12 13:19 artemis-core-client-2.9.0.jar
> -rw-r--r-- 1 ieugen ieugen 687K iun 12 13:19 rest-assured-4.0.0.jar
> -rw-r--r-- 1 ieugen ieugen 670K iun 12 13:19 
> activemq-openwire-legacy-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 663K iun 12 13:19 activemq-kahadb-store-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 644K mai  3 05:45 javax.mail-1.6.2.jar
> I believe this is quite big.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For a

[jira] [Commented] (JAMES-3214) Remove test only libraries from being pulled as transitive dependencies of production artifacts

2020-06-15 Thread Ioan Eugen Stan (Jira)


[ 
https://issues.apache.org/jira/browse/JAMES-3214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17135544#comment-17135544
 ] 

Ioan Eugen Stan commented on JAMES-3214:


Thanks for the links. Lookgin forward to seeing [~aduprat]'s work . 
I will share once I get to that point. 

> Remove test only libraries from being pulled as transitive dependencies of 
> production artifacts
> ---
>
> Key: JAMES-3214
> URL: https://issues.apache.org/jira/browse/JAMES-3214
> Project: James Server
>  Issue Type: Improvement
>Reporter: Ioan Eugen Stan
>Assignee: Ioan Eugen Stan
>Priority: Major
> Attachments: runtimeClasspath.txt
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> assertj-core , equalsverifier, rest-assured (and maybe other libraries) 
> belong to testing (probably more). And they leaked to our "production" builds 
> which depends on just 2 jars from James:
> implementation "org.apache.james:james-server-jpa-guice:${jamesVersion}"
> implementation "org.apache.james:james-server-cli:${jamesVersion}"
> == Context
> I'm working with David @dleangen on the self hosting with Apache James. We 
> built a sandbox to play around and experiment: 
> https://github.com/ieugen/james-self-hosting-sandbox . 
> Current setup is to use gradle + application plugin to build a custom 
> distribution.
> We build a zip distribution that pulls in all the dependencies including the 
> offending ones used in testing.
> The distribution has 137MB unpacked. files just James, without the JRE. 
> On initial inspection it seems there are test only dependencies that are 
> being pulled as transitive dependencies of the 2 dependencies:
> Bellow is a list of top most large dependencies with ls -lSh 
> james-self-hosting-sandbox/lib | head -n 40
> total 132M
> -rw-r--r-- 1 ieugen ieugen  13M iun 12 13:19 icu4j-64.2.jar
> -rw-r--r-- 1 ieugen ieugen  12M iun 12 13:19 testcontainers-1.12.0.jar
> -rw-r--r-- 1 ieugen ieugen 5,5M iun 12 13:19 scala-library-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 5,3M iun 12 13:19 groovy-2.5.6.jar
> -rw-r--r-- 1 ieugen ieugen 5,0M iun 12 13:19 camel-core-2.24.1.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 openjpa-3.1.0.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 bcprov-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 4,2M iun 12 13:19 assertj-core-3.12.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,7M iun 12 13:19 jaxb-osgi-2.2.10.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 scala-reflect-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 lucene-smartcn-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,2M iun 12 13:19 shapeless_2.13-2.3.3.jar
> -rw-r--r-- 1 ieugen ieugen 3,1M mai  3 05:45 derby-10.14.2.0.jar
> -rw-r--r-- 1 ieugen ieugen 2,8M iun 12 13:19 equalsverifier-3.1.9.jar
> -rw-r--r-- 1 ieugen ieugen 2,7M iun 12 13:19 guava-28.1-jre.jar
> -rw-r--r-- 1 ieugen ieugen 2,6M iun 12 13:19 jna-platform-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 2,4M iun 12 13:19 jgroups-3.6.13.Final.jar
> -rw-r--r-- 1 ieugen ieugen 2,2M feb 17 21:24 commons-math3-3.6.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 lucene-core-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 reactor-core-3.3.0.RELEASE.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 jna-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 activemq-client-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 jackson-databind-2.10.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 httpclient-osgi-4.5.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,3M iun 12 13:19 netty-3.10.6.Final.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 activemq-broker-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 lucene-analyzers-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,1M iun 12 13:19 jaxb-impl-2.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 851K iun 12 13:19 bcpkix-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 827K iun 12 13:19 guice-4.2.2.jar
> -rw-r--r-- 1 ieugen ieugen 757K iun 12 13:19 httpclient-4.5.10.jar
> -rw-r--r-- 1 ieugen ieugen 737K iun 12 13:19 commons-collections4-4.3.jar
> -rw-r--r-- 1 ieugen ieugen 732K iun 12 13:19 play-json_2.13-2.8.1.jar
> -rw-r--r-- 1 ieugen ieugen 718K iun 12 13:19 javassist-3.21.0-GA.jar
> -rw-r--r-- 1 ieugen ieugen 715K iun 12 13:19 artemis-core-client-2.9.0.jar
> -rw-r--r-- 1 ieugen ieugen 687K iun 12 13:19 rest-assured-4.0.0.jar
> -rw-r--r-- 1 ieugen ieugen 670K iun 12 13:19 
> activemq-openwire-legacy-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 663K iun 12 13:19 activemq-kahadb-store-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 644K mai  3 05:45 javax.mail-1.6.2.jar
> I believe this is quite big.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mai

[jira] [Commented] (JAMES-3214) Remove test only libraries from being pulled as transitive dependencies of production artifacts

2020-06-15 Thread Benoit Tellier (Jira)


[ 
https://issues.apache.org/jira/browse/JAMES-3214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17135532#comment-17135532
 ] 

Benoit Tellier commented on JAMES-3214:
---

Regarding Jenkins setup, you could get a look at 
https://github.com/linagora/james-jenkins

[~aduprat] is also working on a Jenkins 2 build whose pipeline should live in 
James Apache code.

Don't hesitate to share your setup too.

Hope it helps,

Regards,

Benoit

> Remove test only libraries from being pulled as transitive dependencies of 
> production artifacts
> ---
>
> Key: JAMES-3214
> URL: https://issues.apache.org/jira/browse/JAMES-3214
> Project: James Server
>  Issue Type: Improvement
>Reporter: Ioan Eugen Stan
>Assignee: Ioan Eugen Stan
>Priority: Major
> Attachments: runtimeClasspath.txt
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> assertj-core , equalsverifier, rest-assured (and maybe other libraries) 
> belong to testing (probably more). And they leaked to our "production" builds 
> which depends on just 2 jars from James:
> implementation "org.apache.james:james-server-jpa-guice:${jamesVersion}"
> implementation "org.apache.james:james-server-cli:${jamesVersion}"
> == Context
> I'm working with David @dleangen on the self hosting with Apache James. We 
> built a sandbox to play around and experiment: 
> https://github.com/ieugen/james-self-hosting-sandbox . 
> Current setup is to use gradle + application plugin to build a custom 
> distribution.
> We build a zip distribution that pulls in all the dependencies including the 
> offending ones used in testing.
> The distribution has 137MB unpacked. files just James, without the JRE. 
> On initial inspection it seems there are test only dependencies that are 
> being pulled as transitive dependencies of the 2 dependencies:
> Bellow is a list of top most large dependencies with ls -lSh 
> james-self-hosting-sandbox/lib | head -n 40
> total 132M
> -rw-r--r-- 1 ieugen ieugen  13M iun 12 13:19 icu4j-64.2.jar
> -rw-r--r-- 1 ieugen ieugen  12M iun 12 13:19 testcontainers-1.12.0.jar
> -rw-r--r-- 1 ieugen ieugen 5,5M iun 12 13:19 scala-library-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 5,3M iun 12 13:19 groovy-2.5.6.jar
> -rw-r--r-- 1 ieugen ieugen 5,0M iun 12 13:19 camel-core-2.24.1.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 openjpa-3.1.0.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 bcprov-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 4,2M iun 12 13:19 assertj-core-3.12.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,7M iun 12 13:19 jaxb-osgi-2.2.10.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 scala-reflect-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 lucene-smartcn-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,2M iun 12 13:19 shapeless_2.13-2.3.3.jar
> -rw-r--r-- 1 ieugen ieugen 3,1M mai  3 05:45 derby-10.14.2.0.jar
> -rw-r--r-- 1 ieugen ieugen 2,8M iun 12 13:19 equalsverifier-3.1.9.jar
> -rw-r--r-- 1 ieugen ieugen 2,7M iun 12 13:19 guava-28.1-jre.jar
> -rw-r--r-- 1 ieugen ieugen 2,6M iun 12 13:19 jna-platform-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 2,4M iun 12 13:19 jgroups-3.6.13.Final.jar
> -rw-r--r-- 1 ieugen ieugen 2,2M feb 17 21:24 commons-math3-3.6.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 lucene-core-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 reactor-core-3.3.0.RELEASE.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 jna-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 activemq-client-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 jackson-databind-2.10.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 httpclient-osgi-4.5.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,3M iun 12 13:19 netty-3.10.6.Final.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 activemq-broker-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 lucene-analyzers-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,1M iun 12 13:19 jaxb-impl-2.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 851K iun 12 13:19 bcpkix-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 827K iun 12 13:19 guice-4.2.2.jar
> -rw-r--r-- 1 ieugen ieugen 757K iun 12 13:19 httpclient-4.5.10.jar
> -rw-r--r-- 1 ieugen ieugen 737K iun 12 13:19 commons-collections4-4.3.jar
> -rw-r--r-- 1 ieugen ieugen 732K iun 12 13:19 play-json_2.13-2.8.1.jar
> -rw-r--r-- 1 ieugen ieugen 718K iun 12 13:19 javassist-3.21.0-GA.jar
> -rw-r--r-- 1 ieugen ieugen 715K iun 12 13:19 artemis-core-client-2.9.0.jar
> -rw-r--r-- 1 ieugen ieugen 687K iun 12 13:19 rest-assured-4.0.0.jar
> -rw-r--r-- 1 ieugen ieugen 670K iun 12 13:19 
> activemq-openwire-legacy-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 663K iun 12 13:19 activemq-kahadb-store-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 644K mai  3 05:45 javax.mail-1.6.2.jar
> I believe this is quite big.

[jira] [Commented] (JAMES-3214) Remove test only libraries from being pulled as transitive dependencies of production artifacts

2020-06-15 Thread Ioan Eugen Stan (Jira)


[ 
https://issues.apache.org/jira/browse/JAMES-3214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17135523#comment-17135523
 ] 

Ioan Eugen Stan commented on JAMES-3214:


Thanks for taking the time to fix and test that. I still have a lot of catching 
up to do with making my "local" setup for James development (kubernetes cluster 
with jenskins and automated builds). 

I think you can merge the PR and I'll have another look at the dependency list 
to see what we can pull out of there as well. 
Once that is done, I'll close the issue. 

> Remove test only libraries from being pulled as transitive dependencies of 
> production artifacts
> ---
>
> Key: JAMES-3214
> URL: https://issues.apache.org/jira/browse/JAMES-3214
> Project: James Server
>  Issue Type: Improvement
>Reporter: Ioan Eugen Stan
>Assignee: Ioan Eugen Stan
>Priority: Major
> Attachments: runtimeClasspath.txt
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> assertj-core , equalsverifier, rest-assured (and maybe other libraries) 
> belong to testing (probably more). And they leaked to our "production" builds 
> which depends on just 2 jars from James:
> implementation "org.apache.james:james-server-jpa-guice:${jamesVersion}"
> implementation "org.apache.james:james-server-cli:${jamesVersion}"
> == Context
> I'm working with David @dleangen on the self hosting with Apache James. We 
> built a sandbox to play around and experiment: 
> https://github.com/ieugen/james-self-hosting-sandbox . 
> Current setup is to use gradle + application plugin to build a custom 
> distribution.
> We build a zip distribution that pulls in all the dependencies including the 
> offending ones used in testing.
> The distribution has 137MB unpacked. files just James, without the JRE. 
> On initial inspection it seems there are test only dependencies that are 
> being pulled as transitive dependencies of the 2 dependencies:
> Bellow is a list of top most large dependencies with ls -lSh 
> james-self-hosting-sandbox/lib | head -n 40
> total 132M
> -rw-r--r-- 1 ieugen ieugen  13M iun 12 13:19 icu4j-64.2.jar
> -rw-r--r-- 1 ieugen ieugen  12M iun 12 13:19 testcontainers-1.12.0.jar
> -rw-r--r-- 1 ieugen ieugen 5,5M iun 12 13:19 scala-library-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 5,3M iun 12 13:19 groovy-2.5.6.jar
> -rw-r--r-- 1 ieugen ieugen 5,0M iun 12 13:19 camel-core-2.24.1.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 openjpa-3.1.0.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 bcprov-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 4,2M iun 12 13:19 assertj-core-3.12.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,7M iun 12 13:19 jaxb-osgi-2.2.10.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 scala-reflect-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 lucene-smartcn-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,2M iun 12 13:19 shapeless_2.13-2.3.3.jar
> -rw-r--r-- 1 ieugen ieugen 3,1M mai  3 05:45 derby-10.14.2.0.jar
> -rw-r--r-- 1 ieugen ieugen 2,8M iun 12 13:19 equalsverifier-3.1.9.jar
> -rw-r--r-- 1 ieugen ieugen 2,7M iun 12 13:19 guava-28.1-jre.jar
> -rw-r--r-- 1 ieugen ieugen 2,6M iun 12 13:19 jna-platform-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 2,4M iun 12 13:19 jgroups-3.6.13.Final.jar
> -rw-r--r-- 1 ieugen ieugen 2,2M feb 17 21:24 commons-math3-3.6.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 lucene-core-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 reactor-core-3.3.0.RELEASE.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 jna-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 activemq-client-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 jackson-databind-2.10.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 httpclient-osgi-4.5.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,3M iun 12 13:19 netty-3.10.6.Final.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 activemq-broker-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 lucene-analyzers-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,1M iun 12 13:19 jaxb-impl-2.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 851K iun 12 13:19 bcpkix-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 827K iun 12 13:19 guice-4.2.2.jar
> -rw-r--r-- 1 ieugen ieugen 757K iun 12 13:19 httpclient-4.5.10.jar
> -rw-r--r-- 1 ieugen ieugen 737K iun 12 13:19 commons-collections4-4.3.jar
> -rw-r--r-- 1 ieugen ieugen 732K iun 12 13:19 play-json_2.13-2.8.1.jar
> -rw-r--r-- 1 ieugen ieugen 718K iun 12 13:19 javassist-3.21.0-GA.jar
> -rw-r--r-- 1 ieugen ieugen 715K iun 12 13:19 artemis-core-client-2.9.0.jar
> -rw-r--r-- 1 ieugen ieugen 687K iun 12 13:19 rest-assured-4.0.0.jar
> -rw-r--r-- 1 ieugen ieugen 670K iun 12 13:19 
> activemq-openwire-legacy-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 663K iun 12 13:19 activemq-kahadb-store-5.1

[jira] [Commented] (JAMES-3214) Remove test only libraries from being pulled as transitive dependencies of production artifacts

2020-06-15 Thread Benoit Tellier (Jira)


[ 
https://issues.apache.org/jira/browse/JAMES-3214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17135515#comment-17135515
 ] 

Benoit Tellier commented on JAMES-3214:
---

https://github.com/apache/james-project/pull/207 fixes this and brings down 
dependencies for JPA James server down to 94 MB.

> Remove test only libraries from being pulled as transitive dependencies of 
> production artifacts
> ---
>
> Key: JAMES-3214
> URL: https://issues.apache.org/jira/browse/JAMES-3214
> Project: James Server
>  Issue Type: Improvement
>Reporter: Ioan Eugen Stan
>Priority: Major
> Attachments: runtimeClasspath.txt
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> assertj-core , equalsverifier, rest-assured (and maybe other libraries) 
> belong to testing (probably more). And they leaked to our "production" builds 
> which depends on just 2 jars from James:
> implementation "org.apache.james:james-server-jpa-guice:${jamesVersion}"
> implementation "org.apache.james:james-server-cli:${jamesVersion}"
> == Context
> I'm working with David @dleangen on the self hosting with Apache James. We 
> built a sandbox to play around and experiment: 
> https://github.com/ieugen/james-self-hosting-sandbox . 
> Current setup is to use gradle + application plugin to build a custom 
> distribution.
> We build a zip distribution that pulls in all the dependencies including the 
> offending ones used in testing.
> The distribution has 137MB unpacked. files just James, without the JRE. 
> On initial inspection it seems there are test only dependencies that are 
> being pulled as transitive dependencies of the 2 dependencies:
> Bellow is a list of top most large dependencies with ls -lSh 
> james-self-hosting-sandbox/lib | head -n 40
> total 132M
> -rw-r--r-- 1 ieugen ieugen  13M iun 12 13:19 icu4j-64.2.jar
> -rw-r--r-- 1 ieugen ieugen  12M iun 12 13:19 testcontainers-1.12.0.jar
> -rw-r--r-- 1 ieugen ieugen 5,5M iun 12 13:19 scala-library-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 5,3M iun 12 13:19 groovy-2.5.6.jar
> -rw-r--r-- 1 ieugen ieugen 5,0M iun 12 13:19 camel-core-2.24.1.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 openjpa-3.1.0.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 bcprov-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 4,2M iun 12 13:19 assertj-core-3.12.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,7M iun 12 13:19 jaxb-osgi-2.2.10.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 scala-reflect-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 lucene-smartcn-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,2M iun 12 13:19 shapeless_2.13-2.3.3.jar
> -rw-r--r-- 1 ieugen ieugen 3,1M mai  3 05:45 derby-10.14.2.0.jar
> -rw-r--r-- 1 ieugen ieugen 2,8M iun 12 13:19 equalsverifier-3.1.9.jar
> -rw-r--r-- 1 ieugen ieugen 2,7M iun 12 13:19 guava-28.1-jre.jar
> -rw-r--r-- 1 ieugen ieugen 2,6M iun 12 13:19 jna-platform-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 2,4M iun 12 13:19 jgroups-3.6.13.Final.jar
> -rw-r--r-- 1 ieugen ieugen 2,2M feb 17 21:24 commons-math3-3.6.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 lucene-core-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 reactor-core-3.3.0.RELEASE.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 jna-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 activemq-client-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 jackson-databind-2.10.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 httpclient-osgi-4.5.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,3M iun 12 13:19 netty-3.10.6.Final.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 activemq-broker-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 lucene-analyzers-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,1M iun 12 13:19 jaxb-impl-2.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 851K iun 12 13:19 bcpkix-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 827K iun 12 13:19 guice-4.2.2.jar
> -rw-r--r-- 1 ieugen ieugen 757K iun 12 13:19 httpclient-4.5.10.jar
> -rw-r--r-- 1 ieugen ieugen 737K iun 12 13:19 commons-collections4-4.3.jar
> -rw-r--r-- 1 ieugen ieugen 732K iun 12 13:19 play-json_2.13-2.8.1.jar
> -rw-r--r-- 1 ieugen ieugen 718K iun 12 13:19 javassist-3.21.0-GA.jar
> -rw-r--r-- 1 ieugen ieugen 715K iun 12 13:19 artemis-core-client-2.9.0.jar
> -rw-r--r-- 1 ieugen ieugen 687K iun 12 13:19 rest-assured-4.0.0.jar
> -rw-r--r-- 1 ieugen ieugen 670K iun 12 13:19 
> activemq-openwire-legacy-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 663K iun 12 13:19 activemq-kahadb-store-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 644K mai  3 05:45 javax.mail-1.6.2.jar
> I believe this is quite big.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: server-dev-unsubscr..

[jira] [Commented] (JAMES-3214) Remove test only libraries from being pulled as transitive dependencies of production artifacts

2020-06-14 Thread Benoit Tellier (Jira)


[ 
https://issues.apache.org/jira/browse/JAMES-3214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17135402#comment-17135402
 ] 

Benoit Tellier commented on JAMES-3214:
---

https://www.mail-archive.com/server-dev@james.apache.org/msg66343.html 
describes a dependency issue that causes multiple logging jars to end up on the 
classpath. We should fix it as well.

> Remove test only libraries from being pulled as transitive dependencies of 
> production artifacts
> ---
>
> Key: JAMES-3214
> URL: https://issues.apache.org/jira/browse/JAMES-3214
> Project: James Server
>  Issue Type: Improvement
>Reporter: Ioan Eugen Stan
>Priority: Major
> Attachments: runtimeClasspath.txt
>
>
> assertj-core , equalsverifier, rest-assured (and maybe other libraries) 
> belong to testing (probably more). And they leaked to our "production" builds 
> which depends on just 2 jars from James:
> implementation "org.apache.james:james-server-jpa-guice:${jamesVersion}"
> implementation "org.apache.james:james-server-cli:${jamesVersion}"
> == Context
> I'm working with David @dleangen on the self hosting with Apache James. We 
> built a sandbox to play around and experiment: 
> https://github.com/ieugen/james-self-hosting-sandbox . 
> Current setup is to use gradle + application plugin to build a custom 
> distribution.
> We build a zip distribution that pulls in all the dependencies including the 
> offending ones used in testing.
> The distribution has 137MB unpacked. files just James, without the JRE. 
> On initial inspection it seems there are test only dependencies that are 
> being pulled as transitive dependencies of the 2 dependencies:
> Bellow is a list of top most large dependencies with ls -lSh 
> james-self-hosting-sandbox/lib | head -n 40
> total 132M
> -rw-r--r-- 1 ieugen ieugen  13M iun 12 13:19 icu4j-64.2.jar
> -rw-r--r-- 1 ieugen ieugen  12M iun 12 13:19 testcontainers-1.12.0.jar
> -rw-r--r-- 1 ieugen ieugen 5,5M iun 12 13:19 scala-library-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 5,3M iun 12 13:19 groovy-2.5.6.jar
> -rw-r--r-- 1 ieugen ieugen 5,0M iun 12 13:19 camel-core-2.24.1.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 openjpa-3.1.0.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 bcprov-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 4,2M iun 12 13:19 assertj-core-3.12.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,7M iun 12 13:19 jaxb-osgi-2.2.10.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 scala-reflect-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 lucene-smartcn-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,2M iun 12 13:19 shapeless_2.13-2.3.3.jar
> -rw-r--r-- 1 ieugen ieugen 3,1M mai  3 05:45 derby-10.14.2.0.jar
> -rw-r--r-- 1 ieugen ieugen 2,8M iun 12 13:19 equalsverifier-3.1.9.jar
> -rw-r--r-- 1 ieugen ieugen 2,7M iun 12 13:19 guava-28.1-jre.jar
> -rw-r--r-- 1 ieugen ieugen 2,6M iun 12 13:19 jna-platform-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 2,4M iun 12 13:19 jgroups-3.6.13.Final.jar
> -rw-r--r-- 1 ieugen ieugen 2,2M feb 17 21:24 commons-math3-3.6.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 lucene-core-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 reactor-core-3.3.0.RELEASE.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 jna-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 activemq-client-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 jackson-databind-2.10.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 httpclient-osgi-4.5.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,3M iun 12 13:19 netty-3.10.6.Final.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 activemq-broker-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 lucene-analyzers-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,1M iun 12 13:19 jaxb-impl-2.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 851K iun 12 13:19 bcpkix-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 827K iun 12 13:19 guice-4.2.2.jar
> -rw-r--r-- 1 ieugen ieugen 757K iun 12 13:19 httpclient-4.5.10.jar
> -rw-r--r-- 1 ieugen ieugen 737K iun 12 13:19 commons-collections4-4.3.jar
> -rw-r--r-- 1 ieugen ieugen 732K iun 12 13:19 play-json_2.13-2.8.1.jar
> -rw-r--r-- 1 ieugen ieugen 718K iun 12 13:19 javassist-3.21.0-GA.jar
> -rw-r--r-- 1 ieugen ieugen 715K iun 12 13:19 artemis-core-client-2.9.0.jar
> -rw-r--r-- 1 ieugen ieugen 687K iun 12 13:19 rest-assured-4.0.0.jar
> -rw-r--r-- 1 ieugen ieugen 670K iun 12 13:19 
> activemq-openwire-legacy-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 663K iun 12 13:19 activemq-kahadb-store-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 644K mai  3 05:45 javax.mail-1.6.2.jar
> I believe this is quite big.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: server-dev

[jira] [Commented] (JAMES-3214) Remove test only libraries from being pulled as transitive dependencies of production artifacts

2020-06-12 Thread Ioan Eugen Stan (Jira)


[ 
https://issues.apache.org/jira/browse/JAMES-3214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17134176#comment-17134176
 ] 

Ioan Eugen Stan commented on JAMES-3214:


Using `gradle -q dependencies --configuration runtimeClasspath > 
runtimeClasspath.txt`  
https://docs.gradle.org/current/userguide/viewing_debugging_dependencies.html 

I managed to get the dependency tree. I attached it  [^runtimeClasspath.txt] . 
You can search for dependencies and see which one is pulled in by which jar. 

testcontainers is being pulled by james-backup which depends on 
james-server-testing which depends on testcontainers. 



> Remove test only libraries from being pulled as transitive dependencies of 
> production artifacts
> ---
>
> Key: JAMES-3214
> URL: https://issues.apache.org/jira/browse/JAMES-3214
> Project: James Server
>  Issue Type: Improvement
>Reporter: Ioan Eugen Stan
>Priority: Major
> Attachments: runtimeClasspath.txt
>
>
> assertj-core , equalsverifier, rest-assured (and maybe other libraries) 
> belong to testing (probably more). And they leaked to our "production" builds 
> which depends on just 2 jars from James:
> implementation "org.apache.james:james-server-jpa-guice:${jamesVersion}"
> implementation "org.apache.james:james-server-cli:${jamesVersion}"
> == Context
> I'm working with David @dleangen on the self hosting with Apache James. We 
> built a sandbox to play around and experiment: 
> https://github.com/ieugen/james-self-hosting-sandbox . 
> Current setup is to use gradle + application plugin to build a custom 
> distribution.
> We build a zip distribution that pulls in all the dependencies including the 
> offending ones used in testing.
> The distribution has 137MB unpacked. files just James, without the JRE. 
> On initial inspection it seems there are test only dependencies that are 
> being pulled as transitive dependencies of the 2 dependencies:
> Bellow is a list of top most large dependencies with ls -lSh 
> james-self-hosting-sandbox/lib | head -n 40
> total 132M
> -rw-r--r-- 1 ieugen ieugen  13M iun 12 13:19 icu4j-64.2.jar
> -rw-r--r-- 1 ieugen ieugen  12M iun 12 13:19 testcontainers-1.12.0.jar
> -rw-r--r-- 1 ieugen ieugen 5,5M iun 12 13:19 scala-library-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 5,3M iun 12 13:19 groovy-2.5.6.jar
> -rw-r--r-- 1 ieugen ieugen 5,0M iun 12 13:19 camel-core-2.24.1.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 openjpa-3.1.0.jar
> -rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 bcprov-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 4,2M iun 12 13:19 assertj-core-3.12.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,7M iun 12 13:19 jaxb-osgi-2.2.10.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 scala-reflect-2.13.1.jar
> -rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 lucene-smartcn-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 3,2M iun 12 13:19 shapeless_2.13-2.3.3.jar
> -rw-r--r-- 1 ieugen ieugen 3,1M mai  3 05:45 derby-10.14.2.0.jar
> -rw-r--r-- 1 ieugen ieugen 2,8M iun 12 13:19 equalsverifier-3.1.9.jar
> -rw-r--r-- 1 ieugen ieugen 2,7M iun 12 13:19 guava-28.1-jre.jar
> -rw-r--r-- 1 ieugen ieugen 2,6M iun 12 13:19 jna-platform-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 2,4M iun 12 13:19 jgroups-3.6.13.Final.jar
> -rw-r--r-- 1 ieugen ieugen 2,2M feb 17 21:24 commons-math3-3.6.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 lucene-core-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 reactor-core-3.3.0.RELEASE.jar
> -rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 jna-5.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 activemq-client-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 jackson-databind-2.10.1.jar
> -rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 httpclient-osgi-4.5.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,3M iun 12 13:19 netty-3.10.6.Final.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 activemq-broker-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 lucene-analyzers-3.6.2.jar
> -rw-r--r-- 1 ieugen ieugen 1,1M iun 12 13:19 jaxb-impl-2.3.1.jar
> -rw-r--r-- 1 ieugen ieugen 851K iun 12 13:19 bcpkix-jdk15on-1.62.jar
> -rw-r--r-- 1 ieugen ieugen 827K iun 12 13:19 guice-4.2.2.jar
> -rw-r--r-- 1 ieugen ieugen 757K iun 12 13:19 httpclient-4.5.10.jar
> -rw-r--r-- 1 ieugen ieugen 737K iun 12 13:19 commons-collections4-4.3.jar
> -rw-r--r-- 1 ieugen ieugen 732K iun 12 13:19 play-json_2.13-2.8.1.jar
> -rw-r--r-- 1 ieugen ieugen 718K iun 12 13:19 javassist-3.21.0-GA.jar
> -rw-r--r-- 1 ieugen ieugen 715K iun 12 13:19 artemis-core-client-2.9.0.jar
> -rw-r--r-- 1 ieugen ieugen 687K iun 12 13:19 rest-assured-4.0.0.jar
> -rw-r--r-- 1 ieugen ieugen 670K iun 12 13:19 
> activemq-openwire-legacy-5.15.9.jar
> -rw-r--r-- 1 ieugen ieugen 663K iun 12 13:19 activemq-kahadb-store-5.15.9.jar
> -