Files
spring-plugin/src/docbkx/index.xml
2012-02-22 11:39:09 +01:00

216 lines
5.8 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">
<book xmlns:xi="http://www.w3.org/2001/XInclude">
<bookinfo>
<title>Spring Plugin</title>
<subtitle>The smallest plugin system ever</subtitle>
<authorgroup>
<author>
<firstname>Oliver</firstname>
<surname>Gierke</surname>
<affiliation>
<jobtitle>Senior Member Technical Staff</jobtitle>
<orgname>SpringSource, a division of VMware</orgname>
</affiliation>
<email>ogierke (at) vmware.com</email>
</author>
</authorgroup>
<releaseinfo>V0.8</releaseinfo>
<pubdate>23.09.2009</pubdate>
<copyright>
<year>2008-2012</year>
<holder>The original authors</holder>
</copyright>
<revhistory>
<revision>
<date>04.11.2008</date>
<author>
<firstname>Oliver</firstname>
<surname>Gierke</surname>
</author>
<revremark>Initial draft</revremark>
</revision>
<revision>
<date>05.11.2008</date>
<author>
<firstname>Oliver</firstname>
<surname>Gierke</surname>
</author>
<revremark>Added metadata module documentation</revremark>
</revision>
<revision>
<date>24.01.2009</date>
<author>
<firstname>Oliver</firstname>
<surname>Gierke</surname>
</author>
<revremark>Added remark to inner bean usage</revremark>
</revision>
<revision>
<date>23.03.2009</date>
<author>
<firstname>Oliver</firstname>
<surname>Gierke</surname>
</author>
<revremark>Added section on plugin ordering</revremark>
</revision>
<revision>
<date>21.02.2012</date>
<author>
<firstname>Oliver</firstname>
<surname>Gierke</surname>
</author>
<revremark>Move project to SpringSource</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>Spring Plugin 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
Spring Plugin thus is not nearly as powerful as <abbrev>OSGi</abbrev>,
it servers poor 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 Spring Plugin
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. Spring Plugin tightly
integrates into Spring's component model and extends the core
container with some custom functionality.</para>
</simplesect>
</section>
</preface>
<xi:include href="../../core/src/doc/core.xml">
<xi:fallback href="../../core/src/doc/core.xml" />
</xi:include>
<xi:include href="../../metadata/src/doc/metadata.xml">
<xi:fallback href="../../metadata/src/doc/metadata.xml" />
</xi:include>
<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>