[ANN] SOAP4R/1.4.7 with WSDL4R/0.0.1

Hi, all,

SOAP4R/1.4.7 with WSDL4R/0.0.1 is out.
http://www.ruby-lang.org/en/raa-list.rhtml?name=SOAP4R

From Release note.

This version has these enhancements and bug fixes;

  • Includes WSDL4R initial release.
    • Bare in mind this is an alpha level code. I wrote it
      halfway at half and a year ago, and wrote the rest part
      in half and a day. No comprehensive test, no strict
      syntax check, unfriendly error message, etc. Try it if
      you want, and find bugs in it.
    • WSDL4R can run under XMLParser for now. You might be
      able to let it run under NQXML/REXML if you know SAX
      programming well. How XML processor is used under WSDL4R
      is as same as under SOAP4R.
  • Added xsd:short support.
  • ::Float(double precision float in Ruby) is mapped to
    xsd:double now. It was mapped to xsd:float.
  • Fixed a bug of year < 0 handling. B.C. 1 => -0001 in
    XMLSchema.
  • Fixed a bug of exception serialization. Custam
    mappingRegistry was not used.
  • Fixed a bug of regex for MediaType parsing.

CAUTION: This version requires [RAA:date2] version 3.2 or
later and [RAA:http-access2] version G. http-access2/G is
released in this week. Please make sure the versions you use.

I wrote a little “how to” thing for WSDL4R at
http://www.jin.gr.jp/~nahi/Ruby/SOAP4R/wiki.cgi?cmd=view;name=How+to+use
+WSDL4R

Regards,
// NaHi

Hi all,

SOAP4R/1.4.8 with WSDL4R/0.0.2 is out.
http://www.ruby-lang.org/en/raa-list.rhtml?name=soap4r

From Release note.

This version has these enhancements and bug fixes;

  • Avoid warnings;

    • Use Object#class instead of Object#type.
    • Avoid implicit use a String as a regexp source.
  • Add wsdlDriver which reads WSDL file and allow client to
    call procedures. Here is an example to search Google.

    require 'soap/wsdlDriver’
    searchWord = ARGV.shift

    You must get key from http://www.google.com/apis/ to use Google Web APIs.

    key = File.open(File.expand_path("~/.google_key")).read.chomp
    GOOGLE_WSDL = ‘http://api.google.com/GoogleSearch.wsdl

    Load WSDL and create driver.

    google = SOAP::WSDLDriverFactory.new(GOOGLE_WSDL).createDriver

    Just invoke!

    result = google.doGoogleSearch(key, searchWord, 0, 10, false, “”, false, “”, ‘utf-8’, ‘utf-8’)
    result.resultElements.each do |ele|
    puts "== #{ele.title}: #{ele.URL}"
    puts ele.snippet
    puts
    end

  • WSDLDriver client examples of AmazonWebServices, RAA and
    RNN (Japanese Ruby blog site) are also included in sample/ dir.

  • Support xmlscan XML processor.

  • Changed XML processor detection scheme. Search xmlscan, REXML,
    XMLParser and NQXML in this order.

  • Rewrite charset handling of XML processor.

    • If you only use us-ascii and utf-8, all XML processors should
      work without uconv module.
    • With xmlscan/0.2 or later, you can handle euc-jp or shift_jis
      encoded XML instance WITHOUT uconv module.
    • With other XML processors includes xmlscan/0.1, you need to
      install uconv module to handle euc-jp or shift_jis encoded
      XML instance.
  • cgistub.rb: Overridable response mediatype. There exists a
    http client which does not accept the mediatype text/xml which
    is specified in SOAP spec. For example, an i-Mode (smart phone)
    client does not accept it… You can set response mediatype to
    ’text/plain’ for such client though it violates SOAP spec…

  • wsdl2ruby: Add --force option to override existing file.

  • Fixed many bugs.

Enjoy. :smiley:

Regards,
// NaHi

Hi all,

Sorry for bothering you again.

I’ve just posted SOAP4R/1.4.8.1 on RAA. It’s a small bug
fix version about WSDL.

There is wrong operation name handling of some type of WSDL.
This fix does not affects GoogleAPI’s WSDL, and
Ruby/Google 0.5.0 as well.

http://www.ruby-lang.org/en/raa-list.rhtml?name=soap4r

Regards,
// NaHi

Hi, all,

soap4r/1.5.0 is out.
RAA: http://www.ruby-lang.org/en/raa-list.rhtml?name=soap4r
Release Note: http://rrr.jin.gr.jp/doc/soap4r/RELEASE_en.html

What is SOAP4R?
http://rrr.jin.gr.jp/doc/soap4r/RELEASE_en.html#whats

Changes

Thousands of lines are changed in this release (*.rb in current
SOAP4R distribution has 30kloc or over). But the biggest change
is coding convention, camelCase to non_camel_case. Though I tried
to keep compatibility between 1.5.0 and 1.4.8, but there’s no way
to keep it at a few point. If you’ll find your code which was
developed for 1.4.8 does not run under 1.5.0, feel free to ask me
to solve the problem.

  • Dependency libraries;

    • Add net/http support. Users can try sample SOAP clients without
      installing http-access2. For actual usage, consider installing
      http-access2 for speed and thread-safe SOAP client.
      CAUTION: Building SOAP CGI server needs http-access2 to be installed.
    • Soap4r standalone server requires webrick module to be installed
      instead of GServer.rb and httpserver.rb.
    • Supports iconv. To use utf-8, you need to install iconv(included
      in ruby/1.8) or uconv.
    • Suspend NQXML XML parser support.
    • Remove REXML processor version check. No longer needed.
    • Rewrite tests with test/unit.
  • Features;

    • Efforts to support messaging with document/literal and ASP.NET
      interoperability.
    • Add document/literal messaging interface to wsdlDriver.rb. See a
      very brief example in sample/soapbox/wsdlDriver.rb though I still
      didn’t try to login to Jabber server… Jabber folks?
    • XML pretty printing.
    • Better Ruby object mapping. Rewrote RubytypeFactory to support
      more Ruby objects. Tests in
      AMarshal(http://cvs.m17n.org/~akr/amarshal/) much helped it.
      Thanks very much to Tanaka Akira-san.
    • SOAPMarshal accepts IO as an output device like Marshal#dump.
    • SOAPElement: constructor signature change. Added extraattrs
      attribute.
    • XSDDateTimeImpl: to_time did not set usec.
    • StreamHandler: add reset method to shutdown a connection to a site.
  • Others;

    • Simplify installer and remove uninstaller. Saving inventory file
      in src dir could be the problem.
    • Class/Module architecture relocation.
    • Changing coding convention to fit with Ruby’s. Added
      lib/soap/compat.rb which defines compatibility definitions for
      1.4.8. lib/soap/compat.rb warns when the library is loaded.
    • Many warnings raised under 1.8, caused by illegal references like
      XSD::XSDInt in typeMap.rb. Soap4r defined toplevel::XSDInt.
      Define XSD* classes in XSD module and introduce it to toplevel.

Thanks to all of soap4r users for their support.

Regards,
// NaHi

Hi, all,

Soap4r/1.5.1 is out.
RAA: http://www.ruby-lang.org/en/raa-list.rhtml?name=soap4r
Release Note: http://rrr.jin.gr.jp/doc/soap4r/RELEASE_en.html

What is SOAP4R?
http://rrr.jin.gr.jp/doc/soap4r/RELEASE_en.html#whats

I read ruby-talk ML so I might missed some articles posted to

comp.lang.ruby… Send me directly if you have some trouble

with soap4r.

Changes

Important news: Soap4r library is included in ruby distribution after
ruby/1.8.1. You might not be need to install this package under
ruby/1.8. The files this package includes and are not included in
ruby/1.8 distribution are an application program (bin/wsdl2ruby) and
some test codes. Consider to get this package if,

  • You need the WSDL to ruby (reads a WSDL file and generates stubs
    and Ruby class definitions) application, or
  • You want to use soap4r under ruby/1.6.

Features;

  • Sample updates; Update Amazon Web Service WSDL (v2 -> v3), and update
    RAA WSDL(0.0.1 -> 0.0.2).

  • Supports ivars of basetype and extending modules marshalling with XML
    attribute. Using XML attribute to support ruby object dependent
    information, marshalled object keeps compatibility with SOAP spec.
    It shows the power of XML, extensibility.
    Now I think SOAP marshaller supports all kind of object graph which
    is supported by Ruby’s original marshaller.

  • Better XML pretty printing.

    puts SOAPMarshal.dump(Person.new(“NaHi”, 33))
    =>

    <?xml version="1.0" encoding="utf-8" ?>

    <env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>
    env:Body

    33
    NaHi

    </env:Body>
    </env:Envelope>

Installation;

  • The previous version soap4r/1.5.0 required http-access2 to be
    installed to build CGI server, but no longer needed fot this
    purpose now. You can use almost all features of soap4r without
    http-access2, but for actual usage, consider installing
    http-access2 for speed and thread-safe SOAP client.
  • Under ruby/1.8, installer installs lib files to rubylibdir
    (e.g. /usr/local/lib/ruby/1.8) instead of sitelibdir
    (e.g. /usr/local/lib/ruby/site_ruby/1.8)

Bug fixes;

  • Do not introduce XSD constants to toplevel.
  • ‘NO_PROXY’/‘no_proxy’ env var was not supported under net/http. Fixed.
  • Remove some ruby/1.8 dependent codes. Should work fine under 1.6, too.
  • XSD::XSDString did not check its value space under $KCODE = 'NONE’
    env for example where iconv module is not installed.
  • XSD::XSDFloat, XSD::XSDDouble: add +/- sign explicitly when
    stringified and embedded into XML instance. Ruby’s sprintf may
    format -0.0 as “0.0” (no minus sign) depending on underlying C
    sprintf implementation.

Thanks to all of soap4r users for their support.

Regards,
// NaHi

Hi, all,

RAA: http://raa.ruby-lang.org/list.rhtml?name=soap4r
Release Note: http://rrr.jin.gr.jp/doc/soap4r/RELEASE_en.html

‘SOAP4R’ is an implementation of
Simple Object Access Protocol (SOAP) 1.1 (W3C Note).
http://www.w3.org/TR/SOAP/

Important news: Soap4r library is included in ruby distribution
after ruby/1.8.1. You might not be need to install this package
under ruby/1.8. The files this package includes and are not included
in ruby/1.8 distribution are; some experimental code, application
program (bin/wsdl2ruby) and some test codes. Consider to get this
package if,

  • You want to use soap4r under ruby/1.6
  • You need to do SOAP Messages with Attachments (SwA)
  • You need the WSDL to ruby (reads a WSDL file and generates stubs
    and Ruby class definitions) application

Changes from 1.5.1.

  • License

    • Changed license from GPL2 to Ruby’s.
  • Features

    • Add SOAP Messages with Attachments (SwA) support.
      Patched by Jamie Herre.
      “SOAP Messages with Attachments” is the W3C Note which defines a
      binding for a SOAP 1.1 message to be carried within a MIME
      multipart/related message. http://www.w3.org/TR/SOAP-attachments
      This feature is still experimental. Interop testing is going on.

    • HTTPS support even when you use net/http (not http-access2).
      Patched by Oliver M. Bolzer.

    • Property file support. SOAP and WSDL client reads “soap/property"
      file located at somewhere in $: (ruby libray locations). For
      example, save these lines to
      ”$rubylibdir/site_ruby/1.8/soap/property".

      client.protocol.http.proxy = http://myproxy:8080
      client.protocol.http.no_proxy = 192.168.71.71,192.168.71.72

      Then all HTTP connections should use these proxy and no_proxy
      definition.

    • Do not trust “HTTP_PROXY” environment variable by default to
      avoid security problem. cf.

      http://ftp.ics.uci.edu/pub/websoft/libwww-perl/archive/2001h1/0072.html
      http://ftp.ics.uci.edu/pub/websoft/libwww-perl/archive/2001h1/0241.html
      http://curl.haxx.se/mail/archive-2001-12/0034.html

      To use HTTP_PROXY and NO_PROXY environment variable, you must set
      SOAP_USE_PROXY environment variable ‘on’, too.

      bash$ soap_use_proxy=on http_proxy=http://myproxy:8080 ruby …
      csh$ env soap_use_proxy=on http_proxy=http://myproxy:8080 ruby …

    • Add SOAP::RPC::Driver#mandatorycharset= and
      SOAP::WSDLDriver#mandatorycharset= interface to force using
      charset when parsing response from buggy server such as AWS.

    • Support a halfway-typed multi-ref array that Axis dumps.

    • Added a interface XSD::Charset.encoding= to control internal
      encoding scheme. Internal encoding scheme was fixed to 'utf-8’
      when iconv or uconv was installed. You can set ‘euc-jp’, etc.
      to avoid encoding scheme conversion if you know what encoding
      scheme the server uses.

  • Bug fixes

    • SOAP::Marshal.unmarshal: raise an exception if parse fails.
      (returned nil)

    • SOAP::WSDLDriver: decode unknown element according to self-defined
      type even if WSDL was given.

    • SOAP::Mapping::Factory#create_empty_object: fix Class#allocate
      emulation code for ruby/1.6. no effective change under ruby/1.8.

    • SOAP::RPC::SOAPMethodResponse: element name of response message
      could have the name other than ‘return’.

    • SOAP::RPC::StandaloneServer: add methods ‘shutdown’ and 'status’
      as delegates to WEBrick.

    • WSDL::SOAP::ClassDefCreator: WSDL/1.1 allows plural fault
      definition in a operation.

    • XSD::Charset.init: use cp932 under emx.
      Patched by Siena. / SHINAGAWA, Norihide.

Thanks to all of soap4r users for their support.

Regards,
// NaHi

Hi, all,

'SOAP4R' is an implementation of
Simple Object Access Protocol (SOAP) 1.1 (W3C Note).
http://www.w3.org/TR/SOAP/

RAA: http://raa.ruby-lang.org/list.rhtml?name=soap4r
Release Note: http://dev.ctor.org/doc/soap4r/RELEASE_en.html

After 1 and a half year developing from soap4r/1.5.2, soap4r/1.5.4 is
out. Version 1.5.3 is the module which is included in ruby-1.8.2, and
not released independently.

Most significant feature of 1.5.4 is WSDL support. Document/literal
service support for .NET interoperability. Improved XML Schema support
such as extension, restriction, simpleType, complexType + simpleContent,
ref, length, import, include. And many bugs were fixed.

* Changes in 1.5.4 from 1.5.3:
    http://dev.ctor.org/soap4r/wiki/Changes-154

* Changes in 1.5.3 from 1.5.2:
    http://dev.ctor.org/soap4r/wiki/Changes-ruby181_ruby182

Regards,
// NaHi