hivemind-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hls...@apache.org
Subject cvs commit: jakarta-hivemind/library/src/descriptor/META-INF hivemodule.xml
Date Mon, 09 Aug 2004 13:24:49 GMT
hlship      2004/08/09 06:24:49

  Modified:    src/documentation/content/xdocs links.ent
               framework/src/documentation/content/xdocs/hivemind
                        ObjectProviders.xml
               library/src/documentation/content/xdocs/hivemind-lib
                        PipelineFactory.xml
               examples/src/descriptor/META-INF panorama.startup.xml
                        panorama.xml
               library/src/test/org/apache/hivemind/lib/pipeline
                        Pipeline.xml
               library/src/descriptor/META-INF hivemodule.xml
  Log:
  Simply the contributions format for PipelineFactory, to take advantage of object references.
  
  Revision  Changes    Path
  1.12      +3 -1      jakarta-hivemind/src/documentation/content/xdocs/links.ent
  
  Index: links.ent
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/src/documentation/content/xdocs/links.ent,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- links.ent	16 Jul 2004 23:15:39 -0000	1.11
  +++ links.ent	9 Aug 2004 13:24:48 -0000	1.12
  @@ -131,6 +131,8 @@
   
   <!-- Entities for common services and configurations. -->
   
  +<!ENTITY object-reference '<link href="site:hivemind.ObjectProviders">object reference</link>'>
  +
   <!ENTITY hivemind.ApplicationDefaults '<link href="site:hivemind.ApplicationDefaults">hivemind.ApplicationDefaults</link>'>
   <!ENTITY hivemind.BuilderFactory '<link href="site:hivemind.BuilderFactory">hivemind.BuilderFactory</link>'>
   <!ENTITY hivemind.EagerLoad '<link href="site:hivemind.EagerLoad">hivemind.EagerLoad</link>'>
  
  
  
  1.4       +13 -1     jakarta-hivemind/framework/src/documentation/content/xdocs/hivemind/ObjectProviders.xml
  
  Index: ObjectProviders.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/framework/src/documentation/content/xdocs/hivemind/ObjectProviders.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ObjectProviders.xml	6 Aug 2004 14:16:40 -0000	1.3
  +++ ObjectProviders.xml	9 Aug 2004 13:24:48 -0000	1.4
  @@ -29,7 +29,19 @@
   			configuration drives the <code>object</code> translator. Contributions
         define an object <em>provider</em> in terms of a prefix (such as <code>service</code>)
         and a service that implements the <code>ObjectProvider</code> interface.
  -      .</p>
  +      </p>
  +    <p>
  +      Object <em>providers</em> exist to support <em>object references</em>.  Object references
  +      are a way to contribute objects that may be references to services, or to other objects, or may even be created
  +      on the spot.  This is often used with the &hivemind.BuilderFactory;'s &lt;set-object&gt; element.
  +    </p>
  +    
  +    <p>
  +      An object reference consists of a <em>prefix</em> and a <em>locator</em> seperated by a colon.  The interpretation of
  +      the locator is different for each provider.  The prefix determines which provider will be utilized to interpret the
  +      locator. 
  +    </p>
  +    
   		<p>The contribution format defines the name and class for each service
   			model:</p>
   		<source><![CDATA[
  
  
  
  1.5       +16 -28    jakarta-hivemind/library/src/documentation/content/xdocs/hivemind-lib/PipelineFactory.xml
  
  Index: PipelineFactory.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/library/src/documentation/content/xdocs/hivemind-lib/PipelineFactory.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- PipelineFactory.xml	8 Aug 2004 13:16:26 -0000	1.4
  +++ PipelineFactory.xml	9 Aug 2004 13:24:48 -0000	1.5
  @@ -57,7 +57,8 @@
         src="images/PipelineCallingSequence.png"/>
       <p> The bridge objects implement the <em>service interface</em> (and are 
         created dynamically at runtime). The <em>terminator</em> at the end also 
  -      implements the service interface. This can be an object or a service; if 
  +      implements the service interface. This is an &object-reference; (it can be
  +      an object or a service) if 
         no terminator is specified, a <link 
         href="site:hivemind.lib.DefaultImplementationBuilder">default 
         implementation</link> is created and used. Only a single terminator is 
  @@ -73,14 +74,14 @@
         <title>Usage</title>
         <p> The factory expects a single parameter element: </p>
         <source><![CDATA[
  -<create-pipeline filter-interface="..." configuration-id="..." terminator-service-id="..."/>]]></source>
  +<create-pipeline filter-interface="..." configuration-id="..." terminator="..."/>]]></source>
         <p> The <code>filter-interface</code> attribute is the complete class 
           name of the filter interface. </p>
         <p>The <code>configuration-id</code> is the id of the companion 
           configuration (used to define filters).</p>
  -      <p>The optional <code>terminator-service-id</code> attribute is used to 
  -        specify a terminator service directly (a terminator may also be 
  -        contributed into the pipline configuration).</p>
  +      <p>The optional <code>terminator</code> attribute is used to 
  +        specify an &object-reference;. A terminator may also be 
  +        contributed into the pipeline configuration.</p>
       </section>
       <section>
         <title>Configuration</title>
  @@ -92,45 +93,32 @@
       <section>
         <title>Contributions</title>
         <p>Contributions into the configuration are used to specify the filters 
  -        and the terminator. Filters and terminators can be specified as 
  -        services or as objects.</p>
  +        and the terminator.</p>
         <section>
           <title>filter</title>
           <source><![CDATA[
  -<filter service-id="..." before="..." after="..."/>]]> </source>
  -        <p>Contributes a filter as a service. The optional <code>before</code> 
  +<filter name="..." before="..." after="..." object="..."/>]]> </source>
  +        <p>Contributes a filter. The optional <code>before</code> 
             and <code>after</code> attributes are lists of the ids of other 
             filters in the pipeline, used to set the ordering of the filters. 
             They may be comma-seperated lists of filter ids (or filter names), or 
             simple <code>*</code> to indicate absolute positioning. </p>
  +          <p>
  +            The <code>object</code> attribute is the filter object itself, an
  +            &object-reference; to an object implementing the <em>filter interface</em>.
  +          </p>
         </section>
   
         <section>
  -        <title>filter-object</title>
  -        <source><![CDATA[
  -<filter-object name="..." object="..." before="..." after="..."/>]]></source>
  -        <p>Contributes a filter as an instance of the provided class. The 
  -          <code>name</code> attribute is required and will be qualified with 
  -          the contributing module id. The <code>object</code> attribute 
  -          defines the object that will act as a filter. <code>before</code> and 
  -          <code>after</code> are optional, as with the &lt;filter&gt; 
  -          element.</p>
  -      </section>
  -      <section>
           <title>terminator</title>
  -        <source><![CDATA[<terminator service-id="..."/>]]></source>
  -        <p> Specifies the terminator service for the pipeline. Only a single 
  +        <source><![CDATA[<terminator object="..."/>]]></source>
  +        <p> Specifies the terminator for the pipeline, as an &object-reference; to an object
  +          implementing the <em>service interface</em>. Only a single 
             terminator may be specified, and the terminator service provided in 
             the factory parameters takes precendence over a terminator in the 
             configuration. </p>
         </section>
   
  -      <section>
  -        <title>terminator-object</title>
  -        <source><![CDATA[<terminator-object class="..."/>]]></source>
  -        <p> Specifies the termnator for the pipeline as an object (intead of as 
  -          a service). </p>
  -      </section>
       </section>
     </body>
   </document>
  
  
  
  1.2       +49 -17    jakarta-hivemind/examples/src/descriptor/META-INF/panorama.startup.xml
  
  Index: panorama.startup.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/examples/src/descriptor/META-INF/panorama.startup.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- panorama.startup.xml	3 Aug 2004 14:02:14 -0000	1.1
  +++ panorama.startup.xml	9 Aug 2004 13:24:49 -0000	1.2
  @@ -15,25 +15,57 @@
      limitations under the License.
   -->
   
  -<module id="panorama.startup"
  -        version="1.0.0">Startup logic for Panorama.<schema
  -            id="Tasks">Defines tasks that can be executed by a task executor service.<element
  -                name="task">A task which can invoke an object, or service, that implements Executable.<attribute
  -                name="title" required="true">A short, user presentable description of the task, used in logging output.</attribute>
  -            <attribute name="id" required="true">A unique id for the task, which is used to set the order of execution of all tasks.</attribute>
  -            <attribute name="before">A comma-seperated list of task ids whose execution should follow this task, or * to indicate that this task must run first.</attribute>
  -            <attribute name="after">A comma-seperated list of task ids whose execution should precede this tasks execution, or * to indicate that this task must run last.</attribute>
  -            <attribute name="executable" required="true" translator="object">An object or service that implements Executable.</attribute>
  +<module id="panorama.startup" version="1.0.0">
  +  
  +    Startup logic for Panorama.
  +      
  +        <schema id="Tasks">
  +          Defines tasks that can be executed by a task executor service.
  +            
  +          <element name="task">
  +            A task which can invoke an object, or service, that implements Executable.
  +            <attribute name="title" required="true">
  +            A short, user presentable description of the task, used in logging output.
  +            </attribute>
  +            
  +            <attribute name="id" required="true">
  +            A unique id for the task, which is used to set the order of execution of all tasks.
  +            </attribute>
  +            
  +            <attribute name="before">
  +            A comma-seperated list of task ids whose execution should follow this task, or * to indicate that this task must run first.
  +            </attribute>
  +            <attribute name="after">
  +            A comma-seperated list of task ids whose execution should precede this tasks execution, 
  +            or * to indicate that this task must run last.
  +            </attribute>
  +            <attribute name="executable" required="true" translator="object">
  +              An object or service that implements Executable.
  +            </attribute>
               <conversion class="com.panorama.startup.impl.Task"/>
           </element>
  -        <element
  -                name="static-task">A task which can invoke an object, or service, that implements Executable.<attribute
  -                name="title" required="true">A short, user presentable description of the task, used in logging output.</attribute>
  -            <attribute name="id" required="true">A unique id for the task, which is used to set the order of execution of all tasks.</attribute>
  -            <attribute name="before">A comma-seperated list of task ids whose execution should follow this task, or * to indicate that this task must run first.</attribute>
  -            <attribute name="after">A comma-seperated list of task ids whose execution should precede this tasks execution, or * to indicate that this task must run last.</attribute>
  -            <attribute name="class" required="true" translator="class">A class containing a public static method to execute.</attribute>
  -            <attribute name="method">The name of a public static method of the class; if not specified, 'init' is used.</attribute>
  +        <element name="static-task">
  +          A task which can invoke an object, or service, that implements Executable.
  +            <attribute name="title" required="true">
  +              A short, user presentable description of the task, used in logging output.
  +            </attribute>
  +            <attribute name="id" required="true">
  +              A unique id for the task, which is used to set the order of execution of all tasks.
  +            </attribute>
  +            <attribute name="before">
  +              A comma-seperated list of task ids whose execution should follow this task, 
  +              or * to indicate that this task must run first.
  +            </attribute>
  +            <attribute name="after">
  +              A comma-seperated list of task ids whose execution should precede this tasks execution, 
  +              or * to indicate that this task must run last.
  +            </attribute>
  +            <attribute name="class" required="true" translator="class">
  +              A class containing a public static method to execute.
  +            </attribute>
  +            <attribute name="method">
  +              The name of a public static method of the class; if not specified, 'init' is used.
  +            </attribute>
               <rules>
                   <create-object class="com.panorama.startup.impl.Task"/>
                   <invoke-parent method="addElement"/>
  
  
  
  1.2       +5 -2      jakarta-hivemind/examples/src/descriptor/META-INF/panorama.xml
  
  Index: panorama.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/examples/src/descriptor/META-INF/panorama.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- panorama.xml	3 Aug 2004 14:02:14 -0000	1.1
  +++ panorama.xml	9 Aug 2004 13:24:49 -0000	1.2
  @@ -15,8 +15,11 @@
      limitations under the License.
   -->
   
  -<module id="panorama"
  -        version="1.0.0">The Panorama example application, which includes several sub-modules.<sub-module descriptor="panorama.startup.xml"/>
  +<module id="panorama" version="1.0.0">
  +  
  +  The Panorama example application, which includes several sub-modules.
  +    
  +    <sub-module descriptor="panorama.startup.xml"/>
       <sub-module descriptor="panorama.mail.xml"/>
       <sub-module descriptor="panorama.discussions.xml"/>
   </module>
  
  
  
  1.2       +4 -4      jakarta-hivemind/library/src/test/org/apache/hivemind/lib/pipeline/Pipeline.xml
  
  Index: Pipeline.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/library/src/test/org/apache/hivemind/lib/pipeline/Pipeline.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Pipeline.xml	3 Aug 2004 14:02:16 -0000	1.1
  +++ Pipeline.xml	9 Aug 2004 13:24:49 -0000	1.2
  @@ -18,8 +18,8 @@
   <module id="hivemind.lib.test" version="1.0.0">
       <configuration-point id="StandardPipeline" schema-id="hivemind.lib.Pipeline"/>
       <contribution configuration-id="StandardPipeline">
  -        <filter service-id="MultiplyFilter"/>
  -        <terminator service-id="Terminator"/>
  +        <filter name="multiply" object="service:MultiplyFilter"/>
  +        <terminator object="service:Terminator"/>
       </contribution>
       <service-point id="MultiplyFilter" interface="org.apache.hivemind.lib.pipeline.StandardFilter">
           <create-instance class="org.apache.hivemind.lib.pipeline.StandardFilterImpl"/>
  @@ -39,7 +39,7 @@
       </service-point>
       <configuration-point id="ObjectPipeline" schema-id="hivemind.lib.Pipeline"/>
       <contribution configuration-id="ObjectPipeline">
  -        <filter-object name="MultiplyFilter" object="instance:org.apache.hivemind.lib.pipeline.StandardFilterImpl"/>
  -        <terminator-object object="instance:org.apache.hivemind.lib.pipeline.StandardServiceImpl"/>
  +        <filter name="multiply" object="instance:org.apache.hivemind.lib.pipeline.StandardFilterImpl"/>
  +        <terminator object="instance:org.apache.hivemind.lib.pipeline.StandardServiceImpl"/>
       </contribution>
   </module>
  
  
  
  1.10      +270 -214  jakarta-hivemind/library/src/descriptor/META-INF/hivemodule.xml
  
  Index: hivemodule.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/library/src/descriptor/META-INF/hivemodule.xml,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- hivemodule.xml	8 Aug 2004 13:16:26 -0000	1.9
  +++ hivemodule.xml	9 Aug 2004 13:24:49 -0000	1.10
  @@ -15,224 +15,280 @@
      limitations under the License.
   -->
   
  -<module id="hivemind.lib"
  -        version="1.0.0">Standard library for HiveMind, providing commonly used services.<service-point
  -        id="RemoteExceptionCoordinator"
  -            interface="org.apache.hivemind.lib.RemoteExceptionCoordinator">Used to coordinate propogation of remote exceptions (typically, to allow cached remote data to be discarded after a remote exception).<create-instance
  -            class="org.apache.hivemind.lib.impl.RemoteExceptionCoordinatorImpl" model="primitive"/>
  -    </service-point>
  -    <service-point id="NameLookup"
  -            interface="org.apache.hivemind.lib.NameLookup">A service which can perform name lookups of objects using JNDI.<invoke-factory service-id="hivemind.BuilderFactory">
  -            <construct class="org.apache.hivemind.lib.impl.NameLookupImpl">
  -                <set property="initialFactory" value="${java.naming.factory.initial}"/>
  -                <set property="URLPackages" value="${java.naming.factory.url.pkgs}"/>
  -                <set property="providerURL" value="${java.naming.provider.url}"/>
  -                <set-service property="coordinator" service-id="RemoteExceptionCoordinator"/>
  -                <event-listener service-id="RemoteExceptionCoordinator"/>
  -            </construct>
  -        </invoke-factory>
  -    </service-point>
  -    <contribution configuration-id="hivemind.FactoryDefaults">
  -        <default symbol="java.naming.factory.initial" value=""/>
  -        <default symbol="java.naming.factory.url.pkgs" value=""/>
  -        <default symbol="java.naming.provider.url" value=""/>
  -    </contribution>
  -    <service-point id="EJBProxyFactory" interface="org.apache.hivemind.ServiceImplementationFactory">
  +<module id="hivemind.lib" version="1.0.0">
  +  
  +  Standard library for HiveMind, providing commonly used services.
  +    
  +  <service-point id="RemoteExceptionCoordinator" interface="org.apache.hivemind.lib.RemoteExceptionCoordinator">
  +    
  +    Used to coordinate propogation of remote exceptions (typically, to allow cached remote data to be discarded after a remote exception).
         
  -      Core service implementation factory that constructs dynamic proxies to EJB stateless session beans. Factory parameters are used to specify the JNDI name of the EJB and the name of its home interface.
  +    <create-instance class="org.apache.hivemind.lib.impl.RemoteExceptionCoordinatorImpl" model="primitive"/>
  +  </service-point>
  +    
  +  <service-point id="NameLookup" interface="org.apache.hivemind.lib.NameLookup">
  +    
  +    A service which can perform name lookups of objects using JNDI.
  +    <invoke-factory service-id="hivemind.BuilderFactory">
  +      <construct class="org.apache.hivemind.lib.impl.NameLookupImpl">
  +        <set property="initialFactory" value="${java.naming.factory.initial}"/>
  +        <set property="URLPackages" value="${java.naming.factory.url.pkgs}"/>
  +        <set property="providerURL" value="${java.naming.provider.url}"/>
  +        <set-service property="coordinator" service-id="RemoteExceptionCoordinator"/>
  +        <event-listener service-id="RemoteExceptionCoordinator"/>
  +      </construct>
  +    </invoke-factory>
  +  </service-point>
  +  
  +  <contribution configuration-id="hivemind.FactoryDefaults">
  +    <default symbol="java.naming.factory.initial" value=""/>
  +    <default symbol="java.naming.factory.url.pkgs" value=""/>
  +    <default symbol="java.naming.provider.url" value=""/>
  +  </contribution>
  +  
  +  <service-point id="EJBProxyFactory" interface="org.apache.hivemind.ServiceImplementationFactory">
  +    
  +    Core service implementation factory that constructs dynamic proxies to EJB stateless session beans. Factory parameters are used to specify the JNDI name of the EJB and the name of its home interface.
  +    
  +    <parameters-schema>
  +      <element name="construct">
  +        
  +        Specifies parameters needed to construct the EJB Proxy.
           
  -          <parameters-schema>
  -            <element name="construct">
  -              
  -              Specifies parameters needed to construct the EJB Proxy.
  -                
  -              <attribute name="jndi-name" required="true">
  -                The JNDI Name of the EJB's home interface.
  -              </attribute>
  -              <attribute name="home-interface" required="true">
  -                Complete name of the EJB's home interface.  The service interface must be the remote interface.
  -              </attribute>
  -              <attribute name="name-lookup-service-id" translator="service">
  -                Defines an alternate name lookup service to use when resolving JNDI names to EJB home interfaces. 
  -                If not specified, the default service hivemind.NameLookup is used.
  -              </attribute>
  -              <conversion class="org.apache.hivemind.lib.impl.EJBProxyParameters">
  -                <map attribute="jndi-name" property="jndiName"/>
  -                <map attribute="home-interface" property="homeInterfaceClassName"/>
  -                <map attribute="name-lookup-service-id" property="nameLookup"/>
  -              </conversion>
  -            </element>
  -        </parameters-schema>
  +        <attribute name="jndi-name" required="true">
  +        The JNDI Name of the EJB's home interface.
  +        </attribute>
  +        <attribute name="home-interface" required="true">
  +        Complete name of the EJB's home interface.  The service interface must be the remote interface.
  +        </attribute>
  +        <attribute name="name-lookup-service-id" translator="service">
  +        Defines an alternate name lookup service to use when resolving JNDI names to EJB home interfaces. 
  +        If not specified, the default service hivemind.NameLookup is used.
  +        </attribute>
  +        <conversion class="org.apache.hivemind.lib.impl.EJBProxyParameters">
  +        <map attribute="jndi-name" property="jndiName"/>
  +        <map attribute="home-interface" property="homeInterfaceClassName"/>
  +        <map attribute="name-lookup-service-id" property="nameLookup"/>
  +        </conversion>
  +      </element>
  +    </parameters-schema>
  +    
  +    <invoke-factory service-id="hivemind.BuilderFactory">
  +      <construct class="org.apache.hivemind.lib.impl.EJBProxyFactory" service-id-property="pointId">
  +        <set-service property="nameLookup" service-id="NameLookup"/>
  +        <set-service property="classFactory" service-id="hivemind.ClassFactory"/>
  +        <set-service property="coordinator" service-id="RemoteExceptionCoordinator"/>
  +      </construct>
  +    </invoke-factory>
  +  </service-point>
  +  
  +  <service-point id="SpringLookupFactory" interface="org.apache.hivemind.ServiceImplementationFactory">
  +    
  +    A service implementation factory that obtains service implementations from a Spring BeanFactory.
  +      
  +    <parameters-schema>
  +      
  +      Parameters are used to specify the bean name and, optionally, a non-default BeanFactory source from which to obtain the Spring BeanFactory.
  +      
  +      <element name="lookup-bean">
  +        <attribute name="name" required="true">
  +          The name of the Spring bean to obtain.
  +        </attribute>
  +        <attribute name="source-service-id" translator="service">
  +          An optional service implementing the SpringBeanFactorySource interface.
  +        </attribute>
  +        <conversion class="org.apache.hivemind.lib.impl.SpringBeanParameter">
  +          <map attribute="source-service-id" property="beanFactorySource"/>
  +        </conversion>
  +      </element>
  +    </parameters-schema>
  +    <invoke-factory service-id="hivemind.BuilderFactory">
  +      <construct
  +        class="org.apache.hivemind.lib.impl.SpringLookupFactory" service-id-property="pointId">
  +        <set-service property="defaultBeanFactorySource" service-id="DefaultSpringBeanFactoryHolder"/>
  +      </construct>
  +    </invoke-factory>
  +  </service-point>
  +  
  +  <service-point id="DefaultSpringBeanFactoryHolder" interface="org.apache.hivemind.lib.SpringBeanFactoryHolder">
  +    
  +    Default source for Spring BeanFactories.  External code can inject a BeanFactory here, where 
  +    it is available to the SpringLookupFactory service.
  +      
  +    <create-instance class="org.apache.hivemind.lib.impl.SpringBeanFactoryHolderImpl"/>
  +  </service-point>
  +  
  +  <schema id="BeanFactoryContribution">
  +    Schema used with the hivemind.lib.BeanFactoryBuilder service, to define configuration that accepts definitions of classes 
  +    that may be vended by the generated BeanFactory.
  +      
  +    <element name="bean">
  +      Define one class of bean that may be vended.  Beans must have either a public constructor that takes no arguments, 
  +      or a public constructor that takes a single string argument (or both).
  +      <attribute name="name" required="true">A unique name for the bean.</attribute>
  +      <attribute name="class" required="true" translator="class">The bean class that will be instantiated by the factory.</attribute>
  +      <attribute name="cacheable" translator="boolean">Defines whether instances of the bean may be cached; the default is specified by the factory.</attribute>
  +      <conversion class="org.apache.hivemind.lib.factory.BeanFactoryContribution">
  +        <map attribute="class" property="beanClass"/>
  +      </conversion>
  +    </element>
  +  </schema>
  +  
  +  <service-point id="BeanFactoryBuilder" interface="org.apache.hivemind.ServiceImplementationFactory">
  +    
  +    A service which builds Object Factories.  Factories are driven by a configuration that conforms to the hivemind.lib.BeanFactoryContribution schema.<parameters-schema>
  +    <element name="factory">
  +        <attribute name="vend-class" translator="class">The class (or interface) vended by this factory. Contributions must be assignable to this type, or will be ignored. The default value is java.lang.Object.</attribute>
  +        <attribute name="default-cacheable" translator="boolean">The default value for cacheable for any contributions that are not more specific. The default value is true.</attribute>
  +        <attribute name="configuration-id" required="true" translator="configuration">The configuration containing the contributions that define what classes are actually vended. The configuration must use the hivemind.lib.BeanFactoryContribution schema.</attribute>
  +        <conversion class="org.apache.hivemind.lib.factory.BeanFactoryParameter">
  +          <map attribute="configuration-id" property="contributions"/>
  +        </conversion>
  +      </element>
  +    </parameters-schema>
  +    <invoke-factory service-id="hivemind.BuilderFactory">
  +      <construct class="org.apache.hivemind.lib.factory.BeanFactoryBuilder"/>
  +    </invoke-factory>
  +  </service-point>
  +  
  +  <service-point id="BeanFactoryObjectProvider" interface="org.apache.hivemind.service.ObjectProvider">
  +    
  +    Provides the bean: object provider prefix.
  +      
  +    <create-instance class="org.apache.hivemind.lib.factory.BeanFactoryObjectProvider"/>
  +  </service-point>
  +  
  +  <contribution configuration-id="hivemind.ObjectProviders">
  +    <provider prefix="bean" service-id="BeanFactoryObjectProvider"/>
  +  </contribution>
  +  
  +  <service-point id="DefaultImplementationBuilder" interface="org.apache.hivemind.lib.DefaultImplementationBuilder">
  +    
  +    A service which can create a default implementation of an arbitrary interface. The instance returned does nothing. 
  +    Returned instances are cached and re-used.
  +      
  +    <invoke-factory service-id="hivemind.BuilderFactory">
  +      <construct class="org.apache.hivemind.lib.impl.DefaultImplementationBuilderImpl">
  +        <set-service property="classFactory" service-id="hivemind.ClassFactory"/>
  +      </construct>
  +    </invoke-factory>
  +  </service-point>
  +  
  +  <service-point id="PlaceholderFactory" interface="org.apache.hivemind.ServiceImplementationFactory">
  +    
  +    A service implementation factory that builds a default implementation of a service. 
  +    The service implementation is a placeholder that does nothing.
  +      
  +    <invoke-factory service-id="hivemind.BuilderFactory">
  +      <construct class="org.apache.hivemind.lib.impl.PlaceholderFactory">
  +        <set-service property="builder" service-id="DefaultImplementationBuilder"/>
  +      </construct>
  +    </invoke-factory>
  +  </service-point>
  +  
  +  <service-point id="PipelineFactory" interface="org.apache.hivemind.ServiceImplementationFactory">
  +    
  +    A service implementation factory that assembles a pipeline of filters into a service.
  +      
  +    <parameters-schema>
  +      
  +      Provides the factory with the filter interface that complements the service interface, 
  +      the configuration data used to construct the pipeline and optionally, 
  +      a terminator service for the pipeline.
           
  -        <invoke-factory service-id="hivemind.BuilderFactory">
  -            <construct class="org.apache.hivemind.lib.impl.EJBProxyFactory" service-id-property="pointId">
  -                <set-service property="nameLookup" service-id="NameLookup"/>
  -                <set-service property="classFactory" service-id="hivemind.ClassFactory"/>
  -                <set-service property="coordinator" service-id="RemoteExceptionCoordinator"/>
  -            </construct>
  -        </invoke-factory>
  -    </service-point>
  -    <service-point id="SpringLookupFactory"
  -                interface="org.apache.hivemind.ServiceImplementationFactory">A service implementation factory that obtains service implementations from a Spring BeanFactory.<parameters-schema>Parameters are used to specify the bean name and, optionally, a non-default BeanFactory source from which to obtain the Spring BeanFactory.<element name="lookup-bean">
  -                <attribute name="name" required="true">The name of the Spring bean to obtain.</attribute>
  -                <attribute name="source-service-id" translator="service">An optional service implementing the SpringBeanFactorySource interface.</attribute>
  -                <conversion class="org.apache.hivemind.lib.impl.SpringBeanParameter">
  -                    <map attribute="source-service-id" property="beanFactorySource"/>
  -                </conversion>
  -            </element>
  -        </parameters-schema>
  -        <invoke-factory service-id="hivemind.BuilderFactory">
  -            <construct
  -                class="org.apache.hivemind.lib.impl.SpringLookupFactory" service-id-property="pointId">
  -                <set-service property="defaultBeanFactorySource" service-id="DefaultSpringBeanFactoryHolder"/>
  -            </construct>
  -        </invoke-factory>
  -    </service-point>
  -    <service-point id="DefaultSpringBeanFactoryHolder"
  -            interface="org.apache.hivemind.lib.SpringBeanFactoryHolder">Default source for Spring BeanFactories.  External code can inject a BeanFactory here, where it is available to the SpringLookupFactory service.<create-instance class="org.apache.hivemind.lib.impl.SpringBeanFactoryHolderImpl"/>
  -    </service-point>
  -    <schema
  -            id="BeanFactoryContribution">Schema used with the hivemind.lib.BeanFactoryBuilder service, to define configuration that accepts definitions of classes that may be vended by the generated BeanFactory.<element
  -                name="bean">Define one class of bean that may be vended.  Beans must have either a public constructor that takes no arguments, or a public constructor that takes a single string argument (or both). <attribute
  -                name="name" required="true">A unique name for the bean.</attribute>
  -            <attribute name="class" required="true" translator="class">The bean class that will be instantiated by the factory.</attribute>
  -            <attribute name="cacheable" translator="boolean">Defines whether instances of the bean may be cached; the default is specified by the factory.</attribute>
  -            <conversion class="org.apache.hivemind.lib.factory.BeanFactoryContribution">
  -                <map attribute="class" property="beanClass"/>
  -            </conversion>
  -        </element>
  -    </schema>
  -    <service-point id="BeanFactoryBuilder" interface="org.apache.hivemind.ServiceImplementationFactory">A service which builds Object Factories.  Factories are driven by a configuration that conforms to the hivemind.lib.BeanFactoryContribution schema.<parameters-schema>
  -            <element name="factory">
  -                <attribute name="vend-class" translator="class">The class (or interface) vended by this factory. Contributions must be assignable to this type, or will be ignored. The default value is java.lang.Object.</attribute>
  -                <attribute name="default-cacheable" translator="boolean">The default value for cacheable for any contributions that are not more specific. The default value is true.</attribute>
  -                <attribute name="configuration-id" required="true" translator="configuration">The configuration containing the contributions that define what classes are actually vended. The configuration must use the hivemind.lib.BeanFactoryContribution schema.</attribute>
  -                <conversion class="org.apache.hivemind.lib.factory.BeanFactoryParameter">
  -                    <map attribute="configuration-id" property="contributions"/>
  -                </conversion>
  -            </element>
  -        </parameters-schema>
  -        <invoke-factory service-id="hivemind.BuilderFactory">
  -            <construct class="org.apache.hivemind.lib.factory.BeanFactoryBuilder"/>
  -        </invoke-factory>
  -    </service-point>
  -    <service-point id="BeanFactoryObjectProvider"
  -            interface="org.apache.hivemind.service.ObjectProvider">Provides the bean: object provider prefix.<create-instance class="org.apache.hivemind.lib.factory.BeanFactoryObjectProvider"/>
  -    </service-point>
  -    <contribution configuration-id="hivemind.ObjectProviders">
  -        <provider prefix="bean" service-id="BeanFactoryObjectProvider"/>
  -    </contribution>
  -    <service-point id="DefaultImplementationBuilder"
  -            interface="org.apache.hivemind.lib.DefaultImplementationBuilder">A service which can create a default implementation of an arbitrary interface. The instance returned does nothing. Returned instances are cached and re-used.<invoke-factory service-id="hivemind.BuilderFactory">
  -            <construct class="org.apache.hivemind.lib.impl.DefaultImplementationBuilderImpl">
  -                <set-service property="classFactory" service-id="hivemind.ClassFactory"/>
  -            </construct>
  -        </invoke-factory>
  -    </service-point>
  -    <service-point id="PlaceholderFactory"
  -            interface="org.apache.hivemind.ServiceImplementationFactory">A service implementation factory that builds a default implementation of a service. The service implementation is a placeholder that does nothing.<invoke-factory service-id="hivemind.BuilderFactory">
  -            <construct class="org.apache.hivemind.lib.impl.PlaceholderFactory">
  -                <set-service property="builder" service-id="DefaultImplementationBuilder"/>
  -            </construct>
  -        </invoke-factory>
  -    </service-point>
  -    <service-point id="PipelineFactory"
  -                interface="org.apache.hivemind.ServiceImplementationFactory">A service implementation factory that assembles a pipeline of filters into a service.<parameters-schema>Provides the factory with the filter interface that complements the service interface, the configuration data used to construct the pipeline and optionally, a terminator service for the pipeline.<element name="create-pipeline">
  -                <attribute name="filter-interface" required="true" translator="class">The filter interface should have the same methods as the service interface, with an additional parameter for each method with the same type as the service interface.</attribute>
  -                <attribute name="configuration-id" required="true" translator="configuration">A configuration used to identify the filters (and optionally, the terminator) for the pipeline.  The configuration should use the Pipeline schema.</attribute>
  -                <attribute name="terminator-service-id" translator="service">Optional terminator service.  May also be provided in the configuration. If in neither, a placeholder is provided.</attribute>
  -                <conversion class="org.apache.hivemind.lib.pipeline.PipelineParameters">
  -                    <map attribute="configuration-id" property="pipelineConfiguration"/>
  -                    <map attribute="terminator-service-id" property="terminator"/>
  -                </conversion>
  -            </element>
  -        </parameters-schema>
  -        <invoke-factory service-id="hivemind.BuilderFactory">
  -            <construct class="org.apache.hivemind.lib.pipeline.PipelineFactory">
  -                <set-service property="classFactory" service-id="hivemind.ClassFactory"/>
  -                <set-service property="defaultImplementationBuilder" service-id="DefaultImplementationBuilder"/>
  -            </construct>
  -        </invoke-factory>
  -    </service-point>
  -    <schema
  -            id="Pipeline">Used with the PipelineFactory to define the filters and optional terminator for a pipeline.<element
  -                name="filter">Defines a filter in terms of an existing service.<attribute
  -                name="service-id" required="true" translator="service">The id of a service implementing the pipeline's filter interface.</attribute>
  -            <attribute name="before" translator="id-list">A list of ids of other contributed filters that should precede this filter in the pipeline.</attribute>
  -            <attribute name="after" translator="id-list">A list of ids of other contributed filters that should follow this filter in the pipeline.</attribute>
  -            <rules>
  -                <create-object class="org.apache.hivemind.lib.pipeline.FilterContribution"/>
  -                <read-attribute attribute="before" property="before"/>
  -                <read-attribute attribute="after" property="after"/>
  -                <read-attribute attribute="service-id" property="filter"/>
  -                <read-attribute attribute="service-id" property="name" translator="qualified-id"/>
  -                <invoke-parent method="addElement"/>
  -            </rules>
  -        </element>
  -        <element
  -                name="filter-object">Defines a filter in terms of an object.<attribute
  -                name="name" required="true" translator="qualified-id">A name for the filter that is used when setting the order of the filters.</attribute>
  -            <attribute name="object" required="true" translator="object">The object to act as a filter.</attribute>
  -            <attribute name="before" translator="id-list">A list of ids of other contributed filters that should precede this filter in the pipeline.</attribute>
  -            <attribute name="after" translator="id-list">A list of ids of other contributed filters that should follow this filter in the pipeline.</attribute>
  -            <conversion class="org.apache.hivemind.lib.pipeline.FilterContribution">
  -                <map attribute="object" property="filter"/>
  -            </conversion>
  -        </element>
  -        <element
  -                name="terminator">A service, implementing the pipeline's service interface, that is invoked by the final filter in the pipeline.<attribute
  -                name="service-id" required="true" translator="service"/>
  -            <conversion class="org.apache.hivemind.lib.pipeline.TerminatorContribution">
  -                <map attribute="service-id" property="terminator"/>
  -            </conversion>
  -        </element>
  -        <element
  -                name="terminator-object">An object, implementing the pipeline's service interface, that is invoked by the final filter in the pipeline.<attribute
  -                name="object" required="true" translator="object"/>
  -            <conversion class="org.apache.hivemind.lib.pipeline.TerminatorContribution">
  -                <map attribute="object" property="terminator"/>
  -            </conversion>
  -        </element>
  -    </schema>
  -    
  -    <service-point id="ServicePropertyFactory" interface="org.apache.hivemind.ServiceImplementationFactory">
  -      
  -      Creates a service that dynamically (i.e., on each service method invocation) obtains a property
  -      from another service and forwards the invocation to the property.  The property must be
  -      the same type (or assignable to) the constructed service's interface. Typically,
  -      the targeted service uses a threaded (or similar) service model, thus requiring dynamic,
  -      rather than static, access.
  -      
  -      <invoke-factory service-id="hivemind.BuilderFactory">
  -        <construct class="org.apache.hivemind.lib.impl.ServicePropertyFactory">
  -          
  -          <set-service property="classFactory" service-id="hivemind.ClassFactory"/>
  -          
  -        </construct>
  +      <element name="create-pipeline">
  +        <attribute name="filter-interface" required="true" translator="class">
  +          The filter interface should have the same methods as the service interface, 
  +          with an additional parameter for each method with the same type as the service interface.
  +        </attribute>
  +        <attribute name="configuration-id" required="true" translator="configuration">
  +          A configuration used to identify the filters (and optionally, the terminator) for the pipeline.  
  +          The configuration should use the Pipeline schema.
  +        </attribute>
  +        <attribute name="terminator" translator="object">
  +          Optional terminator.  May also be provided in the configuration. 
  +          If in neither, a placeholder is provided.
  +        </attribute>
  +        <conversion class="org.apache.hivemind.lib.pipeline.PipelineParameters">
  +          <map attribute="configuration-id" property="pipelineConfiguration"/>
  +        </conversion>
  +      </element>
  +    </parameters-schema>
  +    
  +    <invoke-factory service-id="hivemind.BuilderFactory">
  +      <construct class="org.apache.hivemind.lib.pipeline.PipelineFactory">
  +        <set-service property="classFactory" service-id="hivemind.ClassFactory"/>
  +        <set-service property="defaultImplementationBuilder" service-id="DefaultImplementationBuilder"/>
  +      </construct>
  +    </invoke-factory>
  +  </service-point>
  +  
  +  <schema id="Pipeline">
  +    Used with the PipelineFactory to define the filters and optional terminator for a pipeline.
  +    
  +    <element name="filter">
  +      Defines a filter in terms of an object.
           
  -      </invoke-factory>
  +      <attribute name="name" required="true" translator="qualified-id">
  +        A name for the filter that is used when setting the order of the filters.
  +      </attribute>
  +      <attribute name="object" required="true" translator="object">The object to act as a filter.</attribute>
  +      <attribute name="before" translator="id-list">A list of ids of other contributed filters that should precede this filter in the pipeline.</attribute>
  +      <attribute name="after" translator="id-list">A list of ids of other contributed filters that should follow this filter in the pipeline.</attribute>
  +      <conversion class="org.apache.hivemind.lib.pipeline.FilterContribution">
  +        <map attribute="object" property="filter"/>
  +      </conversion>
  +    </element>
  +   
  +    <element name="terminator">
  +      An object, implementing the pipeline's service interface, 
  +      that is invoked by the final filter in the pipeline.
  +      
  +      <attribute name="object" required="true" translator="object"/>
  +      <conversion class="org.apache.hivemind.lib.pipeline.TerminatorContribution">
  +        <map attribute="object" property="terminator"/>
  +      </conversion>
  +    </element>
  +  </schema>
  +  
  +  <service-point id="ServicePropertyFactory" interface="org.apache.hivemind.ServiceImplementationFactory">
  +    
  +    Creates a service that dynamically (i.e., on each service method invocation) obtains a property
  +    from another service and forwards the invocation to the property.  The property must be
  +    the same type (or assignable to) the constructed service's interface. Typically,
  +    the targeted service uses a threaded (or similar) service model, thus requiring dynamic,
  +    rather than static, access.
  +    
  +    <invoke-factory service-id="hivemind.BuilderFactory">
  +    <construct class="org.apache.hivemind.lib.impl.ServicePropertyFactory">
         
  -      <parameters-schema>
  -        <element name="construct">
  -          
  -          <attribute name="service-id" required="true" translator="service">
  -            
  -            The service which contains the property.
  -            
  -          </attribute>
  -          
  -          <attribute name="property" required="true">
  -            
  -            The name of the property of the target service to expose.
  -          </attribute>
  -          
  -          <conversion class="org.apache.hivemind.lib.impl.ServicePropertyFactoryParameter">
  -            <map attribute="service-id" property="service"/>
  -            <map attribute="property" property="propertyName"/>
  -          </conversion>
  -          
  -        </element>
  -      </parameters-schema>
  +      <set-service property="classFactory" service-id="hivemind.ClassFactory"/>
         
  -    </service-point>
  +    </construct>
  +    
  +    </invoke-factory>
  +    
  +    <parameters-schema>
  +    <element name="construct">
  +      
  +      <attribute name="service-id" required="true" translator="service">
  +      
  +      The service which contains the property.
  +      
  +      </attribute>
  +      
  +      <attribute name="property" required="true">
  +      
  +      The name of the property of the target service to expose.
  +      </attribute>
  +      
  +      <conversion class="org.apache.hivemind.lib.impl.ServicePropertyFactoryParameter">
  +      <map attribute="service-id" property="service"/>
  +      <map attribute="property" property="propertyName"/>
  +      </conversion>
  +      
  +    </element>
  +    </parameters-schema>
  +    
  +  </service-point>
   </module>
  
  
  

---------------------------------------------------------------------
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