Skip to content

JavaPermutationTools, v6.0.0

Latest
Compare
Choose a tag to compare
@cicirello cicirello released this 25 Jul 17:13
· 19 commits to master since this release
fef88e2

[6.0.0] - 2024-07-25

Added

  • SequenceSampler.getDefault() method for creating an instance of the default implementation of SequenceSampler.
  • SequenceSampler.getDefault(RandomGenerator) method for creating an instance of the default implementation of SequenceSampler from a given source of randomness.
  • SequenceSampler.getDefault(seed) method for creating an instance of the default implementation of SequenceSampler, specifying a seed for the random number generator.
  • Seeded constructors added to SequenceReservoirSampler, SequencePoolSampler, SequenceInsertionSampler, SequenceCompositeSampler.
  • Default constructors added to SequenceReservoirSampler, SequencePoolSampler, SequenceInsertionSampler, SequenceCompositeSampler.

Changed

  • Refactored to improve code quality and to perform minor optimizations of the following classes:
    • org.cicirello.permutations.distance.EditDistance
    • org.cicirello.sequences.distance.EditDistance
    • org.cicirello.sequences.distance.EditDistanceDouble
  • Refactored to improve code quality and to optimize SequenceReservoirSampler, SequencePoolSampler, SequenceInsertionSampler, SequenceCompositeSampler.
  • Minor optimizations to Permutation.scramble() methods.

Removed

  • Removed the previously deprecated (in v5.1.0) constructor org.cicirello.sequences.distance.EditDistance(double, double, double). To compute edit distance with double-valued costs for arrays and other sequences, use the existing EditDistanceDouble class instead. This does not impact the class with the same name that computes edit distance for permutations (i.e., the org.cicirello.permutations.distance.EditDistance class still accepts doubles for the costs).
  • Removed default method implementations in SequenceSampler interface (all interface methods now implemented in the implementing classes).

Fixed

  • Fixed potential integer overflow error in ReinsertionDistance
  • Fixed transient fields in Permutation that shouldn't be transient
  • Classes implementing SequenceSampler interface: methods with probability p of sampling an element fixed to always use specified randomness source (previously incorrectly used default randomness source on some calls).
  • Fixed potential finalizer vulnerability in org.cicirello.sequences.distance.EditDistance, detected by SpotBugs analysis.

Dependencies

  • Bump rho-mu from 3.1.0 to 4.1.0
  • Bump org.cicirello:core from 2.5.0 to 2.7.0

CI/CD

  • Integrated SpotBugs static analysis into build process.
  • Integrated Find Security Bugs static analysis into build process.
  • Discontinued publication of a jar-with-dependencies (BREAKING CHANGE only if you were using the fat jar).