Unlike other Java to Objective-C solutions, Java-Objective-C Bridge doesn't require any code generation of class stubs. It allows you to use any Objective-C libraries and frameworks from Java without having to write any native code. In addition to being able to use Objective-C objects, it allows you to pass Java objects to the objective-c runtime as delegates, so that you can write an entire Cocoa application in Java. The bridge provides 3 levels of abstraction. At the lowest level, it provides wrappers around the Objective-C runtime functions. At a slightly higher level of abstraction, it provides a procedural API to send messages to the Objective-C runtime. At the highest level of abstraction, it provides a Proxy class that serves as a wrapper around any Objective-C object that allows you to work with it in Java almost the same as if you were in Objective-C.
Universal File Mover (UFM) manages the transfer of files. The user combines a series of Action commands to create the UFM Workflow XML file. These Action commands define which actions are to be taken, the order of the actions, and how errors are to be handled. UFM processes the Action commands as per the UFM Workflow XML file. UFM currently contains 41 Action commands. These action commands fall into five categories: WebSphere MQ Actions, Network Actions, File Actions, Control Actions, and Other Actions. UFM can transfer files in one of five ways, using WebSphere MQ, FTP, SFTP, SCP, or HTTP.
DSFoundation is a foundation enhancement library for Objective-C. It includes an IOC (Inversion of Control) container, translation (serialization and conversion) to and from Objects, YAML, and XML, automatic KVC adaptation and compliance, logging through an integrated Log4Cocoa, regular expression extensions, and much more.
Template Data Interface (TDI, /ʹtedɪ/) is a markup templating system written in Python with (optional but recommended) speedup code written in C. Unlike most templating systems, TDI does not invent its own language to provide functionality. Instead, you simply mark the nodes you want to manipulate within the template document. The template is parsed, and the marked nodes are presented to your Python code, where they can be modified in any way you want.