[270514] [hotbug] Add service definition extension point to locate workspace artifacts
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.consumption.ui/META-INF/MANIFEST.MF
index 387afdd..097f90c 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %PLUGIN_NAME
Bundle-SymbolicName: org.eclipse.jst.ws.consumption.ui; singleton:=true
-Bundle-Version: 1.1.4.qualifier
+Bundle-Version: 1.1.5.qualifier
Bundle-Activator: org.eclipse.jst.ws.internal.consumption.ui.plugin.WebServiceConsumptionUIPlugin
Bundle-Vendor: %PLUGIN_PROVIDER
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/WSDLSelectionWidgetDefaultingCommand.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/WSDLSelectionWidgetDefaultingCommand.java
index a8a3208..738e580 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/WSDLSelectionWidgetDefaultingCommand.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/WSDLSelectionWidgetDefaultingCommand.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -16,6 +16,7 @@
* 20080220 219537 makandre@ca.ibm.com - Andrew Mak
* 20080501 229728 makandre@ca.ibm.com - Andrew Mak, uppercase .WSDL cannot be found by the Web Service Client wizard
* 20081208 257618 mahutch@ca.ibm.com - Mark Hutchinson, Add Mechanism for Adopters to map Services to WSDL URLs
+ * 20090310 242440 yenlu@ca.ibm.com - Yen Lu, Pluggable IFile to URI Converter
*******************************************************************************/
package org.eclipse.jst.ws.internal.consumption.ui.widgets;
@@ -36,6 +37,8 @@
import org.eclipse.jst.ws.internal.common.ResourceUtils;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+import org.eclipse.wst.ws.internal.converter.IIFile2UriConverter;
+import org.eclipse.wst.ws.internal.plugin.WSPlugin;
import org.eclipse.wst.ws.internal.ui.utils.AdapterUtils;
import org.eclipse.wst.ws.internal.util.UniversalPathTransformer;
import org.eclipse.wst.ws.internal.wsfinder.WSDLURLStringWrapper;
@@ -62,8 +65,18 @@
IFile ifile = (IFile)firstSel;
String ext = ifile.getFileExtension();
if (ext != null && (ext.equalsIgnoreCase("wsdl") || ext.equalsIgnoreCase("wsil") || ext.equalsIgnoreCase("html")))
- {
- uri_ = ifile.getFullPath().toString();
+ {
+ IIFile2UriConverter converter = WSPlugin.getInstance().getIFile2UriConverter();
+ boolean allowBaseConversionOnFailure = true;
+ if (converter != null)
+ {
+ uri_ = converter.convert(ifile);
+ if (uri_ == null)
+ allowBaseConversionOnFailure = converter.allowBaseConversionOnFailure();
+
+ }
+ if ((uri_ == null || uri_.length() == 0) && allowBaseConversionOnFailure)
+ uri_ = ifile.getFullPath().toString();
}
}
else if (Platform.getAdapterManager().hasAdapter(firstSel, WSDLURLStringWrapper.class.getName())) {
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/WSDLSelectionTransformer.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/WSDLSelectionTransformer.java
index 4fcc06f..3fcf524 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/WSDLSelectionTransformer.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/WSDLSelectionTransformer.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -13,11 +13,13 @@
* 20070327 172339 kathy@ca.ibm.com - Kathy Chan
* 20070713 191357 kathy@ca.ibm.com - Kathy Chan
* 20081208 257618 mahutch@ca.ibm.com - Mark Hutchinson, Add Mechanism for Adopters to map Services to WSDL URLs
+ * 20090310 242440 yenlu@ca.ibm.com - Yen Lu, Pluggable IFile to URI Converter
*******************************************************************************/
package org.eclipse.jst.ws.internal.consumption.ui.widgets.object;
import java.net.MalformedURLException;
+import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IPath;
@@ -33,6 +35,8 @@
import org.eclipse.jst.ws.internal.common.J2EEActionAdapterFactory;
import org.eclipse.jst.ws.internal.common.J2EEUtils;
import org.eclipse.wst.command.internal.env.core.data.Transformer;
+import org.eclipse.wst.ws.internal.converter.IIFile2UriConverter;
+import org.eclipse.wst.ws.internal.plugin.WSPlugin;
import org.eclipse.wst.ws.internal.ui.utils.AdapterUtils;
import org.eclipse.wst.ws.internal.wsfinder.WSDLURLStringWrapper;
import org.eclipse.wst.wsdl.internal.impl.ServiceImpl;
@@ -52,6 +56,17 @@
{
try
{
+ if (sel instanceof IFile)
+ {
+ IFile file = (IFile)sel;
+ IIFile2UriConverter converter = WSPlugin.getInstance().getIFile2UriConverter();
+ if (converter != null)
+ {
+ String wsdlUrl = converter.convert(file);
+ if (wsdlUrl != null || !converter.allowBaseConversionOnFailure())
+ return wsdlUrl;
+ }
+ }
return new StructuredSelection(((IResource)sel).getLocation().toFile().toURL().toString());
}
catch (MalformedURLException murle)
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/WSDLSelectionWidget.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/WSDLSelectionWidget.java
index 2ade044..5279a28 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/WSDLSelectionWidget.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/WSDLSelectionWidget.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -25,6 +25,7 @@
* 20061211 161589 makandre@ca.ibm.com - Andrew Mak, NPE in service generation after opening and cancelling from browse dialog
* 20070131 168786 makandre@ca.ibm.com - Andrew Mak, wsdl url on web service wizard page 1 is not reflected in browse dialog
* 20070326 171071 makandre@ca.ibm.com - Andrew Mak, Create public utility method for copying WSDL files
+ * 20090310 242440 yenlu@ca.ibm.com - Yen Lu, Pluggable IFile to URI Converter
*******************************************************************************/
package org.eclipse.jst.ws.internal.consumption.ui.widgets.object;
@@ -74,6 +75,7 @@
import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
import org.eclipse.wst.command.internal.env.ui.widgets.WidgetDataEvents;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.ws.internal.converter.IIFile2UriConverter;
import org.eclipse.wst.ws.internal.parser.wsil.WebServiceEntity;
import org.eclipse.wst.ws.internal.parser.wsil.WebServicesParser;
import org.eclipse.wst.ws.internal.plugin.WSPlugin;
@@ -510,15 +512,28 @@
private String iFile2URI(IFile file)
{
- File f = file.getLocation().toFile();
- try
- {
- return f.toURL().toString();
- }
- catch (MalformedURLException murle)
- {
- }
- return f.toString();
+ String uri = null;
+ IIFile2UriConverter converter = WSPlugin.getInstance().getIFile2UriConverter();
+ boolean allowBaseConversionOnFailure = true;
+ if (converter != null)
+ {
+ uri = converter.convert(file);
+ if (uri == null)
+ allowBaseConversionOnFailure = converter.allowBaseConversionOnFailure();
+ }
+ if (uri == null && allowBaseConversionOnFailure)
+ {
+ File f = file.getLocation().toFile();
+ try
+ {
+ uri = f.toURL().toString();
+ }
+ catch (MalformedURLException murle)
+ {
+ uri = f.toString();
+ }
+ }
+ return uri;
}
public void setInitialSelection(IStructuredSelection initialSelection)
diff --git a/bundles/org.eclipse.jst.ws.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.ui/META-INF/MANIFEST.MF
index b27954c..2d6e817 100644
--- a/bundles/org.eclipse.jst.ws.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %PLUGIN_NAME
Bundle-SymbolicName: org.eclipse.jst.ws.ui; singleton:=true
-Bundle-Version: 1.0.304.qualifier
+Bundle-Version: 1.0.305.qualifier
Bundle-Activator: org.eclipse.jst.ws.internal.ui.plugin.WebServiceUIPlugin
Bundle-Vendor: %PLUGIN_PROVIDER
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/popup/PopupTestService.java b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/popup/PopupTestService.java
index ec857cb..98d87b1 100644
--- a/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/popup/PopupTestService.java
+++ b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/popup/PopupTestService.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2002, 2008 IBM Corporation and others.
+ * Copyright (c) 2002, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -13,6 +13,7 @@
* 20070327 172339 kathy@ca.ibm.com - Kathy Chan
* 20080123 216372 kathy@ca.ibm.com - Kathy Chan
* 20090127 257618 mahutch@ca.ibm.com - Mark Hutchinson
+ * 20090310 242440 yenlu@ca.ibm.com - Yen Lu, Pluggable IFile to URI Converter
*******************************************************************************/
package org.eclipse.jst.ws.internal.ui.popup;
@@ -58,8 +59,8 @@
}
else if (object instanceof ServiceRef)
{
- ServiceRef serviceImpl = (ServiceRef)object;
- wsdlURL = J2EEActionAdapterFactory.getWSDLURI(serviceImpl);
+ ServiceRef serviceRef = (ServiceRef)object;
+ wsdlURL = J2EEActionAdapterFactory.getWSDLURI(serviceRef);
} else if (object instanceof String) {
wsdlURL = (String) object;
} else {
diff --git a/bundles/org.eclipse.jst.ws/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws/META-INF/MANIFEST.MF
index 46c324f..eeb12b7 100644
--- a/bundles/org.eclipse.jst.ws/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %PLUGIN_NAME
Bundle-SymbolicName: org.eclipse.jst.ws
-Bundle-Version: 1.0.307.qualifier
+Bundle-Version: 1.0.308.qualifier
Bundle-Activator: org.eclipse.jst.ws.internal.plugin.WebServicePlugin
Bundle-Vendor: %PLUGIN_PROVIDER
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/J2EEActionAdapterFactory.java b/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/J2EEActionAdapterFactory.java
index e2453e5..f7da25f 100644
--- a/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/J2EEActionAdapterFactory.java
+++ b/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/J2EEActionAdapterFactory.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -11,6 +11,7 @@
* -------- -------- -----------------------------------------------------------
* 20060222 125574 zina@ca.ibm.com - Zina Mostafia
* 20060222 225574 gilberta@ca.ibm.com - Gilbert Andrews
+ * 20090310 242440 yenlu@ca.ibm.com - Yen Lu, Pluggable IFile to URI Converter
*******************************************************************************/
/*
* Created on May 8, 2004
@@ -21,11 +22,15 @@
import java.net.MalformedURLException;
import java.net.URL;
+import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
import org.eclipse.jst.j2ee.webservice.wsclient.ServiceRef;
+import org.eclipse.wst.ws.internal.converter.IIFile2UriConverter;
+import org.eclipse.wst.ws.internal.plugin.WSPlugin;
import org.eclipse.wst.wsdl.Definition;
import org.eclipse.wst.wsdl.internal.impl.ServiceImpl;
import org.eclipse.wst.wsdl.util.WSDLResourceImpl;
@@ -35,14 +40,47 @@
* @author gilberta
*/
public class J2EEActionAdapterFactory {
-
-
+
+ private static String getConvertedURIFromIFile(IFile file,String defaultURI)
+ {
+ String convertedLocation = null;
+ boolean allowBaseConversionOnFailure = true;
+ if (file != null && file.exists())
+ {
+ IIFile2UriConverter converter = WSPlugin.getInstance().getIFile2UriConverter();
+ if (converter != null)
+ {
+ convertedLocation = converter.convert(file);
+ allowBaseConversionOnFailure = converter.allowBaseConversionOnFailure();
+ }
+ }
+ if (convertedLocation == null && allowBaseConversionOnFailure)
+ return defaultURI;
+ return convertedLocation;
+ }
+
+ private static String getConvertedURIFromURI(String originalURI)
+ {
+ IFile file = null;
+ if (originalURI != null)
+ {
+ String platformResource = "platform:/resource";
+ if (originalURI.startsWith(platformResource))
+ file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(originalURI.substring(platformResource.length())));
+ else if (originalURI.startsWith("file:"))
+ {
+ String filePath = convertToRelative(originalURI);
+ file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(filePath));
+ }
+ }
+ return getConvertedURIFromIFile(file,originalURI);
+ }
+
public static String getWSDLURI(ServiceImpl serviceImpl)
{
Definition definition = serviceImpl.getEnclosingDefinition();
String location = definition.getLocation();
-
- return location;
+ return getConvertedURIFromURI(location);
}
//has to be under the webcontent
@@ -66,26 +104,28 @@
{
moduleRoot = APPCLIENT_MODULE;
}
- IPath path = project.getLocation().addTrailingSeparator();
- path = path.append(moduleRoot).addTrailingSeparator();
- path = path.append(serviceImpl.getWsdlFile());
- File file = new File(path.toString());
- try{
- URL url = file.toURL();
- return url.toString();
- }catch(MalformedURLException e){return null;}
-
-
-
-
+
+ if (moduleRoot != null)
+ {
+ IPath path = project.getLocation().addTrailingSeparator();
+ path = path.append(moduleRoot).addTrailingSeparator();
+ path = path.append(serviceImpl.getWsdlFile());
+ File file = new File(path.toString());
+ try {
+ URL url = file.toURL();
+ return getConvertedURIFromURI(url.toString());
+ }
+ catch(MalformedURLException e) {
+ }
+ }
+ return null;
}
public static String getWSDLURI(WSDLResourceImpl wsdlRI)
{
Definition definition = wsdlRI.getDefinition();
String location = definition.getLocation();
-
- return location;
+ return getConvertedURIFromURI(location);
}
public static String getWSILPath(WSDLResourceImpl wsdlRI)
@@ -116,7 +156,4 @@
}
return uri;
}
-
-
-
}
diff --git a/bundles/org.eclipse.wst.ws.explorer/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.ws.explorer/META-INF/MANIFEST.MF
index c1835ef..216486d 100644
--- a/bundles/org.eclipse.wst.ws.explorer/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.ws.explorer/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %PLUGIN_NAME
Bundle-SymbolicName: org.eclipse.wst.ws.explorer; singleton:=true
-Bundle-Version: 1.0.309.qualifier
+Bundle-Version: 1.0.310.qualifier
Bundle-Activator: org.eclipse.wst.ws.internal.explorer.plugin.ExplorerPlugin
Bundle-Vendor: %PLUGIN_PROVIDER
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/popup/PopupTestWSDL.java b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/popup/PopupTestWSDL.java
index 757f86b..f7973ea 100644
--- a/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/popup/PopupTestWSDL.java
+++ b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/popup/PopupTestWSDL.java
@@ -14,6 +14,7 @@
* 20070327 172339 kathy@ca.ibm.com - Kathy Chan
* 20080123 216372 kathy@ca.ibm.com - Kathy Chan
* 20090122 257618 mahutch@ca.ibm.com - Mark Hutchinson, Add Mechanism for Adopters to map Services to WSDL URLs
+ * 20090310 242440 yenlu@ca.ibm.com - Yen Lu, Pluggable IFile to URI Converter
*******************************************************************************/
package org.eclipse.wst.ws.internal.explorer.popup;
@@ -23,19 +24,24 @@
import java.util.List;
import java.util.Vector;
+import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IActionDelegate;
+import org.eclipse.wst.ws.internal.converter.IIFile2UriConverter;
import org.eclipse.wst.ws.internal.explorer.LaunchOption;
import org.eclipse.wst.ws.internal.explorer.LaunchOptions;
import org.eclipse.wst.ws.internal.explorer.WSExplorerLauncherCommand;
import org.eclipse.wst.ws.internal.explorer.plugin.ExplorerPlugin;
import org.eclipse.wst.ws.internal.monitor.GetMonitorCommand;
import org.eclipse.wst.ws.internal.parser.wsil.WebServicesParser;
+import org.eclipse.wst.ws.internal.plugin.WSPlugin;
import org.eclipse.wst.ws.internal.ui.utils.AdapterUtils;
import org.eclipse.wst.ws.internal.wsfinder.WSDLURLStringWrapper;
import org.eclipse.wst.wsdl.Definition;
@@ -66,15 +72,17 @@
Object object = it.next();
if (object instanceof IResource)
{
- File wsdlFile = ((IResource)object).getLocation().toFile();
- try
- {
- wsdlURL = wsdlFile.toURL().toString();
- }
- catch (MalformedURLException murle)
- {
- wsdlURL = wsdlFile.toString();
- }
+ File wsdlFile = ((IResource)object).getLocation().toFile();
+ try
+ {
+ wsdlURL = wsdlFile.toURL().toString();
+ }
+ catch (MalformedURLException murle)
+ {
+ wsdlURL = wsdlFile.toString();
+ }
+ if (object instanceof IFile)
+ wsdlURL = getConvertedURIFromIFile((IFile)object,wsdlURL);
}
else if (Platform.getAdapterManager().hasAdapter(object, WSDLURLStringWrapper.class.getName())) {
Object adaptedObject = Platform.getAdapterManager().loadAdapter(object, WSDLURLStringWrapper.class.getName());
@@ -85,12 +93,12 @@
{
ServiceImpl serviceImpl = (ServiceImpl)object;
Definition definition = serviceImpl.getEnclosingDefinition();
- wsdlURL = definition.getLocation();
+ wsdlURL = getConvertedURIFromURI(definition.getLocation());
} else if (object instanceof WSDLResourceImpl)
{
WSDLResourceImpl WSDLRImpl = (WSDLResourceImpl)object;
Definition definition = WSDLRImpl.getDefinition();
- wsdlURL = definition.getLocation();
+ wsdlURL = getConvertedURIFromURI(definition.getLocation());
} else if (object instanceof String) {
wsdlURL = (String) object;
} else {
@@ -100,8 +108,8 @@
// If not found, wsdlURL would still be null.
wsdlURL = AdapterUtils.getAdaptedWSDL(object);
}
-
- addLaunchOptions(launchOptions, wsdlURL, stateLocation, defaultFavoritesLocation);
+ if (wsdlURL != null)
+ addLaunchOptions(launchOptions, wsdlURL, stateLocation, defaultFavoritesLocation);
}
}
command.setLaunchOptions((LaunchOption[])launchOptions.toArray(new LaunchOption[0]));
@@ -148,4 +156,53 @@
this.selection = null;
}
+ private String getConvertedURIFromIFile(IFile file,String defaultURI)
+ {
+ String convertedLocation = null;
+ boolean allowBaseConversionOnFailure = true;
+ if (file != null && file.exists())
+ {
+ IIFile2UriConverter converter = WSPlugin.getInstance().getIFile2UriConverter();
+ if (converter != null)
+ {
+ convertedLocation = converter.convert(file);
+ allowBaseConversionOnFailure = converter.allowBaseConversionOnFailure();
+ }
+ }
+ if (convertedLocation == null && allowBaseConversionOnFailure)
+ return defaultURI;
+ return convertedLocation;
+ }
+
+ private String getConvertedURIFromURI(String originalURI)
+ {
+ IFile file = null;
+ if (originalURI != null)
+ {
+ String platformResource = "platform:/resource";
+ if (originalURI.startsWith(platformResource))
+ file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(originalURI.substring(platformResource.length())));
+ else if (originalURI.startsWith("file:"))
+ {
+ String filePath = convertToRelative(originalURI);
+ file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(filePath));
+ }
+ }
+ return getConvertedURIFromIFile(file,originalURI);
+ }
+
+ public static String convertToRelative(String uri)
+ {
+ //remove file:
+ String file = "file:/";
+ String fileL = "file:";
+ String root = ResourcesPlugin.getWorkspace().getRoot().getLocation().toString();
+ root = file + root;
+ String rootL = fileL + root;
+ if(uri.startsWith(root) || uri.startsWith(rootL)){
+ return uri.substring(root.length());
+ }
+ return uri;
+ }
+
}
diff --git a/bundles/org.eclipse.wst.ws.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.ws.ui/META-INF/MANIFEST.MF
index dec09c1..4a64907 100644
--- a/bundles/org.eclipse.wst.ws.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.ws.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %PLUGIN_NAME
Bundle-SymbolicName: org.eclipse.wst.ws.ui; singleton:=true
-Bundle-Version: 1.1.0.qualifier
+Bundle-Version: 1.1.1.qualifier
Bundle-Activator: org.eclipse.wst.ws.internal.ui.plugin.WSUIPlugin
Bundle-Vendor: %PLUGIN_PROVIDER
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.wst.ws.ui/src/org/eclipse/wst/ws/internal/ui/utils/AdapterUtils.java b/bundles/org.eclipse.wst.ws.ui/src/org/eclipse/wst/ws/internal/ui/utils/AdapterUtils.java
index 266dccf..ebb8d12 100644
--- a/bundles/org.eclipse.wst.ws.ui/src/org/eclipse/wst/ws/internal/ui/utils/AdapterUtils.java
+++ b/bundles/org.eclipse.wst.ws.ui/src/org/eclipse/wst/ws/internal/ui/utils/AdapterUtils.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * Copyright (c) 2007, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -13,6 +13,7 @@
* 20070716 191357 kathy@ca.ibm.com - Kathy Chan
* 20080220 219537 makandre@ca.ibm.com - Andrew Mak
* 20080421 227824 makandre@ca.ibm.com - Andrew Mak, AdapterUtils adapt to IFile before String
+ * 20090310 242440 yenlu@ca.ibm.com - Yen Lu
*******************************************************************************/
package org.eclipse.wst.ws.internal.ui.utils;
@@ -20,6 +21,8 @@
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.Platform;
+import org.eclipse.wst.ws.internal.converter.IIFile2UriConverter;
+import org.eclipse.wst.ws.internal.plugin.WSPlugin;
/**
* The AdapterUtils class provides utility methods to get objects from the Platform's adapter extension.
@@ -67,11 +70,21 @@
if ( adaptedObject != null) {
if (adaptedObject instanceof IFile)
{
- URI uri = ((IFile)adaptedObject).getLocationURI();
- if (uri != null) {
- wsdlURI = uri.toString();
+ IFile file = (IFile)adaptedObject;
+ boolean allowBaseConversionOnFailure = true;
+ IIFile2UriConverter converter = WSPlugin.getInstance().getIFile2UriConverter();
+ if (converter != null)
+ {
+ wsdlURI = converter.convert(file);
+ allowBaseConversionOnFailure = converter.allowBaseConversionOnFailure();
}
-
+ if (wsdlURI == null && allowBaseConversionOnFailure)
+ {
+ URI uri = file.getLocationURI();
+ if (uri != null) {
+ wsdlURI = uri.toString();
+ }
+ }
} else if (adaptedObject instanceof String) {
wsdlURI = (String) adaptedObject;
}
diff --git a/bundles/org.eclipse.wst.ws/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.ws/META-INF/MANIFEST.MF
index 0b34368..c0dc8f5 100644
--- a/bundles/org.eclipse.wst.ws/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.ws/META-INF/MANIFEST.MF
@@ -2,12 +2,13 @@
Bundle-ManifestVersion: 2
Bundle-Name: %PLUGIN_NAME
Bundle-SymbolicName: org.eclipse.wst.ws; singleton:=true
-Bundle-Version: 1.1.3.qualifier
+Bundle-Version: 1.1.4.qualifier
Bundle-Activator: org.eclipse.wst.ws.internal.plugin.WSPlugin
Bundle-Vendor: %PLUGIN_PROVIDER
Bundle-Localization: plugin
Export-Package: org.eclipse.wst.ws.internal;x-internal:=true,
org.eclipse.wst.ws.internal.common;x-internal:=true,
+ org.eclipse.wst.ws.internal.converter,
org.eclipse.wst.ws.internal.data;x-internal:=true,
org.eclipse.wst.ws.internal.datamodel;x-internal:=true,
org.eclipse.wst.ws.internal.ext;x-internal:=true,
diff --git a/bundles/org.eclipse.wst.ws/plugin.properties b/bundles/org.eclipse.wst.ws/plugin.properties
index 372c25b..5965c6f 100644
--- a/bundles/org.eclipse.wst.ws/plugin.properties
+++ b/bundles/org.eclipse.wst.ws/plugin.properties
@@ -1,5 +1,5 @@
###############################################################################
-# Copyright (c) 2000, 2008 IBM Corporation and others.
+# Copyright (c) 2000, 2009 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
@@ -13,6 +13,7 @@
# 20080324 220739 makandre@ca.ibm.com - Andrew Mak, Text Description missing for Profile Complaince nodes
# 20080403 225480 kathy@ca.ibm.com - Kathy Chan
# 20080715 240722 makandre@ca.ibm.com - Andrew Mak, Cannot setup TCP/IP Monitor for soap12 endpoints
+# 20090310 242440 yenlu@ca.ibm.com - Yen Lu, Pluggable IFile to URI Converter
###############################################################################
#
@@ -27,6 +28,7 @@
X_WEB_SERVICE_LOCATOR_CATEGORY_WORKSPACE=Workspace WSDL documents
X_WSIL_CONTENT_TYPE=Web Services Inspection Language Document
XP_EXTENSIBILITY_ELEMENT_TRANSFORMER=Extensibility Element Transformer
+XP_IFILE_2_URI_CONVERTER=IFile to URI Converter
MSG_ERROR_UNABLE_TO_START_MONITOR=IWAB0001E Unable to monitor port {0} of {1}.
diff --git a/bundles/org.eclipse.wst.ws/plugin.xml b/bundles/org.eclipse.wst.ws/plugin.xml
index a75c587..42f2e52 100644
--- a/bundles/org.eclipse.wst.ws/plugin.xml
+++ b/bundles/org.eclipse.wst.ws/plugin.xml
@@ -7,6 +7,7 @@
<extension-point id="locator" name="%XP_WEB_SERVICE_LOCATOR" schema="schema/webServiceLocator.exsd"/>
<extension-point id="ExtensibilityElementTransformer" name="%XP_EXTENSIBILITY_ELEMENT_TRANSFORMER" schema="schema/ExtensibilityElementTransformer.exsd"/>
+ <extension-point id="ifile2uriconverter" name="%XP_IFILE_2_URI_CONVERTER" schema="schema/ifile2uriconverter.exsd"/>
<!-- Extension providing workspace WSDL discovery -->
<extension
diff --git a/bundles/org.eclipse.wst.ws/schema/ifile2uriconverter.exsd b/bundles/org.eclipse.wst.ws/schema/ifile2uriconverter.exsd
new file mode 100644
index 0000000..6332b57
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws/schema/ifile2uriconverter.exsd
@@ -0,0 +1,106 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.ws" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.wst.ws" id="ifile2uriconverter" name="IFile to URI Converter"/>
+ </appinfo>
+ <documentation>
+ This extension point is provided to register IFile to URI converters which can override the default implementation of either file: or platform: URIs provided by the Web Services tools.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appinfo>
+ <meta.element />
+ </appinfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="converter"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ This is the ID of the IFile to URI Converter extension. If the extension will serve the product then this is the ID that must be added to the product's plugin_customization.ini via the setting:
+
+<code>org.eclipse.wst.ws/IFile2UriConverter = [value of id]</code>
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="converter">
+ <complexType>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ The fully qualified class name of the IFile to URI converter provided for this product.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.wst.internal.converter.AbstractIFile2UriConverter:"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ <extension point="org.eclipse.wst.ws.ifile2uriconverter" id="com.example.converterplugin.converterextension">
+ <converter class="com.example.converterplugin.impl.MyIFile2UriConverter"/>
+</extension>
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiinfo"/>
+ </appinfo>
+ <documentation>
+ Extenders should subclass <code>org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/converter/AbstractIFile2UriConverter</code>
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/converter/AbstractIFile2UriConverter.java b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/converter/AbstractIFile2UriConverter.java
new file mode 100644
index 0000000..9944f1f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/converter/AbstractIFile2UriConverter.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ * yyyymmdd bug Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20090310 242440 yenlu@ca.ibm.com - Yen Lu, Pluggable IFile to URI Converter
+ *******************************************************************************/
+package org.eclipse.wst.ws.internal.converter;
+
+import org.eclipse.core.resources.IFile;
+
+/**
+ * <p>
+ * The abstract implementation of an IFile to URI converter. Adopters who wish to
+ * provide their own converter should subclass this abstract class rather than implementing IIFile2UriConverter.
+ *
+ * @see IIFile2UriConverter
+ */
+public abstract class AbstractIFile2UriConverter implements IIFile2UriConverter {
+
+ public String convert(IFile file) {
+ return null;
+ }
+
+ public boolean allowBaseConversionOnFailure()
+ {
+ return true;
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/converter/IIFile2UriConverter.java b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/converter/IIFile2UriConverter.java
new file mode 100644
index 0000000..2cc4b50
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/converter/IIFile2UriConverter.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ * yyyymmdd bug Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20090310 242440 yenlu@ca.ibm.com - Yen Lu, Pluggable IFile to URI Converter
+ *******************************************************************************/
+package org.eclipse.wst.ws.internal.converter;
+
+import org.eclipse.core.resources.IFile;
+
+/**
+ * <p>
+ * The interface for an Eclipse IFile to URI converter. Adopters should
+ * subclass AbstractIFile2UriConverter instead.
+ *
+ * @see AbstractIFile2UriConverter
+ */
+public interface IIFile2UriConverter {
+ /**
+ * <p>
+ * Produce a String URI from a given IFile. The IFile is from the workbench. If this method returns null,
+ * the result is considered a failure and the
+ * {@link #allowBaseConversionOnFailure allowBaseConversionOnFailure} method will be consulted to determine
+ * whether or not base conversion should be used as a backup.
+ * @param file An IFile reference.
+ * @return The String URI corresponding to the IFile reference.
+ * <p>
+ * @since 3.1
+ */
+ public String convert(IFile file);
+
+ /**
+ * <p>
+ * Determines whether or not a converter will allow base conversion routines to be performed
+ * when a failure occurs.
+ * @return <code>true</code> if base conversion should be performed when a failure occurs.
+ * <p>
+ * @since 3.1
+ */
+ public boolean allowBaseConversionOnFailure();
+}
diff --git a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/plugin/WSPlugin.java b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/plugin/WSPlugin.java
index a55f29f..fc30371 100644
--- a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/plugin/WSPlugin.java
+++ b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/plugin/WSPlugin.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -11,11 +11,17 @@
* -------- -------- -----------------------------------------------------------
* 20060403 128827 kathy@ca.ibm.com - Kathy Chan
* 20060424 115690 sengpl@ca.ibm.com - Seng Phung-Lu
+ * 20090310 242440 yenlu@ca.ibm.com - Yen Lu, Pluggable IFile to URI Converter
*******************************************************************************/
package org.eclipse.wst.ws.internal.plugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Plugin;
+import org.eclipse.wst.ws.internal.converter.IIFile2UriConverter;
import org.eclipse.wst.ws.internal.preferences.PersistentMergeContext;
import org.eclipse.wst.ws.internal.preferences.PersistentWSDLValidationContext;
import org.eclipse.wst.ws.internal.preferences.PersistentWSIAPContext;
@@ -37,6 +43,8 @@
private PersistentWSDLValidationContext wsdlValidationContext_;
private PersistentWaitForWSDLValidationContext waitForWsdlValidationContext_;
private PersistentMergeContext mergeContext_;
+ private IIFile2UriConverter iFile2UriConverter_;
+ private boolean isIFile2UriConverterInitialized_ = false;
public static final String ID = "org.eclipse.wst.ws";
@@ -157,4 +165,38 @@
}
return mergeContext_;
}
+
+ /**
+ * <p>
+ * Get the product's registered IFile to URI converter. If there is no converter registered then this method will return null.
+ * @return The IFile to URI converter registered with the <code>org.eclipse.wst.ws/IFile2UriConverterId</code> preference in plugin_customization.ini
+ */
+ public IIFile2UriConverter getIFile2UriConverter()
+ {
+ if (!isIFile2UriConverterInitialized_)
+ {
+ String productConverterId = getPluginPreferences().getDefaultString("IFile2UriConverterId");
+ if (productConverterId.length() > 0)
+ {
+ IExtension extension = Platform.getExtensionRegistry().getExtension(productConverterId);
+ if (extension != null)
+ {
+ IConfigurationElement[] configElements = extension.getConfigurationElements();
+ if (configElements.length > 0)
+ {
+ try
+ {
+ iFile2UriConverter_ = (IIFile2UriConverter)configElements[0].createExecutableExtension("class");
+ }
+ catch (CoreException e)
+ {
+ getLog().log(e.getStatus());
+ }
+ }
+ }
+ }
+ isIFile2UriConverterInitialized_ = true;
+ }
+ return iFile2UriConverter_;
+ }
}
diff --git a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/WorkspaceWSDLLocator.java b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/WorkspaceWSDLLocator.java
index 7430dd8..c7dc065 100644
--- a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/WorkspaceWSDLLocator.java
+++ b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/WorkspaceWSDLLocator.java
@@ -1,16 +1,17 @@
/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
* yyyymmdd bug Email and other contact information
* -------- -------- -----------------------------------------------------------
* 20060317 127456 cbrealey@ca.ibm.com - Chris Brealey
* 20060620 147862 cbrealey@ca.ibm.com - Chris Brealey
+ * 20090310 242440 yenlu@ca.ibm.com - Yen Lu, Pluggable IFile to URI Converter
*******************************************************************************/
package org.eclipse.wst.ws.internal.wsfinder;
@@ -18,6 +19,7 @@
import java.util.List;
import java.util.Vector;
+import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceVisitor;
@@ -25,6 +27,8 @@
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.wst.ws.internal.converter.IIFile2UriConverter;
+import org.eclipse.wst.ws.internal.plugin.WSPlugin;
import org.eclipse.wst.ws.internal.wsrt.WebServiceInfo;
/**
@@ -124,14 +128,27 @@
public boolean visit(IResource resource)
{
if (resource.getType() == IResource.FILE)
- {
- String ext = resource.getFileExtension();
- if (ext != null && ext.equalsIgnoreCase(WSDL_EXT))
+ {
+ String wsdlURL = null;
+ IIFile2UriConverter converter = WSPlugin.getInstance().getIFile2UriConverter();
+ boolean allowBaseConversionOnFailure = true;
+ if (converter != null)
{
- String urlString = PLATFORM_RES + resource.getFullPath().toString();
- WebServiceInfo wsInfo = new WebServiceInfo();
- wsInfo.setWsdlURL(urlString);
- wsdl.add(wsInfo);
+ wsdlURL = converter.convert((IFile)resource);
+ if (wsdlURL == null)
+ allowBaseConversionOnFailure = converter.allowBaseConversionOnFailure();
+ }
+ if (wsdlURL == null && allowBaseConversionOnFailure)
+ {
+ String ext = resource.getFileExtension();
+ if (ext != null && ext.equalsIgnoreCase(WSDL_EXT))
+ wsdlURL = PLATFORM_RES + resource.getFullPath().toString();
+ }
+ if (wsdlURL != null)
+ {
+ WebServiceInfo wsInfo = new WebServiceInfo();
+ wsInfo.setWsdlURL(wsdlURL);
+ wsdl.add(wsInfo);
}
}
return true;
diff --git a/features/org.eclipse.wst.ws_core.feature/feature.xml b/features/org.eclipse.wst.ws_core.feature/feature.xml
index 03d7bc2..a5259e9 100644
--- a/features/org.eclipse.wst.ws_core.feature/feature.xml
+++ b/features/org.eclipse.wst.ws_core.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.wst.ws_core.feature"
label="%featureName"
- version="3.0.4.qualifier"
+ version="3.0.5.qualifier"
provider-name="%providerName">
<description>
diff --git a/features/org.eclipse.wst.ws_sdk.feature/feature.xml b/features/org.eclipse.wst.ws_sdk.feature/feature.xml
index 9acc3b9..973f245 100644
--- a/features/org.eclipse.wst.ws_sdk.feature/feature.xml
+++ b/features/org.eclipse.wst.ws_sdk.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.wst.ws_sdk.feature"
label="%featureName"
- version="3.0.4.qualifier"
+ version="3.0.5.qualifier"
provider-name="%providerName">
<description>
diff --git a/features/org.eclipse.wst.ws_ui.feature/feature.xml b/features/org.eclipse.wst.ws_ui.feature/feature.xml
index 97058a4..d902267 100644
--- a/features/org.eclipse.wst.ws_ui.feature/feature.xml
+++ b/features/org.eclipse.wst.ws_ui.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.wst.ws_ui.feature"
label="%featureName"
- version="3.0.4.qualifier"
+ version="3.0.5.qualifier"
provider-name="%providerName">
<description>