<%
// Java Plug-in Framework (JPF)
// Copyright (C) 2004 - 2006 Dmitry Olshansky
// $Id$
%>
<%
include("/functions.ijxp");

printHeader("JPF Boot Library");
printMenu("boot");
%>
<div class="content">
	<h1>JPF Boot Library</h1>
	<h3>Introduction</h3>
	<p>Running JPF based application is often routine and it might be quite tricky, especially for Java beginners. What application developer usually need to do to start (and stop) JPF based application?</p>
		<ul>
			<li>load application configuration</li>
			<li>collect available plug-ins</li>
			<li>instantiate and initialize JPF runtime</li>
			<li>publish (load) collected plug-ins</li>
			<li>activate and "run" main plug-in</li>
			<li>on application exit, properly shutdow Framework</li>
		</ul>
	<p>As you can see, this is quite general and common procedure. All steps are usual and good formalized. So it is possible to write some library once and use it again and again for one particular purpose - load, configure and start application. That is the <a href="api/org/java/plugin/boot/package-summary.html">JPF Boot Library</a> (and slightly more as usual :).</p>
	<p><img src="resources/images/jpf-boot-diagram.png" width="485" height="516" border="0" alt="JPF Boot Library flow chart" title="JPF Boot Library flow chart" /></p>
	<h3>Usage</h3>
	<p>The library packaged in separate JAR file <code>jpf-boot.jar</code> There are special entries placed in manifest of this file that tells JVM what other libraries required for this JAR (<code>jpf.jar</code> so far) and what class to start when running JAR - <code>org.java.plugin.boot.Boot</code> This simplifies library usage and allows to start application simply typing in command shell:</p>
	<pre>java -jar lib/jpf-boot.jar</pre>
	<p>Here is typical folders structure:</p>
	<pre>[APPLICATION_HOME_FOLDER]/
 +- lib/
 |   +- commons-logging.jar
 |   +- jpf.jar
 |   +- jpf-boot.jar
 |   +- log4j.jar
 +- plugins/
 +- boot.properties
 +- log4j.properties
 +- run.bat
 +- run.sh</pre>
	<p>Put your plug-ins in <code>plugins</code> folder and execute <code>run</code> script. All start up magic will be done by library.</p>
	<p>You may remove <code>log4j.jar</code> and <code>log4j.properties</code> files if you don't need logging facilities. See <a href="api/org/java/plugin/boot/package-summary.html">JPF Boot Library javadoc</a> for configuration options.</p>
    <p>Look at <a href="http://sourceforge.net/project/showfiles.php?group_id=110394">JPF-Demo application</a> to get working example of JPF Boot library usage.</p>
	<br /><br />
</div>
<%
printFooter();
%>
