Interesting Links – 29 Sep 2016

  • The reflections project scans your classpath, indexes the metadata, allows you to query it on runtime and may save and collect that information for many modules within your project.
  • try { return } finally {}” demonstrates what happens when a finally block modifies a reference that’s being returned in the try block. It’s rather interesting.
  • Need to generate fake data? https://github.com/DiUS/java-faker to the rescue. It’s a port of a popular Ruby GEM; this is not the only implementation, but it serves.
  • User Anthaas offered this gem: “You’ll find most of the people who waste a large amount of time on something simple do so because they are fixated on fixing their solution, rather than finding a solution that works.”
  • User liste pointed out JSimpleDB, a project that says it is a “a better persistence layer for Java.” Basically, it provides a transactional access layer for various data stores (SQL databases, NoSQL data stores) as key/value stores, with quite a laundry list of features copied from the project home page:
    • Encoding/decoding of field values
    • Enforcing referential integrity; forward/reverse delete cascades
    • Field indexes (simple and composite)
    • Query views
    • Schema management
    • Change notification
    • Validation queues
    • Command line interface
    • Designed from the ground up to be Java-centric; 100% type-safe at all times.
    • Works on top of any database that can function as a key/value store (SQL, NoSQL, etc.)
    • Scales gracefully to large data sets; no “whole database” operation is ever required
    • Configured entirely via Java annotations (only one is required)
    • Queries are regular Java code – there is no “query language” needed
    • Change notifications from arbitrarily distant objects
    • Built-in support for rolling schema changes across multiple nodes with no downtime
    • Supports simple and composite indexes, including on user-defined custom types
    • Extensible command line interface (CLI) including Java 8 expression parser
    • Built-in Java-aware graphical user interface (GUI) based on Vaadin