p5ant-interface.parallel_ant_build.xsl 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  3. xmlns:xs="http://www.w3.org/2001/XMLSchema"
  4. xmlns:p5ant-interface="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/ant_interface/ant_interface.xsd"
  5. xmlns:p5dg="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/documentation_generator/documentation_generator.xsd"
  6. xmlns:p5suis="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/system_ui_info_speech/system_ui_info_speech.xsd"
  7. exclude-result-prefixes="xs"
  8. version="2.0">
  9. <!--<xsl:include href="../documentation_generator/p5dg.filepath.xsl"/>-->
  10. <!--<xsl:include href="../ant/p5ant.create_new_WPS_Function.xsl"/>-->
  11. <xsl:output indent="yes"/>
  12. <xsl:strip-space elements="*"/>
  13. <xsl:param name="p5ant-interface.parallel_ant_build.properties.read.file" />
  14. <xsl:param name="p5ant-interface.parallel_ant_build.local.integrate.target.name" required="yes"/>
  15. <!--<xsl:param name="p5ant-interface.parallel_ant_build.output_file.param.name" required="yes"/>-->
  16. <xsl:param name="p5ant-interface.parallel_ant_build.thread.count.param" required="yes"/>
  17. <xsl:param name="p5ant-interface.parallel_ant_build.thread.count.param.name" required="yes"/>
  18. <xsl:param name="p5ant-interface.parallel_ant_build.thread.thread.no.param.name" required="yes"/>
  19. <xsl:param name="p5ant-interface.parallel_ant_build.thread.thread.no.foreign.param.name" required="yes"/>
  20. <xsl:param name="p5ant-interface.parallel_ant_build.thread.thread.no.merge.count.param.name" required="yes"/>
  21. <xsl:param name="p5ant-interface.parallel_ant_build.thread.thread.no.merge.count.param" required="yes"/>
  22. <xsl:param name="p5ant-interface.parallel_ant_build.thread.thread.no.merge.no.param.name" required="yes"/>
  23. <!--<xsl:param name="p5ant-interface.parallel_ant_build.target.name" required="yes"/>-->
  24. <xsl:param name="p5ant-interface.parallel_ant_build.new.ant.build.xml" required="yes"/>
  25. <xsl:param name="p5ant-interface.parallel_ant_build.new.ant.project.name" required="yes"/>
  26. <xsl:param name="p5ant-interface.parallel_ant_build.new.ant.target.name" required="yes"/>
  27. <xsl:param name="p5ant-interface.parallel_ant_build.calling.build.xml" required="yes"/>
  28. <xsl:param name="p5ant-interface.parallel_ant_build.calling.build.basedir" required="yes"/>
  29. <xsl:param name="p5ant-interface.parallel_ant_build.calling.build.repository" required="yes"/>
  30. <xsl:param name="p5ant-interface.parallel_ant_build.threadcount" select="'10'"/>
  31. <xsl:param name="p5ant.WPS_Functions.PRODUCT.name.input" required="yes"/>
  32. <xsl:param name="p5ant.WPS_Functions.PRODUCT.prefix.input" required="yes"/>
  33. <xsl:param name="p5suis.p5suis.say_to_queue.PL" required="yes"/>
  34. <xsl:param name="p5suis.build" required="yes"/>
  35. <xsl:param name="p5ant-interface.build" required="yes"/>
  36. <xsl:param name="p5ant-interface.parallel_ant_build.thread.thread.no.merge.count.minimize.param" select="$p5ant-interface.parallel_ant_build.thread.thread.no.merge.count.param"/><!-- to apply only part of loop - to achieve all database context but not full -->
  37. <xsl:param name="p5ant-interface.parallel_ant_build.outfile.structure"/>
  38. <xsl:param name="p5dkp.repository" required="yes"/>
  39. <!-- -->
  40. <xsl:template mode="p5ant-interface:parallel_ant_build.xml" match="project" > <!-- xpath-default-namespace="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/documentation_generator/documentation_generator.xsd" -->
  41. <project
  42. basedir="{$p5ant-interface.parallel_ant_build.calling.build.basedir}"
  43. default="{$p5ant-interface.parallel_ant_build.new.ant.target.name}"
  44. name="{$p5ant-interface.parallel_ant_build.new.ant.project.name}">
  45. <xsl:copy-of select="namespace::*"/>
  46. <xsl:copy-of select=".//namespace::*"/>
  47. <xsl:copy-of select="namespace::node()"/>
  48. <xsl:apply-templates mode="#current"/>
  49. <loadproperties srcfile="{$p5ant-interface.parallel_ant_build.properties.read.file}" />
  50. <include file="{$p5suis.build}" as="p5suis"/>
  51. <include file="{$p5ant-interface.build}" as="ant_interface"/>
  52. <include file="{$p5ant-interface.parallel_ant_build.calling.build.xml}" as="include"/>
  53. <property name="p5dkp.repository" location="{$p5dkp.repository}"/>
  54. <xsl:apply-templates mode="p5ant-interface:parallel_ant_build.xml.ant"/>
  55. </project>
  56. </xsl:template>
  57. <xsl:function name="p5ant-interface:parallel_ant_build.outfile.structure">
  58. <xsl:param name="p5ant-interface.parallel_ant_build.thread.thread.no.current"/>
  59. <xsl:value-of select="replace($p5ant-interface.parallel_ant_build.outfile.structure,'\$\{p5ant-interface.parallel_ant_build.thread.thread.no.param.name\}',xs:string($p5ant-interface.parallel_ant_build.thread.thread.no.current))"/>
  60. </xsl:function>
  61. <xsl:template mode="p5ant-interface:parallel_ant_build.xml.ant" match="target[@name = $p5ant-interface.parallel_ant_build.local.integrate.target.name]">
  62. <xsl:copy copy-namespaces="no">
  63. <xsl:attribute name="name" select="$p5ant-interface.parallel_ant_build.new.ant.target.name"/>
  64. <xsl:copy-of select="@description"/>
  65. <!--<xsl:copy-of select="@depends"/>-->
  66. <xsl:choose>
  67. <xsl:when test="@depends">
  68. <xsl:attribute name="depends">
  69. <xsl:for-each select="tokenize(@depends,',')">
  70. <xsl:value-of select="concat('include.',.)"/>
  71. <xsl:choose>
  72. <xsl:when test="position() = last()"/>
  73. <xsl:otherwise><xsl:value-of select="','"/></xsl:otherwise>
  74. </xsl:choose>
  75. </xsl:for-each>
  76. </xsl:attribute>
  77. </xsl:when>
  78. </xsl:choose>
  79. <xsl:comment>#61 generated by p5ant-interface:parallel_ant_build.xml</xsl:comment>
  80. <echo>###63p5dkp.dita_root.ditamap.dir = ${p5dkp.dita_root.ditamap.dir}</echo>
  81. <echo>###93 $p5ant-interface.parallel_ant_build.threadcount <xsl:value-of select="$p5ant-interface.parallel_ant_build.threadcount"/></echo>
  82. <echo>###65 p5ant-interface.parallel_ant_build.thread.thread.no.param.name = ${<xsl:value-of select="$p5ant-interface.parallel_ant_build.thread.thread.no.param.name"/>}</echo>
  83. <echo>###66 p5dkp.ditafiles.wordindex.xml.thread.no.merge.count = ${ditafiles.wordindex.xml.thread.no.merge.count}</echo>
  84. <echo>###71 p5ant-interface.parallel_ant_build.thread.thread.no.merge.count.minimize.param = <xsl:value-of select="$p5ant-interface.parallel_ant_build.thread.thread.no.merge.count.minimize.param"/></echo>
  85. <echo>###72 p5ant-interface.parallel_ant_build.thread.thread.no.foreign.param.name = <xsl:value-of select="$p5ant-interface.parallel_ant_build.thread.thread.no.foreign.param.name"/></echo>
  86. <echo>###73 $p5dkp.dita_root_path = ${p5dkp.dita_root_path}</echo>
  87. <echo>###74 $p5dkp.dita_root_path = ${p5dkp.repository}</echo>
  88. <echo>###75 $p5dkp.repository = <xsl:value-of select="$p5dkp.repository"/></echo>
  89. <property name="p5dkp.repository" location="{$p5dkp.repository}"/>
  90. <mkdir>
  91. <xsl:attribute name="dir" select="$p5dkp.repository"/>
  92. </mkdir>
  93. <xsl:variable name="context" select="*"/>
  94. <parallel threadcount="{$p5ant-interface.parallel_ant_build.threadcount}">
  95. <xsl:choose>
  96. <xsl:when test="input[@addproperty=$p5ant-interface.parallel_ant_build.thread.thread.no.foreign.param.name]">
  97. <xsl:for-each select="1 to $p5ant-interface.parallel_ant_build.thread.count.param">
  98. <xsl:variable name="p5ant-interface.parallel_ant_build.thread.thread.no.current" select="current()"/>
  99. <xsl:for-each select="1 to $p5ant-interface.parallel_ant_build.thread.count.param"> <!-- $p5dkp:ditafiles.wordindex.xml.thread.no.foreign -->
  100. <xsl:variable name="p5ant-interface.parallel_ant_build.thread.thread.no.foreign.current" select="current()"/>
  101. <xsl:for-each select="1 to $p5ant-interface.parallel_ant_build.thread.thread.no.merge.count.param">
  102. <xsl:variable name="p5ant-interface.parallel_ant_build.thread.thread.no.merge.no.current" select="current()"/>
  103. <xsl:choose>
  104. <xsl:when test=" number($p5ant-interface.parallel_ant_build.thread.thread.no.foreign.current) &gt; number($p5ant-interface.parallel_ant_build.thread.thread.no.merge.count.minimize.param) or number($p5ant-interface.parallel_ant_build.thread.thread.no.merge.no.current) &gt; number($p5ant-interface.parallel_ant_build.thread.thread.no.merge.count.minimize.param) or number($p5ant-interface.parallel_ant_build.thread.thread.no.current) &gt; number($p5ant-interface.parallel_ant_build.thread.thread.no.merge.count.minimize.param)">
  105. <xsl:comment>#78 bypassed $p5ant-interface.parallel_ant_build.thread.thread.no.merge.no.current = <xsl:value-of select="$p5ant-interface.parallel_ant_build.thread.thread.no.merge.no.current"/> to limit $p5ant-interface.parallel_ant_build.thread.thread.no.current <xsl:value-of select="$p5ant-interface.parallel_ant_build.thread.thread.no.merge.count.minimize.param"/></xsl:comment>
  106. </xsl:when>
  107. <xsl:otherwise>
  108. <sequential>
  109. <antcall inheritall="true" target="include.{$p5ant-interface.parallel_ant_build.local.integrate.target.name}">
  110. <xsl:apply-templates mode="p5ant-interface:parallel_ant_build.xml.ant" select="$context">
  111. <xsl:with-param name="p5ant-interface.parallel_ant_build.thread.thread.no.current" select="$p5ant-interface.parallel_ant_build.thread.thread.no.current"/>
  112. <xsl:with-param name="p5ant-interface.parallel_ant_build.thread.thread.no.merge.no.current" select="$p5ant-interface.parallel_ant_build.thread.thread.no.merge.no.current"/>
  113. <xsl:with-param name="p5ant-interface.parallel_ant_build.thread.thread.no.merge.no.count" select="$p5ant-interface.parallel_ant_build.thread.thread.no.merge.count.param"/>
  114. <xsl:with-param name="p5ant-interface.parallel_ant_build.thread.thread.no.foreign.current" select="$p5ant-interface.parallel_ant_build.thread.thread.no.foreign.current"/>
  115. <xsl:with-param name="p5dkp.repository" select="$p5dkp.repository"/>
  116. </xsl:apply-templates>
  117. </antcall>
  118. <xsl:choose>
  119. <xsl:when test="1 = 1">
  120. <xsl:choose>
  121. <xsl:when test=" (not((number($p5ant-interface.parallel_ant_build.thread.thread.no.current) + number($p5ant-interface.parallel_ant_build.thread.thread.no.merge.no.current) + number($p5ant-interface.parallel_ant_build.thread.thread.no.merge.count.param)) mod 31 )) ">
  122. <xsl:comment>#121111 not(mod) <xsl:value-of select="number($p5ant-interface.parallel_ant_build.thread.thread.no.current) + number($p5ant-interface.parallel_ant_build.thread.thread.no.merge.no.current)"/> mod 31 = <xsl:value-of select=" (not((number($p5ant-interface.parallel_ant_build.thread.thread.no.current) + number($p5ant-interface.parallel_ant_build.thread.thread.no.merge.no.current)) mod 31 )) "/></xsl:comment>
  123. <antcall target="p5suis.p5suis.say_to_queue.PL_if_queue_empty">
  124. <param name="p5suis:say_text" value="{$p5suis.p5suis.say_to_queue.PL} {$p5ant-interface.parallel_ant_build.thread.thread.no.current} {$p5ant-interface.parallel_ant_build.thread.thread.no.foreign.current} {$p5ant-interface.parallel_ant_build.thread.thread.no.merge.no.current}"/>
  125. </antcall>
  126. </xsl:when>
  127. </xsl:choose>
  128. </xsl:when>
  129. <xsl:otherwise>
  130. <antcall target="p5suis.p5suis.say_to_queue.PL_if_queue_empty">
  131. <param name="p5suis:say_text" value="{$p5suis.p5suis.say_to_queue.PL} {$p5ant-interface.parallel_ant_build.thread.thread.no.current} {$p5ant-interface.parallel_ant_build.thread.thread.no.foreign.current} {$p5ant-interface.parallel_ant_build.thread.thread.no.merge.no.current}"/>
  132. </antcall>
  133. </xsl:otherwise>
  134. </xsl:choose>
  135. </sequential>
  136. </xsl:otherwise>
  137. </xsl:choose>
  138. </xsl:for-each>
  139. </xsl:for-each>
  140. </xsl:for-each>
  141. </xsl:when>
  142. <xsl:otherwise>
  143. <xsl:for-each select="1 to $p5ant-interface.parallel_ant_build.thread.count.param">
  144. <xsl:variable name="p5ant-interface.parallel_ant_build.thread.thread.no.current" select="current()"/>
  145. <xsl:variable name="p5ant-interface.parallel_ant_build.pattern.thread.no"><xsl:text>\$</xsl:text><xsl:text>\{p5ant-interface.parallel_ant_build.thread.thread.no.param.name\}</xsl:text></xsl:variable>
  146. <echo>#82 $p5ant-interface.parallel_ant_build.outfile.structure = <xsl:value-of select="$p5ant-interface.parallel_ant_build.outfile.structure"/>
  147. replaced by vars <xsl:value-of select="replace($p5ant-interface.parallel_ant_build.outfile.structure,'\$\{p5ant-interface.parallel_ant_build.thread.thread.no.param.name\}',xs:string($p5ant-interface.parallel_ant_build.thread.thread.no.current))"/>
  148. </echo>
  149. <xsl:choose>
  150. <xsl:when test=" number($p5ant-interface.parallel_ant_build.thread.thread.no.current) &gt; number($p5ant-interface.parallel_ant_build.thread.thread.no.merge.count.minimize.param)">
  151. <xsl:comment>#127 bypassed $p5ant-interface.parallel_ant_build.thread.thread.no.merge.count.current = <xsl:value-of select="$p5ant-interface.parallel_ant_build.thread.thread.no.current"/> to limit $p5ant-interface.parallel_ant_build.thread.thread.no.current <xsl:value-of select="$p5ant-interface.parallel_ant_build.thread.thread.no.merge.count.minimize.param"/></xsl:comment>
  152. </xsl:when>
  153. <!--<xsl:when test="doc-available(p5ant-interface:parallel_ant_build.outfile.structure($p5ant-interface.parallel_ant_build.thread.thread.no.current))">
  154. <xsl:comment>#154 bypassed by doc-available(<xsl:value-of select="p5ant-interface:parallel_ant_build.outfile.structure($p5ant-interface.parallel_ant_build.thread.thread.no.current)"/>)</xsl:comment>
  155. </xsl:when>-->
  156. <xsl:otherwise>
  157. <sequential>
  158. <antcall inheritall="true" target="include.{$p5ant-interface.parallel_ant_build.local.integrate.target.name}">
  159. <xsl:apply-templates mode="p5ant-interface:parallel_ant_build.xml.ant" select="$context">
  160. <xsl:with-param name="p5ant-interface.parallel_ant_build.thread.thread.no.current" select="$p5ant-interface.parallel_ant_build.thread.thread.no.current"/>
  161. <xsl:with-param name="p5dkp.repository" select="$p5dkp.repository"/>
  162. </xsl:apply-templates>
  163. </antcall>
  164. <xsl:choose>
  165. <xsl:when test="number($p5ant-interface.parallel_ant_build.thread.count.param) &gt; 10">
  166. <xsl:comment>#142 more than 10 - using mod to say </xsl:comment>
  167. <xsl:choose>
  168. <xsl:when test="not( number($p5ant-interface.parallel_ant_build.thread.thread.no.current) mod 8 )">
  169. <antcall target="p5suis.p5suis.say_to_queue.PL_if_queue_empty">
  170. <param name="p5suis:say_text" value="{$p5suis.p5suis.say_to_queue.PL} {$p5ant-interface.parallel_ant_build.thread.thread.no.current}"/>
  171. </antcall>
  172. </xsl:when>
  173. </xsl:choose>
  174. </xsl:when>
  175. <xsl:otherwise>
  176. <antcall target="p5suis.p5suis.say_to_queue.PL_if_queue_empty">
  177. <param name="p5suis:say_text" value="{$p5suis.p5suis.say_to_queue.PL} {$p5ant-interface.parallel_ant_build.thread.thread.no.current}"/>
  178. </antcall>
  179. </xsl:otherwise>
  180. </xsl:choose>
  181. </sequential>
  182. </xsl:otherwise>
  183. </xsl:choose>
  184. </xsl:for-each>
  185. </xsl:otherwise>
  186. </xsl:choose>
  187. </parallel>
  188. </xsl:copy>
  189. </xsl:template>
  190. <xsl:template mode="p5ant-interface:parallel_ant_build.xml.ant" match="input[@addproperty = $p5ant-interface.parallel_ant_build.thread.count.param.name]">
  191. <param name="{@addproperty}" >
  192. <xsl:attribute name="value" select="$p5ant-interface.parallel_ant_build.thread.count.param"/>
  193. </param>
  194. </xsl:template>
  195. <xsl:template mode="p5ant-interface:parallel_ant_build.xml.ant" match="input[@addproperty = $p5ant-interface.parallel_ant_build.thread.thread.no.merge.no.param.name]">
  196. <xsl:param name="p5ant-interface.parallel_ant_build.thread.thread.no.merge.no.current" required="yes"/>
  197. <param name="{@addproperty}" >
  198. <xsl:attribute name="value" select="$p5ant-interface.parallel_ant_build.thread.thread.no.merge.no.current"/>
  199. </param>
  200. </xsl:template>
  201. <xsl:template mode="p5ant-interface:parallel_ant_build.xml.ant" match="input[@addproperty = $p5ant-interface.parallel_ant_build.thread.thread.no.param.name]">
  202. <xsl:param name="p5ant-interface.parallel_ant_build.thread.thread.no.current" required="yes"/>
  203. <param name="{@addproperty}" >
  204. <xsl:attribute name="value" select="$p5ant-interface.parallel_ant_build.thread.thread.no.current"/>
  205. </param>
  206. </xsl:template>
  207. <!--<xsl:template mode="p5ant-interface:parallel_ant_build.xml.ant" match="input[@addproperty = $p5ant-interface.parallel_ant_build.thread.thread.no.param.name]">
  208. <param name="{@addproperty}" >
  209. <xsl:attribute name="value">${<xsl:value-of select="$p5ant-interface.parallel_ant_build.thread.thread.no.param.name"/>}</xsl:attribute>
  210. </param>
  211. </xsl:template>-->
  212. <xsl:template mode="p5ant-interface:parallel_ant_build.xml.ant" match="input[@addproperty = $p5ant-interface.parallel_ant_build.thread.thread.no.foreign.param.name]">
  213. <xsl:param name="p5ant-interface.parallel_ant_build.thread.thread.no.foreign.current" required="yes"/>
  214. <param name="{@addproperty}" >
  215. <xsl:attribute name="value" select="$p5ant-interface.parallel_ant_build.thread.thread.no.foreign.current"/>
  216. </param>
  217. </xsl:template>
  218. <xsl:template mode="p5ant-interface:parallel_ant_build.xml.ant" match="input[@addproperty = $p5ant-interface.parallel_ant_build.thread.thread.no.merge.count.param.name]">
  219. <param name="{@addproperty}" >
  220. <xsl:attribute name="value" select="$p5ant-interface.parallel_ant_build.thread.thread.no.merge.count.param"/>
  221. </param>
  222. </xsl:template>
  223. <xsl:template match="*" mode="p5ant-interface:parallel_ant_build.xml.ant" />
  224. <xsl:template match="text()|comment()" mode="p5ant-interface:parallel_ant_build.xml p5ant-interface:parallel_ant_build.xml.ant"/>
  225. </xsl:stylesheet>