Acme Technologies Logo
spacer image
JavaCompanion Plugin API Logo

Pure Java™ Plugin API for FileMaker Pro™

Macintosh Logo Windows Logo Mac OS X Logo

The fastest way to write FileMaker Plugins!

That's right, there's no other tool available which allows you to develop FileMaker Plugins in as little time, or as simply as JavaCompanion. With a single source code base your compiled plugin can be copied to Mac OS 9, Mac OS X and Windows and execute without any additional modifications. And you can develop JavaCompanion plugins on any platform that supports Java, even Linux! Here are some examples to get you thinking...
  • You could use Apache's Xerces XML parser to process XML data
  • Make XML-RPC calls using the Apache XML-RPC library.
  • Embed a mini Web server such as Acme Lab's mini_httpd inside your plugin and serve diagnostics, statistics, Java applets or anything else you want to make available while your plugin is running in FileMaker.
  • If you use FileMaker's instant web publishing but need to support allowing visitors to upload files, you could use an embedded, special-purpose Web server
  • Write your own plugin to manipulate files on the local file system.
  • Update remote resources using records in your FileMaker Database

Shorten Coding time with Third-party libraries
There are thounsands of high-quality Java libraries, many of which are open source or freely-licensed, which can be leveraged in JavaCompanion plugins. If you need to support FileMaker under OS 9 you have to compile plugins for the Java VM 1.1.x, otherwise you can make use of Java 2 features and classes written for J2SE.

JavaCompanion Technical Introduction
JavaCompanion consists of a small native FileMaker plugin which is different for Mac and Windows platforms. The native plugin loads the Java Virtual Machine then starts the JavaCompanion Plugin Manager. The Plugin Manager starts an initialization thread and returns control to FileMaker. The background init thread sets up logging, reads in property files, loads each configured plugin class and instantiates a single instance of the plugin. The Plugin Manager is also responsible for dispatching FileMaker External function requests from the native plugin to the appropriate plugin.

Writing a JavaCompanion plugin is as simple as subclassing and writing the methods which implement your plugin's functions. The box below provides an example of a trivial but working Hello World plugin.

Sample Hello World JavaCompanion Plugin
import; public class HelloWorld extends FileMakerPlugin { // your plugin's prefix string: e.g., "TEST-MyFunction" public final String JCPREFIX = "TEST-"; public static final String PLUGIN_NAME = "HelloWorld"; public HelloWorld(){ super(); debug(this, "Plugin instantiated"); } /** * This function exported as TEST-HelloWorld. * @return "Hello<sp>" plus input string. */ public String jcHelloWorld(String param) { debug(this, "HelloWorld called"); return "Hello " + param; } public String toString() { return PLUGIN_NAME; } }

In a few lines of code we've created a JavaCompanion plugin which -- once installed in your FileMaker Java Extensions folder -- provides a new FileMaker Pro External function named "TEST-HelloWorld"

The JavaCompanion Plugin Manager knows to export your jcHelloWorld method based on it's signature. The rules for writing methods to export to FileMaker are very simple:
  1. Declare the method as public.
  2. The method must return a String and take a single String parameter
  3. Prepend "jc" to the name of the method. This prefix is removed before exporting the name to FileMaker.

JavaCompanion Availability
An early-access version of the JavaCompanion FileMaker Plugin API is now available. Please write to our support email address for information. Licensing terms have not been finalized yet, but will likely consist a one-time developers license for deploying custom JC-based plugins inside your organization or business, and a separate annual fee for releasing plugins publicly (regardless of whether they are commercial, shareware or freeware).
Feature Summary
System Requirements FileMaker Pro Logo