hlship      2004/08/09 07:53:47

  Modified:    framework/src/test/hivemind/test/services EventRegister.xml
                        BuilderAccess.xml ComplexModule.xml
                        SetClassResolver.xml SmartFacet.xml
                        InitializeMethodFailure.xml
                        ConstructClassResolver.xml
                        InterceptorParameters.xml ConstructErrorHandler.xml
                        SetObject.xml Tracker.xml AutowireService.xml
                        ServiceTranslator.xml BuilderAccessFailure.xml
                        ConstructorFactory.xml SetErrorHandler.xml
                        Shutdown.xml
               examples/src/documentation/content/xdocs/hivemind-examples
                        panorama.xml calc.xml
               src/documentation/content/xdocs interceptors.xml
                        descriptor.xml links.ent bootstrap.xml override.xml
               library/src/test/hivemind/test/lib EJBProxy.xml
               framework/src/test/hivemind/test/rules
                        ConfigurationTranslator.xml
               framework/src/java/org/apache/hivemind/parse
                        DescriptorParser.properties DescriptorParser.java
               framework/src/descriptor/META-INF hivemodule.xml
               .        status.xml
               examples/src/descriptor/META-INF panorama.startup.xml
                        examples.xml
               library/src/descriptor/META-INF hivemodule.xml
  Log:
  Make hivemind.BuilderFactory the default for <invoke-factory>.
  
  Revision  Changes    Path
  1.3       +1 -1      
jakarta-hivemind/framework/src/test/hivemind/test/services/EventRegister.xml
  
  Index: EventRegister.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/EventRegister.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- EventRegister.xml 25 Jun 2004 20:19:57 -0000      1.2
  +++ EventRegister.xml 9 Aug 2004 14:53:43 -0000       1.3
  @@ -23,7 +23,7 @@
     </service-point>
   
     <service-point id="ZapEventConsumer" 
interface="hivemind.test.services.ZapEventConsumer">
  -     <invoke-factory service-id="hivemind.BuilderFactory">
  +     <invoke-factory>
                <construct 
class="hivemind.test.services.impl.ZapEventConsumerImpl">
                  <event-listener service-id="ZapEventProducer"/>       
                </construct>    
  
  
  
  1.5       +1 -1      
jakarta-hivemind/framework/src/test/hivemind/test/services/BuilderAccess.xml
  
  Index: BuilderAccess.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/BuilderAccess.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- BuilderAccess.xml 17 Jun 2004 15:16:10 -0000      1.4
  +++ BuilderAccess.xml 9 Aug 2004 14:53:43 -0000       1.5
  @@ -17,7 +17,7 @@
   <module id="hivemind.test.services" version="1.0.0">
   
     <service-point id="BuilderAccess" 
interface="hivemind.test.services.BuilderAccess">
  -     <invoke-factory service-id="hivemind.BuilderFactory">
  +     <invoke-factory>
                <construct class="hivemind.test.services.impl.BuilderAccessImpl"
                        log-property="log"
                        messages-property="messages"
  
  
  
  1.6       +1 -1      
jakarta-hivemind/framework/src/test/hivemind/test/services/ComplexModule.xml
  
  Index: ComplexModule.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/ComplexModule.xml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ComplexModule.xml 17 Jun 2004 15:16:10 -0000      1.5
  +++ ComplexModule.xml 9 Aug 2004 14:53:43 -0000       1.6
  @@ -23,7 +23,7 @@
        </service-point>
        
        <service-point id="CountFactory" 
interface="org.apache.hivemind.ServiceInterceptorFactory">
  -             <invoke-factory service-id="hivemind.BuilderFactory">
  +             <invoke-factory>
                        <construct
           class="hivemind.test.services.impl.CountFactory"
           service-id-property="serviceId">
  
  
  
  1.2       +1 -1      
jakarta-hivemind/framework/src/test/hivemind/test/services/SetClassResolver.xml
  
  Index: SetClassResolver.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/SetClassResolver.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SetClassResolver.xml      3 Aug 2004 14:02:11 -0000       1.1
  +++ SetClassResolver.xml      9 Aug 2004 14:53:43 -0000       1.2
  @@ -17,7 +17,7 @@
   
   <module id="hivemind.test.services" version="1.0.0">
       <service-point id="SetClassResolver" 
interface="hivemind.test.services.ClassResolverHolder">
  -        <invoke-factory service-id="hivemind.BuilderFactory">
  +        <invoke-factory>
               <construct
                   class="hivemind.test.services.impl.ClassResolverHolderImpl" 
class-resolver-property="classResolver"/>
           </invoke-factory>
  
  
  
  1.2       +1 -1      
jakarta-hivemind/framework/src/test/hivemind/test/services/SmartFacet.xml
  
  Index: SmartFacet.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/SmartFacet.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SmartFacet.xml    29 Feb 2004 20:57:09 -0000      1.1
  +++ SmartFacet.xml    9 Aug 2004 14:53:43 -0000       1.2
  @@ -2,7 +2,7 @@
   <module id="hivemind.test.services" version="1.0.0">
        
        <service-point id="Simple" 
interface="hivemind.test.services.SimpleService">
  -             <invoke-factory service-id="hivemind.BuilderFactory">
  +             <invoke-factory>
                        <construct 
class="hivemind.test.services.impl.SimpleLiar">
                                        <set property="fixedResult" 
value="99"/>                                
                        </construct>    
  
  
  
  1.2       +1 -1      
jakarta-hivemind/framework/src/test/hivemind/test/services/InitializeMethodFailure.xml
  
  Index: InitializeMethodFailure.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/InitializeMethodFailure.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- InitializeMethodFailure.xml       3 Aug 2004 14:02:11 -0000       1.1
  +++ InitializeMethodFailure.xml       9 Aug 2004 14:53:43 -0000       1.2
  @@ -17,7 +17,7 @@
   
   <module id="hivemind.test.services" version="1.0.0">
       <service-point id="Runnable" interface="java.lang.Runnable">
  -        <invoke-factory service-id="hivemind.BuilderFactory">
  +        <invoke-factory>
               <construct class="hivemind.test.services.impl.MockRunnable" 
initialize-method="doesNotExist"/>
           </invoke-factory>
       </service-point>
  
  
  
  1.2       +1 -1      
jakarta-hivemind/framework/src/test/hivemind/test/services/ConstructClassResolver.xml
  
  Index: ConstructClassResolver.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/ConstructClassResolver.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ConstructClassResolver.xml        3 Aug 2004 14:02:11 -0000       1.1
  +++ ConstructClassResolver.xml        9 Aug 2004 14:53:44 -0000       1.2
  @@ -17,7 +17,7 @@
   
   <module id="hivemind.test.services" version="1.0.0">
       <service-point id="ConstructClassResolver" 
interface="hivemind.test.services.ClassResolverHolder">
  -        <invoke-factory service-id="hivemind.BuilderFactory">
  +        <invoke-factory>
               <construct 
class="hivemind.test.services.impl.ClassResolverHolderImpl">
                   <class-resolver/>
               </construct>
  
  
  
  1.6       +1 -1      
jakarta-hivemind/framework/src/test/hivemind/test/services/InterceptorParameters.xml
  
  Index: InterceptorParameters.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/InterceptorParameters.xml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- InterceptorParameters.xml 25 Jun 2004 20:19:57 -0000      1.5
  +++ InterceptorParameters.xml 9 Aug 2004 14:53:44 -0000       1.6
  @@ -31,7 +31,7 @@
       
     <service-point id="FilterLoggingInterceptor" 
interface="org.apache.hivemind.ServiceInterceptorFactory"
                parameters-schema-id="FilterParameters">
  -    <invoke-factory service-id="hivemind.BuilderFactory">
  +    <invoke-factory>
        <construct class="hivemind.test.services.impl.FilterLoggingInterceptor">
          <set-service property="classFactory" 
service-id="hivemind.ClassFactory"/>     
        </construct>    
  
  
  
  1.2       +1 -1      
jakarta-hivemind/framework/src/test/hivemind/test/services/ConstructErrorHandler.xml
  
  Index: ConstructErrorHandler.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/ConstructErrorHandler.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ConstructErrorHandler.xml 3 Aug 2004 14:02:11 -0000       1.1
  +++ ConstructErrorHandler.xml 9 Aug 2004 14:53:44 -0000       1.2
  @@ -17,7 +17,7 @@
   
   <module id="hivemind.test.services" version="1.0.0">
       <service-point id="ConstructErrorHandler" 
interface="hivemind.test.services.ErrorHandlerHolder">
  -        <invoke-factory service-id="hivemind.BuilderFactory">
  +        <invoke-factory>
               <construct 
class="hivemind.test.services.impl.ErrorHandlerHolderImpl">
                   <error-handler/>
               </construct>
  
  
  
  1.2       +1 -1      
jakarta-hivemind/framework/src/test/hivemind/test/services/SetObject.xml
  
  Index: SetObject.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/SetObject.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SetObject.xml     3 Aug 2004 14:02:12 -0000       1.1
  +++ SetObject.xml     9 Aug 2004 14:53:44 -0000       1.2
  @@ -17,7 +17,7 @@
   
   <module id="hivemind.test.services" version="1.0.0">
       <service-point id="SestObject" 
interface="hivemind.test.services.SetObjectFixture">
  -        <invoke-factory service-id="hivemind.BuilderFactory">
  +        <invoke-factory>
               <construct 
class="hivemind.test.services.impl.SetObjectFixtureImpl">
                   <set-object property="classFactory1" 
value="service:hivemind.ClassFactory"/>
                   <set-object property="classFactory2" 
value="service:hivemind.ClassFactory"/>
  
  
  
  1.5       +3 -3      
jakarta-hivemind/framework/src/test/hivemind/test/services/Tracker.xml
  
  Index: Tracker.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/Tracker.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Tracker.xml       25 Jun 2004 20:19:57 -0000      1.4
  +++ Tracker.xml       9 Aug 2004 14:53:44 -0000       1.5
  @@ -17,7 +17,7 @@
   <module id="hivemind.test.services.tracker" version="0.0.1">
        <service-point id="Fred"
                interface="org.apache.hivemind.ServiceInterceptorFactory">
  -             <invoke-factory service-id="hivemind.BuilderFactory">
  +             <invoke-factory>
                        <construct 
class="hivemind.test.services.impl.TrackerFactory">
                                <set property="name" value="Fred"/>
                        </construct>
  @@ -25,7 +25,7 @@
        </service-point>
        <service-point id="Barney"
                interface="org.apache.hivemind.ServiceInterceptorFactory">
  -             <invoke-factory service-id="hivemind.BuilderFactory">
  +             <invoke-factory>
                        <construct 
class="hivemind.test.services.impl.TrackerFactory">
                                <set property="name" value="Barney"/>
                        </construct>
  @@ -33,7 +33,7 @@
        </service-point>
        <service-point id="Wilma"
                interface="org.apache.hivemind.ServiceInterceptorFactory">
  -             <invoke-factory service-id="hivemind.BuilderFactory">
  +             <invoke-factory>
                        <construct 
class="hivemind.test.services.impl.TrackerFactory">
                                <set property="name" value="Wilma"/>
                        </construct>
  
  
  
  1.2       +1 -1      
jakarta-hivemind/framework/src/test/hivemind/test/services/AutowireService.xml
  
  Index: AutowireService.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/AutowireService.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AutowireService.xml       3 Aug 2004 14:02:12 -0000       1.1
  +++ AutowireService.xml       9 Aug 2004 14:53:44 -0000       1.2
  @@ -17,7 +17,7 @@
   
   <module id="hivemind.test.services" version="1.0.0">
       <service-point id="AutowireService" 
interface="hivemind.test.services.SetObjectFixture">
  -        <invoke-factory service-id="hivemind.BuilderFactory">
  +        <invoke-factory>
               <construct 
class="hivemind.test.services.impl.SetObjectFixtureImpl"/>
           </invoke-factory>
       </service-point>
  
  
  
  1.5       +1 -1      
jakarta-hivemind/framework/src/test/hivemind/test/services/ServiceTranslator.xml
  
  Index: ServiceTranslator.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/ServiceTranslator.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ServiceTranslator.xml     25 Jun 2004 20:19:57 -0000      1.4
  +++ ServiceTranslator.xml     9 Aug 2004 14:53:44 -0000       1.5
  @@ -23,7 +23,7 @@
        </service-point>
        
        <service-point id="Constructed" 
interface="hivemind.test.services.Constructed">
  -             <invoke-factory service-id="hivemind.BuilderFactory">           
        
  +             <invoke-factory>                        
                        <construct 
class="hivemind.test.services.impl.ConstructedImpl">
                                <set-service property="threadLocal" 
service-id="hivemind.ThreadLocalStorage"/>
                                <set-service property="simpleService" 
service-id="Simple"/>     
  
  
  
  1.5       +1 -1      
jakarta-hivemind/framework/src/test/hivemind/test/services/BuilderAccessFailure.xml
  
  Index: BuilderAccessFailure.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/BuilderAccessFailure.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- BuilderAccessFailure.xml  17 Jun 2004 15:16:10 -0000      1.4
  +++ BuilderAccessFailure.xml  9 Aug 2004 14:53:44 -0000       1.5
  @@ -17,7 +17,7 @@
   <module id="hivemind.test.services" version="1.0.0">
   
     <service-point id="BuilderAccessFailure" 
interface="hivemind.test.services.BuilderAccess">
  -     <invoke-factory service-id="hivemind.BuilderFactory">
  +     <invoke-factory>
                <construct class="hivemind.test.services.impl.BuilderAccessImpl"
                        log-property="log"
                        messages-property="messages"
  
  
  
  1.2       +7 -7      
jakarta-hivemind/framework/src/test/hivemind/test/services/ConstructorFactory.xml
  
  Index: ConstructorFactory.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/ConstructorFactory.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ConstructorFactory.xml    3 Oct 2003 20:00:16 -0000       1.1
  +++ ConstructorFactory.xml    9 Aug 2004 14:53:44 -0000       1.2
  @@ -2,7 +2,7 @@
   <module id="hivemind.test.services" version="1.0.0">
   
     <service-point id="DefaultConstructor" 
interface="hivemind.test.services.ConstructorAccess">
  -     <invoke-factory service-id="hivemind.BuilderFactory">
  +     <invoke-factory>
                <construct 
class="hivemind.test.services.impl.ConstructorAccessImpl">
                        <set property="expectedConstructorMessage" value="()"/>
                </construct>
  @@ -10,7 +10,7 @@
     </service-point>
   
     <service-point id="LongConstructor" 
interface="hivemind.test.services.ConstructorAccess">
  -     <invoke-factory service-id="hivemind.BuilderFactory">
  +     <invoke-factory>
                <construct 
class="hivemind.test.services.impl.ConstructorAccessImpl">
                        <long>42</long>
                        <set property="expectedConstructorMessage" 
value="(long)"/>
  @@ -19,7 +19,7 @@
     </service-point>
   
     <service-point id="ServiceConstructor" 
interface="hivemind.test.services.ConstructorAccess">
  -     <invoke-factory service-id="hivemind.BuilderFactory">
  +     <invoke-factory>
                <construct 
class="hivemind.test.services.impl.ConstructorAccessImpl">
                        <service>DefaultConstructor</service>
                        <set property="expectedConstructorMessage" 
value="(ConstructorAccess)"/>
  @@ -28,7 +28,7 @@
     </service-point>
   
     <service-point id="MultiConstructor" 
interface="hivemind.test.services.ConstructorAccess">
  -     <invoke-factory service-id="hivemind.BuilderFactory">
  +     <invoke-factory>
                <construct 
class="hivemind.test.services.impl.ConstructorAccessImpl">
                        <service>DefaultConstructor</service>
                        <service-id/>
  @@ -38,7 +38,7 @@
     </service-point>
   
     <service-point id="ConfigurationConstructor" 
interface="hivemind.test.services.ConstructorAccess">
  -     <invoke-factory service-id="hivemind.BuilderFactory">
  +     <invoke-factory>
                <construct 
class="hivemind.test.services.impl.ConstructorAccessImpl">
                        <configuration>DummyConfiguration</configuration>
                        <set property="expectedConstructorMessage" 
value="(List)"/>
  @@ -47,7 +47,7 @@
     </service-point>
   
     <service-point id="ConfigurationConstructor" 
interface="hivemind.test.services.ConstructorAccess">
  -     <invoke-factory service-id="hivemind.BuilderFactory">
  +     <invoke-factory>
                <construct 
class="hivemind.test.services.impl.ConstructorAccessImpl">
                        <configuration>DummyConfiguration</configuration>
                        <set property="expectedConstructorMessage" 
value="(List)"/>
  @@ -56,7 +56,7 @@
     </service-point>
   
     <service-point id="LogAndMessagesConstructor" 
interface="hivemind.test.services.ConstructorAccess">
  -     <invoke-factory service-id="hivemind.BuilderFactory">
  +     <invoke-factory>
                <construct 
class="hivemind.test.services.impl.ConstructorAccessImpl">
                        <log/>
                        <messages/>
  
  
  
  1.2       +1 -1      
jakarta-hivemind/framework/src/test/hivemind/test/services/SetErrorHandler.xml
  
  Index: SetErrorHandler.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/SetErrorHandler.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SetErrorHandler.xml       3 Aug 2004 14:02:11 -0000       1.1
  +++ SetErrorHandler.xml       9 Aug 2004 14:53:44 -0000       1.2
  @@ -17,7 +17,7 @@
   
   <module id="hivemind.test.services" version="1.0.0">
       <service-point id="SetErrorHandler" 
interface="hivemind.test.services.ErrorHandlerHolder">
  -        <invoke-factory service-id="hivemind.BuilderFactory">
  +        <invoke-factory>
               <construct
                   class="hivemind.test.services.impl.ErrorHandlerHolderImpl" 
error-handler-property="errorHandler"/>
           </invoke-factory>
  
  
  
  1.6       +1 -1      
jakarta-hivemind/framework/src/test/hivemind/test/services/Shutdown.xml
  
  Index: Shutdown.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/Shutdown.xml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Shutdown.xml      25 Jun 2004 20:19:57 -0000      1.5
  +++ Shutdown.xml      9 Aug 2004 14:53:44 -0000       1.6
  @@ -27,7 +27,7 @@
        </service-point>
        
        <service-point id="Singleton" interface="java.lang.Runnable">
  -             <invoke-factory service-id="hivemind.BuilderFactory">
  +             <invoke-factory>
                  <construct class="hivemind.test.services.impl.RunnableImpl" 
log-property="log">
                        <set property="type" value="Singleton"/>
                        <event-listener 
service-id="hivemind.ShutdownCoordinator"/>
  
  
  
  1.5       +1 -1      
jakarta-hivemind/examples/src/documentation/content/xdocs/hivemind-examples/panorama.xml
  
  Index: panorama.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/examples/src/documentation/content/xdocs/hivemind-examples/panorama.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- panorama.xml      9 Aug 2004 01:10:37 -0000       1.4
  +++ panorama.xml      9 Aug 2004 14:53:45 -0000       1.5
  @@ -206,7 +206,7 @@
   <configuration-point id="Startup" schema-id="Tasks"/>
   
   <service-point id="Startup" interface="java.lang.Runnable">
  -  <invoke-factory service-id="hivemind.BuilderFactory">
  +  <invoke-factory>
       <construct class="com.panorama.startup.impl.TaskExecutor">
         <set-configuration property="tasks" configuration-id="Startup"/>
       </construct>
  
  
  
  1.4       +1 -1      
jakarta-hivemind/examples/src/documentation/content/xdocs/hivemind-examples/calc.xml
  
  Index: calc.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/examples/src/documentation/content/xdocs/hivemind-examples/calc.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- calc.xml  9 Aug 2004 01:10:37 -0000       1.3
  +++ calc.xml  9 Aug 2004 14:53:45 -0000       1.4
  @@ -118,7 +118,7 @@
       <interceptor service-id="hivemind.LoggingInterceptor"/>
     </service-point>
     <service-point id="Calculator" 
interface="org.apache.hivemind.examples.Calculator">
  -    <invoke-factory service-id="hivemind.BuilderFactory">
  +    <invoke-factory>
         <construct class="org.apache.hivemind.examples.impl.CalculatorImpl"/>
       </invoke-factory>
       <interceptor service-id="hivemind.LoggingInterceptor"/>
  
  
  
  1.6       +1 -1      
jakarta-hivemind/src/documentation/content/xdocs/interceptors.xml
  
  Index: interceptors.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/src/documentation/content/xdocs/interceptors.xml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- interceptors.xml  6 Aug 2004 14:16:41 -0000       1.5
  +++ interceptors.xml  9 Aug 2004 14:53:46 -0000       1.6
  @@ -140,7 +140,7 @@
                                        deployment descriptor:</p>
                                <source><![CDATA[
   <service-point id="NullInterceptor" 
interface="org.apache.hivemind.ServiceInterceptorFactory">
  -  <invoke-factory service-id="hivemind.BuilderFactory">
  +  <invoke-factory>
       <construct class="com.example.impl.NullInterceptor"/>
     </invoke-factory>
   </service-point>]]></source>
  
  
  
  1.7       +14 -4     
jakarta-hivemind/src/documentation/content/xdocs/descriptor.xml
  
  Index: descriptor.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/src/documentation/content/xdocs/descriptor.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- descriptor.xml    8 Aug 2004 13:16:26 -0000       1.6
  +++ descriptor.xml    9 Aug 2004 14:53:46 -0000       1.7
  @@ -332,9 +332,10 @@
                                <tr>
                                        <td>service-id</td>
                                        <td>string</td>
  -                                     <td>yes</td>
  +                                     <td>no</td>
                                        <td>The id of the factory service. This 
may be a simple id for a
  -                                             service within the same module, 
or a fully qualified service id.</td>
  +                                             service within the same module, 
or a fully qualified service id. The default, if not
  +            specified, is &hivemind.BuilderFactory;.</td>
                                </tr>
                                <tr>
                                        <td>model</td>
  @@ -349,8 +350,9 @@
                        <p>A service factory defines its parameters in terms of 
a schema. The
                                content of the &_invoke-factory; is converted, 
in accordance with the
                                factory's schema, and provided to the 
factory.</p>
  -                     <p>Additional service models can be defined via the 
&hivemind.ServiceModels;
  -                             configuration point.</p>
  +                     <note>
  +        Additional service models can be defined via the 
&hivemind.ServiceModels;
  +                             configuration point.</note>
                </section>
                <section>
                        <title>map</title>
  @@ -413,6 +415,14 @@
                                HiveMind will include runtime dependency 
checking based on version
                                number.</warning>
                </section>
  +    <section>
  +      <title>parameters-schema</title>
  +      
  +      <p>The &_parameters-schema; element is identical to the &schema; 
element, but only appears
  +        inside &service-point;, to define the schema for the parameters for 
a service implementation factory or service interceptor factory.
  +        </p>
  +    </section>
  +    
                <section>
                        <title>rules</title>
                        <p> &_rules; is a container for element and attribute 
parsing rules within
  
  
  
  1.13      +2 -2      
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.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- links.ent 9 Aug 2004 13:24:48 -0000       1.12
  +++ links.ent 9 Aug 2004 14:53:46 -0000       1.13
  @@ -85,7 +85,7 @@
   <!ENTITY schema '<link 
href="&projectroot;descriptor.html#schema">&_schema;</link>'>
   
   <!ENTITY _parameters-schema '&lt;parameters-schema&gt;'>
  -<!ENTITY parameters-schema '<link 
href="&projectroot;descriptor.html#schema">&_parameters-schema;</link>'>
  +<!ENTITY parameters-schema '<link 
href="&projectroot;descriptor.html#parameters-schema">&_parameters-schema;</link>'>
   
   <!ENTITY _element '&lt;element&gt;'>
   <!ENTITY element '<link 
href="&projectroot;descriptor.html#element">&_element;</link>'>
  
  
  
  1.9       +1 -1      
jakarta-hivemind/src/documentation/content/xdocs/bootstrap.xml
  
  Index: bootstrap.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/src/documentation/content/xdocs/bootstrap.xml,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- bootstrap.xml     3 Aug 2004 14:02:13 -0000       1.8
  +++ bootstrap.xml     9 Aug 2004 14:53:46 -0000       1.9
  @@ -178,7 +178,7 @@
     </service-point>
     
     <service-point id="Calculator" interface="hivemind.examples.Calculator">
  -    <invoke-factory service-id="hivemind.BuilderFactory">
  +    <invoke-factory>
         <!-- Autowires service properties based on interface! -->
         <constuct class="hivemind.examples.impl.CalculatorImpl"/>
       </invoke-factory>
  
  
  
  1.4       +4 -4      
jakarta-hivemind/src/documentation/content/xdocs/override.xml
  
  Index: override.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/src/documentation/content/xdocs/override.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- override.xml      6 Aug 2004 14:16:41 -0000       1.3
  +++ override.xml      9 Aug 2004 14:53:46 -0000       1.4
  @@ -53,7 +53,7 @@
     </service-point>
     
     <service-point id="Consumer" interface="ex.override.Consumer">
  -    <invoke-factory service-id="hivemind.BuilderFactory">
  +    <invoke-factory>
         <construct class="ex.override.impl.Consumer">
           <set-service property="provider" service-id="Provider"/>
       </invoke-factory>
  @@ -76,7 +76,7 @@
     </contribution>
     
     <service-point id="Consumer" interface="ex.override.Consumer">
  -    <invoke-factory service-id="hivemind.BuilderFactory">
  +    <invoke-factory>
         <construct class="ex.override.impl.Consumer">
           <set-service property="provider" 
service-id="${ex.override.Provider}"/>
       </invoke-factory>
  @@ -104,7 +104,7 @@
     </contribution>
     
     <service-point id="OverrideProvider" interface="ex.override.Provider">
  -    <invoke-factory service-id="hivemind.BuilderFactory">
  +    <invoke-factory>
         <construct class="ex.override.impl.OverrideProviderImpl">
           <set-service property="defaultProvider" service-id="Provider"/>
         </construct>
  @@ -120,7 +120,7 @@
     <!-- Consumer unchanged from step 2 -->
     
     <service-point id="Consumer" interface="ex.override.Consumer">
  -    <invoke-factory service-id="hivemind.BuilderFactory">
  +    <invoke-factory>
         <construct class="ex.override.impl.Consumer">
           <set-service property="provider" 
service-id="${ex.override.Provider}"/>
       </invoke-factory>
  
  
  
  1.6       +1 -1      
jakarta-hivemind/library/src/test/hivemind/test/lib/EJBProxy.xml
  
  Index: EJBProxy.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/library/src/test/hivemind/test/lib/EJBProxy.xml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- EJBProxy.xml      8 Aug 2004 13:16:26 -0000       1.5
  +++ EJBProxy.xml      9 Aug 2004 14:53:46 -0000       1.6
  @@ -35,7 +35,7 @@
                        A service which can perform name lookups of objects 
using JNDI.
                        
                
  -             <invoke-factory service-id="hivemind.BuilderFactory">
  +             <invoke-factory>
                  <construct
                    class="hivemind.test.lib.impl.NameLookupHack">
                    <set property="initialFactory" value="fred"/>
  
  
  
  1.4       +2 -2      
jakarta-hivemind/framework/src/test/hivemind/test/rules/ConfigurationTranslator.xml
  
  Index: ConfigurationTranslator.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/rules/ConfigurationTranslator.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ConfigurationTranslator.xml       17 Jun 2004 15:16:13 -0000      1.3
  +++ ConfigurationTranslator.xml       9 Aug 2004 14:53:46 -0000       1.4
  @@ -34,14 +34,14 @@
        </contribution>
        <service-point id="ExtensionPointTranslator"
                interface="hivemind.test.rules.DatumHolder">
  -             <invoke-factory service-id="hivemind.BuilderFactory">
  +             <invoke-factory>
                        <construct 
class="hivemind.test.rules.impl.DatumHolderImpl">
                                <set-configuration property="elements" 
configuration-id="EP"/>
                        </construct>
                </invoke-factory>
        </service-point>
        <service-point id="Failure" interface="hivemind.test.rules.DatumHolder">
  -             <invoke-factory service-id="hivemind.BuilderFactory">
  +             <invoke-factory>
                        <construct 
class="hivemind.test.rules.impl.DatumHolderImpl">
                                <set-configuration property="elements" 
configuration-id="missing"/>
                        </construct>
  
  
  
  1.9       +1 -1      
jakarta-hivemind/framework/src/java/org/apache/hivemind/parse/DescriptorParser.properties
  
  Index: DescriptorParser.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/parse/DescriptorParser.properties,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- DescriptorParser.properties       17 Jun 2004 15:16:11 -0000      1.8
  +++ DescriptorParser.properties       9 Aug 2004 14:53:46 -0000       1.9
  @@ -61,7 +61,7 @@
   
   required.read-content.property=true
   
  -required.invoke-factory.service-id=true
  +required.invoke-factory.service-id=false
   required.invoke-factory.model=false
   
   required.schema.id=true
  
  
  
  1.24      +1 -1      
jakarta-hivemind/framework/src/java/org/apache/hivemind/parse/DescriptorParser.java
  
  Index: DescriptorParser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/parse/DescriptorParser.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- DescriptorParser.java     3 Aug 2004 14:02:19 -0000       1.23
  +++ DescriptorParser.java     9 Aug 2004 14:53:46 -0000       1.24
  @@ -954,7 +954,7 @@
   
           checkAttributes();
   
  -        ifd.setFactoryServiceId(getAttribute("service-id"));
  +        ifd.setFactoryServiceId(getAttribute("service-id", 
"hivemind.BuilderFactory"));
   
           String model = getAttribute("model", DEFAULT_SERVICE_MODEL);
   
  
  
  
  1.13      +645 -432  
jakarta-hivemind/framework/src/descriptor/META-INF/hivemodule.xml
  
  Index: hivemodule.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/descriptor/META-INF/hivemodule.xml,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- hivemodule.xml    3 Aug 2004 14:02:18 -0000       1.12
  +++ hivemodule.xml    9 Aug 2004 14:53:47 -0000       1.13
  @@ -6,7 +6,7 @@
      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
  +     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,
  @@ -15,445 +15,658 @@
      limitations under the License.
   -->
   
  -<module id="hivemind"      version="1.0.0">
  -        
  +<module id="hivemind" version="1.0.0">
  +    
     The master module for HiveMind, defining core, universal functionality.
   
     <configuration-point id="SymbolSources">
  -              Provides a list of sources for values of substitution symbols.
  -                <schema>
  -<element name="source">Describes a single source of symbol values.
  -  <attribute name="name" required="true">
  -  A unique name used 
  -  to identify the source, used when ordering the sources.</attribute> 
  -    
  -      <attribute name="class" 
  -  translator="instance">
  -      Name of a class implementing the SymbolSource interface.</attribute>
  -  
  -   <attribute 
  -  name="service-id" translator="service">
  -  Service configuration id for a service which implements the SymbolSource 
  -  interface.</attribute> 
  -    <attribute name="before">
  -      A list of the names of other sources this source should 
  -  precede.</attribute> 
  -    <attribute name="after">
  -      A list of the names of other sources this source should 
  -  follow.</attribute> 
  -    
  -      <conversion class="org.apache.hivemind.SymbolSourceContribution"> 
  -        <map attribute="class" 
  -  property="source"/> 
  -    <map attribute="service-id" property="source"/> 
  -      <map attribute="before" 
  -  property="followingNames"/> 
  -    <map attribute="after" property="precedingNames"/> 
  -    </conversion> 
  +    Provides a list of sources for values of substitution symbols.
  +        
  +    <schema>
  +      <element name="source">
  +        
  +        Describes a single source of symbol values.
  +        
  +        <attribute name="name" required="true">
  +          A unique name used 
  +          to identify the source, used when ordering the sources.
  +        </attribute> 
  +  
  +        <attribute name="class" translator="instance">
  +          Name of a class implementing the SymbolSource interface.
  +        </attribute>
  +  
  +        <attribute name="service-id" translator="service">
  +          Service configuration id for a service which implements the 
SymbolSource 
  +          interface.
  +        </attribute> 
  +        
  +        <attribute name="before">
  +          A list of the names of other sources this source should 
  +          precede.
  +        </attribute> 
  +        
  +        <attribute name="after">
  +          A list of the names of other sources this source should 
  +          follow.
  +        </attribute> 
  +  
  +        <conversion class="org.apache.hivemind.SymbolSourceContribution"> 
  +          <map attribute="class" property="source"/> 
  +          <map attribute="service-id" property="source"/> 
  +          <map attribute="before" property="followingNames"/> 
  +          <map attribute="after" property="precedingNames"/> 
  +        </conversion> 
  +      </element>
  +    </schema>
  +  </configuration-point>
  +  
  +  <contribution configuration-id="SymbolSources">
  +    <source before="hivemind.FactoryDefaults"
  +      name="hivemind.ApplicationDefaults" 
service-id="ApplicationDefaultsSymbolSource"/>
  +    <source name="hivemind.FactoryDefaults" 
service-id="FactoryDefaultsSymbolSource"/>
  +  </contribution>
  +  
  +  <schema id="Defaults">
  +    <element name="default">
  +      
  +      Provides a default symbol value.
  +        
  +      <attribute name="symbol" required="true">
  +        The id of the symbol to define a default value for.
  +      </attribute>
  +      <attribute name="value" required="true">
  +        The value for the symbol.
  +      </attribute>
  +      <conversion class="org.apache.hivemind.service.impl.FactoryDefault"/>
       </element>
  -        </schema>
  -    </configuration-point>
  +  </schema>
  +  
  +  <configuration-point id="FactoryDefaults" schema-id="Defaults">
  +    Extension point for setting "factory defaults" for symbol values.
  +  </configuration-point>
  +  
  +  <service-point id="FactoryDefaultsSymbolSource" 
interface="org.apache.hivemind.SymbolSource">
       
  -    <contribution configuration-id="SymbolSources">
  -        <source before="hivemind.FactoryDefaults"
  -            name="hivemind.ApplicationDefaults" 
service-id="ApplicationDefaultsSymbolSource"/>
  -        <source name="hivemind.FactoryDefaults" 
service-id="FactoryDefaultsSymbolSource"/>
  -    </contribution>
  -    <schema id="Defaults">
  -        <element
  -                name="default">Provides a default symbol value.<attribute
  -                name="symbol" required="true">The id of the symbol to define 
a default value for.</attribute>
  -            <attribute name="value" required="true">The value for the 
symbol.</attribute>
  -            <conversion 
class="org.apache.hivemind.service.impl.FactoryDefault"/>
  +    SymbolSource implementation driven by the FactoryDefaults configuration 
point.
  +        
  +    <invoke-factory>
  +      <construct 
class="org.apache.hivemind.service.impl.DefaultsSymbolSource">
  +        <set-configuration configuration-id="FactoryDefaults" 
property="defaults"/>
  +      </construct>
  +    </invoke-factory>
  +  </service-point>
  +  
  +  <configuration-point id="ApplicationDefaults" schema-id="Defaults">
  +    Extension point for setting application defaults; these defaults will 
override factory defaults specified in the FactoryDefaults configuration point.
  +  </configuration-point>
  +  
  +  <service-point id="ApplicationDefaultsSymbolSource" 
interface="org.apache.hivemind.SymbolSource">
  +    
  +    SymbolSource implementation driven by the ApplicationDefaults 
configuration point.
  +      
  +    <invoke-factory>
  +      <construct 
class="org.apache.hivemind.service.impl.DefaultsSymbolSource">
  +        <set-configuration
  +          configuration-id="ApplicationDefaults" property="defaults"/>
  +      </construct>
  +    </invoke-factory>
  +  </service-point>
  +  
  +  <service-point id="ClassFactory" 
interface="org.apache.hivemind.service.ClassFactory">
  +    
  +    Wrapper around Javassist used to dynamically create classes such as 
service interceptors.
  +      
  +    <create-instance 
class="org.apache.hivemind.service.impl.ClassFactoryImpl" model="primitive"/>
  +  </service-point>
  +  
  +  <schema id="MethodFilter">
  +    Used primarily as parameters to interceptor factories (such as 
LoggingInterceptor) to define which methods of service interface are to be 
included and which excluded.
  +      
  +    <element name="include">
  +      Identifies a method, or set of methods, to be included.
  +        
  +      <attribute name="method" required="true">
  +        A method pattern used to identify the affected methods.
  +      </attribute>
  +      
  +      <rules>
  +        <create-object 
class="org.apache.hivemind.service.MethodContribution"/>
  +        <set-property property="include" value="true"/>
  +        <read-attribute attribute="method" property="methodPattern"/>
  +        <invoke-parent method="addElement"/>
  +      </rules>
  +    </element>
  +    <element name="exclude">
  +      Identifies a method, or set of methods, to be excluded.
  +        
  +      <attribute name="method" required="true">
  +        A method pattern used to identify the affected methods.
  +      </attribute>
  +      
  +      <rules>
  +        <create-object 
class="org.apache.hivemind.service.MethodContribution"/>
  +        <set-property property="include" value="false"/>
  +        <read-attribute attribute="method" property="methodPattern"/>
  +        <invoke-parent method="addElement"/>
  +      </rules>
  +    </element>
  +  </schema>
  +  
  +  <service-point id="LoggingInterceptor" 
interface="org.apache.hivemind.ServiceInterceptorFactory" 
parameters-schema-id="MethodFilter">
  +    
  +    An interceptor factory for adding method-level logging to a service. 
  +    Logging occurs at level DEBUG and uses the service id as the logger. 
  +    Method entry (with parameters) and method exit (with return value) are 
logged, as are any exceptions.
  +      
  +    <invoke-factory model="primitive">
  +      <construct 
class="org.apache.hivemind.service.impl.LoggingInterceptorFactory">
  +        <set-service property="factory" service-id="ClassFactory"/>
  +      </construct>
  +    </invoke-factory> 
  +  </service-point>
  +  
  +  <service-point id="BuilderFactory" 
interface="org.apache.hivemind.ServiceImplementationFactory">
  +    
  +    Used to construct a service from a class name and optional constructor 
parameters and properties.
  +      
  +    <parameters-schema>
  +      <element name="construct">
  +        A single construct element identifies the class to instantiate.
  +       
  +        <attribute name="class" required="true">The name of the class to 
instantiate.</attribute>
  +        <attribute name="messages-property">The name of a property to assign 
invoking module's messages to.</attribute>
  +        <attribute name="log-property">The name of a property to assign the 
Log instance for the service to. The Log instance is built from the service 
configuration point id.</attribute>
  +        <attribute name="service-id-property">The name of a property to 
assign the configuration point id of the service to.</attribute>
  +        <attribute name="initialize-method">The name of a public instance 
method (taking no parameters) to be invoked after the service is 
constructed.</attribute>
  +        <attribute name="error-handler-property">The name of a property to 
assign the module's ErrorHandler to.</attribute>
  +        <attribute name="class-resolver-property">The name of a property to 
assign the module's ClassResolver to.</attribute>
  +        <attribute name="autowire-services" 
translator="boolean,default=true">If true (the default), the BuilderFactory 
will attempt to connect unclaimed properties to services.</attribute>
  +        
  +        <rules>
  +          <create-object 
class="org.apache.hivemind.service.impl.BuilderParameter"/>
  +          <read-attribute attribute="class" property="className"/>
  +          <read-attribute attribute="initialize-method" 
property="initializeMethod"/>
  +          <read-attribute attribute="autowire-services" 
property="autowireServices" skip-if-null="false"/>
  +          <invoke-parent method="addElement"/>
  +          
  +          <create-object 
class="org.apache.hivemind.service.impl.BuilderMessagesFacet"/>
  +          <read-attribute attribute="messages-property" 
property="propertyName"/>
  +          <invoke-parent depth="1" method="addProperty"/>
  +          
  +          <create-object 
class="org.apache.hivemind.service.impl.BuilderLogFacet"/>
  +          <read-attribute attribute="log-property" property="propertyName"/>
  +          <invoke-parent depth="2" method="addProperty"/>
  +          
  +          <create-object 
class="org.apache.hivemind.service.impl.BuilderServiceIdFacet"/>
  +          <read-attribute attribute="service-id-property" 
property="propertyName"/>
  +          <invoke-parent depth="3" method="addProperty"/>
  +          
  +          <create-object 
class="org.apache.hivemind.service.impl.BuilderErrorHandlerFacet"/>
  +          <read-attribute attribute="error-handler-property" 
property="propertyName"/>
  +          <invoke-parent depth="4" method="addProperty"/>
  +          
  +          <create-object 
class="org.apache.hivemind.service.impl.BuilderClassResolverFacet"/>
  +          <read-attribute attribute="class-resolver-property" 
property="propertyName"/>
  +          <invoke-parent depth="5" method="addProperty"/>
  +        </rules>
  +        <element name="string">
  +          
  +          A string value constructor parameter.
  +          
  +          <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  +            <read-content property="value"/>
  +            <invoke-parent depth="6" method="addParameter"/>
  +          </rules>
           </element>
  -    </schema>
  -    <configuration-point id="FactoryDefaults" schema-id="Defaults">Extension 
point for setting "factory defaults" for symbol values.</configuration-point>
  -    <service-point id="FactoryDefaultsSymbolSource"
  -            interface="org.apache.hivemind.SymbolSource">SymbolSource 
implementation driven by the FactoryDefaults configuration 
point.<invoke-factory service-id="BuilderFactory">
  -            <construct 
class="org.apache.hivemind.service.impl.DefaultsSymbolSource">
  -                <set-configuration configuration-id="FactoryDefaults" 
property="defaults"/>
  -            </construct>
  -        </invoke-factory>
  -    </service-point>
  -    <configuration-point id="ApplicationDefaults" 
schema-id="Defaults">Extension point for setting application defaults; these 
defaults will override factory defaults specified in the FactoryDefaults 
configuration point.</configuration-point>
  -    <service-point id="ApplicationDefaultsSymbolSource"
  -            interface="org.apache.hivemind.SymbolSource">SymbolSource 
implementation driven by the ApplicationDefaults configuration 
point.<invoke-factory service-id="BuilderFactory">
  -            <construct 
class="org.apache.hivemind.service.impl.DefaultsSymbolSource">
  -                <set-configuration
  -                    configuration-id="ApplicationDefaults" 
property="defaults"/>
  -            </construct>
  -        </invoke-factory>
  -    </service-point>
  -    <service-point id="ClassFactory"
  -            interface="org.apache.hivemind.service.ClassFactory">Wrapper 
around Javassist used to dynamically create classes such as service 
interceptors.<create-instance
  -            class="org.apache.hivemind.service.impl.ClassFactoryImpl" 
model="primitive"/>
  -    </service-point>
  -    <schema
  -            id="MethodFilter">Used primarily as parameters to interceptor 
factories (such as LoggingInterceptor) to define which methods of service 
interface are to be included and which excluded.<element
  -                name="include">Identifies a method, or set of methods, to be 
included.<attribute
  -                name="method" required="true">A method pattern used to 
identify the affected methods.</attribute>
  -            <rules>
  -                <create-object 
class="org.apache.hivemind.service.MethodContribution"/>
  -                <set-property property="include" value="true"/>
  -                <read-attribute attribute="method" property="methodPattern"/>
  -                <invoke-parent method="addElement"/>
  -            </rules>
  +        
  +        <element content-translator="int" name="int">
  +          
  +          An integer value constructor parameter.
  +          
  +          <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  +            <read-content property="value"/>
  +            <invoke-parent depth="6" method="addParameter"/>
  +          </rules>
  +        </element>
  +        
  +        <element content-translator="long" name="long">
  +          
  +          A long (64-bit) integer value constructor parameter.
  +            
  +          <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  +            <read-content property="value"/>
  +            <invoke-parent depth="6" method="addParameter"/>
  +          </rules>
           </element>
  +        
           <element
  -                name="exclude">Identifies a method, or set of methods, to be 
excluded.<attribute
  -                name="method" required="true">A method pattern used to 
identify the affected methods.</attribute>
  -            <rules>
  -                <create-object 
class="org.apache.hivemind.service.MethodContribution"/>
  -                <set-property property="include" value="false"/>
  -                <read-attribute attribute="method" property="methodPattern"/>
  -                <invoke-parent method="addElement"/>
  -            </rules>
  +          
content-translator="enumeration,java.lang.Boolean,true=TRUE,false=FALSE" 
name="boolean">
  +          
  +          A boolean value constructor parameter.
  +            
  +          <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  +            <read-content property="value"/>
  +            <invoke-parent depth="6" method="addParameter"/>
  +          </rules>
  +        </element>
  +        
  +        <element content-translator="service" name="service">
  +          
  +          A constructor parameter providing the identified HiveMind service.
  +          
  +         <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  +            <read-content property="value"/>
  +            <invoke-parent depth="6" method="addParameter"/>
  +          </rules>
  +        </element>
  +        
  +        <element content-translator="configuration" name="configuration">
  +          
  +          A constructor parameter providing a HiveMind configuration point 
(as a List).
  +            
  +          <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  +            <read-content property="value"/>
  +            <invoke-parent depth="6" method="addParameter"/>
  +          </rules>
  +        </element>
  +        
  +        <element content-translator="resource" name="resource">
  +          
  +          A Resource constructor parameter.
  +            
  +          <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  +            <read-content property="value"/>
  +            <invoke-parent depth="6" method="addParameter"/>
  +          </rules>
  +        </element>
  +        
  +        <element name="log">
  +          
  +          Placeholder for a Log instance for the constructed service as 
constructor parameter.
  +          
  +          <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.BuilderLogFacet"/>
  +            <invoke-parent depth="6" method="addParameter"/>
  +          </rules>
  +        </element>
  +        
  +        <element name="error-handler">
  +          
  +          Placeholder for the module's ErrorHandler instance passed in as a 
constructor parameter.
  +            
  +          <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.BuilderErrorHandlerFacet"/>
  +            <invoke-parent depth="6" method="addParameter"/>
  +          </rules>
  +        </element>
  +        
  +        <element name="class-resolver">
  +          
  +          Placeholder for the module's ClassResolver instance passed in as a 
constructor parameter.
  +            
  +          <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.BuilderClassResolverFacet"/>
  +            <invoke-parent depth="6" method="addParameter"/>
  +          </rules>
           </element>
  +        
  +        <element name="messages">
  +          
  +          Placeholder for a Messages object (from the invoking module) as 
constructor parameter.
  +            
  +          <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.BuilderMessagesFacet"/>
  +            <invoke-parent depth="6" method="addParameter"/>
  +          </rules>
  +        </element>
  +        
  +        <element name="service-id">
  +          
  +          Placeholder for the service id (of the constructed service) as 
constructor parameter.
  +            
  +          <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.BuilderServiceIdFacet"/>
  +            <invoke-parent depth="6" method="addParameter"/>
  +          </rules>
  +        </element>
  +        
  +        <element content-translator="object" name="object">
  +          
  +          Placeholder for an object provided by the object translator as a 
constructor parameter.
  +            
  +          <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  +            <read-content property="value"/>
  +            <invoke-parent depth="6" method="addParameter"/>
  +          </rules>
  +        </element>
  +        
  +        <element name="set">
  +          
  +          Configures a property of the service instance.
  +            
  +          <attribute name="property" required="true">The name of a property 
of the service instance to configure.</attribute>
  +          <attribute name="value" required="true">The value to set the 
property to. The value will be converted to the type of the 
property.</attribute>
  +          <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.BuilderSmartPropertyFacet"/>
  +            <read-attribute attribute="property" property="propertyName"/>
  +            <read-attribute attribute="value" property="attributeValue"/>
  +            <invoke-parent depth="6" method="addProperty"/>
  +          </rules>
  +        </element>
  +        
  +        <element name="set-object">
  +          
  +          Configures a property of the service instance using an object.
  +          
  +          <attribute name="property" required="true">The name of a property 
of the service instance to configure.</attribute>
  +          <attribute name="value" required="true" translator="object">The 
value to set the property to, in the form of a prefix and a locator for that 
prefix. Prefixes are defined by the ObjectProviders configuration point. Each 
prefix provides a different interpretation for the locator, such as a service 
id or class name.</attribute>
  +          <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  +            <read-attribute attribute="property" property="propertyName"/>
  +            <read-attribute attribute="value" property="value"/>
  +            <invoke-parent depth="6" method="addProperty"/>
  +          </rules>
  +        </element>
  +        
  +        <element name="set-service">
  +          
  +          Configures a property of the service instance to another service.
  +            
  +          <attribute name="property" required="true">The name of the 
property of the service instance to configure.</attribute>
  +          <attribute name="service-id" required="true" 
translator="service">The id of the service.</attribute>
  +          <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  +            <read-attribute attribute="property" property="propertyName"/>
  +            <read-attribute attribute="service-id" property="value"/>
  +            <invoke-parent depth="6" method="addProperty"/>
  +          </rules>
  +        </element>
  +        
  +        <element name="set-configuration">
  +          
  +          Configures a property of the service instance to the elements 
contributed to an configuration point.
  +          
  +          <attribute name="property" required="true">The name of the 
property of the service instance to configure.</attribute>
  +          <attribute name="configuration-id" required="true" 
translator="configuration">The id of the configuration point to 
access.</attribute>
  +          <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  +            <read-attribute attribute="property" property="propertyName"/>
  +            <read-attribute attribute="configuration-id" property="value"/>
  +            <invoke-parent depth="6" method="addProperty"/>
  +          </rules>
  +        </element>
  +        
  +        <element name="set-resource">
  +          
  +          Configures a property of the service instance to a resource.
  +            
  +          <attribute name="property" required="true">The name of the 
property of the service instance to configure.</attribute>
  +          <attribute name="path" required="true" translator="resource">The 
path, relative to the module's deployment descriptor, of the 
resource.</attribute>
  +          <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  +            <read-attribute attribute="property" property="propertyName"/>
  +            <read-attribute attribute="path" property="value"/>
  +            <invoke-parent depth="6" method="addProperty"/>
  +          </rules>
  +        </element>
  +        
  +        <element name="event-listener">
  +          
  +          Registers the new services as an event listener for events 
produced by the specified service.
  +            
  +          <attribute name="service-id" required="true" 
translator="service">The service which will produce events.</attribute>
  +          <attribute name="event-set">If given, the name of an event set for 
which the service will be registered. If omitted, the service will be 
registered for all events sets for which it implements the necessary listener 
interfaces.</attribute>
  +          <rules>
  +            <create-object 
class="org.apache.hivemind.service.impl.EventRegistration"/>
  +            <read-attribute attribute="service-id" property="producer"/>
  +            <read-attribute attribute="event-set" property="eventSetName"/>
  +            <invoke-parent depth="6" method="addEventRegistration"/>
  +          </rules>
  +        </element>
  +      </element>      
  +    </parameters-schema>
  +    
  +    <create-instance class="org.apache.hivemind.service.impl.BuilderFactory" 
model="primitive"/>
  +  </service-point>
  +  
  +  <service-point id="ThreadEventNotifier" 
interface="org.apache.hivemind.service.ThreadEventNotifier">
  +    
  +    Service used by other services to be alerted when a thread is cleaned up 
(typically, at the end of a request or transaction).
  +      
  +    <create-instance 
class="org.apache.hivemind.service.impl.ThreadEventNotifierImpl"/>
  +  </service-point>
  +  
  +  <service-point id="ThreadLocalStorage" 
interface="org.apache.hivemind.service.ThreadLocalStorage">
  +    
  +    Service which manages a thread-local map of data items. 
  +    This can be used for temporary storage of information when local 
variables can't be used. 
  +    All stored items are released when the thread is cleaned up.
  +      
  +    <invoke-factory>
  +      <construct 
class="org.apache.hivemind.service.impl.ThreadLocalStorageImpl">
  +        <set-service property="notifier" service-id="ThreadEventNotifier"/>
  +      </construct>
  +    </invoke-factory>
  +  </service-point>
  +  
  +  <configuration-point id="ServiceModels">
  +    
  +    Defines service models, providing a name and a class for each.
  +      
  +    <schema>
  +          
  +      Describes contributions that define new types of service models by 
providing service model factories.
  +            
  +      <element name="service-model">
  +        <attribute name="name" required="true">The name of the service 
model, which must be unique.</attribute>
  +        <attribute name="class" required="false" translator="instance">The 
name of the service model factory class to instantiate.</attribute>
  +        <conversion 
class="org.apache.hivemind.impl.ServiceModelContribution">
  +          <map attribute="class" property="factory"/>
  +        </conversion>
  +      </element>
  +    </schema>
  +  </configuration-point>
  +  
  +  <contribution configuration-id="ServiceModels">
  +    <service-model 
class="org.apache.hivemind.impl.servicemodel.PrimitiveServiceModelFactory" 
name="primitive"/>
  +    <service-model 
class="org.apache.hivemind.impl.servicemodel.SingletonServiceModelFactory" 
name="singleton"/>
  +    <service-model 
class="org.apache.hivemind.impl.servicemodel.ThreadedServiceModelFactory" 
name="threaded"/>
  +    <service-model 
class="org.apache.hivemind.impl.servicemodel.PooledServiceModelFactory" 
name="pooled"/>
  +  </contribution>
  +  
  +  <configuration-point id="Translators">
  +    
  +    Used to define new translators that can be used in contribution 
conversion rules. 
  +    Translators must have unique names.
  +      
  +    <schema>
  +      
  +      Maps translator names to translator classes.
  +        
  +      <element name="translator">Maps a translator name to a translator 
class.
  +        
  +        <attribute name="name" required="true">A unique name for a 
translator.</attribute>
  +        <attribute name="class" required="false" translator="class">The 
class to instantiate, which must implement the Translator interface.</attribute>
  +        <attribute name="service-id" required="false" translator="service">A 
service which implements the Translator interface.</attribute>
  +        <conversion class="org.apache.hivemind.impl.TranslatorContribution">
  +          <map attribute="class" property="translatorClass"/>
  +          <map attribute="service-id" property="translator"/>
  +        </conversion>
  +      </element>
  +    </schema>
  +  </configuration-point>
  +  
  +  <contribution configuration-id="Translators">
  +    <translator class="org.apache.hivemind.schema.rules.BooleanTranslator" 
name="boolean"/>
  +    <translator class="org.apache.hivemind.schema.rules.IntTranslator" 
name="int"/>
  +    <translator 
class="org.apache.hivemind.schema.rules.EnumerationTranslator" 
name="enumeration"/>
  +    <translator 
class="org.apache.hivemind.schema.rules.ConfigurationTranslator" 
name="configuration"/>
  +    <translator class="org.apache.hivemind.schema.rules.ResourceTranslator" 
name="resource"/>
  +    <translator class="org.apache.hivemind.schema.rules.LongTranslator" 
name="long"/>
  +    <translator class="org.apache.hivemind.schema.rules.DoubleTranslator" 
name="double"/>
  +    <translator 
class="org.apache.hivemind.schema.rules.ServicePointTranslator" 
name="service-point"/>
  +    <translator 
class="org.apache.hivemind.schema.rules.QualifiedIdTranslator" 
name="qualified-id"/>
  +    <translator class="org.apache.hivemind.schema.rules.IdListTranslator" 
name="id-list"/>
  +    <translator name="object" service-id="ObjectTranslator"/>
  +  </contribution>
  +  
  +  <service-point id="ShutdownCoordinator" 
interface="org.apache.hivemind.ShutdownCoordinator">
  +    
  +    A source of event notifications for when the Registry is shutdown.
  +      
  +    <invoke-factory>
  +      <construct class="org.apache.hivemind.impl.ShutdownCoordinatorImpl">
  +        <log/>
  +      </construct>
  +    </invoke-factory>
  +  </service-point>
  +  
  +  <configuration-point id="Startup">
  +    
  +    A configuration to which startup objects may be contributed (as objects 
or services). 
  +    Startup object must implement the java.lang.Runnable interface. Order of 
execution is expliclitly NOT defined.
  +      
  +    <schema>
  +      <element name="service">
  +        
  +        Defines a service that implements the Runnable interface.
  +          
  +       <attribute name="service-id" translator="service">The name of a 
service implementing the Runnable interface.</attribute>
  +        <rules>
  +          <push-attribute attribute="service-id"/>
  +          <invoke-parent method="addElement"/>
  +        </rules>
  +      </element>
  +      <element name="runnable">
  +        
  +        Allows an instance of a class implementing Runnable to be 
contributed.
  +          
  +        <attribute name="class" translator="instance">The name of a class 
implementing Runnable.</attribute>
  +        <rules>
  +          <push-attribute attribute="class"/>
  +          <invoke-parent method="addElement"/>
  +        </rules>
  +      </element>
  +    </schema>
  +  </configuration-point>
  +  
  +  <service-point id="Startup" interface="java.lang.Runnable">
  +    
  +    A service which is used to bootstrap HiveMind; it obtains the 
hivemind.Startup configuration and runs each 
  +    Runnable object or service within.
  +      
  +    <invoke-factory>
  +      <construct class="org.apache.hivemind.impl.StartupImpl">
  +        <set-configuration configuration-id="Startup" property="runnables"/>
  +      </construct>
  +    </invoke-factory>
  +  </service-point>
  +  
  +  <configuration-point id="EagerLoad">
  +    
  +    Configuration to which services may be contributed. The corresponding 
services are instantiated eagerly, as the Registry is started. 
  +    The order in which services are instantiated is not specified.
  +      
  +    <schema>
  +      <element name="load">
  +        
  +        Identifies a service that will be eagerly loaded.
  +          
  +        <attribute name="service-id" required="true" 
translator="service-point"/>
  +        <rules>
  +          <push-attribute attribute="service-id"/>
  +          <invoke-parent method="addElement"/>
  +        </rules>
  +      </element>
  +    </schema>
  +  </configuration-point>
  +  
  +  <service-point id="EagerLoad" interface="java.lang.Runnable">
  +    
  +    Service that performs eager loading of other services. This service is 
contributed into the hivemind.Startup configuration.
  +      
  +    <invoke-factory model="primitive">
  +      <construct class="org.apache.hivemind.service.impl.EagerLoader">
  +        <set-configuration configuration-id="EagerLoad" 
property="servicePoints"/>
  +      </construct>
  +    </invoke-factory>
  +  </service-point>
  +  
  +  <contribution configuration-id="Startup">
  +    <service service-id="EagerLoad"/>
  +  </contribution>
  +  
  +  <configuration-point id="ObjectProviders">
  +    
  +    Services that can provide objects for the object translator.
  +      
  +    <schema>
  +      <element name="provider">
  +        <attribute name="prefix" required="true">The prefix used to identify 
the provider.</attribute>
  +        <attribute name="service-id" required="true" 
translator="service">The object providing service.</attribute>
  +        <conversion 
class="org.apache.hivemind.service.impl.ObjectProviderContribution">
  +          <map attribute="service-id" property="provider"/>
  +        </conversion>
  +      </element>
       </schema>
  -    <service-point id="LoggingInterceptor"
  -        interface="org.apache.hivemind.ServiceInterceptorFactory"
  -            parameters-schema-id="MethodFilter">An interceptor factory for 
adding method-level logging to a service. Logging occurs at level DEBUG and 
uses the service id as the logger. Method entry (with parameters) and method 
exit (with return value) are logged, as are any exceptions.<invoke-factory
  -            model="primitive" service-id="BuilderFactory">
  -            <construct 
class="org.apache.hivemind.service.impl.LoggingInterceptorFactory">
  -                <set-service property="factory" service-id="ClassFactory"/>
  -            </construct>
  -        </invoke-factory>
  -    </service-point>
  -    <service-point id="BuilderFactory" 
interface="org.apache.hivemind.ServiceImplementationFactory">Used to construct 
a service from a class name and optional constructor parameters and 
properties.<parameters-schema>
  -            <element
  -                    name="construct">A single construct element identifies 
the class to instantiate.<attribute
  -                    name="class" required="true">The name of the class to 
instantiate.</attribute>
  -                <attribute name="messages-property">The name of a property 
to assign invoking module's messages to.</attribute>
  -                <attribute name="log-property">The name of a property to 
assign the Log instance for the service to. The Log instance is built from the 
service configuration point id.</attribute>
  -                <attribute name="service-id-property">The name of a property 
to assign the configuration point id of the service to.</attribute>
  -                <attribute name="initialize-method">The name of a public 
instance method (taking no parameters) to be invoked after the service is 
constructed.</attribute>
  -                <attribute name="error-handler-property">The name of a 
property to assign the module's ErrorHandler to.</attribute>
  -                <attribute name="class-resolver-property">The name of a 
property to assign the module's ClassResolver to.</attribute>
  -                <attribute name="autowire-services" 
translator="boolean,default=true">If true (the default), the BuilderFactory 
will attempt to connect unclaimed properties to services.</attribute>
  -                <rules>
  -                    <create-object 
class="org.apache.hivemind.service.impl.BuilderParameter"/>
  -                    <read-attribute attribute="class" property="className"/>
  -                    <read-attribute attribute="initialize-method" 
property="initializeMethod"/>
  -                    <read-attribute attribute="autowire-services"
  -                        property="autowireServices" skip-if-null="false"/>
  -                    <invoke-parent method="addElement"/>
  -                    <create-object 
class="org.apache.hivemind.service.impl.BuilderMessagesFacet"/>
  -                    <read-attribute attribute="messages-property" 
property="propertyName"/>
  -                    <invoke-parent depth="1" method="addProperty"/>
  -                    <create-object 
class="org.apache.hivemind.service.impl.BuilderLogFacet"/>
  -                    <read-attribute attribute="log-property" 
property="propertyName"/>
  -                    <invoke-parent depth="2" method="addProperty"/>
  -                    <create-object 
class="org.apache.hivemind.service.impl.BuilderServiceIdFacet"/>
  -                    <read-attribute attribute="service-id-property" 
property="propertyName"/>
  -                    <invoke-parent depth="3" method="addProperty"/>
  -                    <create-object 
class="org.apache.hivemind.service.impl.BuilderErrorHandlerFacet"/>
  -                    <read-attribute attribute="error-handler-property" 
property="propertyName"/>
  -                    <invoke-parent depth="4" method="addProperty"/>
  -                    <create-object 
class="org.apache.hivemind.service.impl.BuilderClassResolverFacet"/>
  -                    <read-attribute attribute="class-resolver-property" 
property="propertyName"/>
  -                    <invoke-parent depth="5" method="addProperty"/>
  -                </rules>
  -                <element name="string">A string value constructor 
parameter.<rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  -                        <read-content property="value"/>
  -                        <invoke-parent depth="6" method="addParameter"/>
  -                    </rules>
  -                </element>
  -                <element content-translator="int" name="int">An integer 
value constructor parameter.<rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  -                        <read-content property="value"/>
  -                        <invoke-parent depth="6" method="addParameter"/>
  -                    </rules>
  -                </element>
  -                <element content-translator="long" name="long">A long 
(64-bit) integer value constructor parameter.<rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  -                        <read-content property="value"/>
  -                        <invoke-parent depth="6" method="addParameter"/>
  -                    </rules>
  -                </element>
  -                <element
  -                    
content-translator="enumeration,java.lang.Boolean,true=TRUE,false=FALSE" 
name="boolean">A boolean value constructor parameter.<rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  -                        <read-content property="value"/>
  -                        <invoke-parent depth="6" method="addParameter"/>
  -                    </rules>
  -                </element>
  -                <element content-translator="service" name="service">A 
constructor parameter providing the identified HiveMind service.<rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  -                        <read-content property="value"/>
  -                        <invoke-parent depth="6" method="addParameter"/>
  -                    </rules>
  -                </element>
  -                <element content-translator="configuration" 
name="configuration">A constructor parameter providing a HiveMind configuration 
point (as a List).<rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  -                        <read-content property="value"/>
  -                        <invoke-parent depth="6" method="addParameter"/>
  -                    </rules>
  -                </element>
  -                <element content-translator="resource" name="resource">A 
Resource constructor parameter.<rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  -                        <read-content property="value"/>
  -                        <invoke-parent depth="6" method="addParameter"/>
  -                    </rules>
  -                </element>
  -                <element name="log">Placeholder for a Log instance for the 
constructed service as constructor parameter.<rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.BuilderLogFacet"/>
  -                        <invoke-parent depth="6" method="addParameter"/>
  -                    </rules>
  -                </element>
  -                <element name="error-handler">Placeholder for the module's 
ErrorHandler instance passed in as a constructor parameter.<rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.BuilderErrorHandlerFacet"/>
  -                        <invoke-parent depth="6" method="addParameter"/>
  -                    </rules>
  -                </element>
  -                <element name="class-resolver">Placeholder for the module's 
ClassResolver instance passed in as a constructor parameter.<rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.BuilderClassResolverFacet"/>
  -                        <invoke-parent depth="6" method="addParameter"/>
  -                    </rules>
  -                </element>
  -                <element name="messages">Placeholder for a Messages object 
(from the invoking module) as constructor parameter.<rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.BuilderMessagesFacet"/>
  -                        <invoke-parent depth="6" method="addParameter"/>
  -                    </rules>
  -                </element>
  -                <element name="service-id">Placeholder for the service id 
(of the constructed service) as constructor parameter.<rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.BuilderServiceIdFacet"/>
  -                        <invoke-parent depth="6" method="addParameter"/>
  -                    </rules>
  -                </element>
  -                <element content-translator="object" 
name="object">Placeholder for an object provided by the object translator as a 
constructor parameter.<rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  -                        <read-content property="value"/>
  -                        <invoke-parent depth="6" method="addParameter"/>
  -                    </rules>
  -                </element>
  -                <element
  -                        name="set">Configures a property of the service 
instance.<attribute
  -                        name="property" required="true">The name of a 
property of the service instance to configure.</attribute>
  -                    <attribute name="value" required="true">The value to set 
the property to. The value will be converted to the type of the 
property.</attribute>
  -                    <rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.BuilderSmartPropertyFacet"/>
  -                        <read-attribute attribute="property" 
property="propertyName"/>
  -                        <read-attribute attribute="value" 
property="attributeValue"/>
  -                        <invoke-parent depth="6" method="addProperty"/>
  -                    </rules>
  -                </element>
  -                <element
  -                        name="set-object">Configures a property of the 
service instance using an object.<attribute
  -                        name="property" required="true">The name of a 
property of the service instance to configure.</attribute>
  -                    <attribute name="value" required="true" 
translator="object">The value to set the property to, in the form of a prefix 
and a locator for that prefix. Prefixes are defined by the ObjectProviders 
configuration point. Each prefix provides a different interpretation for the 
locator, such as a service id or class name.</attribute>
  -                    <rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  -                        <read-attribute attribute="property" 
property="propertyName"/>
  -                        <read-attribute attribute="value" property="value"/>
  -                        <invoke-parent depth="6" method="addProperty"/>
  -                    </rules>
  -                </element>
  -                <element
  -                        name="set-service">Configures a property of the 
service instance to another service.<attribute
  -                        name="property" required="true">The name of the 
property of the service instance to configure.</attribute>
  -                    <attribute name="service-id" required="true" 
translator="service">The id of the service.</attribute>
  -                    <rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  -                        <read-attribute attribute="property" 
property="propertyName"/>
  -                        <read-attribute attribute="service-id" 
property="value"/>
  -                        <invoke-parent depth="6" method="addProperty"/>
  -                    </rules>
  -                </element>
  -                <element
  -                        name="set-configuration">Configures a property of 
the service instance to the elements contributed to an configuration 
point.<attribute
  -                        name="property" required="true">The name of the 
property of the service instance to configure.</attribute>
  -                    <attribute name="configuration-id" required="true" 
translator="configuration">The id of the configuration point to 
access.</attribute>
  -                    <rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  -                        <read-attribute attribute="property" 
property="propertyName"/>
  -                        <read-attribute attribute="configuration-id" 
property="value"/>
  -                        <invoke-parent depth="6" method="addProperty"/>
  -                    </rules>
  -                </element>
  -                <element
  -                        name="set-resource">Configures a property of the 
service instance to a resource.<attribute
  -                        name="property" required="true">The name of the 
property of the service instance to configure.</attribute>
  -                    <attribute name="path" required="true" 
translator="resource">The path, relative to the module's deployment descriptor, 
of the resource.</attribute>
  -                    <rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
  -                        <read-attribute attribute="property" 
property="propertyName"/>
  -                        <read-attribute attribute="path" property="value"/>
  -                        <invoke-parent depth="6" method="addProperty"/>
  -                    </rules>
  -                </element>
  -                <element
  -                        name="event-listener">Registers the new services as 
an event listener for events produced by the specified service.<attribute
  -                        name="service-id" required="true" 
translator="service">The service which will produce events.</attribute>
  -                    <attribute name="event-set">If given, the name of an 
event set for which the service will be registered. If omitted, the service 
will be registered for all events sets for which it implements the necessary 
listener interfaces.</attribute>
  -                    <rules>
  -                        <create-object 
class="org.apache.hivemind.service.impl.EventRegistration"/>
  -                        <read-attribute attribute="service-id" 
property="producer"/>
  -                        <read-attribute attribute="event-set" 
property="eventSetName"/>
  -                        <invoke-parent depth="6" 
method="addEventRegistration"/>
  -                    </rules>
  -                </element>
  -            </element>
  -        </parameters-schema>
  -        <create-instance
  -            class="org.apache.hivemind.service.impl.BuilderFactory" 
model="primitive"/>
  -    </service-point>
  -    <service-point id="ThreadEventNotifier"
  -            
interface="org.apache.hivemind.service.ThreadEventNotifier">Service used by 
other services to be alerted when a thread is cleaned up (typically, at the end 
of a request or transaction).<create-instance 
class="org.apache.hivemind.service.impl.ThreadEventNotifierImpl"/>
  -    </service-point>
  -    <service-point id="ThreadLocalStorage"
  -            
interface="org.apache.hivemind.service.ThreadLocalStorage">Service which 
manages a thread-local map of data items. This can be used for temporary 
storage of information when local variables can't be used. All stored items are 
released when the thread is cleaned up.<invoke-factory 
service-id="BuilderFactory">
  -            <construct 
class="org.apache.hivemind.service.impl.ThreadLocalStorageImpl">
  -                <set-service property="notifier" 
service-id="ThreadEventNotifier"/>
  -            </construct>
  -        </invoke-factory>
  -    </service-point>
  -    <configuration-point
  -                id="ServiceModels">Defines service models, providing a name 
and a class for each.<schema>Describes contributions that define new types of 
service models by providing service model factories.<element 
name="service-model">
  -                <attribute name="name" required="true">The name of the 
service model, which must be unique.</attribute>
  -                <attribute name="class" required="false" 
translator="instance">The name of the service model factory class to 
instantiate.</attribute>
  -                <conversion 
class="org.apache.hivemind.impl.ServiceModelContribution">
  -                    <map attribute="class" property="factory"/>
  -                </conversion>
  -            </element>
  -        </schema>
  -    </configuration-point>
  -    <contribution configuration-id="ServiceModels">
  -        <service-model
  -            
class="org.apache.hivemind.impl.servicemodel.PrimitiveServiceModelFactory" 
name="primitive"/>
  -        <service-model
  -            
class="org.apache.hivemind.impl.servicemodel.SingletonServiceModelFactory" 
name="singleton"/>
  -        <service-model
  -            
class="org.apache.hivemind.impl.servicemodel.ThreadedServiceModelFactory" 
name="threaded"/>
  -        <service-model
  -            
class="org.apache.hivemind.impl.servicemodel.PooledServiceModelFactory" 
name="pooled"/>
  -    </contribution>
  -    <configuration-point
  -                id="Translators">Used to define new translators that can be 
used in contribution conversion rules. Translators must have unique 
names.<schema>Maps translator names to translator classes.<element
  -                    name="translator">Maps a translator name to a translator 
class.<attribute
  -                    name="name" required="true">A unique name for a 
translator.</attribute>
  -                <attribute name="class" required="false" 
translator="class">The class to instantiate, which must implement the 
Translator interface.</attribute>
  -                <attribute name="service-id" required="false" 
translator="service">A service which implements the Translator 
interface.</attribute>
  -                <conversion 
class="org.apache.hivemind.impl.TranslatorContribution">
  -                    <map attribute="class" property="translatorClass"/>
  -                    <map attribute="service-id" property="translator"/>
  -                </conversion>
  -            </element>
  -        </schema>
  -    </configuration-point>
  -    <contribution configuration-id="Translators">
  -        <translator
  -            class="org.apache.hivemind.schema.rules.BooleanTranslator" 
name="boolean"/>
  -        <translator
  -            class="org.apache.hivemind.schema.rules.IntTranslator" 
name="int"/>
  -        <translator
  -            class="org.apache.hivemind.schema.rules.EnumerationTranslator" 
name="enumeration"/>
  -        <translator
  -            class="org.apache.hivemind.schema.rules.ConfigurationTranslator" 
name="configuration"/>
  -        <translator
  -            class="org.apache.hivemind.schema.rules.ResourceTranslator" 
name="resource"/>
  -        <translator
  -            class="org.apache.hivemind.schema.rules.LongTranslator" 
name="long"/>
  -        <translator
  -            class="org.apache.hivemind.schema.rules.DoubleTranslator" 
name="double"/>
  -        <translator
  -            class="org.apache.hivemind.schema.rules.ServicePointTranslator" 
name="service-point"/>
  -        <translator
  -            class="org.apache.hivemind.schema.rules.QualifiedIdTranslator" 
name="qualified-id"/>
  -        <translator
  -            class="org.apache.hivemind.schema.rules.IdListTranslator" 
name="id-list"/>
  -        <translator name="object" service-id="ObjectTranslator"/>
  -    </contribution>
  -    <service-point id="ShutdownCoordinator"
  -            interface="org.apache.hivemind.ShutdownCoordinator">A source of 
event notifications for when the Registry is shutdown.<invoke-factory 
service-id="BuilderFactory">
  -            <construct 
class="org.apache.hivemind.impl.ShutdownCoordinatorImpl">
  -                <log/>
  -            </construct>
  -        </invoke-factory>
  -    </service-point>
  -    <configuration-point id="Startup">A configuration to which startup 
objects may be contributed (as objects or services). Startup object must 
implement the java.lang.Runnable interface. Order of execution is expliclitly 
NOT defined.<schema>
  -            <element
  -                    name="service">Defines a service that implements the 
Runnable interface.<attribute
  -                    name="service-id" translator="service">The name of a 
service implementing the Runnable interface.</attribute>
  -                <rules>
  -                    <push-attribute attribute="service-id"/>
  -                    <invoke-parent method="addElement"/>
  -                </rules>
  -            </element>
  -            <element
  -                    name="runnable">Allows an instance of a class 
implementing Runnable to be contributed.<attribute
  -                    name="class" translator="instance">The name of a class 
implementing Runnable.</attribute>
  -                <rules>
  -                    <push-attribute attribute="class"/>
  -                    <invoke-parent method="addElement"/>
  -                </rules>
  -            </element>
  -        </schema>
  -    </configuration-point>
  -    <service-point id="Startup"
  -            interface="java.lang.Runnable">A service which is used to 
bootstrap HiveMind; it obtains the hivemind.Startup configuration and runs each 
Runnable object or service within.<invoke-factory service-id="BuilderFactory">
  -            <construct class="org.apache.hivemind.impl.StartupImpl">
  -                <set-configuration configuration-id="Startup" 
property="runnables"/>
  -            </construct>
  -        </invoke-factory>
  -    </service-point>
  -    <configuration-point id="EagerLoad">Configuration to which services may 
be contributed. The corresponding services are instantiated eagerly, as the 
Registry is started. The order in which services are instantiated is not 
specified. <schema>
  -            <element
  -                    name="load">Identifies a service that will be eagerly 
loaded.<attribute
  -                    name="service-id" required="true" 
translator="service-point"/>
  -                <rules>
  -                    <push-attribute attribute="service-id"/>
  -                    <invoke-parent method="addElement"/>
  -                </rules>
  -            </element>
  -        </schema>
  -    </configuration-point>
  -    <service-point id="EagerLoad"
  -            interface="java.lang.Runnable">Service that performs eager 
loading of other services. This service is contributed into the 
hivemind.Startup configuration.<invoke-factory
  -            model="primitive" service-id="BuilderFactory">
  -            <construct class="org.apache.hivemind.service.impl.EagerLoader">
  -                <set-configuration configuration-id="EagerLoad" 
property="servicePoints"/>
  -            </construct>
  -        </invoke-factory>
  -    </service-point>
  -    <contribution configuration-id="Startup">
  -        <service service-id="EagerLoad"/>
  -    </contribution>
  -    <configuration-point id="ObjectProviders">Services that can provide 
objects for the object translator.<schema>
  -            <element name="provider">
  -                <attribute name="prefix" required="true">The prefix used to 
identify the provider.</attribute>
  -                <attribute name="service-id" required="true" 
translator="service">The object providing service.</attribute>
  -                <conversion 
class="org.apache.hivemind.service.impl.ObjectProviderContribution">
  -                    <map attribute="service-id" property="provider"/>
  -                </conversion>
  -            </element>
  -        </schema>
  -    </configuration-point>
  -    <service-point id="ObjectTranslator"
  -            interface="org.apache.hivemind.schema.Translator">Translator 
that works with ObjectProviders to find or create objects.<invoke-factory 
service-id="BuilderFactory">
  -            <construct
  -                class="org.apache.hivemind.service.impl.ObjectTranslator" 
initialize-method="initializeService">
  -                <set-configuration configuration-id="ObjectProviders" 
property="contributions"/>
  -            </construct>
  -        </invoke-factory>
  -    </service-point>
  -    <service-point id="ServiceObjectProvider"
  -            
interface="org.apache.hivemind.service.ObjectProvider">ObjectProvider that can 
locate services. Mapped to the service: prefix.<create-instance 
class="org.apache.hivemind.service.impl.ServiceObjectProvider"/>
  -    </service-point>
  -    <service-point id="ConfigurationObjectProvider"
  -            
interface="org.apache.hivemind.service.ObjectProvider">ObjectProvider that can 
locate configurations. Mapped to the configuration: prefix.<create-instance 
class="org.apache.hivemind.service.impl.ConfigurationObjectProvider"/>
  -    </service-point>
  -    <service-point id="ObjectInstanceObjectProvider"
  -            
interface="org.apache.hivemind.service.ObjectProvider">ObjectProvider that will 
instantiate a new instance of a provided class. Mapped to the instance: 
prefix.<create-instance 
class="org.apache.hivemind.service.impl.ObjectInstanceObjectProvider"/>
  -    </service-point>
  -    <service-point id="ServicePropertyObjectProvider"
  -            
interface="org.apache.hivemind.service.ObjectProvider">ObjectProvider that will 
extra a property from a service.  Mapped to the service-property: 
prefix.<create-instance 
class="org.apache.hivemind.service.impl.ServicePropertyObjectProvider"/>
  -    </service-point>
  -    
  -    <contribution configuration-id="ObjectProviders">
  -        <provider prefix="service" service-id="ServiceObjectProvider"/>
  -        <provider prefix="configuration" 
service-id="ConfigurationObjectProvider"/>
  -        <provider prefix="instance" 
service-id="ObjectInstanceObjectProvider"/>
  -        <provider prefix="service-property" 
service-id="ServicePropertyObjectProvider"/>
  -    </contribution>
  +  </configuration-point>
  +  
  +  <service-point id="ObjectTranslator" 
interface="org.apache.hivemind.schema.Translator">
  +    
  +    Translator that works with ObjectProviders to find or create objects.
  +      
  +    <invoke-factory>
  +      <construct
  +        class="org.apache.hivemind.service.impl.ObjectTranslator" 
initialize-method="initializeService">
  +        <set-configuration configuration-id="ObjectProviders" 
property="contributions"/>
  +      </construct>
  +    </invoke-factory>
  +  </service-point>
  +  
  +  <service-point id="ServiceObjectProvider" 
interface="org.apache.hivemind.service.ObjectProvider">
  +    
  +    ObjectProvider that can locate services. Mapped to the service: prefix.
  +      
  +    <create-instance 
class="org.apache.hivemind.service.impl.ServiceObjectProvider"/>
  +  </service-point>
  +  
  +  <service-point id="ConfigurationObjectProvider" 
interface="org.apache.hivemind.service.ObjectProvider">
  +    
  +    ObjectProvider that can locate configurations. Mapped to the 
configuration: prefix.
  +      
  +    <create-instance 
class="org.apache.hivemind.service.impl.ConfigurationObjectProvider"/>
  +  </service-point>
  +  
  +  <service-point id="ObjectInstanceObjectProvider" 
interface="org.apache.hivemind.service.ObjectProvider">
  +    
  +    ObjectProvider that will instantiate a new instance of a provided class. 
  +    Mapped to the instance: prefix.
  +      
  +    <create-instance 
class="org.apache.hivemind.service.impl.ObjectInstanceObjectProvider"/>
  +  </service-point>
  +  
  +  <service-point id="ServicePropertyObjectProvider" 
interface="org.apache.hivemind.service.ObjectProvider">
  +    
  +    ObjectProvider that will extra a property from a service.  
  +    Mapped to the service-property: prefix.
  +      
  +    <create-instance 
class="org.apache.hivemind.service.impl.ServicePropertyObjectProvider"/>
  +  </service-point>
  +  
  +  <contribution configuration-id="ObjectProviders">
  +    <provider prefix="service" service-id="ServiceObjectProvider"/>
  +    <provider prefix="configuration" 
service-id="ConfigurationObjectProvider"/>
  +    <provider prefix="instance" service-id="ObjectInstanceObjectProvider"/>
  +    <provider prefix="service-property" 
service-id="ServicePropertyObjectProvider"/>
  +  </contribution>
  +  
   </module>
  
  
  
  1.39      +7 -0      jakarta-hivemind/status.xml
  
  Index: status.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/status.xml,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- status.xml        3 Aug 2004 14:02:18 -0000       1.38
  +++ status.xml        9 Aug 2004 14:53:47 -0000       1.39
  @@ -36,6 +36,13 @@
         <action type="update" dev="HLS">
           Remove support for Simple Data Language ... it's all XML again.
         </action>
  +      <action type="update" dev="HLS">
  +        Re-work part of PipelineFactory to take advantage of object 
references.
  +      </action>
  +      <action type="update" dev="HLS">
  +        Make the service-id of &lt;invoke-factory&gt; optional and default
  +        to hivemind.BuilderFactory.
  +      </action>
       </release>
     
       <release version="1.0-beta-2" date="Aug 1 2004">
  
  
  
  1.3       +1 -1      
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.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- panorama.startup.xml      9 Aug 2004 13:24:49 -0000       1.2
  +++ panorama.startup.xml      9 Aug 2004 14:53:47 -0000       1.3
  @@ -82,7 +82,7 @@
       </schema>
       <configuration-point id="Startup" schema-id="Tasks"/>
       <service-point id="Startup" interface="java.lang.Runnable">
  -        <invoke-factory service-id="hivemind.BuilderFactory">
  +        <invoke-factory>
               <construct class="com.panorama.startup.impl.TaskExecutor">
                   <set-configuration configuration-id="Startup" 
property="tasks"/>
               </construct>
  
  
  
  1.3       +1 -1      
jakarta-hivemind/examples/src/descriptor/META-INF/examples.xml
  
  Index: examples.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/examples/src/descriptor/META-INF/examples.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- examples.xml      9 Aug 2004 01:10:37 -0000       1.2
  +++ examples.xml      9 Aug 2004 14:53:47 -0000       1.3
  @@ -33,7 +33,7 @@
           <interceptor service-id="hivemind.LoggingInterceptor"/>
       </service-point>
       <service-point id="Calculator" 
interface="org.apache.hivemind.examples.Calculator">
  -        <invoke-factory service-id="hivemind.BuilderFactory">
  +        <invoke-factory>
             
               <!-- Most properties are autowired by the BuilderFactory -->
               <construct 
class="org.apache.hivemind.examples.impl.CalculatorImpl"/>
  
  
  
  1.11      +10 -13    
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.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- hivemodule.xml    9 Aug 2004 13:24:49 -0000       1.10
  +++ hivemodule.xml    9 Aug 2004 14:53:47 -0000       1.11
  @@ -29,7 +29,7 @@
     <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">
  +    <invoke-factory>
         <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}"/>
  @@ -73,7 +73,7 @@
         </element>
       </parameters-schema>
       
  -    <invoke-factory service-id="hivemind.BuilderFactory">
  +    <invoke-factory>
         <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"/>
  @@ -102,7 +102,7 @@
           </conversion>
         </element>
       </parameters-schema>
  -    <invoke-factory service-id="hivemind.BuilderFactory">
  +    <invoke-factory>
         <construct
           class="org.apache.hivemind.lib.impl.SpringLookupFactory" 
service-id-property="pointId">
           <set-service property="defaultBeanFactorySource" 
service-id="DefaultSpringBeanFactoryHolder"/>
  @@ -146,7 +146,7 @@
           </conversion>
         </element>
       </parameters-schema>
  -    <invoke-factory service-id="hivemind.BuilderFactory">
  +    <invoke-factory>
         <construct class="org.apache.hivemind.lib.factory.BeanFactoryBuilder"/>
       </invoke-factory>
     </service-point>
  @@ -167,7 +167,7 @@
       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">
  +    <invoke-factory>
         <construct 
class="org.apache.hivemind.lib.impl.DefaultImplementationBuilderImpl">
           <set-service property="classFactory" 
service-id="hivemind.ClassFactory"/>
         </construct>
  @@ -179,7 +179,7 @@
       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">
  +    <invoke-factory>
         <construct class="org.apache.hivemind.lib.impl.PlaceholderFactory">
           <set-service property="builder" 
service-id="DefaultImplementationBuilder"/>
         </construct>
  @@ -215,7 +215,7 @@
         </element>
       </parameters-schema>
       
  -    <invoke-factory service-id="hivemind.BuilderFactory">
  +    <invoke-factory>
         <construct class="org.apache.hivemind.lib.pipeline.PipelineFactory">
           <set-service property="classFactory" 
service-id="hivemind.ClassFactory"/>
           <set-service property="defaultImplementationBuilder" 
service-id="DefaultImplementationBuilder"/>
  @@ -259,13 +259,10 @@
       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">
  -      
  +    <invoke-factory>
  +      <construct class="org.apache.hivemind.lib.impl.ServicePropertyFactory">
         <set-service property="classFactory" 
service-id="hivemind.ClassFactory"/>
  -      
  -    </construct>
  -    
  +      </construct>    
       </invoke-factory>
       
       <parameters-schema>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to