<xsl:stylesheet
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:xmi="http://www.omg.org/XMI" 
 xmlns:resources.jms="http://www.ibm.c../WAS51/appserver/schemas/5.0/resources.jms.xmi" 
 xmlns:resources.jms.internalmessaging="http://www.ibm.c../WAS51/appserver/schemas/5.0/resources.jms.internalmessaging.xmi" 
 xmlns:resources="http://www.ibm.c../WAS51/appserver/schemas/5.0/resources.xmi" 
 xmlns:resources.j2c="http://www.ibm.c../WAS51/appserver/schemas/5.0/resources.j2c.xmi" 
 xmlns:resources.mail="http://www.ibm.c../WAS51/appserver/schemas/5.0/resources.mail.xmi"  
 xmlns:resources.url="http://www.ibm.c../WAS51/appserver/schemas/5.0/resources.url.xmi" 
 xmlns:resources.jdbc="http://www.ibm.c../WAS51/appserver/schemas/5.0/resources.jdbc.xmi"
 xmlns:process="http://www.ibm.c../WAS51/appserver/schemas/5.0/process.xmi" 
 xmlns:pmiservice="http://www.ibm.c../WAS51/appserver/schemas/5.0/pmiservice.xmi" 
 xmlns:adminservice="http://www.ibm.c../WAS51/appserver/schemas/5.0/adminservice.xmi" 
 xmlns:properties="http://www.ibm.c../WAS51/appserver/schemas/5.0/properties.xmi" 
 xmlns:traceservice="http://www.ibm.c../WAS51/appserver/schemas/5.0/traceservice.xmi" 
 xmlns:loggingservice.ras="http://www.ibm.c../WAS51/appserver/schemas/5.0/loggingservice.ras.xmi" 
 xmlns:orb="http://www.ibm.c../WAS51/appserver/schemas/5.0/orb.xmi" 
 xmlns:namingserver="http://www.ibm.c../WAS51/appserver/schemas/5.0/namingserver.xmi" 
 xmlns:applicationserver="http://www.ibm.c../WAS51/appserver/schemas/5.0/applicationserver.xmi" 
 xmlns:applicationserver.webcontainer="http://www.ibm.c../WAS51/appserver/schemas/5.0/applicationserver.webcontainer.xmi" 
 xmlns:ipc="http://www.ibm.c../WAS51/appserver/schemas/5.0/ipc.xmi" 
 xmlns:applicationserver.ejbcontainer="http://www.ibm.c../WAS51/appserver/schemas/5.0/applicationserver.ejbcontainer.xmi" 
 xmlns:applicationserver.ejbcontainer.messagelistener="http://www.ibm.c../WAS51/appserver/schemas/5.0/applicationserver.ejbcontainer.messagelistener.xmi" 
 xmlns:messagingserver="http://www.ibm.c../WAS51/appserver/schemas/5.0/messagingserver.xmi" 
 xmlns:processexec="http://www.ibm.c../WAS51/appserver/schemas/5.0/processexec.xmi"
 version="1.0">
  
<xsl:variable name="now" xmlns:Date="/java.util.Date">
    <xsl:value-of select="Date:toString(Date:new())"/>
</xsl:variable>

<xsl:strip-space elements="*"/>

<xsl:template match="/">

    <HTML>

    <xsl:comment>Generated at <xsl:value-of select="$now"/></xsl:comment>

    <xsl:call-template name="header"/>
    <BODY>
      <p><h2>WebSphere Application Server v5.0 Default Configuration Files</h2></p>
      <xsl:for-each select="configFiles/file">
      <xsl:variable name="configFile" select="document(@href)"/>
        <xsl:apply-templates select="$configFile/*">
           <xsl:with-param name="configFile" select="document(.)"/>
        </xsl:apply-templates>
       </xsl:for-each>	
    </BODY>
    </HTML>
</xsl:template>


<xsl:template match="resources.jms:JMSProvider">
    <xsl:apply-templates/>
</xsl:template>

<xsl:template match="resources.jdbc:JDBCProvider">
    <xsl:apply-templates/>
</xsl:template>

<xsl:template match="resources.jdbc:JDBCProvider//factories | resources.jms:JMSProvider//factories">
   <p></p>
   <table width="740" border="1">
     <tr><td colspan='2' align="center"><h4><xsl:value-of select="@xmi:type"/></h4></td></tr>
     <tr>
       <td width="370">name</td>
       <td><xsl:value-of select="@name"/></td>
     </tr>  
     <tr>
       <td>jndiName</td>
       <td><xsl:value-of select="@jndiName"/></td>
     </tr>  
     <tr>
       <td>category</td>
       <td><xsl:value-of select="@category"/></td>
     </tr>  
     <xsl:if test="@persistence!=''">
     <tr>
       <td>persistence</td>
       <td><xsl:value-of select="@persistence"/></td>
     </tr> 
     </xsl:if>
    <xsl:apply-templates />
   </table>
</xsl:template>

<xsl:template match="resources.jdbc:JDBCProvider//propertySet">
  <xsl:for-each select="resourceProperties">
    <xsl:if test="@value!=''">
     <tr>
      <td><xsl:value-of select="@name"/></td>
      <td><xsl:value-of select="@value"/></td>
     </tr>
    </xsl:if>
  </xsl:for-each>
</xsl:template>

<xsl:template match="resources.jdbc:JDBCProvider//connectionPool | resources.jms:JMSProvider//connectionPool">
     <tr>
       <td>connectionTimeout</td>
       <td><xsl:value-of select="@connectionTimeout"/></td>
     </tr>  
     <tr>
       <td>maxConnections</td>
       <td><xsl:value-of select="@maxConnections"/></td>
     </tr>  
     <tr>
       <td>minConnections</td>
       <td><xsl:value-of select="@minConnections"/></td>
     </tr>  
     <tr>
       <td>reapTime</td>
       <td><xsl:value-of select="@reapTime"/></td>
     </tr>  
     <tr>
       <td>unusedTimeout</td>
       <td><xsl:value-of select="@unusedTimeout"/></td>
     </tr>  
     <tr>
       <td>agedTimeout</td>
       <td><xsl:value-of select="@agedTimeout"/></td>
     </tr>  
     <tr>
       <td>purgePolicy</td>
       <td><xsl:value-of select="@purgePolicy"/></td>
     </tr>  
</xsl:template>

<xsl:template match="classpath"></xsl:template>
<xsl:template match="nativepath"></xsl:template>

<xsl:template match="contact"></xsl:template>
<xsl:template match="queueNames"></xsl:template>

<xsl:template name="header" xml:space="preserve">
    <HEAD>
    <TITLE><xsl:value-of select="'WebSphere Configuration'"/></TITLE>
    </HEAD>
</xsl:template>

<xsl:template match="components//services">
   <p></p>
   <table width="740" border="1">
     <xsl:for-each select="listenerPorts">
     <tr><td colspan='2' align="center"><h4>ListenerPort</h4></td></tr>
     <tr>
       <td width="370">name</td>
       <td><xsl:value-of select="@name"/></td>
     </tr>     
     <tr>
       <td>connectionFactoryJNDIName</td>
       <td><xsl:value-of select="@connectionFactoryJNDIName"/></td>
     </tr>     
     <tr>
       <td>destinationJNDIName</td>
       <td><xsl:value-of select="@destinationJNDIName"/></td>
     </tr>     
     <tr>
       <td>maxSessions</td>
       <td><xsl:value-of select="@maxSessions"/></td>
     </tr>     
     <tr>
       <td>maxRetries</td>
       <td><xsl:value-of select="@maxRetries"/></td>
     </tr>     
     <tr>
       <td>maxMessages</td>
       <td><xsl:value-of select="@maxMessages"/></td>
     </tr> 
     </xsl:for-each>
   </table>
</xsl:template>
<xsl:template match="jvmEntries">
   <p></p>
   <table width="740" border="1">
     <tr><td colspan='2' align="center"><h4>jvmEntries</h4></td></tr>
     <tr>
       <td width="370">initialHeapSize</td>
       <td><xsl:value-of select="@initialHeapSize"/></td>
     </tr>   
     <tr>
       <td>maximumHeapSize</td>
       <td><xsl:value-of select="@maximumHeapSize"/></td>
     </tr>   
     <tr>
       <td>debugMode</td>
       <td><xsl:value-of select="@debugMode"/></td>
     </tr>   
     <tr>
       <td>debugArgs</td>
       <td><xsl:value-of select="@debugArgs"/></td>
     </tr>   
     <tr>
       <td>verboseModeClass</td>
       <td><xsl:value-of select="@verboseModeClass"/></td>
     </tr>   
     <tr>
       <td>verboseModeGarbageCollection</td>
       <td><xsl:value-of select="@verboseModeGarbageCollection"/></td>
     </tr>   
     <tr>
       <td>verboseModeJNI</td>
       <td><xsl:value-of select="@verboseModeJNI"/></td>
     </tr>   
     <tr>
       <td>runHProf</td>
       <td><xsl:value-of select="@runHProf"/></td>
     </tr>
     <xsl:if test="@genericJvmArguments!=''">
     <tr>
        <td>genericJvmArguments</td>
        <td><xsl:value-of select="@genericJvmArguments"/></td>
     </tr> 
     </xsl:if>
     <tr>
       <td>disableJIT</td>
       <td><xsl:value-of select="@disableJIT"/></td>
     </tr>   
     <xsl:for-each select="classpath">
     <tr>
       <td>classpath</td>
       <td><xsl:value-of select="."/></td>
     </tr>   
     </xsl:for-each>
     <xsl:for-each select="systemProperties">
     <tr>
       <td>systemProperties:<xsl:value-of select="@name"/></td>
       <td><xsl:value-of select="@value"/></td>
     </tr>   
     </xsl:for-each>
   </table>
</xsl:template>

<xsl:template match="transports">
   <p></p>
   <table width="740" border="1">
     <tr><td colspan='2' align="center"><h4><xsl:value-of select="@xmi:type"/></h4></td></tr>
     <tr>
       <td width="370">sslEnabled</td>
       <td><xsl:value-of select="@sslEnabled"/></td>
     </tr>     
     <xsl:for-each select="address">
     <tr>
       <td>host</td>
       <td><xsl:value-of select="@host"/></td>
     </tr>   
     <tr>
       <td>port</td>
       <td><xsl:value-of select="@port"/></td>
     </tr>   
     </xsl:for-each>
     <xsl:for-each select="properties">
     <tr>
       <td><xsl:value-of select="@name"/></td>
       <td><xsl:value-of select="@value"/></td>
     </tr>   
     </xsl:for-each>
   </table>
</xsl:template>

<xsl:template match="services">
  <xsl:if test="@xmi:type='applicationserver.webcontainer:SessionManager'">
   <p></p>
   <table width="740" border="1">
     <tr><td colspan='2' align="center"><h4><xsl:value-of select="@xmi:type"/></h4></td></tr>
     <tr>
       <td width="370">enable</td>
       <td><xsl:value-of select="@enable"/></td>
     </tr>     
     <tr>
       <td>enableUrlRewriting</td>
       <td><xsl:value-of select="@enableUrlRewriting"/></td>
     </tr>     
     <tr>
       <td>enableCookies</td>
       <td><xsl:value-of select="@enableCookies"/></td>
     </tr>     
     <tr>
       <td>enableSSLTracking</td>
       <td><xsl:value-of select="@enableSSLTracking"/></td>
     </tr>     
     <tr>
       <td>enableProtocolSwitchRewriting</td>
       <td><xsl:value-of select="@enableProtocolSwitchRewriting"/></td>
     </tr>     
     <tr>
       <td>sessionPersistenceMode</td>
       <td><xsl:value-of select="@sessionPersistenceMode"/></td>
     </tr>     
     <tr>
       <td>enableSecurityIntegration</td>
       <td><xsl:value-of select="@enableSecurityIntegration"/></td>
     </tr>     
     <tr>
       <td>allowSerializedSessionAccess</td>
       <td><xsl:value-of select="@allowSerializedSessionAccess"/></td>
     </tr>     
     <tr>
       <td>maxWaitTime</td>
       <td><xsl:value-of select="@maxWaitTime"/></td>
     </tr>     
     <tr>
       <td>accessSessionOnTimeout</td>
       <td><xsl:value-of select="@accessSessionOnTimeout"/></td>
     </tr>     
     <tr>
       <td>defaultCookieSettings:name</td>
       <td><xsl:value-of select="defaultCookieSettings/@name"/></td>
     </tr>     
     <tr>
       <td>defaultCookieSettings:domain</td>
       <td><xsl:value-of select="defaultCookieSettings/@domain"/></td>
     </tr>     
     <tr>
       <td>defaultCookieSettings:maximumAge</td>
       <td><xsl:value-of select="defaultCookieSettings/@maximumAge"/></td>
     </tr>     
     <tr>
       <td>defaultCookieSettings:path</td>
       <td><xsl:value-of select="defaultCookieSettings/@path"/></td>
     </tr>     
     <tr>
       <td>defaultCookieSettings:secure</td>
       <td><xsl:value-of select="defaultCookieSettings/@secure"/></td>
     </tr>     
     <tr>
       <td>sessionDatabasePersistence:datasourceJNDIName</td>
       <td><xsl:value-of select="sessionDatabasePersistence/@datasourceJNDIName"/></td>
     </tr>     
     <tr>
       <td>sessionDatabasePersistence:userId</td>
       <td><xsl:value-of select="sessionDatabasePersistence/@userId"/></td>
     </tr>     
     <tr>
       <td>sessionDatabasePersistence:db2RowSize</td>
       <td><xsl:value-of select="sessionDatabasePersistence/@db2RowSize"/></td>
     </tr>     
     <tr>
       <td>sessionDatabasePersistence:tableSpaceName</td>
       <td><xsl:value-of select="sessionDatabasePersistence/@tableSpaceName"/></td>
     </tr>     
     <tr>
       <td>tuningParams:usingMultiRowSchema</td>
       <td><xsl:value-of select="tuningParams/@usingMultiRowSchema"/></td>
     </tr>     
     <tr>
       <td>tuningParams:maxInMemorySessionCount</td>
       <td><xsl:value-of select="tuningParams/@maxInMemorySessionCount"/></td>
     </tr>     
     <tr>
       <td>tuningParams:allowOverflow</td>
       <td><xsl:value-of select="tuningParams/@allowOverflow"/></td>
     </tr>     
     <tr>
       <td>tuningParams:scheduleInvalidation</td>
       <td><xsl:value-of select="tuningParams/@scheduleInvalidation"/></td>
     </tr>     
     <tr>
       <td>tuningParams:writeFrequency</td>
       <td><xsl:value-of select="tuningParams/@writeFrequency"/></td>
     </tr>     
     <tr>
       <td>tuningParams:writeInterval</td>
       <td><xsl:value-of select="tuningParams/@writeInterval"/></td>
     </tr>     
     <tr>
       <td>tuningParams:writeContents</td>
       <td><xsl:value-of select="tuningParams/@writeContents"/></td>
     </tr>     
     <tr>
       <td>tuningParams:invalidationTimeout</td>
       <td><xsl:value-of select="tuningParams/@invalidationTimeout"/></td>
     </tr>     
     <tr>
       <td>tuningParams:invalidationSchedule:firstHour</td>
       <td><xsl:value-of select="tuningParams/invalidationSchedule/@firstHour"/></td>
     </tr>     
     <tr>
       <td>tuningParams:invalidationSchedule:secondHour</td>
       <td><xsl:value-of select="tuningParams/invalidationSchedule/@secondHour"/></td>
     </tr>     
   </table>
  </xsl:if>  
</xsl:template>
        
</xsl:stylesheet>