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]
