hlship      2003/06/18 11:47:01

  Modified:    hivemind/src/test/hivemind/test/config SetLocation.xml
               hivemind/xdocs descriptor.xml configuration.xml intro.xml
               hivemind/src/test/hivemind/test/parse
                        TestDescriptorParser.java TestToString.java
               hivemind/src/java/org/apache/commons/hivemind/parse
                        DescriptorParser.java HiveMind_1.0.xsd
                        AbstractInstanceBuilderDescriptor.java
               hivemind/src/test-data/sample sample-registry.xml
               hivemind/src/xsl hivemind.xsl
  Removed:     hivemind/src/test/hivemind/test/parse SetLocation.xml
               hivemind/src/java/org/apache/commons/hivemind/parse
                        SetLocationDescriptor.java
  Log:
  Remote <set-location> element; location property automatically set when appropriate 
(object implements ILocationHolder).
  
  Revision  Changes    Path
  1.2       +1 -2      
jakarta-commons-sandbox/hivemind/src/test/hivemind/test/config/SetLocation.xml
  
  Index: SetLocation.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/test/hivemind/test/config/SetLocation.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SetLocation.xml   4 Jun 2003 21:46:05 -0000       1.1
  +++ SetLocation.xml   18 Jun 2003 18:47:00 -0000      1.2
  @@ -8,7 +8,6 @@
     <configuration id="Config" element-type="hivemind.test.config.ConfigElement">
       <create-instance class="hivemind.test.config.ConfigElement">
         <set property="title" value="First"/>
  -      <set-location property="location"/>    
       </create-instance>       
     </configuration>
   </module>
  
  
  
  1.5       +24 -12    jakarta-commons-sandbox/hivemind/xdocs/descriptor.xml
  
  Index: descriptor.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/xdocs/descriptor.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- descriptor.xml    11 Jun 2003 18:43:12 -0000      1.4
  +++ descriptor.xml    18 Jun 2003 18:47:00 -0000      1.5
  @@ -507,6 +507,17 @@
                        <p> &_create-instance; instantiates an object from a class 
name, and then
                                configures the new object. The object may be 
contributed to a service
                                extension point or configuration extension point.</p>
  +                             
  +                     <p>
  +                     If the created object implements the
  +                     <code>ILocationHolder</code> interface,
  +                     then the newly created object's <code>location</code> property
  +                     is set to the location of the &_create-instance; element.
  +                     <em>Note:</em>
  +                     This applies to &set-create;, &factory; and &set-factory;
  +                     as well.
  +                     </p>
  +                     
                        <table>
                                <tr>
                                        <th>Attribute</th>
  @@ -582,8 +593,8 @@
                        <tr> <td>class</td> <td>class name</td> <td>yes</td> <td>Fully 
qualified
                        class name to instantiate.</td> </tr> </table> </section>
                <section name="factory">
  -                     <p> &_factory; instantiates an object obtains a factory 
instance and has
  -                             the factory create a new instance, which is 
configured.</p>
  +                     <p> &_factory; uses a factory service to create an object,
  +                             which is then configured.</p>
                        <p>&_factory; contains the same elements as 
&create-instance;.</p>
                        <table>
                                <tr>
  @@ -592,13 +603,7 @@
                                        <th>Required ?</th>
                                        <th>Description</th>
                                </tr>
  -                             <tr>
  -                                     <td>property</td>
  -                                     <td>string</td>
  -                                     <td>yes</td>
  -                                     <td>The name of the property to be updated to 
the newly created
  -                                             object.</td>
  -                             </tr>
  +
                                <tr>
                                        <td>service-id</td>
                                        <td>service id</td>
  @@ -609,8 +614,8 @@
                        </table>
                </section>
                <section name="set-factory">
  -                     <p> &_set-factory; instantiates an object obtained from a 
factory instance
  -                             and has the factory create a new instance, which is 
configured.</p>
  +                     <p> &_set-factory;  uses a factory service to create an object,
  +                             which is then configured.</p>
                        <p>&_set-factory; contains the same elements as 
&create-instance;.</p>
                        <table>
                                <tr>
  @@ -619,6 +624,13 @@
                                        <th>Required ?</th>
                                        <th>Description</th>
                                </tr>
  +                             <tr>
  +                                     <td>property</td>
  +                                     <td>string</td>
  +                                     <td>yes</td>
  +                                     <td>The name of the property to be updated to 
the newly created
  +                                             object.</td>
  +                             </tr>                           
                                <tr>
                                        <td>service-id</td>
                                        <td>service id</td>
  
  
  
  1.3       +11 -3     jakarta-commons-sandbox/hivemind/xdocs/configuration.xml
  
  Index: configuration.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/xdocs/configuration.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- configuration.xml 12 Jun 2003 20:57:39 -0000      1.2
  +++ configuration.xml 18 Jun 2003 18:47:00 -0000      1.3
  @@ -15,8 +15,16 @@
   <p>
   A central concept in HiveMind is <em>configurations</em>. Once you have a set of
   services, its natural to want to configure those services.  In HiveMind, a 
configuration
  -is a list of <em>elements</em>.  Each element is contributed by a module ... any 
module may make
  -contributes to any service extension point.
  +is an unordered list of <em>elements</em>.  Each element is contributed by a module 
... any module may make
  +contributes to any configuration extension point.
  +</p>
  +
  +<p>
  +There is not a direct connection between a service and a configuration, though it 
is often the case
  +that a service and a configuration will be similarily named (or even identically 
named; services
  +and configurations are in seperate namespaces).      Any relationship between a 
service and a configuration
  +is explicit only in code ... the service may request a configuration from the 
registry and operate
  +on the elements it receives.
   </p>
   
                </section>
  
  
  
  1.3       +7 -1      jakarta-commons-sandbox/hivemind/xdocs/intro.xml
  
  Index: intro.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/xdocs/intro.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- intro.xml 11 Jun 2003 18:43:12 -0000      1.2
  +++ intro.xml 18 Jun 2003 18:47:00 -0000      1.3
  @@ -184,6 +184,12 @@
       the application.
       </p>
       
  +    <p>The <a href="base-registry.html">HiveMind module descriptor documentation</a>
  +    gives a general idea of what the documentation looks like.  Since its 
documentation
  +    for just the core HiveMind module, it doesn't really show off the bells and 
whistles
  +    you get when multiple modules work together.
  +    </p>
  +    
       </section>
       
       <section name="Out of Scope">
  
  
  
  1.6       +2 -16     
jakarta-commons-sandbox/hivemind/src/test/hivemind/test/parse/TestDescriptorParser.java
  
  Index: TestDescriptorParser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/test/hivemind/test/parse/TestDescriptorParser.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- TestDescriptorParser.java 9 Jun 2003 22:23:09 -0000       1.5
  +++ TestDescriptorParser.java 18 Jun 2003 18:47:00 -0000      1.6
  @@ -62,18 +62,17 @@
   import java.util.List;
   
   import org.apache.commons.hivemind.Occurances;
  +import org.apache.commons.hivemind.parse.AbstractInstanceBuilderDescriptor;
   import org.apache.commons.hivemind.parse.ConfigurationDescriptor;
   import org.apache.commons.hivemind.parse.ContributeConfigurationDescriptor;
   import org.apache.commons.hivemind.parse.ContributeServiceDescriptor;
   import org.apache.commons.hivemind.parse.CreateInstanceDescriptor;
   import org.apache.commons.hivemind.parse.ExpressionDescriptor;
   import org.apache.commons.hivemind.parse.FactoryDescriptor;
  -import org.apache.commons.hivemind.parse.AbstractInstanceBuilderDescriptor;
   import org.apache.commons.hivemind.parse.InterceptorDescriptor;
   import org.apache.commons.hivemind.parse.ModuleDescriptor;
   import org.apache.commons.hivemind.parse.ServiceDescriptor;
   import org.apache.commons.hivemind.parse.ServiceRefDescriptor;
  -import org.apache.commons.hivemind.parse.SetLocationDescriptor;
   import org.apache.commons.hivemind.parse.ValueDescriptor;
   import org.apache.commons.hivemind.parse.XMLDescriptor;
   import org.apache.tapestry.Tapestry;
  @@ -455,20 +454,7 @@
           assertEquals("AnXMLFile.xml", xd.getPath());
       }
   
  -    public void testSetLocation() throws Exception
  -    {
  -        ModuleDescriptor md = parse("SetLocation.xml");
  -
  -        ServiceDescriptor sd = md.getService("Foo");
  -        AbstractInstanceBuilderDescriptor ibd = sd.getInstanceBuilder();
  -        List l = ibd.getConfigurators();
  -        assertEquals(1, l.size());
   
  -        SetLocationDescriptor d = (SetLocationDescriptor) l.get(0);
  -
  -        assertEquals("location", d.getPropertyName());
  -        assertSame(ibd, d.getContainer());
  -    }
   
       public void testSetValueExtended() throws Exception
       {
  
  
  
  1.3       +1 -3      
jakarta-commons-sandbox/hivemind/src/test/hivemind/test/parse/TestToString.java
  
  Index: TestToString.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/test/hivemind/test/parse/TestToString.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TestToString.java 4 Jun 2003 23:52:50 -0000       1.2
  +++ TestToString.java 18 Jun 2003 18:47:00 -0000      1.3
  @@ -78,7 +78,6 @@
   import org.apache.commons.hivemind.parse.ModuleDescriptor;
   import org.apache.commons.hivemind.parse.ServiceDescriptor;
   import org.apache.commons.hivemind.parse.ServiceRefDescriptor;
  -import org.apache.commons.hivemind.parse.SetLocationDescriptor;
   import org.apache.commons.hivemind.parse.ValueDescriptor;
   import org.apache.commons.hivemind.parse.XMLDescriptor;
   
  @@ -108,7 +107,6 @@
                new ModuleDescriptor().toString();
                new ServiceDescriptor().toString();
                new ServiceRefDescriptor().toString();
  -             new SetLocationDescriptor().toString();
                new ValueDescriptor().toString();
                new XMLDescriptor().toString();
                new InterceptorDescriptor().toString();
  
  
  
  1.7       +1 -9      
jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/DescriptorParser.java
  
  Index: DescriptorParser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/DescriptorParser.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DescriptorParser.java     10 Jun 2003 21:29:25 -0000      1.6
  +++ DescriptorParser.java     18 Jun 2003 18:47:00 -0000      1.7
  @@ -343,14 +343,6 @@
               new String[] { "propertyName", "factoryServiceId" });
           result.addSetNext(pattern, "addConfigurator");
   
  -        pattern = "*/set-location";
  -
  -        result.addObjectCreate(pattern, SetLocationDescriptor.class);
  -        result.addRule(pattern, setLocationRule);
  -        result.addSetLimitedProperties(pattern, "property", "propertyName");
  -        result.addSetTop(pattern, "setContainer");
  -        result.addSetNext(pattern, "addConfigurator");
  -
           pattern = "*/interceptor";
   
           result.addObjectCreate(pattern, InterceptorDescriptor.class);
  
  
  
  1.6       +0 -8      
jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/HiveMind_1.0.xsd
  
  Index: HiveMind_1.0.xsd
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/HiveMind_1.0.xsd,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- HiveMind_1.0.xsd  17 Jun 2003 21:13:04 -0000      1.5
  +++ HiveMind_1.0.xsd  18 Jun 2003 18:47:00 -0000      1.6
  @@ -238,14 +238,6 @@
                                        </xs:attribute>
                                </xs:complexType>
                        </xs:element>
  -                     <xs:element name="set-location">
  -                             <xs:annotation>
  -                                     <xs:documentation>Used to set a property of 
the object to the location that created the object.</xs:documentation>
  -                             </xs:annotation>
  -                             <xs:complexType>
  -                                     <xs:attributeGroup ref="property-setter"/>
  -                             </xs:complexType>
  -                     </xs:element>
                </xs:choice>
        </xs:complexType>
        <xs:element name="value" type="xs:string">
  
  
  
  1.3       +8 -1      
jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/AbstractInstanceBuilderDescriptor.java
  
  Index: AbstractInstanceBuilderDescriptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/AbstractInstanceBuilderDescriptor.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AbstractInstanceBuilderDescriptor.java    4 Jun 2003 23:52:47 -0000       1.2
  +++ AbstractInstanceBuilderDescriptor.java    18 Jun 2003 18:47:00 -0000      1.3
  @@ -64,6 +64,7 @@
   import org.apache.commons.lang.builder.ToStringBuilder;
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
  +import org.apache.tapestry.ILocationHolder;
   import org.apache.tapestry.Tapestry;
   
   /**
  @@ -110,6 +111,12 @@
        */
       protected void configureNewInstance(Object object, IModule module)
       {
  +     if (object instanceof ILocationHolder)
  +     {
  +             ILocationHolder holder = (ILocationHolder)object;
  +             holder.setLocation(getLocation());
  +     }
  +     
           int count = Tapestry.size(_configurators);
   
           if (count == 0)
  
  
  
  1.2       +15 -1     
jakarta-commons-sandbox/hivemind/src/test-data/sample/sample-registry.xml
  
  Index: sample-registry.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/test-data/sample/sample-registry.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- sample-registry.xml       17 Jun 2003 21:13:04 -0000      1.1
  +++ sample-registry.xml       18 Jun 2003 18:47:01 -0000      1.2
  @@ -45,7 +45,9 @@
                </service>
        </module>
        <module id="hivemind.test.config" uid="4" version="1.0.0">
  -             <configuration count="1" element-type="java.lang.String" 
id="hivemind.test.config.Required" uid="5"/>
  +             <configuration count="1" element-type="java.lang.String" 
id="hivemind.test.config.Required" uid="5">
  +             <description>Trouble maker.</description>
  +             </configuration>
        </module>
        <module id="zap.branigan" uid="6" version="1.0.1">
          <service id="zap.branigan.Futurama" interface="futurama.Robot" uid="7">
  @@ -60,4 +62,16 @@
                <value>foo</value>      
          </contribute-configuration>
        </module>
  +     
  +  <module id="teela" uid="10" version="1.0.0">
  +     <contribute-configuration 
configuration-id="org.apache.commons.hivemind.VariableSource" uid="11">
  +             <value>bar</value>      
  +                     <value>baz</value>      
  +       </contribute-configuration>
  +             
  +                       <contribute-service 
service-id="org.apache.commons.hivemind.LoggingInterceptor" uid="12">
  +             <interceptor service-id="teela.OneEye"/>
  +             <interceptor service-id="teela.BigBoots"/>
  +       </contribute-service>
  +  </module>
   </registry>
  
  
  
  1.2       +57 -5     jakarta-commons-sandbox/hivemind/src/xsl/hivemind.xsl
  
  Index: hivemind.xsl
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/src/xsl/hivemind.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- hivemind.xsl      17 Jun 2003 21:13:06 -0000      1.1
  +++ hivemind.xsl      18 Jun 2003 18:47:01 -0000      1.2
  @@ -161,15 +161,42 @@
                                </xsl:if>
                        </tbody>
                </table>
  -             <xsl:if test="*">
  +             <xsl:if test="*[local-name() != 'description']">
  +                     <h3>Internal Contributions</h3>
                        <ul>
                                <xsl:apply-templates/>
                        </ul>
                </xsl:if>
  +                                     
  +             <xsl:for-each select="/registry/module/[EMAIL PROTECTED] = 
current()/@id]">
  +               <xsl:sort select="../@id"/>
  +               
  +               <h3>Contributions from Module
  +               <a>
  +                 <xsl:attribute name="href">#<xsl:value-of 
select="@uid"/></xsl:attribute>
  +                 <xsl:value-of select="../@id"/>
  +               </a>  
  +               </h3>
  +               
  +               <ul>
  +                     <xsl:apply-templates select="*"/>       
  +               </ul>
  +                     
  +             </xsl:for-each>
  +
  +             
        </xsl:template>
        <xsl:template match="contribute-configuration">
  -             <h2> <xsl:attribute name="id"><xsl:value-of 
select="@uid"/></xsl:attribute> 
  -                     Contribute Configuration <xsl:value-of 
select="@configuration-id"/> </h2>
  +                                     <h2> <xsl:attribute name="id"><xsl:value-of 
select="@uid"/></xsl:attribute> 
  +                     Contribute Configuration 
  +                     
  +                     <a>
  +                             <xsl:attribute name="href">#<xsl:value-of 
select="/registry/module/[EMAIL PROTECTED] = 
current()/@configuration-id]/@uid"/></xsl:attribute>
  +                                     <xsl:value-of select="@configuration-id"/> 
  +                     </a>
  +                                     
  +                     </h2>
  +                     
                <ul>
                        <xsl:apply-templates/>
                </ul>
  @@ -201,15 +228,40 @@
                                </xsl:if>
                        </tbody>
                </table>
  -             <xsl:if test="*">
  +             <xsl:if test="*[local-name() != 'description']">
  +                     <h3>Internal Contributions</h3>
                        <ul>
                                <xsl:apply-templates/>
                        </ul>
                </xsl:if>
  +             
  +             <xsl:for-each select="/registry/module/[EMAIL PROTECTED] = 
current()/@id]">
  +               <xsl:sort select="../@id"/>
  +               
  +               <h3>Contributions from Module
  +               <a>
  +                 <xsl:attribute name="href">#<xsl:value-of 
select="@uid"/></xsl:attribute>
  +                 <xsl:value-of select="../@id"/>
  +               </a>  
  +               </h3>
  +               
  +               <ul>
  +                     <xsl:apply-templates select="*"/>       
  +               </ul>
  +                     
  +             </xsl:for-each>         
  +             
        </xsl:template>
        <xsl:template match="contribute-service">
                <h2> <xsl:attribute name="id"><xsl:value-of 
select="@uid"/></xsl:attribute> 
  -                     Contribute Service <xsl:value-of select="@configuration-id"/> 
</h2>
  +                     Contribute Service 
  +                     
  +                     <a>
  +                             <xsl:attribute name="href">#<xsl:value-of 
select="/registry/module/[EMAIL PROTECTED] = 
current()/@service-id]/@uid"/></xsl:attribute>
  +                                     <xsl:value-of select="@service-id"/> 
  +                     </a>
  +                                     
  +                     </h2>
                <ul>
                        <xsl:apply-templates/>
                </ul>
  
  
  

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

Reply via email to