Extenstion Points in STP.SC

From Eclipsepedia

Jump to: navigation, search

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.]