[330753] web.xml content gets deleted when adding servlets via the servlet wizards, Fix will take the web.xml location from the virtual model instead of computing the location from the file system.
diff --git a/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/model/internal/JEE5ModelProvider.java b/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/model/internal/JEE5ModelProvider.java index 3273f84..c417e0b 100644 --- a/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/model/internal/JEE5ModelProvider.java +++ b/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/model/internal/JEE5ModelProvider.java
@@ -51,6 +51,7 @@ import org.eclipse.wst.common.componentcore.internal.impl.ModuleURIUtil; import org.eclipse.wst.common.componentcore.internal.impl.PlatformURLModuleConnection; import org.eclipse.wst.common.componentcore.internal.impl.WTPResourceFactoryRegistry; +import org.eclipse.wst.common.componentcore.resources.IVirtualFile; import org.eclipse.wst.common.componentcore.resources.IVirtualFolder; import org.eclipse.wst.common.internal.emfworkbench.WorkbenchResourceHelper; import org.eclipse.wst.common.internal.emfworkbench.validateedit.ResourceStateInputProvider; @@ -159,15 +160,12 @@ String modelPathURI = innerModelPath.toString(); URI uri = URI.createURI(modelPathURI); - IPath projURIPath = new Path("");//$NON-NLS-1$ - projURIPath = projURIPath.append(container.getProjectRelativePath()); - projURIPath = projURIPath.addTrailingSeparator(); - projURIPath = projURIPath.append(innerModelPath); - URI projURI = URI.createURI(projURIPath.toString()); + IVirtualFile dd = container.getFile(innerModelPath); + URI projURI = URI.createURI(dd.getProjectRelativePath().toString()); + XMLResourceImpl res = null; try { - if (proj.getFile(projURI.toString()).exists()) - { + if (dd.exists()) { res = (XMLResourceImpl) resSet.getResource(getModuleURI(uri),true); addManagedResource(res); } else {//First find in resource set, then create if not found new Empty Resource.
diff --git a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebClassWizardPage.java b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebClassWizardPage.java index 07d9961..47c9247 100644 --- a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebClassWizardPage.java +++ b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebClassWizardPage.java
@@ -62,6 +62,7 @@ import org.eclipse.wst.common.componentcore.ComponentCore; import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants; import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; +import org.eclipse.wst.common.componentcore.resources.IVirtualFile; import org.eclipse.wst.common.frameworks.datamodel.IDataModel; import org.eclipse.wst.common.project.facet.core.IFacetedProject; import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager; @@ -203,7 +204,7 @@ IVirtualComponent component = ComponentCore.createComponent(project); if(component.getRootFolder() != null && component.getRootFolder().getUnderlyingFolder() != null){ - IFile ddXmlFile = component.getRootFolder().getUnderlyingFolder().getFile(new Path(J2EEConstants.WEBAPP_DD_URI)); + IVirtualFile ddXmlFile = component.getRootFolder().getFile(new Path(J2EEConstants.WEBAPP_DD_URI)); if (!ddXmlFile.exists()) { // add a flag into the model to create the DD at the beginning of the operation