Files
spring-plugin/src/doc/hera-reference.xml
Oliver Gierke f5a9c4439c * added first draft of documentation
git-svn-id: svn+ssh://svn.synyx.de/var/svn/synyx/opensource/hera/trunk@3246 5a64d73e-33d6-4ccc-9058-23f8668ecac9
2008-11-04 17:37:13 +00:00

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 &amp; 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 &amp; 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>