More plugin cleanup/server fixing
diff --git a/plugins/org.eclipse.jst.j2ee.jca/rarproject/org/eclipse/jst/j2ee/internal/jca/operations/ConnectorModuleCreationDataModel.java b/plugins/org.eclipse.jst.j2ee.jca/rarproject/org/eclipse/jst/j2ee/internal/jca/operations/ConnectorModuleCreationDataModel.java
index e00180b..75cdc40 100644
--- a/plugins/org.eclipse.jst.j2ee.jca/rarproject/org/eclipse/jst/j2ee/internal/jca/operations/ConnectorModuleCreationDataModel.java
+++ b/plugins/org.eclipse.jst.j2ee.jca/rarproject/org/eclipse/jst/j2ee/internal/jca/operations/ConnectorModuleCreationDataModel.java
@@ -49,17 +49,16 @@
 	 * Creates an Connector project with the specified name and version in the specified location.
 	 * 
 	 * @param projectName
-	 *            The name of the Enterprise Application project to create.
+	 *            The name of the Connector project to create.
 	 * @param projectLocation
 	 *            Sets the local file system location for the described project. The path must be
 	 *            either an absolute file system path, or a relative path whose first segment is the
 	 *            name of a defined workspace path variable. If <code>null</code> is specified,
 	 *            the default location is used.
 	 * @param connectorModuleVersion
-	 *            Sets the J2EE Version for the descibed project. The version must be one of
-	 *            <code>J2EEVersionConstants.J2EE_1_2_ID</code>,
-	 *            <code>J2EEVersionConstants.J2EE_1_3_ID</code>, or
-	 *            <code>J2EEVersionConstants.J2EE_1_4_ID</code>.
+	 *            Sets the JCA Version for the descibed project. The version must be either
+	 *            <code>J2EEVersionConstants.JCA_1_0_ID</code> or
+	 *            <code>J2EEVersionConstants.JCA_1_5_ID</code>.
 	 * @since WTP 1.0
 	 */
 	public static void createProject(String projectName, IPath projectLocation, int connectorModuleVersion) {
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EEProjectUtilities.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EEProjectUtilities.java
index 4746c3c..bd44ba9 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EEProjectUtilities.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EEProjectUtilities.java
@@ -37,6 +37,7 @@
 import org.eclipse.jdt.core.JavaModelException;
 import org.eclipse.jem.java.JavaClass;
 import org.eclipse.jem.java.JavaRefFactory;
+import org.eclipse.jst.j2ee.applicationclient.creation.IApplicationClientNatureConstants;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.EARFile;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.EJBJarFile;
@@ -49,6 +50,7 @@
 import org.eclipse.jst.j2ee.commonarchivecore.internal.util.ArchiveUtil;
 import org.eclipse.jst.j2ee.ejb.EJBJar;
 import org.eclipse.jst.j2ee.ejb.EnterpriseBean;
+import org.eclipse.jst.j2ee.internal.J2EEConstants;
 import org.eclipse.jst.j2ee.internal.archive.operations.JavaProjectLoadStrategyImpl;
 import org.eclipse.jst.j2ee.internal.earcreation.EAREditModel;
 import org.eclipse.jst.j2ee.internal.earcreation.EARNatureRuntime;
@@ -481,7 +483,7 @@
 				// check if it contains /META-INF/MANIFEST.MF
 				IPath sourceFolderPath = cp[i].getPath().removeFirstSegments(1);
 				IFolder sourceFolder = p.getFolder(sourceFolderPath);
-				if (sourceFolder.findMember("/META-INF/MANIFEST.MF") != null) { //$NON-NLS-1$
+				if (isSourceFolderAnInputContainer(sourceFolder)) {
 					found = true;
 					if (firstSource == null) {
 						firstSource = cp[i];
@@ -512,5 +514,35 @@
 			return firstSource.getPath().removeFirstSegments(1);
 		return null;
 	}
+	
+	public static boolean isSourceFolderAnInputContainer(IFolder sourceFolder) {
+		IContainer parent = sourceFolder;
+		while (true) {
+			parent = parent.getParent();
+			if (parent == null)
+				return false;
+			if (parent instanceof IProject)
+				break;
+		}
+		IProject project = (IProject)parent;
+		try {
+			IProjectDescription desc = project.getDescription();
+			if (desc.hasNature(IEJBNatureConstants.NATURE_ID)) {
+				return sourceFolder.findMember(J2EEConstants.EJBJAR_DD_URI) != null;
+			}
+			else if (desc.hasNature(IApplicationClientNatureConstants.NATURE_ID)) {
+				return sourceFolder.findMember(J2EEConstants.APP_CLIENT_DD_URI) != null;
+			}
+			else if (desc.hasNature(IWebNatureConstants.J2EE_NATURE_ID)) {
+				return sourceFolder.findMember(J2EEConstants.WEBAPP_DD_URI) != null;
+			}
+			else if (desc.hasNature(IConnectorNatureConstants.NATURE_ID)) {
+				return sourceFolder.findMember(J2EEConstants.RAR_DD_URI) != null;
+			}
+		} catch (CoreException e) {
+			e.printStackTrace();
+		}
+		return false;
+	}
 
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EEWorkbenchURIConverterImpl.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EEWorkbenchURIConverterImpl.java
index 948cf48..52707fc 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EEWorkbenchURIConverterImpl.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EEWorkbenchURIConverterImpl.java
@@ -174,7 +174,7 @@
 				IContainer container = (IContainer)list.get(i);
 				if (container instanceof IFolder) {
 					IFolder sourceFolder = (IFolder)container;
-					if (sourceFolder.findMember("/META-INF/MANIFEST.MF") != null) { //$NON-NLS-1$
+					if (J2EEProjectUtilities.isSourceFolderAnInputContainer(sourceFolder)) {
 						return sourceFolder;
 					}
 				}
diff --git a/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deployables/J2EEDeployableFactory.java b/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deployables/J2EEDeployableFactory.java
index a47c2ea..0de392c 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deployables/J2EEDeployableFactory.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deployables/J2EEDeployableFactory.java
@@ -11,8 +11,10 @@
 package org.eclipse.jst.j2ee.internal.deployables;
 
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResourceDelta;
 import org.eclipse.jst.j2ee.internal.project.J2EENature;
 import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.model.ModuleDelegate;
 import org.eclipse.wst.server.core.util.ProjectModule;
 import org.eclipse.wst.server.core.util.ProjectModuleFactoryDelegate;
 
@@ -71,4 +73,16 @@
 	 * @return com.ibm.etools.server.core.model.IProjectModule
 	 */
 	public abstract IModule createModule(J2EENature nature);
+    /* (non-Javadoc)
+     * @see org.eclipse.wst.server.core.util.ProjectModuleFactoryDelegate#handleProjectChange(org.eclipse.core.resources.IProject, org.eclipse.core.resources.IResourceDelta)
+     */
+    protected void handleProjectChange(IProject project, IResourceDelta delta) {
+        if (projects == null)
+            cacheModules();
+        super.handleProjectChange(project, delta);
+    }
+    /* (non-Javadoc)
+     * @see org.eclipse.wst.server.core.model.ModuleFactoryDelegate#getModuleDelegate(org.eclipse.wst.server.core.IModule)
+     */
+
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deployables/LooseArchiveDeployableFactory.java b/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deployables/LooseArchiveDeployableFactory.java
index 3a938c1..923924c 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deployables/LooseArchiveDeployableFactory.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deployables/LooseArchiveDeployableFactory.java
@@ -10,6 +10,7 @@
 
 
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResourceDelta;
 import org.eclipse.jdt.core.JavaCore;
 import org.eclipse.jst.j2ee.internal.project.IWebNatureConstants;
 import org.eclipse.wst.server.core.IModule;
@@ -75,5 +76,10 @@
         // TODO Auto-generated method stub
         return null;
     }
+    protected void handleProjectChange(IProject project, IResourceDelta delta) {
+        if (projects == null)
+            cacheModules();
+        super.handleProjectChange(project, delta);
+    }
 
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.j2ee/plugin.xml b/plugins/org.eclipse.jst.j2ee/plugin.xml
index 1e0b99d..31e796a 100644
--- a/plugins/org.eclipse.jst.j2ee/plugin.xml
+++ b/plugins/org.eclipse.jst.j2ee/plugin.xml
@@ -452,7 +452,7 @@
       </adapterFactory>
    </extension>
    <extension
-         point="org.eclipse.wst.common.frameworks.internals.ExtendableOperation">
+         point="org.eclipse.wst.common.frameworks.ExtendableOperation">
       <extendableOperation
             class="org.eclipse.jst.j2ee.internal.reference.MessageDestReferenceCreationOperation"
             id="org.eclipse.jst.j2ee.internal.reference.MessageDestReferenceCreationOperation">
@@ -464,7 +464,7 @@
 <!-- ==================================================================== -->
    
    <extension
-         point="org.eclipse.wst.server.core.moduleObjectAdapters">
+         point="org.eclipse.wst.server.core.moduleArtifactAdapters">
       <moduleObjectAdapter
             objectClass="org.eclipse.jst.j2ee.application.Application"
             class="org.eclipse.jst.j2ee.internal.deployables.EnterpriseApplicationDeployableObjectAdapter"