Re: Remove Artifact Commons-Lang Dependency?

2019-12-31 Thread Michael Osipov

Am 2019-12-31 um 17:18 schrieb Mark James:

On 01/01/2020 01:13, Michael Osipov wrote:

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);


These are not equivalient. Validate#notBlank throws NPE on null input, those
alternatives don't do. I'd has to be interface specification equal.

M


Thanks Michael for picking that up.

So should be

if (str != null) 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 == null || str.chars().allMatch(Character::isWhitespace))
     throw new IllegalArgumentException(message);


Not, that is still wrong. null results in NullPointerException, not IAE. 
You need two if statements.



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



Re: Remove Artifact Commons-Lang Dependency?

2019-12-31 Thread Mark James
Karl, I'd like users of my JAR to have to install just this one JAR file (so no
un-archiving required), and not have to ask them to also install the Maven
package to their classpaths.

To do this I'm compiling parts of Maven into my JAR, as allowed by the Apache
Licence, eliminating the commons-lang3 dependencies so I don't have to also
compile that in.

It's great that you're currently working on dependency reduction.

Mark

On 31/12/2019 23:45, Karl Heinz Marbaise wrote:
> hi Mark,
>
> On 31.12.19 12:54, Mark James wrote:
>> Karl, I'd like to embed Maven version string comparison in my JAR so my
>> users don't have to install both Maven and Commons-Lang.
>
>
> Users don't have to install Maven and commons-lang3. They will get it
> with their installation package (Download from maven.apache.org) in the
> lib directory...
>
> I'm currently checking and working on removing dependencies which are
> not really needed[1].
>
> Maybe you can explain more in details what you are trying to do or
> helping (of course appreciated)...
>
> cause at the moment I don't understand which way you are walking?
>
>
> Maybe related to the post we have a misunderstanding ?
>
> Kind regards
> Karl Heinz Marbaise
>
> [1]: https://issues.apache.org/jira/browse/MNG-6829
>
>
>> But I'd like to
>> do this in a way that my JAR isn't an order-of-magnitude bigger.
>>
>> I've found I can embed just
>>
>> org.apache.maven.artifact
>> org.apache.maven.artifact.handler
>> org.apache.maven.artifact.metadata
>> org.apache.maven.artifact.repository
>> org.apache.maven.artifact.repository.layout
>> org.apache.maven.artifact.repository.metadata
>> org.apache.maven.artifact.resolver
>> org.apache.maven.artifact.resolver.filter
>> org.apache.maven.artifact.versioning
>> org.apache.maven.repository
>> org.apache.maven.repository.legacy.metadata
>>
>> as long as I make the small mods I posted to remove the Commons-Lang
>> dependency.
>>
>> Should I keep these mods as a custom fork, or would they be a worthwhile
>> patch to the distribution?
>>
>> Mark
>>
>> On 26/11/2019 05:01, Karl Heinz Marbaise wrote:
>>> 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: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org



Re: Doxia test flakiness

2019-12-31 Thread Hervé BOUTEMY
reviewing the list of repositories to archive, I find 8 ready to archive:
- maven-plugins
- maven-shared
- maven-doxia-tools (after all, we can archive now and decide later for book*)
- maven-pom
- maven-artifact
- maven-mercury
- maven-app-engine
- maven-repository-tools

and last 3 to decide:
- maven-resources
- maven-sandbox
- maven-doxia-ide

Regards,

Hervé

Le mardi 31 décembre 2019, 09:27:13 CET Hervé Boutemy a écrit :
> removing, probably not, but archiving would probably be appropriate once
> full Git migration has been done
> for example, the 2 most important https://github.com/apache/maven-plugins/
> and https://github.com/apache/maven-shared/ are ready to be archived
> perhaps it's just about asking infra
> 
> Regards,
> 
> Hervé
> 
> Le lundi 30 décembre 2019, 23:14:19 CET Elliotte Rusty Harold a écrit :
> > Also, should we remove those old SVN mirror repos so no one else
> > stumbles across them by mistake?
> > 
> > On Tue, Dec 24, 2019 at 6:01 AM Robert Scholte  
wrote:
> > > I think something went wrong here.
> > > This project use to be the aggregator project in subversion.
> > > In the early days there were read-only repos in github of our subversion
> > > repos. However, when we moved everything to gitbox every module should
> > > have gotten their own repository.
> > > 
> > > https://github.com/apache/maven-doxia-tools
> > > [https://github.com/apache/maven-doxia-tools]
> > > 
> > > 
> > > for some reason only the doxia-converter and doxia-linkchecker got their
> > > own repo, the doxia-book-renderer and doxia-book-maven-plugin not.
> > > 
> > > Before having a look at this, we need to know the status of it.
> > > 
> > > thanks,
> > > Robert
> > > 
> > > On 23-12-2019 23:38:43, Elliotte Rusty Harold 
> > > wrote:
> > > Anyone working on Doxia these days? If so, your review of
> > > https://github.com/apache/maven-doxia-tools/pull/3 would be
> > > appreciated. This PR effectively disables a flaky autogenerated test.
> > > 
> > > This was the best I could come up with on short notice to unblock some
> > > other bugs in Doxia. However if anyone can figure out how to fix the
> > > autogenerated test instead that would be even better. Details at
> > > 
> > > https://issues.apache.org/jira/browse/DOXIATOOLS-64
> > > 
> > > --
> > > Elliotte Rusty Harold
> > > elh...@ibiblio.org
> > > 
> > > -
> > > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> > > For additional commands, e-mail: dev-h...@maven.apache.org
> 
> -
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org





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



Re: Remove Artifact Commons-Lang Dependency?

2019-12-31 Thread Michael Osipov

Am 2019-11-25 um 03:08 schrieb Mark James:

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);


These are not equivalient. Validate#notBlank throws NPE on null input, 
those alternatives don't do. I'd has to be interface specification equal.


M

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



Re: Remove Artifact Commons-Lang Dependency?

2019-12-31 Thread Mark James
Karl, I'd like to embed Maven version string comparison in my JAR so my users
don't have to install both Maven and Commons-Lang. But I'd like to do this in a
way that my JAR isn't an order-of-magnitude bigger.

I've found I can embed just

org.apache.maven.artifact
org.apache.maven.artifact.handler
org.apache.maven.artifact.metadata
org.apache.maven.artifact.repository
org.apache.maven.artifact.repository.layout
org.apache.maven.artifact.repository.metadata
org.apache.maven.artifact.resolver
org.apache.maven.artifact.resolver.filter
org.apache.maven.artifact.versioning
org.apache.maven.repository
org.apache.maven.repository.legacy.metadata

as long as I make the small mods I posted to remove the Commons-Lang dependency.

Should I keep these mods as a custom fork, or would they be a worthwhile patch
to the distribution?

Mark

On 26/11/2019 05:01, Karl Heinz Marbaise wrote:
> 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: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org



Re: Remove Artifact Commons-Lang Dependency?

2019-12-31 Thread Karl Heinz Marbaise

Hi Mark,

On 31.12.19 14:12, Mark James wrote:

Karl, I'd like users of my JAR to have to install just this one JAR file (so no
un-archiving required), and not have to ask them to also install the Maven > 
package to their classpaths.


The maven packages or Maven itself is not needed during runtime of an
application?...

Lets us start from the beginning.

So you are developing a an application which a user should be using in
sense downloading it and starting it via "java -jar ..." ? Correct?



To do this I'm compiling parts of Maven into my JAR, as allowed by the Apache
Licence, eliminating the commons-lang3 dependencies so I don't have to also
compile that in.


It's not a question of License of course can you do that it's open
source ...

But I don't understand why you are compiling parts of Maven into your JAR ?

Kind regards
Karl Heinz Marbaise




It's great that you're currently working on dependency reduction.

Mark

On 31/12/2019 23:45, Karl Heinz Marbaise wrote:

hi Mark,

On 31.12.19 12:54, Mark James wrote:

Karl, I'd like to embed Maven version string comparison in my JAR so my
users don't have to install both Maven and Commons-Lang.



Users don't have to install Maven and commons-lang3. They will get it
with their installation package (Download from maven.apache.org) in the
lib directory...

I'm currently checking and working on removing dependencies which are
not really needed[1].

Maybe you can explain more in details what you are trying to do or
helping (of course appreciated)...

cause at the moment I don't understand which way you are walking?


Maybe related to the post we have a misunderstanding ?

Kind regards
Karl Heinz Marbaise

[1]: https://issues.apache.org/jira/browse/MNG-6829



But I'd like to
do this in a way that my JAR isn't an order-of-magnitude bigger.

I've found I can embed just

org.apache.maven.artifact
org.apache.maven.artifact.handler
org.apache.maven.artifact.metadata
org.apache.maven.artifact.repository
org.apache.maven.artifact.repository.layout
org.apache.maven.artifact.repository.metadata
org.apache.maven.artifact.resolver
org.apache.maven.artifact.resolver.filter
org.apache.maven.artifact.versioning
org.apache.maven.repository
org.apache.maven.repository.legacy.metadata

as long as I make the small mods I posted to remove the Commons-Lang
dependency.

Should I keep these mods as a custom fork, or would they be a worthwhile
patch to the distribution?

Mark

On 26/11/2019 05:01, Karl Heinz Marbaise wrote:

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,


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



Re: Remove Artifact Commons-Lang Dependency?

2019-12-31 Thread Karl Heinz Marbaise

hi Mark,

On 31.12.19 12:54, Mark James wrote:

Karl, I'd like to embed Maven version string comparison in my JAR so my
users don't have to install both Maven and Commons-Lang.



Users don't have to install Maven and commons-lang3. They will get it
with their installation package (Download from maven.apache.org) in the
lib directory...

I'm currently checking and working on removing dependencies which are
not really needed[1].

Maybe you can explain more in details what you are trying to do or
helping (of course appreciated)...

cause at the moment I don't understand which way you are walking?


Maybe related to the post we have a misunderstanding ?

Kind regards
Karl Heinz Marbaise

[1]: https://issues.apache.org/jira/browse/MNG-6829



But I'd like to
do this in a way that my JAR isn't an order-of-magnitude bigger.

I've found I can embed just

org.apache.maven.artifact
org.apache.maven.artifact.handler
org.apache.maven.artifact.metadata
org.apache.maven.artifact.repository
org.apache.maven.artifact.repository.layout
org.apache.maven.artifact.repository.metadata
org.apache.maven.artifact.resolver
org.apache.maven.artifact.resolver.filter
org.apache.maven.artifact.versioning
org.apache.maven.repository
org.apache.maven.repository.legacy.metadata

as long as I make the small mods I posted to remove the Commons-Lang
dependency.

Should I keep these mods as a custom fork, or would they be a worthwhile
patch to the distribution?

Mark

On 26/11/2019 05:01, Karl Heinz Marbaise wrote:

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: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org



Re: Doxia test flakiness

2019-12-31 Thread Hervé Boutemy
removing, probably not, but archiving would probably be appropriate once full 
Git migration has been done
for example, the 2 most important https://github.com/apache/maven-plugins/ and 
https://github.com/apache/maven-shared/ are ready to be archived
perhaps it's just about asking infra

Regards,

Hervé

Le lundi 30 décembre 2019, 23:14:19 CET Elliotte Rusty Harold a écrit :
> Also, should we remove those old SVN mirror repos so no one else
> stumbles across them by mistake?
> 
> On Tue, Dec 24, 2019 at 6:01 AM Robert Scholte  wrote:
> > I think something went wrong here.
> > This project use to be the aggregator project in subversion.
> > In the early days there were read-only repos in github of our subversion
> > repos. However, when we moved everything to gitbox every module should
> > have gotten their own repository.
> > 
> > https://github.com/apache/maven-doxia-tools
> > [https://github.com/apache/maven-doxia-tools]
> > 
> > 
> > for some reason only the doxia-converter and doxia-linkchecker got their
> > own repo, the doxia-book-renderer and doxia-book-maven-plugin not.
> > 
> > Before having a look at this, we need to know the status of it.
> > 
> > thanks,
> > Robert
> > 
> > On 23-12-2019 23:38:43, Elliotte Rusty Harold  wrote:
> > Anyone working on Doxia these days? If so, your review of
> > https://github.com/apache/maven-doxia-tools/pull/3 would be
> > appreciated. This PR effectively disables a flaky autogenerated test.
> > 
> > This was the best I could come up with on short notice to unblock some
> > other bugs in Doxia. However if anyone can figure out how to fix the
> > autogenerated test instead that would be even better. Details at
> > 
> > https://issues.apache.org/jira/browse/DOXIATOOLS-64
> > 
> > --
> > Elliotte Rusty Harold
> > elh...@ibiblio.org
> > 
> > -
> > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> > For additional commands, e-mail: dev-h...@maven.apache.org





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



Re: Doxia test flakiness

2019-12-31 Thread Herve Boutemy
nothing really went wrong: there are a few cases I did not migrate because I 
was convinced that classical migration to 1 git repo each was not appropriate, 
but I did not know really what to do better (and was tired doing the migration 
on the many "easy" cases)

correponding repositories are listed here as "svn2git": 
https://github.com/apache/maven-sources/blob/master/default.xml#L140

even more important than doxia-book-renderer and doxia-book-maven-plugin, there 
are maven-resources corresponding to 
https://maven.apache.org/apache-resource-bundles/

Perhaps it's time to finish the migration job on the last 5%...

Regards,

Hervé

On 2019/12/24 11:01:42, "Robert Scholte"  wrote: 
> I think something went wrong here.
> This project use to be the aggregator project in subversion.
> In the early days there were read-only repos in github of our subversion 
> repos.
> However, when we moved everything to gitbox every module should have gotten 
> their own repository.
> 
> https://github.com/apache/maven-doxia-tools 
> [https://github.com/apache/maven-doxia-tools]
> 
> 
> for some reason only the doxia-converter and doxia-linkchecker got their own 
> repo, the doxia-book-renderer and doxia-book-maven-plugin not.
> 
> Before having a look at this, we need to know the status of it.
> 
> thanks,
> Robert
> 
> On 23-12-2019 23:38:43, Elliotte Rusty Harold  wrote:
> Anyone working on Doxia these days? If so, your review of
> https://github.com/apache/maven-doxia-tools/pull/3 would be
> appreciated. This PR effectively disables a flaky autogenerated test.
> 
> This was the best I could come up with on short notice to unblock some
> other bugs in Doxia. However if anyone can figure out how to fix the
> autogenerated test instead that would be even better. Details at
> 
> https://issues.apache.org/jira/browse/DOXIATOOLS-64
> 
> --
> Elliotte Rusty Harold
> elh...@ibiblio.org
> 
> -
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
> 
> 

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