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

Difference between revisions of "STP Toolbox"

(New page: It often happens that projects have common needs regarding some specific tasks.<br /> STP is probably concerned by this statement.<br /> Here is a discussion about tools that could be shar...)
 
Line 1: Line 1:
It often happens that projects have common needs regarding some specific tasks.<br />
+
It often happens that projects have common needs regarding some specific tasks.
 +
 
 
STP is probably concerned by this statement.<br />
 
STP is probably concerned by this statement.<br />
 
Here is a discussion about tools that could be shared among components and sub-projects of STP.
 
Here is a discussion about tools that could be shared among components and sub-projects of STP.
Line 11: Line 12:
 
<h2>SCA Tools</h2>
 
<h2>SCA Tools</h2>
  
Reference any web service (or JBI endpoint) in an SCA application.  
+
Reference and work with any web service (or JBI endpoint) in an SCA application.  
 
Meaning that the only thing you have for an SCA reference interface is a WSDL file.
 
Meaning that the only thing you have for an SCA reference interface is a WSDL file.
'''It's about wsdl2java transformations.'''
+
'''It's all about wsdl2java transformations.'''<br />
 
In SCA tools, we are only focused on Java implementations for the moment. So, we need something simple to create the java interfaces from WSDLs, so that our Java implementation can compile.
 
In SCA tools, we are only focused on Java implementations for the moment. So, we need something simple to create the java interfaces from WSDLs, so that our Java implementation can compile.
 +
  
 
For SCA, it would be better to not have data-binding elements.
 
For SCA, it would be better to not have data-binding elements.
Line 22: Line 24:
 
In particular when message beans have a high degree of imbrication.
 
In particular when message beans have a high degree of imbrication.
  
For the moment, the most simple approach Vincent found with Eclipse for this se case, is using the WTP "create a web service client" wizard, with a "developer" level.
 
It generates the beans and some useless things for us, the stub, the locator...
 
Then, the user has to manually remove these extra-classes and remove the code parts that depend on Axis (which are "hidden" in the bottom of the beans).
 
  
 +
For the moment, the most simple approach Vincent found with Eclipse for this use case, is using the WTP "create a web service client" wizard, with the "developer" level.
 +
It generates the beans and some useless things for SCA, such as the stub, the locator...
 +
Then, the user has to manually remove these extra-classes and remove the code parts that depend on Axis (which are "hidden" in the bottom of the beans).
 
Vincent is thinking to make some better front-end solution, relying on WTP and cleaning automatically these classes.
 
Vincent is thinking to make some better front-end solution, relying on WTP and cleaning automatically these classes.
The thing is that we have very specific needs in SCA.
+
The thing is that there are very specific needs in SCA, that did not exist or seemed useless before it.
  
  
Line 35: Line 37:
  
 
Some of the following features may already be available in Eclipse WSTP.
 
Some of the following features may already be available in Eclipse WSTP.
 
  
 
Several tools work with WSDL files.
 
Several tools work with WSDL files.
But they are not already available in Eclipse or easily usable (Maven, ANT scripts or code dependencies).
+
But they are either not available in Eclipse, or easy to use (Maven, ANT scripts or code dependencies).
 
Sometimes also, they are just intended for the scope of these projects, while others would be glad to reuse these features.
 
Sometimes also, they are just intended for the scope of these projects, while others would be glad to reuse these features.
 +
 +
The idea would be have a grouped tool box for WSDLs.
  
 
Here is a list of features that would be nice to have:
 
Here is a list of features that would be nice to have:
* WSDL parsng and writing: be able to parse and write any WSDL (WSDL 1.1 and 2.0).
+
* '''WSDL parsng and writing''': be able to parse and write any WSDL (WSDL 1.1 and 2.0).
* wsdl2java: convert WSDL files in Java interfaces. Be able to choose the data-binding and other settings.
+
* '''Wsdl2java''': convert WSDL files in Java interfaces and classes. Be able to choose the data-binding and other settings.
* java2wsdl: create WSDL files from a Java interface. Be able to define the generation settings.
+
* '''Java2wsdl''': create WSDL files from a Java interface. Be able to define the generation settings.
* WSDL import: import remote or local WSDL files, with all their dependencies (import also the WSDL related resources - XSDs, other WSDLs...).
+
* '''WSDL import''': import remote or local WSDL files, with all their dependencies (import also the WSDL related resources - XSDs, other WSDLs...). Possible use case: JBI.
* WSDL browsing: make a WSDL explorer (provide a nice UI to explore WSDLs).
+
* '''WSDL browsing''': make a WSDL explorer (provide a nice UI to explore WSDLs). Make WSDLs easy to understand.
  
  
<h2>Ontology</h2>
+
<h2>Ontology & Semantics</h2>
  
 
<h2>SCA Tools</h2>
 
<h2>SCA Tools</h2>
  
In SCA, we would like to be able to semantically annotate SCA composites.\\
+
In SCA, we would like to be able to semantically annotate SCA composites.
It consists in adding SAWSDL annotations on XML elements.\\
+
 
For this, we 'd like to have a view that allows to load *.owl files (or other ontology files) and search for semantic concepts.\\
+
It consists in adding SAWSDL annotations on XML elements.
 +
For this, we'd like to have a '''search view''' that allows to load *.owl files (or other ontology files) and search for semantic concepts.<br />
 
Once the user has found the concept he wanted, he can dragged and dropped it from the search view to the SCA element to annotate.
 
Once the user has found the concept he wanted, he can dragged and dropped it from the search view to the SCA element to annotate.
  
Line 67: Line 71:
  
  
* wsdl4j
+
* '''wsdl4j'''
 
+
** wsdl4j is a WSDL parser for WSDL 1.1.
wsdl4j is a WSDL parser for WSDL 1.1.
+
** Handle parsing and writing.
Handle parsing and writing.
+
** Link: http://sourceforge.net/projects/wsdl4j
 
+
Link: http://sourceforge.net/projects/wsdl4j
+
 
+
 
+
* Apache Woden
+
 
+
Woden is an Apache project for WSDL 2.0.
+
Can convert WSDL 1.1 to WSDL 2.0.
+
Parsing works. The last time I checked, the writing was not supported.
+
 
+
Link: http://ws.apache.org/woden/
+
 
+
 
+
* EasyWSDL
+
 
+
A new OW2 project to manipulate WSDL 1.1 and 2.0.
+
 
+
Link:
+
https://www.ohloh.net/p/easywsdl (no official page yet, only the forge seems available).
+
http://svn.forge.objectweb.org/cgi-bin/viewcvs.cgi/easywsdl/
+
  
  
* Apache CXF
+
* '''Apache Woden'''
 +
** Woden is an Apache project for WSDL 2.0.
 +
** Can convert WSDL 1.1 to WSDL 2.0.
 +
** Parsing works. The last time I checked, the writing was not supported.
 +
** Link: http://ws.apache.org/woden/
  
Provides wsdl2java and java2wsdl libraries.
 
They can be called from Java code (=> dependency), ANT tasks and Maven.
 
Handles JAX-B binding and WSDL 1.1.
 
  
Links:
+
* '''EasyWSDL'''
http://cxf.apache.org/
+
** A new OW2 project to manipulate WSDL 1.1 and 2.0.
http://cwiki.apache.org/CXF20DOC/wsdl-to-java.html
+
** Links:
http://cwiki.apache.org/CXF20DOC/java-to-wsdl.html
+
*** https://www.ohloh.net/p/easywsdl (no official page yet, only the forge seems available).
http://cwiki.apache.org/CXF20DOC/java-to-ws.html
+
*** http://svn.forge.objectweb.org/cgi-bin/viewcvs.cgi/easywsdl/
  
  
* Apache Axis
+
* '''Apache CXF'''
 +
** Provides wsdl2java and java2wsdl libraries.
 +
** They can be called from Java code (=> dependency), ANT tasks and Maven.
 +
** Handles JAX-B binding and WSDL 1.1.
 +
** Links:
 +
*** http://cxf.apache.org/
 +
*** http://cwiki.apache.org/CXF20DOC/wsdl-to-java.html
 +
*** http://cwiki.apache.org/CXF20DOC/java-to-wsdl.html
 +
*** http://cwiki.apache.org/CXF20DOC/java-to-ws.html
  
Provides wsdl2java and java2wsdl libraries.
 
Axis databinding and WSDL 1.1.
 
  
Link: http://ws.apache.org/axis/
+
* '''Apache Axis'''
 +
** Provides wsdl2java and java2wsdl libraries.<br />
 +
** Axis databinding and WSDL 1.1.
 +
** Link: http://ws.apache.org/axis/
  
  
* Apache Axis2
+
* '''Apache Axis2'''
 +
** Provides wsdl2java and java2wsdl libraries.
 +
** Provides a java2wsdl library and can create clients from a WSDL.<br />
 +
** Has an Eclipse plug-in to use from Eclipse.<br />
 +
** Covers WSDL 1.1, 2.0.<br />
 +
** Data-binding: AXIOM, ADB, XML Beans, JiBX.
 +
** Link: http://ws.apache.org/axis2/
  
Provides wsdl2java and java2wsdl libraries.
 
  
Provides a java2wsdl library and can create clients from a WSDL.
+
* '''Eclipse WTP'''
Has an Eclipse plug-in to use from Eclipse.
+
** Eclipse WTP provides a WSDL editor, wizards and a "front-end" for Axis.
Covers WSDL 1.1, 2.0.
+
** Also uses Axis2.
Data-binding: AXIOM, ADB, XML Beans, JiBX.
+
** Links:
 +
*** http://www.eclipse.org/webtools/
 +
*** http://www.eclipse.org/webtools/ws/
  
Link: http://ws.apache.org/axis2/
 
  
 +
* '''Eclipse WTP Incubator'''
 +
** The former Service Creation from STP has now moved in the WTP incubator.<br />
 +
** It deals with JAX-WS. So it must have things related to WSDLs.
 +
** Links:
 +
*** http://www.eclipse.org/webtools/incubator/
 +
*** http://wiki.eclipse.org/JAXWS
  
* Eclipse WTP
 
  
Eclipse WTP provides a WSDL editor, wizards and a "front-end" for Axis.
+
* '''BPEL Designer'''
Also uses Axis2 but I don't know how.
+
** The BPEL Designer provides some tools to easily orchestrate web services and extract WSDL information (in particular for the operation messages).
 +
** Define XPath conditions from the XML schemas contained in the WSDL.
 +
** Link: http://www.eclipse.org/bpel/
  
Links:
 
http://www.eclipse.org/webtools/
 
http://www.eclipse.org/webtools/ws/
 
  
 +
<h1>Possible contributions</h1>
  
* Eclipse WTP Incubator
+
List the possible contributions to this toolbox.
  
The former Service Creation from STP has now moved in the WTP incubator.
+
<h2>WSDL</h2>
It deals with JAX-WS. So it must have things related to WSDLs.
+
  
Links:
+
* EBM WebSourcing has an Eclipse front-end for Apache CXF wsdl2java and java2wsdl libraries.
http://www.eclipse.org/webtools/incubator/
+
It is provides a preference page (to specify the location of the CXF distribution), wizards to make both transformations, and a call generator using ANT classes (no script) to run the library code.
http://wiki.eclipse.org/JAXWS
+
There is no code dependency to Apache CXF.
 +
It could also be extended to provide a front-end to other similar libraries.
 +
Could be contributed to the toolbox.
  
 +
* WSDL imports
  
* BPEL Designer
+
(Still) EBM WebSourcing can provide a tool to import WSDLs and all their dependencies (XSDs, WSDLs...).
 +
Works with WSDL 1.1 and 2.0.
 +
Dependency to a simple XML parser (the code can be adapted to any parser).
 +
Could be contributed to the toolbox.
  
The BPEL Designer provides some tools to easily orchestrate web services and extract WSDL information (in particular for the operation messages).
+
<h2>Ontology & Semantics</h2>
Define XPath conditions from the XML schemas contained in the WSDL.
+
  
Link: http://www.eclipse.org/bpel/
+
There is an incubation feature in SCA Tools, including a search view for semantic concepts.
 +
It could be part of this toolbox.

Revision as of 09:08, 11 February 2009

It often happens that projects have common needs regarding some specific tasks.

STP is probably concerned by this statement.
Here is a discussion about tools that could be shared among components and sub-projects of STP.


Use Cases

Those are STP use cases in which there are tools that could be used in other projects.

SCA Tools

Reference and work with any web service (or JBI endpoint) in an SCA application. Meaning that the only thing you have for an SCA reference interface is a WSDL file. It's all about wsdl2java transformations.
In SCA tools, we are only focused on Java implementations for the moment. So, we need something simple to create the java interfaces from WSDLs, so that our Java implementation can compile.


For SCA, it would be better to not have data-binding elements. That would add dependencies to our implementation and complexity in usage. As an example, if you use JAXB, you have to use the associated factories to create objects. "Real" web services have complex messages in general, not just simple types like string. A developer would prefer makes a "new Bean()" instead of using the JAXB factory to create it. In particular when message beans have a high degree of imbrication.


For the moment, the most simple approach Vincent found with Eclipse for this use case, is using the WTP "create a web service client" wizard, with the "developer" level. It generates the beans and some useless things for SCA, such as the stub, the locator... Then, the user has to manually remove these extra-classes and remove the code parts that depend on Axis (which are "hidden" in the bottom of the beans). Vincent is thinking to make some better front-end solution, relying on WTP and cleaning automatically these classes. The thing is that there are very specific needs in SCA, that did not exist or seemed useless before it.


Ideas of Tools

WSDL manipulation

Some of the following features may already be available in Eclipse WSTP.

Several tools work with WSDL files. But they are either not available in Eclipse, or easy to use (Maven, ANT scripts or code dependencies). Sometimes also, they are just intended for the scope of these projects, while others would be glad to reuse these features.

The idea would be have a grouped tool box for WSDLs.

Here is a list of features that would be nice to have:

  • WSDL parsng and writing: be able to parse and write any WSDL (WSDL 1.1 and 2.0).
  • Wsdl2java: convert WSDL files in Java interfaces and classes. Be able to choose the data-binding and other settings.
  • Java2wsdl: create WSDL files from a Java interface. Be able to define the generation settings.
  • WSDL import: import remote or local WSDL files, with all their dependencies (import also the WSDL related resources - XSDs, other WSDLs...). Possible use case: JBI.
  • WSDL browsing: make a WSDL explorer (provide a nice UI to explore WSDLs). Make WSDLs easy to understand.


Ontology & Semantics

SCA Tools

In SCA, we would like to be able to semantically annotate SCA composites.

It consists in adding SAWSDL annotations on XML elements. For this, we'd like to have a search view that allows to load *.owl files (or other ontology files) and search for semantic concepts.
Once the user has found the concept he wanted, he can dragged and dropped it from the search view to the SCA element to annotate.


Existing Tools

WSDL-related tools

Here is a small list existing tools working with WSDLs. This list is not exhaustive. Feel free to complete it.



  • Apache Woden
    • Woden is an Apache project for WSDL 2.0.
    • Can convert WSDL 1.1 to WSDL 2.0.
    • Parsing works. The last time I checked, the writing was not supported.
    • Link: http://ws.apache.org/woden/





  • Apache Axis2
    • Provides wsdl2java and java2wsdl libraries.
    • Provides a java2wsdl library and can create clients from a WSDL.
    • Has an Eclipse plug-in to use from Eclipse.
    • Covers WSDL 1.1, 2.0.
    • Data-binding: AXIOM, ADB, XML Beans, JiBX.
    • Link: http://ws.apache.org/axis2/




  • BPEL Designer
    • The BPEL Designer provides some tools to easily orchestrate web services and extract WSDL information (in particular for the operation messages).
    • Define XPath conditions from the XML schemas contained in the WSDL.
    • Link: http://www.eclipse.org/bpel/


Possible contributions

List the possible contributions to this toolbox.

WSDL

  • EBM WebSourcing has an Eclipse front-end for Apache CXF wsdl2java and java2wsdl libraries.

It is provides a preference page (to specify the location of the CXF distribution), wizards to make both transformations, and a call generator using ANT classes (no script) to run the library code. There is no code dependency to Apache CXF. It could also be extended to provide a front-end to other similar libraries. Could be contributed to the toolbox.

  • WSDL imports

(Still) EBM WebSourcing can provide a tool to import WSDLs and all their dependencies (XSDs, WSDLs...). Works with WSDL 1.1 and 2.0. Dependency to a simple XML parser (the code can be adapted to any parser). Could be contributed to the toolbox.

Ontology & Semantics

There is an incubation feature in SCA Tools, including a search view for semantic concepts. It could be part of this toolbox.

Back to the top