I appreciate the help from you an Manoj. I'm used to straight XML
interfaces, but new to SOAP more or less and indeed I think I'm going to
have to separate Endpoints at slightly different URL locations. For our
XML interface, we actually look up a "version" field up front with XPath
and then shunt the Document off to the correct handler for the version,
which means every client of every version comes through the same URL.
That's why I asked about having different versions come through the same
URL for SOAP (with CXF). It looks like that'll be problematic though, so
I'll go the route of a http://host/v11 and http://host/v10 type scheme.

Not a big deal, though I'll have to distill the "why" into layman speak
when I get asked why it differs from how we expose our XML interface :)

Thanks,
Chris

-----Original Message-----
From: Rao, Sameer V [mailto:[email protected]] 
Sent: Monday, November 09, 2009 12:09 PM
To: [email protected]
Subject: RE: Pointer to a strategy on interface versioning?

Hi Chris,

>> The problem is, how do I support both the v1.0 and v1.1 interfaces at

the same endpoint?

Since data structures (XSD elements) are backwards compatible, how are
you differentiating between these two version? Rather do you want to
differentiate between your 1.0 consumer and 1.1 consumer? If not then
the 1.1 WebService interface & JAXB objects should suffice all your
consumer. However, if you still want to return limited data (i.e. 1.0
data) to 1.0 version consumer then its best to have a separate endpoint
within the same WAR and support the versions.

If it's ok for all your consumer (1.0 and 1.1) to get the 1.1 data then
just have one interface. There might not be special multi-version
support in your case. Would this meet you needs?

Cheers!
Sameer  



-----Original Message-----
From: Kessel, Christopher [mailto:[email protected]] 
Sent: Monday, November 09, 2009 11:41 AM
To: [email protected]
Subject: Pointer to a strategy on interface versioning?

Is there documentation available on good strategies for versioning an
endpoint published via CXF? We've got version 1.0 and are rolling a v1.1
that has a slightly enhanced version of the previous interface. The
input/output objects have been updated, but backwards compatible with
the v1.0 defined interface.

The problem is, how do I support both the v1.0 and v1.1 interfaces at
the same endpoint? Well, let me rephrase that, I want to keep the same
URL for customers to send their SOAP requests through whether they're
v1.0 or v1.1 customers. Essentially, this should be an invisible change
to v1.0 customers since our implementation objects are backwards
compatible. v1.1 customers would get an updated WSDL that shows the new
fields available in the v1.1 input/output.

Does that description make any sense? Is it possible or will I need to
publish a new URL for v1.1 customers?

Thanks,
Chris

Reply via email to