JUNG v2.1 Release Notes

Release Date: 2016-03-19 // about 8 years ago
  • Highlights:

    • πŸš€ GitHub is now the new home of JUNG. You can continue to find versions of JUNG prior to 2.1 at SourceForge, but no new versions will be released there.
      Now that it is easier to review
    • The commons-collections-generics library dependency has been replaced with Guava v19.
      This change is not backwards-compatible with existing code. It was necessary because of a security issue, but we also decided that Guava was a much better
      πŸš€ library to depend on in future for a variety of reasons (some of which will become apparent in future JUNG releases).
    • As of this version, JUNG now depends on Java v1.6 (up from 1.5).
    • 🚚 The matrix-related code has been removed, and with it the dependency on Colt.
    • 🚚 The (now unnecessary) woodstox dependency has been removed.
    • πŸ— JUNG now uses Travis to ensure that new code builds correctly before it is merged into the master branch.
    • Everyone's favorite trivial change: the Maven artifact ID for JUNG is now jung, not jung2.

    πŸš€ Many thanks to @cgruber for his help in getting the release and testing machinery in place.

    In terms of interfaces, the replacement of commons-collections with Guava has the following user-visible effects:

    • Predicate -> Predicate
    • Factory -> Supplier
    • Transformer -> Function

    There are also (of course) many internal changes related to this replacement, e.g.

    • ChainedTransformer -> Functions.compose()
    • Buffer, UnboundedFifoBuffer -> Queue, LinkedList
    • BidiMap -> BiMap

    (Note that some of the method signatures on these interfaces are different, e.g., Predicate.evaluate() -> Predicate.apply().)

    πŸ› Bug fixes:

    • πŸ›  Fixed path problem in TestGraphMLReader.java

    General:

    • Replaced uses of assert with Preconditions checks.
    • ⚑️ Updated a lot of Javadoc to be standards-compliant with the latest formatter expectations.
    • βœ‚ Removed some dead code.
    • Replaced (almost all) uses of MapMaker with LoadingCache/CacheBuilder/CacheLoader
    • StructurallyEquivalent: renamed canPossiblyCompare() to canBeEquivalent
    • βœ… PajekNetIOTest: fixed a bug (improper use of RandomLocationTransformer)
    • 🚚 `MixedRandomGraphGenerator: removed unused β€˜parallel’ param
    • AggregateLayout: made isLocked() and done() more efficient (early exit)
    • 🚚 DAGLayout: setRoot(): removed unused β€˜g’ param
    • MinimumSpanningForest: converted internal Map to Function
    • 🚚 ConstantMap: no longer used, removed
    • DiscreteDistribution: replaced checkLengths() by Preconditions.checkArgument() calls
    • 🚚 MapBinaryHeap: removed deprecated pop() method
    • βœ… WeakComponentClustererTest, TestKStepMarkov, TestBetweennessCentrality, TestImageShaper: commented out println()
      βœ… (note: these tests are not actually testing anything :P)
    • πŸ”€ TreeUtils: removed commented-out mergeForests(), addChildrenToForest()
    • 🚚 ToStringLabeller(): removed unnecessary type parameter
    • 🚚 DefaultVertexIconTransfomer: no longer needed, removed
    • πŸ‘€ PluggableRendererDemo: removed unnecessary/unused guacamole in Seed{Draw,Fill}Color inner classes
    • πŸ”¨ FourPassImageShaper: mostly refactored into ImageShapeUtils
    • 🚚 ClassicPickSupport: removed, no longer needed
    • 🚚 SpatialRectangle: removed, not used
    • πŸ–¨ commented out a few System.out.println instances
    • βœ‚ removed a few unused parameters
    • πŸ›  fixed a lot of compilation warnings (missing generic types, etc.)