Abdera2 - What's New TBD
Abdera2 is a major update to the project that introduces a broad range of new features and functionality as well as bug fixes and improved performance. New features include: Updated all dependencies to latest versions Introduced new dependencies on Joda-Time and Guava Libraries Refactored package layout, new packaging structure New Common Code Library: Selector Framework, extension to the Guava Predicate API, used extensively throughout Abdera2. Updated and Extended URI Template Implementation Updated Unicode Support using ICU4J Improved efficiency in IRI implementation Enhanced ISO8601 Date/Time handling using Joda-Time, Guava and the Selector framework Enhanced support for common HTTP Headers (Authentication, Cache Control, ETag, Preference, Web Linking) Simplified Lang Tag Support Enhanced Media Type Support New lightweight "Pusher" interface.. acts as a shim for simple pub/sub applications. Lightweight MapReduce implementation built around the Guava Function API designed primarily for relatively small, in-memory analysis operations. Supports asynchronous, non-blocking operations. Simple Chained Invocation API extending the Guava Function API API Key and One Time Password Implementations Utilities for simplifying Hash and HMAC generation and validation Variety of other useful utilities... Updated Feed Object Model API, using Joda-Time for all Date-Time handling, use of the Selector API for filtering results Simplified the Named Writer and Named Parser mechanism in the Atom implementation Completely refactored HTTP Client API based around the Apache HTTP Client Components 4.x. Support for Asynchronous, non-blocking HTTP Client operations leveraging the java.util.concurrent.Executor framework and java.util.concurrent.Future Improved Atom Parsing Performance (my informal testing has demonstrated about a 20-25% improvement on average) Complete JSON Activity Streams implementation: Support for generating and consuming Activity Streams Support for all core Object Types and Verbs Support for a number of extension Object Types and Verbs Fluent, factory-model API Immutable, thread-safe objects Streaming Serialization API API for using existing Activities objects as template to create new objects Extensible serialization/deserialization Asynchronous, non-blocking parsing and serialization Support for primary Activity Streams extensions such as Replies and Audience Targeting Experimental mode that allows playing around with new experimental extensions JSON Web Token Support Type-safe dynamic extensibility API Merge/Diff API Filter API based on Selectors Conversion of JSON Activity Stream to and from Atom Server-side Publishing Server implementation has been extracted into a separate, independent project. It is important to point out that Abdera2 is NOT binary compatible with the 1.x version. While much of the basic Feed Object Model (FOM) API remains unchanged, there have been many changes specifically in the area of Date handling and the introduction of the Selector framework. Accordingly, the Abdera2 Java Package has been changed to org.apache.abdera2.*.