Sahan Gamage wrote:

Samisa Abeysinghe wrote:

Hi All,
  Currently we have the following 2 APIs in the client stub for
creating a stub:
1.
AXIS2_DECLARE(axis2_stub_t *)
axis2_echo_stub_create_with_endpoint_ref_and_client_home(axis2_env_t
**env,
                                          axis2_endpoint_ref_t
*endpoint_ref,
                                          axis2_char_t *client_home);
2.
AXIS2_DECLARE(axis2_stub_t *)
axis2_echo_stub_create_with_endpoint_uri_and_client_home(axis2_env_t
**env,
                                          axis2_char_t *endpoint_uri,
                                          axis2_char_t *client_home);

In userability perspective, given that we expose the above two to the
user, I think it is too long and a bit confusing.
I propose that we drop signature 1 altogether and rename 2 to
'axis2_echo_stub_create'.
To cover up for 1, we have AXIS2_STUB_SET_ENDPOINT_REF in stub.h.

Thoughts please...
Samisa...


+1;
I don't see a common use case where user creates an epr and then creates
a stub. A uri in the string format is the most logical. For the uncommon
"user epr create" scenario can be still catered by
AXIS2_STUB_SET_ENDPOINT_REF. In this case shouldn't we  allow the
'axis2_echo_stub_create' to accept NULL uri ?
I think it is OK to allow NULL for URI. We can check if URI is NULL b4 making the connection.
If user tries to invoke, keeping the URI NULL, then it is a user error.

Samisa...

- Sahan


Reply via email to