# reportfmt

title: All Tickets
cols:
  #ffffff Key:
  #f2dcdc Active
  #e8e8e8 Review
  #cfe8bd Fixed
  #bde5d6 Tested
  #cacae5 Deferred
  #c8c8c8 Closed

sqlcode:
  SELECT
    CASE WHEN status IN ('Open','Verified') THEN '#f2dcdc'
         WHEN status='Review' THEN '#e8e8e8'
         WHEN status='Fixed' THEN '#cfe8bd'
         WHEN status='Tested' THEN '#bde5d6'
         WHEN status='Deferred' THEN '#cacae5'
         ELSE '#c8c8c8' END AS 'bgcolor',
    substr(tkt_uuid,1,10) AS '#',
    datetime(tkt_mtime) AS 'mtime',
    type,
    status,
    subsystem,
    title
  FROM ticket


# event

type: g
user: gerald
comment:
  Tag changes on [/timeline?dp=be68af6df7cf5f8e&n=4 | be68af6df7cf5f8e]: Add symbolic tag "Release_1.4.0".


type: g
user: gerald
comment:
  Tag changes on [/timeline?dp=124a3b3a8942cb8e&n=4 | 124a3b3a8942cb8e]: Add symbolic tag "Release_1.4.0".


type: t
user: gerald
brief: New ticket [80424f3728].
comment:
  New ticket [80424f3728] <i>Does not support the same type name being defined differently in different name space</i>.


type: t
user: gerald
brief: Ticket [80424f3728]: 5 changes
comment:
  Ticket [80424f3728] <i>Does not support the same type name being defined differently in different name space</i> status still Open with 5 other changes


type: t
user: gerald
brief: Ticket [146662c8bd]: 3 changes
comment:
  Ticket [146662c8bd] <i>Wsdl and SOAP version check (feature request)</i> status still Open with 3 other changes


type: t
user: gerald
brief: Ticket [2031f0cb17]: 3 changes
comment:
  Ticket [2031f0cb17] <i>support for SOAP 1.2 with WSDL 1.1</i> status still Open with 3 other changes


type: t
user: gerald
brief: Accepted ticket [80424f3728].
comment:
  Accepted ticket [80424f3728]: <i>Does not support the same type name being defined differently in different name space</i> plus 1 other change


type: t
user: gerald
brief: Accepted ticket [0ab8229f4e].
comment:
  Accepted ticket [0ab8229f4e]: <i>Loading a pre parsed WSDL doesn't work for simple methods</i> plus 2 other changes


type: t
user: gerald
brief: Deferred ticket [146662c8bd].
comment:
  Deferred ticket [146662c8bd]: <i>Wsdl and SOAP version check (feature request)</i> plus 1 other change


type: g
user: gerald
comment:
  Tag changes on [/timeline?dp=124a3b3a8942cb8e&n=4 | 124a3b3a8942cb8e]: Cancel symbolic tag "Release_1.4.0".


type: t
user: bovine
brief: New ticket [dadda5b3e5].
comment:
  New ticket [dadda5b3e5]: <i>Way to include custom CSS stylesheet in HTML documentation</i> plus 3 other changes


type: t
user: gerald
brief: Ticket [1490906b3e]: 1 change
comment:
  Ticket [1490906b3e] <i>Repeated import of an XSD raises an error</i> status still Verified with 1 other change


type: t
user: bovine
brief: Fixed ticket [dadda5b3e5].
comment:
  Fixed ticket [dadda5b3e5]: <i>Way to include custom CSS stylesheet in HTML documentation</i> plus 1 other change


type: g
user: gerald
comment:
  Tag changes on [/timeline?dp=29c35a6ae9d29b29&n=4 | 29c35a6ae9d29b29]: Add symbolic tag "Release_1.4.1".


type: t
user: gerald
brief: Ticket [1490906b3e]: 1 change
comment:
  Ticket [1490906b3e] <i>Repeated import of an XSD raises an error</i> status still Closed with 1 other change


type: t
user: gerald
brief: Ticket [dadda5b3e5]: 1 change
comment:
  Ticket [dadda5b3e5] <i>Way to include custom CSS stylesheet in HTML documentation</i> status still Closed with 1 other change


type: t
user: gerald
brief: Ticket [aa05504f11]: 1 change
comment:
  Ticket [aa05504f11] <i>Multiple nodes in soap body causes issues</i> status still Fixed with 1 other change


type: g
user: gerald
comment:
  Tag changes on [/timeline?dp=29c35a6ae9d29b29&n=4 | 29c35a6ae9d29b29]: Cancel symbolic tag "Release_1.4.1".


type: g
user: gerald
comment:
  Tag changes on [/timeline?dp=cbbcca34c44be885&n=4 | cbbcca34c44be885]: Add symbolic tag "Release_1.4.1".


type: t
user: gerald
brief: Accepted ticket [7c55121bce].
comment:
  Accepted ticket [7c55121bce]: <i>Server side handling for wibble not functional</i> plus 2 other changes


type: t
user: gerald
brief: Accepted ticket [f1d8afed96].
comment:
  Accepted ticket [f1d8afed96]: <i>Add Client side routine(s) to introspect and override WSDL</i> plus 2 other changes


type: t
user: gerald
brief: Ticket [f1d8afed96]: 1 change
comment:
  Ticket [f1d8afed96] <i>Add Client side routine(s) to introspect and override WSDL</i> status still Accepted with 1 other change


type: t
user: gerald
brief: Ticket [7c55121bce]: 1 change
comment:
  Ticket [7c55121bce] <i>Server side handling for wibble not functional</i> status still Accepted with 1 other change


type: t
user: gerald
brief: Ticket [0ab8229f4e]: 1 change
comment:
  Ticket [0ab8229f4e] <i>Loading a pre parsed WSDL doesn't work for simple methods</i> status still Accepted with 1 other change


# ticket

tkt_uuid: 80424f3728d0807e8ae7ab44cdb703b47ec71c78
type: Code_Defect
status: Accepted
subsystem: Client_Side
priority: Medium
severity: Important
foundin: 1.4.0
resolution: Open
title: Does not support the same type name being defined differently in different name space
comment:
  What steps will reproduce the problem?
  1. Attempt to parse a WSDL that uses the same name for a type in two different name spaces where the type is defined differently in the name spaces

  What is the expected output? What do you see instead?
  Correct type definition used based on what namespace the element being processed is in.

  What version of the product are you using? On what operating system?
  1.2.0

  Please provide any additional information below.
  N/A

  <hr /><i>gerald added on 2011-02-26 06:46:29 UTC:</i><br />
  Requires delicate rewrite of type storage and lookups using name space (alias?) and type.


tkt_uuid: 7787af31cf86af2e974e4806e2c915a5baf98803
type: Code_Defect
status: Deferred
subsystem: Utilities
priority: Low
severity: Important
foundin: 1.4.0
resolution: Open
title: UNIONS not supported
comment:
  What steps will reproduce the problem?
  1. Attempt to parse a WSDL with a UNION

  <hr /><i>gerald added on 2011-02-26 06:51:16 UTC:</i><br />
  No good idea how to implement this so it just "works" without special code (i.e.use of  ::WS::Utils::MutableTypeDef).


tkt_uuid: 146662c8bd8b542b6813e0af9cb77bf5da96ba78
type: Feature_Request
status: Blocked
subsystem: Client_Side
priority: Immediate
severity: Minor
foundin: 1.3.0
resolution: Open
title: Wsdl and SOAP version check (feature request)
comment:
  Currently, tclws does not support all versions of the WDSL and SOAP standards. Parsing an unsupported wsdl or soap version results in an error message which is nog very descriptive.


  What steps will reproduce the problem?
  1. parse http://nationaalgeoregister.nl:80/geonetwork/xml/inspire/wsdl/DiscoveryService/2.0/DiscoveryService.wsdl 
  2. error msg: Malformed WSDL -- No SOAP address node found

  Feature request:
  Add a proc WS::Client::GetWsdlInfo 
  This proc could be modeled after Tcl's [info]. 
  [WS::Client::GetWsdlInfo version] should report the version of Wsdl and soap, regardless if the specific version is supported bij tclws or not. This proc could then als be used to give a more descriptive error message if an unsupported Wsdl service is encountered. 

  What version of the product are you using? On what operating system?
  1.3.0

  <hr /><i>gerald added on 2011-02-26 06:53:23 UTC:</i><br />
  Can you provide an example implementation?


tkt_uuid: 2031f0cb17ac631f4a2aff241687272ee655c029
type: Feature_Request
status: Accepted
subsystem: Client_Side
priority: Whenever
severity: Important
foundin: 1.3.0
resolution: Open
title: support for SOAP 1.2 with WSDL 1.1
comment:
  Currently tclws doesn't support SOAP 1.2 with WSDL 1.1.
  Feature request: support these versions.

  Rationale: these versions are use by INSPIRE, a program by the European Union. This means that wide usage is expected.

  see http://inspire.jrc.ec.europa.eu/

  <hr /><i>gerald added on 2011-02-26 06:55:37 UTC:</i><br />
  This will be implemented as part of the implementation of issue 1f408e6f86


tkt_uuid: 0ab8229f4e5d0ece0bf0e17e12cd7088e5733e9a
type: Code_Defect
status: Accepted
subsystem: Client_Side
priority: Immediate
severity: Severe
foundin: 1.3.0
resolution: Open
title: Loading a pre parsed WSDL doesn't work for simple methods
comment:
  What steps will reproduce the problem?
  1. Load a pre parsed WSDL
  2. Generate the stubs for its methods
  3. Simple methods requiring no arguments and returning nothing will throw an error: 

  key "xns" not known in dictionary
      while executing
  "dict get [::WS::Utils::GetServiceTypeDef Client $serviceName $msgType] xns"
      (procedure "buildDocLiteralCallquery" line 46)
      invoked from within
  "buildDocLiteralCallquery $serviceName $operationName $url $argList"
      (procedure "buildCallquery" line 10)
      invoked from within
  "buildCallquery $serviceName $operationName $url $argList"
      (procedure "::WS::Client::DoCall" line 13)

  The parsed output of GetAndParseWsdl contains neither types nor simple types dict entries for such simple methods. The results dict is not being populated for them.
   
  The WSDL entry looked like this for the method which failed
  - <xsd:element name="StartRotation">
    <xsd:complexType /> 
    </xsd:element>

  What version of the product are you using? 1.3.0 
  On what operating system? Windows


tkt_uuid: dadda5b3e53b04510404b09aab6181702f321397
type: Feature_Request
status: Closed
subsystem: Server_Side
priority: Immediate
severity: Minor
resolution: Fixed
title: Way to include custom CSS stylesheet in HTML documentation
comment:
  To improve the appearance of visual consistency of the auto-generated HTML documentation, there should be a new configuration parameter to allow a custom CSS stylesheet to be emitted in the HTML head section.

  <hr /><i>bovine added on 2011-03-10 01:10:23 UTC:</i><br />
  Proposed patch at http://pastebin.com/rHTct7KN

  <hr /><i>bovine added on 2011-03-16 22:39:32 UTC:</i><br />
  committed


tkt_uuid: 1490906b3e1ed8edbe1a3acbbd34b37f7214bdc2
type: Code_Defect
status: Closed
subsystem: Client_Side
priority: Immediate
severity: Severe
foundin: 1.4.0
private_contact: 582b61b01c28772572a4036587ff671d73c1245e
resolution: Fixed
title: Repeated import of an XSD raises an error
comment:
  Attempt to parse a WSDL which imports an XSD several times raises an exception.

  Suggested patch:
  <pre>
  --- Utilities.tcl
  +++ Utilities.tcl
  @@ -2146,19 +2146,21 @@
       switch [dict get [::uri::split $url] scheme] {
           file {
               upvar #0 [::uri::geturl $url] token
               set xml $token(data)
               unset token
  +            ProcessImportXml $mode $baseUrl $xml $serviceName $serviceInfoVar $tnsCountVar
           }
           http {
               set ncode -1
               catch {
                   set token [::http::geturl $url]
                   ::http::wait $token
                   set ncode [::http::ncode $token]
                   set xml [::http::data $token]
                   ::http::cleanup $token
  +                ProcessImportXml $mode $baseUrl $xml $serviceName $serviceInfoVar $tnsCountVar
               }
               if {$ncode != 200} {
                   return \
                       -code error \
                       -errorcode [list WS CLIENT HTTPFAIL $url] \
  @@ -2170,11 +2172,10 @@
                   -code error \
                   -errorcode [list WS CLIENT UNKURLTYP $url] \
                   "Unknown URL type '$url'"
           }
       }
  -    ProcessImportXml $mode $baseUrl $xml $serviceName $serviceInfoVar $tnsCountVar
   }
   
   
   ###########################################################################
   #
  </pre>

  <hr /><i>gerald added on 2011-03-16 02:30:41 UTC:</i><br />
  Fixed by [2cdc1ceb29]


tkt_uuid: 668852fcac1281c8262e7e7b12406eef805f3a1c
type: Code_Defect
status: Closed
subsystem: Client_Side
priority: Immediate
severity: Important
foundin: 1.4
private_contact: 1ff9f9b292034d39307dd75aab1934e80eb6881d
resolution: Fixed
title: Incorrect action when no namespace present
comment:
  In proc ::WS::Client::buildRpcEncodedCallquery, if no namespace is present the code still uses the : character causing an invalid operation definition.

  Suggested change: 

  Present code
      set callXns [dict get $serviceInfo operation $operationName xns]
      $bod appendChild [$doc createElement $callXns:$operationNam

  Modified:

      set callXns [dict get $serviceInfo operation $operationName xns]
      if {![string is space $callXns]} {
          $bod appendChild [$doc createElement $callXns:$operationNam
      } else {
          $bod appendChild [$doc createElement $operationNam
      }


tkt_uuid: aa05504f1159280ba6d3934e1372312c9d53794d
type: Code_Defect
status: Closed
subsystem: Client_Side
priority: Immediate
severity: Important
foundin: 1.4
private_contact: 1ff9f9b292034d39307dd75aab1934e80eb6881d
resolution: Fixed
title: Multiple nodes in soap body causes issues
comment:
  In the proc ::WS::Client::parseResults, if there are multiple child nodes in the ENV:body element and the localName call returns blank, the code throws an error later in the proc as rootNode is a list and not a single item.

  Problem is in this bit of code:

  foreach tmp $rootNode {
      #puts "\t Got {[$tmp localName]} looking for {$expectedMsgType}"
      if {[string equal [$tmp localName] $expectedMsgType]} {
          set rootNode $tmp
          break
      }
  }

  If the check was to look for the localName and the nodeName this would increase the chance of it locating a value and prevent the code from failing later.


tkt_uuid: 7eb636dce189ec768cfd37398f8c892f609eeff7
type: Code_Defect
status: Closed
subsystem: Client_Side
priority: Immediate
severity: Important
foundin: 1.4
private_contact: 1ff9f9b292034d39307dd75aab1934e80eb6881d
resolution: Fixed
title: incorrect variables used in parseResults
comment:
  In the proc ::WS::Client::parseResults, for the headerRootNode the variable $rootNode is used when it should be $top so the ENV:Header can be located.

  In the same proc, last call to convertTypeToDict uses $rootNode for XML message and the node. The latter one should be $body so the complete XML is available.


tkt_uuid: 7c55121bcea3ab8333b0d7f7bc1455fed67a9cd3
type: Code_Defect
status: Accepted
subsystem: Server_Side
priority: Immediate
severity: Severe
foundin: trunk, Release_1.4.1
private_contact: b12f65986726fbc690bf4cc89542182df814ff94
resolution: Open
title: Server side handling for wibble not functional
comment:
  With wibble v. 24:
  - The wibble zone handler now needs leading "::"
  - var "xml" was not initialized within the wibble section
  - Typo fixed (inXml-> inXML)

  Patch attached:

  --- ServerSide.tcl
  +++ ServerSide.tcl
  @@ -233,11 +233,11 @@
           }
           wibble {
               ##
               ## Define zone handler - get code from andy
               ##
  -            proc wibble::webservice {state} {
  +            proc ::wibble::webservice {state} {
                   dict with state options {}
                   switch $suffix {
                       "" - \
                       / {
                           ::WS::Server::generateInfo $name 0 response
  @@ -738,10 +738,11 @@
           aolserver {
               set xml [GetWsdl $serviceName]
               ::WS::AOLserver::ReturnData $sock text/xml $xml 200
           }
           wibble  {
  +            set xml [GetWsdl $serviceName]
               upvar 1 [lindex $args 0] responseDict
               dict set responseDict header content-type text/xml
               dict set responseDict status 200
               dict set responseDict content $xml
           }
  @@ -1054,11 +1055,11 @@
   
       switch -exact $mode {
           wibble {
               set requestDict [lindex $args 0]
               upvar 1 [lindex $args 1] responseDict
  -            set inXml [dict get $requestDict post xml ""]
  +            set inXML [dict get $requestDict post xml ""]
           }
           default {
               upvar #0 Httpd$sock data
               set inXML $data(query)
           }


tkt_uuid: 9254392138ddd18436f21bc6ae2fa5bd955bd32d
type: Feature_Request
status: Accepted
subsystem: Server_Side
priority: Immediate
severity: Minor
foundin: trunk, Release_1.4.1
private_contact: b12f65986726fbc690bf4cc89542182df814ff94
resolution: Open
title: possibly add wibble examples
comment:
  I think it would be a good idea to add the following examples, so wibble can operate out of the box. This was tested with wibble.tcl v.24

  - Put tclws.tcl, wibble.tcl and the adjusted EchoWebService.tcl into the same directory
  - Check if all required libraries are present (adjust tclws.tcl)
  - launch tclws.tcl with tcl 8.6 (needed for wibble)


  ############# tclws.tcl, start script for wibble 24 (not included) ########
  # Adjust auto_path to your needs
  lappend auto_path [file dir [info script]] lib
  source wibble.tcl
  # Set the root directory.
  set root html
  set ::Config(host) 127.0.0.1
  set ::Config(port) 8015

  source EchoWebService.tcl

  # Define zone handlers.
  ::wibble::handle /vars vars
  ::wibble::handle / dirslash root $root
  ::wibble::handle / indexfile root $root indexfile index.html
  ::wibble::handle / static root $root
  ::wibble::handle / template root $root
  ::wibble::handle / script root $root
  ::wibble::handle / dirlist root $root
  ::wibble::handle / notfound


  # Start a server and enter the event loop.
  catch {
    ::wibble::listen 8015
    vwait forever
  }
  #########################################################################

  ################### Adjustment for EchoWebService.tcl (-mode wibble needed)
  *** Echo/EchoWebService.tcl	2011-03-18 19:19:15.071363422 +0100
  --- wibble/EchoWebService.tcl	2011-03-18 19:55:00.000000000 +0100
  *************** package require WS::Utils
  *** 42,47 ****
  --- 42,48 ----
    ::WS::Server::Service \
        -service wsEchoExample \
        -description  {Echo Example - Tcl Web Services} \
  +     -mode wibble \
        -host         $::Config(host):$::Config(port)
    
    ##


tkt_uuid: f1d8afed96c8b1ac9d8d830907cee24f93eedb3e
type: Feature_Request
status: Accepted
subsystem: Server_Side
priority: Immediate
severity: Important
foundin: 1.4.0
private_contact: 582b61b01c28772572a4036587ff671d73c1245e
resolution: Open
title: Add Client side routine(s) to introspect and override WSDL
comment:
  Add the ability to introspect and change features of a WSDL after it is parsed.  In particular the location URL of the server needs to be able to be queried and overridden.  Also the ability to see the namespace settings should prove useful.


tkt_uuid: 50af8795084a2da0a3c5cfbc47af0720b543908c
type: Code_Defect
status: Open
subsystem: Utilities
severity: Important
foundin: trunk, Release_1.4.1
private_contact: b12f65986726fbc690bf4cc89542182df814ff94
title: Example CallEcho client crashes during ComplexEcho
comment:
  The array handling in ::WS::Utils::convertTypeToDict misses items with name $serviceName:$partName. During SimpleEcho, only one element is returned during processing of the "Trying #4..." statement, but during ComplexEcho, multiple (two) elements are returned. Possible fix is attached, but in no way i can tell something about side effects regarding WSDL/SOAP standards.

  --- Utilities.tcl
  +++ Utilities.tcl
  @@ -1150,10 +1150,12 @@
           ##
           ## Try for fully qualified name
           ##
           ::log::log debug "Trying #1 [list $node selectNodes $partXns:$partName]"
           if {[catch {llength [set item [$node selectNodes $partXns:$partName]]} len] || ($len == 0)} {
  +          ::log::log debug "Trying #1.1 [list $node selectNodes $serviceName:$partName]"
  +          if {[catch {llength [set item [$node selectNodes $serviceName:$partName]]} len] || ($len == 0)} {
               ::log::log debug "Trying #2 [list $node selectNodes $xns:$partName]"
               if {[catch {llength [set item [$node selectNodes $xns:$partName]]} len] || ($len == 0)} {
                   ##
                   ## Try for unqualified name
                   ##
  @@ -1177,10 +1179,11 @@
                           ::log::log debug "\tSkipping"
                           continue
                       }
                   }
               }
  +          }
           }
           set origItemList $item
           set newItemList {}
           foreach item $origItemList {
               if {[$item hasAttribute href]} {


tkt_uuid: 359aeceb305a443765dad115103ff950880a4636
type: Feature_Request
status: Open
subsystem: Utilities
severity: Minor
foundin: trunk, Release_1.4.1
private_contact: b12f65986726fbc690bf4cc89542182df814ff94
title: wsMathExample client not functional
comment:
  Maybe it would be a good idea to provide a math client example that shows some results from the server. See attached patch for an implementation. 
  As well, all math server example seem to add instead of divide. Patch for Examples/Math/MathWebService.tcl also included.


  --- CallMathWebService.tcl
  +++ CallMathWebService.tcl
  @@ -41,6 +41,42 @@
   ::WS::Client::GetAndParseWsdl http://localhost:8015/service/wsMathExample/wsdl
   
   ##
   ## Add two numbers
   ##
  -::WS::Client::DoCall
  +puts stdout "Calling Add via DoCalls!"
  +set inputs [list N1 12 N2 34]
  +set results [::WS::Client::DoCall wsMathExample Add $inputs]
  +puts stdout "\t Received: {$results}"
  +
  +##
  +## Divide two numbers
  +##
  +puts stdout "Calling Divide via DoCalls!"
  +set inputs [list Dividend 34 Divisor 12]
  +set results [::WS::Client::DoCall wsMathExample Divide $inputs]
  +puts stdout "\t Received: {$results}"
  +
  +##
  +## Multiply two numbers
  +##
  +puts stdout "Calling Multiply via DoCalls!"
  +set inputs [list N1 12.0 N2 34]
  +set results [::WS::Client::DoCall wsMathExample Multiply $inputs]
  +puts stdout "\t Received: {$results}"
  +
  +##
  +## Subtract two numbers
  +##
  +puts stdout "Calling Subtract via DoCalls!"
  +set inputs [list Subtrahend 12 Minuend 34]
  +set results [::WS::Client::DoCall wsMathExample Subtract $inputs]
  +puts stdout "\t Received: {$results}"
  +
  +##
  +## Sqrt a number
  +##
  +puts stdout "Calling Sqrt via DoCalls!"
  +set inputs [list X 12]
  +set results [::WS::Client::DoCall wsMathExample Sqrt $inputs]
  +puts stdout "\t Received: {$results}"
  +



  --- MathWebService.tcl
  +++ MathWebService.tcl
  @@ -97,11 +97,11 @@
               -code error \
               -errorcode [list MATH DIVBYZERO] \
               "Can not divide by zero"
       }
   
  -    return [list DivideResult [expr {$Dividend + $Divisor}]]
  +    return [list DivideResult [expr {$Dividend / $Divisor}]]
   }
   
   ::WS::Server::ServiceProc \
       wsMathExample \
       {Sqrt {type string comment {Square root of a non-negative number}}} \


