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"

 
(4 intermediate revisions by the same user not shown)
Line 6: Line 6:
  
 
<h1>WSDL Tools</h1>
 
<h1>WSDL Tools</h1>
<h2>Use Cases</h2>
 
<h3>SCA Tools</h3>
 
 
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.'''<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.
 
 
 
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.
 
 
 
<h2>Ideas of Tools for WSDLs</h2>
 
 
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.
 
 
 
<h2>Existing WSDL-related tools</h2>
 
 
Here is a small list existing tools working with WSDLs.
 
This list is not exhaustive. Feel free to complete it.
 
 
* '''wsdl4j'''
 
** wsdl4j is a WSDL parser for WSDL 1.1.
 
** Handle parsing and writing.
 
** 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.
 
** Links:
 
*** 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'''
 
** 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
 
 
 
* '''Apache Axis'''
 
** Provides wsdl2java and java2wsdl libraries.<br />
 
** Axis databinding and WSDL 1.1.
 
** Link: http://ws.apache.org/axis/
 
 
 
* '''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/
 
 
 
* '''Eclipse WTP'''
 
** Eclipse WTP provides a WSDL editor, wizards and a "front-end" for Axis.
 
** Also uses Axis2.
 
** Links:
 
*** http://www.eclipse.org/webtools/
 
*** http://www.eclipse.org/webtools/ws/
 
 
 
* '''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
 
 
 
* '''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/
 
 
 
<h2>Possible contributions</h2>
 
 
* '''Wsdl2java & Java2wsdl'''
 
 
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...).
+
See here: [[STP Toolbox WSDL|WSDL toolbox]]
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.
+
  
  
<h1>Ontology & Semantics</h1>
+
<h1>Ontology and Semantics Tools</h1>
 
<h2>Use Cases</h2>
 
<h2>Use Cases</h2>
 
<h3>SCA Tools</h3>
 
<h3>SCA Tools</h3>
Line 167: Line 39:
 
There is an incubation feature in SCA Tools, including a search view for semantic concepts.
 
There is an incubation feature in SCA Tools, including a search view for semantic concepts.
 
It could be part of this toolbox.
 
It could be part of this toolbox.
 +
 +
[[Category:SOA]]
 +
[[Category:STP]]

Latest revision as of 10:17, 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.


WSDL Tools

See here: WSDL toolbox


Ontology and Semantics Tools

Use Cases

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.


Ideas of Tools related to Ontology

  • Semantic view: a view to search and discover semantic concepts.

It could be used to annotate files and cooperate with diagram editors (SCA, BPMN, BPEL, JWT), e.g. by interacting with DnD.


Existing Tools

  • Eclipse does not have much tools for Ontology, and does not provide such a view.

The reference in Ontology world is Protege.


Possible contributions

  • Ontology Search View

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