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"