lib/openwfe/participants/soapparticipants.rb in ruote-0.9.18 vs lib/openwfe/participants/soapparticipants.rb in ruote-0.9.19
- old
+ new
@@ -1,34 +1,34 @@
#
#--
# Copyright (c) 2007-2008, John Mettraux, OpenWFE.org
# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
+#
+# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
-#
+#
# . Redistributions of source code must retain the above copyright notice, this
-# list of conditions and the following disclaimer.
-#
-# . Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
+# list of conditions and the following disclaimer.
+#
+# . Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
-#
+#
# . Neither the name of the "OpenWFE" nor the names of its contributors may be
# used to endorse or promote products derived from this software without
# specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#++
#
#
@@ -42,94 +42,94 @@
require 'openwfe/participants/participant'
module OpenWFE
- #
- # Wrapping a simple web service call within an OpenWFEru participant.
- #
- # quote_service = OpenWFE::SoapParticipant.new(
- # "http://services.xmethods.net/soap", # service URI
- # "urn:xmethods-delayed-quotes", # namespace
- # "getQuote", # operation name
- # [ "symbol" ]) # param arrays (workitem fields)
- #
- # engine.register_participant("quote_service", quote_service)
- #
- # By default, call params for the SOAP operations are determined by
- # iterating the parameters and fetching the values under the
- # corresponding workitem fields.
- # This behaviour can be changed by overriding the prepare_call_params()
- # method.
- #
- # On the return side, you can override the method handle_call_result
- # for better mappings between web service calls and the workitems.
- #
- class SoapParticipant
- include LocalParticipant
+ #
+ # Wrapping a simple web service call within an OpenWFEru participant.
+ #
+ # quote_service = OpenWFE::SoapParticipant.new(
+ # "http://services.xmethods.net/soap", # service URI
+ # "urn:xmethods-delayed-quotes", # namespace
+ # "getQuote", # operation name
+ # [ "symbol" ]) # param arrays (workitem fields)
+ #
+ # engine.register_participant("quote_service", quote_service)
+ #
+ # By default, call params for the SOAP operations are determined by
+ # iterating the parameters and fetching the values under the
+ # corresponding workitem fields.
+ # This behaviour can be changed by overriding the prepare_call_params()
+ # method.
+ #
+ # On the return side, you can override the method handle_call_result
+ # for better mappings between web service calls and the workitems.
+ #
+ class SoapParticipant
+ include LocalParticipant
- def initialize \
- (endpoint_url, namespace, method_name, params, param_prefix="")
+ def initialize \
+ (endpoint_url, namespace, method_name, params, param_prefix="")
- super()
+ super()
- @driver = SOAP::RPC::Driver.new(endpoint_url, namespace)
+ @driver = SOAP::RPC::Driver.new(endpoint_url, namespace)
- @method_name = method_name
- @params = params
- @param_prefix = param_prefix
+ @method_name = method_name
+ @params = params
+ @param_prefix = param_prefix
- @driver.add_method(method_name, *params)
- end
+ @driver.add_method(method_name, *params)
+ end
- #
- # The method called by the engine when the flow reaches an instance
- # of this Participant class.
- #
- def consume (workitem)
+ #
+ # The method called by the engine when the flow reaches an instance
+ # of this Participant class.
+ #
+ def consume (workitem)
- call_params = prepare_call_params(workitem)
+ call_params = prepare_call_params(workitem)
- call_result = @driver.send(@method_name, *call_params)
+ call_result = @driver.send(@method_name, *call_params)
- handle_call_result(call_result, workitem)
+ handle_call_result(call_result, workitem)
- reply_to_engine(workitem)
- end
+ reply_to_engine(workitem)
+ end
- #
- # The base implementation : assumes that for each webservice operation
- # param there is a workitem field with the same name.
- #
- # Feel free to override this method.
- #
- def prepare_call_params (workitem)
+ #
+ # The base implementation : assumes that for each webservice operation
+ # param there is a workitem field with the same name.
+ #
+ # Feel free to override this method.
+ #
+ def prepare_call_params (workitem)
- @params.collect do |param|
- get_param workitem, param
- end
- end
+ @params.collect do |param|
+ get_param workitem, param
+ end
+ end
- #
- # This implementation simply stuffs the result into the workitem
- # as an attribute named "__result__".
- #
- # Feel free to override this method.
- #
- def handle_call_result (result, workitem)
+ #
+ # This implementation simply stuffs the result into the workitem
+ # as an attribute named "__result__".
+ #
+ # Feel free to override this method.
+ #
+ def handle_call_result (result, workitem)
- workitem.attributes["__result__"] = result
- end
+ workitem.attributes["__result__"] = result
+ end
- protected
+ protected
- def get_param (workitem, param_name)
+ def get_param (workitem, param_name)
- param_name = @param_prefix + param_name if @param_prefix
+ param_name = @param_prefix + param_name if @param_prefix
- workitem.attributes[param_name] || ""
- end
+ workitem.attributes[param_name] || ""
+ end
- end
+ end
end