hlship      2003/08/01 07:21:38

  Modified:    hivemind/xdocs descriptor.xml extension-points.xml
                        services.xml
               hivemind/src/java/org/apache/commons/hivemind/parse
                        ExtensionPointDescriptor.java DescriptorParser.java
               hivemind/src/test/hivemind/test/ant
                        TestConstructRegistry.java
               hivemind/src/java/org/apache/commons/hivemind/impl
                        ExtensionPointImpl.java RegistryBuilder.java
               hivemind maven.xml
               hivemind/src/test-data/sample org.example.toolbar.ui.xml
                        org.example.boostrap.xml
               hivemind/src/java/org/apache/commons/hivemind/ant
                        ConstructRegistry.java
               hivemind/src/xsl hivemind.xsl hivemind.css
  Added:       hivemind/src/test-data/TestConstructRegistry
                        testLocalRefs.xml LocalRefs.xml
  Log:
  Revise the HiveMind XSL stylesheet
  Remove the cache-elements attribute from <extension-point>: elements are now always 
cached
  Fix ConstructRegistry to expand local ids to qualified ids in the service-id 
attribute of <invoke-factory> and <interceptor>.
  
  Revision  Changes    Path
  1.15      +1 -10     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.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- descriptor.xml    31 Jul 2003 21:06:24 -0000      1.14
  +++ descriptor.xml    1 Aug 2003 14:21:38 -0000       1.15
  @@ -207,15 +207,6 @@
                                                (default): any number</li> 
<li><b>0..1</b>: optional</li> <li><b>1</b>
                                                : required</li> <li><b>1..n</b>: at 
least one</li> </ul> </td>
                                </tr>
  -                             <tr>
  -                                     <td>cache-elements</td>
  -                                     <td>boolean</td>
  -                                     <td>no</td>
  -                                     <td>If true (the default), then the list of 
elements created from the
  -                                             contributions are cached and reused on 
subsequent accesses. If
  -                                             false, then the list of elements is 
created fresh on each access to
  -                                             the configuration extension point.</td>
  -                             </tr>
        
                        </table>
                        
  
  
  
  1.2       +4 -11     jakarta-commons-sandbox/hivemind/xdocs/extension-points.xml
  
  Index: extension-points.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/xdocs/extension-points.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- extension-points.xml      31 Jul 2003 21:06:24 -0000      1.1
  +++ extension-points.xml      1 Aug 2003 14:21:38 -0000       1.2
  @@ -109,12 +109,6 @@
   first call to <code>Registry.getExtensionPointElements()</code>      for that 
extension point.
   </p>
   
  -<p>
  -In most cases, the element list is retained for future invocations of 
<code>getExtensionPointElements()</code>.
  -This is controlled by the <code>cache-elements</code> attribute of the 
&extension-point; element.  Set
  -<code>cache-elements</code> to <code>false</code> for configuration extension 
points that will be read just once.
  -</p>
  -
   </section>
   
   <section name="Substitution Symbols">
  @@ -156,12 +150,11 @@
   <p>
   This begs the question: where do symbol values come from?    The answser is 
application dependent.
   HiveMind itself defines a configuration extension point for this purpose: 
  -<code>hivemind.SymbolSource</code>.  Contributions to this extension point
  +<a 
href="base-registry/hivemind.html#extension-point:hivemind.SymbolSource">hivemind.SymbolSource</a>.
  Contributions to this extension point define
  +new objects that can provide values for symbols, and identify the order in which
  +these objects should be consulted.
   </p>
   
  -<p><b>TODO: Add link to generated master-module docs here.</b>
  -
  -</p>
   
   </subsection>        
   
  
  
  
  1.12      +4 -4      jakarta-commons-sandbox/hivemind/xdocs/services.xml
  
  Index: services.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/xdocs/services.xml,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- services.xml      31 Jul 2003 21:06:24 -0000      1.11
  +++ services.xml      1 Aug 2003 14:21:38 -0000       1.12
  @@ -168,7 +168,7 @@
                                simple HiveMind deployment descriptor. This is an XML 
file, named
                                hivemind.xml, that must be included in the module's 
META-INF directory.</p>
                        <source><![CDATA[
  -<?xml version="1.0" encoding="UTF-8"?>
  +<?xml version="1.0"?>
   <module id="com.myco.mypackage" version="1.0.0">
     <service id="Adder" interface="com.myco.mypackage.Adder"/>
   </module>
  @@ -199,7 +199,7 @@
                        <p>That's what we meant by a POJO. We'll create a second 
module to provide
                                this implementation.</p>
                        <source><![CDATA[
  -<?xml version="1.0" encoding="UTF-8"?>
  +<?xml version="1.0"?>
   <module id="com.myco.mypackage.impl" version="1.0.0">
     <extend-service service-id="com.myco.mypackage.Adder">
       <create-instance class="com.myco.mypackage.impl.AdderImpl"/>
  @@ -213,7 +213,7 @@
   ]]></source>
                        <p>Another module may provide an interceptor:</p>
                        <source><![CDATA[
  -<?xml version="1.0" encoding="UTF-8"?>
  +<?xml version="1.0"?>
   <moduleid="com.myco.anotherpackage" version="1.0.0">
     <dependency module-id="com.myco.mypackage"/>
     <extend-service service-id="com.myco.mypackage.Adder">
  
  
  
  1.1                  
jakarta-commons-sandbox/hivemind/src/test-data/TestConstructRegistry/testLocalRefs.xml
  
  Index: testLocalRefs.xml
  ===================================================================
  <?xml version="1.0"?>
  <registry>
      <module id="hivemind.test.config" uid="1" version="1.0.0">
          <service id="hivemind.test.config.MyService" uid="2">
              <invoke-factory service-id="hivemind.test.config.MyService"/>
              <interceptor service-id="hivemind.test.config.MyService"/>
          </service>
      </module>
  </registry>
  
  
  
  1.1                  
jakarta-commons-sandbox/hivemind/src/test-data/TestConstructRegistry/LocalRefs.xml
  
  Index: LocalRefs.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Id: LocalRefs.xml,v 1.1 2003/08/01 14:21:38 hlship Exp $ -->
  <module id="hivemind.test.config" version="1.0.0">
        
        <service id="MyService">
                
                <!-- Not a sensible contribution, but the point is to exercise the code
                           that expands the service-id in these elements to fully 
qualified ids. -->
        
                <invoke-factory service-id="MyService"/>
                <interceptor service-id="MyService"/>   
                
        </service>
  
  </module>
  
  
  
  1.3       +1 -13     
jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/ExtensionPointDescriptor.java
  
  Index: ExtensionPointDescriptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/ExtensionPointDescriptor.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ExtensionPointDescriptor.java     30 Jul 2003 22:34:53 -0000      1.2
  +++ ExtensionPointDescriptor.java     1 Aug 2003 14:21:38 -0000       1.3
  @@ -73,14 +73,12 @@
   {
       private String _id;
       private Occurances _count = Occurances.UNBOUNDED;
  -    private boolean _cacheElements;
       private Schema _schema;
   
       protected void extendDescription(ToStringBuilder builder)
       {
           builder.append("id", _id);
           builder.append("count", _count);
  -        builder.append("cacheElements", _cacheElements);
           builder.append("schema", _schema);
       }
   
  @@ -102,16 +100,6 @@
       public void setId(String string)
       {
           _id = string;
  -    }
  -
  -    public boolean getCacheElements()
  -    {
  -        return _cacheElements;
  -    }
  -
  -    public void setCacheElements(boolean b)
  -    {
  -        _cacheElements = b;
       }
   
       public Schema getSchema()
  
  
  
  1.16      +3 -7      
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.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- DescriptorParser.java     31 Jul 2003 21:06:25 -0000      1.15
  +++ DescriptorParser.java     1 Aug 2003 14:21:38 -0000       1.16
  @@ -148,7 +148,6 @@
       private static final int STATE_INTERCEPTOR = 7;
       private static final int STATE_EXTEND_SERVICE = 8;
   
  -
       /**
        * Used for both &lt;schema&;gt; within a &lt;extension-point&gt;,
        * and for &lt;parameters-schema&gt; within a
  @@ -157,8 +156,8 @@
       private static final int STATE_SCHEMA = 9;
       private static final int STATE_ELEMENT = 10;
       private static final int STATE_RULES = 11;
  -     private static final int STATE_INVOKE_FACTORY = 12;
  -     
  +    private static final int STATE_INVOKE_FACTORY = 12;
  +
       /**
        * Represents building Element hierarchy as a light-wieght DOM.
        */
  @@ -196,7 +195,6 @@
       static {
           EXTENSION_POINT_ATTRIBUTES.put("id", Boolean.TRUE);
           EXTENSION_POINT_ATTRIBUTES.put("occurs", Boolean.FALSE);
  -        EXTENSION_POINT_ATTRIBUTES.put("cache-elements", Boolean.FALSE);
       }
   
       private static final Map SERVICE_ATTRIBUTES = new HashMap();
  @@ -758,7 +756,6 @@
   
           checkAttributes(MODULE_ATTRIBUTES);
   
  -
           md.setModuleId(getAttribute("id"));
           md.setVersion(getAttribute("version"));
   
  @@ -790,7 +787,6 @@
               checkAttributes(EXTENSION_POINT_ATTRIBUTES);
   
               epd.setId(getAttribute("id"));
  -            epd.setCacheElements(getBooleanAttribute("cache-elements", true));
   
               String occurs = getAttribute("occurs");
   
  
  
  
  1.6       +22 -1     
jakarta-commons-sandbox/hivemind/src/test/hivemind/test/ant/TestConstructRegistry.java
  
  Index: TestConstructRegistry.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/test/hivemind/test/ant/TestConstructRegistry.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- TestConstructRegistry.java        29 Jul 2003 22:20:49 -0000      1.5
  +++ TestConstructRegistry.java        1 Aug 2003 14:21:38 -0000       1.6
  @@ -163,6 +163,27 @@
   
           compare(output, "src/test-data/TestConstructRegistry/testBasic.xml");
       }
  +    
  +     public void testLocalRefs() throws Exception
  +     {
  +             ConstructRegistry cr = create();
  +
  +             Path p = cr.createDescriptors();
  +
  +             p.createPath().setLocation(new 
File("src/test-data/TestConstructRegistry/LocalRefs.xml"));
  +
  +             File output = File.createTempFile("testLocalRefs-", ".xml");
  +
  +             // Delete the file, to force the task to re-create it.
  +
  +             output.delete();
  +
  +             cr.setOutput(output);
  +
  +             cr.execute();
  +
  +             compare(output, 
"src/test-data/TestConstructRegistry/testLocalRefs.xml");
  +     } 
   
       public void testUptoDate() throws Exception
       {
  
  
  
  1.3       +11 -26    
jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/impl/ExtensionPointImpl.java
  
  Index: ExtensionPointImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/impl/ExtensionPointImpl.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ExtensionPointImpl.java   30 Jul 2003 22:34:52 -0000      1.2
  +++ ExtensionPointImpl.java   1 Aug 2003 14:21:38 -0000       1.3
  @@ -82,20 +82,18 @@
   {
       private static final Log LOG = LogFactory.getLog(ExtensionPointImpl.class);
   
  -     /**
  -      * The cached elements for the extension point (if caching is enabled).
  -      */
  -     private List _elements;
  +    /**
  +     * The cached elements for the extension point (if caching is enabled).
  +     */
  +    private List _elements;
       private Occurances _expectedCount;
       private List _extensions;
  -    private boolean _cacheElements;
       private boolean _building;
       private Schema _schema;
   
       protected void extendDescription(ToStringBuilder builder)
       {
           builder.append("expectedCount", _expectedCount);
  -        builder.append("cacheElements", _cacheElements);
           builder.append("extensions", _extensions);
           builder.append("schema", _schema);
       }
  @@ -136,9 +134,9 @@
   
       public synchronized List getElements()
       {
  -     if (_elements != null)
  -             return _elements;
  -             
  +        if (_elements != null)
  +            return _elements;
  +
           if (_building)
               throw new ApplicationRuntimeException(
                   HiveMind.format(
  @@ -156,12 +154,9 @@
               // the schema and extensions (used to build the
               // result); it can all be released to the GC.
   
  -            if (_cacheElements)
  -            {
  -             _elements = result;
  -                _schema = null;
  -                _extensions = null;
  -            }
  +            _elements = result;
  +            _schema = null;
  +            _extensions = null;
   
               return result;
           }
  @@ -210,16 +205,6 @@
                   ex);
           }
   
  -    }
  -
  -    public boolean getCacheElements()
  -    {
  -        return _cacheElements;
  -    }
  -
  -    public void setCacheElements(boolean b)
  -    {
  -        _cacheElements = b;
       }
   
       public Schema getSchema()
  
  
  
  1.16      +1 -2      
jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/impl/RegistryBuilder.java
  
  Index: RegistryBuilder.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/impl/RegistryBuilder.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- RegistryBuilder.java      31 Jul 2003 21:06:24 -0000      1.15
  +++ RegistryBuilder.java      1 Aug 2003 14:21:38 -0000       1.16
  @@ -303,7 +303,6 @@
               point.setLocation(epd.getLocation());
               point.setModule(module);
               point.setExpectedCount(epd.getCount());
  -            point.setCacheElements(epd.getCacheElements());
               point.setSchema(epd.getSchema());
   
               module.addExtensionPoint(point);
  
  
  
  1.5       +5 -1      jakarta-commons-sandbox/hivemind/maven.xml
  
  Index: maven.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/maven.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- maven.xml 20 Jun 2003 14:00:29 -0000      1.4
  +++ maven.xml 1 Aug 2003 14:21:38 -0000       1.5
  @@ -11,6 +11,10 @@
                </taskdef>
                <manifestClassPath property="hivemind.manifest.class.path">
                        <classpath>
  +                             
  +                             <!-- This, unforutnately, includes a few dependencies 
we don't want, but
  +                                        that's largely OK. -->
  +                                        
                                <path refid="maven.dependency.classpath"/>
                        </classpath>
                </manifestClassPath>
  
  
  
  1.5       +38 -29    
jakarta-commons-sandbox/hivemind/src/test-data/sample/org.example.toolbar.ui.xml
  
  Index: org.example.toolbar.ui.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/test-data/sample/org.example.toolbar.ui.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- org.example.toolbar.ui.xml        9 Jul 2003 11:27:25 -0000       1.4
  +++ org.example.toolbar.ui.xml        1 Aug 2003 14:21:38 -0000       1.5
  @@ -1,54 +1,63 @@
   <?xml version="1.0" encoding="UTF-8"?>
   <!-- $Id$ -->
  -<module xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  -     
xsi:noNamespaceSchemaLocation="http://jakarta.apache.org/commons/hivemind/schema/HiveMind_1.0.xsd";
  -     id="org.example.ui.toolbar" version="1.0.1">
  +<module      id="org.example.ui.toolbar" version="1.0.1">
        <description>
        Module for managing the application toolbar.
        </description>
  -     <dependency module-id="org.example.bootstrap"/>
        
  -     <configuration id="Toolbar"
  -             element-type="org.example.ui.toolbar.ToolbarItem"
  +     <extension-point id="Toolbar"
                count="1..n">
                <description>
                Items which may appear on the toolbar.  
                </description>
                
  -             <new>
  -                     <set-message property="label" key="quit.label"/>
  -                     <set property="mneumonic" value="Q"/>
  -                     <set property="order" value="1"/>
  -                     <set-create property="callback" 
class="org.example.ui.toolbar.impl.QuitCallback"/>              
  -             </new>
  +             <schema>
  +                     <element name="item">
  +                             <attribute name="label" required="true"/>
  +                             <attribute name="mnuemonic"/>
  +                             <attribute name="order"/>
  +                             <attribute name="callback" required="true"/>
  +                             
  +                             <rules>
  +                                     <create-object 
class="org.example.ui.toolbar.ToolbarItem"/>
  +                                     <read-attribute property="label" 
attribute="label"/>
  +                                     <read-attribute property="mnuemonic" 
attribute="mnuemonic"/>
  +                                     <read-attribute property="order" 
attribute="order" translator="int"/>
  +                                     <read-attribute property="callback" 
attribute="callback" translator="class"/>   
  +                             </rules>        
  +                     </element>      
  +             </schema>
     
  -  </configuration>
  +  </extension-point>
  +  
  +  <extension point-id="Toolbar">
  +     <item 
  +                     label="%quit.label"
  +                     mnuemonic="Q"
  +                     order="1"
  +                     callback="org.example.ui.toolbar.impl.QuitCallback"/>   
  +  </extension>
        
        <service id="ToolbarManager" 
interface="org.example.ui.toolbar.IToolbarManager">
                <description>Service for accessing the toolbar.</description>
                <create-instance 
class="org.example.ui.toolbar.impl.ToolbarManagerService"/>
  -             <interceptor 
service-id="org.apache.commons.hivemind.LoggingInterceptor"/>
  +             <interceptor service-id="hivemind.LoggingInterceptor"/>
        </service>
        
  -     <contribute-configuration 
configuration-id="org.apache.commons.hivemind.SymbolSource">
  -             <new>
  -                      <set property="order" value="100"/>
  -                      <set-create property="source" 
class="org.example.toolbar.ui.impl.PreferencesSymbolSource"/>
  -             </new>  
  -     </contribute-configuration>
  +     <extension point-id="hivemind.SymbolSource">
  +             <source class="org.example.toolbar.ui.impl.PreferencesSymbolSource" 
order="100"/>
  +     </extension>
        
  -     <contribute-configuration configuration-id="org.example.bootstrap.Bootstrap">
  -             <create-instance class="org.example.ui.toolbar.impl.ToolbarStartup"/>
  -     </contribute-configuration>
  +     <extension point-id="org.example.bootstrap.Bootstrap">
  +             <run class="org.example.ui.toolbar.impl.ToolbarStartup"/>
  +     </extension>
        
        <service id="ToolbarDAO" interface="org.example.ejb.toolbar.ToolBarDAO">
                <description>
                Wrapper around the ToolBarDAO session EJB.      
                </description>
  -             <service-factory 
service-id="org.apache.commons.hivemind.EJBProxyFactory">
  -                     <parameters>
  -                             <value>org.example.ejb.toolbar.ToolBarDAO</value>      
 
  -                     </parameters>   
  -             </service-factory>      
  +             <invoke-factory service-id="hivemind.EJBProxyFactory">
  +               <parameters jndiName="org.example.ejb.toolbar.ToolBarDAO"/>
  +             </invoke-factory>       
        </service>
   </module>
  
  
  
  1.2       +21 -8     
jakarta-commons-sandbox/hivemind/src/test-data/sample/org.example.boostrap.xml
  
  Index: org.example.boostrap.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/test-data/sample/org.example.boostrap.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- org.example.boostrap.xml  20 Jun 2003 14:00:30 -0000      1.1
  +++ org.example.boostrap.xml  1 Aug 2003 14:21:38 -0000       1.2
  @@ -1,17 +1,30 @@
   <?xml version="1.0" encoding="UTF-8"?>
   <!-- $Id$ -->
  -<module xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  -     
xsi:noNamespaceSchemaLocation="http://jakarta.apache.org/commons/hivemind/schema/HiveMind_1.0.xsd";
  -     id="org.example.bootstrap" version="1.0.0">
  +<module id="org.example.bootstrap" version="1.0.0">
        <description>
        Contains the boostrap service used to startup the application.
        </description>
        
  -     <configuration id="Bootstrap"
  -             element-type="java.lang.Runnable"
  -             cache-elements="false">
  +     <extension-point id="Bootstrap">
                <description>Provides a list of Runnable objects used to startup the 
application.</description>
  -     </configuration>
  +             
  +             <schema>
  +                     <element name="run">
  +                             <description>An object that may be run.</description>  
 
  +                             
  +                             <attribute name="class" required="true">
  +                                     <description>
  +                                     The name of the class to instantiate, which 
must implement Runnable.    
  +                                     </description>  
  +                             </attribute>
  +                             
  +                             <rules>
  +                                     <push-attribute attribute="class" 
translator="class"/>
  +                                     <invoke-parent method="addElement"/>    
  +                             </rules>
  +                     </element>      
  +             </schema>
  +     </extension-point>
        
        <service id="Bootstrap" interface="java.lang.Runnable">
                <description>The service which actually bootstraps the 
application.</description>
  
  
  
  1.5       +40 -25    
jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/ant/ConstructRegistry.java
  
  Index: ConstructRegistry.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/ant/ConstructRegistry.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ConstructRegistry.java    29 Jul 2003 22:20:50 -0000      1.4
  +++ ConstructRegistry.java    1 Aug 2003 14:21:38 -0000       1.5
  @@ -149,7 +149,7 @@
   
       }
   
  -    protected DocumentBuilder getBuilder() throws ParserConfigurationException
  +    private DocumentBuilder getBuilder() throws ParserConfigurationException
       {
           DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
   
  @@ -158,7 +158,7 @@
           return factory.newDocumentBuilder();
       }
   
  -    protected Document constructRegistry(File[] moduleDescriptors) throws 
BuildException
  +    private Document constructRegistry(File[] moduleDescriptors) throws 
BuildException
       {
           try
           {
  @@ -232,7 +232,7 @@
           return result;
       }
   
  -    protected void writeDocument(Document document, File file) throws BuildException
  +    private void writeDocument(Document document, File file) throws BuildException
       {
           try
           {
  @@ -251,7 +251,7 @@
           }
       }
   
  -    protected void prepareModuleForInclusion(Element module)
  +    private void prepareModuleForInclusion(Element module)
       {
           NamedNodeMap attributes = module.getAttributes();
   
  @@ -282,29 +282,18 @@
                   String name = e.getTagName();
   
                   if (name.equals("service") || name.equals("extension-point"))
  -                {
  -                    String fullId = moduleId + "." + e.getAttribute("id");
  +                    qualify(moduleId, e, "id");
   
  -                    e.setAttribute("id", fullId);
  -                }
  +                // Expand local ids to fully qualified ids in extension and 
extend-service
   
  -                             // Expand local ids to fully qualified ids in 
extension and extend-service
  -                             
                   if (name.equals("extension"))
  -                {
  -                    String id = e.getAttribute("point-id");
  -
  -                    if (id.indexOf('.') <= 0)
  -                        e.setAttribute("point-id", moduleId + "." + id);
  -                }
  +                    qualify(moduleId, e, "point-id");
   
                   if (name.equals("extend-service"))
  -                {
  -                    String id = e.getAttribute("service-id");
  +                    qualify(moduleId, e, "service-id");
   
  -                    if (id.indexOf('.') <= 0)
  -                        e.setAttribute("service-id", moduleId + "." + id);
  -                }
  +                if (name.equals("service") || name.equals("extend-service"))
  +                    qualifyServiceIds(moduleId, e);
   
               }
   
  @@ -312,17 +301,43 @@
           }
       }
   
  -    protected void writeDocument(Document document, OutputStream out) throws 
IOException
  +    private void qualify(String moduleId, Element element, String attributeName)
       {
  -        XMLSerializer serializer = new XMLSerializer(out, new 
OutputFormat(document, null, true));
  +        String id = element.getAttribute(attributeName);
  +
  +        if (id.indexOf('.') < 0)
  +            element.setAttribute(attributeName, moduleId + "." + id);
  +    }
  +
  +    private void qualifyServiceIds(String moduleId, Element element)
  +    {
  +        Node node = element.getFirstChild();
  +
  +        while (node != null)
  +        {
  +            if (node instanceof Element)
  +            {
  +                Element e = (Element) node;
   
  +                String name = e.getTagName();
  +
  +                if (name.equals("invoke-factory") || name.equals("interceptor"))
  +                    qualify(moduleId, e, "service-id");
  +            }
  +
  +            node = node.getNextSibling();
  +        }
  +    }
  +
  +    private void writeDocument(Document document, OutputStream out) throws 
IOException
  +    {
  +        XMLSerializer serializer = new XMLSerializer(out, new 
OutputFormat(document, null, true));
           serializer.serialize(document);
       }
   
       public Path createDescriptors()
       {
           _descriptorsPath = new Path(project);
  -
           return _descriptorsPath;
       }
   
  
  
  
  1.11      +191 -366  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.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- hivemind.xsl      9 Jul 2003 18:55:45 -0000       1.10
  +++ hivemind.xsl      1 Aug 2003 14:21:38 -0000       1.11
  @@ -43,14 +43,14 @@
                                <table class="summary">
   
                                <tr>
  -                                     <th class="subhead">Configuration Extension 
Points</th> 
  -                                     <th class="subhead">Service Extension 
Points</th>
  +                                     <th class="subhead">Extension Points</th>      
 
  +                                     <th class="subhead">Services</th>
                                </tr>
                                
                                <tr>
                                        <td>
                                                
  -                                             <xsl:for-each 
select="/registry/module/configuration">
  +                                             <xsl:for-each 
select="/registry/module/extension-point">
                                                        <xsl:sort select="@id"/>       
 
                                                        
                                                        <xsl:apply-templates 
select="." mode="link"/>
  @@ -103,15 +103,6 @@
                                                <xsl:value-of select="@version"/>
                                        </td>
                                </tr>
  -                             <tr>
  -                                     <th>Class</th>
  -                                     <td colspan="2">
  -                                             <xsl:if test="not(@class)">
  -                                                     <span 
class="missing">default</span>
  -                                             </xsl:if>
  -                                             <xsl:value-of select="@class"/>
  -                                     </td>
  -                             </tr>
                                <xsl:if test="description">
                                        <tr>
                                                <td class="description" colspan="3">
  @@ -119,6 +110,10 @@
                                                </td>
                                        </tr>
                                </xsl:if>
  +                             
  +                             <!-- Dependencies are not yet back into the picture, 
but
  +                                        we'll just leave this in place for the 
meantime. -->
  +                                        
                                <xsl:if test="count(dependency)">
                                        <tr>
                                                <th>Dependencies</th>
  @@ -143,38 +138,19 @@
                                                </tr>
                                        </xsl:for-each>
                                </xsl:if>
  -                             <xsl:for-each select="meta">
  -                                     <xsl:sort select="@key"/>
  -                                     <xsl:if test="position() = 1">
  -                                             <tr>
  -                                                     <th>Meta Data</th>
  -                                                     <th class="subhead">Key</th>
  -                                                     <th class="subhead">Value</th>
  -                                             </tr>
  -                                     </xsl:if>
  -                                     <tr>
  -                                             <th/>
  -                                             <td>
  -                                                     <xsl:value-of select="@key"/>
  -                                             </td>
  -                                             <td>
  -                                                     <xsl:value-of select="@value"/>
  -                                             </td>
  -                                     </tr>
  -                             </xsl:for-each>
                        </tbody>
                </table>
   
  -             <xsl:apply-templates select="configuration">
  +             <xsl:apply-templates select="extension-point">
                        <xsl:sort select="@id"/>
                </xsl:apply-templates>
                <xsl:apply-templates select="service">
                        <xsl:sort select="@id"/>
                </xsl:apply-templates>
  -             <xsl:apply-templates select="contribute-configuration">
  -                     <xsl:sort select="@configuration-id"/>
  +             <xsl:apply-templates select="extension">
  +                     <xsl:sort select="@point-id"/>
                </xsl:apply-templates>
  -             <xsl:apply-templates select="contribute-service">
  +             <xsl:apply-templates select="extend-service">
                        <xsl:sort select="@service-id"/>
                </xsl:apply-templates>
                
  @@ -189,51 +165,25 @@
   
        </xsl:template>
        
  -     <xsl:template match="configuration" mode="link">
  +     <xsl:template match="extension-point" mode="link">
        
        <a href="{../@[EMAIL PROTECTED]"><xsl:value-of select="@id"/></a>       
                
        </xsl:template>
        
  -     <xsl:template match="configuration">
  +     <xsl:template match="extension-point">
  +             <a name="extension-point:[EMAIL PROTECTED]"/>
                <h2 id="[EMAIL PROTECTED]">
  -                     Configuration <xsl:value-of select="@id"/> </h2>
  +                     Extension Point <xsl:value-of select="@id"/> </h2>
                <table class="summary">
                        <tbody>
                                <tr>
  -                                     <th>Element Type</th>
  -                                     <td>
  -                                             <xsl:value-of select="@element-type"/>
  -                                     </td>
  -                             </tr>
  -                             <xsl:if test="@element-class">
  -                             <tr>
  -                                     <th>Element Class</th>  
  -                                     <td><xsl:value-of 
select="@element-class"/></td>
  -                             </tr>   
  -                             </xsl:if>
  -                             <xsl:if test="@factory-id">
  -                             <tr>
  -                                     <th>Element Factory Id</th>
  -                                     <td>
  -     <xsl:apply-templates select="/registry/module/[EMAIL PROTECTED] = 
current()/@factory-id]" mode="link"/>                                 
  -                                     </td>
  -                             </tr>   
  -                             </xsl:if>
  -                             <tr>
                                        <th>Expected Count</th>
                                        <td>
                                                <xsl:if 
test="not(@count)">unbounded</xsl:if>
                                                <xsl:value-of select="@count"/>
                                        </td>
                                </tr>
  -                             <tr>
  -                                     <th>Cached</th>
  -                                     <td>
  -                                             <xsl:if 
test="not(@cache-elements)">true</xsl:if>
  -                                             <xsl:value-of 
select="@cache-elements"/>
  -                                     </td>
  -                             </tr>
                                <xsl:if test="description">
                                        <tr>
                                                <td colspan="2" class="description">
  @@ -243,17 +193,12 @@
                                </xsl:if>
                        </tbody>
                </table>
  -             <xsl:if test="*[local-name() != 'description']">
  -                     <h3>Internal Contributions</h3>
  -                     <ul>
  -                             <xsl:apply-templates/>
  -                     </ul>
  -             </xsl:if>
  +             <xsl:apply-templates select="schema"/>
                                        
  -             <xsl:for-each select="/registry/module/[EMAIL PROTECTED] = 
current()/@id]">
  +             <xsl:for-each select="/registry/module/[EMAIL PROTECTED] = 
current()/@id]">
                  <xsl:sort select="../@id"/>
                  
  -               <h3>Contributions from Module
  +               <h3>Extensions from module
                
                  <a href="{../@[EMAIL PROTECTED]">
                    <xsl:value-of select="../@id"/>
  @@ -261,7 +206,7 @@
                  </h3>
                  
                  <ul>
  -                     <xsl:apply-templates select="*"/>       
  +                     <xsl:apply-templates select="*" mode="raw"/>    
                  </ul>
                        
                </xsl:for-each>
  @@ -269,16 +214,131 @@
                
        </xsl:template>
        
  -     <xsl:template match="contribute-configuration">
  +     <xsl:template match="schema">
  +             
  +                     <h3>Schema</h3>
  +
  +                     <table class="summary">
  +                     <tbody>
  +                             
  +                             <xsl:apply-templates/>
  +                             
  +                     </tbody>                
  +                     </table>
  +
  +     </xsl:template>
  +     
  +     <xsl:template match="parameters-schema">
  +             
  +                     <h3>Parameters Schema</h3>
  +
  +                     <table class="summary">
  +                     <tbody>
  +                             
  +                             <xsl:apply-templates/>
  +                             
  +                     </tbody>                
  +                     </table>
  +
  +     </xsl:template> 
  +     
  +     
  +     <xsl:template match="element">
  +             
  +             <tr>
  +                     <th class="section-id" colspan="3">Element &lt;<xsl:value-of 
select="@name"/>&gt;</th>  
  +                     
  +             </tr>
  +             
  +                             <xsl:if test="description">
  +                                     <tr>
  +                                             <td colspan="3" class="description">
  +                                                     <xsl:value-of 
select="description"/>
  +                                             </td>
  +                                     </tr>
  +                             </xsl:if>
  +                             
  +                             <xsl:for-each select="attribute">
  +                                     <xsl:sort select="name"/>
  +                             
  +                                     <xsl:apply-templates select="."/>       
  +                                     
  +                             </xsl:for-each> 
  +                             
  +                             <xsl:if test="rules">
  +                                     <tr>
  +                                     <td/>
  +                                     
  +                                     <td colspan="2">
  +                                             <h3>Rules</h3>  
  +                                             
  +                                                     <ul>
  +                                                             <xsl:apply-templates 
select="rules/*" mode="raw"/>
  +                                                     </ul>
  +                                             
  +                                     </td>   
  +                                             
  +                                     </tr>
  +                     
  +
  +                             </xsl:if>
  +                             
  +                             <xsl:if test="element">
  +                             
  +                             <tr>
  +                             <td/>
  +                                     <td colspan="2">
  +                     <table class="summary">
  +                     <tbody>
  +                             
  +                             <xsl:apply-templates select="element"/>
  +                             
  +                     </tbody>                
  +                     </table>                                        
  +                             </td>   
  +                             </tr>   
  +                                     
  +                             </xsl:if>
  +             
  +     </xsl:template>
  +     
  +     <xsl:template match="attribute">
  +     
  +     <tr>
  +             <td/>
  +             <td>Attribute <xsl:value-of select="@name"/></td>
  +             <td>
  +                     <xsl:choose>
  +                             <xsl:when test="@required = 'true'">
  +                                     Required        
  +                             </xsl:when>     
  +                             <xsl:otherwise>
  +                                     Optional        
  +                             </xsl:otherwise>
  +                     </xsl:choose>
  +             </td>
  +     </tr>   
  +             
  +                     <xsl:if test="description">
  +                                     <tr>
  +                                             <td/>
  +                                             <td colspan="2" class="description">
  +                                                     <xsl:value-of 
select="description"/>
  +                                             </td>
  +                                     </tr>
  +                             </xsl:if>
  +     </xsl:template>
  +     
  +     <xsl:template match="extension">
                                        <h2> <xsl:attribute name="id"><xsl:value-of 
select="@uid"/></xsl:attribute> 
  -                     Contribute Configuration 
  +                     Extension
                        
  -                     <xsl:apply-templates select="/registry/module/[EMAIL 
PROTECTED] = current()/@configuration-id]" mode="link"/>
  +                     <xsl:apply-templates select="/registry/module/[EMAIL 
PROTECTED] = current()/@point-id]" mode="link"/>
                                        
                        </h2>
                        
                <ul>
  -                     <xsl:apply-templates/>
  +                     <xsl:apply-templates mode="raw"/>
                </ul>
        </xsl:template>
        
  @@ -289,6 +349,7 @@
        </xsl:template>
        
        <xsl:template match="service">
  +             <a name="service:[EMAIL PROTECTED]"/>
                <h2 id="[EMAIL PROTECTED]">
                        Service <xsl:value-of select="@id"/> </h2>
                <table class="summary">
  @@ -322,33 +383,39 @@
                                </xsl:if>
                        </tbody>
                </table>
  -             <xsl:if test="*[local-name() != 'description']">
  -                     <h3>Internal Contributions</h3>
  +             
  +             <xsl:apply-templates select="parameters-schema"/>
  +             
  +             <xsl:if test="create-instance|invoke-factory|interceptor">
  +                                     
  +             <h3>Internal Contributions</h3>
  +             
                        <ul>
  -                             <xsl:apply-templates/>
  +                             <xsl:apply-templates 
select="create-instance|invoke-factory|interceptor"/>
                        </ul>
                </xsl:if>
  +
                
  -             <xsl:for-each select="/registry/module/[EMAIL PROTECTED] = 
current()/@id]">
  +             <xsl:for-each select="/registry/module/[EMAIL PROTECTED] = 
current()/@id]">
                  <xsl:sort select="../@id"/>
                  
  -               <h3>Contributions from Module
  +               <h3>Extensions from module
                  <a href="{../@[EMAIL PROTECTED]">
                    <xsl:value-of select="../@id"/>
                  </a>  
                  </h3>
                  
                  <ul>
  -                     <xsl:apply-templates select="*"/>       
  +                     <xsl:apply-templates/>  
                  </ul>
                        
                </xsl:for-each>         
                
        </xsl:template>
        
  -     <xsl:template match="contribute-service">
  +     <xsl:template match="extend-service">
                <h2> <xsl:attribute name="id"><xsl:value-of 
select="@uid"/></xsl:attribute> 
  -                     Contribute Service 
  +                     Service Extension
                        
                        <xsl:apply-templates select="/registry/module/[EMAIL 
PROTECTED] = current()/@service-id]" mode="link"/>
                                        
  @@ -358,165 +425,25 @@
                </ul>
        </xsl:template>
        
  -     <xsl:template match="description">
  -             <!-- Ignore, matched in places we'd rather not. -->
  -     </xsl:template>
  -     
  -     <xsl:template match="expression">
  -             <li>
  -                     <span class="tag">&lt;expression&gt;</span>
  -                     <span class="expression">
  -                             <xsl:value-of select="."/>
  -                     </span>
  -                     <span class="tag">&lt;/expression&gt;</span>
  -             </li>
  -     </xsl:template>
  -     
  -     <xsl:template match="value">
  -             <li>
  -                     <span class="tag">&lt;value&gt;</span>
  -                     <span class="literal">
  -                             <xsl:value-of select="."/>
  -                     </span>
  -                     <span class="tag">&lt;/value&gt;</span>
  -             </li>
  -     </xsl:template>
  -     
  -     <xsl:template match="service-ref">
  -             <li> 
  -                     <span class="tag">&lt;service-ref</span> 
  -                     <span class="attribute"> 
service-id</span>="<xsl:apply-templates select="/registry/module/[EMAIL PROTECTED] = 
current()/@service-id]" mode="link"/>"
  -               <span class="tag">/&gt;</span> 
  -             </li>
  -     </xsl:template>
  -     
  -     <xsl:template match="xml">
  -             <li> 
  -                     <span class="tag">&lt;xml</span>
  -                     <span class="attribute">  path</span>="<xsl:value-of 
select="@path"/>"
  -                     <span class="tag">/&gt;</span> 
  -             </li>
  -     </xsl:template>
  -     
  -     <xsl:template match="set-xml">
  -             <li>
  -                     <span class="tag">&lt;set-xml</span>
  -                     <span class="attribute"> property</span>="<xsl:value-of 
select="@property"/>" 
  -                     <span class="attribute"> path</span>="<xsl:value-of 
select="@path"/>"
  -                     <span class="tag">/&gt;</span>
  -             </li>
  -     </xsl:template>
  -     
        <xsl:template match="create-instance">
                <li>
  -                     <span class="tag">&lt;create-instance</span> 
  +                     <span class="tag">&lt;create-instance</span>
                        <span class="attribute"> class</span>="<xsl:value-of 
select="@class"/>"
  -                     
  -                     <xsl:choose> 
  -                             <xsl:when       test="*"> 
  -                             <span class="tag">&gt;</span>
  -                             <ul> 
  -                               <xsl:apply-templates/> 
  -                             </ul> 
  -                       <span class="tag">&lt;/create-instance&gt;</span>
  -                     </xsl:when> 
  -                     <xsl:otherwise>
  -                       <span class="tag">/&gt;</span>
  -                     </xsl:otherwise> 
  -                     </xsl:choose>
  -             </li>
  -     </xsl:template>
  -     
  -     <xsl:template match="set-create">
  -             <li>
  -                     <span class="tag">&lt;set-create</span>
  -                     <span class="attribute"> property</span>="<xsl:value-of 
select="@property"/>"
  -                     <span   class="attribute">class</span>="<xsl:value-of 
select="@class"/>" 
  -                     <xsl:choose>
  -                             <xsl:when test="*">
  -                                     <span class="tag">&gt;</span> 
  -                                     <ul> 
  -                                             <xsl:apply-templates/> 
  -                                     </ul> 
  -                               <span class="tag">&lt;/set-create&gt;</span> 
  -                             </xsl:when>
  -                       <xsl:otherwise>
  -                             <span class="tag">/&gt;</span>
  -                       </xsl:otherwise>
  -                     </xsl:choose>
  -       </li>
  -     </xsl:template>
  -     
  -     
  -     <xsl:template match="factory">
  -             <li>
  -                     <span class="tag">&lt;factory</span> 
  -                     <span class="attribute"> 
service-id</span>="<xsl:apply-templates select="/registry/module/[EMAIL PROTECTED] = 
current()/@service-id]" mode="link"/>"
  -                             
  -                     <xsl:choose>
  -                             <xsl:when test="*"> 
  -                               <span class="tag">&gt;</span> 
  -                               <ul> 
  -                                 <xsl:apply-templates/>
  -                               </ul> 
  -                               <span class="tag">&lt;/factory&gt;</span> 
  -                     </xsl:when>
  -               <xsl:otherwise>
  -                      <span class="tag">/&gt;</span> 
  -                     </xsl:otherwise> 
  -             </xsl:choose> 
  -      </li>
  +                     <span class="tag">/&gt;</span>
  +             </li>   
        </xsl:template>
        
  -             <xsl:template match="service-factory">
  +     <xsl:template match="invoke-factory">
                <li>
  -                     <span class="tag">&lt;service-factory</span> 
  +                     <span class="tag">&lt;invoke-factory</span>
                        <span class="attribute"> 
service-id</span>="<xsl:apply-templates select="/registry/module/[EMAIL PROTECTED] = 
current()/@service-id]" mode="link"/>"
  -                             
  -                     <xsl:choose>
  -                             <xsl:when test="*"> 
  -                               <span class="tag">&gt;</span> 
  -                               <ul> 
  -                                 <xsl:apply-templates/>
  -                               </ul> 
  -                               <span class="tag">&lt;/service-factory&gt;</span> 
  -                     </xsl:when>
  -               <xsl:otherwise>
  -                      <span class="tag">/&gt;</span> 
  -                     </xsl:otherwise> 
  -             </xsl:choose> 
  -      </li>
  -     </xsl:template>
  -     
  -     <xsl:template match="parameters">
  -     <li>
  -             <span class="tag">&lt;parameters&gt;</span>
  -             <ul>
  -                     <xsl:apply-templates/>  
  -             </ul>
  -             <span class="tag">&lt;/parameters&gt;</span>
  -     </li>   
  -     </xsl:template>
  -     
  -     <xsl:template match="set-factory">
  -             <li>
  -                     <span class="tag">&lt;set-factory</span> 
  -                     <span class="attribute"> property</span>="<xsl:value-of 
select="@property"/>"
  -                     <span class="attribute"> 
service-id</span>="<xsl:apply-templates select="/registry/module/[EMAIL PROTECTED] = 
current()/@service-id]" mode="link"/>"
  -                             
  -                     <xsl:choose>
  -                             <xsl:when test="*"> 
  -                               <span class="tag">&gt;</span> 
  -                               <ul> 
  -                                 <xsl:apply-templates/>
  -                               </ul> 
  -                               <span class="tag">&lt;/set-factory&gt;</span> 
  -                     </xsl:when>
  -               <xsl:otherwise>
  -                      <span class="tag">/&gt;</span> 
  -                     </xsl:otherwise> 
  -             </xsl:choose> 
  -      </li>
  +                     <xsl:if test="*">
  +                             <ul>
  +                                     <xsl:apply-templates mode="raw"/>       
  +                             </ul>   
  +                     </xsl:if>
  +                     <span class="tag">&lt;/invoke-factory&gt;</span>
  +             </li>                   
        </xsl:template>
        
        <xsl:template match="interceptor">
  @@ -530,135 +457,33 @@
                        <span class="tag">/&gt;</span> </li>
        </xsl:template>
        
  -     
  -     <xsl:template match="set-expression">
  -             <li> 
  -             <span class="tag">&lt;set-expression</span>
  -             <span class="attribute"> property</span>="<xsl:value-of 
select="@property"/>" 
  -                     
  -             <xsl:if test="@expression">
  -                     <span class="attribute"> expression</span>="<span       
class="expression"><xsl:value-of select="@expression"/></span>"
  -             </xsl:if> 
  -             
  -             <xsl:choose> 
  -                     <xsl:when test="normalize-space()"> 
  -                             <span class="tag">&gt;</span>
  -                       <span class="expression"><xsl:value-of select="."/></span>
  -                       <span class="tag">&lt;/set-expression&gt;</span> 
  -                     </xsl:when> 
  -                     <xsl:otherwise> 
  -                             <span class="tag">/&gt;</span>
  -                     </xsl:otherwise> 
  -             </xsl:choose> 
  -             </li>
  -     </xsl:template>
  -     
  -     <xsl:template match="set">
  -             <li>
  -                     <span class="tag">&lt;set</span> 
  -                     <span class="attribute"> property</span>="<xsl:value-of 
select="@property"/>" 
  -                             
  -                     <xsl:if test="@value"> 
  -                             <span   class="attribute">value</span>="<span 
class="literal"><xsl:value-of select="@value"/></span>"
  -                     </xsl:if> 
  -                             
  -                     <xsl:choose> 
  -                             <xsl:when       test="normalize-space()"> 
  -                               <span class="tag">&gt;</span> 
  -                               <span class="literal"><xsl:value-of 
select="."/></span> 
  -                               <span class="tag">&lt;/set&gt;</span> 
  -                       </xsl:when> 
  -                       <xsl:otherwise> 
  -                         <span class="tag">/&gt;</span>
  -                       </xsl:otherwise>
  -                     </xsl:choose>
  -      </li>
  -     </xsl:template>
  -     
  -     <xsl:template match="set-service-ref">
  -             <li> 
  -                     <span class="tag">&lt;set-service-ref</span> 
  -                     <span class="attribute"> property</span>="<xsl:value-of 
select="@property"/>" 
  -                     <span   class="attribute"> 
service-id</span>="<xsl:apply-templates select="/registry/module/[EMAIL PROTECTED] = 
current()/@service-id]" mode="link"/>"  
  -      <span class="tag">/&gt;</span> 
  -    </li>
  -     </xsl:template>
  -     
  -     <xsl:template match="new">
  +
  +     <xsl:template match="*" mode="raw">
                <li>
  -                     <span class="tag">&lt;new</span> 
  -                     
  -                     <xsl:choose> 
  -                             <xsl:when       test="*"> 
  -                             <span class="tag">&gt;</span>
  -                             <ul> 
  -                               <xsl:apply-templates/> 
  -                             </ul> 
  -                       <span class="tag">&lt;/new&gt;</span>
  -                     </xsl:when> 
  -                     <xsl:otherwise>
  -                       <span class="tag">/&gt;</span>
  -                     </xsl:otherwise> 
  -                     </xsl:choose>
  +               <span class="tag">&lt;<xsl:value-of select="name()"/></span>
  +               <xsl:for-each select="@*" xml:space="preserve">
  +                     <span class="attribute"> <xsl:value-of 
select="name()"/></span>="<xsl:value-of select="."/>"
  +               </xsl:for-each>
  +               <xsl:choose>
  +                     <xsl:when test="*">
  +                             <span class="tag">&gt;</span>   
  +                             <ul>
  +                                     <xsl:apply-templates/>  
  +                             </ul>
  +                             <span class="tag">&lt;/<xsl:value-of 
select="name()"/>&gt;</span>
  +                     </xsl:when>     
  +                     <xsl:when test="normalize-space()">
  +                                     <span class="tag">&gt;</span>   
  +                                     <xsl:value-of select="."/>
  +                                     <span class="tag">&lt;/<xsl:value-of 
select="name()"/>&gt;</span>
  +                     </xsl:when>
  +                     <xsl:otherwise>
  +                             <span class="tag">/&gt;</span>  
  +                     </xsl:otherwise>
  +               </xsl:choose>
                </li>
  -     </xsl:template> 
  -     
  -     <xsl:template match="resource">
  -             <li>
  -                     <span class="tag">&lt;resource</span>                   
  -                     <span class="attribute"> path</span>"<xsl:value-of 
select="@path"/>
  -                     <span class="tag">/&gt;</span>
  -             </li>   
  -     </xsl:template>
  -     
  -     <xsl:template match="set-resource">
  -             <li>
  -                     <span class="tag">&lt;set-resource</span>       
  -                     <span class="attribute"> property</span>="<xsl:value-of 
select="@property"/>"
  -                     <span class="attribute"> path</span>"<xsl:value-of 
select="@path"/>
  -                     <span class="tag">/&gt;</span>
  -             </li>   
  -     </xsl:template> 
  -     
  -     <xsl:template match="message">
  -             <li>
  -                     <span class="tag">&lt;message</span>
  -                     <span class="attribute"> key</span>="<xsl:value-of 
select="@key"/>"
  -                     
  -                     <xsl:choose>
  -                             <xsl:when test="*">
  -                               <span class="tag">&gt;</span>
  -                               <ul>
  -                                     <xsl:apply-templates/>  
  -                               </ul>
  -                                     <span class="tag">&lt;/message&gt;</span>
  -                             </xsl:when>     
  -                             <xsl:otherwise>
  -                                     <span class="tag">/&gt;</span>  
  -                             </xsl:otherwise>
  -                     </xsl:choose>
  -             </li>   
  +             
        </xsl:template>
        
  -     <xsl:template match="set-message">
  -             <li>
  -                     <span class="tag">&lt;set-message</span>
  -                     <span class="attribute"> property</span>="<xsl:value-of 
select="@property"/>"
  -                     <span class="attribute"> key</span>="<xsl:value-of 
select="@key"/>"
  -                     
  -                     <xsl:choose>
  -                             <xsl:when test="*">
  -                               <span class="tag">&gt;</span>
  -                               <ul>
  -                                     <xsl:apply-templates/>  
  -                               </ul>
  -                                     <span class="tag">&lt;/set-message&gt;</span>
  -                             </xsl:when>     
  -                             <xsl:otherwise>
  -                                     <span class="tag">/&gt;</span>  
  -                             </xsl:otherwise>
  -                     </xsl:choose>
  -             </li>   
  -     </xsl:template> 
  -     
  +
   </xsl:stylesheet>
  
  
  
  1.3       +5 -5      jakarta-commons-sandbox/hivemind/src/xsl/hivemind.css
  
  Index: hivemind.css
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/src/xsl/hivemind.css,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- hivemind.css      9 Jul 2003 18:55:45 -0000       1.2
  +++ hivemind.css      1 Aug 2003 14:21:38 -0000       1.3
  @@ -46,6 +46,11 @@
        text-align: center;
   }
   
  +TABLE.summary TH.section-id
  +{
  +     text-align: left;
  +}
  +
   LI
   {
     list-style-type: none;
  @@ -73,8 +78,3 @@
   {
     font-family: monospace;
   }
  -
  -SPAN.expression
  -{
  -  font-style: italic;
  -}
  \ No newline at end of file
  
  
  

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

Reply via email to