2 Replies Latest reply on Apr 7, 2009 5:43 AM by noelo

    Wise/Smooks caching of XSLT transformation

    noelo

      Hi,
      I'm playing around with the webservice_consumer_wise4 quickstart and I'm seeing an interesting issue.
      First of all the quick start works well without problem, I deploy it using ant and run the test using ant runtest.
      However if after running the test I
      [1] Undeploy the quick start from the ESB
      [2] Modify the smooks-handler.xml to add a different SOAP header
      [3] Redeploy and re-run the test I still see the original SOAP header being added as opposed to the new soap header

      It seems that wise or smooks are caching this transformation and not releasing it once the archive is undeployed. The only way I can see to flush this is to restart the ESB. The version I'm using is SOA-P 4.3.

      Original smooks-handler.xml with the first header

      <?xml version="1.0"?>
      <smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
      
       <resource-config selector="header">
       <resource type="xsl">
       <![CDATA[
       <sign:sign xmlns:sign="uri://org.example.webservices.signature.sign">
       </sign:sign>
       ]]>
       </resource>
       <param name="is-xslt-templatelet">true</param>
       <param name="action">addto</param>
       </resource-config>
      
      </smooks-resource-list>
      


      This results in the following debug messages
       [org.milyn.delivery.dom.SmooksDOMFilter] Applying processing resource [Target Profile: [[org.milyn.profile.profile#default_profile]], Sel
      ector: [header], Selector Namespace URI: [null], Resource: [
      
       <sign:sign xmlns:sign="uri://org.example.webservices.signature.sign">
       </sign:sign>
      
      



      New smooks-handler.xml with the new smooks header
      <?xml version="1.0"?>
      <smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
      
       <resource-config selector="header">
       <resource type="xsl">
       <![CDATA[
       <foo:foo xmlns:foo="uri://org.example.webservices.signature.foo">
       </foo:foo>
       ]]>
       </resource>
       <param name="is-xslt-templatelet">true</param>
       <param name="action">addto</param>
       </resource-config>
      
      </smooks-resource-list>
      


      This outputs the same as the previous example and only changes once the server is restarted.

      Is there anyway of disabling the caching, assuming that is the problem ?
      Thanks,
      Noel