]> Hera The smallest plugin system ever Oliver Gierke Software Architect Synyx GmbH & Co. KG gierke@synyx.de
Karlstraße 68, 76137 Karsruhe, Germany
V0.4 23.03.2009 2009 Synyx GmbH & Co. KG 04.11.2008 Oliver Gierke Initial draft 05.11.2008 Oliver Gierke Added metadata module documentation 24.01.2009 Oliver Gierke Added remark to inner bean usage 23.03.2009 Oliver Gierke Added section on plugin ordering
Preface
Introduction Building extensible architectures nowadays is a core principle to create maintainable applications. This is why fully fledged plugin environments like OSGi are so poular these days. Unfortunately the introduction of OSGi introduces a lot of complexity to projects. Hera provides a more pragmatic approach to plugin development by providing the core flexibility of having plugin implementations extending a core system's functionality but of course not delivering core OSGi features like dynamic class loading or runtime installation and deployment of plugins. Although Hera thus is not nearly as powerful as OSGi, it servers little man's requirements to build a modular extensible application.
Context You want to build an extensible architecture minimizing overhead as much as possible You cannot use OSGi as fully fledged plugin architecture for whatever reasons You want to express extensibility by providing dedicated plugin interfaces You want to extend the core system by simply providing an implementation of the plugin interface bundled in a JAR file and available in the classpath. (You use Spring in your application) The last point actually is not essential although Hera gains a lot of momentum in collaborative use with Spring.
Technologies Spring Spring is the defacto standard application framework for Java applications. Its consistent programming model, easy configuration and wide support for all kinds of third party libraries makes it the first class citizen of application frameworks. Hera tightly integrates into Spring's component model and extends the core container with some custom functionality.
&core; &metadata; O OSGi Open Services Gateway Initiative - a fully fledged plugin runtime environment on top of the Java VM - http://en.wikipedia.org/wiki/OSGi. X XML eXtensible Markup Language XSD Xml Schema Definition