Bug 197197 - Investigate upgrading to wsdl4j 1.5.1
Summary: Investigate upgrading to wsdl4j 1.5.1
Status: CLOSED FIXED
Alias: None
Product: WTP Webservices
Classification: WebTools
Component: wst.wsdl (show other bugs)
Version: 2.0   Edit
Hardware: All All
: P2 enhancement (vote)
Target Milestone: 3.1 M5   Edit
Assignee: Amy Wu CLA
QA Contact: Valentin Baciu CLA
URL:
Whiteboard:
Keywords: api, helpwanted, plan
: 185198 (view as bug list)
Depends on: 252257 252258 259415
Blocks: 175842 260911 261139
  Show dependency tree
 
Reported: 2007-07-19 16:20 EDT by Kathy Chan CLA
Modified: 2009-03-19 09:41 EDT (History)
4 users (show)

See Also:


Attachments
Rough patch (338.76 KB, patch)
2009-01-08 00:43 EST, Valentin Baciu CLA
no flags Details | Diff
wsdlemf.txt (288.55 KB, patch)
2009-01-13 19:48 EST, Amy Wu CLA
no flags Details | Diff
wsdlemf2.txt (287.02 KB, patch)
2009-01-14 16:33 EST, Amy Wu CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Kathy Chan CLA 2007-07-19 16:20:11 EDT
We found a problem in the Web Services Explorer when handling certain WSDL file (see bug 175842).  Debugging that problem indicated that this is a WSDL4J problem and is deemed to have been fixed in the latest version.  Please upgrade wsdl4j in the next release of WTP.
Comment 1 Kathy Chan CLA 2007-07-24 11:38:21 EDT
Moving to wst.wsdl component
Comment 2 Kathy Chan CLA 2007-07-27 22:12:32 EDT
Please consider this for WTP 3.0.
Comment 3 Valentin Baciu CLA 2007-09-15 21:32:00 EDT
*** Bug 185198 has been marked as a duplicate of this bug. ***
Comment 4 Valentin Baciu CLA 2007-09-15 21:34:26 EDT
This bug 103504 is asking for an upgrade to WSDL4J 1.6.2.
Comment 5 Valentin Baciu CLA 2008-04-10 08:55:55 EDT
This upgrade cannot be contained in the 3.0 timeframe. We will try in the next major WTP release.
Comment 6 Valentin Baciu CLA 2008-09-29 11:02:28 EDT
Let's investigate what we can do in the WSDL EMF model to facilitate WTP moving to a new version of WSDL4J (initially 1.5.1).

We should consider working in a branch to evaluate the impact and we'll make a final decision once the facts are in.
Comment 7 Valentin Baciu CLA 2008-10-27 16:10:29 EDT
Given the sensitivity of this upgrade we will take an incremental approach. 

We will first upgrade the components that depend only on javax.wsdl. These are the WSDL and WS-I validators.  See bug 252257 and bug 252258.

Then we will try to update the WSDL EMF model, regenerate the code and get it to compile, while perhaps leaving some of the new APIs not implemented. We will then fill in the blanks.

Once all this is done we can re-assess and see how much time there is left to perhaps move all the way to javax.wsdl_1.6.
Comment 8 Kathy Chan CLA 2008-11-25 16:32:35 EST
Just want to make a note that before releasing the code into WTP 3.1, we would like to request to have a test build (say a HEAD build or patched JARs) so that we could test the changes with the Web services wizards and WSE to make sure that they are not adversely impacted by the changes.
Comment 9 Valentin Baciu CLA 2009-01-08 00:43:00 EST
Created attachment 121913 [details]
Rough patch

Here is the first rough patch with WSDL EMF model changes. The changes include (roughly aligned with the changes in JWSDL 1.1):
- ExtensibleElement now extends the new JWSDL interface ElementExtensible instead of modelling the methods itself. All extensibility element method implementations are unchanged in ExtensibleElementImpl.
- ExtensibleElement now extends the new JWSDL interface AttributeExtensible. JWSDL only requires certain objects to have this functionality but I decided to have all objects implement it now because we will eventually have to do it when we move to JWSDL 1.2. This also allows the implementation of the four methods of this interface to live nicely into one class instead of being coded in more than one. This potential implementation redundancy could have been avoided by introducing some other intermediary class but I figured I don't want to add it just to remove it later on.
- I have changed XSDSchemaExtensibilityElement to extend the new javax.wsdl.extensions.schema.Schema interface. The implementation contains only method stubs for the new methods for now, except for get/setElement which were already there.
- I have modelled two new objects SchemaReference and SchemaImport to mirror the similar new interfaces from  javax.wsdl.extensions.schema. I have modelled their features.
- I have updated the org.eclipse.wst.wsdl, org.eclipse.wst.wsdl.tests and org.eclipse.wst.wsdl.ui plug-ins to make sure they pick up javax.wsdl [1.5.0, 1.6.0)

The code compiles, all existing WSDL model JUnit tests pass and the WSDL editor seems to function OK superficially.

Some things to ponder:
- MIMEPart seems to be special: it currently models the extensibility element related methods. It could / should probably extend ElementExtensible to align it with JWSDL
- PartImpl still contains the old attribute extensibility methods. These will have to be removed later on.
- How should we bump the WSDL model version: minor or major? In general, the changes appear to be API additions or compatible changes, except perhaps for the Part related interface changes (getExtensibilityAttribute returning Object instead of QName).
- We'll need new JUnit tests for the new features (extensibility attributes and lightweight schema support).

Amy, please give this patch a try and if it seems OK let's use it, together with the WSDL and WS-I validator patches to do some testing with the Java WS tools. You'll need wst.wsdl, wst.wsdl.tests and wst.wsdl.ui in your workspace.
Comment 10 Amy Wu CLA 2009-01-13 19:48:38 EST
Created attachment 122487 [details]
wsdlemf.txt

Here is an updated patch.

(In reply to comment #9)
> - I have modelled two new objects SchemaReference and SchemaImport to mirror
> the similar new interfaces from  javax.wsdl.extensions.schema. I have modelled
> their features.

I backed out of this specific change since we're currently doing nothing different between our model and the wsdl4j model, so we should not have our own implementation.

This also means that in WSDLAdapterFactory & WSDLSwitch, SchemaReference & SchemaImport will not be supported.

> Some things to ponder:
> - How should we bump the WSDL model version: minor or major? In general, the
> changes appear to be API additions or compatible changes, except perhaps for
> the Part related interface changes (getExtensibilityAttribute returning Object
> instead of QName).

I also increased the minor version number in org.eclipse.wst.wsdl to 1.2.0.
I also noticed org.eclipse.wst.wsdl.ui.tests was not updated to pick up javax.wsdl 1.5, so I went ahead and updated its manifest.mf as well.
I also saw a compile error in WSDLParser about a try/catch block where the catch was unreachable code, so I removed that as well.
Comment 11 Amy Wu CLA 2009-01-14 16:33:59 EST
Created attachment 122589 [details]
wsdlemf2.txt

This patch is the same as the previous one except I added back the try/catch clause that I had taken out (turns out there was just something funny with my dev env)
Comment 12 Amy Wu CLA 2009-01-21 18:35:32 EST
fix released to this week's wtp 3.1 m5
Comment 13 Kathy Chan CLA 2009-02-11 21:56:50 EST
This bug has been in resolved state for a while.  Please verify this defect with the latest WTP 3.0.4 or WTP 3.5 build from:

http://download.eclipse.org/webtools/downloads/

If this is not verified within 2 weeks, we'll be verifying the bug on your behalf.  Thanks!
Comment 14 Kathy Chan CLA 2009-03-19 09:41:47 EDT
Verified and closing.