Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvbhadrir2006-03-15 16:39:52 +0000
committervbhadrir2006-03-15 16:39:52 +0000
commitd28c3e9f25d0dc6c5bdfb2d54caf3204dba59f87 (patch)
treeb88a06274d37406ded36956d1aa62cee1956df31
parentcc87e72329754419960e3f7dec8090227e2fdc94 (diff)
downloadwebtools.javaee-d28c3e9f25d0dc6c5bdfb2d54caf3204dba59f87.tar.gz
webtools.javaee-d28c3e9f25d0dc6c5bdfb2d54caf3204dba59f87.tar.xz
webtools.javaee-d28c3e9f25d0dc6c5bdfb2d54caf3204dba59f87.zip
[124501] commited for NA
-rw-r--r--plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/WtpUtils.java10
-rw-r--r--plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDelegate.java7
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/UtilityFacetUnInstallDelegate.java72
-rw-r--r--plugins/org.eclipse.jst.j2ee/plugin.xml4
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>

Back to the top