A plugin framework for java applications. Plugins may be managed at runtime via JMX. Asynchronous event handling is provided. Applications may couple tightly to plugins (via proxies) or loosely (via messaging). Plugins may communicate with other plugins. Plugins may be jars or directories and can include other jars and/or resources.