Hi Saminda,

Please find my comments inlined.



Saminda Abeyruwan wrote:
Hi Devs,

During the Axis2 1.4 evaluating time, I have explicitly asked why this behaviour was introduced. Reason was to get extra information without breaking backward compatibility.

The prior semantic has introduce a hidden information in WSDL. WSDL shows [service].[port] and it does work for [service] too. I am not an expert in WSDL, as per my understanding [service.port] and [service] would be two different endpoint and it should be shown in the WSDL.

No

We should not show two different endpoints in WSDL for the following reasons.

-- One reason is that both endpoint addresses refers to the same binding. Therefore it would be redundant information if both endpoint address is shown. -- Another reason is that the newer format of endpoint addresses allows prior request evaluation hence more accurate. -- The the reason why we allow the order format is just to preserve backward compatibility.



Introducing a parameter would solve the problem to some extent. IMHO the default behaviour should be showing [service].[port] and [service].

I can't understand which one you are suggesting :-P . And I think you are also a referring to an alternative solution similar to which Keith suggested.

Thanks & Regards,
Sanka


Thank you!

Saminda

On Mon, May 12, 2008 at 9:20 PM, Davanum Srinivas <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Keith,

    That would be good, but remember the JAXWS services don't have
    service.xml's :) they specify the expected service name in the
    annotation.

    -- dims

    On Mon, May 12, 2008 at 10:53 AM, keith chapman
    <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:
    > Dims,
    >
    > How about making it flexible. Introduce a service.xml property
    where you can
    > set a aliases for the endpoint urls? We may need three
    properties for the
    > tree default bindings. That way the user can have very nice URLs...
    >
    > Thanks,
    > Keith.
    >
    >
    >
    > On Mon, May 12, 2008 at 5:48 PM, Davanum Srinivas
    <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:
    > > Sanka,
    > >
    > > for one thing, i haven't seen anyone else use it. another
    thing, makes
    > > it *slightly* more difficult for interop work and for tck work. It
    > > also makes it more difficult for people who want to design
    their own
    > > URI's for their web services and need complete control (yes,
    there are
    > > a few of those!). Yes, we can shove it down their throats, but
    that
    > > does not mean we should...
    > >
    > > thanks,
    > > dims
    > >
    > >
    > >
    > >
    > > On Mon, May 12, 2008 at 7:05 AM, Sanka Samaranayake
    <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
    > wrote:
    > > > Deepal jayasinghe wrote:
    > > >
    > > > >
    > > > >
    > > > > >
    > > > > > >
    > > > > > > >
    > > > > > > >
    > > > > > > >    When I deploy a very simple POJO service it generates
    > following
    > > > as
    > > > > > > >    the service section in WSDL. As I know this is
    not nice and
    > we
    > > > > > > >    need to fix this as soon as possible.
    > > > > > > >  Why is it not nice? This gives us the ability to
    apply binding
    > > > level security correctly which is not possible with the endpoint
    > addresses
    > > > we used to have.
    > > > > > > >
    > > > > > > As I replied earlier , you can figure out the SOAP
    version from
    > the
    > > > SOAP message , so you do not need to send the SOAP version
    in the end
    > point
    > > > address.
    > > > > > >
    > > > > >
    > > > > > Why do you say it is redundant  code?  Previously we had
    > > > http://localhost:8080/axis2/services/foo as the SOAP 1.1 and
    SOAP 1.2
    > > > binding endpoints. Now say that client picks the SOAP 1.1
    binding
    > endpoint
    > > > and accidentally sends SOAP 1.2 request.
    > > > > >
    > > > > IMO which is wrong. If he picks 1.1 then should send a 1.1
    request.
    > > > >
    > > >
    > > >  That is exactly my point. If he picks SOAP 1.1 then you
    *should* send a
    > > > SOAP 1.1 request. If he sends a SOAP 1.2 request we *should*
    throw an
    > > > exception saying incorrect SOAP version. Earlier we were
    *not* doing
    > that
    > > > because we had the *same* endpoint address for both
    bindings. However
    > now we
    > > > can do that because by looking at the endpoint we can decide
    the exact
    > > > binding which the client has picked.
    > > >
    > > >
    > > >
    > > >
    > > > >
    > > > > > Here the right thing would be to throw an exception
    saying incorrect
    > > > SOAP version where as Axis2 server won't complain which IMO
    is a bug.
    > Now if
    > > > you use
    http://localhost:8080/axis2/services/foo.SOAP11Endpoint as the
    > SOAP
    > > > 1.1. binding endpoint we can do a prior evaluation of the
    request and
    > throw
    > > > an exception if we receive a SOAP 1.2 request which IMO is
    the correct
    > > > behavior.
    > > > > >
    > > > > Only problem I have is having the SOAP11Endpoint name in
    the address ,
    > > > >
    > > >
    > > >  Please explain why do you have a problem with
    [service].[port] format ?
    > > >
    > > >
    > > >
    > > > > I do not mind sending that as some where else.
    > > > >
    > > >
    > > >
    > > >  Where would you suggest that we should have the port name
    s.t. we can
    > > > decide the intended port (or the binding) of the request and
    do throw an
    > > > exception if the client has sent a SOAP 1.2 request by error
    where he
    > would
    > > > have actually intended the SOAP 1.1 endpoint ?
    > > >
    > > >
    > > >
    > > >
    > > >
    > > >
    > > > >
    > > > > >
    > > > > > I know that the structure of endpoint address is
    important that it
    > is
    > > > something that we should not be mess around. That is the
    exact reason
    > why I
    > > > posted[1]  it to developer mailing list. However I think we
    should be
    > > > flexible enough to change what we agreed on if there are
    valid reasons
    > to do
    > > > so and if we don't lose anything by doing it.
    > > > > >
    > > > > > One reason for using [service].[port] would be that it
    allows the
    > server
    > > > to do prior evaluations of SOAP requests hence make it less
    error-prone
    > (As
    > > > I mention in my earlier)
    > > > > >
    > > > > > Another reason would be that [service].[port] format
    makes lot of
    > sense
    > > > if we want to support multiple policy alternatives scenario
    at the Axis2
    > > > server-side. Lets say a service requires strong
    authentication, but
    > gives
    > > > the client multiple options of  SSL mutual authentication,
    username with
    > a
    > > > signature, SAML with a signature or Kerberos. It does it via
    a policy in
    > the
    > > > services.xml which contains an alternative for each scenario.
    > > > > >
    > > > > > Now one option would be to do some processing of the
    request to
    > figure
    > > > out the option the client has chosen and then do a complete
    evaluation
    > > > against that policy alternative. But it can be very
    expensive depending
    > of
    > > > the complexity of each policy alternative and of cause the
    number of
    > policy
    > > > alternatives which service exposes. Further there is a
    possibility that
    > some
    > > > policy alternatives are indeterminate by only looking at the
    request.
    > > > > >
    > > > > > The other option would be to generate multiple endpoints
    s.t. each
    > > > endpoint would correspond to exactly one policy alternative
    during the
    > > > deployment time.
    > > > > >
    > > > > > e.g.
    > > > > >
    > > > > > <wsdl:service name="Version">
    > > > > > ....
    > > > > >   <wsdl:port name="VersionHttpSoap11EndpointWithSSL"
    > > > binding="ns:VersionSoap11Binding">
    > > > > >       <soap:address
    > > >
    >
    
location="http://localhost:8080/axis2/services/Version.VersionHttpSoap11EndpointWithSSL"/>
    > > > > >    </wsdl:port>
    > > > > >    <wsdl:port
    > name="VersionHttpSoap11EndpointWithUsernameAndSignature"
    > > > binding="ns:VersionSoap11Binding">
    > > > > >       <soap:address
    > > >
    >
    
location="http://localhost:8080/axis2/services/Version.VersionHttpSoap11EndpointWithUsernameAndSignature"/>
    > > > > >    </wsdl:port>
    > > > > >   <wsdl:port
    name="VersionHttpSoap11EndpointWithSAMLAndSignature"
    > > > binding="ns:VersionSoap11Binding">
    > > > > >       <soap:address
    > > >
    >
    
location="http://localhost:8080/axis2/services/Version.VersionHttpSoap11EndpointSAMLAndSignature"/>
    > > > > >    </wsdl:port>
    > > > > >   <wsdl:port name="VersionHttpSoap11EndpointWithKerberos"
    > > > binding="ns:VersionSoap11Binding">
    > > > > >       <soap:address
    > > >
    >
    
location="http://localhost:8080/axis2/services/Version.VersionHttpSoap11EndpointWithSSLWithKerberos"/>
    > > > > >    </wsdl:port>
    > > > > > .....
    > > > > >
    > > > > > </wsdl:service>
    > > > > >
    > > > > > That way we can straight way say the option client as
    picked and
    > > > evaluate the quest based on the target policy alternative
    with IMO is a
    > > > better way of supporting multiple policy alternatives at the
    > server-side. We
    > > > need to use [service].[port] format if we are to implement
    the support
    > for
    > > > multiple policy alternatives feature.
    > > > > >
    > > > > Thank you so much for such a descriptive mail. I will
    think though and
    > > > send a reply soon..
    > > > >
    > > > > -Deepal
    > > > >
    > > > >
    > > > >
    ---------------------------------------------------------------------
    > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    > > > > For additional commands, e-mail:
    [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
    > > > >
    > > > >
    > > > >
    > > > >
    > > >
    > > >
    > > >  --
    > > >  Sanka Samaranayake
    > > >  WSO2 Inc.
    > > >
    > > >  http://sankas.blogspot.com/
    > > >  http://www.wso2.org/
    > > >
    > > >
     ---------------------------------------------------------------------
    > > >
    > > >  To unsubscribe, e-mail: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    > > >  For additional commands, e-mail:
    [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
    > > >
    > > >
    > >
    > >
    > >
    > > --
    > > Davanum Srinivas :: http://davanum.wordpress.com
    > >
    > >
    > >
    > >
    > >
    ---------------------------------------------------------------------
    > > To unsubscribe, e-mail: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    > > For additional commands, e-mail: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    > >
    > >
    >
    >
    >
    > --
    >
    > Keith Chapman
    > Senior Software Engineer
    > WSO2 Inc.
    > Oxygenating the Web Service Platform.
    > http://wso2.org/
    >
    > blog: http://www.keith-chapman.org



    --
    Davanum Srinivas :: http://davanum.wordpress.com

    ---------------------------------------------------------------------
    To unsubscribe, e-mail: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    For additional commands, e-mail: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>




--
Saminda Abeyruwan

Senior Software Engineer
WSO2 Inc. - www.wso2.org <http://www.wso2.org>
------------------------------------------------------------------------

No virus found in this incoming message.
Checked by AVG. Version: 7.5.524 / Virus Database: 269.23.16/1427 - Release Date: 5/11/2008 1:08 PM


--
Sanka Samaranayake
WSO2 Inc.

http://sankas.blogspot.com/
http://www.wso2.org/

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to