Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "JAX-WS Introspection Support for STP"
(6 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | == '''Objectives''' == | ||
− | |||
+ | To implement a JAX-WS introspector to reflect JAX-WS annotations into STP core model, using STP’s introspection framework. | ||
− | |||
− | + | == '''Use Case''' == | |
+ | |||
− | |||
A user can use JAX-WS introspector to extend the core model to support JAX-WS implementation in the SCA model. | A user can use JAX-WS introspector to extend the core model to support JAX-WS implementation in the SCA model. | ||
− | |||
− | + | == '''Implementation''' == | |
− | |||
− | |||
− | |||
− | |||
− | |||
+ | '''1. Model Extension''' | ||
+ | |||
+ | We add a new implementation type “implementation.jaxws”. The SCA model is extended as the following XSD file: | ||
+ | |||
+ | <code> | ||
+ | <schema xmlns=”http://www.w3.org/2001/XMLSchema” | ||
+ | targetNamespace=”http://www.acme.org/jaxws” | ||
+ | xmlns:sca=”http://www.osoa.org/xmlns/sca/0.9” | ||
+ | xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” | ||
+ | xmlns:jaxws=”http://www.acme.org/jaxws” | ||
+ | xsi:schemaLocation=”http://www.osoa.org/xmlns/sca/0.9 ../../org.eclipse.stp.core/schemas/transformations/output/sca-core.xsd” | ||
+ | elementFormDefault=”qualified” | ||
+ | xmlns:ecore=”http://www.eclipse.org/emf/2002/Ecore” | ||
+ | ecore:package=”org.eclipse.stp.core.introspection.jaxws” | ||
+ | ecore:nsPrefix=”jaxws”> | ||
− | <element name=”implementation.jaxws” type=”jaxws:JaxWsImplementation” substitutionGroup=”sca:implementation” /> <complexType name=”JaxWsImplementation”> <complexContent> | + | <import namespace=”http://www.osoa.org/xmlns/sca/0.9” |
− | <extension base=”sca:Implementation”> | + | schemaLocation=”../../org.eclipse.stp.core/schemas/transformations/output/sca-core.xsd”/> |
− | (contents to be defined) | + | |
− | </extension> | + | <element name=”implementation.jaxws” |
− | </complexContent> | + | type=”jaxws:JaxWsImplementation” |
− | </complexType> | + | substitutionGroup=”sca:implementation”/> |
− | </schema> | + | <complexType name=”JaxWsImplementation”> |
+ | <complexContent> | ||
+ | <extension base=”sca:Implementation”> | ||
+ | (contents to be defined) | ||
+ | </extension> | ||
+ | </complexContent> | ||
+ | </complexType> | ||
+ | </schema> | ||
+ | </code> | ||
+ | |||
+ | '''2. The introspector plugin''' | ||
− | |||
A plugin org.eclipse.stp.core.introspection.jaxws will be created in STP. This plugin extends the core's componentTypeIntrospector extension point. So the classes required would be like: | A plugin org.eclipse.stp.core.introspection.jaxws will be created in STP. This plugin extends the core's componentTypeIntrospector extension point. So the classes required would be like: | ||
+ | <code> | ||
public class JaxWsIntrospector extends AbstractComponentTypeIntrospector { | public class JaxWsIntrospector extends AbstractComponentTypeIntrospector { | ||
+ | |||
... | ... | ||
+ | |||
} | } | ||
+ | |||
public class ShareableJaxWsComponentTypeFactory implements | public class ShareableJaxWsComponentTypeFactory implements | ||
IShareableComponentTypeFactory { | IShareableComponentTypeFactory { | ||
+ | |||
... | ... | ||
+ | |||
} | } | ||
+ | </code> | ||
− | 3. JAX-WS/SCA Mapping | + | '''3. JAX-WS/SCA Mapping''' |
We reply on OSOA's work on Mapping between JAX-WS annotations and SCA. | We reply on OSOA's work on Mapping between JAX-WS annotations and SCA. | ||
http://www.osoa.org/display/Main/JAX-WS+Services+Integration | http://www.osoa.org/display/Main/JAX-WS+Services+Integration |
Latest revision as of 06:44, 1 December 2006
Objectives
To implement a JAX-WS introspector to reflect JAX-WS annotations into STP core model, using STP’s introspection framework.
Use Case
A user can use JAX-WS introspector to extend the core model to support JAX-WS implementation in the SCA model.
Implementation
1. Model Extension
We add a new implementation type “implementation.jaxws”. The SCA model is extended as the following XSD file:
<schema xmlns=”http://www.w3.org/2001/XMLSchema” targetNamespace=”http://www.acme.org/jaxws” xmlns:sca=”http://www.osoa.org/xmlns/sca/0.9” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:jaxws=”http://www.acme.org/jaxws” xsi:schemaLocation=”http://www.osoa.org/xmlns/sca/0.9 ../../org.eclipse.stp.core/schemas/transformations/output/sca-core.xsd” elementFormDefault=”qualified” xmlns:ecore=”http://www.eclipse.org/emf/2002/Ecore” ecore:package=”org.eclipse.stp.core.introspection.jaxws” ecore:nsPrefix=”jaxws”> <import namespace=”http://www.osoa.org/xmlns/sca/0.9” schemaLocation=”../../org.eclipse.stp.core/schemas/transformations/output/sca-core.xsd”/> <element name=”implementation.jaxws” type=”jaxws:JaxWsImplementation” substitutionGroup=”sca:implementation”/> <complexType name=”JaxWsImplementation”> <complexContent> <extension base=”sca:Implementation”> (contents to be defined) </extension> </complexContent> </complexType> </schema>
2. The introspector plugin
A plugin org.eclipse.stp.core.introspection.jaxws will be created in STP. This plugin extends the core's componentTypeIntrospector extension point. So the classes required would be like:
public class JaxWsIntrospector extends AbstractComponentTypeIntrospector {
...
}
public class ShareableJaxWsComponentTypeFactory implements IShareableComponentTypeFactory {
...
}
3. JAX-WS/SCA Mapping
We reply on OSOA's work on Mapping between JAX-WS annotations and SCA.
http://www.osoa.org/display/Main/JAX-WS+Services+Integration