[jira] [Resolved] (CLI-336) Deprecation use not always reported.

2024-06-24 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-336?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren resolved CLI-336.
---
Fix Version/s: Nightly Builds
   Resolution: Fixed

> Deprecation use not always reported.
> 
>
> Key: CLI-336
> URL: https://issues.apache.org/jira/browse/CLI-336
> Project: Commons CLI
>  Issue Type: Improvement
>  Components: CLI-1.x
>Affects Versions: 1.8.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
> Fix For: Nightly Builds
>
>
> I have a case where I have multiple no-argument options in an OptionGroup.  
> The group comprises a deprecated option and a current option.  Basically an 
> option rename. 
> When I check for the option I simply check if (OptionGroup.getSelected() != 
> null).  However if the deprecated value is selected this does not print the 
> log message that says a deprecated value was selected.  The only way I could 
> find to do this was to do
> if (OptionGroup.getSelected() != null) {
> commandLine.hasOption(OptionGroup.getSelected());
> ... other processing
> }
> I don't think there is a way to log the issue when the option is selected. 
> There are 2 requested changes here:
> # Document the issue in the javadoc for OptionGroup.getSelected() and 
> OptionGroup.isSelected() methods.
> # Add a commandLine.hasOption(OptionGroup) method that basically performs the 
>  OptionGorup equivalent of the commandLine.hasOption(Option) call as well as 
> the similar getOptionValue(), getOptionValues(), getParsedOption(), and 
> getParsedOptionValues() methods.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (CLI-336) Deprecation use not always reported.

2024-06-24 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/CLI-336?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17859702#comment-17859702
 ] 

Claude Warren commented on CLI-336:
---

Added to CommandLine to accept OptionGroup for
 * hasOption()
 * getOptionValue()
 * getOptionValues()
 * getParsedOptionValue()

> Deprecation use not always reported.
> 
>
> Key: CLI-336
> URL: https://issues.apache.org/jira/browse/CLI-336
> Project: Commons CLI
>  Issue Type: Improvement
>  Components: CLI-1.x
>Affects Versions: 1.8.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>
> I have a case where I have multiple no-argument options in an OptionGroup.  
> The group comprises a deprecated option and a current option.  Basically an 
> option rename. 
> When I check for the option I simply check if (OptionGroup.getSelected() != 
> null).  However if the deprecated value is selected this does not print the 
> log message that says a deprecated value was selected.  The only way I could 
> find to do this was to do
> if (OptionGroup.getSelected() != null) {
> commandLine.hasOption(OptionGroup.getSelected());
> ... other processing
> }
> I don't think there is a way to log the issue when the option is selected. 
> There are 2 requested changes here:
> # Document the issue in the javadoc for OptionGroup.getSelected() and 
> OptionGroup.isSelected() methods.
> # Add a commandLine.hasOption(OptionGroup) method that basically performs the 
>  OptionGorup equivalent of the commandLine.hasOption(Option) call as well as 
> the similar getOptionValue(), getOptionValues(), getParsedOption(), and 
> getParsedOptionValues() methods.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (COLLECTIONS-857) Update documentation to match bloomfilter implementation.

2024-06-24 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/COLLECTIONS-857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17859661#comment-17859661
 ] 

Claude Warren commented on COLLECTIONS-857:
---

Made corrections in pull request #508

> Update documentation to match bloomfilter implementation.
> -
>
> Key: COLLECTIONS-857
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-857
> Project: Commons Collections
>  Issue Type: Bug
>  Components: Bloomfilter
>Affects Versions: 4.5.0-M2
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Major
> Fix For: 4.5.0-M3
>
>
> Documentation for Bloom filter implementation references old class names and 
> methods.  Documentation should be updated to reflect changes and new 
> implementations (e.g. layered Bloom filter)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (COLLECTIONS-857) Update documentation to match bloomfilter implementation.

2024-06-23 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/COLLECTIONS-857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17859467#comment-17859467
 ] 

Claude Warren commented on COLLECTIONS-857:
---

Pull [507|https://github.com/apache/commons-collections/pull/507] is a fix

> Update documentation to match bloomfilter implementation.
> -
>
> Key: COLLECTIONS-857
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-857
> Project: Commons Collections
>  Issue Type: Bug
>  Components: Bloomfilter
>Affects Versions: 4.5.0-M2
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Major
>
> Documentation for Bloom filter implementation references old class names and 
> methods.  Documentation should be updated to reflect changes and new 
> implementations (e.g. layered Bloom filter)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (COLLECTIONS-857) Update documentation to match bloomfilter implementation.

2024-06-23 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-857?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated COLLECTIONS-857:
--
Assignee: Claude Warren

> Update documentation to match bloomfilter implementation.
> -
>
> Key: COLLECTIONS-857
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-857
> Project: Commons Collections
>  Issue Type: Bug
>  Components: Bloomfilter
>Affects Versions: 4.5.0-M2
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Major
>
> Documentation for Bloom filter implementation references old class names and 
> methods.  Documentation should be updated to reflect changes and new 
> implementations (e.g. layered Bloom filter)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (COLLECTIONS-857) Update documentation to match bloomfilter implementation.

2024-06-23 Thread Claude Warren (Jira)
Claude Warren created COLLECTIONS-857:
-

 Summary: Update documentation to match bloomfilter implementation.
 Key: COLLECTIONS-857
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-857
 Project: Commons Collections
  Issue Type: Bug
  Components: Bloomfilter
Affects Versions: 4.5.0-M2
Reporter: Claude Warren


Documentation for Bloom filter implementation references old class names and 
methods.  Documentation should be updated to reflect changes and new 
implementations (e.g. layered Bloom filter)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (CLI-335) Defining Default Properties documentation has errors.

2024-06-12 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-335?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated CLI-335:
--
Assignee: Claude Warren

> Defining Default Properties documentation has errors.
> -
>
> Key: CLI-335
> URL: https://issues.apache.org/jira/browse/CLI-335
> Project: Commons CLI
>  Issue Type: Bug
>  Components: Documentation
>Affects Versions: 1.8.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Major
>
>   https://commons.apache.org/proper/commons-cli/properties.html  specifically 
> links to the deprecated OptionBuilder class.  It should reference the 
> Option.Builder (note the dot) class.
> In addition there are methods defined in Option.Builder that are not 
> described in the properties document.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (CLI-336) Deprecation use not always reported.

2024-06-11 Thread Claude Warren (Jira)
Claude Warren created CLI-336:
-

 Summary: Deprecation use not always reported.
 Key: CLI-336
 URL: https://issues.apache.org/jira/browse/CLI-336
 Project: Commons CLI
  Issue Type: Improvement
  Components: CLI-1.x
Affects Versions: 1.8.0
Reporter: Claude Warren



I have a case where I have multiple no-argument options in an OptionGroup.  The 
group comprises a deprecated option and a current option.  Basically an option 
rename. 

When I check for the option I simply check if (OptionGroup.getSelected() != 
null).  However if the deprecated value is selected this does not print the log 
message that says a deprecated value was selected.  The only way I could find 
to do this was to do

if (OptionGroup.getSelected() != null) {
commandLine.hasOption(OptionGroup.getSelected());
... other processing
}

I don't think there is a way to log the issue when the option is selected. 

There are 2 requested changes here:

# Document the issue in the javadoc for OptionGroup.getSelected() and 
OptionGroup.isSelected() methods.
# Add a commandLine.hasOption(OptionGroup) method that basically performs the  
OptionGorup equivalent of the commandLine.hasOption(Option) call as well as the 
similar getOptionValue(), getOptionValues(), getParsedOption(), and 
getParsedOptionValues() methods.




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (CLI-336) Deprecation use not always reported.

2024-06-11 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-336?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated CLI-336:
--
Assignee: Claude Warren

> Deprecation use not always reported.
> 
>
> Key: CLI-336
> URL: https://issues.apache.org/jira/browse/CLI-336
> Project: Commons CLI
>  Issue Type: Improvement
>  Components: CLI-1.x
>Affects Versions: 1.8.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>
> I have a case where I have multiple no-argument options in an OptionGroup.  
> The group comprises a deprecated option and a current option.  Basically an 
> option rename. 
> When I check for the option I simply check if (OptionGroup.getSelected() != 
> null).  However if the deprecated value is selected this does not print the 
> log message that says a deprecated value was selected.  The only way I could 
> find to do this was to do
> if (OptionGroup.getSelected() != null) {
> commandLine.hasOption(OptionGroup.getSelected());
> ... other processing
> }
> I don't think there is a way to log the issue when the option is selected. 
> There are 2 requested changes here:
> # Document the issue in the javadoc for OptionGroup.getSelected() and 
> OptionGroup.isSelected() methods.
> # Add a commandLine.hasOption(OptionGroup) method that basically performs the 
>  OptionGorup equivalent of the commandLine.hasOption(Option) call as well as 
> the similar getOptionValue(), getOptionValues(), getParsedOption(), and 
> getParsedOptionValues() methods.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (COLLECTIONS-855) Update the EnhancedDoubleHasher to correct the cube component of the hash

2024-06-07 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated COLLECTIONS-855:
--
Description: 
The EnhancedDoubleHasher currently computes the hash with the cube component 
lagging by 1:
{noformat}
hash[i] = ( h1(x) - i*h2(x) - ((i-1)^3 - (i-1))/6 ) wrapped in [0, 
bits){noformat}
Correct this to the intended:
{noformat}
hash[i] = ( h1(x) - i*h2(x) - (i*i*i - i)/6 ) wrapped in [0, bits){noformat}
This is a simple change in the current controlling loop from:
{code:java}
for (int i = 0; i < k; i++) { {code}
to:
{code:java}
for (int i = 1; i <= k; i++) { {code}
 

Issue notified by Juan Manuel Gimeno Illa on the Commons dev mailing list (see 
[https://lists.apache.org/thread/wjmwxzozrtf41ko9r0g7pzrrg11o923o]).
Pull request: https://github.com/apache/commons-collections/pull/501

  was:
The EnhancedDoubleHasher currently computes the hash with the cube component 
lagging by 1:
{noformat}
hash[i] = ( h1(x) - i*h2(x) - ((i-1)^3 - (i-1))/6 ) wrapped in [0, 
bits){noformat}
Correct this to the intended:
{noformat}
hash[i] = ( h1(x) - i*h2(x) - (i*i*i - i)/6 ) wrapped in [0, bits){noformat}
This is a simple change in the current controlling loop from:
{code:java}
for (int i = 0; i < k; i++) { {code}
to:
{code:java}
for (int i = 1; i <= k; i++) { {code}
 

Issue notified by Juan Manuel Gimeno Illa on the Commons dev mailing list (see 
[https://lists.apache.org/thread/wjmwxzozrtf41ko9r0g7pzrrg11o923o]).


> Update the EnhancedDoubleHasher to correct the cube component of the hash
> -
>
> Key: COLLECTIONS-855
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-855
> Project: Commons Collections
>  Issue Type: Bug
>  Components: Bloomfilter
>Affects Versions: 4.5.0-M1
>Reporter: Alex Herbert
>Assignee: Claude Warren
>Priority: Blocker
>
> The EnhancedDoubleHasher currently computes the hash with the cube component 
> lagging by 1:
> {noformat}
> hash[i] = ( h1(x) - i*h2(x) - ((i-1)^3 - (i-1))/6 ) wrapped in [0, 
> bits){noformat}
> Correct this to the intended:
> {noformat}
> hash[i] = ( h1(x) - i*h2(x) - (i*i*i - i)/6 ) wrapped in [0, bits){noformat}
> This is a simple change in the current controlling loop from:
> {code:java}
> for (int i = 0; i < k; i++) { {code}
> to:
> {code:java}
> for (int i = 1; i <= k; i++) { {code}
>  
> Issue notified by Juan Manuel Gimeno Illa on the Commons dev mailing list 
> (see [https://lists.apache.org/thread/wjmwxzozrtf41ko9r0g7pzrrg11o923o]).
> Pull request: https://github.com/apache/commons-collections/pull/501



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (COLLECTIONS-855) Update the EnhancedDoubleHasher to correct the cube component of the hash

2024-06-07 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated COLLECTIONS-855:
--
Assignee: Claude Warren

> Update the EnhancedDoubleHasher to correct the cube component of the hash
> -
>
> Key: COLLECTIONS-855
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-855
> Project: Commons Collections
>  Issue Type: Bug
>  Components: Bloomfilter
>Affects Versions: 4.5.0-M1
>Reporter: Alex Herbert
>Assignee: Claude Warren
>Priority: Blocker
>
> The EnhancedDoubleHasher currently computes the hash with the cube component 
> lagging by 1:
> {noformat}
> hash[i] = ( h1(x) - i*h2(x) - ((i-1)^3 - (i-1))/6 ) wrapped in [0, 
> bits){noformat}
> Correct this to the intended:
> {noformat}
> hash[i] = ( h1(x) - i*h2(x) - (i*i*i - i)/6 ) wrapped in [0, bits){noformat}
> This is a simple change in the current controlling loop from:
> {code:java}
> for (int i = 0; i < k; i++) { {code}
> to:
> {code:java}
> for (int i = 1; i <= k; i++) { {code}
>  
> Issue notified by Juan Manuel Gimeno Illa on the Commons dev mailing list 
> (see [https://lists.apache.org/thread/wjmwxzozrtf41ko9r0g7pzrrg11o923o]).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (CLI-335) Defining Default Properties documentation has errors.

2024-05-31 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/CLI-335?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17851169#comment-17851169
 ] 

Claude Warren commented on CLI-335:
---

I plan on doing so in the next few weeks.  I am tied up next week with 
community over code and then I'll need to spend some time at my $ job to catch 
up there.   If someone else does not catch this before the end of the month I 
should be able to submit a pull by then.

> Defining Default Properties documentation has errors.
> -
>
> Key: CLI-335
> URL: https://issues.apache.org/jira/browse/CLI-335
> Project: Commons CLI
>  Issue Type: Bug
>  Components: Documentation
>Affects Versions: 1.8.0
>Reporter: Claude Warren
>Priority: Major
>
>   https://commons.apache.org/proper/commons-cli/properties.html  specifically 
> links to the deprecated OptionBuilder class.  It should reference the 
> Option.Builder (note the dot) class.
> In addition there are methods defined in Option.Builder that are not 
> described in the properties document.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (COLLECTIONS-855) Update the EnhancedDoubleHasher to correct the cube component of the hash

2024-05-29 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/COLLECTIONS-855?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17850493#comment-17850493
 ] 

Claude Warren commented on COLLECTIONS-855:
---

I agree.  I was just pointing out that it sorta falls into that space where
we have to think about if the change would break something in the wild.  Do
we have a marker for such things?  An annotation of something like that to
inform other developers going forward?

On Wed, May 29, 2024 at 10:13 PM Gary D. Gregory (Jira) 



> Update the EnhancedDoubleHasher to correct the cube component of the hash
> -
>
> Key: COLLECTIONS-855
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-855
> Project: Commons Collections
>  Issue Type: Bug
>  Components: Bloomfilter
>Affects Versions: 4.5.0-M1
>Reporter: Alex Herbert
>Priority: Blocker
>
> The EnhancedDoubleHasher currently computes the hash with the cube component 
> lagging by 1:
> {noformat}
> hash[i] = ( h1(x) - i*h2(x) - ((i-1)^3 - (i-1))/6 ) wrapped in [0, 
> bits){noformat}
> Correct this to the intended:
> {noformat}
> hash[i] = ( h1(x) - i*h2(x) - (i*i*i - i)/6 ) wrapped in [0, bits){noformat}
> This is a simple change in the current controlling loop from:
> {code:java}
> for (int i = 0; i < k; i++) { {code}
> to:
> {code:java}
> for (int i = 1; i <= k; i++) { {code}
>  
> Issue notified by Juan Manuel Gimeno Illa on the Commons dev mailing list 
> (see [https://lists.apache.org/thread/wjmwxzozrtf41ko9r0g7pzrrg11o923o]).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (COLLECTIONS-855) Update the EnhancedDoubleHasher to correct the cube component of the hash

2024-05-29 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/COLLECTIONS-855?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17850427#comment-17850427
 ] 

Claude Warren commented on COLLECTIONS-855:
---

Users are expected to rely on the output.  They are expected to use it to
calculate hashes for the filters.  So any stored filters will not match if
there is a change.  If this code had been released this change would be
like the breaking change in the murmur3 hash in commons codec awhile back.






> Update the EnhancedDoubleHasher to correct the cube component of the hash
> -
>
> Key: COLLECTIONS-855
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-855
> Project: Commons Collections
>  Issue Type: Bug
>  Components: Bloomfilter
>Affects Versions: 4.5.0-M1
>Reporter: Alex Herbert
>Priority: Blocker
>
> The EnhancedDoubleHasher currently computes the hash with the cube component 
> lagging by 1:
> {noformat}
> hash[i] = ( h1(x) - i*h2(x) - ((i-1)^3 - (i-1))/6 ) wrapped in [0, 
> bits){noformat}
> Correct this to the intended:
> {noformat}
> hash[i] = ( h1(x) - i*h2(x) - (i*i*i - i)/6 ) wrapped in [0, bits){noformat}
> This is a simple change in the current controlling loop from:
> {code:java}
> for (int i = 0; i < k; i++) { {code}
> to:
> {code:java}
> for (int i = 1; i <= k; i++) { {code}
>  
> Issue notified by Juan Manuel Gimeno Illa on the Commons dev mailing list 
> (see [https://lists.apache.org/thread/wjmwxzozrtf41ko9r0g7pzrrg11o923o]).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (COLLECTIONS-855) Update the EnhancedDoubleHasher to correct the cube component of the hash

2024-05-29 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/COLLECTIONS-855?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17850343#comment-17850343
 ] 

Claude Warren commented on COLLECTIONS-855:
---

With c/c Eu next week i am a bit slammed but I wanted to make sure this was
on the radar before we cut the next candidate.

If it is not resolved by the end of next week i will take a look at it

Claude




> Update the EnhancedDoubleHasher to correct the cube component of the hash
> -
>
> Key: COLLECTIONS-855
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-855
> Project: Commons Collections
>  Issue Type: Bug
>  Components: Bloomfilter
>Affects Versions: 4.5.0-M1
>Reporter: Alex Herbert
>Priority: Blocker
>
> The EnhancedDoubleHasher currently computes the hash with the cube component 
> lagging by 1:
> {noformat}
> hash[i] = ( h1(x) - i*h2(x) - ((i-1)^3 - (i-1))/6 ) wrapped in [0, 
> bits){noformat}
> Correct this to the intended:
> {noformat}
> hash[i] = ( h1(x) - i*h2(x) - (i*i*i - i)/6 ) wrapped in [0, bits){noformat}
> This is a simple change in the current controlling loop from:
> {code:java}
> for (int i = 0; i < k; i++) { {code}
> to:
> {code:java}
> for (int i = 1; i <= k; i++) { {code}
>  
> Issue notified by Juan Manuel Gimeno Illa on the Commons dev mailing list 
> (see [https://lists.apache.org/thread/wjmwxzozrtf41ko9r0g7pzrrg11o923o]).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (COLLECTIONS-855) Update the EnhancedDoubleHasher to correct the cube component of the hash

2024-05-29 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated COLLECTIONS-855:
--
Component/s: Bloomfilter

> Update the EnhancedDoubleHasher to correct the cube component of the hash
> -
>
> Key: COLLECTIONS-855
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-855
> Project: Commons Collections
>  Issue Type: Bug
>  Components: Bloomfilter
>Affects Versions: 4.5.0-M1
>Reporter: Alex Herbert
>Priority: Blocker
>
> The EnhancedDoubleHasher currently computes the hash with the cube component 
> lagging by 1:
> {noformat}
> hash[i] = ( h1(x) - i*h2(x) - ((i-1)^3 - (i-1))/6 ) wrapped in [0, 
> bits){noformat}
> Correct this to the intended:
> {noformat}
> hash[i] = ( h1(x) - i*h2(x) - (i*i*i - i)/6 ) wrapped in [0, bits){noformat}
> This is a simple change in the current controlling loop from:
> {code:java}
> for (int i = 0; i < k; i++) { {code}
> to:
> {code:java}
> for (int i = 1; i <= k; i++) { {code}
>  
> Issue notified by Juan Manuel Gimeno Illa on the Commons dev mailing list 
> (see [https://lists.apache.org/thread/wjmwxzozrtf41ko9r0g7pzrrg11o923o]).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (COLLECTIONS-855) Update the EnhancedDoubleHasher to correct the cube component of the hash

2024-05-29 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated COLLECTIONS-855:
--
Priority: Blocker  (was: Trivial)

This is a breaking API change and should be fixed before 4.5.0-M2 or release.

The effect is that the values generated from the 4.5.0-M1 EnhancedDoubleHasher 
will not be the same as values generated after this fix.

> Update the EnhancedDoubleHasher to correct the cube component of the hash
> -
>
> Key: COLLECTIONS-855
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-855
> Project: Commons Collections
>  Issue Type: Bug
>Affects Versions: 4.5.0-M1
>Reporter: Alex Herbert
>Priority: Blocker
>
> The EnhancedDoubleHasher currently computes the hash with the cube component 
> lagging by 1:
> {noformat}
> hash[i] = ( h1(x) - i*h2(x) - ((i-1)^3 - (i-1))/6 ) wrapped in [0, 
> bits){noformat}
> Correct this to the intended:
> {noformat}
> hash[i] = ( h1(x) - i*h2(x) - (i*i*i - i)/6 ) wrapped in [0, bits){noformat}
> This is a simple change in the current controlling loop from:
> {code:java}
> for (int i = 0; i < k; i++) { {code}
> to:
> {code:java}
> for (int i = 1; i <= k; i++) { {code}
>  
> Issue notified by Juan Manuel Gimeno Illa on the Commons dev mailing list 
> (see [https://lists.apache.org/thread/wjmwxzozrtf41ko9r0g7pzrrg11o923o]).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (CLI-335) Defining Default Properties documentation has errors.

2024-05-29 Thread Claude Warren (Jira)
Claude Warren created CLI-335:
-

 Summary: Defining Default Properties documentation has errors.
 Key: CLI-335
 URL: https://issues.apache.org/jira/browse/CLI-335
 Project: Commons CLI
  Issue Type: Bug
  Components: Documentation
Affects Versions: 1.8.0
Reporter: Claude Warren


  https://commons.apache.org/proper/commons-cli/properties.html  specifically 
links to the deprecated OptionBuilder class.  It should reference the 
Option.Builder (note the dot) class.

In addition there are methods defined in Option.Builder that are not described 
in the properties document.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (TEXT-217) Snake case utility method: CaseUtils.toSnakeCase(....)

2024-05-25 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/TEXT-217?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated TEXT-217:
---
Fix Version/s: 1.12.1
   (was: 1.9)

> Snake case utility method: CaseUtils.toSnakeCase()
> --
>
> Key: TEXT-217
> URL: https://issues.apache.org/jira/browse/TEXT-217
> Project: Commons Text
>  Issue Type: New Feature
>Affects Versions: 1.9
>Reporter: Adil Iqbal
>Assignee: Claude Warren
>Priority: Major
> Fix For: 1.12.1
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Requesting a feature to convert any string to snake case, as per 
> CaseUtils.toCamelCase(...)
> *Rationale:*
> As per the OpenAPI Specification 3.0, keys should be in snake case. There is 
> currently no common utility that can be used to accomplish that task.
> Any interaction between Java and Python is hindered, since Python uses snake 
> case as a best practice.
> *Feature Set Requested:*
> All features currently included in CaseUtils.toCamelCase(...) sans 
> capitalization flag. As you know, the capitalization flag was implemented to 
> support PascalCase, which is a convention even in Java, for many situations. 
> There is no equivalent for snake case.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (TEXT-217) Snake case utility method: CaseUtils.toSnakeCase(....)

2024-05-25 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/TEXT-217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17849450#comment-17849450
 ] 

Claude Warren commented on TEXT-217:


pull request #552 solves the problem by creating a generic converter that 
should be able to handle any conversion that can be done with look ahead 
parsing.

> Snake case utility method: CaseUtils.toSnakeCase()
> --
>
> Key: TEXT-217
> URL: https://issues.apache.org/jira/browse/TEXT-217
> Project: Commons Text
>  Issue Type: New Feature
>Affects Versions: 1.9
>Reporter: Adil Iqbal
>Assignee: Claude Warren
>Priority: Major
> Fix For: 1.9
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Requesting a feature to convert any string to snake case, as per 
> CaseUtils.toCamelCase(...)
> *Rationale:*
> As per the OpenAPI Specification 3.0, keys should be in snake case. There is 
> currently no common utility that can be used to accomplish that task.
> Any interaction between Java and Python is hindered, since Python uses snake 
> case as a best practice.
> *Feature Set Requested:*
> All features currently included in CaseUtils.toCamelCase(...) sans 
> capitalization flag. As you know, the capitalization flag was implemented to 
> support PascalCase, which is a convention even in Java, for many situations. 
> There is no equivalent for snake case.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (TEXT-217) Snake case utility method: CaseUtils.toSnakeCase(....)

2024-05-25 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/TEXT-217?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated TEXT-217:
---
Assignee: Claude Warren

> Snake case utility method: CaseUtils.toSnakeCase()
> --
>
> Key: TEXT-217
> URL: https://issues.apache.org/jira/browse/TEXT-217
> Project: Commons Text
>  Issue Type: New Feature
>Affects Versions: 1.9
>Reporter: Adil Iqbal
>Assignee: Claude Warren
>Priority: Major
> Fix For: 1.9
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Requesting a feature to convert any string to snake case, as per 
> CaseUtils.toCamelCase(...)
> *Rationale:*
> As per the OpenAPI Specification 3.0, keys should be in snake case. There is 
> currently no common utility that can be used to accomplish that task.
> Any interaction between Java and Python is hindered, since Python uses snake 
> case as a best practice.
> *Feature Set Requested:*
> All features currently included in CaseUtils.toCamelCase(...) sans 
> capitalization flag. As you know, the capitalization flag was implemented to 
> support PascalCase, which is a convention even in Java, for many situations. 
> There is no equivalent for snake case.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (CLI-321) Add and use a Converter interface and implementations without using BeanUtils

2024-05-24 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-321?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated CLI-321:
--
Description: The current TypeHandler implementation notes indicate that the 
BeanUtils.Converters should be used to create instances of the various types.  
This issue is to complete the implementation of TypeHandler so that it does NOT 
use the BeanUtils.Converters.  (was: The current TypeHandler implementation 
notes indicate that the BeanUtils.Converters should be used to create instances 
of the various types.  This issue is to complete the implementation of 
TypeHandler so that it uses the BeanUtils.Converters.)

> Add and use a Converter interface and implementations without using BeanUtils 
> --
>
> Key: CLI-321
> URL: https://issues.apache.org/jira/browse/CLI-321
> Project: Commons CLI
>  Issue Type: Improvement
>  Components: Parser
>Affects Versions: 1.6.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
> Fix For: 1.7.0
>
>
> The current TypeHandler implementation notes indicate that the 
> BeanUtils.Converters should be used to create instances of the various types. 
>  This issue is to complete the implementation of TypeHandler so that it does 
> NOT use the BeanUtils.Converters.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (CLI-321) Add and use a Converter interface and implementations without using BeanUtils

2024-05-24 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-321?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren resolved CLI-321.
---
Fix Version/s: 1.7.0
   (was: 1.8.1)
   Resolution: Fixed

Fixed with pull request #216

> Add and use a Converter interface and implementations without using BeanUtils 
> --
>
> Key: CLI-321
> URL: https://issues.apache.org/jira/browse/CLI-321
> Project: Commons CLI
>  Issue Type: Improvement
>  Components: Parser
>Affects Versions: 1.6.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
> Fix For: 1.7.0
>
>
> The current TypeHandler implementation notes indicate that the 
> BeanUtils.Converters should be used to create instances of the various types. 
>  This issue is to complete the implementation of TypeHandler so that it uses 
> the BeanUtils.Converters.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (CLI-321) Add and use a Converter interface and implementations without using BeanUtils

2024-05-24 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/CLI-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17849190#comment-17849190
 ] 

Claude Warren commented on CLI-321:
---

This should have been closed in 1.7

> Add and use a Converter interface and implementations without using BeanUtils 
> --
>
> Key: CLI-321
> URL: https://issues.apache.org/jira/browse/CLI-321
> Project: Commons CLI
>  Issue Type: Improvement
>  Components: Parser
>Affects Versions: 1.6.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
> Fix For: 1.8.1
>
>
> The current TypeHandler implementation notes indicate that the 
> BeanUtils.Converters should be used to create instances of the various types. 
>  This issue is to complete the implementation of TypeHandler so that it uses 
> the BeanUtils.Converters.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (CLI-322) Allow minus for kebab-case options

2024-05-24 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-322?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren resolved CLI-322.
---
Fix Version/s: 1.8.0
   (was: 1.8.1)
   Resolution: Fixed

Resolved by pull request #217

> Allow minus for kebab-case options
> --
>
> Key: CLI-322
> URL: https://issues.apache.org/jira/browse/CLI-322
> Project: Commons CLI
>  Issue Type: New Feature
>  Components: Parser
>Affects Versions: 1.6.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
> Fix For: 1.8.0
>
>
> Currently minus (“-“) is not allowed in option names,
> which makes common long options in kebab-case
> (like {{--is-not-allowed}}) impossible.
> This change is to allow it inside an option name.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (CLI-322) Allow minus for kebab-case options

2024-05-24 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/CLI-322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17849187#comment-17849187
 ] 

Claude Warren commented on CLI-322:
---

I think this should have been closed in 1.7.0  pull #217 resolved the issue.

> Allow minus for kebab-case options
> --
>
> Key: CLI-322
> URL: https://issues.apache.org/jira/browse/CLI-322
> Project: Commons CLI
>  Issue Type: New Feature
>  Components: Parser
>Affects Versions: 1.6.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
> Fix For: 1.8.1
>
>
> Currently minus (“-“) is not allowed in option names,
> which makes common long options in kebab-case
> (like {{--is-not-allowed}}) impossible.
> This change is to allow it inside an option name.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Comment Edited] (COLLECTIONS-854) Changes suggested to M1 release

2024-05-17 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/COLLECTIONS-854?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17847204#comment-17847204
 ] 

Claude Warren edited comment on COLLECTIONS-854 at 5/17/24 10:57 AM:
-

changed forEachRemaining() in the CountingLongPredicate and CountingPredicate 
classes to processRemaining() to keep in spririt with Extractor usage.

Added missing FunctionalInterface annotation to BloomFilterExtractor.


was (Author: claudenw):
changed forEachRemaining() in the CountingLongPredicate and CountingPredicate 
classes to processRemaining() to keep in spririt with Extractor usage.

> Changes suggested to M1 release
> ---
>
> Key: COLLECTIONS-854
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-854
> Project: Commons Collections
>  Issue Type: Improvement
>  Components: Bloomfilter
>Affects Versions: 4.5.0-M1
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>
> This is a list of items that we have agreed need to be changed for clarity of 
> API.
> see [https://lists.apache.org/thread/4fds9094c06o4gp1r8pf0xx4l0jthhds]
>  
>  * Rename classes:
>  ** CellConsumer to CellPredicate
>  ** BitMap to BitMaps.
>  ** BitMapProducer to BitMapExtractor
>  ** BloomFilterProducer to BloomFilterExtractor
>  ** IndexProducer to IndexExtractor
>  ** CellProducer to CellExtractor
>  * Rename methods:
>  ** Extractor methods forEachX() to processXs(Predicate)
>  * Be clear that extractors are like interruptible iterators with predicate 
> tests acting as a switch to stop the iteration before the final item.
>  * Document the semantic nomenclature:
>  ** Bitmaps are arrays of bits not a BitMaps 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.
>  ** Extractors
>  *** are extractors of representations of Bloom filter enabled bits. 
>  *** iterate over logical collections of the object (Bitmap, Index, Cell) 
> applying a predicate to do work and stop the iteration early if necessary. 
>  *** allow us to query the contents of the Bloom filter in an implementation 
> agnostic way.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (COLLECTIONS-854) Changes suggested to M1 release

2024-05-17 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/COLLECTIONS-854?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17847204#comment-17847204
 ] 

Claude Warren commented on COLLECTIONS-854:
---

changed forEachRemaining() in the CountingLongPredicate and CountingPredicate 
classes to processRemaining() to keep in spririt with Extractor usage.

> Changes suggested to M1 release
> ---
>
> Key: COLLECTIONS-854
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-854
> Project: Commons Collections
>  Issue Type: Improvement
>  Components: Bloomfilter
>Affects Versions: 4.5.0-M1
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>
> This is a list of items that we have agreed need to be changed for clarity of 
> API.
> see [https://lists.apache.org/thread/4fds9094c06o4gp1r8pf0xx4l0jthhds]
>  
>  * Rename classes:
>  ** CellConsumer to CellPredicate
>  ** BitMap to BitMaps.
>  ** BitMapProducer to BitMapExtractor
>  ** BloomFilterProducer to BloomFilterExtractor
>  ** IndexProducer to IndexExtractor
>  ** CellProducer to CellExtractor
>  * Rename methods:
>  ** Extractor methods forEachX() to processXs(Predicate)
>  * Be clear that extractors are like interruptible iterators with predicate 
> tests acting as a switch to stop the iteration before the final item.
>  * Document the semantic nomenclature:
>  ** Bitmaps are arrays of bits not a BitMaps 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.
>  ** Extractors
>  *** are extractors of representations of Bloom filter enabled bits. 
>  *** iterate over logical collections of the object (Bitmap, Index, Cell) 
> applying a predicate to do work and stop the iteration early if necessary. 
>  *** allow us to query the contents of the Bloom filter in an implementation 
> agnostic way.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (COLLECTIONS-854) Changes suggested to M1 release

2024-05-16 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated COLLECTIONS-854:
--
Description: 
This is a list of items that we have agreed need to be changed for clarity of 
API.

see [https://lists.apache.org/thread/4fds9094c06o4gp1r8pf0xx4l0jthhds]

 
 * Rename classes:
 ** CellConsumer to CellPredicate
 ** BitMap to BitMaps.
 ** BitMapProducer to BitMapExtractor
 ** BloomFilterProducer to BloomFilterExtractor
 ** IndexProducer to IndexExtractor
 ** CellProducer to CellExtractor

 * Rename methods:
 ** Extractor methods forEachX() to processXs(Predicate)

 * Be clear that extractors are like interruptible iterators with predicate 
tests acting as a switch to stop the iteration before the final item.
 * Document the semantic nomenclature:
 ** Bitmaps are arrays of bits not a BitMaps 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.
 ** Extractors
 *** are extractors of representations of Bloom filter enabled bits. 
 *** iterate over logical collections of the object (Bitmap, Index, Cell) 
applying a predicate to do work and stop the iteration early if necessary. 
 *** allow us to query the contents of the Bloom filter in an implementation 
agnostic way.

 

  was:
This is a list of items that we have agreed need to be changed for clarity of 
API.

see [https://lists.apache.org/thread/4fds9094c06o4gp1r8pf0xx4l0jthhds]

 
 * Rename classes:
 ** CellConsumer to CellPredicate
 ** BitMap to BitMaps.
 ** BitMapProducer to BitMapExtractor
 ** BloomFilterProducer to BloomFilterExtractor
 ** IndexProducer to IndexExtractor
 ** CellProducer to CellExtractor

 * Rename methods:
 ** Extractor methods forEachX() to processX(Predicate)

 * Be clear that extractors are like interruptible iterators with predicate 
tests acting as a switch to stop the iteration before the final item.
 * Document the semantic nomenclature:
 ** Bitmaps are arrays of bits not a BitMaps 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.
 ** Extractors
 *** are extractors of representations of Bloom filter enabled bits. 
 *** iterate over logical collections of the object (Bitmap, Index, Cell) 
applying a predicate to do work and stop the iteration early if necessary. 
 *** allow us to query the contents of the Bloom filter in an implementation 
agnostic way.

 


> Changes suggested to M1 release
> ---
>
> Key: COLLECTIONS-854
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-854
> Project: Commons Collections
>  Issue Type: Improvement
>  Components: Bloomfilter
>Affects Versions: 4.5.0-M1
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>
> This is a list of items that we have agreed need to be changed for clarity of 
> API.
> see [https://lists.apache.org/thread/4fds9094c06o4gp1r8pf0xx4l0jthhds]
>  
>  * Rename classes:
>  ** CellConsumer to CellPredicate
>  ** BitMap to BitMaps.
>  ** BitMapProducer to BitMapExtractor
>  ** BloomFilterProducer to BloomFilterExtractor
>  ** IndexProducer to IndexExtractor
>  ** CellProducer to CellExtractor
>  * Rename methods:
>  ** Extractor methods forEachX() to processXs(Predicate)
>  * Be clear that extractors are like interruptible iterators with predicate 
> tests acting as a switch to stop the iteration before the final item.
>  * Document the semantic nomenclature:
>  ** Bitmaps are arrays of bits not a BitMaps 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.
>  ** Extractors
>  *** are extractors of representations of Bloom filter enabled bits. 
>  *** iterate over logical collections of the object (Bitmap, Index, Cell) 
> applying a predicate to do work and stop the iteration early if necessary. 
>  *** allow us to query the contents of the Bloom filter in an implementation 
> agnostic way.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (COLLECTIONS-854) Changes suggested to M1 release

2024-05-16 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated COLLECTIONS-854:
--
Description: 
This is a list of items that we have agreed need to be changed for clarity of 
API.

see [https://lists.apache.org/thread/4fds9094c06o4gp1r8pf0xx4l0jthhds]

 
 * Rename classes:
 ** CellConsumer to CellPredicate
 ** BitMap to BitMaps.
 ** BitMapProducer to BitMapExtractor
 ** BloomFilterProducer to BloomFilterExtractor
 ** IndexProducer to IndexExtractor
 ** CellProducer to CellExtractor

 * Rename methods:
 ** Extractor methods forEachX() to processX(Predicate)

 * Be clear that extractors are like interruptible iterators with predicate 
tests acting as a switch to stop the iteration before the final item.
 * Document the semantic nomenclature:
 ** Bitmaps are arrays of bits not a BitMaps 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.
 ** Extractors
 *** are extractors of representations of Bloom filter enabled bits. 
 *** iterate over logical collections of the object (Bitmap, Index, Cell) 
applying a predicate to do work and stop the iteration early if necessary. 
 *** allow us to query the contents of the Bloom filter in an implementation 
agnostic way.

 

  was:
This is a list of items that we have agreed need to be changed for clarity of 
API.

see [https://lists.apache.org/thread/4fds9094c06o4gp1r8pf0xx4l0jthhds]

 
 * Rename classes:
 ** CellConsumer to CellPredicate
 ** BitMap to BitMaps.
 ** BitMapProducer to BitMapExtractor
 ** BloomFilterProducer to BloomFilterExtractor
 ** IndexProducer to IndexExtractor

 * Rename methods:
 ** Extractor methods forEachX() to processX(Predicate)

 * Be clear that extractors are like interruptible iterators with predicate 
tests acting as a switch to stop the iteration before the final item.
 * Document the semantic nomenclature:
 ** Bitmaps are arrays of bits not a BitMaps 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.
 ** Extractors
 *** are extractors of representations of Bloom filter enabled bits. 
 *** iterate over logical collections of the object (Bitmap, Index, Cell) 
applying a predicate to do work and stop the iteration early if necessary.  
 *** allow us to query the contents of the Bloom filter in an implementation 
agnostic way.

 


> Changes suggested to M1 release
> ---
>
> Key: COLLECTIONS-854
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-854
> Project: Commons Collections
>  Issue Type: Improvement
>  Components: Bloomfilter
>Affects Versions: 4.5.0-M1
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>
> This is a list of items that we have agreed need to be changed for clarity of 
> API.
> see [https://lists.apache.org/thread/4fds9094c06o4gp1r8pf0xx4l0jthhds]
>  
>  * Rename classes:
>  ** CellConsumer to CellPredicate
>  ** BitMap to BitMaps.
>  ** BitMapProducer to BitMapExtractor
>  ** BloomFilterProducer to BloomFilterExtractor
>  ** IndexProducer to IndexExtractor
>  ** CellProducer to CellExtractor
>  * Rename methods:
>  ** Extractor methods forEachX() to processX(Predicate)
>  * Be clear that extractors are like interruptible iterators with predicate 
> tests acting as a switch to stop the iteration before the final item.
>  * Document the semantic nomenclature:
>  ** Bitmaps are arrays of bits not a BitMaps 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.
>  ** Extractors
>  *** are extractors of representations of Bloom filter enabled bits. 
>  *** iterate over logical collections of the object (Bitmap, Index, Cell) 
> applying a predicate to do work and stop the iteration early if necessary. 
>  *** allow us to query the contents of the Bloom filter in an implementation 
> agnostic way.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (COLLECTIONS-853) API changes to LayeredBloomFilter, LayerManager and WrappedBloomFilter

2024-05-15 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-853?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren resolved COLLECTIONS-853.
---
Resolution: Fixed

fixed with pull request #481

> API changes to LayeredBloomFilter, LayerManager and WrappedBloomFilter
> --
>
> Key: COLLECTIONS-853
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-853
> Project: Commons Collections
>  Issue Type: Improvement
>Affects Versions: 4.5.0-M1
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Major
>
> After looking at the LayeredBloomFilter and the LayerManager and the way it 
> is intended to be used I found a couple of changes that we might want to 
> consider.
> 1) WrappedBloomFilter should not implement copy(), that should be left to the 
> wrapping implementation.
> 2) We change LayerManager to be a templated type that contains a List extends BloomFilter> and add two methods first() and last() to retrieve the 
> first and last internal filters respectively.  These are common queries and 
> should be directly implemented.
> 3) We change LayeredBloomFilter to be a templated type  BloomFilter> where T is the type of BloomFilter to be used for each Layer.
> For example the use of LayeredBloomFilter for KIP-936 requires a BloomFilter 
> with an associated timestamp.  So when copy() is called for duplication it 
> must create the same BloomFilter.  It uses WrappedBloomFilter to add the 
> timestamp property.  The LayeredBloomFilter in KIP-936 actually stores a 
> custom TimestampedBloomFilter implementation that extends WrappedBloomFilter.
> This is a rather deep change to LayeredBloomFilter but I think Alex is 
> correct that we should use List, but that usage dictates that we use T 
> extends BloomFilter as the type.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (COLLECTIONS-852) LayeredBloomFilter needs a way to call clean without adding a new layer

2024-05-15 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-852?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren resolved COLLECTIONS-852.
---
Resolution: Fixed

Fixed with pull request 476

> LayeredBloomFilter needs a way to call clean without adding a new layer
> ---
>
> Key: COLLECTIONS-852
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-852
> Project: Commons Collections
>  Issue Type: Improvement
>Affects Versions: 4.5.0-M1
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Major
>
> Currently the LayeredBloomFilter has no mechanism to clean the filter without 
> adding something.  
> The only path to clean is to call next() adding a new layer or to add a 
> filter which changes the state of the last layer.  In some cases it is 
> necessary to simply removed expired layers without changing the state of 
> existing layers.
> This proposal is to add a clean() method to the LayeredBloomFilter that will 
> cause the filterCleanup consumer on the LayerManager to execute thus removing 
> any expired layers.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (CLI-333) Define Builder as an implementation of Supplier

2024-05-15 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-333?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated CLI-333:
--
Assignee: Claude Warren

> Define Builder as an implementation of Supplier
> ---
>
> Key: CLI-333
> URL: https://issues.apache.org/jira/browse/CLI-333
> Project: Commons CLI
>  Issue Type: New Feature
>  Components: CLI-1.x, Help formatter, Parser
>Affects Versions: 1.7.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>
> The Builder pattern as described by the gang of four and general 
> implementations across multiple blogs and source packages creates a complex 
> pattern when a method is called.  That method specified in the pattern 
> description is "getResult", however the review of several blogs and 
> implementations indicate that "build", "getX" "toX" are all popular names for 
> the production method.
> In Java the Supplier interface defines a producer of X and stipulates that 
> every time the production method is called an instance of X must be returned. 
>  It does allow for the same instance to be returned for every call.
> Thus a Builder is a customization of the Supplier.  As commons strives to 
> utilize the JRE patterns over custom patterns, it makes sense that all 
> Builders should implement Supplier.
> Therefore this change is to have all Builders
>  # implement Supplier and add a get() method (if not already present)
>  # have the current producer method delegate to the get() method
>  # mark the current producer method as deprecated with a note to use get.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (COLLECTIONS-854) Changes suggested to M1 release

2024-05-15 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated COLLECTIONS-854:
--
Description: 
This is a list of items that we have agreed need to be changed for clarity of 
API.

see [https://lists.apache.org/thread/4fds9094c06o4gp1r8pf0xx4l0jthhds]

 
 * Rename classes:
 ** CellConsumer to CellPredicate
 ** BitMap to BitMaps.
 ** BitMapProducer to BitMapExtractor
 ** BloomFilterProducer to BloomFilterExtractor
 ** IndexProducer to IndexExtractor

 * Rename methods:
 ** Extractor methods forEachX() to processX(Predicate)

 * Be clear that extractors are like interruptible iterators with predicate 
tests acting as a switch to stop the iteration before the final item.
 * Document the semantic nomenclature:
 ** Bitmaps are arrays of bits not a BitMaps 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.
 ** Extractors
 *** are extractors of representations of Bloom filter enabled bits. 
 *** iterate over logical collections of the object (Bitmap, Index, Cell) 
applying a predicate to do work and stop the iteration early if necessary.  
 *** allow us to query the contents of the Bloom filter in an implementation 
agnostic way.

 

  was:
This is a list of items that we have agreed need to be changed for clarity of 
API.

see [https://lists.apache.org/thread/4fds9094c06o4gp1r8pf0xx4l0jthhds]

 
 * Be clear that producers are like interruptible iterators with predicate 
tests acting as a switch to short-circuit the iteration.
 * Rename classes:
 * CellConsumer to CellPredicate
 * Rename BitMap to BitMaps.
 * Rename BitMapProducer to BitMapExtractor
 * Rename 

 * Rename methods:
 * Producer forEachX() to forEachUntil()

 * The semantic nomenclature:
 * Bitmaps are arrays of bits not a BitMaps 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.

 


> Changes suggested to M1 release
> ---
>
> Key: COLLECTIONS-854
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-854
> Project: Commons Collections
>  Issue Type: Improvement
>  Components: Bloomfilter
>Affects Versions: 4.5.0-M1
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>
> This is a list of items that we have agreed need to be changed for clarity of 
> API.
> see [https://lists.apache.org/thread/4fds9094c06o4gp1r8pf0xx4l0jthhds]
>  
>  * Rename classes:
>  ** CellConsumer to CellPredicate
>  ** BitMap to BitMaps.
>  ** BitMapProducer to BitMapExtractor
>  ** BloomFilterProducer to BloomFilterExtractor
>  ** IndexProducer to IndexExtractor
>  * Rename methods:
>  ** Extractor methods forEachX() to processX(Predicate)
>  * Be clear that extractors are like interruptible iterators with predicate 
> tests acting as a switch to stop the iteration before the final item.
>  * Document the semantic nomenclature:
>  ** Bitmaps are arrays of bits not a BitMaps 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.
>  ** Extractors
>  *** are extractors of representations of Bloom filter enabled bits. 
>  *** iterate over logical collections of the object (Bitmap, Index, Cell) 
> applying a predicate to do work and stop the iteration early if necessary.  
>  *** allow us to query the contents of the Bloom filter in an implementation 
> agnostic way.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (COLLECTIONS-854) Changes suggested to M1 release

2024-05-15 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated COLLECTIONS-854:
--
Description: 
This is a list of items that we have agreed need to be changed for clarity of 
API.

see [https://lists.apache.org/thread/4fds9094c06o4gp1r8pf0xx4l0jthhds]

 
 * Be clear that producers are like interruptible iterators with predicate 
tests acting as a switch to short-circuit the iteration.
 * Rename classes:
 * CellConsumer to CellPredicate
 * Rename BitMap to BitMaps.
 * Rename BitMapProducer to BitMapExtractor
 * Rename 

 * Rename methods:
 * Producer forEachX() to forEachUntil()

 * The semantic nomenclature:
 * Bitmaps are arrays of bits not a BitMaps 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.

 

  was:
This is a list of items that we have agreed need to be changed for clarity of 
API.

see https://lists.apache.org/thread/4fds9094c06o4gp1r8pf0xx4l0jthhds

 
 * Be clear that producers are like interruptible iterators with predicate 
tests acting as a switch to short-circuit the iteration.
 * Rename classes:
 * CellConsumer to CellPredicate (?)
 * Rename BitMap to BitMaps.


 * Rename methods:
 * Producer forEachX() to forEachUntil()


 * The semantic nomenclature:
 * Bitmaps are arrays of bits not a BitMaps 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.

 


> Changes suggested to M1 release
> ---
>
> Key: COLLECTIONS-854
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-854
> Project: Commons Collections
>  Issue Type: Improvement
>  Components: Bloomfilter
>Affects Versions: 4.5.0-M1
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>
> This is a list of items that we have agreed need to be changed for clarity of 
> API.
> see [https://lists.apache.org/thread/4fds9094c06o4gp1r8pf0xx4l0jthhds]
>  
>  * Be clear that producers are like interruptible iterators with predicate 
> tests acting as a switch to short-circuit the iteration.
>  * Rename classes:
>  * CellConsumer to CellPredicate
>  * Rename BitMap to BitMaps.
>  * Rename BitMapProducer to BitMapExtractor
>  * Rename 
>  * Rename methods:
>  * Producer forEachX() to forEachUntil()
>  * The semantic nomenclature:
>  * Bitmaps are arrays of bits not a BitMaps 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.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (CLI-333) Define Builder as an implementation of Supplier

2024-05-15 Thread Claude Warren (Jira)
Claude Warren created CLI-333:
-

 Summary: Define Builder as an implementation of Supplier
 Key: CLI-333
 URL: https://issues.apache.org/jira/browse/CLI-333
 Project: Commons CLI
  Issue Type: New Feature
  Components: CLI-1.x, Help formatter, Parser
Affects Versions: 1.7.0
Reporter: Claude Warren


The Builder pattern as described by the gang of four and general 
implementations across multiple blogs and source packages creates a complex 
pattern when a method is called.  That method specified in the pattern 
description is "getResult", however the review of several blogs and 
implementations indicate that "build", "getX" "toX" are all popular names for 
the production method.

In Java the Supplier interface defines a producer of X and stipulates that 
every time the production method is called an instance of X must be returned.  
It does allow for the same instance to be returned for every call.

Thus a Builder is a customization of the Supplier.  As commons strives to 
utilize the JRE patterns over custom patterns, it makes sense that all Builders 
should implement Supplier.

Therefore this change is to have all Builders
 # implement Supplier and add a get() method (if not already present)
 # have the current producer method delegate to the get() method
 # mark the current producer method as deprecated with a note to use get.

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (CLI-332) Deprecated option details not specified in HelpFormatter

2024-05-11 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-332?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated CLI-332:
--
Description: 
Currently the HelpFormatter just prings "[Deprecated]" at the front of the 
description for  items that are deprecated.  It would be nice to be able to 
provide more information in the help output.

 

My proposal is to add a Function that will be applied to 
deprecated Options and to provide the text output.  The default implementation 
will return "[Deprecated} "+option.getDescription().

 

  was:Currently the HelpFormatter just prings "[Deprecated]" at the front of 
the description for  items that are deprecated.  It would be nice to be able to 
provide more information in the help output.


> Deprecated option details not specified in HelpFormatter
> 
>
> Key: CLI-332
> URL: https://issues.apache.org/jira/browse/CLI-332
> Project: Commons CLI
>  Issue Type: Improvement
>  Components: Help formatter
>Affects Versions: 1.7.0
>Reporter: Claude Warren
>Priority: Minor
>
> Currently the HelpFormatter just prings "[Deprecated]" at the front of the 
> description for  items that are deprecated.  It would be nice to be able to 
> provide more information in the help output.
>  
> My proposal is to add a Function that will be applied to 
> deprecated Options and to provide the text output.  The default 
> implementation will return "[Deprecated} "+option.getDescription().
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (CLI-332) Deprecated option details not specified in HelpFormatter

2024-05-11 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-332?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated CLI-332:
--
Assignee: Claude Warren

> Deprecated option details not specified in HelpFormatter
> 
>
> Key: CLI-332
> URL: https://issues.apache.org/jira/browse/CLI-332
> Project: Commons CLI
>  Issue Type: Improvement
>  Components: Help formatter
>Affects Versions: 1.7.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>
> Currently the HelpFormatter just prings "[Deprecated]" at the front of the 
> description for  items that are deprecated.  It would be nice to be able to 
> provide more information in the help output.
>  
> My proposal is to add a Function that will be applied to 
> deprecated Options and to provide the text output.  The default 
> implementation will return "[Deprecated} "+option.getDescription().
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (CLI-332) Deprecated option details not specified in HelpFormatter

2024-05-11 Thread Claude Warren (Jira)
Claude Warren created CLI-332:
-

 Summary: Deprecated option details not specified in HelpFormatter
 Key: CLI-332
 URL: https://issues.apache.org/jira/browse/CLI-332
 Project: Commons CLI
  Issue Type: Improvement
  Components: Help formatter
Affects Versions: 1.7.0
Reporter: Claude Warren


Currently the HelpFormatter just prings "[Deprecated]" at the front of the 
description for  items that are deprecated.  It would be nice to be able to 
provide more information in the help output.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (CLI-331) Deprecated option usage is not detected if non string keys are used for resolution.

2024-05-11 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-331?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated CLI-331:
--
Assignee: Claude Warren

> Deprecated option usage is not detected if non string keys are used for 
> resolution.
> ---
>
> Key: CLI-331
> URL: https://issues.apache.org/jira/browse/CLI-331
> Project: Commons CLI
>  Issue Type: Bug
>  Components: CLI-1.x
>Affects Versions: 1.7.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Major
>
> CommandLine.handleDeprecated() is not called if the option key is not a 
> string.
>  
> For example getOptionValue() has both String and Option parameter types. 
>  * getOptionValue(String) calls handleDeprecated()
>  * getOptionValue(Option) does not call handleDeprecated().
> In most cases the String parameter resolves the Option and calls the Option 
> parameter method of the same name. 
> The fix is to move the handleDeprecated() into the Option processing path.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (CLI-331) Deprecated option usage is not detected if non string keys are used for resolution.

2024-05-11 Thread Claude Warren (Jira)
Claude Warren created CLI-331:
-

 Summary: Deprecated option usage is not detected if non string 
keys are used for resolution.
 Key: CLI-331
 URL: https://issues.apache.org/jira/browse/CLI-331
 Project: Commons CLI
  Issue Type: Bug
  Components: CLI-1.x
Affects Versions: 1.7.0
Reporter: Claude Warren


CommandLine.handleDeprecated() is not called if the option key is not a string.

 

For example getOptionValue() has both String and Option parameter types. 
 * getOptionValue(String) calls handleDeprecated()
 * getOptionValue(Option) does not call handleDeprecated().

In most cases the String parameter resolves the Option and calls the Option 
parameter method of the same name. 

The fix is to move the handleDeprecated() into the Option processing path.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (COLLECTIONS-854) Changes suggested to M1 release

2024-04-30 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated COLLECTIONS-854:
--
Assignee: Claude Warren

> Changes suggested to M1 release
> ---
>
> Key: COLLECTIONS-854
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-854
> Project: Commons Collections
>  Issue Type: Improvement
>  Components: Bloomfilter
>Affects Versions: 4.5.0-M1
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>
> This is a list of items that we have agreed need to be changed for clarity of 
> API.
> see https://lists.apache.org/thread/4fds9094c06o4gp1r8pf0xx4l0jthhds
>  
>  * Be clear that producers are like interruptible iterators with predicate 
> tests acting as a switch to short-circuit the iteration.
>  * Rename classes:
>  * CellConsumer to CellPredicate (?)
>  * Rename BitMap to BitMaps.
>  * Rename methods:
>  * Producer forEachX() to forEachUntil()
>  * The semantic nomenclature:
>  * Bitmaps are arrays of bits not a BitMaps 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.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (COLLECTIONS-854) Changes suggested to M1 release

2024-04-30 Thread Claude Warren (Jira)
Claude Warren created COLLECTIONS-854:
-

 Summary: Changes suggested to M1 release
 Key: COLLECTIONS-854
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-854
 Project: Commons Collections
  Issue Type: Improvement
  Components: Bloomfilter
Affects Versions: 4.5.0-M1
Reporter: Claude Warren


This is a list of items that we have agreed need to be changed for clarity of 
API.

see https://lists.apache.org/thread/4fds9094c06o4gp1r8pf0xx4l0jthhds

 
 * Be clear that producers are like interruptible iterators with predicate 
tests acting as a switch to short-circuit the iteration.
 * Rename classes:
 * CellConsumer to CellPredicate (?)
 * Rename BitMap to BitMaps.


 * Rename methods:
 * Producer forEachX() to forEachUntil()


 * The semantic nomenclature:
 * Bitmaps are arrays of bits not a BitMaps 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.

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (COLLECTIONS-853) API changes to LayeredBloomFilter, LayerManager and WrappedBloomFilter

2024-04-25 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-853?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated COLLECTIONS-853:
--
Assignee: Claude Warren

> API changes to LayeredBloomFilter, LayerManager and WrappedBloomFilter
> --
>
> Key: COLLECTIONS-853
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-853
> Project: Commons Collections
>  Issue Type: Improvement
>Affects Versions: 4.5.0-M1
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Major
>
> After looking at the LayeredBloomFilter and the LayerManager and the way it 
> is intended to be used I found a couple of changes that we might want to 
> consider.
> 1) WrappedBloomFilter should not implement copy(), that should be left to the 
> wrapping implementation.
> 2) We change LayerManager to be a templated type that contains a List extends BloomFilter> and add two methods first() and last() to retrieve the 
> first and last internal filters respectively.  These are common queries and 
> should be directly implemented.
> 3) We change LayeredBloomFilter to be a templated type  BloomFilter> where T is the type of BloomFilter to be used for each Layer.
> For example the use of LayeredBloomFilter for KIP-936 requires a BloomFilter 
> with an associated timestamp.  So when copy() is called for duplication it 
> must create the same BloomFilter.  It uses WrappedBloomFilter to add the 
> timestamp property.  The LayeredBloomFilter in KIP-936 actually stores a 
> custom TimestampedBloomFilter implementation that extends WrappedBloomFilter.
> This is a rather deep change to LayeredBloomFilter but I think Alex is 
> correct that we should use List, but that usage dictates that we use T 
> extends BloomFilter as the type.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (COLLECTIONS-853) API changes to LayeredBloomFilter, LayerManager and WrappedBloomFilter

2024-04-23 Thread Claude Warren (Jira)
Claude Warren created COLLECTIONS-853:
-

 Summary: API changes to LayeredBloomFilter, LayerManager and 
WrappedBloomFilter
 Key: COLLECTIONS-853
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-853
 Project: Commons Collections
  Issue Type: Improvement
Affects Versions: 4.5.0-M1
Reporter: Claude Warren


After looking at the LayeredBloomFilter and the LayerManager and the way it is 
intended to be used I found a couple of changes that we might want to consider.

1) WrappedBloomFilter should not implement copy(), that should be left to the 
wrapping implementation.

2) We change LayerManager to be a templated type that contains a List and add two methods first() and last() to retrieve the first and 
last internal filters respectively.  These are common queries and should be 
directly implemented.

3) We change LayeredBloomFilter to be a templated type  
where T is the type of BloomFilter to be used for each Layer.

For example the use of LayeredBloomFilter for KIP-936 requires a BloomFilter 
with an associated timestamp.  So when copy() is called for duplication it must 
create the same BloomFilter.  It uses WrappedBloomFilter to add the timestamp 
property.  The LayeredBloomFilter in KIP-936 actually stores a custom 
TimestampedBloomFilter implementation that extends WrappedBloomFilter.

This is a rather deep change to LayeredBloomFilter but I think Alex is correct 
that we should use List, but that usage dictates that we use T extends 
BloomFilter as the type.

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (COLLECTIONS-852) LayeredBloomFilter needs a way to call clean without adding a new layer

2024-04-12 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/COLLECTIONS-852?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17836596#comment-17836596
 ] 

Claude Warren commented on COLLECTIONS-852:
---

Opened  [https://github.com/apache/commons-collections/pull/476] to address 
this issue

> LayeredBloomFilter needs a way to call clean without adding a new layer
> ---
>
> Key: COLLECTIONS-852
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-852
> Project: Commons Collections
>  Issue Type: Improvement
>Affects Versions: 4.5.0-M1
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Major
>
> Currently the LayeredBloomFilter has no mechanism to clean the filter without 
> adding something.  
> The only path to clean is to call next() adding a new layer or to add a 
> filter which changes the state of the last layer.  In some cases it is 
> necessary to simply removed expired layers without changing the state of 
> existing layers.
> This proposal is to add a clean() method to the LayeredBloomFilter that will 
> cause the filterCleanup consumer on the LayerManager to execute thus removing 
> any expired layers.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (COLLECTIONS-852) LayeredBloomFilter needs a way to call clean without adding a new layer

2024-04-09 Thread Claude Warren (Jira)
Claude Warren created COLLECTIONS-852:
-

 Summary: LayeredBloomFilter needs a way to call clean without 
adding a new layer
 Key: COLLECTIONS-852
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-852
 Project: Commons Collections
  Issue Type: Improvement
Affects Versions: 4.5.0-M1
Reporter: Claude Warren
Assignee: Claude Warren


Currently the LayeredBloomFilter has no mechanism to clean the filter without 
adding something.  

The only path to clean is to call next() adding a new layer or to add a filter 
which changes the state of the last layer.  In some cases it is necessary to 
simply removed expired layers without changing the state of existing layers.

This proposal is to add a clean() method to the LayeredBloomFilter that will 
cause the filterCleanup consumer on the LayerManager to execute thus removing 
any expired layers.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (CLI-221) cli's with last option as list type values and have argument are not parsed correctly

2024-03-09 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/CLI-221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17824920#comment-17824920
 ] 

Claude Warren commented on CLI-221:
---

The problem with closing this is thst the bug still exists in the
DefaultParser.





> cli's with last option as list type values and have argument are not parsed 
> correctly
> -
>
> Key: CLI-221
> URL: https://issues.apache.org/jira/browse/CLI-221
> Project: Commons CLI
>  Issue Type: Bug
>  Components: Parser
>Affects Versions: 1.2
>Reporter: Gagan Jain
>Priority: Major
>
> I have set the value separator for an option to be comma (',').
> Consider the following cli:
> cli definition : cmd1 -o1  a1
> command name: 'cmd1'
> options: 'o1' accpets list of values separated by ','
> arguments: 'a1' single valued argument
> {code}cmd1 -o1 o1v1,o1v2,o1v3 a1v1{code}
> GnuParser parses this the cli with o1 having values {o1v1, o1v2, o1v3, a1v1} 
> instead of {o1v1,o1v2,o1v3}
> Bug seems to be in org.apache.commons.cli.Parser's class processArgs method.
> {code:java}
> public void processArgs(Option opt, ListIterator iter) throws 
> ParseException
> {
> // loop until an option is found
> while (iter.hasNext())
> {
> String str = (String) iter.next();
> // found an Option, not an argument
> if (getOptions().hasOption(str) && str.startsWith("-"))
> {
> iter.previous();
> break;
> }
> // found a value
> try
> {
> 
> opt.addValueForProcessing(Util.stripLeadingAndTrailingQuotes(str));
> }
> catch (RuntimeException exp)
> {
> iter.previous();
> break;
> }
> }
> if (opt.getValues() == null && !opt.hasOptionalArg())
> {
> throw new MissingArgumentException(opt);
> }
> }
> {code}
> In my opinion, if a value separator is defined for option, and is other than 
> space (' '), loop should break immediately after one iteration.
> Correct me, if I am wrong in my understanding.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Comment Edited] (CLI-221) cli's with last option as list type values and have argument are not parsed correctly

2024-03-08 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/CLI-221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17824678#comment-17824678
 ] 

Claude Warren edited comment on CLI-221 at 3/8/24 9:20 AM:
---

We could change the function of the double dash.  Currently it stops all 
processing and interprets the rest of the command line as arguments (not 
options).  If the double dash were used to stop args to options processing then 
something like
{noformat}
--has-multiple-values a,b c -2 -- -2 x
{noformat}
Would be correctly interpreted as 

option --has-multiple-values having values a, b, c, -2 

option -2 having value x

It does break the old interpretation of the above which would have rendered the 
result as:

option --has-multiple-values having values a, b, c, -2 

and there being 2 extra arguments: -2 and x

We could reinstate this by adding a second double dash so that 

{noformat}
--has-multiple-values a,b c -2 -- -- -2 x
{noformat}

would be interpreted as 
option --has-multiple-values having values a, b, c, -2 

and there being 2 extra arguments: -2 and x




was (Author: claudenw):
We could change the function of the double '{-}'.  Currently it stops all 
processing and interprets the rest of the command line as arguments (not 
options).  If the double '{-}' were used to stop args to options processing 
then something like
{noformat}
--has-multiple-values a,b c -2 -- -2 x
{noformat}
Would be correctly interpreted as 

option --has-multiple-values having values a, b, c, -2 

option -2 having value x

It does break the old interpretation of the above which would have rendered the 
result as:

option --has-multiple-values having values a, b, c, -2 

and there being 2 extra arguments: -2 and x

> cli's with last option as list type values and have argument are not parsed 
> correctly
> -
>
> Key: CLI-221
> URL: https://issues.apache.org/jira/browse/CLI-221
> Project: Commons CLI
>  Issue Type: Bug
>  Components: Parser
>Affects Versions: 1.2
>Reporter: Gagan Jain
>Priority: Major
>
> I have set the value separator for an option to be comma (',').
> Consider the following cli:
> cli definition : cmd1 -o1  a1
> command name: 'cmd1'
> options: 'o1' accpets list of values separated by ','
> arguments: 'a1' single valued argument
> {code}cmd1 -o1 o1v1,o1v2,o1v3 a1v1{code}
> GnuParser parses this the cli with o1 having values {o1v1, o1v2, o1v3, a1v1} 
> instead of {o1v1,o1v2,o1v3}
> Bug seems to be in org.apache.commons.cli.Parser's class processArgs method.
> {code:java}
> public void processArgs(Option opt, ListIterator iter) throws 
> ParseException
> {
> // loop until an option is found
> while (iter.hasNext())
> {
> String str = (String) iter.next();
> // found an Option, not an argument
> if (getOptions().hasOption(str) && str.startsWith("-"))
> {
> iter.previous();
> break;
> }
> // found a value
> try
> {
> 
> opt.addValueForProcessing(Util.stripLeadingAndTrailingQuotes(str));
> }
> catch (RuntimeException exp)
> {
> iter.previous();
> break;
> }
> }
> if (opt.getValues() == null && !opt.hasOptionalArg())
> {
> throw new MissingArgumentException(opt);
> }
> }
> {code}
> In my opinion, if a value separator is defined for option, and is other than 
> space (' '), loop should break immediately after one iteration.
> Correct me, if I am wrong in my understanding.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (CLI-221) cli's with last option as list type values and have argument are not parsed correctly

2024-03-08 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/CLI-221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17824678#comment-17824678
 ] 

Claude Warren commented on CLI-221:
---

We could change the function of the double '{-}'.  Currently it stops all 
processing and interprets the rest of the command line as arguments (not 
options).  If the double '{-}' were used to stop args to options processing 
then something like
{noformat}
--has-multiple-values a,b c -2 -- -2 x
{noformat}
Would be correctly interpreted as 

option --has-multiple-values having values a, b, c, -2 

option -2 having value x

It does break the old interpretation of the above which would have rendered the 
result as:

option --has-multiple-values having values a, b, c, -2 

and there being 2 extra arguments: -2 and x

> cli's with last option as list type values and have argument are not parsed 
> correctly
> -
>
> Key: CLI-221
> URL: https://issues.apache.org/jira/browse/CLI-221
> Project: Commons CLI
>  Issue Type: Bug
>  Components: Parser
>Affects Versions: 1.2
>Reporter: Gagan Jain
>Priority: Major
>
> I have set the value separator for an option to be comma (',').
> Consider the following cli:
> cli definition : cmd1 -o1  a1
> command name: 'cmd1'
> options: 'o1' accpets list of values separated by ','
> arguments: 'a1' single valued argument
> {code}cmd1 -o1 o1v1,o1v2,o1v3 a1v1{code}
> GnuParser parses this the cli with o1 having values {o1v1, o1v2, o1v3, a1v1} 
> instead of {o1v1,o1v2,o1v3}
> Bug seems to be in org.apache.commons.cli.Parser's class processArgs method.
> {code:java}
> public void processArgs(Option opt, ListIterator iter) throws 
> ParseException
> {
> // loop until an option is found
> while (iter.hasNext())
> {
> String str = (String) iter.next();
> // found an Option, not an argument
> if (getOptions().hasOption(str) && str.startsWith("-"))
> {
> iter.previous();
> break;
> }
> // found a value
> try
> {
> 
> opt.addValueForProcessing(Util.stripLeadingAndTrailingQuotes(str));
> }
> catch (RuntimeException exp)
> {
> iter.previous();
> break;
> }
> }
> if (opt.getValues() == null && !opt.hasOptionalArg())
> {
> throw new MissingArgumentException(opt);
> }
> }
> {code}
> In my opinion, if a value separator is defined for option, and is other than 
> space (' '), loop should break immediately after one iteration.
> Correct me, if I am wrong in my understanding.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (CLI-285) Multiple Options in Option Group

2024-03-07 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/CLI-285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17824636#comment-17824636
 ] 

Claude Warren commented on CLI-285:
---

Upon further reflection I think that to complete the set of check of valid 
option conditions, it is necessary to have a "requires" field that will accept 
either an OptionsCollection or an Option.  In this case the option would only 
be valid if the requires were also valid and present.

> Multiple Options in Option Group
> 
>
> Key: CLI-285
> URL: https://issues.apache.org/jira/browse/CLI-285
> Project: Commons CLI
>  Issue Type: Improvement
>  Components: CLI-1.x
>Reporter: Richard Kao
>Priority: Major
>
> Allow the creation of multiple Options with in an OptionGroup so something 
> like the following can be created:
> [ -a ] [ [ -b ] [ -c  ] | [ -d  ] | [ -e  ]]
> So these would be valid:
> -b 
> -c 
> -b  -c 
> -d 
> -e 
> The "-d", "-e", and "-b -c" are mutually exclusive



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (CLI-285) Multiple Options in Option Group

2024-03-07 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/CLI-285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17824298#comment-17824298
 ] 

Claude Warren commented on CLI-285:
---

First, let's introduce the Interface OptionCollection – Simply a collection of 
options with methods to add "Option" and "OptionCollection" object to the 
collection and "boolean isValid()" a method to indicate that some internal 
reasoning about validity of the internal state.

If we think about the "Options" class as an OptionCollection where 
isValid(CommandLine) returns true as long as there are no unpopulated required 
Option or OptionGroups.

We can also think of OptionGroup as an instance of OptionCollection where 
isValid(CommandLine) returns true if only one contained Option or 
OptionCollection  objects is valid.

Then we can create a total of three OptionCollection implementations.

RequireAll: isValid(CommandLine) returns true if all the contained Option or 
OptionCollection objects are valid.

RequireOne: a synonym for the current OptionGroup

RequireNone: isValid(CommandLine) returns true if all the contained Options or 
OptionsCollection objects are not valid.

 

 

The changes to the internal code will be to replace all "OptionGroup" 
parameters with OptionCollection types.

Implement the 3 RequireX instances of OptionCollection

deprecate OptionGroup and reimplement it as subclass of RequireOne.

extend Options to implement OptionCollection.

 

I think this will address the issues with CLI-285 

> Multiple Options in Option Group
> 
>
> Key: CLI-285
> URL: https://issues.apache.org/jira/browse/CLI-285
> Project: Commons CLI
>  Issue Type: Improvement
>  Components: CLI-1.x
>Reporter: Richard Kao
>Priority: Major
>
> Allow the creation of multiple Options with in an OptionGroup so something 
> like the following can be created:
> [ -a ] [ [ -b ] [ -c  ] | [ -d  ] | [ -e  ]]
> So these would be valid:
> -b 
> -c 
> -b  -c 
> -d 
> -e 
> The "-d", "-e", and "-b -c" are mutually exclusive



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (CLI-254) "test" gets parsed as test, quotes die :-(

2024-03-06 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren resolved CLI-254.
---
Resolution: Fixed

The solution was to add a  DefaultParser.Builder with the option 
setStripLeadingAndTrailingQuotes to change the way quotes are handled.

> "test" gets parsed as test, quotes die :-(
> --
>
> Key: CLI-254
> URL: https://issues.apache.org/jira/browse/CLI-254
> Project: Commons CLI
>  Issue Type: Bug
>Affects Versions: 1.3
>Reporter: Alexander Petrossian (PAF)
>Priority: Major
>  Time Spent: 2h 50m
>  Remaining Estimate: 0h
>
> {code}
> def cli = new CliBuilder()
> cli.with {
>   f longOpt:'json-filter','jq expression', args: 1
> }
> def vals = ['test', 't"es"t',
> "'test", "test'", "'test'",
> '"test', 'test"', '"test"']
> vals.each {
>   def opt = cli.parse(['-f', it])
>   assert opt.f == it
> }
> {code}
> It fails on last entry: "test".



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (CLI-254) "test" gets parsed as test, quotes die :-(

2024-03-06 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/CLI-254?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17824283#comment-17824283
 ] 

Claude Warren commented on CLI-254:
---

The solution was to add a  DefaultParser.Builder with the option 
setStripLeadingAndTrailingQuotes to change the way quotes are handled.

> "test" gets parsed as test, quotes die :-(
> --
>
> Key: CLI-254
> URL: https://issues.apache.org/jira/browse/CLI-254
> Project: Commons CLI
>  Issue Type: Bug
>Affects Versions: 1.3
>Reporter: Alexander Petrossian (PAF)
>Priority: Major
>  Time Spent: 2h 50m
>  Remaining Estimate: 0h
>
> {code}
> def cli = new CliBuilder()
> cli.with {
>   f longOpt:'json-filter','jq expression', args: 1
> }
> def vals = ['test', 't"es"t',
> "'test", "test'", "'test'",
> '"test', 'test"', '"test"']
> vals.each {
>   def opt = cli.parse(['-f', it])
>   assert opt.f == it
> }
> {code}
> It fails on last entry: "test".



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] (CLI-254) "test" gets parsed as test, quotes die :-(

2024-03-06 Thread Claude Warren (Jira)


[ https://issues.apache.org/jira/browse/CLI-254 ]


Claude Warren deleted comment on CLI-254:
---

was (Author: claudenw):
The solution was to add a  DefaultParser.Builder with the option 
setStripLeadingAndTrailingQuotes to change the way quotes are handled.

> "test" gets parsed as test, quotes die :-(
> --
>
> Key: CLI-254
> URL: https://issues.apache.org/jira/browse/CLI-254
> Project: Commons CLI
>  Issue Type: Bug
>Affects Versions: 1.3
>Reporter: Alexander Petrossian (PAF)
>Priority: Major
>  Time Spent: 2h 50m
>  Remaining Estimate: 0h
>
> {code}
> def cli = new CliBuilder()
> cli.with {
>   f longOpt:'json-filter','jq expression', args: 1
> }
> def vals = ['test', 't"es"t',
> "'test", "test'", "'test'",
> '"test', 'test"', '"test"']
> vals.each {
>   def opt = cli.parse(['-f', it])
>   assert opt.f == it
> }
> {code}
> It fails on last entry: "test".



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (CLI-221) cli's with last option as list type values and have argument are not parsed correctly

2024-03-06 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/CLI-221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17824006#comment-17824006
 ] 

Claude Warren commented on CLI-221:
---

[~ggregory] The consensus here seems to be that the value separator if provided 
should be required.

Closing this ticket will clear the path for several other issues to be closed.  
I am tempted to declare that the value separator if provided is required.  This 
may be a breaking change for some usage but I think it is proper and clears up 
a confusion.

> cli's with last option as list type values and have argument are not parsed 
> correctly
> -
>
> Key: CLI-221
> URL: https://issues.apache.org/jira/browse/CLI-221
> Project: Commons CLI
>  Issue Type: Bug
>  Components: Parser
>Affects Versions: 1.2
>Reporter: Gagan Jain
>Priority: Major
>
> I have set the value separator for an option to be comma (',').
> Consider the following cli:
> cli definition : cmd1 -o1  a1
> command name: 'cmd1'
> options: 'o1' accpets list of values separated by ','
> arguments: 'a1' single valued argument
> {code}cmd1 -o1 o1v1,o1v2,o1v3 a1v1{code}
> GnuParser parses this the cli with o1 having values {o1v1, o1v2, o1v3, a1v1} 
> instead of {o1v1,o1v2,o1v3}
> Bug seems to be in org.apache.commons.cli.Parser's class processArgs method.
> {code:java}
> public void processArgs(Option opt, ListIterator iter) throws 
> ParseException
> {
> // loop until an option is found
> while (iter.hasNext())
> {
> String str = (String) iter.next();
> // found an Option, not an argument
> if (getOptions().hasOption(str) && str.startsWith("-"))
> {
> iter.previous();
> break;
> }
> // found a value
> try
> {
> 
> opt.addValueForProcessing(Util.stripLeadingAndTrailingQuotes(str));
> }
> catch (RuntimeException exp)
> {
> iter.previous();
> break;
> }
> }
> if (opt.getValues() == null && !opt.hasOptionalArg())
> {
> throw new MissingArgumentException(opt);
> }
> }
> {code}
> In my opinion, if a value separator is defined for option, and is other than 
> space (' '), loop should break immediately after one iteration.
> Correct me, if I am wrong in my understanding.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (CLI-306) Issue parsing numeric options following an option which accepts multiple args in DefaultParser

2024-03-06 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/CLI-306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17824004#comment-17824004
 ] 

Claude Warren commented on CLI-306:
---

The issue arises because:
 * --one allows multiple args/values
 * we support both " --one a,b" and "–one a b" as valid arguments to have both 
"a" and "b" as values for "one"
 * we support negative numbers as proper values.  So "–one -2" would be give 
"one" the value of "-2".
 * We don't have any way to signal the end of the option.  We do have an option 
"–" that turns off all argument processing after it.

I can see 3 solutions to this particular issue:
 # create a '.enforceValueSeparator(',') that will require all arguments to 
have the ','.  This way the "-2" in the example will be seen as an option and 
not a value.
 # create an "end of values" token.  Perhaps "-" by itself.  So that the valid 
input would then be "–one a,b - -2 c" this would force the parsing to stop 
after "a,b".

 # disallow all numeric options.,  Thus "-2" would be invalid, as would "-45", 
and "-2.1".  But options like "-3bf" would still be valid.

[~ggregory] I think #3 is the correct approach.  Do you have an opinion.

> Issue parsing numeric options following an option which accepts multiple args 
> in DefaultParser
> --
>
> Key: CLI-306
> URL: https://issues.apache.org/jira/browse/CLI-306
> Project: Commons CLI
>  Issue Type: Bug
>  Components: CLI-1.x
>Affects Versions: 1.4
>Reporter: Todd Ye
>Priority: Major
>
> commons-cli seems to be unable to detect numeric options in their short "opt" 
> form following an option which takes multiple arguments. 
> Will consistently throw:
> {code:java}
> Exception in thread "main" org.apache.commons.cli.MissingOptionException: 
> Missing required option: 2
> {code}
> How to reproduce:
> {code:java}
> Option multipleOptional = Option.builder("1")
> .longOpt("one")
> .argName("value1,value2,...,valueN")
> .hasArgs()
> .valueSeparator(',')
> .build();
> Option singleMandatory = Option.builder("2")
> .argName("value")
> .longOpt("two")
> .hasArg()
> .required()
> .build();
> Options options = new Options();
> options.addOption(singleMandatory);
> options.addOption(multipleOptional);
> CommandLineParser parser = new DefaultParser();
> CommandLine line = parser.parse(options, args);
> for (Option o : line.getOptions()) {
>   System.out.println(o.getOpt() + '\t'
>   + Arrays.toString(o.getValues()));
> }
> {code}
> now pass in:
> {code:java}
> --one argNumOne,argNumTwo -2 argNumThree 
> {code}
> Note that an error will not occur if "opt" is set to a char like "a/b/c" or 
> if the previous option is set with hasArg() instead of hasArgs()
> Also error will not occur if the longOpt is used such as:
> {code:java}
> --one argNumOne,argNumTwo --two argNumThree 
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (CLI-327) Date processing tests fail on some systems

2024-03-06 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-327?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren resolved CLI-327.
---
Resolution: Fixed

Closed with pull request #244

> Date processing tests fail on some systems
> --
>
> Key: CLI-327
> URL: https://issues.apache.org/jira/browse/CLI-327
> Project: Commons CLI
>  Issue Type: Bug
>  Components: CLI-1.x
>Affects Versions: 1.7.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Critical
>
> On one of my systems the date conversions do not work as expected.  I suspect 
> this is some sort of entanglement between time zones and environment settings.
> I was able to fix the problem by creating the expected values from known 
> values rather than hardcoding the expected date time strings.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (CLI-326) Make options.getKey() public

2024-03-06 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-326?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren resolved CLI-326.
---
Resolution: Fixed

Resolved with pull #239

> Make options.getKey() public
> 
>
> Key: CLI-326
> URL: https://issues.apache.org/jira/browse/CLI-326
> Project: Commons CLI
>  Issue Type: Bug
>  Components: Options definition
>Affects Versions: 1.7.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>
> the Option method getKey() is package private.  I believe that this is an 
> oversight and should have been public.  
> The method is useful when describing options that have command line issues 
> when the application is holding option references and not the option keys.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (CLI-328) CommandLine does not have a getParsedOptionValues option

2024-03-06 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-328?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated CLI-328:
--
Assignee: Claude Warren

> CommandLine does not have a getParsedOptionValues option
> 
>
> Key: CLI-328
> URL: https://issues.apache.org/jira/browse/CLI-328
> Project: Commons CLI
>  Issue Type: Improvement
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Major
>
> The CommandLine has a getParsedOptionValue() method and a getOptionValues() 
> method.  The first returns an object based on the Option type or a Converter 
> provided on the method call.  The second returns an array of String for 
> options that accept multiple values.
>  
> getParseOptionValues() is to be a method that merges these two 
> functionalities and allows the retrieval of multiple parsed values for 
> options that accept multiple values.  It will have the method parameters that 
> match the pattern found in getParsedOptionValue().



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (CLI-328) CommandLine does not have a getParsedOptionValues option

2024-03-06 Thread Claude Warren (Jira)
Claude Warren created CLI-328:
-

 Summary: CommandLine does not have a getParsedOptionValues option
 Key: CLI-328
 URL: https://issues.apache.org/jira/browse/CLI-328
 Project: Commons CLI
  Issue Type: Improvement
Reporter: Claude Warren


The CommandLine has a getParsedOptionValue() method and a getOptionValues() 
method.  The first returns an object based on the Option type or a Converter 
provided on the method call.  The second returns an array of String for options 
that accept multiple values.

 

getParseOptionValues() is to be a method that merges these two functionalities 
and allows the retrieval of multiple parsed values for options that accept 
multiple values.  It will have the method parameters that match the pattern 
found in getParsedOptionValue().



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (CLI-327) Date processing tests fail on some systems

2024-03-02 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/CLI-327?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17822854#comment-17822854
 ] 

Claude Warren commented on CLI-327:
---

Errors include

 

{{[ERROR] Tests run: 55, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 
0.069 s <<< FAILURE! -- in org.apache.commons.cli.TypeHandlerTest}}
{{[ERROR] org.apache.commons.cli.TypeHandlerTest.createValueTests(String, 
Class, Object)[4] -- Time elapsed: 0.002 s <<< FAILURE!}}
{{org.opentest4j.AssertionFailedError: expected:  but was: }}
{{    at 
org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)}}
{{    at 
org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)}}
{{    at 
org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)}}
{{    at 
org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182)}}
{{    at 
org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177)}}
{{    at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1145)}}
{{    at 
org.apache.commons.cli.TypeHandlerTest.createValueTests(TypeHandlerTest.java:160)}}

 

{{and }}

 

[ERROR] Tests run: 14, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.297 
s <<< FAILURE! -- in org.apache.commons.cli.ConverterTests
[ERROR] org.apache.commons.cli.ConverterTests.dateTests -- Time elapsed: 0.166 
s <<< FAILURE!
org.opentest4j.AssertionFailedError: expected:  
but was: 
    at 
org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
    at 
org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
    at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)
    at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182)
    at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177)
    at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1145)
    at org.apache.commons.cli.ConverterTests.dateTests(ConverterTests.java:79)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

 

 

> Date processing tests fail on some systems
> --
>
> Key: CLI-327
> URL: https://issues.apache.org/jira/browse/CLI-327
> Project: Commons CLI
>  Issue Type: Bug
>  Components: CLI-1.x
>Affects Versions: 1.7.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Critical
>
> On one of my systems the date conversions do not work as expected.  I suspect 
> this is some sort of entanglement between time zones and environment settings.
> I was able to fix the problem by creating the expected values from known 
> values rather than hardcoding the expected date time strings.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (CLI-327) Date processing tests fail on some systems

2024-03-02 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-327?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated CLI-327:
--
Assignee: Claude Warren

> Date processing tests fail on some systems
> --
>
> Key: CLI-327
> URL: https://issues.apache.org/jira/browse/CLI-327
> Project: Commons CLI
>  Issue Type: Bug
>  Components: CLI-1.x
>Affects Versions: 1.7.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Critical
>
> On one of my systems the date conversions do not work as expected.  I suspect 
> this is some sort of entanglement between time zones and environment settings.
> I was able to fix the problem by creating the expected values from known 
> values rather than hardcoding the expected date time strings.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (CLI-327) Date processing tests fail on some systems

2024-03-02 Thread Claude Warren (Jira)
Claude Warren created CLI-327:
-

 Summary: Date processing tests fail on some systems
 Key: CLI-327
 URL: https://issues.apache.org/jira/browse/CLI-327
 Project: Commons CLI
  Issue Type: Bug
  Components: CLI-1.x
Affects Versions: 1.7.0
Reporter: Claude Warren


On one of my systems the date conversions do not work as expected.  I suspect 
this is some sort of entanglement between time zones and environment settings.

I was able to fix the problem by creating the expected values from known values 
rather than hardcoding the expected date time strings.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (CLI-326) Make options.getKey() public

2024-02-26 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-326?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated CLI-326:
--
Assignee: Claude Warren

> Make options.getKey() public
> 
>
> Key: CLI-326
> URL: https://issues.apache.org/jira/browse/CLI-326
> Project: Commons CLI
>  Issue Type: Bug
>  Components: Options definition
>Affects Versions: 1.7.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>
> the Option method getKey() is package private.  I believe that this is an 
> oversight and should have been public.  
> The method is useful when describing options that have command line issues 
> when the application is holding option references and not the option keys.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (CLI-326) Make options.getKey() public

2024-02-26 Thread Claude Warren (Jira)
Claude Warren created CLI-326:
-

 Summary: Make options.getKey() public
 Key: CLI-326
 URL: https://issues.apache.org/jira/browse/CLI-326
 Project: Commons CLI
  Issue Type: Bug
  Components: Options definition
Affects Versions: 1.7.0
Reporter: Claude Warren


the Option method getKey() is package private.  I believe that this is an 
oversight and should have been public.  

The method is useful when describing options that have command line issues when 
the application is holding option references and not the option keys.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (CLI-325) When properties are retrieve for an Option that has both multiple arguments and a value separator only the first is retrieved.

2024-02-26 Thread Claude Warren (Jira)
Claude Warren created CLI-325:
-

 Summary: When properties are retrieve for an Option that has both 
multiple arguments and a value separator only the first is retrieved.
 Key: CLI-325
 URL: https://issues.apache.org/jira/browse/CLI-325
 Project: Commons CLI
  Issue Type: Bug
  Components: Parser
Affects Versions: 1.6.0
Reporter: Claude Warren
Assignee: Claude Warren
 Fix For: 1.7.0


When the following is executed it fails on the check for 2 values.

 
{color:#00} {color}{color:#7f0055}final{color}{color:#00} Option 
{color}{color:#6a3e3e}option{color}{color:#00} = 
Option.{color}{color:#00}builder{color}{color:#00}({color}{color:#2a00ff}"x"{color}{color:#00}){color}

{color:#00} .hasArgs(){color}

{color:#00} .valueSeparator(){color}

{color:#00} .desc({color}{color:#2a00ff}"Multiple arg option with value 
separator."{color}{color:#00}){color}

{color:#00} .build();{color}

{color:#00} {color}

{color:#00} String[] {color}{color:#6a3e3e}args{color}{color:#00} = 
{{color}{color:#2a00ff}"-x"{color}{color:#00}, 
{color}{color:#2a00ff}"A=a"{color}{color:#00}, 
{color}{color:#2a00ff}"B=b"{color}{color:#00}};{color}

{color:#00} CommandLine {color}{color:#6a3e3e}cmdLine{color}{color:#00} 
= 
DefaultParser.{color}{color:#00}builder{color}{color:#00}().build().parse({color}{color:#7f0055}new{color}{color:#00}
 Options().addOption({color}{color:#6a3e3e}option{color}{color:#00}), 
{color}{color:#6a3e3e}args{color}{color:#00});{color}

{color:#00} Properties {color}{color:#6a3e3e}props{color}{color:#00} = 
{color}{color:#6a3e3e}cmdLine{color}{color:#00}.getOptionProperties({color}{color:#6a3e3e}option{color}{color:#00});{color}

{color:#00} {color}{color:#00}assertEquals{color}{color:#00}(2, 
{color}{color:#6a3e3e}props{color}{color:#00}.size());{color}

{color:#00} {color}{color:#00}assertEquals{color}{color:#00}( 
{color}{color:#2a00ff}"a"{color}{color:#00}, 
{color}{color:#6a3e3e}props{color}{color:#00}.get({color}{color:#2a00ff}"A"{color}{color:#00}));{color}

{color:#00} {color}{color:#00}assertEquals{color}{color:#00}( 
{color}{color:#2a00ff}"b"{color}{color:#00}, 
{color}{color:#6a3e3e}props{color}{color:#00}.get({color}{color:#2a00ff}"B"{color}{color:#00}));{color}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (CLI-324) Make adding OptionGroups and Options to existing Options easier

2024-02-08 Thread Claude Warren (Jira)
Claude Warren created CLI-324:
-

 Summary: Make adding OptionGroups and Options to existing Options 
easier
 Key: CLI-324
 URL: https://issues.apache.org/jira/browse/CLI-324
 Project: Commons CLI
  Issue Type: Improvement
  Components: CLI-1.x
Affects Versions: 1.6.0
Reporter: Claude Warren
 Fix For: 1.7.0


Currently it is not possible to add one Options to another Options nor is is 
possible to retrieve the collection of OptionGroups from the Options.  This 
change fixes both of those issues.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (CLI-323) Add methods to accept Supplier for getParsedOptionValue

2024-02-08 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-323?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated CLI-323:
--
Description: 
Currently a Supplier is accepted as the default for getOptionValue() 
calls but a Supplier is not accepted as the default for getDefaultOptionValue

This change is to add the Supplier to those methods.

  was:
Currently a Supplier is accepted as the default for getParsedOption() calls 
but a Supplier is not accepted as the default for getOptionValue

This change is to add the Supplier to those methods.


> Add methods to accept Supplier for getParsedOptionValue
> --
>
> Key: CLI-323
> URL: https://issues.apache.org/jira/browse/CLI-323
> Project: Commons CLI
>  Issue Type: Improvement
>  Components: CLI-1.x
>Affects Versions: 1.6.0
>Reporter: Claude Warren
>Priority: Minor
> Fix For: 1.7.0
>
>
> Currently a Supplier is accepted as the default for getOptionValue() 
> calls but a Supplier is not accepted as the default for 
> getDefaultOptionValue
> This change is to add the Supplier to those methods.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (CLI-323) Add methods to accept Supplier for getParsedOptionValue

2024-02-08 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-323?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated CLI-323:
--
Summary: Add methods to accept Supplier for getParsedOptionValue  (was: 
Add methods to accept Supplier for getOptionValue)

> Add methods to accept Supplier for getParsedOptionValue
> --
>
> Key: CLI-323
> URL: https://issues.apache.org/jira/browse/CLI-323
> Project: Commons CLI
>  Issue Type: Improvement
>  Components: CLI-1.x
>Affects Versions: 1.6.0
>Reporter: Claude Warren
>Priority: Minor
> Fix For: 1.7.0
>
>
> Currently a Supplier is accepted as the default for getParsedOption() 
> calls but a Supplier is not accepted as the default for getOptionValue
> This change is to add the Supplier to those methods.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (CLI-323) Add methods to accept Supplier for getOptionValue

2024-02-08 Thread Claude Warren (Jira)
Claude Warren created CLI-323:
-

 Summary: Add methods to accept Supplier for getOptionValue
 Key: CLI-323
 URL: https://issues.apache.org/jira/browse/CLI-323
 Project: Commons CLI
  Issue Type: Improvement
  Components: CLI-1.x
Affects Versions: 1.6.0
Reporter: Claude Warren
 Fix For: 1.7.0


Currently a Supplier is accepted as the default for getParsedOption() calls 
but a Supplier is not accepted as the default for getOptionValue

This change is to add the Supplier to those methods.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (CLI-321) Complete the implementation of TypeHandler

2024-01-22 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-321?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated CLI-321:
--
Assignee: Claude Warren

> Complete the implementation of TypeHandler
> --
>
> Key: CLI-321
> URL: https://issues.apache.org/jira/browse/CLI-321
> Project: Commons CLI
>  Issue Type: Improvement
>  Components: Parser
>Affects Versions: 1.6.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
> Fix For: 1.7.0
>
>
> The current TypeHandler implementation notes indicate that the 
> BeanUtils.Converters should be used to create instances of the various types. 
>  This issue is to complete the implementation of TypeHandler so that it uses 
> the BeanUtils.Converters.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (CLI-322) Allow kabab-case options

2024-01-08 Thread Claude Warren (Jira)
Claude Warren created CLI-322:
-

 Summary: Allow kabab-case options
 Key: CLI-322
 URL: https://issues.apache.org/jira/browse/CLI-322
 Project: Commons CLI
  Issue Type: New Feature
  Components: Parser
Affects Versions: 1.6.0
Reporter: Claude Warren
 Fix For: 1.7.0


Currently the '-' is not allowed in the option name.  This change is to allow 
'-' as an option name.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (CLI-322) Allow kabab-case options

2024-01-08 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/CLI-322?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated CLI-322:
--
Assignee: Claude Warren

> Allow kabab-case options
> 
>
> Key: CLI-322
> URL: https://issues.apache.org/jira/browse/CLI-322
> Project: Commons CLI
>  Issue Type: New Feature
>  Components: Parser
>Affects Versions: 1.6.0
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
> Fix For: 1.7.0
>
>
> Currently the '-' is not allowed in the option name.  This change is to allow 
> '-' as an option name.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (CLI-321) Complete the implementation of TypeHandler

2024-01-03 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/CLI-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17802116#comment-17802116
 ] 

Claude Warren commented on CLI-321:
---

I Pull request 216 implements the TypeHandler without the use of BeanUtils and 
provides extensions points for other uses where custom conversions and 
validations are desired.  I think it is the better solution.

> Complete the implementation of TypeHandler
> --
>
> Key: CLI-321
> URL: https://issues.apache.org/jira/browse/CLI-321
> Project: Commons CLI
>  Issue Type: Improvement
>  Components: Parser
>Affects Versions: 1.6.0
>Reporter: Claude Warren
>Priority: Minor
> Fix For: 1.7.0
>
>
> The current TypeHandler implementation notes indicate that the 
> BeanUtils.Converters should be used to create instances of the various types. 
>  This issue is to complete the implementation of TypeHandler so that it uses 
> the BeanUtils.Converters.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (CLI-321) Complete the implementation of TypeHandler

2023-12-29 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/CLI-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17801199#comment-17801199
 ] 

Claude Warren commented on CLI-321:
---

I think that we also need to add  getParsedOptionValue(Option option, Object 
defaultValue) to define a default return value if the option is empty.

> Complete the implementation of TypeHandler
> --
>
> Key: CLI-321
> URL: https://issues.apache.org/jira/browse/CLI-321
> Project: Commons CLI
>  Issue Type: Improvement
>  Components: Parser
>Affects Versions: 1.6.0
>Reporter: Claude Warren
>Priority: Minor
> Fix For: 1.7.0
>
>
> The current TypeHandler implementation notes indicate that the 
> BeanUtils.Converters should be used to create instances of the various types. 
>  This issue is to complete the implementation of TypeHandler so that it uses 
> the BeanUtils.Converters.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (CLI-321) Complete the implementation of TypeHandler

2023-12-29 Thread Claude Warren (Jira)
Claude Warren created CLI-321:
-

 Summary: Complete the implementation of TypeHandler
 Key: CLI-321
 URL: https://issues.apache.org/jira/browse/CLI-321
 Project: Commons CLI
  Issue Type: Improvement
  Components: Parser
Affects Versions: 1.6.0
Reporter: Claude Warren
 Fix For: 1.7.0


The current TypeHandler implementation notes indicate that the 
BeanUtils.Converters should be used to create instances of the various types.  
This issue is to complete the implementation of TypeHandler so that it uses the 
BeanUtils.Converters.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (COLLECTIONS-844) Counting Bloom filter expects counts (cells) to be ints

2023-07-16 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-844?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated COLLECTIONS-844:
--
Summary: Counting Bloom filter expects counts (cells) to be ints  (was: 
Counting Bloomfilter tests expect counts to be ints)

> Counting Bloom filter expects counts (cells) to be ints
> ---
>
> Key: COLLECTIONS-844
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-844
> Project: Commons Collections
>  Issue Type: Improvement
>Affects Versions: 4.5
>Reporter: Claude Warren
>Priority: Minor
>
> The AbstractCountingBloomFilterTest assumes that the Bloom filter is using an 
> int to track the counts.  Any implementation using a smaller storage size 
> will not be able to pass the test.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (COLLECTIONS-844) Counting Bloomfilter tests expect counts to be ints

2023-07-16 Thread Claude Warren (Jira)
Claude Warren created COLLECTIONS-844:
-

 Summary: Counting Bloomfilter tests expect counts to be ints
 Key: COLLECTIONS-844
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-844
 Project: Commons Collections
  Issue Type: Improvement
Affects Versions: 4.5
Reporter: Claude Warren


The AbstractCountingBloomFilterTest assumes that the Bloom filter is using an 
int to track the counts.  Any implementation using a smaller storage size will 
not be able to pass the test.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (COLLECTIONS-843) Add LayeredBloomFilter

2023-07-04 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-843?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated COLLECTIONS-843:
--
Description: 
Add a Layered Bloom filter implementation along the lines described in 
{color:#3f5fbf}Zhiwang{color}{color:#3f5fbf}, 
{color}{color:#3f5fbf}Cen{color}{color:#3f5fbf}; 
{color}{color:#3f5fbf}Jungang{color}{color:#3f5fbf}, 
{color}{color:#3f5fbf}Xu{color}{color:#3f5fbf}; 
{color}{color:#3f5fbf}Jian{color}{color:#3f5fbf}, Sun{color}

{color:#3f5fbf}(2010), "A 
{color}{color:#3f5fbf}multi{color}{color:#7f7f9f}-{color}{color:#3f5fbf}layer 
Bloom filter for duplicated URL detection", 
{color}{color:#3f5fbf}Proc{color}{color:#3f5fbf}. 3rd{color}

{color:#3f5fbf}International Conference on Advanced Computer Theory and 
Engineering (ICACTE{color}

{color:#3f5fbf}2010), {color}{color:#3f5fbf}vol{color}{color:#3f5fbf}. 1, 
{color}{color:#3f5fbf}pp{color}{color:#3f5fbf}. V1–586–V1–591, 
{color}{color:#3f5fbf}doi{color}{color:#3f5fbf}:10.1109/ICACTE.2010.5578947, 
ISBN{color}

{color:#3f5fbf}978{color}{color:#7f7f9f}-{color}{color:#3f5fbf}1{color}{color:#7f7f9f}-{color}{color:#3f5fbf}4244{color}{color:#7f7f9f}-{color}{color:#3f5fbf}6539{color}{color:#7f7f9f}-{color}{color:#3f5fbf}2,
 S2CID 3108985{color}

 

{color:#3f5fbf}in support of Kafka KIP-936. 
[https://cwiki.apache.org/confluence/display/KAFKA/KIP-936%3A+Throttle+number+of+active+PIDs]{color}

 

Pull request: https://github.com/apache/commons-collections/pull/402

  was:
Add a Layered Bloom filter implementation along the lines described in 
{color:#3f5fbf}Zhiwang{color}{color:#3f5fbf}, 
{color}{color:#3f5fbf}Cen{color}{color:#3f5fbf}; 
{color}{color:#3f5fbf}Jungang{color}{color:#3f5fbf}, 
{color}{color:#3f5fbf}Xu{color}{color:#3f5fbf}; 
{color}{color:#3f5fbf}Jian{color}{color:#3f5fbf}, Sun{color}

{color:#3f5fbf}(2010), "A 
{color}{color:#3f5fbf}multi{color}{color:#7f7f9f}-{color}{color:#3f5fbf}layer 
Bloom filter for duplicated URL detection", 
{color}{color:#3f5fbf}Proc{color}{color:#3f5fbf}. 3rd{color}

{color:#3f5fbf}International Conference on Advanced Computer Theory and 
Engineering (ICACTE{color}

{color:#3f5fbf}2010), {color}{color:#3f5fbf}vol{color}{color:#3f5fbf}. 1, 
{color}{color:#3f5fbf}pp{color}{color:#3f5fbf}. V1–586–V1–591, 
{color}{color:#3f5fbf}doi{color}{color:#3f5fbf}:10.1109/ICACTE.2010.5578947, 
ISBN{color}

{color:#3f5fbf}978{color}{color:#7f7f9f}-{color}{color:#3f5fbf}1{color}{color:#7f7f9f}-{color}{color:#3f5fbf}4244{color}{color:#7f7f9f}-{color}{color:#3f5fbf}6539{color}{color:#7f7f9f}-{color}{color:#3f5fbf}2,
 S2CID 3108985{color}

 

{color:#3f5fbf}in support of Kafka KIP-936. 
https://cwiki.apache.org/confluence/display/KAFKA/KIP-936%3A+Throttle+number+of+active+PIDs{color}

 

 


> Add LayeredBloomFilter
> --
>
> Key: COLLECTIONS-843
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-843
> Project: Commons Collections
>  Issue Type: Improvement
>  Components: Collection
>Affects Versions: 4.5
>Reporter: Claude Warren
>Priority: Major
>
> Add a Layered Bloom filter implementation along the lines described in 
> {color:#3f5fbf}Zhiwang{color}{color:#3f5fbf}, 
> {color}{color:#3f5fbf}Cen{color}{color:#3f5fbf}; 
> {color}{color:#3f5fbf}Jungang{color}{color:#3f5fbf}, 
> {color}{color:#3f5fbf}Xu{color}{color:#3f5fbf}; 
> {color}{color:#3f5fbf}Jian{color}{color:#3f5fbf}, Sun{color}
> {color:#3f5fbf}(2010), "A 
> {color}{color:#3f5fbf}multi{color}{color:#7f7f9f}-{color}{color:#3f5fbf}layer 
> Bloom filter for duplicated URL detection", 
> {color}{color:#3f5fbf}Proc{color}{color:#3f5fbf}. 3rd{color}
> {color:#3f5fbf}International Conference on Advanced Computer Theory and 
> Engineering (ICACTE{color}
> {color:#3f5fbf}2010), {color}{color:#3f5fbf}vol{color}{color:#3f5fbf}. 1, 
> {color}{color:#3f5fbf}pp{color}{color:#3f5fbf}. V1–586–V1–591, 
> {color}{color:#3f5fbf}doi{color}{color:#3f5fbf}:10.1109/ICACTE.2010.5578947, 
> ISBN{color}
> {color:#3f5fbf}978{color}{color:#7f7f9f}-{color}{color:#3f5fbf}1{color}{color:#7f7f9f}-{color}{color:#3f5fbf}4244{color}{color:#7f7f9f}-{color}{color:#3f5fbf}6539{color}{color:#7f7f9f}-{color}{color:#3f5fbf}2,
>  S2CID 3108985{color}
>  
> {color:#3f5fbf}in support of Kafka KIP-936. 
> [https://cwiki.apache.org/confluence/display/KAFKA/KIP-936%3A+Throttle+number+of+active+PIDs]{color}
>  
> Pull request: https://github.com/apache/commons-collections/pull/402



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (COLLECTIONS-843) Add LayeredBloomFilter

2023-06-29 Thread Claude Warren (Jira)
Claude Warren created COLLECTIONS-843:
-

 Summary: Add LayeredBloomFilter
 Key: COLLECTIONS-843
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-843
 Project: Commons Collections
  Issue Type: Improvement
  Components: Collection
Affects Versions: 4.5
Reporter: Claude Warren


Add a Layered Bloom filter implementation along the lines described in 
{color:#3f5fbf}Zhiwang{color}{color:#3f5fbf}, 
{color}{color:#3f5fbf}Cen{color}{color:#3f5fbf}; 
{color}{color:#3f5fbf}Jungang{color}{color:#3f5fbf}, 
{color}{color:#3f5fbf}Xu{color}{color:#3f5fbf}; 
{color}{color:#3f5fbf}Jian{color}{color:#3f5fbf}, Sun{color}

{color:#3f5fbf}(2010), "A 
{color}{color:#3f5fbf}multi{color}{color:#7f7f9f}-{color}{color:#3f5fbf}layer 
Bloom filter for duplicated URL detection", 
{color}{color:#3f5fbf}Proc{color}{color:#3f5fbf}. 3rd{color}

{color:#3f5fbf}International Conference on Advanced Computer Theory and 
Engineering (ICACTE{color}

{color:#3f5fbf}2010), {color}{color:#3f5fbf}vol{color}{color:#3f5fbf}. 1, 
{color}{color:#3f5fbf}pp{color}{color:#3f5fbf}. V1–586–V1–591, 
{color}{color:#3f5fbf}doi{color}{color:#3f5fbf}:10.1109/ICACTE.2010.5578947, 
ISBN{color}

{color:#3f5fbf}978{color}{color:#7f7f9f}-{color}{color:#3f5fbf}1{color}{color:#7f7f9f}-{color}{color:#3f5fbf}4244{color}{color:#7f7f9f}-{color}{color:#3f5fbf}6539{color}{color:#7f7f9f}-{color}{color:#3f5fbf}2,
 S2CID 3108985{color}

 

{color:#3f5fbf}in support of Kafka KIP-936. 
https://cwiki.apache.org/confluence/display/KAFKA/KIP-936%3A+Throttle+number+of+active+PIDs{color}

 

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (COLLECTIONS-841) Open up Bloom filter testing code

2023-06-12 Thread Claude Warren (Jira)
Claude Warren created COLLECTIONS-841:
-

 Summary: Open up Bloom filter testing code
 Key: COLLECTIONS-841
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-841
 Project: Commons Collections
  Issue Type: Improvement
  Components: Collection
Affects Versions: 4.5
Reporter: Claude Warren


Currently the Bloom filter test code has a number of methods that are final.  
Some new implementations of Bloom filter (e.g. stable Bloom filter) need to 
override some of the methods as the stable Bloom filter has different 
characteristics.

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (COLLECTIONS-840) Make EnhancedDoubleHasher.mod() public

2023-06-10 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/COLLECTIONS-840?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17731229#comment-17731229
 ] 

Claude Warren commented on COLLECTIONS-840:
---

Pull request to implement change

> Make EnhancedDoubleHasher.mod() public
> --
>
> Key: COLLECTIONS-840
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-840
> Project: Commons Collections
>  Issue Type: Improvement
>  Components: Collection
>Reporter: Claude Warren
>Priority: Minor
>
> The integer modulus calculation is currently package private but is very 
> useful outside of the package for further Bloom filter development.  This 
> change is to make the static EnhancedDoubleHasher.mod() method public



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (COLLECTIONS-840) Make EnhancedDoubleHasher.mod() public

2023-06-10 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/COLLECTIONS-840?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17731202#comment-17731202
 ] 

Claude Warren commented on COLLECTIONS-840:
---

Actually, I did not think it was a great place either.  I figured submitting 
the change would get a discussion started.

BitMap was the only other utility class that came to mind.  

We could add it as a static method on the Hasher interface but that seems a bit 
out of character.

> Make EnhancedDoubleHasher.mod() public
> --
>
> Key: COLLECTIONS-840
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-840
> Project: Commons Collections
>  Issue Type: Improvement
>  Components: Collection
>Affects Versions: 4.5
>Reporter: Claude Warren
>Priority: Minor
>
> The integer modulus calculation is currently package private but is very 
> useful outside of the package for further Bloom filter development.  This 
> change is to make the static EnhancedDoubleHasher.mod() method public



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (COLLECTIONS-840) Make EnhancedDoubleHasher.mod() public

2023-06-10 Thread Claude Warren (Jira)
Claude Warren created COLLECTIONS-840:
-

 Summary: Make EnhancedDoubleHasher.mod() public
 Key: COLLECTIONS-840
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-840
 Project: Commons Collections
  Issue Type: Improvement
  Components: Collection
Affects Versions: 4.5
Reporter: Claude Warren


The integer modulus calculation is currently package private but is very useful 
outside of the package for further Bloom filter development.  This change is to 
make the static EnhancedDoubleHasher.mod() method public



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (LOGGING-184) Logging DOAP file has an error

2023-04-20 Thread Claude Warren (Jira)
Claude Warren created LOGGING-184:
-

 Summary: Logging DOAP file has an error
 Key: LOGGING-184
 URL: https://issues.apache.org/jira/browse/LOGGING-184
 Project: Commons Logging
  Issue Type: Bug
Affects Versions: 1.2
Reporter: Claude Warren


The DOAP file [1] as listed in [2] has the error:

[line: 26, col: 4 ] \{E201} The attributes on this property element, are not 
permitted with any content; expecting end element tag.

[1] 
https://gitbox.apache.org/repos/asf?p=logging-log4cxx.git;a=blob_plain;f=doap_log4cxx.rdf;hb=HEAD
[2] 
https://svn.apache.org/repos/asf/comdev/projects.apache.org/trunk/data/projects.xml



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Closed] (COLLECTIONS-816) SimpleBloomFilter: There is no coverage of this branch. It is not possible.

2023-04-11 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-816?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren closed COLLECTIONS-816.
-
Fix Version/s: 4.5
   Resolution: Fixed

Fixed in earlier change to merge

> SimpleBloomFilter: There is no coverage of this branch. It is not possible. 
> 
>
> Key: COLLECTIONS-816
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-816
> Project: Commons Collections
>  Issue Type: Improvement
>  Components: Collection
>Affects Versions: 4.5
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>  Labels: bloom-filter
> Fix For: 4.5
>
>
> Copied from Simplify Bloom Filters pull request.
> [https://github.com/apache/commons-collections/pull/258#discussion_r815505285]
>  
> [https://github.com/Claudenw/commons-collections/blob/9f2945cc98747893456b73f42ab53f46a866ac37/src/main/java/org/apache/commons/collections4/bloomfilter/SimpleBloomFilter.java#L165-L168]
>  
>  
> Member
> h3. 
> !https://avatars.githubusercontent.com/u/886334?s=48=4|width=24,height=24! 
> *[aherbert|https://github.com/aherbert]* [on 27 
> Feb|https://github.com/apache/commons-collections/pull/258#discussion_r815505285]
> There is no coverage of this branch. It is not possible. If this were true 
> the bitMap[idx[0]] in the main forEach loop would have thrown an array index 
> out of bound exception. I think this can be removed. The final check to 
> determine if the final upper bitmap does not set incorrect bits is valid.
> Note: Even though the check is made that the upper bits have been set 
> correctly, if they have not the exception is raised and the filter now has 
> incorrect bits for the rest of its lifetime, i.e. no recovery is made and no 
> flag is present in the filter to indicate the bits are bad. So you could then 
> merge this into another filter and get the same exception, or record the bits 
> to file and have bad bits in the recording, etc.
> The same 'bug' is present in the SparseBloomFilter. It will raise an 
> exception after merge if the TreeSet first or last position are outside the 
> shape but not correct it.
> I think these filters should attempt to clear any invalid bits before 
> throwing exceptions. This makes them act as if they are a plain {{int[]}} of 
> size {{nbits}} containing 0 or 1s. It should not be possible to put an index 
> outside the range of the shape in the filter.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (COLLECTIONS-768) Flat3MapTest.tesetEntrySet() is flaky

2023-04-04 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-768?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren resolved COLLECTIONS-768.
---
Fix Version/s: 4.5
   Resolution: Resolved

Issue was fixed as per comments in the pull request.

> Flat3MapTest.tesetEntrySet() is flaky
> -
>
> Key: COLLECTIONS-768
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-768
> Project: Commons Collections
>  Issue Type: Bug
>  Components: Map
>Affects Versions: 4.4
>Reporter: XinT
>Priority: Minor
>  Labels: easyfix, pull-request-available
> Fix For: 4.5
>
>  Time Spent: 2h 20m
>  Remaining Estimate: 0h
>
> The testEntrySet() function 
> (org.apache.commons.collections4.map.Flat3MapTest#testEntrySet) is flaky 
> because it uses a flaky helper function putAndRemove(). The helper function 
> wrongly assumes that map iterators execute in insertion order, while in fact 
> it can be any order. 
> The current test asserts the last element iterated (and subsequently removed) 
> is the last element inserted. Therefore, the test passes when it so happens 
> that the last iterated element is the last inserted element, but fails 
> otherwise. 
>  
> The proposed fix is: https://github.com/apache/commons-collections/pull/189
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (COLLECTIONS-837) Remove HasherCollection from bloomfilter code base

2022-11-11 Thread Claude Warren (Jira)
Claude Warren created COLLECTIONS-837:
-

 Summary: Remove HasherCollection from bloomfilter code base
 Key: COLLECTIONS-837
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-837
 Project: Commons Collections
  Issue Type: Bug
Affects Versions: 4.5
Reporter: Claude Warren


HasherCollection does not match the Hasher interface.  It  and all associated 
tests are to be removed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (COLLECTIONS-837) Remove HasherCollection from bloomfilter code base

2022-11-11 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-837?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated COLLECTIONS-837:
--
Assignee: Claude Warren

> Remove HasherCollection from bloomfilter code base
> --
>
> Key: COLLECTIONS-837
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-837
> Project: Commons Collections
>  Issue Type: Bug
>Affects Versions: 4.5
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Major
>
> HasherCollection does not match the Hasher interface.  It  and all associated 
> tests are to be removed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (COLLECTIONS-830) Add isEmpty() method to Hasher

2022-11-11 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-830?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren resolved COLLECTIONS-830.
---
Resolution: Won't Fix

HasherCollection to be removed from code base.

> Add isEmpty() method to Hasher
> --
>
> Key: COLLECTIONS-830
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-830
> Project: Commons Collections
>  Issue Type: Improvement
>  Components: Collection
>Affects Versions: 4.5
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>  Labels: bloom-filter
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> The Hasher interface in the {{bloomfilter}} package does not have a way to 
> determine if the hasher is empty.  For the {{SimpleHasher}} implementation 
> that is not an issue, however, the {{HasherCollection}} can be empty, and 
> there is no guarantee that any other implementation of Hasher may have an 
> empty state.
> I have a use case where a {{Hasher}} is passed to a search method in a 
> multidimensional Bloom filter.  If the hasher is empty then we are doing the 
> equivalent of a table scan in a database.
> It is possible to determine if the hasher is not empty by something like
> {quote}{{boolean[] notEmpty = boolean[1];}}
> hasher.indices( shape ).forEachIndex( i ->\{notEmpty[0]=true;return false;});
> {quote}
> And then checking notEmpty[0].



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (COLLECTIONS-819) BloomFilter: Remove methods only used in testing from IndexProducer

2022-11-06 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/COLLECTIONS-819?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17629439#comment-17629439
 ] 

Claude Warren commented on COLLECTIONS-819:
---

[~aherbert] , I think this can be closed as "won't fix" or "works as designed". 
 Or do you still think it should be deleted?

> BloomFilter: Remove methods only used in testing from IndexProducer
> ---
>
> Key: COLLECTIONS-819
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-819
> Project: Commons Collections
>  Issue Type: Improvement
>  Components: Collection
>Affects Versions: 4.5
>Reporter: Claude Warren
>Priority: Minor
>  Labels: bloom-filter
>
> [https://github.com/Claudenw/commons-collections/blob/9f2945cc98747893456b73f42ab53f46a866ac37/src/main/java/org/apache/commons/collections4/bloomfilter/IndexProducer.java#L50-L68]
>  
> h3. 
> !https://avatars.githubusercontent.com/u/886334?s=48=4|width=24,height=24! 
> *[aherbert|https://github.com/aherbert]* [on 27 
> Feb|https://github.com/apache/commons-collections/pull/258#discussion_r813449970]
> This method is only used in testing. What is the use case? Note that 
> BloomFilter interface cannot merge an IndexProducer. This functionality is 
> only provided by the constructors for SimpleBloomFilter and 
> SparseBloomFitler. The method is trivially implemented if a user did want to 
> populate a Bloom filter with certain indices. But I do not see why they would 
> unless deserialising its stored representation. Given that we are not 
> supporting any such constructors for the ArrayCountingBloomFilter (creating 
> and populating at the same time) this seems like a partial support in the 
> library. Either the serialisation and deserialisation is better supported, or 
> we drop these methods from the public API for now.
>  
>  
> [https://github.com/Claudenw/commons-collections/blob/9f2945cc98747893456b73f42ab53f46a866ac37/src/main/java/org/apache/commons/collections4/bloomfilter/IndexProducer.java#L104-L119]
>  
> h3. 
> !https://avatars.githubusercontent.com/u/886334?s=48=4|width=24,height=24! 
> *[aherbert|https://github.com/aherbert]* [on 27 
> Feb|https://github.com/apache/commons-collections/pull/258#discussion_r813449970]
> This method is only used in testing. It is not required for any other 
> functionality in the API. What is the use case? If this is for serialisation 
> then the method is trivially performed anyway and the decision should be made 
> to use this or the bitmap long[] representation depending on the saturation 
> of the filter. It would be simpler to drop this method.
> h3.  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (COLLECTIONS-834) BitCountProducer operation is not clearly defined.

2022-09-10 Thread Claude Warren (Jira)
Claude Warren created COLLECTIONS-834:
-

 Summary: BitCountProducer operation is not clearly defined.
 Key: COLLECTIONS-834
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-834
 Project: Commons Collections
  Issue Type: Bug
  Components: Collection
Affects Versions: 4.5
Reporter: Claude Warren


When constructing a BitMapProducer from an IndexProducer the expected outcome 
when the IndexProducer produces duplicates is not well defined.

This change is to  document the expected behaviour and verify the expected 
behaviour through tests.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (COLLECTIONS-833) Intermittent failure in EmptyPropertiesTest

2022-08-24 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/COLLECTIONS-833?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17584312#comment-17584312
 ] 

Claude Warren commented on COLLECTIONS-833:
---

Perhaps a change to remove the lines from both files and if desired compare
them for approximate equivalence.





> Intermittent failure in EmptyPropertiesTest
> ---
>
> Key: COLLECTIONS-833
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-833
> Project: Commons Collections
>  Issue Type: Test
>  Components: Properties
>Reporter: Claude Warren
>Assignee: Gary D. Gregory
>Priority: Minor
> Fix For: 4.5
>
>
> Intermittent failure:
> {{Error: Failures: }}
> {{Error: EmptyPropertiesTest.testStoreToOutputStream:319 array contents 
> differ at index [33], expected: <51> but was: <50>}}
>  
> While testing changes in `bloomfilter` package an unmodified test on an 
> unmodified class failed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (COLLECTIONS-833) Intermittent failure in EmptyPropertiesTest

2022-08-23 Thread Claude Warren (Jira)
Claude Warren created COLLECTIONS-833:
-

 Summary: Intermittent failure in EmptyPropertiesTest
 Key: COLLECTIONS-833
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-833
 Project: Commons Collections
  Issue Type: Test
  Components: Properties
Affects Versions: 4.5
Reporter: Claude Warren


Intermittent failure:

{{Error: Failures: }}
{{Error: EmptyPropertiesTest.testStoreToOutputStream:319 array contents differ 
at index [33], expected: <51> but was: <50>}}

 

While testing changes in `bloomfilter` package an unmodified test on an 
unmodified class failed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (COLLECTIONS-763) Remove BloomFilter constructors that create initial entry

2022-08-22 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren updated COLLECTIONS-763:
--
Assignee: Claude Warren

> Remove BloomFilter constructors that create initial entry
> -
>
> Key: COLLECTIONS-763
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-763
> Project: Commons Collections
>  Issue Type: Improvement
>  Components: Collection
>Affects Versions: 4.x
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>
> Bloom Filters have constructors that both define and create an initial entry. 
>   Defining both the collection and adding an initial entry in the constructor 
> is not standard across the java collections. 
> This change is to remove the BloomFilter constructors that produce initial 
> entries.
> So the line
> {{BloomFilter filter = new BitSetBloomFIlter( aHasher, aShape );}}
> becomes
> {{BloomFilter filter = new BitSetBloomFIlter(  aShape );}}
> {{filter.merge( aHahser );}}
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Work logged] (COLLECTIONS-831) BloomFilter: add clear() method

2022-08-22 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-831?focusedWorklogId=802413=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-802413
 ]

Claude Warren logged work on COLLECTIONS-831:
-

Author: Claude Warren
Created on: 22/Aug/22 09:43
Start Date: 21/Aug/22 09:42
Worklog Time Spent: 1h 
  Work Description: Implemented

Issue Time Tracking
---

Worklog Id: (was: 802413)
Remaining Estimate: 0h  (was: 1h)
Time Spent: 1h

> BloomFilter: add clear() method
> ---
>
> Key: COLLECTIONS-831
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-831
> Project: Commons Collections
>  Issue Type: Improvement
>  Components: Collection
>Affects Versions: 4.5
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>  Labels: bloom-filter
> Fix For: 4.5
>
>   Original Estimate: 1h
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> In cases where a Bloom filter is set and then cleared it is more efficient to 
> clear the filter rather than dispose of it and create a new one.  
> Particularly for large  filters in environments where GC can be an issue.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (COLLECTIONS-831) BloomFilter: add clear() method

2022-08-22 Thread Claude Warren (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-831?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claude Warren resolved COLLECTIONS-831.
---
Fix Version/s: 4.5
   Resolution: Fixed

https://github.com/apache/commons-collections/pull/330

> BloomFilter: add clear() method
> ---
>
> Key: COLLECTIONS-831
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-831
> Project: Commons Collections
>  Issue Type: Improvement
>  Components: Collection
>Affects Versions: 4.5
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>  Labels: bloom-filter
> Fix For: 4.5
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> In cases where a Bloom filter is set and then cleared it is more efficient to 
> clear the filter rather than dispose of it and create a new one.  
> Particularly for large  filters in environments where GC can be an issue.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (COLLECTIONS-831) BloomFilter: add clear() method

2022-08-22 Thread Claude Warren (Jira)


[ 
https://issues.apache.org/jira/browse/COLLECTIONS-831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17582841#comment-17582841
 ] 

Claude Warren commented on COLLECTIONS-831:
---

Pull request is:  https://github.com/apache/commons-collections/pull/330

> BloomFilter: add clear() method
> ---
>
> Key: COLLECTIONS-831
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-831
> Project: Commons Collections
>  Issue Type: Improvement
>  Components: Collection
>Affects Versions: 4.5
>Reporter: Claude Warren
>Assignee: Claude Warren
>Priority: Minor
>  Labels: bloom-filter
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> In cases where a Bloom filter is set and then cleared it is more efficient to 
> clear the filter rather than dispose of it and create a new one.  
> Particularly for large  filters in environments where GC can be an issue.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (COLLECTIONS-831) BloomFilter: add clear() method

2022-08-11 Thread Claude Warren (Jira)
Claude Warren created COLLECTIONS-831:
-

 Summary: BloomFilter: add clear() method
 Key: COLLECTIONS-831
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-831
 Project: Commons Collections
  Issue Type: Improvement
  Components: Collection
Affects Versions: 4.5
Reporter: Claude Warren
Assignee: Claude Warren


In cases where a Bloom filter is set and then cleared it is more efficient to 
clear the filter rather than dispose of it and create a new one.  Particularly 
for large  filters in environments where GC can be an issue.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


  1   2   3   >