Developing Apama Applications > Developing Adapters > Java Codec Plug-in Development
Java Codec Plug-in Development
The codec layer is a layer of abstraction between the transport layer and the IAF’s Semantic Mapper. It consists of one or more plug-in libraries that perform message encodinganddecoding. Decoding involves translating downstream messages retrieved by the transport layer into the standard ‘normalised event’ format on which the Semantic Mapper’s rules run; encoding works in the opposite direction, converting upstream normalised events into an appropriate format for transport layer plug-ins to send on. Note that unlike the situation with C/C++, in Java codec plug-ins are always both encoders and decoders. See The Integration Adapter Framework for a full introduction to codec plug-ins and the IAF’s architecture.
This chapter includes the Java Codec Plug-in Development Specification and additional information for developers of Java event codecs. C/C++ Codec Plug-in Development provides analogous information about developing codec plug-ins using C/C++.
Before developing a new codec plug-in, it is worth considering whether one of the standard Apama plug-ins could be used instead. Standard Plug-ins provides more information on the standard IAF codec plug-ins: JStringCodec and JNullCodec. The JStringCodec plug-in codes normalised events as formatted text strings. The JNullCodec plug-in is useful in situations where it does not make sense to decouple the codec and transport layers, and allows transport plug-ins to communicate with the Semantic Mapper directly using normalised events.
Note: Beginning with Apama 4.0, plug-in constructors and the updateProperties(), sendTransportEvent(), and sendNormalisedEvent() methods all take an additional argument. This means that any IAF plug-ins written for versions earlier than 4.0 need to be modified and recompiled with this release.
Copyright © 2013 Software AG, Darmstadt, Germany and/or Software AG USA Inc., Reston, VA, USA, and/or Terracotta Inc., San Francisco, CA, USA, and/or Software AG (Canada) Inc., Cambridge, Ontario, Canada, and/or, Software AG (UK) Ltd., Derby, United Kingdom, and/or Software A.G. (Israel) Ltd., Or-Yehuda, Israel and/or their licensors.