<commit_before><?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xalan="http://xml.apache.org/xslt" xmlns:pc2="urn:perfcake:scenario:2.0" xmlns:pc3="urn:perfcake:scenario:3.0" version="1.0" exclude-result-prefixes="pc2 pc3 xalan">
   <xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes" xalan:indent-amount="3" cdata-section-elements="pc3:validator"/>
   <xsl:template name="property" match="pc2:property">
      <property xmlns="urn:perfcake:scenario:3.0">
         <xsl:attribute name="name">
            <xsl:value-of select="@name"/>
         </xsl:attribute>
         <xsl:choose>
            <xsl:when test="@value">
               <xsl:attribute name="value">
               <xsl:value-of select="@value"/>
            </xsl:attribute>
            </xsl:when>
            <xsl:otherwise>
               <xsl:copy-of select="node()"/>
            </xsl:otherwise>
         </xsl:choose>
      </property>
   </xsl:template>
   <xsl:template name="header" match="pc2:header">
      <header xmlns="urn:perfcake:scenario:3.0">
         <xsl:attribute name="name">
            <xsl:value-of select="@name"/>
         </xsl:attribute>
         <xsl:attribute name="value">
            <xsl:value-of select="@value"/>
         </xsl:attribute>
      </header>
   </xsl:template>
   <xsl:template name="period" match="pc2:period">
      <period xmlns="urn:perfcake:scenario:3.0">
         <xsl:attribute name="type">
            <xsl:value-of select="@type"/>
         </xsl:attribute>
         <xsl:attribute name="value">
            <xsl:value-of select="@value"/>
         </xsl:attribute>
      </period>
   </xsl:template>
   <xsl:template match="/">
      <scenario xmlns="urn:perfcake:scenario:3.0">
         <xsl:if test="pc2:scenario/pc2:properties">
            <properties>
               <xsl:for-each select="pc2:scenario/pc2:properties/pc2:property">
                  <xsl:call-template name="property"/>
               </xsl:for-each>
            </properties>
         </xsl:if>
         <generator>
            <xsl:attribute name="class">
               <xsl:value-of select="pc2:scenario/pc2:generator/@class"/>
            </xsl:attribute>
            <xsl:attribute name="threads">
               <xsl:value-of select="pc2:scenario/pc2:generator/@threads"/>
            </xsl:attribute>
            <run>
               <xsl:attribute name="type">
                  <xsl:value-of select="pc2:scenario/pc2:generator/pc2:run/@type"/>
               </xsl:attribute>
               <xsl:attribute name="value">
                  <xsl:value-of select="pc2:scenario/pc2:generator/pc2:run/@value"/>
               </xsl:attribute>
            </run>
            <xsl:for-each select="pc2:scenario/pc2:generator/pc2:property">
               <xsl:call-template name="property"/>
            </xsl:for-each>
         </generator>
         <sender>
            <xsl:attribute name="class">
               <xsl:choose>
                  <xsl:when test="pc2:scenario/pc2:sender/@class = 'HTTPSender'">HttpSender</xsl:when>
                  <xsl:when test="pc2:scenario/pc2:sender/@class = 'HTTPSSender'">HttpsSender</xsl:when>
                  <xsl:when test="pc2:scenario/pc2:sender/@class = 'JDBCSender'">JdbcSender</xsl:when>
                  <xsl:when test="pc2:scenario/pc2:sender/@class = 'JMSSender'">JmsSender</xsl:when>
                  <xsl:when test="pc2:scenario/pc2:sender/@class = 'RequestResponseJMSSender'">RequestResponseJmsSender</xsl:when>
                  <xsl:when test="pc2:scenario/pc2:sender/@class = 'SOAPSocketSender'">SoapSocketSender</xsl:when>
                  <xsl:when test="pc2:scenario/pc2:sender/@class = 'SSLSocketSender'">SslSocketSender</xsl:when>
                  <xsl:otherwise>
                     <xsl:value-of select="pc2:scenario/pc2:sender/@class"/>
                  </xsl:otherwise>
               </xsl:choose>
            </xsl:attribute>
            <xsl:for-each select="pc2:scenario/pc2:sender/pc2:property">
               <xsl:call-template name="property"/>
            </xsl:for-each>
            <xsl:if test="pc2:scenario/pc2:sender/@class = 'RequestResponseJMSSender'">
               <xsl:if test="pc2:scenario/pc2:sender/pc2:property[@name='username']">
                  <property name="responseUsername">
                     <xsl:attribute name="value">
                     <xsl:value-of select="pc2:scenario/pc2:sender/pc2:property[@name='username']/@value"/>
                  </xsl:attribute>
                  </property>
               </xsl:if>
               <xsl:if test="pc2:scenario/pc2:sender/pc2:property[@name='password']">
                  <property name="responsePassword">
                     <xsl:attribute name="value">
                     <xsl:value-of select="pc2:scenario/pc2:sender/pc2:property[@name='password']/@value"/>
                  </xsl:attribute>
                  </property>
               </xsl:if>
               <property name="responseJndiSecurityPrincipal">
                  <xsl:attribute name="value">
                     <xsl:value-of select="pc2:scenario/pc2:sender/pc2:property[@name='jndiSecurityPrincipal']/@value"/>
                  </xsl:attribute>
               </property>
               <property name="responseJndiSecurityCredentials">
                  <xsl:attribute name="value">
                     <xsl:value-of select="pc2:scenario/pc2:sender/pc2:property[@name='jndiSecurityCredentials']/@value"/>
                  </xsl:attribute>
               </property>
            </xsl:if>
            <property></property><commit_msg>#156: Fixed XSLT not to add an empty property to sender.<commit_after><?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xalan="http://xml.apache.org/xslt" xmlns:pc2="urn:perfcake:scenario:2.0" xmlns:pc3="urn:perfcake:scenario:3.0" version="1.0" exclude-result-prefixes="pc2 pc3 xalan">
   <xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes" xalan:indent-amount="3" cdata-section-elements="pc3:validator"/>
   <xsl:template name="property" match="pc2:property">
      <property xmlns="urn:perfcake:scenario:3.0">
         <xsl:attribute name="name">
            <xsl:value-of select="@name"/>
         </xsl:attribute>
         <xsl:choose>
            <xsl:when test="@value">
               <xsl:attribute name="value">
               <xsl:value-of select="@value"/>
            </xsl:attribute>
            </xsl:when>
            <xsl:otherwise>
               <xsl:copy-of select="node()"/>
            </xsl:otherwise>
         </xsl:choose>
      </property>
   </xsl:template>
   <xsl:template name="header" match="pc2:header">
      <header xmlns="urn:perfcake:scenario:3.0">
         <xsl:attribute name="name">
            <xsl:value-of select="@name"/>
         </xsl:attribute>
         <xsl:attribute name="value">
            <xsl:value-of select="@value"/>
         </xsl:attribute>
      </header>
   </xsl:template>
   <xsl:template name="period" match="pc2:period">
      <period xmlns="urn:perfcake:scenario:3.0">
         <xsl:attribute name="type">
            <xsl:value-of select="@type"/>
         </xsl:attribute>
         <xsl:attribute name="value">
            <xsl:value-of select="@value"/>
         </xsl:attribute>
      </period>
   </xsl:template>
   <xsl:template match="/">
      <scenario xmlns="urn:perfcake:scenario:3.0">
         <xsl:if test="pc2:scenario/pc2:properties">
            <properties>
               <xsl:for-each select="pc2:scenario/pc2:properties/pc2:property">
                  <xsl:call-template name="property"/>
               </xsl:for-each>
            </properties>
         </xsl:if>
         <generator>
            <xsl:attribute name="class">
               <xsl:value-of select="pc2:scenario/pc2:generator/@class"/>
            </xsl:attribute>
            <xsl:attribute name="threads">
               <xsl:value-of select="pc2:scenario/pc2:generator/@threads"/>
            </xsl:attribute>
            <run>
               <xsl:attribute name="type">
                  <xsl:value-of select="pc2:scenario/pc2:generator/pc2:run/@type"/>
               </xsl:attribute>
               <xsl:attribute name="value">
                  <xsl:value-of select="pc2:scenario/pc2:generator/pc2:run/@value"/>
               </xsl:attribute>
            </run>
            <xsl:for-each select="pc2:scenario/pc2:generator/pc2:property">
               <xsl:call-template name="property"/>
            </xsl:for-each>
         </generator>
         <sender>
            <xsl:attribute name="class">
               <xsl:choose>
                  <xsl:when test="pc2:scenario/pc2:sender/@class = 'HTTPSender'">HttpSender</xsl:when>
                  <xsl:when test="pc2:scenario/pc2:sender/@class = 'HTTPSSender'">HttpsSender</xsl:when>
                  <xsl:when test="pc2:scenario/pc2:sender/@class = 'JDBCSender'">JdbcSender</xsl:when>
                  <xsl:when test="pc2:scenario/pc2:sender/@class = 'JMSSender'">JmsSender</xsl:when>
                  <xsl:when test="pc2:scenario/pc2:sender/@class = 'RequestResponseJMSSender'">RequestResponseJmsSender</xsl:when>
                  <xsl:when test="pc2:scenario/pc2:sender/@class = 'SOAPSocketSender'">SoapSocketSender</xsl:when>
                  <xsl:when test="pc2:scenario/pc2:sender/@class = 'SSLSocketSender'">SslSocketSender</xsl:when>
                  <xsl:otherwise>
                     <xsl:value-of select="pc2:scenario/pc2:sender/@class"/>
                  </xsl:otherwise>
               </xsl:choose>
            </xsl:attribute>
            <xsl:for-each select="pc2:scenario/pc2:sender/pc2:property">
               <xsl:call-template name="property"/>
            </xsl:for-each>
            <xsl:if test="pc2:scenario/pc2:sender/@class = 'RequestResponseJMSSender'">
               <xsl:if test="pc2:scenario/pc2:sender/pc2:property[@name='username']">
                  <property name="responseUsername">
                     <xsl:attribute name="value">
                     <xsl:value-of select="pc2:scenario/pc2:sender/pc2:property[@name='username']/@value"/>
                  </xsl:attribute>
                  </property>
               </xsl:if>
               <xsl:if test="pc2:scenario/pc2:sender/pc2:property[@name='password']">
                  <property name="responsePassword">
                     <xsl:attribute name="value">
                     <xsl:value-of select="pc2:scenario/pc2:sender/pc2:property[@name='password']/@value"/>
                  </xsl:attribute>
                  </property>
               </xsl:if>
               <property name="responseJndiSecurityPrincipal">
                  <xsl:attribute name="value">
                     <xsl:value-of select="pc2:scenario/pc2:sender/pc2:property[@name='jndiSecurityPrincipal']/@value"/>
                  </xsl:attribute>
               </property>
               <property name="responseJndiSecurityCredentials">
                  <xsl:attribute name="value">
                     <xsl:value-of select="pc2:scenario/pc2:sender/pc2:property[@name='jndiSecurityCredentials']/@value"/>
                  </xsl:attribute>
               </property>
            </xsl:if>
{'fraction_non_alphanumeric': 0.16276398338782364, 'fraction_numerical': 0.016347088451002915, 'mean_word_length': 2.1247929320817227, 'pattern_counts': {'":': 0, '<': 243, '<?xml version=': 2, '>': 243, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 22}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '818039', 'n_tokens_mistral': 3668, 'n_tokens_neox': 3300, 'n_words': 410}