Re: [VOTE] Release Apache Commons JCS 3.2.1 based on rc2

2024-04-29 Thread Thomas Vandahl
Hi folks,

> Am 20.04.2024 um 12:25 schrieb Thomas Vandahl :
> 
> Hi folks,
> 
> We have fixed a few bugs since Apache Commons JCS 3.2 was released, so I 
> would like to release Apache Commons JCS 3.2.1.
> 
> Apache Commons JCS 3.2.1 rc2 is available for review here:
>https://dist.apache.org/repos/dist/dev/commons/jcs/3.2.1-rc2 (svn revision 
> 68673)
> 

Could I please ask for one more vote?

TIA
Bye, Thomas 


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



[VFS] VFS patch release?

2024-04-29 Thread Elric V

Hi folks,

Any chance of getting a new VFS release soonish? There have been a lot 
of dependency updates, which would make vulnerability scanners a lot 
less trigger happy. 2.9.0 was released in 2021, so a 2.9.1 might not be 
a bad idea.


Am willing to help out with this if possible.

Best,

Elric

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



Re: [VFS] VFS patch release?

2024-04-29 Thread Gary Gregory
I have a release candidate out but some files are missing, so there is
something off in the build process.

It's been on my to-do list, so within a week or two I hope.

Gary

On Mon, Apr 29, 2024 at 7:19 AM Elric V  wrote:
>
> Hi folks,
>
> Any chance of getting a new VFS release soonish? There have been a lot
> of dependency updates, which would make vulnerability scanners a lot
> less trigger happy. 2.9.0 was released in 2021, so a 2.9.1 might not be
> a bad idea.
>
> Am willing to help out with this if possible.
>
> Best,
>
> Elric
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>

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



Re: [ALL] GitHub is done with Java 8

2024-04-29 Thread Gary Gregory
To resolve this issue in the least disruptive manner, I updated builds
that need Java 8 AND macOS from "macos-lateset" to "macos-13".

This is likely only a medium-term solution until GH "macos-13" support
goes bye-bye.

Gary

On Wed, Apr 24, 2024 at 1:43 PM Slawomir Jaranowski
 wrote:
>
> Rob your project use
>
> Operating System
>   macOS
>   12.7.4
>   21H1123
>
> switching to macos 14 is waiting for your project.
> GitHub does not switch all project in the same time.
>
>
> śr., 24 kwi 2024 o 19:15 Rob Spoor  napisał(a):
>
> > I've just tested one of my own projects that has a matrix setup that's
> > almost the same (I haven't included Java 22), and it was successful:
> > https://github.com/robtimus/application-path/actions/runs/8820506010
> >
> > The main difference is that I use @v4 instead of a specific commit, but
> > those should be the same right now.
> >
> >
> > On 24/04/2024 16:27, Arnout Engelen wrote:
> > > Really? https://adoptium.net/temurin/releases/?version=8 seems to have
> > > recent versions.
> > >
> > > setup-java seems to be treating it as a bug at this time:
> > > https://github.com/actions/setup-java/issues/625
> > >
> > > On Wed, Apr 24, 2024 at 4:12 PM Slawomir Jaranowski <
> > s.jaranow...@gmail.com>
> > > wrote:
> > >
> > >> Hi,
> > >>
> > >> Temurin jdk distribution doesn't support JDK 8. You can try with zulu.
> > >>
> > >> śr., 24 kwi 2024 o 15:57 Gary D. Gregory 
> > napisał(a):
> > >>
> > >>> Hi All,
> > >>>
> > >>> I just saw this on GitHub for our Lang component:
> > >>>
> > >>> Error: Could not find satisfied version for SemVer '8'.
> > >>>
> > >>> Available versions: 22.0.1+8, 22.0.0+36, 21.0.3+9.0.LTS,
> > 21.0.2+13.0.LTS,
> > >>> 21.0.1+12.0.LTS, 21.0.0+35.0.LTS, 20.0.2+9, 20.0.1+9, 20.0.0+36,
> > >> 19.0.2+7,
> > >>> 19.0.1+10, 19.0.0+36, 18.0.2+101, 18.0.2+9, 18.0.1+10, 18.0.0+36,
> > >>> 17.0.11+9, 17.0.10+7, 17.0.9+9, 17.0.8+101, 17.0.8+7, 17.0.7+7,
> > >> 17.0.6+10,
> > >>> 17.0.5+8, 17.0.4+101, 17.0.4+8, 17.0.3+7, 17.0.2+8, 17.0.1+12,
> > 17.0.0+35,
> > >>> 11.0.23+9, 11.0.22+7.1, 11.0.22+7, 11.0.21+9, 11.0.20+101, 11.0.20+8,
> > >>> 11.0.19+7, 11.0.18+10, 11.0.17+8, 11.0.16+101, 11.0.16+8, 11.0.15+10
> > >>>
> > >>> So it looks like goodbye Java 8 on GitHub.
> > >>>
> > >>> Gary
> > >>>
> > >>> -
> > >>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > >>> For additional commands, e-mail: dev-h...@commons.apache.org
> > >>>
> > >>>
> > >>
> > >> --
> > >> Sławomir Jaranowski
> > >>
> >
> >
> > -
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > For additional commands, e-mail: dev-h...@commons.apache.org
> >
> >
>
> --
> Sławomir Jaranowski

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



Modularization of components

2024-04-29 Thread Elric V

Hi folks,

This is a generic question, but I'll be using VFS as an example. There 
are a lot of commons components which have many functionalities, e.g. 
VFS can be used for FTP, HDFS, WebDAV, etc. Many times codebases only 
use a subset of those. But there's only one VFS module, which includes 
all of these functionalities, and thus all of their dependencies. This 
increases build times and sizes (e.g. of WAR files).


It seems to me that it might be useful to split such components into 
multiple modules. Is there any particular reason why this couldn't be 
done?


Best,

Elric

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



Re: Modularization of components

2024-04-29 Thread Gary Gregory
Eric,

Apache Commons VFS is already broken up into a multi-module project,
so I don't know what you're talking about; see
https://search.maven.org/search?q=g:org.apache.commons%20AND%20a:commons-vfs2*
The next release will be further modularized; see git master,

Modularization depends on:

(1) It's painful to build Apache Commons releases with Maven
multi-module projects. It's NOT just building a jar file or set of
jars. In comparison, building a mono-module is "simple". This is why I
tripped over building Commons Email, FileUpload, and VFS recently. I
hope to get back to those ASAP.
(2) Always, always, always keep compatibility in mind
(3) Keep users in mind with ease of migration and compatibility (see above)
(4) JPMS is a giant PITA and we rely on the Moditect plugin for
metadata generation. That works today, but there has been some growing
pains.

and also keep in mind the KISS and YAGNI principle.

Gary

On Mon, Apr 29, 2024 at 7:58 AM Elric V  wrote:
>
> Hi folks,
>
> This is a generic question, but I'll be using VFS as an example. There
> are a lot of commons components which have many functionalities, e.g.
> VFS can be used for FTP, HDFS, WebDAV, etc. Many times codebases only
> use a subset of those. But there's only one VFS module, which includes
> all of these functionalities, and thus all of their dependencies. This
> increases build times and sizes (e.g. of WAR files).
>
> It seems to me that it might be useful to split such components into
> multiple modules. Is there any particular reason why this couldn't be
> done?
>
> Best,
>
> Elric
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>

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



[IO] IO-855 PeekableInputStream?

2024-04-29 Thread Gary Gregory
RE https://issues.apache.org/jira/browse/IO-855

There are zero tests or usage in IO for PeekableInputStream.

Could the original author add some?

Why does PeekableInputStream extend CircularBufferInputStream instead
of BufferedInputStream?

TY!
Gary

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



Re: [ALL] GitHub is done with Java 8

2024-04-29 Thread Piotr P. Karwasz
Hi Gary,

On Mon, 29 Apr 2024 at 13:58, Gary Gregory  wrote:
> To resolve this issue in the least disruptive manner, I updated builds
> that need Java 8 AND macOS from "macos-lateset" to "macos-13".

In Log4j I updated all builds that require Java 8 + another JDK to use
`zulu` as distribution if `runner.os == 'macOS'`.

Another solution that might work is to use `x64` as architecture for
`macos-latest`, but the runners we be slower and might throw an OOM.

Piotr

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



Re: Modularization of components

2024-04-29 Thread Gilles Sadowski
Hello.

Le lun. 29 avr. 2024 à 14:07, Gary Gregory  a écrit :
>
> Eric,
>
> Apache Commons VFS is already broken up into a multi-module project,
> so I don't know what you're talking about; see
> https://search.maven.org/search?q=g:org.apache.commons%20AND%20a:commons-vfs2*
> The next release will be further modularized; see git master,

The OP's question makes sense, even if the example was not
appropriate (I didn't look at [VFS]).

>
> Modularization depends on:
>
> (1) It's painful to build Apache Commons releases with Maven
> multi-module projects. It's NOT just building a jar file or set of
> jars. In comparison, building a mono-module is "simple".

In my experience it was never "simple", as per the long list of
things that had to be done manually.
Then when steps were automated, the multi-module nature of
some components was not taken into account, which led to the
issues (AFAICT).

> This is why I
> tripped over building Commons Email, FileUpload, and VFS recently. I
> hope to get back to those ASAP.

[RNG], [Numbers], [Geometry], [Math] have been modular for
a long time without any more issues than in other components,
except for some specialized profiles in order to work around the
(too) "simple" way.

> (2) Always, always, always keep compatibility in mind

How is this related?
Any set of functionalities should be amenable to a modular design,
unless there are cyclic dependencies (that signal bad design).

> (3) Keep users in mind with ease of migration and compatibility (see above)

Is this just a matter of a few lines specifying the new dependencies?
[Just like with any upgrade.]

> (4) JPMS is a giant PITA and we rely on the Moditect plugin for
> metadata generation. That works today, but there has been some growing
> pains.

Supporting JPMS is orthogonal to a modular (Maven) project (see
[RNG], for example).

> and also keep in mind the KISS and YAGNI principle.

Sure, but the request (for an application to have a minimal set of
dependencies) is valid for several reasons:  Size (as noted by the
OP) but also security (the more so that legal requirements seem
on the way in that area).

In summary, IMO modularization should be a feature (and a default
goal) of any new major release.
I know that it is a lot of work (of course, cf. [Math] history) , but we
should encourage contributions towards that goal.

Regards,
Gilles

>
> Gary
>
> On Mon, Apr 29, 2024 at 7:58 AM Elric V  wrote:
> >
> > Hi folks,
> >
> > This is a generic question, but I'll be using VFS as an example. There
> > are a lot of commons components which have many functionalities, e.g.
> > VFS can be used for FTP, HDFS, WebDAV, etc. Many times codebases only
> > use a subset of those. But there's only one VFS module, which includes
> > all of these functionalities, and thus all of their dependencies. This
> > increases build times and sizes (e.g. of WAR files).
> >
> > It seems to me that it might be useful to split such components into
> > multiple modules. Is there any particular reason why this couldn't be
> > done?
> >
> > Best,
> >
> > Elric

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



Re: [ALL] GitHub is done with Java 8

2024-04-29 Thread Gary Gregory
Thanks for the tip Piotr.

For now it works so I don't plan on changing anything until it breaks.

Garu

On Mon, Apr 29, 2024, 8:46 AM Piotr P. Karwasz 
wrote:

> Hi Gary,
>
> On Mon, 29 Apr 2024 at 13:58, Gary Gregory  wrote:
> > To resolve this issue in the least disruptive manner, I updated builds
> > that need Java 8 AND macOS from "macos-lateset" to "macos-13".
>
> In Log4j I updated all builds that require Java 8 + another JDK to use
> `zulu` as distribution if `runner.os == 'macOS'`.
>
> Another solution that might work is to use `x64` as architecture for
> `macos-latest`, but the runners we be slower and might throw an OOM.
>
> Piotr
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


Re: [Collections] Suppliers, Iterables, and Producers

2024-04-29 Thread Claude Warren
I will see if I can clarify the javadocs and make things clearer.

What I think I specifically heard is:

   - Be clear that producers are fast fail iterators with predicate tests.
   - Rename CellConsumer to CellPredicate (?)
   - The semantic nomenclature:
  - Bitmaps are arrays of bits not a BitMap object.
  - Indexes are ints and not an instance of a Collection object.
  - Cells are pairs of ints representing an index and a value.  They
  are not Pair<> objects.
  - Producers iterate over collections of the object (Bitmap, Index,
  Cell) applying a predicate to do work and stop the iteration early if
  necessary.  They are carriers/transporters of Bloom filter enabled bits.
  They allow us to query the contents of the Bloom filter in an
  implementation agnostic way.

Does that basically cover the confusion?   If there are better terms, let's
hash them out now before I update the javadocs.

As an aside, Cells and Bitmaps are referenced in the literature.  For the
most part the rest is made up out of whole cloth.  So we could change
"Producer" to something else but we would need a good name.

Semantically:

   - As Hasher generates an IndexProducer once it knows what the range of
   the values are and how many values it should produce (as defined in the
   Shape).  That index producer can be used multiple times and will produce
   the same set of values in the same order.
   - A Bloom filter generates an IndexProducer that enumerates the enabled
   bits in the filter.
   - A CellProducer generates an IndexProducer that reports all the index
   values that it contains.

In implementing stable Bloom filters I had to create a RandomHasher that
generates an IndexProducer that will generate values in the range and
number specified by the Shape but that does not produce the same values
every time (obviously).

We could change Producer to a term that means a representation: Ideogram,
but then we have to introduce the term and explain what it means.  Producer
starts at a common point.

All of this just goes to show that "Naming things is hard".  But then we
all knew that anyway.
Claude




On Sun, Apr 28, 2024 at 11:00 PM Gary Gregory 
wrote:

> Thank you for your thoughtful reply. See my comments below.
>
> On Sun, Apr 28, 2024 at 11:10 AM Alex Herbert 
> wrote:
> >
> > Hi Gary,
> >
> > I am in favour of using nomenclature and patterns that will be familiar
> to
> > a Java developer. But only if they match the familiar JDK use patterns.
> The
> > Bloom filter package has some atypical use patterns that have driven the
> > current API to where it is. I'll try and describe these below.
> >
> > On Sun, 28 Apr 2024 at 14:16, Gary Gregory 
> wrote:
> >
> > > Hi Clause, Albert, and all,
> > >
> > > Since the introduction of lambdas in Java 8, Java has a well-defined
> > > terminology around the classic producer-consumer paradigm but (for
> > > reasons unknown to me) realized in the functional interfaces *Supplier
> > > and *Consumer. In addition, as of Java 5, we have the Iterable
> > > interface.
> > >
> > > In our new Bloom filter package we have new interfaces called
> > > *Producer (as opposed to *Supplier), where some of these new
> > > interfaces are formally annotated with @FunctionalInterface and some
> > > not (for example, BloomFilterProducer).
> > >
> > > My question is: Why call these "Producers" instead of "Suppliers"? Is
> > > the formal Bloom filter literature tied to the "Producer" terminology
> > > in a way that would make adapting to the Java term confusing? I know I
> > > brought up a similar topic recently, but I would like to revisit it
> > > now that I've started to read Claude's blog drafts. Even without
> > > making the current "Producers" formal suppliers by extending Supplier,
> > > would it be worth using the Java terminology?
> > >
> >
> > Claude is familiar with the literature and can comment on that. I would
> > defer to the literature if it is a common term.
> >
> > There is one notable distinction to JDK suppliers. Suppliers only supply
> 1
> > element and must be repeatedly called to generate more. The Producers in
> > the BloomFilter package will supply multiple values. They are invoked
> using
> > a forEach pattern with the intention of supplying all the elements to a
> > predicate, not a consumer. If any of those elements is rejected by the
> > predicate then the rest of the elements are not supplied. So this is a
> > fail-fast bulk supplier.
>
> Ah, this sounds like a special Iterator, fail-fast as you mention, and
> Java does not have that in Java 8 at least.
> The Producer class suffix still confuses me since this is neither a
> factory nor a traditional supplier. If the classes were called
> *Iterator and not extend iterator, then it would also be confusing.
> The question is whether it would be useful to extend Iterator or if
> the class would never be used as a traditional Iterator. I'll that to
> an SME ;-)
>
> >
> >
> > >
> > > My second