ws-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Ws Wiki] Trivial Update of "FrontPage/Woden/WSDLExtensionChanges" by JohnKaputin
Date Tue, 05 Feb 2008 00:03:18 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Ws Wiki" for change notification.

The following page has been changed by JohnKaputin:
http://wiki.apache.org/ws/FrontPage/Woden/WSDLExtensionChanges

------------------------------------------------------------------------------
  The only way that Woden's client applications can access extension properties is via these
statically-defined, compile-time extension property APIs declared by the {{{ComponentExtensions}}}
subtypes. Some applications need a more flexible approach that provides a more ''generic''
API for accessing extension properties, without requiring detailed knowledge of each {{{ComponentExtensions}}}
subtype API. For example, WSDL editors or GUI tools should be able to display any WSDL, including
it's extensions, without predefined knowledge of all possible extension-types and their specific
APIs. They need to be able to retrieve these properties as ''generic'' extension properties,
via a common programming model. 
  
  === Summary of the Solution ===
- A new type {{{ExtensionProperty}}} has been introduced which provides a generic representation
of an extension property (name, namespace and content as a java.lang.Object). {{{ExtensionProperty}}}
accessor methods have been declared in a new type {{{PropertyExtensible}}}, for retrieving
 extension properties. {{{WSDLComponent}}} now extends {{{PropertyExtensible}}}. 
+ A new type {{{ExtensionProperty}}} has been introduced which provides a generic representation
of an extension property (name, namespace and content as a java.lang.Object). {{{ExtensionProperty}}}
accessor methods have been declared in a new type {{{PropertyExtensible}}}, for retrieving
 extension properties. {{{WSDLComponent}}} now extends {{{PropertyExtensible}}}. These accessor
methods retrieve extension properties by namespace or by namespace and name. The namespaces
and property names for the extensions defined by WSDL 2.0 are declared in extension constants
classes like {{{SOAPConstants}}} and {{{HTTPConstants}}}. These constants classes are now
public on the API, instead of being in 'internal' packages.
  
  The {{{ComponentExtensions}}} interface has been renamed to {{{ComponentExtensionContext}}}
to better reflect its role as an ''accessor'' for retrieving extensions in a particular context
(that is, for a component and an extension namespace) and to avoid giving the impression that
it ''is'' the collection of extension properties for that component and namespace.  Furthermore,
to avoid API confusion with new {{{PropertyExtensible}}} methods like {{{getExtensionProperties}}},
the {{{WSDLComponent}}} method {{{getComponentExtensionsForNamespace(NSuri)}}} has been renamed
to {{{getComponentExtensionContext(NSuri)}}} (and that now returns a {{{ComponentExtensionContext}}}).
  
@@ -32, +32 @@

  The necessary changes to the existing API are:
   * calls to {{{WSDLComponent.getComponentExtensionsForNamespace(NSuri)}}} must be replaced
with {{{WSDLComponent.getComponentExtensionContext(NSuri)}}} (the extension subtypes like
{{{SOAPBindingExtensions}}} have been changed to the new super-type, so those APIs will not
be affected)
   * calls to {{{ExtensionRegistry.createComponentExtension}}} will now return {{{ComponentExtensionContext}}}
instead of {{{ComponentExtensions}}}, but this method is typically called by Woden anyway,
not by user code.
+  * The extension constants classes like {{{SOAPConstants}}} have been moved from the internal
packages like {{{org.apache.woden.internal.wsdl20.extensions.soap}}} to the public API packages
like {{{org.apache.woden.wsdl20.extensions.soap}}}. Existing client code should not have been
using the 'internal' constants classes, but if any code was it will need to be changed.
  
  === Overview of the new Component extensions model ===
  
@@ -46, +47 @@

   * {{{PropertyExtensible}}} - this interface declares accessor methods for {{{ExtensionProperty}}}
which are common to all WSDL components, so it is extended by {{{WSDLComponent}}}.
  
  The {{{org.apache.woden.wsdl20}}} API package contains:
-  * {{{WSDLComponent}}} - this now provides all WSDL component sub-types with generic {{{ExtensionProperty}}}
accessor methods (inherited from {{{PropertyExtensible}}}). It also provides access to {{{ComponentExtensionContext}}}
objects by extension namespace via the {{{getComponentExtensionContext(NSuri)}}} method. 
+  * {{{WSDLComponent}}} - this inherits the generic {{{ExtensionProperty}}} accessor methods
from {{{PropertyExtensible}}}. It also provides access to {{{ComponentExtensionContext}}}
objects by extension namespace via the {{{getComponentExtensionContext(NSuri)}}} method. 
  
  === Implementation Notes ===
  

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscribe@ws.apache.org
For additional commands, e-mail: general-help@ws.apache.org


Mime
View raw message