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.
Extenstion Points in STP.SC
The following extension points can be used to extend the capabilities of the STP platform infrastructure:
Contents
Annotation Editing Extension
Extension Reference
- Identifier: org.eclipse.stp.sc.common.AnnotationSupport
- Since: 1.0
- Description: The AnnotationSupport extension point allows plug-ins to declaratively register supported annotations for the STP annotation editing. This information is used by the annotation view to allow user add/modify annotations in the java editor
- Configuration Markup:
<!ELEMENT extension (annotation)> <!ATTLIST extension point CDATA #REQUIRED id CDATA #IMPLIED name CDATA #IMPLIED> <!ELEMENT annotation EMPTY> <!ATTLIST annotation annotationClass CDATA #REQUIRED initializerClass CDATA #IMPLIED name CDATA #IMPLIED nature CDATA #IMPLIED interfaceOnly (true | false) classOnly (true | false) >
Define one supported annotation in Annotation Properties View
annotationClass - the full name of annotation class
initializerClass - User should provider the initializer class to create suitable init value in the Annotation Properties View
name - The display name shows in the Annotation Properties view for this annotation
nature - Project nature ID if this annotation should be only apply for one type of project. In our case, for example, those JAX-WS annoations only applicable to JAX-WS project.
interfaceOnly - Indicate the annotation is only applicable to interface. default is false
classOnly - Indicate the annotation is only applicable to class. default is false
- Examples: Following is an example of a @WebMethod annotation configuration. It allow user to add javax.jws.WebMethod annotation from the STP annotation View, and the default vaule of that annotation will be setup by CoreAnnotationInitializer class. Also notice here, the @WebMethod annotation will only show when it is JAX-WS project.
<extension point="org.eclipse.stp.sc.common.AnnotationSupport"> <annotation annotationClass="javax.jws.WebMethod" initializerClass="org.eclipse.stp.sc.jaxws.utils.ext.CoreAnnotationInitializer" name="WebMethod" nature="org.eclipse.stp.sc.jaxws.nature"/> </extension>
- API Information:
- Supplied Implementation:
- org.eclipse.stp.sc.jaxws plugin registered all JSR181 and JAX-WS annotations by extending the AnnotationSupport
- org.eclipse.stp.sc.sca.java plugin registered all SCA annotations by extending the AnnotationSupport
- org.eclipse.stp.sc.sca.java.tuscany plugin registered all Tuscany(1.0) annotations by extending the AnnotationSupport
Annotation Validation Extension
Extension Reference
- Identifier:org.eclipse.stp.sc.xmlvalidator.ruleset
- Since: 1.0
- Description:The RuleSet extension point allows plug-ins to declaratively register validation rules. This information is used by the annotation validator to validate annotations defined in the java source code
- Configuration Markup:
<!ELEMENT extension (rulesetfile+)> <!ATTLIST extension point CDATA #REQUIRED id CDATA #IMPLIED name CDATA #IMPLIED> <!ELEMENT rulesetfile EMPTY> <!ATTLIST rulesetfile name CDATA #IMPLIED location CDATA #REQUIRED>
name - The ruleset name location - point to ruleset file, which is relative path to the plugin
- Examples:Following is an example to register JAX-WS annotation validation rules
<extension point="org.eclipse.stp.sc.xmlvalidator.ruleset"> <rulesetfile name="JAX-WS 2.0 Annotation Validation RuleSet" location="ruleset/JAX_WS_VRules.xml"/> </extension>
- Supplied Implementation: org.eclipse.stp.sc.annvalidator plugin registered all JAX-WS annotation validation rules by extending the RuleSet extension point
Runtime Provider Extensions
Refactored the runtime provider extension points to support multiple runtimes at the same time, such as JAX-WS and SCA. Extension Points:
* Defined server type, tech type and server extension points in org.eclipse.stp.common plugin to share between SC and SOAS * Defined integrator tool type extension point in org.eclipse.stp.sc.common plugin to allow user to define tools (such as wsdl2java) used during service creation * Defined runtime integrator extension point to allow plug-ins to register runtime integrator.
JAX-WS / Apache CXF Extensions
* In stp.sc.jaxws plugin.xml, declared JAX-WS technology type and JAX-WS runtime server type extensions * In stp.sc.jaxws plugin.xml, also declared several JAX-WS integrator tool Type extensions: wsdl2java, java2wsdl, deploy generator. * In stp.sc.cxf plugin.xml, declared Apache CXF as jaxws server runtime extension in the system * In stp.sc.cxf plugin.xml, defined Apache CXF runtime integrator extension. Which point to integration tools for Apache CXF java2wsdl, wsdl2java...etc
SCA JAVA / Apache Tuscany Extenstions
* In stp.sc.sca plugin.xml, declared SCA technology type and SCA Java runtime extensions * In stp.sc.sca.java plugin.xml, defined several sca integrator tools type extensions: java2wsdl generator, launch config generator. * In stp.sc.sca.tuscany plugin.xml, declared Apache Tuscany as SCA server runtime extension in the system * In stp.sc.sca.tuscany plugin.xml, declared Apache Tuscany runtime integrator extension.
JBI / ServiceMix Extensions TBD
Following are doc for those extention points in great detail
Server Type Extension
- Identifier: org.eclipse.stp.common.serverType
- Since:1.0
- Description:The Server Type extension point allows plug-ins to declaraively register server type.
- Configuration Markup:
<!ELEMENT extension (serverDefinition)> <!ATTLIST extension point CDATA #REQUIRED id CDATA #IMPLIED name CDATA #IMPLIED> <!ELEMENT serverDefinition EMPTY> <!ATTLIST serverDefinition id CDATA #REQUIRED name CDATA #IMPLIED>
This element identifies a server type. Server types may be used by physical packages for specifying the server type they are configured for and may be used by the deployment framework for validating target servers specified for a package. A server type is used to identify a specific vendor implementation of a technology type.
id - A unique id for this server type. name - The name of this server type.
- Examples:Following is an example to define a JAX-WS runtime server type in the system
<extension point="org.eclipse.stp.common.serverType"> <serverDefinition id="jaxws.runtime" name="JAXWS Runtime"/> </extension>
- API Information:
- Supplied Implementation:
Technology Type Extension
- Identifier:org.eclipse.stp.common.technologyType
- Since:[Enter the first release in which this extension point appears.]
- Description:The Technology Type extension allows plugin-ins to declaratively register supported technology
- Configuration Markup:
<!ELEMENT extension (technologyDefinition)> <!ATTLIST extension point CDATA #REQUIRED id CDATA #IMPLIED name CDATA #IMPLIED> <!ELEMENT technologyDefinition EMPTY> <!ATTLIST technologyDefinition id CDATA #REQUIRED name CDATA #IMPLIED>
This element identifies a technology type. Technology types are used by packages to specify what technology type they belong to. These are used by the deployment framework to validate target servers against packages.
- id - A unique id for this technology type.
- name - The name of this technology type.
- Examples:
Follwoing is an example to define JAX-WS technology
<extension point="org.eclipse.stp.common.technologyType"> <technologyDefinition id="jaxws" name="JAX-WS"/> </extension>
- API Information:
- Supplied Implementation:
Server Extension
- Identifier:org.eclipse.stp.common.server
- Since:1.0
- Description:The Server extension point allows plugin-ins to declaratively register SOA runtime server
- Configuration Markup:
<!ELEMENT extension (serverInfo)> <!ATTLIST extension point CDATA #REQUIRED id CDATA #IMPLIED name CDATA #IMPLIED> <!ELEMENT serverInfo (supportedTechnology+)> <!ATTLIST serverInfo serverType CDATA #REQUIRED serverVersion CDATA #REQUIRED serverName CDATA #IMPLIED>
server information including type, name and version
serverType - serverVersion - serverName -
<!ELEMENT supportedTechnology EMPTY> <!ATTLIST supportedTechnology type CDATA #REQUIRED minVersion CDATA #REQUIRED maxVersion CDATA #REQUIRED>
This element defines the technology type supported by this deployment extension for this server type.
type - The type of technology supported. This should map to a technologyType/id. minVersion - The minimum version of the technology supported by this extension. maxVersion - The maximum version of the technology supported by this extension.
- Examples:
Following is an exmaple of a Apache CXF 2.0 server defined in the system
<extension point="org.eclipse.stp.common.server"> <serverInfo serverName="Apache CXF" serverType="jaxws.runtime" serverVersion="2.0"> <supportedTechnology maxVersion="2.1" minVersion="2.0" type="jaxws"/> </serverInfo> </extension>
- API Information:
IntegratorToolType Extension
- Identifier:org.eclipse.stp.sc.common.integratorToolType
- Since:1.0
- Description:This Integrator Tool Type extension point allows plug-ins to declaratively register supported integration tool
- Configuration Markup:
<!ELEMENT extension (toolType+)> <!ATTLIST extension point CDATA #REQUIRED id CDATA #IMPLIED name CDATA #IMPLIED> <!ELEMENT toolType EMPTY> <!ATTLIST toolType toolTypeId CDATA #REQUIRED name CDATA #REQUIRED>
- toolTypeId - Tool Type ID
- name - Tool name
- Examples: Following is an example of JAX-WS tools definition
<extension point="org.eclipse.stp.sc.common.integratorToolType"> <toolType name="JAXWS WSDL2Java Genarator" toolTypeId="org.eclipse.stp.sc.jaxws.wsdl2java"/> <toolType name="JAXWS Java2WSDL Generator" toolTypeId="org.eclipse.stp.sc.jaxws.java2wsdl"/> <toolType name="JAXWS Deploy Generator" toolTypeId="org.eclipse.stp.sc.jaxws.deploygenerator"/> </extension>
- API Information:[Enter API information here.]
Runtime Integrator Extension
- Identifier:org.eclipse.stp.sc.common.runtimeIntegrator
- Since:1.0
- Description:The Runtime Integrator extension point allows plug-ins to register runtime integrator
- Configuration Markup:
<!ELEMENT extension (generatorTool* , KitProcessor)> <!ATTLIST extension point CDATA #REQUIRED id CDATA #IMPLIED name CDATA #IMPLIED> <!ELEMENT generatorTool EMPTY> <!ATTLIST generatorTool class CDATA #REQUIRED parameter_page CDATA #IMPLIED id CDATA #REQUIRED toolType CDATA #REQUIRED>
- class - Define the executable class for generation tool
- parameter_page - Define the wizard page extension for user to input configuration parameters
- id - ID of the generator tool
- toolType - generator tool type defined by extending integratorTooType
<!ELEMENT KitProcessor EMPTY> <!ATTLIST KitProcessor kit_processor_class CDATA #REQUIRED>
- kit_processor_class - Define the executable class to handle runtime kit specifiy settings, such as classpath
<!ELEMENT targetServer EMPTY> <!ATTLIST targetServer serverType CDATA #REQUIRED>
- serverType - the server type defined in the system
<!ELEMENT configParam EMPTY> <!ATTLIST configParam paramName CDATA #REQUIRED paramValue CDATA #REQUIRED> list of config parameters
- paramName - tool configuration parameter name
- paramValue - tool configuration parameter value
- Examples:Follwoing example defined Apache CXF runtime integrator
<extension point="org.eclipse.stp.sc.common.runtimeIntegrator"> <generatorTool class="org.eclipse.stp.sc.cxf.generators.CeltixJavaToWsdlGenerator" id="org.eclipse.stp.sc.cxf.javatowsdl" toolType="org.eclipse.stp.sc.jaxws.java2wsdl"/> <generatorTool class="org.eclipse.stp.sc.cxf.generators.CeltixWsdlToJavaGenerator" id="org.eclipse.stp.sc.cxf.wsdltojava" toolType="org.eclipse.stp.sc.jaxws.wsdl2java"/> <generatorTool class="org.eclipse.stp.sc.cxf.deploy.CeltixDeployGenerator" id="org.eclipse.stp.sc.cxf.deploygenerator" toolType="org.eclipse.stp.sc.jaxws.deploygenerator"/> <KitProcessor kit_processor_class="org.eclipse.stp.sc.cxf.kitprocessor.CeltixKitProcessorTemplate"/> </extension>
- API Information:[Enter API information here.]