It would be good to have a map, but we have no such construct in calling a stored
procedure. The best you can do is have default values for parameters and used the named
parameter calling syntax. In a system function we could have whatever syntax we want, but
then we have the problem of how to encapsulate the connection information (base url,
username/password, ws-security, etc.).
The request document is always put together by the user (which may be assisted by
tooling). Only in the case of http are we trying to force fit the query string to be a
document. For SOAP you would just provide the message body. The proposed document for
http is probably too restrictive since the parameters names would need to be valid element
names.
The other considerations are really along the lines of offering better/explicit syntax
that would be especially suited for rest -
clob http('url', 'path' [, querystring(expr [as name], ...)] [header(expr
[as name], ...)] [GET|(POST [expr])|...])
but you still like to have username/password, url, and even details of https handling
(which is not even currently handled in the ws resource adapter) encapsulated outside of
the vdb so that it could change per environment.
As a side note, I'm not sure what the previous use-case was, but allowing the user to
pass in the endpoint address seems like a leaky abstraction.
----- Original Message -----
From: "Ramesh Reddy" <rareddy(a)redhat.com>
To: "Steven Hawkins" <shawkins(a)redhat.com>
Cc: "teiid-dev" <teiid-dev(a)lists.jboss.org>
Sent: Tuesday, June 8, 2010 7:57:57 AM GMT -06:00 US/Canada Central
Subject: Re: [teiid-dev] what should a translator-ws look like?
This is similar approach you have taken with the File translator, so
looks good.
I would rather like to see generic map kind of parameter with known keys
for the "endpoint" and "soapaction", that we way if there are any
other
headers we need to add then it will stay the same.
In this new calling semantics, who is putting together the request (for
soap) document? The engine? or the user's transformation? I am little
confused about flow of things from before. If requests always came in
the form <params><param_name>.. and translator converted them to soap or
http requests, then it makes sense to me.
I do not think I follow your comments in other considerations. Can you
give some examples.
Thanks
Ramesh..
On Mon, 2010-06-07 at 16:15 -0400, Steven Hawkins wrote:
Hello all,
Based upon the features of the translator-xml, we need a comparable translator-ws that
has a job of simply invoking a service and returning a document (which can then be
processed with xmltable or any other mechanism). I was thinking of exposing the
procedure:
XML invoke(XML request, String endpoint, String soapaction) - both endpoint and
soapaction default to null and the result is available as the return parameter.
With the HTTP mode:
-with parameter invocation the request document is expected to be in the format
<params><para_name>value</para_name><param_name1>...</params>.
The simplest way to form such a doc is with xmlforest - xmlelement(params,
xmlforest(value as param_name, value1 as param_name1 ...))
-Path info will be taken from endpoint if it's specified and will be expected to be a
relative path.
-soapaction would not be used.
Basic usage would then be:
call ws-model.invoke(request = value)
Other considerations:
We may also want to add system function(s) with nearly the same approach to allow for ad
hoc, non-JCA based service calls.
We may want to add more explicit calling functionality for http to support rest.
Steve
_______________________________________________
teiid-dev mailing list
teiid-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/teiid-dev