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

Karl Heinz Marbaise commented on MNG-6825:
------------------------------------------

Using a 500 KB jar file for three classes: {{StringUtils}}, {{Validate}} and 
{{SystemUtils}}.
* {{StringUtils}} can be replaced by usage of either {{plexus-utils}} or 
{{maven-shared-utils}} or as I tested with self implementation
* {{SystemUtils}} is only used in some tests which can simply replaced by using 
JUnit Jupiter with all the support it has.
* {{Validate}} is a precondition class which checks for parameters etc. can be 
implemented very easily (done already to see how it works). Later this could be 
made part of {{maven-shared-utils}}.

Currently from {{maven-shared-utils}} we are using:
* {{org.apache.maven.shared.utils.io.FileUtils}} (Test Only)
* {{org.apache.maven.shared.utils.logging.MessageBuilder}}
* {{org.apache.maven.shared.utils.logging.MessageUtils}}

The real issue I have found (I was already aware of that) is that 
{{plexus-utils}} as well as {{maven-shared-utils}} having so many code in 
common (duplicate it more or less) and both of them are used.

Furthermore I found that currently the need for {{commons-io}} in Maven Core 
(or better it lands in the distribution {{lib}} directory) is only based on 
usage of {{commons-io}} in  {{maven-shared-utils}} where only a single class 
{{org.apache.commons.io.input.XmlStreamReader}} is used of {{commons-io}}. 

If I summarize this:
* If we would move to {{maven-share-utils}} only we could get rid of 
** 501879 Byte {{commons-lang3}} (/)
** 261801 Byte {{plexus-utils}} (x)
** 208700 Byte {{commons-io}} (x)


> Remove commons-lang3 dependency
> -------------------------------
>
>                 Key: MNG-6825
>                 URL: https://issues.apache.org/jira/browse/MNG-6825
>             Project: Maven
>          Issue Type: Improvement
>          Components: Bootstrap & Build
>    Affects Versions: 3.6.3
>            Reporter: Karl Heinz Marbaise
>            Assignee: Karl Heinz Marbaise
>            Priority: Minor
>             Fix For: 3.7.0
>
>
> Experiment to see if we can get rid of commons-lang3 dependency.
> * Identified code duplication between:
> ** {{org.apache.commons.lang3.StringUtils}} from {{commons-lang3}} (501879 
> Bytes commons-lang3-3.8.1.jar)
> ** {{org.codehaus.plexus.util.StringUtil}} from {{plexus-utils}} (261801 
> Bytes plexus-utils-3.2.1.jar)
> ** {{org.apache.maven.shared.utils}} from {{maven-shared-utils}} (166562 
> Bytes maven-shared-utils-3.2.1.jar)
> *and the implemented {{StringUtils}}.
> ** We might replace the self implemented with 
> {{org.codehaus.plexus.util.StringUtil}}.
> * {{commons-io}} usage by {{maven-shared-utils}} (208700 Bytes 
> commons-io-2.5.jar)



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

Reply via email to