In computer programming, JavaBeans Activation Framework, or JAF, enables developers to:
determine the type of an arbitrary piece of data,
encapsulate access to it,
discover the operations available on it and
to instantiate the appropriate bean to perform the operation(s).
It also enables you to dynamically register types of arbitrary data and actions associated with particular kinds of data. Additionally, it enables a program to dynamically provide or retrieve JavaBeans that implement actions associated with some kind of data.
JSR-925
Latest spec version is 1.1
It's an old spec released on April 2006
It's originally an extension API
Now available as a standard API in Java SE and Java EE
Has only one package javax.activation (4 interfaces, 13 classes)
Provides access to an arbitrary collection of data
Get name of the data, data-type name (content type), and the data itself asInputStream or OutputStream
Two implementation classes provided
URLDataSource simplifies the handling of data described by URLs
FileDataSource simple DataSource object that encapsulates a file provides data typing services -> delegated to a FileTypeMap object.
Other implementations
javax.mail.internet.MimePartDataSource
javax.mail.util.ByteArrayDataSource
DataContentHandler interface
Convert the object to a byte stream and write it to the output stream
Convert streams in to objects
Used to get object/data which can be transferred
Uses java.awt.datatransfer.DataFlavor to indicate the data that can be accessed. DataFlavor is a data format as would appear on a clipboard, during drag and drop, or in a file system.
CommandMap class
An abstract class provides an interface to a registry of command objects available in the system
Developer develop their own implementation or use
MailcapCommandMap class that implements a CommandMap whose configuration is based on mailcap files (1524)
Command list available from a MIME Type is stored in CommandInfo object.
CommandObject interface
Interface to be implemented by JavaBeans components that are ActivationFramework aware
Simple interface with one method:
setCommandContext(String verb, DataHandler dh)
REST easy with the JavaBeans Activation Framework
http://www.javaworld.com/javaworld/jw-10-2007/jw-10-resteasy.html
Example also available in Java' 6™ New Features: A Tutorial' book, chapter-13 ISBN 0-9752128-8-5
Other presentation deck: http://www.hilbertinc.com/whitepapers/JAF.pdf