diff options
author | vbhadrir | 2006-03-15 16:39:52 +0000 |
---|---|---|
committer | vbhadrir | 2006-03-15 16:39:52 +0000 |
commit | d28c3e9f25d0dc6c5bdfb2d54caf3204dba59f87 (patch) | |
tree | b88a06274d37406ded36956d1aa62cee1956df31 | |
parent | cc87e72329754419960e3f7dec8090227e2fdc94 (diff) | |
download | webtools.javaee-d28c3e9f25d0dc6c5bdfb2d54caf3204dba59f87.tar.gz webtools.javaee-d28c3e9f25d0dc6c5bdfb2d54caf3204dba59f87.tar.xz webtools.javaee-d28c3e9f25d0dc6c5bdfb2d54caf3204dba59f87.zip |
[124501] commited for NA
4 files changed, 91 insertions, 2 deletions
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/WtpUtils.java b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/WtpUtils.java index 87e4b877d..0d05c4b26 100644 --- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/WtpUtils.java +++ b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/WtpUtils.java @@ -14,6 +14,7 @@ package org.eclipse.jst.common.project.facet; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProjectDescription; import org.eclipse.core.runtime.CoreException; +import org.eclipse.jem.util.emf.workbench.ProjectUtilities; /** * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a> @@ -56,5 +57,14 @@ public final class WtpUtils replacement[ current.length ] = WTP_NATURE; desc.setNatureIds( replacement ); project.setDescription( desc, null ); + } + + public static void removeNatures( final IProject project ) + + throws CoreException + + { + ProjectUtilities.removeNatureFromProject( project, WTP_NATURE ); + ProjectUtilities.removeNatureFromProject( project, JEM_NATURE ); } } diff --git a/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDelegate.java b/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDelegate.java index 01df2088c..f385e6015 100644 --- a/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDelegate.java +++ b/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDelegate.java @@ -119,7 +119,8 @@ public final class WebFacetInstallDelegate extends J2EEFacetInstallDelegate impl for (int i = 0; i < cp.length; i++) { final IClasspathEntry cpe = cp[i]; if (cpe.getEntryKind() == IClasspathEntry.CPE_SOURCE) { - jsrc.createLink(cpe.getPath().removeFirstSegments(1), 0, null); + if( cpe.getPath().removeFirstSegments(1).segmentCount() > 0 ) + jsrc.createLink(cpe.getPath().removeFirstSegments(1), 0, null); } } @@ -234,7 +235,9 @@ public final class WebFacetInstallDelegate extends J2EEFacetInstallDelegate impl private IPath setContentPropertyIfNeeded(final IDataModel model, final IPath pjpath, IProject project) { IVirtualComponent c = ComponentCore.createComponent(project); if (c.exists()) { - return c.getRootFolder().getUnderlyingResource().getFullPath(); + if( !c.getRootFolder().getProjectRelativePath().isRoot() ){ + return c.getRootFolder().getUnderlyingResource().getFullPath(); + } } return pjpath.append(model.getStringProperty(IJ2EEModuleFacetInstallDataModelProperties.CONFIG_FOLDER)); } diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/UtilityFacetUnInstallDelegate.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/UtilityFacetUnInstallDelegate.java new file mode 100644 index 000000000..a5f3eadca --- /dev/null +++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/UtilityFacetUnInstallDelegate.java @@ -0,0 +1,72 @@ +/****************************************************************************** + * Copyright (c) 2005 BEA Systems, Inc. + * 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: + * Konstantin Komissarchik - initial API and implementation + ******************************************************************************/ + +package org.eclipse.jst.j2ee.project.facet; + +import org.eclipse.core.resources.IContainer; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IFolder; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.Path; +import org.eclipse.jst.common.project.facet.WtpUtils; +import org.eclipse.jst.common.project.facet.core.ClasspathHelper; +import org.eclipse.jst.j2ee.internal.J2EEConstants; +import org.eclipse.wst.common.componentcore.ComponentCore; +import org.eclipse.wst.common.componentcore.internal.StructureEdit; +import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; +import org.eclipse.wst.common.componentcore.resources.IVirtualFolder; +import org.eclipse.wst.common.project.facet.core.IDelegate; +import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion; + +public final class UtilityFacetUnInstallDelegate extends J2EEFacetInstallDelegate implements IDelegate { + + public void execute(final IProject project, final IProjectFacetVersion fv, final Object cfg, final IProgressMonitor monitor) throws CoreException { + if (monitor != null) { + monitor.beginTask("", 1); //$NON-NLS-1$ + } + + try{ + //remove .component file + IFile file = project.getFile( StructureEdit.MODULE_META_FILE_NAME ); + file.delete( true, monitor ); + + //remove manifest file + final IVirtualComponent c = ComponentCore.createComponent(project); + final IVirtualFolder root = c.getRootFolder(); + IContainer container = null; + + if (root.getProjectRelativePath().segmentCount() == 0) { + container = project; + } else { + container = project.getFolder(root.getProjectRelativePath()); + } + + IFile manifestFile = container.getFile(new Path(J2EEConstants.MANIFEST_URI)); + manifestFile.delete( true, monitor ); + + IFolder manifestFolder = container.getFolder( new Path(J2EEConstants.META_INF) ); + manifestFolder.delete( true, monitor ); + + //remove module core nature + WtpUtils.removeNatures( project ); + + //remove server class path container + ClasspathHelper.removeClasspathEntries( project, fv ); + + }finally { + if (monitor != null) { + monitor.done(); + } + } + } +} diff --git a/plugins/org.eclipse.jst.j2ee/plugin.xml b/plugins/org.eclipse.jst.j2ee/plugin.xml index 94de02cb6..2c9b5c1bc 100644 --- a/plugins/org.eclipse.jst.j2ee/plugin.xml +++ b/plugins/org.eclipse.jst.j2ee/plugin.xml @@ -601,6 +601,10 @@ <delegate class="org.eclipse.jst.j2ee.project.facet.UtilityFacetInstallDelegate"/> <config-factory class="org.eclipse.jst.j2ee.project.facet.UtilityFacetInstallDataModelProvider"/> </action> + <action type="uninstall"> + <delegate class="org.eclipse.jst.j2ee.project.facet.UtilityFacetUnInstallDelegate"/> + <config-factory class="org.eclipse.jst.j2ee.project.facet.UtilityFacetInstallDataModelProvider"/> + </action> <event-handler type="RUNTIME_CHANGED"> <delegate class="org.eclipse.jst.j2ee.project.facet.J2EEFacetRuntimeChangedDelegate"/> </event-handler> |