hivemind-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From k...@apache.org
Subject cvs commit: jakarta-hivemind/src/documentation/content/xdocs configurations.xml
Date Sun, 06 Feb 2005 22:15:50 GMT
knut        2005/02/06 14:15:50

  Modified:    src/documentation/content/xdocs configurations.xml
  Log:
  Added example for mapped configurations.
  
  Revision  Changes    Path
  1.14      +42 -15    jakarta-hivemind/src/documentation/content/xdocs/configurations.xml
  
  Index: configurations.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/src/documentation/content/xdocs/configurations.xml,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- configurations.xml	31 Jan 2005 10:10:54 -0000	1.13
  +++ configurations.xml	6 Feb 2005 22:15:50 -0000	1.14
  @@ -27,7 +27,7 @@
   	<body>
   		<p>A central concept in HiveMind is <em>configuration extension points</em>.
   			Once you have a set of services, it's natural to want to configure those
  -			services. In HiveMind, a configuration point contains an unordered list of
  +			services. In HiveMind, a configuration point contains an unordered collection of
   			<em>elements</em>. Each element is contributed by a module ... any module
   			may make contributions to any configuration point visible to it.</p>
   		<p>There is no explicit connection between a service and a configuration
  @@ -82,7 +82,7 @@
     <schema>
       <element name="datum">
         <attribute name="key" required="true"/>
  -      <attriute name="value" required="true"/>
  +      <attribute name="value" required="true"/>
   
         <conversion class="hivemind.test.config.impl.Datum"/>
       </element>
  @@ -114,15 +114,13 @@
   					the exact same schema. By assigning an id attribute to a &_schema; 
   					element, you may reference the same schema for multiple configuration
   					points. For example, the &hivemind.FactoryDefaults; and &hivemind.ApplicationDefaults;
  -					configuration points use the same schema. The hivemind module
  +					configuration points use the same schema. The HiveMind module
   					deployment descriptor accomplishes this by defining a schema for one
   					configuration point, then referencing it from another:</p>
   				<source><![CDATA[
   <schema id="Defaults">
     <element name="default">
  -
       . . .
  -
     </element>
   </schema>
   
  @@ -156,16 +154,9 @@
     </invoke-factory>
   </service-point>]]></source>
   
  -			<p>As mentioned it is also possible to have the configuration contributions 
  -				injected as a Map.  This requires the schema to define the attribute of 
  -				the top-level elements which should be used as the key for the objects 
  -				in the map.  This is specified using &_element;'s <code>key-attribute</code>

  -				attribute. The identified key attribute is implicitly marked as 
  -				<em>required</em> and <em>unique</em>.  Further it is the <em>translated</em>
  -				attribute value which is used as the key in the map.</p>
  -			<p>The list / map of elements is always injected as an <em>unmodifiable</em>

  -				collection. An empty list / map may be injected, but never 
  -				<code>null</code>.</p>
  +			<p>The collection of configuration elements is always injected as an 
  +				<em>unmodifiable</em> collection. An empty list / map may be injected,

  +				but never <code>null</code>.</p>
   			<p>The order of the elements in the list is not defined. If order is
   				important, you should create a new (modifiable) list from the injected
   				list and sort it.</p>
  @@ -179,6 +170,42 @@
   				information contained in a configuration as an unordered list. A best
   				practice is to always access the configuration through a service, which
   				can organize and validate the data in the configuration.</note>
  +
  +			<section>
  +				<title>Accessing Configurations as a Map</title>
  +				<p>As mentioned it is also possible to have the configuration contributions 
  +					injected as a Map.  This requires the schema to define the attribute of 
  +					the top-level elements which should be used as the key for the elements 
  +					in the map.  This is specified using &_element;'s <code>key-attribute</code>

  +					attribute. The identified key attribute is implicitly marked as 
  +					<em>required</em> and <em>unique</em>.</p>
  +				<p>So the previous configuration point <em>Simple</em> can also be
defined as 
  +					follows:</p>
  +
  +				<source><![CDATA[
  +<configuration-point id="Simple">
  +  <schema>
  +    <element name="datum" key-attribute="key">
  +      <attribute name="key"/>
  +      <attribute name="value" required="true"/>
  +
  +      <rules>
  +        <push-attribute attribute="value"/>
  +        <invoke-parent method="addElement"/>
  +      </rules>
  +    </element>
  +  </schema>
  +</configuration-point>]]></source>
  +
  +				<p>The resulting configuration point is now accessible as a Map, where the 
  +					translated value of the <code>key</code> attribute is the key and the

  +					translated value of the <code>value</code> attribute is the value of the

  +					Map.Entry elements.</p>
  +				<note>It is also possible to access the elements of this configuration point
as 
  +					a List, but the elements therein are now the objects (in this case Strings) 
  +					created by the &_push-attribute; rule.</note>
  +			</section>
  +
   		</section>
   		<section>
   			<title>Lazy Loading</title>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: hivemind-cvs-unsubscribe@jakarta.apache.org
For additional commands, e-mail: hivemind-cvs-help@jakarta.apache.org


Mime
View raw message