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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to