This is an automated email from the ASF dual-hosted git repository. gk pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-factory.git
commit 34a461d99660c7045b95f4ae7dcfda6a1e6594a9 Author: Thomas Vandahl <[email protected]> AuthorDate: Tue Aug 5 16:32:32 2008 +0000 (Hopefully) improve documentation git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/factory@682777 13f79535-47bb-0310-9956-ffa450edef68 --- xdocs/index.xml | 115 ++++++++++++++++++++++++++++++++++---------------------- xdocs/tasks.xml | 2 +- 2 files changed, 72 insertions(+), 45 deletions(-) diff --git a/xdocs/index.xml b/xdocs/index.xml index 74e7d09..b17ff14 100644 --- a/xdocs/index.xml +++ b/xdocs/index.xml @@ -22,7 +22,8 @@ <properties> <title>Factory Component</title> - <author email="[email protected]">Eric PUgh</author> + <author email="[email protected]">Eric Pugh</author> + <author email="[email protected]">Thomas Vandahl</author> </properties> <body> @@ -47,42 +48,72 @@ The service provides the following benefits compared to Class.forName(): </section> <section name="Configuration"> - - <p> - First, here is the role configuration. - </p> - -<source> -<![CDATA[ - <role + <subsection name="Role Configuration"> + <source><![CDATA[ + <role name="org.apache.fulcrum.factory.FactoryService" shorthand="factory" default-class="org.apache.fulcrum.factory.DefaultFactoryService"/> -]]> -</source> - - <p> - There is configuration values for classloaders, still need to add. - </p> -<source> - -<![CDATA[ - <factory/> -]]> -</source> - + ]]></source> + </subsection> + + <subsection name="Component Configuration"> + <table> + <tr> + <th>Item</th> + <th>Datatype</th> + <th>Cardinality</th> + <th>Description</th> + </tr> + <tr> + <td>classloader</td> + <td>String</td> + <td>[0..n]</td> + <td> + A class loader. Class loaders will be tried in sequence when + trying to create an object instance. + </td> + </tr> + <tr> + <td>object-factory</td> + <td>Complex</td> + <td>[0|1]</td> + <td> + The parent element for object factories. Sub-elements define + factories for certain class names. You can define one + <code>default</code> factory that will be used if no others + match. See the configuration example below. + </td> + </tr> + </table> + </subsection> + + <subsection name="Component Configuration Example"> + <source><![CDATA[ + <factory> + <classloader>java.net.URLClassLoader</classloader> + <object-factory> + <javax.xml.parsers.DocumentBuilder> + org.foo.xml.DomBuilderFactory + </javax.xml.parsers.DocumentBuilder> + <default> + org.some.default.Factory + </default> + </object-factory> + </factory> + ]]></source> + </subsection> </section> <section name="Usage"> + <p> + In Turbine, the Factory Service is currently only used internally by the Pool Service. + Applications can also use the service instead of Class.forName() and for unifying + initialization, configuration and access to vendor specific object factories. + The following is a simplified example of a customized DOM parser factory: + </p> -<p> -In Turbine, the Factory Service is currently only used internally by the Pool Service. -Applications can also use the service instead of Class.forName() and for unifying -initialization, configuration and access to vendor specific object factories. -The following is a simplified example of a customized DOM parser factory: -</p> - -<source><![CDATA[ + <source><![CDATA[ package org.foo.xml; import javax.xml.parsers.DocumentBuilder; @@ -170,22 +201,19 @@ public class DomBuilderFactory implements Factory } ]]></source> -<p> -The customized DOM parser factory must be specified in Turbine Resources before it can be used: -</p> - -<source><![CDATA[ -services.FactoryService.factory.javax.xml.parsers.DocumentBuilder=org.foo.xml.DomBuilderFactory -]]></source> + <p> + The customized DOM parser factory must be specified in the component + configuration like in the configuration example above before it can + be used. + </p> -<p> -A DOM parser can now be instantiated with the following code fragment: -</p> + <p> + A DOM parser can now be instantiated with the following code fragment: + </p> -<source><![CDATA[ + <source><![CDATA[ // Access the service singleton. -FactoryService service = (FactoryService) - TurbineServices.getInstance().getService(FactoryService.SERVICE_NAME); +FactoryService service = (FactoryService)container.lookup(FactoryService.ROLE); // Create a new DOM parser. DocumentBuilder parser = @@ -193,6 +221,5 @@ DocumentBuilder parser = ]]></source> </section> - </body> </document> diff --git a/xdocs/tasks.xml b/xdocs/tasks.xml index a8572e6..28a83f2 100644 --- a/xdocs/tasks.xml +++ b/xdocs/tasks.xml @@ -34,7 +34,7 @@ <p> <ul> <li> - Need to test using the configuratio values. Currently it just uses the default Classloader. + Need to test using the configuration values. Currently it just uses the default Classloader. </li> <li> Document using different classloaders.
