You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hivemind.apache.org by hl...@apache.org on 2004/08/20 14:55:15 UTC

cvs commit: jakarta-hivemind/hivebuild/hivedoc-xsl hivemind.xsl

hlship      2004/08/20 05:55:15

  Modified:    framework/src/test/org/apache/hivemind/impl
                        TestServiceModelThreading.java
               framework/src/java/org/apache/hivemind/ant
                        ConstructRegistry.java
               .        status.xml
               hivebuild/hivedoc-xsl hivemind.xsl
  Log:
  [HIVEMIND-46] Fix the HiveDoc XSL to use XML (not SDL) output.
  
  Revision  Changes    Path
  1.2       +1 -3      jakarta-hivemind/framework/src/test/org/apache/hivemind/impl/TestServiceModelThreading.java
  
  Index: TestServiceModelThreading.java
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/framework/src/test/org/apache/hivemind/impl/TestServiceModelThreading.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestServiceModelThreading.java	13 Aug 2004 13:19:15 -0000	1.1
  +++ TestServiceModelThreading.java	20 Aug 2004 12:55:14 -0000	1.2
  @@ -38,9 +38,7 @@
               return _invokeCount;
           }
   
  -        // ++ is atomic, so no need to synchronize 
  -
  -        public void run()
  +        public synchronized void run()
           {
               _invokeCount++;
           }
  
  
  
  1.12      +17 -9     jakarta-hivemind/framework/src/java/org/apache/hivemind/ant/ConstructRegistry.java
  
  Index: ConstructRegistry.java
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/ant/ConstructRegistry.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- ConstructRegistry.java	19 Aug 2004 22:24:01 -0000	1.11
  +++ ConstructRegistry.java	20 Aug 2004 12:55:15 -0000	1.12
  @@ -77,8 +77,9 @@
        * descriptors to parse.
        */
       private List _resourceQueue = new ArrayList();
  +	private List processedModules = new ArrayList();
   
  -    public void execute() throws BuildException
  +	public void execute() throws BuildException
       {
           if (_output == null)
               throw new BuildException("You must specify an output file");
  @@ -220,13 +221,12 @@
   
           Element e = module.getDocumentElement();
   
  -        prepareModuleForInclusion(descriptor, e);
  -
  -        Document d = (Document) registryElement.getParentNode();
  -
  -        Node eCopy = d.importNode(e, true);
  -
  -        registryElement.appendChild(eCopy);
  +	    if (prepareModuleForInclusion(descriptor, e))
  +	    {
  +			Document d = (Document) registryElement.getParentNode();
  +			Node eCopy = d.importNode(e, true);
  +			registryElement.appendChild(eCopy);
  +	    }
   
       }
   
  @@ -275,12 +275,19 @@
           }
       }
   
  -    private void prepareModuleForInclusion(Resource currentResource, Element module)
  +    private boolean prepareModuleForInclusion(Resource currentResource, Element module)
       {
           NamedNodeMap attributes = module.getAttributes();
   
           String moduleId = attributes.getNamedItem("id").getNodeValue();
   
  +	    if (processedModules.contains(moduleId))
  +	    {
  +		   log("Not including already processed module: " + moduleId);
  +		    return false;
  +	    }
  +        processedModules.add(moduleId);
  +
           for (int i = attributes.getLength() - 1; i >= 0; i--)
           {
               Node attr = attributes.item(i);
  @@ -334,6 +341,7 @@
   
               node = node.getNextSibling();
           }
  +	    return true;
       }
   
       private void qualify(String moduleId, Element element, String attributeName)
  
  
  
  1.52      +3 -0      jakarta-hivemind/status.xml
  
  Index: status.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/status.xml,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -r1.51 -r1.52
  --- status.xml	19 Aug 2004 23:24:55 -0000	1.51
  +++ status.xml	20 Aug 2004 12:55:15 -0000	1.52
  @@ -146,6 +146,9 @@
         <action type="fix" dev="HLS" fixes-bug="HIVEMIND-26">
           Changed some unit tests to adapt to platform line endings.
         </action>
  +      <action type="fix" dev="HLS" fixes-bug="HIVEMIND-46" due-to="Johan Lindquist">
  +        Fix the HiveDoc XSL to use XML (not SDL) output.
  +      </action>
       </release>
     
       <release version="1.0-beta-1" date="Jun 26 2004">
  
  
  
  1.2       +508 -728  jakarta-hivemind/hivebuild/hivedoc-xsl/hivemind.xsl
  
  Index: hivemind.xsl
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/hivebuild/hivedoc-xsl/hivemind.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- hivemind.xsl	18 Jul 2004 22:40:22 -0000	1.1
  +++ hivemind.xsl	20 Aug 2004 12:55:15 -0000	1.2
  @@ -1,5 +1,4 @@
   <?xml version="1.0" encoding="UTF-8"?>
  -<!-- $Id$ -->
   <!-- 
      Copyright 2004 The Apache Software Foundation
   
  @@ -15,735 +14,516 @@
      See the License for the specific language governing permissions and
      limitations under the License.
   -->
  -<!--
  -TODO: <schema>s can now be referenced across modules. Need a UID for them
  -and new rules for creating cross-module links to schemas.
  --->
  -
  -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  -                 version="1.0"
  -                 xmlns:redirect="org.apache.xalan.xslt.extensions.Redirect"
  -                 extension-element-prefixes="redirect">
  -	
  -	<xsl:template match="/registry">
  -		<html>
  -			<head>
  -				<title>HiveMind Registry</title>
  -				<link rel="STYLESHEET" type="text/css" href="hivemind.css"/>
  -			</head>
  -			<body>
  -				<h1>HiveMind Module Registry</h1>
  -				
  -				<table class="summary">
  -					<tbody>
  -					<tr>
  -							<th class="subhead">Module</th>
  -							<th class="subhead">Version</th>
  -							<th class="subhead">Description</th>
  -					</tr>
  -					
  -					<xsl:for-each select="module">
  -						<xsl:sort select="@id"/>
  -						
  -						<tr>
  -						<td>
  -									<a href="module/{@id}.html">
  -									<xsl:value-of select="@id"/>
  -									</a>	
  -						</td>	
  -						<td>
  -							<xsl:value-of select="@version"/>	
  -						</td>
  -						
  -						<td>
  -							<xsl:value-of select="./text()"/>
  -						</td>
  -						</tr>
  -							
  -					</xsl:for-each>
  -					
  -					</tbody>	
  -				</table>
  -				
  -				<table class="summary">
  -
  -				<!-- Since we know, for a fact, that there are always at least one each of
  +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" 
  +  xmlns:redirect="org.apache.xalan.xslt.extensions.Redirect" extension-element-prefixes="redirect">
  +  <xsl:template match="/registry">
  +    <html>
  +      <head>
  +        <title>HiveMind Registry</title>
  +        <link rel="STYLESHEET" type="text/css" href="hivemind.css"/>
  +      </head>
  +      <body>
  +        <h1>HiveMind Module Registry</h1>
  +        <table class="summary">
  +          <tbody>
  +            <tr>
  +              <th class="subhead">Module</th>
  +              <th class="subhead">Version</th>
  +              <th class="subhead">Description</th>
  +            </tr>
  +            <xsl:for-each select="module">
  +              <xsl:sort select="@id"/>
  +              <tr>
  +                <td>
  +                  <a href="module/{@id}.html">
  +                    <xsl:value-of select="@id"/>
  +                  </a>
  +                </td>
  +                <td>
  +                  <xsl:value-of select="@version"/>
  +                </td>
  +                <td>
  +                  <xsl:value-of select="./text()"/>
  +                </td>
  +              </tr>
  +            </xsl:for-each>
  +          </tbody>
  +        </table>
  +        <table class="summary">
  +          <!-- Since we know, for a fact, that there are always at least one each of
   						 configuration, service and schema, we don't do conditionals here. -->
  -
  -				<tr>
  -					<th class="subhead">Configurations</th>	
  -					<th class="subhead">Services</th>
  -					<th class="subhead">Schemas</th>
  -				</tr>
  -				
  -				<tr>
  -					<td>
  -						
  -						<xsl:for-each select="/registry/module/configuration-point">
  -							<xsl:sort select="@id"/>	
  -							
  -							<a href="config/{@id}.html"><xsl:value-of select="@id"/></a>
  -							<br/>
  -						</xsl:for-each>
  -						
  -					</td>	
  -
  -					<td>
  -	
  -							<xsl:for-each select="/registry/module/service-point">
  -							<xsl:sort select="@id"/>	
  -							
  -							<a href="service/{@id}.html"><xsl:value-of select="@id"/></a>
  -							<br/>
  -						</xsl:for-each>
  -											
  -					</td>	
  -					
  -					<td>
  -						<xsl:for-each select="/registry/module/schema">
  -							<xsl:sort select="@id"/>
  -							
  -							<a href="schema/{@id}.html"><xsl:value-of select="@id"/></a>
  -							<br/>
  -						</xsl:for-each>	
  -					</td>
  -				</tr>
  -					
  -				</table>
  -				
  -				<xsl:apply-templates select="module"/>
  -				
  -			</body>
  -		</html>
  -	</xsl:template>
  -
  -	<xsl:template match="module" mode="link">
  -	
  -	<a href="../module/{@id}.html"><xsl:value-of select="@id"/></a>	
  -	
  -	</xsl:template>
  -
  -
  -	<xsl:template match="module">
  -		
  -			<xsl:message>Writing module <xsl:value-of select="@id"/></xsl:message>
  -		
  -			<redirect:write file="module/{@id}.html">
  -			
  -	<html>
  -			<head>
  -				<title>HiveMind Registry - Module <xsl:value-of select="@id"/></title>
  -				<link rel="stylesheet" type="text/css" href="../hivemind.css"/>
  -			</head>
  -			<body>
  -			
  -							<a href="../index.html">Back to index</a>
  -							
  -							<hr/>
  -							
  -		<h1>Module <xsl:value-of select="@id"/> </h1>
  -		<table class="summary">
  -			<tbody>
  -				<tr>
  -					<th>Version</th>
  -					<td colspan="2">
  -						<xsl:value-of select="@version"/>
  -					</td>
  -				</tr>
  -				<xsl:if test="normalize-space(./text())">
  -					<tr>
  -						<td class="description" colspan="3">
  -							<xsl:value-of select="./text()"/>
  -						</td>
  -					</tr>
  -				</xsl:if>
  -			</tbody>
  -		</table>
  -
  -
  -		<!-- Similar to the master listing, but just for artifacts within this module,
  +          <tr>
  +            <th class="subhead">Configurations</th>
  +            <th class="subhead">Services</th>
  +            <th class="subhead">Schemas</th>
  +          </tr>
  +          <tr>
  +            <td>
  +              <xsl:for-each select="/registry/module/configuration-point">
  +                <xsl:sort select="@id"/>
  +                <a href="config/{@id}.html">
  +                  <xsl:value-of select="@id"/>
  +                </a>
  +                <br/>
  +              </xsl:for-each>
  +            </td>
  +            <td>
  +              <xsl:for-each select="/registry/module/service-point">
  +                <xsl:sort select="@id"/>
  +                <a href="service/{@id}.html">
  +                  <xsl:value-of select="@id"/>
  +                </a>
  +                <br/>
  +              </xsl:for-each>
  +            </td>
  +            <td>
  +              <xsl:for-each select="/registry/module/schema">
  +                <xsl:sort select="@id"/>
  +                <a href="schema/{@id}.html">
  +                  <xsl:value-of select="@id"/>
  +                </a>
  +                <br/>
  +              </xsl:for-each>
  +            </td>
  +          </tr>
  +        </table>
  +        <xsl:apply-templates select="module"/>
  +      </body>
  +    </html>
  +  </xsl:template>
  +  <xsl:template match="module" mode="link">
  +    <a href="../module/{@id}.html">
  +      <xsl:value-of select="@id"/>
  +    </a>
  +  </xsl:template>
  +  <xsl:template match="module">
  +    <xsl:message>Writing module <xsl:value-of select="@id"/></xsl:message>
  +    <redirect:write file="module/{@id}.html">
  +      <html>
  +        <head>
  +          <title>HiveMind Registry - Module <xsl:value-of select="@id"/></title>
  +          <link rel="stylesheet" type="text/css" href="../hivemind.css"/>
  +        </head>
  +        <body>
  +          <a href="../index.html">Back to index</a>
  +          <hr/>
  +          <h1>Module <xsl:value-of select="@id"/> </h1>
  +          <table class="summary">
  +            <tbody>
  +              <tr>
  +                <th>Version</th>
  +                <td colspan="2">
  +                  <xsl:value-of select="@version"/>
  +                </td>
  +              </tr>
  +              <xsl:if test="normalize-space(./text())">
  +                <tr>
  +                  <td class="description" colspan="3">
  +                    <xsl:value-of select="./text()"/>
  +                  </td>
  +                </tr>
  +              </xsl:if>
  +            </tbody>
  +          </table>
  +          <!-- Similar to the master listing, but just for artifacts within this module,
   			   and we can make use of the mode=link templates. Unlink the master listing,
   			   we need to check to see if a column is included. -->
  -
  -				<table class="summary">
  -
  -				<tr>
  -					<xsl:if test="configuration-point">
  -					<th class="subhead">Configurations</th>	
  -					</xsl:if>
  -					
  -					<xsl:if test="service-point">
  -						<th class="subhead">Services</th>
  -					</xsl:if>
  -					
  -					<xsl:if test="schema">
  -					<th class="subhead">Schemas</th>
  -					</xsl:if>
  -				</tr>
  -				
  -		
  -				<tr>
  -					
  -							<xsl:if test="configuration-point">
  -					<td>
  -						
  -						<xsl:for-each select="configuration-point">
  -							<xsl:sort select="@id"/>	
  -							
  -							<xsl:apply-templates select="." mode="link"/>
  -								
  -							<br/>
  -						</xsl:for-each>
  -						
  -					</td>	
  -					</xsl:if>
  -					<xsl:if test="service-point">
  -					<td>
  -	
  -							<xsl:for-each select="service-point">
  -							<xsl:sort select="@id"/>	
  -							
  -							<xsl:apply-templates select="." mode="link"/>
  -														<br/>
  -						</xsl:for-each>
  -											
  -					</td>	
  -					</xsl:if>
  -					
  -					<xsl:if test="schema">
  -					
  -					<td>
  -						<xsl:for-each select="schema">
  -							<xsl:sort select="@id"/>
  -							
  -							<xsl:apply-templates select="." mode="link"/>
  -							<br/>
  -						</xsl:for-each>	
  -					</td>
  -					
  -					</xsl:if>
  -					
  -				</tr>
  -					
  -				</table>
  -
  -	<!-- Contributions and implementations go right in the module index. -->
  -
  -		<xsl:apply-templates select="contribution">
  -			<xsl:sort select="@configuration-id"/>
  -		</xsl:apply-templates>
  -		
  -		<xsl:apply-templates select="implementation">
  -			<xsl:sort select="@service-id"/>
  -		</xsl:apply-templates>
  -		
  -	<!-- These templates will generate further documents. -->
  -	
  -		<xsl:apply-templates select="configuration-point">
  -			<xsl:sort select="@id"/>
  -		</xsl:apply-templates>
  -		
  -		<xsl:apply-templates select="service-point">
  -			<xsl:sort select="@id"/>
  -		</xsl:apply-templates>
  -		
  -		<xsl:apply-templates select="schema">
  -			<xsl:sort select="@id"/>	
  -		</xsl:apply-templates>
  -		
  -						<hr/>
  -				
  -				<a href="../index.html">Back to index</a>
  -				
  -					</body>
  -		</html>
  -		
  -					</redirect:write>
  -
  -	</xsl:template>
  -	
  -	<xsl:template match="configuration-point" mode="link">
  -	
  -	<a href="../config/{@id}.html"><xsl:value-of select="@id"/></a>	
  -		
  -	</xsl:template>
  -	
  -	<!-- Links used in an artifact configuration-point, service-point, schema -->
  -	
  -	<xsl:template name="artifact-links">
  -				<a href="../index.html">Back to index</a>
  -		<br/>
  -		<a href="../module/{../@id}.html">
  -			Back to module
  -			<xsl:value-of select="../@id"/>	
  -		</a>
  -	</xsl:template>
  -	
  -	<xsl:template match="configuration-point">
  -		
  -			<xsl:message>Writing configuration-point <xsl:value-of select="@id"/></xsl:message>
  -		
  -		<redirect:write file="config/{@id}.html">
  -			
  -	<html>
  -			<head>
  -				<title>HiveMind Registry - Configuration Point <xsl:value-of select="@id"/></title>
  -				<link rel="stylesheet" type="text/css" href="../hivemind.css"/>
  -			</head>
  -			<body>
  -			
  -		<xsl:call-template name="artifact-links"/>
  -			
  -		<hr/>
  -			
  -		<h1>Configuration Point <xsl:value-of select="@id"/> </h1>
  -			
  -		<table class="summary">
  -			<tbody>
  -				<tr>
  -					<th>Expected Count</th>
  -					<td>
  -						<xsl:if test="not(@count)">unbounded</xsl:if>
  -						<xsl:value-of select="@count"/>
  -					</td>
  -				</tr>
  -				
  -				<xsl:if test="@schema-id">
  -				<tr>
  -					<th>Schema</th>	
  -					<td>
  -						<xsl:apply-templates select="/registry/module/schema[@id = current()/@schema-id]" mode="link"/>
  -					</td>
  -				</tr>	
  -					
  -				</xsl:if>
  -				
  -				<xsl:if test="normalize-space(./text())">
  -					<tr>
  -						<td colspan="2" class="description">
  -							<xsl:value-of select="./text()"/>
  -						</td>
  -					</tr>
  -				</xsl:if>
  -			</tbody>
  -		</table>
  -		
  -		<xsl:apply-templates select="schema" mode="embedded"/>
  -					
  -		<xsl:for-each select="/registry/module/contribution[@configuration-id = current()/@id]">
  -		  <xsl:sort select="../@id"/>
  -		  
  -		  <h3>Contributions from module
  -		
  -		  <a href="../module/{../@id}.html#{@uid}">
  -		    <xsl:value-of select="../@id"/>
  -		  </a>	
  -		  </h3>
  -		  
  -		  <ul>
  -		  	<xsl:apply-templates select="*" mode="raw"/>	
  -		  </ul>
  -			
  -		</xsl:for-each>
  -
  -		
  -		<hr/>
  -		<xsl:call-template name="artifact-links"/>
  -		
  -		</body>
  -		</html>
  -		</redirect:write>
  -		
  -	</xsl:template>
  -	
  -	<xsl:template match="schema" mode="link">
  -		
  -		<a href="../schema/{@id}.html"><xsl:value-of select="@id"/></a>	
  -
  -	</xsl:template>
  -	
  -	<xsl:template match="schema">
  -					
  -			<xsl:message>Writing schema <xsl:value-of select="@id"/></xsl:message>
  -		
  -		<redirect:write file="schema/{@id}.html">
  -			
  -	<html>
  -			<head>
  -				<title>HiveMind Registry - Schema <xsl:value-of select="@id"/></title>
  -				<link rel="stylesheet" type="text/css" href="../hivemind.css"/>
  -			</head>
  -			<body>
  -			
  -		<xsl:call-template name="artifact-links"/>
  -		
  -		<hr/>
  -							
  -			<h1>Schema <xsl:value-of select="@id"/></h1>
  -			
  -			<xsl:call-template name="schema-details"/>
  -			
  -			<hr/>
  -			
  -			<xsl:call-template name="artifact-links"/>
  -			
  -			</body>
  -			</html>
  -			
  -		</redirect:write>
  -			
  -	</xsl:template>
  -
  +          <table class="summary">
  +            <tr>
  +              <xsl:if test="configuration-point">
  +                <th class="subhead">Configurations</th>
  +              </xsl:if>
  +              <xsl:if test="service-point">
  +                <th class="subhead">Services</th>
  +              </xsl:if>
  +              <xsl:if test="schema">
  +                <th class="subhead">Schemas</th>
  +              </xsl:if>
  +            </tr>
  +            <tr>
  +              <xsl:if test="configuration-point">
  +                <td>
  +                  <xsl:for-each select="configuration-point">
  +                    <xsl:sort select="@id"/>
  +                    <xsl:apply-templates select="." mode="link"/>
  +                    <br/>
  +                  </xsl:for-each>
  +                </td>
  +              </xsl:if>
  +              <xsl:if test="service-point">
  +                <td>
  +                  <xsl:for-each select="service-point">
  +                    <xsl:sort select="@id"/>
  +                    <xsl:apply-templates select="." mode="link"/>
  +                    <br/>
  +                  </xsl:for-each>
  +                </td>
  +              </xsl:if>
  +              <xsl:if test="schema">
  +                <td>
  +                  <xsl:for-each select="schema">
  +                    <xsl:sort select="@id"/>
  +                    <xsl:apply-templates select="." mode="link"/>
  +                    <br/>
  +                  </xsl:for-each>
  +                </td>
  +              </xsl:if>
  +            </tr>
  +          </table>
  +          <!-- Contributions and implementations go right in the module index. -->
  +          <xsl:apply-templates select="contribution">
  +            <xsl:sort select="@configuration-id"/>
  +          </xsl:apply-templates>
  +          <xsl:apply-templates select="implementation">
  +            <xsl:sort select="@service-id"/>
  +          </xsl:apply-templates>
  +          <!-- These templates will generate further documents. -->
  +          <xsl:apply-templates select="configuration-point">
  +            <xsl:sort select="@id"/>
  +          </xsl:apply-templates>
  +          <xsl:apply-templates select="service-point">
  +            <xsl:sort select="@id"/>
  +          </xsl:apply-templates>
  +          <xsl:apply-templates select="schema">
  +            <xsl:sort select="@id"/>
  +          </xsl:apply-templates>
  +          <hr/>
  +          <a href="../index.html">Back to index</a>
  +        </body>
  +      </html>
  +    </redirect:write>
  +  </xsl:template>
  +  <xsl:template match="configuration-point" mode="link">
  +    <a href="../config/{@id}.html">
  +      <xsl:value-of select="@id"/>
  +    </a>
  +  </xsl:template>
  +  <!-- Links used in an artifact configuration-point, service-point, schema -->
  +  <xsl:template name="artifact-links">
  +    <a href="../index.html">Back to index</a>
  +    <br/>
  +    <a href="../module/{../@id}.html"> Back to module <xsl:value-of select="../@id"/> </a>
  +  </xsl:template>
  +  <xsl:template match="configuration-point">
  +    <xsl:message>Writing configuration-point <xsl:value-of select="@id"/></xsl:message>
  +    <redirect:write file="config/{@id}.html">
  +      <html>
  +        <head>
  +          <title>HiveMind Registry - Configuration Point <xsl:value-of select="@id"/></title>
  +          <link rel="stylesheet" type="text/css" href="../hivemind.css"/>
  +        </head>
  +        <body>
  +          <xsl:call-template name="artifact-links"/>
  +          <hr/>
  +          <h1>Configuration Point <xsl:value-of select="@id"/> </h1>
  +          <table class="summary">
  +            <tbody>
  +              <tr>
  +                <th>Expected Count</th>
  +                <td>
  +                  <xsl:if test="not(@count)">unbounded</xsl:if>
  +                  <xsl:value-of select="@count"/>
  +                </td>
  +              </tr>
  +              <xsl:if test="@schema-id">
  +                <tr>
  +                  <th>Schema</th>
  +                  <td>
  +                    <xsl:apply-templates select="/registry/module/schema[@id = current()/@schema-id]" mode="link"/>
  +                  </td>
  +                </tr>
  +              </xsl:if>
  +              <xsl:if test="normalize-space(./text())">
  +                <tr>
  +                  <td colspan="2" class="description">
  +                    <xsl:value-of select="./text()"/>
  +                  </td>
  +                </tr>
  +              </xsl:if>
  +            </tbody>
  +          </table>
  +          <xsl:apply-templates select="schema" mode="embedded"/>
  +          <xsl:for-each select="/registry/module/contribution[@configuration-id = current()/@id]">
  +            <xsl:sort select="../@id"/>
  +            <h3>Contributions from module <a href="../module/{../@id}.html#{@uid}"> <xsl:value-of select="../@id"/> 
  +              </a> </h3>
  +            <ul>
  +              <xsl:apply-templates select="*" mode="raw"/>
  +            </ul>
  +          </xsl:for-each>
  +          <hr/>
  +          <xsl:call-template name="artifact-links"/>
  +        </body>
  +      </html>
  +    </redirect:write>
  +  </xsl:template>
  +  <xsl:template match="schema" mode="link">
  +    <a href="../schema/{@id}.html">
  +      <xsl:value-of select="@id"/>
  +    </a>
  +  </xsl:template>
  +  <xsl:template match="schema">
  +    <xsl:message>Writing schema <xsl:value-of select="@id"/></xsl:message>
  +    <redirect:write file="schema/{@id}.html">
  +      <html>
  +        <head>
  +          <title>HiveMind Registry - Schema <xsl:value-of select="@id"/></title>
  +          <link rel="stylesheet" type="text/css" href="../hivemind.css"/>
  +        </head>
  +        <body>
  +          <xsl:call-template name="artifact-links"/>
  +          <hr/>
  +          <h1>Schema <xsl:value-of select="@id"/></h1>
  +          <xsl:call-template name="schema-details"/>
  +          <hr/>
  +          <xsl:call-template name="artifact-links"/>
  +        </body>
  +      </html>
  +    </redirect:write>
  +  </xsl:template>
     <xsl:template name="schema-details">
  -			<table class="summary">
  -			<tbody>
  -	
  -			<xsl:if test="normalize-space(./text())">
  -					<tr>
  -						<td/>
  -						<td colspan="2" class="description">
  -							<xsl:value-of select="./text()"/>
  -						</td>
  -					</tr>
  -				</xsl:if>
  -	
  -				
  -				<xsl:apply-templates select="element">
  -					<xsl:sort select="@name"/>
  -				</xsl:apply-templates>
  -				
  -			</tbody>		
  -			</table>
  -		
  -	</xsl:template>	
  -	
  -	<xsl:template match="schema" mode="embedded">
  -	
  -		<h3>Schema</h3>	
  -		
  -		<xsl:call-template name="schema-details"/>
  -		
  -	</xsl:template>
  -	
  -	<xsl:template match="element">
  -		
  -		<tr>
  -			<th class="section-id" colspan="3">Element <span class="tag"><xsl:value-of select="@name"/></span></th>	
  -			
  -		</tr>
  -		
  -				<xsl:if test="normalize-space(./text())">
  -					<tr>
  -						<td colspan="3" class="description">
  -							<xsl:value-of select="./text()"/>
  -						</td>
  -					</tr>
  -				</xsl:if>
  -				
  -				<xsl:for-each select="attribute">
  -					<xsl:sort select="name"/>
  -				
  -					<xsl:apply-templates select="."/>	
  -					
  -				</xsl:for-each>	
  -				
  -				<xsl:if test="rules|conversion">
  -					<tr>
  -					<td/>
  -					
  -					<td colspan="2">
  -						<h3>Conversion Rules</h3>	
  -						
  -							<ul>
  -								<xsl:apply-templates select="conversion|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 <span class="attribute"><xsl:value-of select="@name"/></span></td>
  -		<td>
  -			<xsl:choose>
  -				<xsl:when test="@required = 'true'">
  -					Required	
  -				</xsl:when>	
  -				<xsl:otherwise>
  -					Optional	
  -				</xsl:otherwise>
  -			</xsl:choose>
  -		</td>
  -	</tr>	
  -	
  -	<xsl:if test="@translator">
  -	
  -		<tr>
  -			<td/>
  -			<th>Translator</th>
  -			<td><xsl:value-of select="@translator"/></td>
  -		</tr>	
  -	</xsl:if>
  -	
  -		
  -			<xsl:if test="normalize-space(./text())">
  -					<tr>
  -						<td/>
  -						<td colspan="2" class="description">
  -							<xsl:value-of select="./text()"/>
  -						</td>
  -					</tr>
  -				</xsl:if>
  -	</xsl:template>
  -	
  -	<xsl:template match="contribution">
  -					<h2> <xsl:attribute name="id"><xsl:value-of select="@uid"/></xsl:attribute> 
  -			Contribution to 
  -			
  -			<xsl:apply-templates select="/registry/module/configuration-point[@id = current()/@configuration-id]" mode="link"/>
  -					
  -			</h2>
  -			
  -		<ul>
  -			<xsl:apply-templates mode="raw"/>
  -		</ul>
  -	</xsl:template>
  -	
  -	<xsl:template match="service-point" mode="link">
  -		
  -	<a href="../service/{@id}.html"><xsl:value-of select="@id"/></a>	
  -			
  -	</xsl:template>
  -	
  -	<xsl:template match="service-point">
  -		
  -					<xsl:message>Writing service-point <xsl:value-of select="@id"/></xsl:message>
  -		
  -		<redirect:write file="service/{@id}.html">
  -			
  -	<html>
  -			<head>
  -				<title>HiveMind Registry - Service <xsl:value-of select="@id"/></title>
  -				<link rel="stylesheet" type="text/css" href="../hivemind.css"/>
  -			</head>
  -			<body>
  -			
  -		<xsl:call-template name="artifact-links"/>
  -		
  -		<hr/>
  -		
  -	<h1>Service <xsl:value-of select="@id"/> </h1>
  -	
  -		<table class="summary">
  -			<tbody>
  -				<tr>
  -					<th>Interface</th>
  -					<td>
  -						<xsl:value-of select="@interface"/>
  -					</td>
  -				</tr>					
  -
  -				<xsl:if test="@parameters-schema-id">
  -				<tr>
  -					<th>Parameters Schema</th>	
  -					<td>
  -						<xsl:apply-templates select="/registry/module/schema[@id = current()/@parameters-schema-id]" mode="link"/>
  -					</td>
  -				</tr>	
  -					
  -				</xsl:if>
  -
  -				<xsl:if test="normalize-space(./text())">
  -					<tr>
  -						<td colspan="2" class="description">
  -							<xsl:value-of select="./text()"/>
  -						</td>
  -					</tr>
  -				</xsl:if>
  -			</tbody>
  -		</table>
  -	
  -		<xsl:apply-templates select="parameters-schema"/>
  -		
  -		<xsl:if test="create-instance|invoke-factory|interceptor">
  -					
  -		<h2>Implementation</h2>
  -		
  -			<ul>
  -				<xsl:apply-templates select="create-instance|invoke-factory|interceptor"/>
  -			</ul>
  -		</xsl:if>
  -
  -		
  -		<xsl:for-each select="/registry/module/implementation[@service-id = current()/@id]">
  -		  <xsl:sort select="../@id"/>
  -		  
  -		  <h3>Implementations from module
  -		  <a href="../module/{../@id}.html#{@uid}">
  -		    <xsl:value-of select="../@id"/>
  -		  </a>	
  -		  </h3>
  -		  
  -		  <ul>
  -		  	<xsl:apply-templates/>	
  -		  </ul>
  -			
  -		</xsl:for-each>		
  -		
  -		<hr/>
  -		
  -			<xsl:call-template name="artifact-links"/>
  -		
  -		</body>
  -		</html>
  -		
  -		</redirect:write>
  -		
  -	</xsl:template>
  -	
  -	<xsl:template match="parameters-schema">
  -	
  -	<h3>Parameters Schema</h3>	
  -	
  -	<xsl:call-template name="schema-details"/>
  -		
  -	</xsl:template>
  -	
  -	<xsl:template match="implementation">
  -		<h2> <xsl:attribute name="id"><xsl:value-of select="@uid"/></xsl:attribute> 
  -			Service Implementation
  -			
  -			<xsl:apply-templates select="/registry/module/service-point[@id = current()/@service-id]" mode="link"/>
  -					
  -			</h2>
  -		<ul>
  -			<xsl:apply-templates/>
  -		</ul>
  -	</xsl:template>
  -	
  -	<xsl:template match="create-instance">
  -		<li>
  -			<span class="tag">create-instance</span> (
  -			<span class="attribute"> class</span>=<xsl:value-of select="@class"/>
  -			<xsl:if test="@model">
  -				<span class="attribute"> model</span>=<xsl:value-of select="@model"/>
  -			</xsl:if> )
  -		</li>	
  -	</xsl:template>
  -	
  -	<xsl:template match="invoke-factory">
  -		<li>
  -			<span class="tag">invoke-factory</span> (
  -			<span class="attribute"> service-id</span>=<xsl:apply-templates select="/registry/module/service-point[@id = current()/@service-id]" mode="link"/>
  -			<xsl:if test="@model">
  -				<span class="attribute"> model</span>=<xsl:value-of select="@model"/>
  -			</xsl:if>
  -			)
  -			<xsl:if test="*">
  -			  <br/>
  -			  {
  -				<ul>
  -					<xsl:apply-templates mode="raw"/>	
  -				</ul>
  -				}
  -			</xsl:if>
  -		</li>			
  -	</xsl:template>
  -	
  -	<xsl:template match="interceptor">
  -		<li>
  -			<span class="tag">interceptor</span> (
  -			<span class="attribute"> service-id</span>=<xsl:apply-templates select="/registry/module/service-point[@id = current()/@service-id]" mode="link"/>
  -				
  -			<xsl:if test="@before">
  -			  <span	class="attribute"> before</span>=<xsl:value-of select="@before"/>
  -			</xsl:if> 
  -			
  -			<xsl:if test="@after">
  -			  <span	class="attribute"> after</span>=<xsl:value-of select="@after"/>
  -			</xsl:if> 			
  -			)
  -		  <xsl:choose>
  -		  	<xsl:when test="*">
  -		  		<br/>
  -		  		{
  -		  		<ul>
  -		  			<xsl:apply-templates mode="raw"/>	
  -		  		</ul>
  -		  		}
  -		  	</xsl:when>	
  -		  	<xsl:when test="normalize-space(./text())">
  -		  	<br/>
  -		  	{
  -		  		<ul>
  -		  			<li><xsl:value-of select="."/></li>	
  -		  		</ul>
  -		  	}
  -		  	</xsl:when>
  -		  </xsl:choose>
  -			
  -			</li>
  -	</xsl:template>
  -	
  -
  -	<xsl:template match="*" mode="raw">
  -		<li>
  -		  <span class="tag"><xsl:value-of select="name()"/></span>
  -		  <xsl:if test="@*">
  -		  	(
  -		  	<xsl:for-each select="@*" xml:space="preserve">
  -		  		<span class="attribute"> <xsl:value-of select="name()"/></span>=<xsl:value-of select="."/>
  +    <table class="summary">
  +      <tbody>
  +        <xsl:if test="normalize-space(./text())">
  +          <tr>
  +            <td/>
  +            <td colspan="2" class="description">
  +              <xsl:value-of select="./text()"/>
  +            </td>
  +          </tr>
  +        </xsl:if>
  +        <xsl:apply-templates select="element">
  +          <xsl:sort select="@name"/>
  +        </xsl:apply-templates>
  +      </tbody>
  +    </table>
  +  </xsl:template>
  +  <xsl:template match="schema" mode="embedded">
  +    <h3>Schema</h3>
  +    <xsl:call-template name="schema-details"/>
  +  </xsl:template>
  +  <xsl:template match="element">
  +    <tr>
  +      <th class="section-id" colspan="3">Element <span class="tag"><xsl:value-of select="@name"/></span></th>
  +    </tr>
  +    <xsl:if test="normalize-space(./text())">
  +      <tr>
  +        <td colspan="3" class="description">
  +          <xsl:value-of select="./text()"/>
  +        </td>
  +      </tr>
  +    </xsl:if>
  +    <xsl:for-each select="attribute">
  +      <xsl:sort select="name"/>
  +      <xsl:apply-templates select="."/>
  +    </xsl:for-each>
  +    <xsl:if test="rules|conversion">
  +      <tr>
  +        <td/>
  +        <td colspan="2">
  +          <h3>Conversion Rules</h3>
  +          <ul>
  +            <xsl:apply-templates select="conversion|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 <span class="attribute"><xsl:value-of select="@name"/></span></td>
  +      <td>
  +        <xsl:choose>
  +          <xsl:when test="@required = 'true'"> Required </xsl:when>
  +          <xsl:otherwise> Optional </xsl:otherwise>
  +        </xsl:choose>
  +      </td>
  +    </tr>
  +    <xsl:if test="@translator">
  +      <tr>
  +        <td/>
  +        <th>Translator</th>
  +        <td>
  +          <xsl:value-of select="@translator"/>
  +        </td>
  +      </tr>
  +    </xsl:if>
  +    <xsl:if test="normalize-space(./text())">
  +      <tr>
  +        <td/>
  +        <td colspan="2" class="description">
  +          <xsl:value-of select="./text()"/>
  +        </td>
  +      </tr>
  +    </xsl:if>
  +  </xsl:template>
  +  <xsl:template match="contribution">
  +    <h2> <xsl:attribute name="id"><xsl:value-of select="@uid"/></xsl:attribute> Contribution to <xsl:apply-templates 
  +      select="/registry/module/configuration-point[@id = current()/@configuration-id]" mode="link"/> </h2>
  +    <ul>
  +      <xsl:apply-templates mode="raw"/>
  +    </ul>
  +  </xsl:template>
  +  <xsl:template match="service-point" mode="link">
  +    <a href="../service/{@id}.html">
  +      <xsl:value-of select="@id"/>
  +    </a>
  +  </xsl:template>
  +  <xsl:template match="service-point">
  +    <xsl:message>Writing service-point <xsl:value-of select="@id"/></xsl:message>
  +    <redirect:write file="service/{@id}.html">
  +      <html>
  +        <head>
  +          <title>HiveMind Registry - Service <xsl:value-of select="@id"/></title>
  +          <link rel="stylesheet" type="text/css" href="../hivemind.css"/>
  +        </head>
  +        <body>
  +          <xsl:call-template name="artifact-links"/>
  +          <hr/>
  +          <h1>Service <xsl:value-of select="@id"/> </h1>
  +          <table class="summary">
  +            <tbody>
  +              <tr>
  +                <th>Interface</th>
  +                <td>
  +                  <xsl:value-of select="@interface"/>
  +                </td>
  +              </tr>
  +              <xsl:if test="@parameters-schema-id">
  +                <tr>
  +                  <th>Parameters Schema</th>
  +                  <td>
  +                    <xsl:apply-templates select="/registry/module/schema[@id = current()/@parameters-schema-id]" 
  +                      mode="link"/>
  +                  </td>
  +                </tr>
  +              </xsl:if>
  +              <xsl:if test="@parameters-schema-id or parameters-schema">
  +                <tr>
  +                  <th>Parameters Occurs</th>
  +                  <td>
  +                    <xsl:if test="not(@parameters-occurs)">required</xsl:if>
  +                    <xsl:value-of select="@parameters-occurs"/>
  +                  </td>
  +                </tr>
  +              </xsl:if>
  +              <xsl:if test="normalize-space(./text())">
  +                <tr>
  +                  <td colspan="2" class="description">
  +                    <xsl:value-of select="./text()"/>
  +                  </td>
  +                </tr>
  +              </xsl:if>
  +            </tbody>
  +          </table>
  +          <xsl:apply-templates select="parameters-schema"/>
  +          <xsl:if test="create-instance|invoke-factory|interceptor">
  +            <h2>Implementation</h2>
  +            <ul>
  +              <xsl:apply-templates select="create-instance|invoke-factory|interceptor"/>
  +            </ul>
  +          </xsl:if>
  +          <xsl:for-each select="/registry/module/implementation[@service-id = current()/@id]">
  +            <xsl:sort select="../@id"/>
  +            <h3>Implementations from module <a href="../module/{../@id}.html#{@uid}"> <xsl:value-of select="../@id"/> 
  +              </a> </h3>
  +            <ul>
  +              <xsl:apply-templates/>
  +            </ul>
  +          </xsl:for-each>
  +          <hr/>
  +          <xsl:call-template name="artifact-links"/>
  +        </body>
  +      </html>
  +    </redirect:write>
  +  </xsl:template>
  +  <xsl:template match="parameters-schema">
  +    <h3>Parameters Schema</h3>
  +    <xsl:call-template name="schema-details"/>
  +  </xsl:template>
  +  <xsl:template match="implementation">
  +    <h2> <xsl:attribute name="id"><xsl:value-of select="@uid"/></xsl:attribute> Service Implementation 
  +      <xsl:apply-templates select="/registry/module/service-point[@id = current()/@service-id]" mode="link"/> </h2>
  +    <ul>
  +      <xsl:apply-templates/>
  +    </ul>
  +  </xsl:template>
  +  <xsl:template match="create-instance">
  +    <li> <span class="tag">&lt;create-instance</span> <span class="attribute"> class</span>="<xsl:value-of 
  +      select="@class"/>" <xsl:if test="@model"> <span class="attribute"> model</span>="<xsl:value-of select="@model"/>" 
  +      </xsl:if> <span class="tag">/&gt;</span> </li>
  +  </xsl:template>
  +  <xsl:template match="invoke-factory">
  +    <li>
  +      <span class="tag">&lt;invoke-factory</span>
  +      <xsl:if test="@service-id"> <span class="attribute"> service-id</span>="<xsl:apply-templates 
  +        select="/registry/module/service-point[@id = current()/@id]" mode="link"/>" </xsl:if>
  +      <xsl:if test="@model"> <span class="attribute"> model</span>="<xsl:value-of select="@model"/>" </xsl:if>
  +      <span class="tag">&gt;</span>
  +      <xsl:if test="*">
  +        <br/>
  +        <ul>
  +          <xsl:apply-templates mode="raw"/>
  +        </ul>
  +        <span class="tag">&lt;/invoke-factory&gt;</span>
  +      </xsl:if>
  +    </li>
  +  </xsl:template>
  +  <xsl:template match="interceptor">
  +    <li> <span class="tag">&lt;interceptor</span> <span class="attribute"> service-id</span>="<xsl:apply-templates 
  +      select="/registry/module/service-point[@id = current()/@service-id]" mode="link"/>" <xsl:if test="@before"> <span 
  +      class="attribute"> before</span>="<xsl:value-of select="@before"/>" </xsl:if> <xsl:if test="@after"> <span 
  +      class="attribute"> after</span>="<xsl:value-of select="@after"/>" </xsl:if> <xsl:choose> <xsl:when test="*"> 
  +      <br/> <span class="tag">&gt;</span> <ul> <xsl:apply-templates mode="raw"/> </ul> <span 
  +      class="tag">&lt;/<xsl:value-of select="name()"/>&gt;</span> </xsl:when> <xsl:when 
  +      test="normalize-space(./text())"> <span class="tag">&gt;</span> <br/> <ul> <li><xsl:value-of select="."/></li> 
  +      </ul> <span class="tag">&lt;/<xsl:value-of select="name()"/>&gt;</span> </xsl:when> <xsl:when 
  +      test="count(child::*) = 0"> <span class="tag">/&gt;</span> </xsl:when> </xsl:choose> </li>
  +  </xsl:template>
  +  <xsl:template match="*" mode="raw">
  +    <li>
  +      <span class="tag">&lt;<xsl:value-of select="name()"/></span>
  +      <xsl:if test="@*">
  +        <xsl:for-each select="@*" xml:space="preserve">
  +		  		<span class="attribute"> <xsl:value-of select="name()"/></span>="<xsl:value-of select="."/>"
   		  	</xsl:for-each>
  -		  	)
  -		  </xsl:if>
  -		  
  -		  <xsl:choose>
  -		  	<xsl:when test="*">
  -		  		<br/>
  -		  		{
  -		  		<ul>
  -		  			<xsl:apply-templates mode="raw"/>	
  -		  		</ul>
  -		  		}
  -		  	</xsl:when>	
  -		  	<xsl:when test="normalize-space()">
  -		  	<br/>
  -		  	{
  -		  	<ul>
  -		  		<li><xsl:value-of select="."/></li>
  -		  	</ul>
  -		  	}
  -		  	</xsl:when>
  -			</xsl:choose>
  -		</li>
  -		
  -	</xsl:template>
  -	
  -
  -</xsl:stylesheet>
  +      </xsl:if>
  +      <xsl:choose>
  +        <xsl:when test="*">
  +          <span class="tag">&gt;</span>
  +          <br/>
  +          <ul>
  +            <xsl:apply-templates mode="raw"/>
  +          </ul>
  +          <span class="tag">&lt;/<xsl:value-of select="name()"/>&gt;</span>
  +        </xsl:when>
  +        <xsl:when test="normalize-space()">
  +          <span class="tag">&gt;</span>
  +          <br/>
  +          <ul>
  +            <li>
  +              <xsl:value-of select="."/>
  +            </li>
  +          </ul>
  +          <span class="tag">&lt;/<xsl:value-of select="name()"/>&gt;</span>
  +        </xsl:when>
  +        <xsl:when test="count(child::*) = 0">
  +          <span class="tag">/&gt;</span>
  +        </xsl:when>
  +      </xsl:choose>
  +    </li>
  +  </xsl:template>
  +</xsl:stylesheet>
  \ No newline at end of file
  
  
  

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