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.*.