git-svn-id: svn+ssh://svn.synyx.de/var/svn/synyx/opensource/hera/trunk@3246 5a64d73e-33d6-4ccc-9058-23f8668ecac9
168 lines
4.7 KiB
XML
168 lines
4.7 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
|
<!ENTITY core SYSTEM "../../hera-core/src/doc/core.xml">
|
|
<!ENTITY metadata SYSTEM "../../hera-metadata/src/doc/metadata.xml">
|
|
]>
|
|
<!-- book -->
|
|
<book>
|
|
<bookinfo>
|
|
<title>Hera</title>
|
|
|
|
<subtitle>The smallest plugin system ever</subtitle>
|
|
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Oliver</firstname>
|
|
|
|
<surname>Gierke</surname>
|
|
|
|
<affiliation>
|
|
<jobtitle>Software Architect</jobtitle>
|
|
|
|
<orgname>Synyx GmbH & Co. KG</orgname>
|
|
</affiliation>
|
|
|
|
<email>gierke@synyx.de</email>
|
|
|
|
<address>Karlstraße 68, 76137 Karsruhe, Germany</address>
|
|
</author>
|
|
</authorgroup>
|
|
|
|
<releaseinfo>V0.1</releaseinfo>
|
|
|
|
<pubdate>04.11.2008</pubdate>
|
|
|
|
<copyright>
|
|
<year>2008</year>
|
|
|
|
<holder>Synyx GmbH & Co. KG</holder>
|
|
</copyright>
|
|
|
|
<revhistory>
|
|
<revision>
|
|
<date>04.11.2008</date>
|
|
|
|
<author>
|
|
<firstname>Oliver</firstname>
|
|
|
|
<surname>Gierke</surname>
|
|
</author>
|
|
|
|
<revremark>Initial draft </revremark>
|
|
</revision>
|
|
</revhistory>
|
|
</bookinfo>
|
|
|
|
<preface>
|
|
<title>Preface</title>
|
|
|
|
<section>
|
|
<title>Introduction</title>
|
|
|
|
<para>Building extensible architectures nowadays is a core principle to
|
|
create maintainable applications. This is why fully fledged plugin
|
|
environments like <glossterm><abbrev>OSGi</abbrev></glossterm> are so
|
|
poular these days. Unfortunately the introduction of
|
|
<glossterm><abbrev>OSGi</abbrev></glossterm> introduces a lot of
|
|
complexity to projects.</para>
|
|
|
|
<para>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 <abbrev>OSGi</abbrev> features like dynamic class loading or
|
|
runtime installation and deployment of plugins. Although Hera thus is
|
|
not nearly as powerful as <abbrev>OSGi</abbrev>, it servers little man's
|
|
requirements to build a modular extensible application.</para>
|
|
</section>
|
|
|
|
<section id="preface.context">
|
|
<title>Context</title>
|
|
|
|
<para><itemizedlist spacing="compact">
|
|
<listitem>
|
|
<para>You want to build an extensible architecture minimizing
|
|
overhead as much as possible</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>You cannot use OSGi as fully fledged plugin architecture for
|
|
whatever reasons</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>You want to express extensibility by providing dedicated
|
|
plugin interfaces</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>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.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>(You use Spring in your application)</para>
|
|
</listitem>
|
|
</itemizedlist></para>
|
|
|
|
<para>The last point actually is not essential although Hera gains a lot
|
|
of momentum in collaborative use with Spring.</para>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Technologies</title>
|
|
|
|
<simplesect>
|
|
<title>Spring</title>
|
|
|
|
<para>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.</para>
|
|
</simplesect>
|
|
</section>
|
|
</preface>
|
|
|
|
&core;
|
|
|
|
&metadata;
|
|
|
|
<glossary>
|
|
<glossdiv>
|
|
<title>O</title>
|
|
|
|
<glossentry>
|
|
<glossterm>OSGi</glossterm>
|
|
|
|
<glossdef>
|
|
<para>Open Services Gateway Initiative - a fully fledged plugin
|
|
runtime environment on top of the Java VM - <ulink
|
|
url="http://en.wikipedia.org/wiki/OSGi">http://en.wikipedia.org/wiki/OSGi</ulink>.</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
</glossdiv>
|
|
|
|
<glossdiv>
|
|
<title>X</title>
|
|
|
|
<glossentry>
|
|
<glossterm>XML</glossterm>
|
|
|
|
<glossdef>
|
|
<para>eXtensible Markup Language</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
|
|
<glossentry>
|
|
<glossterm>XSD</glossterm>
|
|
|
|
<glossdef>
|
|
<para>Xml Schema Definition</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
</glossdiv>
|
|
</glossary>
|
|
</book> |