Author: bdube Date: Fri Apr 29 03:04:32 2011 New Revision: 1097672 URL: http://svn.apache.org/viewvc?rev=1097672&view=rev Log: Expand documentation
Added: forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/launch.xml Modified: forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/different.xml forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/index.xml forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/site.xml Modified: forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/different.xml URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/different.xml?rev=1097672&r1=1097671&r2=1097672&view=diff ============================================================================== --- forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/different.xml (original) +++ forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/different.xml Fri Apr 29 03:04:32 2011 @@ -38,7 +38,7 @@ href="site:more/bundle">plugin bundles</a> inherit from <code>master.xml</code>. <code>$FORREST_HOME</code> should point to the top of this whiteboard experiment, - <code>.../whiteboard/forrest-osgi</code>. The default Ant + <code>/path/to/forrest/whiteboard/forrest-osgi</code>. The default Ant target in <code>build.xml</code> will build the launcher as well as all plugin bundles. The Ant script assumes you have changed the environment variable <code>$FORREST_HOME</code> as @@ -71,6 +71,9 @@ Apache Felix™ implementation of the OSGi HTTP Service, which uses Jetty behind the scenes. </p> + <p> + See the page on <a href="site:more/launch">launching</a> for more. + </p> </section> <section id="plugins"> <title>Plugins in forrest-osgi</title> Modified: forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/index.xml URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/index.xml?rev=1097672&r1=1097671&r2=1097672&view=diff ============================================================================== --- forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/index.xml (original) +++ forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/index.xml Fri Apr 29 03:04:32 2011 @@ -59,8 +59,8 @@ <title>What is the same?</title> <p> There is still the concept of core functionality supplemented - with a set of plugins. The modularity provided, and enforced, - by OSGi bundles has the characteristics necessary to form the + by a set of plugins. The modularity provided, and enforced, by + OSGi bundles has the characteristics necessary to form the basis of a plugin architecture. The communication link provided by the Apache Cocoon™ sitemap is handled by OSGi services. Added: forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/launch.xml URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/launch.xml?rev=1097672&view=auto ============================================================================== --- forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/launch.xml (added) +++ forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/launch.xml Fri Apr 29 03:04:32 2011 @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd"> +<document> + <header> + <title>Launching forrest-osgi</title> + </header> + <body> + <section id="overview"> + <title>Overview</title> + <p> + Launching forrest-osgi is very similar to launching the + released version, except that static site generation is not + yet implemented. Because of the presence of bundle + <code>org.apache.forrest.servlet</code>, and the absence of + any static implementation, the default <code>site</code> + target actually launches dynamic mode, analogous to + <code>forrest run</code> in the released version. + </p> + <p> + Files involved: <code>forrest.build.xml</code>, + <code>bin/forrest</code> + </p> + </section> + <section id="launcher"> + <title>Launcher</title> + <p> + There is a custom launcher started in <a + href="ext:asfSvn/forrest/customLauncher">main/src/java/org/apache/forrest/Forrest.java</a>. Custom + launcher meaning a way to start an OSGi framework + instance. Once a framework implementation is found and + started, the launcher enumerates the contents of + <code>bundle</code> directory and installs all the bundles it + finds. It then starts all non-fragment bundles. Instead of + explicitly starting a fragment, which would throw an + exception, the fragment is bound to its host bundle by the + framework. + </p> + <p> + To accomplish the steps above, it is not necessary to have a + custom launcher. There are standard ways to launch the + framework which would result in the above. The idea behind a + custom launcher is to provide hooks into the launch + sequence. For example, the launcher can read + <code>forrest.properties</code> and load only the bundles + required by the calling project, rather than all bundles. The + launcher could also configure itself based on static or + dynamic mode. + </p> + </section> + <section id="running"> + <title>After launch</title> + <p> + When the launcher is finished starting bundles, the OSGi + framework is in control. <code>BundleActivator</code> classes + are executed for bundles that declare one. These are generally + used to publish a service or bind to a published service. The + bundle <code>org.apache.forrest.log</code> discovers any + registered implementations of the service <a + href="site:osgi/javadoc/v42/LogService">LogService</a> and + adds a <a + href="site:osgi/javadoc/v42/LogListener">listener</a> + implementation to provide access to Log4j, by way of + SLF4J. The bundle <code>org.apache.forrest.servlet</code> + discovers <a + href="site:osgi/javadoc/v42/HttpService">HttpService</a> and + registers a servlet to enable dynamic mode operation. + </p> + <p> + Now, the framework and bundles continue to run without + intervention. It is possible to dynamically install, remove or + update bundles, all without restarting the framework. It is + also possible to run multiple versions of a bundle + simultaneously. This is the beauty of OSGi. The current + implementation of forrest-osgi <em>does not</em> check for + bundles installed, removed or changed on the fly, but the + infrastructure to handle it is already present in the + framework. It is just a matter of taking the time to implement + it. + </p> + </section> + </body> +</document> Modified: forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/site.xml URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/site.xml?rev=1097672&r1=1097671&r2=1097672&view=diff ============================================================================== --- forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/site.xml (original) +++ forrest/trunk/whiteboard/forrest-osgi/docs/src/documentation/content/xdocs/site.xml Fri Apr 29 03:04:32 2011 @@ -45,11 +45,28 @@ See http://forrest.apache.org/docs/linki <different label="Differences" href="different.html" /> <contribute label="Contribute" href="contribute.html" /> <bundle label="Bundles" href="bundle.html" /> + <launch label="Launching" href="launch.html" /> </more> <external-refs> <forrest href="http://forrest.apache.org/"> <linking href="docs/linking.html" /> </forrest> + <asfSvn href="http://svn.apache.org/"> + <forrest href="viewvc/forrest/trunk/"> + <customLauncher href="whiteboard/forrest-osgi/main/src/java/org/apache/forrest/Forrest.java?view=markup" /> + </forrest> + </asfSvn> <bnd href="http://www.aqute.biz/Bnd/Bnd" /> + <osgi href="http://www.osgi.org/"> + <javadoc href="javadoc/"> + <v41 href="r4v41/" /> + <v42 href="r4v42/"> + <HttpService href="org/osgi/service/http/HttpService.html" /> + <LogListener href="org/osgi/service/log/LogListener.html" /> + <LogService href="org/osgi/service/log/LogService.html" /> + </v42> + <v43 href="r4v43/" /> + </javadoc> + </osgi> </external-refs> </site>