File: simonReg.rb

package info (click to toggle)
ruby-soap4r 2.0.5-9
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,032 kB
  • sloc: ruby: 52,729; xml: 266; sh: 42; javascript: 20; makefile: 13; perl: 10
file content (123 lines) | stat: -rw-r--r-- 3,960 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/usr/bin/env ruby

proxy = ARGV.shift || nil

require 'soap/driver'
require 'logger'

require 'iSimonReg'

server = 'http://www.4s4c.com/services/4s4c.ashx'

class SimonRegApp < Logger::Application
  include SimonReg

private

  AppName = 'SimonRegApp'

  def initialize( server, proxy )
    super( AppName )
    @server = server
    @proxy = proxy
    @logId = Time.now.gmtime.strftime( "%Y-%m-%dT%X+0000" )
    @drvServices = nil
    @drvClients = nil
    @drvServers = nil
    @drvSubscriber = nil
  end

  def run()
    @log.level = WARN
    wireDump = getWireDumpLogFile

    # Services portType
    @drvServices = SOAP::Driver.new( @log, @logId, Services::InterfaceNS, @server, @proxy )
    @drvServices.setWireDumpDev( wireDump )

    Services::Methods.each do | method, params |
      @drvServices.addMethod( method, *( params[1..-1] ))
    end
    @drvServices.extend( Services )

    # Clients portType
    @drvClients = SOAP::Driver.new( @log, @logId, Clients::InterfaceNS, @server, @proxy )
    @drvClients.setWireDumpDev( wireDump )

    Clients::Methods.each do | method, params |
      @drvClients.addMethod( method, *( params[1..-1] ))
    end
    @drvClients.extend( Clients )

    # Servers portType
    @drvServers = SOAP::Driver.new( @log, @logId, Servers::InterfaceNS, @server, @proxy )
    @drvServers.setWireDumpDev( wireDump )

    Servers::Methods.each do | method, params |
      @drvServers.addMethod( method, *( params[1..-1] ))
    end
    @drvServers.extend( Services )

    # Services portType
    @drvSubscriber = SOAP::Driver.new( @log, @logId, Subscriber::InterfaceNS, @server, @proxy )
    @drvSubscriber.setWireDumpDev( wireDump )

    Subscriber::Methods.each do | method, params |
      @drvSubscriber.addMethod( method, *( params[1..-1] ))
    end
    @drvSubscriber.extend( Subscriber )

    # Service information
    #services = @drvServices.ServiceList
    #groupA = services.find { | service | service.name == 'SoapBuilders Interop Group A' }
    #groupB = services.find { | service | service.name == 'SoapBuilders Interop Group B' }

    # SOAP4R information
    version = '1.4.1'
    soap4rClientInfo = Clients::ClientInfo.new( 'SOAP4R', version,
      'http://www.jin.gr.jp/~nahi/Ruby/SOAP4R/wiki.cgi?cmd=view;name=InteropResults'
    )
    soap4rServerInfo = Servers::ServerInfo.new( 'SOAP4R', version,
      'http://www.jin.gr.jp/~nahi/Ruby/SOAP4R/SOAPBuildersInterop/',
      'http://www.jin.gr.jp/~nahi/Ruby/SOAP4R/SOAPBuildersInterop/SOAP4R_SOAPBuildersInteropTest_R2base.wsdl' )
    soap4rGroupAClientID = '{7B1DF876-055E-4259-ACAE-55E13E399264}'
    soap4rGroupBClientID = '{62723003-BC86-4BC0-AABC-C6A3FDE11655}'
    soap4rGroupAServerID = '{3094F6C7-F6AA-4BE5-A4EB-194C82103728}'
    soap4rGroupBServerID = '{A16357C9-6C7F-45CD-AC3D-72F0FC5F4F99}'

    # Client registration
    # clientID = @drvClients.RegisterClient( groupA.id, soap4rClientInfo )
    # clientID = @drvClients.RegisterClient( groupB.id, soap4rClientInfo )

    # Client remove
    # @drvClients.RemoveClient( soap4rClientID )

    # Server registration
    # serverID = @drvServers.RegisterServer( groupA.id, soap4rServerInfo )
    # serverID = @drvServers.RegisterServer( groupB.id, soap4rServerInfo )
    # p serverID

    # Update
    @drvClients.UpdateClient( soap4rGroupAClientID, soap4rClientInfo )
    @drvClients.UpdateClient( soap4rGroupBClientID, soap4rClientInfo )
    @drvServers.UpdateServer( soap4rGroupAServerID, soap4rServerInfo )
    @drvServers.UpdateServer( soap4rGroupBServerID, soap4rServerInfo )
  end


  ###
  ## Other utility methods
  #
  def log( sev, message )
    @log.add( sev, "<#{ @logId }> #{ message }", @appName ) if @log
  end

  def getWireDumpLogFile
    logFilename = File.basename( $0 ) + '.log'
    f = File.open( logFilename, 'w' )
    f << "File: #{ logFilename } - Wiredumps for SOAP4R client.\n"
    f << "Date: #{ Time.now }\n\n"
  end
end

app = SimonRegApp.new( server, proxy ).start()