Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Extenstion Points in STP.SC

Revision as of 03:46, 16 April 2007 by Johnson.ma.iona.com (Talk | contribs) (Runtime Integrator Extension)

The following extension points can be used to extend the capabilities of the STP platform infrastructure:

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

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

JAXWS Runtime Extension

Extension Reference

  • Identifier: org.eclipse.stp.sc.jaxws.runtimeProvider
  • Since: 1.0
  • Description: The RuntimeProvider extension point allows plug-ins to declaratively register different SOA runtime. This information is used in several places, such as setup STP project classpath, generating java source code from WSDL contract...etc
  • Configuration Markup:
<!ELEMENT extension (wsdltoJavaGenerator? , javaToWsdlGenerator? , DeployGenerator? , KitProcessor?)>
<!ATTLIST extension
    point CDATA #REQUIRED
    id    CDATA #REQUIRED
    name  CDATA #REQUIRED>
<!ELEMENT wsdltoJavaGenerator EMPTY>
<!ATTLIST wsdltoJavaGenerator
    class          CDATA #REQUIRED
    parameter_page CDATA #IMPLIED>

class - Define the executable class for wsdl2java generation tool parameter_page - Define the wizard page extension for user to input wsdl2java configuration parameters

<!ELEMENT javaToWsdlGenerator EMPTY>
<!ATTLIST javaToWsdlGenerator
    class CDATA #REQUIRED>

class - Define the executable class for java2wsdl generation tool.

<!ELEMENT DeployGenerator EMPTY>
<!ATTLIST DeployGenerator
    class CDATA #REQUIRED>

class - Define the executable class for generating deploy content and deploy to web content (Such as Tomcat)

<!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

  • Examples: Following is an example to register Apache CXF runtime to STP platform.
<extension id="cxf" name="Apache CXF"
    point="org.eclipse.stp.sc.jaxws.runtimeProvider">
    <wsdltoJavaGenerator
        class="org.eclipse.stp.sc.cxf.generators.CeltixWsdlToJavaGenerator"
        parameter_page="org.eclipse.stp.sc.cxf.generators.CeltixWsdlToJavaParameterPage"/>
    <javaToWsdlGenerator class="org.eclipse.stp.sc.cxf.generators.CeltixJavaToWsdlGenerator"/>
    <DeployGenerator class="org.eclipse.stp.sc.cxf.deploy.CeltixWebDeployGenerator"/>
    <KitProcessor kit_processor_class="org.eclipse.stp.sc.cxf.kitprocessor.CeltixKitProcessorTemplate"/>
</extension> 
  • API Information: SOA Runtime extensions must implement the following interface.
org.eclipse.stp.sc.jaxws.runtimeprovider.IJavaToWsdlGenerator 
org.eclipse.stp.sc.jaxws.runtimeprovider.IParameterPage 
org.eclipse.stp.sc.jaxws.runtimeprovider.IWsdlToJavaGenerator 
org.eclipse.stp.sc.jaxws.runtimeprovider.IRuntimeKitProcessorTemplate 
  • Supplied Implementation: org.eclipse.stp.sc.cxf registered Apache CXF runtime to stp platform by extending this Runtime Provider.

Todo

Back to the top