Re: Remove Artifact Commons-Lang Dependency?

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: Remove Artifact Commons-Lang Dependency?

Karl Heinz Marbaise-3
Hi Mark,

can you tell us on which part of Maven you are referencing? Or do you
reference your own project?

Maven Core ? a particular plugin ?

Kind regards
Karl Heinz Marbaise

On 25.11.19 03:08, Mark James wrote:

> Hello,
>
> Is there any chance of removing the dependency of Artifact on Commons-Lang?
> Something nine times bigger is pulled in just to reference the String utility
> functions isNotEmpty, notBlank, and isNumeric.
>
> I understand the advantages of libraries, but this comes at more of a cost in
> Java because common Java libraries are less likely to be on the system than
> native libraries, and so must be either specified as a dependency (that must be
> downloaded and added to build and class paths), distributed with the using JAR
> (requiring an installation expansion), or embedded into using JARs (defeating
> the space-saving advantage). Semi-automated dependency resolution probably makes
> this easier, but many such as myself aren't familiar with it.
>
> I'd like to be able to distribute my package as a single JAR, with Artifact but
> not Commons-Lang embedded. But this currently needs the following changes:
>
> 1. Replacing StringUtils.isNotEmpty in DefaultArtifact with a not-null +
> positive-length test.
>
> 2. In ArtifactUtils.notBlank, replacing
>
>          Validate.notBlank( str, message );
>
>      with
>
>          for (int i=0; i < str.length(); i++) if
>          (!Character.isWhitespace(str.charAt(i))) return;
>          throw new IllegalArgumentException(message);
>
>      or, using Java 8 code,
>
>          if (str.chars().allMatch(Character::isWhitespace)) throw new
>          IllegalArgumentException(message);
>
> and 3. Copying StringUtils.isNumeric as DefaultArtifact.isDigits.
>
> It would be nice if Java had a directive to do such copies at build-time,
> removing run-time dependencies while preventing code duplication.

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Remove Artifact Commons-Lang Dependency?

Elliotte Rusty Harold
On Mon, Nov 25, 2019 at 12:55 PM Mark James <[hidden email]> wrote:
>
> Hello,
>
> Is there any chance of removing the dependency of Artifact on Commons-Lang?
> Something nine times bigger is pulled in just to reference the String utility
> functions isNotEmpty, notBlank, and isNumeric.
>

Please do. As I wrote on https://jlbp.dev/JLBP-1.html  "If you can
reasonably reimplement functionality instead of adding another
dependency, do so. For example, if the only classes you’re using from
Guava are Preconditions and Strings, it’s not worth adding a
dependency on Guava. You can easily reimplement any method in those
classes." The same applies to commons lang.

--
Elliotte Rusty Harold
[hidden email]

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]