Author: dennyxu
Date: 2009-08-25 04:52:19 -0400 (Tue, 25 Aug 2009)
New Revision: 17248
Removed:
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/component/
Modified:
trunk/esb/plugins/org.jboss.tools.esb.project.core/META-INF/MANIFEST.MF
trunk/esb/plugins/org.jboss.tools.esb.project.core/plugin.xml
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/ESBProjectConstant.java
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/facet/IJBossESBFacetDataModelProperties.java
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/facet/JBossESBFacetInstallationDelegate.java
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/module/JBossESBModuleDelegate.java
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/module/JBossESBModuleFactory.java
Log:
revert the commit below:
JBIDE-4654:JBossESBFacetInstallationDelegate adds incorrect mapping
JBIDE-4320:ESB Projects does not respect WTP module dependency rules
apply the patches attached in the jiras above
Modified: trunk/esb/plugins/org.jboss.tools.esb.project.core/META-INF/MANIFEST.MF
===================================================================
--- trunk/esb/plugins/org.jboss.tools.esb.project.core/META-INF/MANIFEST.MF 2009-08-25
06:44:12 UTC (rev 17247)
+++ trunk/esb/plugins/org.jboss.tools.esb.project.core/META-INF/MANIFEST.MF 2009-08-25
08:52:19 UTC (rev 17248)
@@ -29,8 +29,7 @@
org.eclipse.jem.util,
org.eclipse.wst.common.emfworkbench.integration,
org.eclipse.emf.ecore,
- org.jboss.ide.eclipse.as.classpath.core,
- org.jboss.ide.eclipse.as.wtp.core;bundle-version="1.0.0"
+ org.jboss.ide.eclipse.as.classpath.core
Bundle-ActivationPolicy: lazy
Bundle-Vendor: %providerName
Export-Package: org.jboss.tools.esb.core,
Modified: trunk/esb/plugins/org.jboss.tools.esb.project.core/plugin.xml
===================================================================
--- trunk/esb/plugins/org.jboss.tools.esb.project.core/plugin.xml 2009-08-25 06:44:12 UTC
(rev 17247)
+++ trunk/esb/plugins/org.jboss.tools.esb.project.core/plugin.xml 2009-08-25 08:52:19 UTC
(rev 17248)
@@ -209,14 +209,4 @@
containerID="org.jboss.esb.runtime.classpath">
</filteredClasspathContainer>
</extension>
-
-
- <extension
- point="org.eclipse.wst.common.modulecore.componentimpl">
- <componentimpl
- typeID="jst.jboss.esb"
- class="org.jboss.tools.esb.core.component.ESBVirtualComponent">
- </componentimpl>
- </extension>
-
</plugin>
Modified:
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/ESBProjectConstant.java
===================================================================
---
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/ESBProjectConstant.java 2009-08-25
06:44:12 UTC (rev 17247)
+++
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/ESBProjectConstant.java 2009-08-25
08:52:19 UTC (rev 17248)
@@ -16,8 +16,6 @@
public final static String ESB_PROJECT_FACET_TEMPLATE =
"template.jst.jboss.esb";
public final static String BUILD_CLASSES = "build/classes";
public final static String META_INF = "META-INF";
- public final static String ESB_CLASS = ""; //put ESB classes into the root of
ESB archive
- public final static String ESB_INF_LIB = "lib";
public final static String ESB_CONFIG_JBOSSESB = "jboss-esb.xml";
public final static String ESB_CONFIG_DEPLOYMENT = "deployment.xml";
@@ -26,7 +24,6 @@
public final static String DEFAULT_ESB_CONFIG_RESOURCE_FOLDER = "esbcontent";
public final static String DEFAULT_ESB_SOURCE_FOLDER = "src";
- public final static String CONTEXTROOT = "context-root";
public final static String ESB_PROJECT_NATURE =
"org.jboss.tools.esb.project.ESBNature";
}
Modified:
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/facet/IJBossESBFacetDataModelProperties.java
===================================================================
---
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/facet/IJBossESBFacetDataModelProperties.java 2009-08-25
06:44:12 UTC (rev 17247)
+++
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/facet/IJBossESBFacetDataModelProperties.java 2009-08-25
08:52:19 UTC (rev 17248)
@@ -27,7 +27,6 @@
public static final QualifiedName QNAME_ESB_CONTENT_FOLDER = new
QualifiedName("jboss", ESB_CONTENT_FOLDER);
public static final QualifiedName QNAME_ESB_SRC_FOLDER = new
QualifiedName("jboss", ESB_SOURCE_FOLDER);
- public static final String ESB_PROJECT_VERSION =
"jboss.esb.project.project.version";
Modified:
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/facet/JBossESBFacetInstallationDelegate.java
===================================================================
---
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/facet/JBossESBFacetInstallationDelegate.java 2009-08-25
06:44:12 UTC (rev 17247)
+++
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/facet/JBossESBFacetInstallationDelegate.java 2009-08-25
08:52:19 UTC (rev 17248)
@@ -11,6 +11,7 @@
package org.jboss.tools.esb.core.facet;
import java.io.ByteArrayInputStream;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import org.eclipse.core.resources.IFile;
@@ -18,14 +19,11 @@
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ProjectScope;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IScopeContext;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
@@ -37,7 +35,6 @@
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
import org.eclipse.wst.common.project.facet.core.IDelegate;
import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.jboss.tools.esb.core.ESBProjectCorePlugin;
public class JBossESBFacetInstallationDelegate implements IDelegate {
@@ -48,11 +45,12 @@
public void execute(IProject project, IProjectFacetVersion fv,
Object config, IProgressMonitor monitor) throws CoreException {
model = (IDataModel) config;
- final IJavaProject jproj = JavaCore.create(project);
createProjectStructure(project);
+
+
+ final IJavaProject jproj = JavaCore.create(project);
-
// Add WTP natures.
WtpUtils.addNatures(project);
@@ -64,26 +62,31 @@
} catch (Exception e) {
c = ComponentCore.createComponent(project);
}
-
- String outputLoc = jproj.readOutputLocation().removeFirstSegments(1).toString();
+
+
c.create(0, null);
- c.setMetaProperty("java-output-path", outputLoc);
+ //String esbContent =
model.getStringProperty(IJBossESBFacetDataModelProperties.ESB_CONTENT_FOLDER);
+ c.setMetaProperty("java-output-path", "/build/classes/");
final IVirtualFolder jbiRoot = c.getRootFolder();
- // Map the esbcontent to root for deploy
- String resourcesFolder = model.getStringProperty(
- IJBossESBFacetDataModelProperties.ESB_CONTENT_FOLDER);
+ // Create directory structure
+ /*String srcFolder = null;
+ srcFolder = model
+ .getStringProperty(IJBossESBFacetDataModelProperties.ESB_SOURCE_FOLDER);
+ jbiRoot.createLink(new Path("/" + srcFolder), 0, null);*/
+ String resourcesFolder = model
+ .getStringProperty(IJBossESBFacetDataModelProperties.ESB_CONTENT_FOLDER);
jbiRoot.createLink(new Path("/" + resourcesFolder), 0, null);
- final IVirtualFolder jsrc = c.getRootFolder().getFolder("/"); //$NON-NLS-1$
- final IClasspathEntry[] cp2 = jproj.getRawClasspath();
- for (int i = 0; i < cp2.length; i++) {
- final IClasspathEntry cpe = cp2[i];
+ final IVirtualFolder jsrc = c.getRootFolder().getFolder("/esbcontent");
//$NON-NLS-1$
+ final IClasspathEntry[] cp = jproj.getRawClasspath();
+ for (int i = 0; i < cp.length; i++) {
+ final IClasspathEntry cpe = cp[i];
if (cpe.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
if( cpe.getPath().removeFirstSegments(1).segmentCount() > 0 )
- jsrc.createLink(new Path(outputLoc), 0, null);
+ jsrc.createLink(cpe.getPath().removeFirstSegments(1), 0, null);
}
}
@@ -99,6 +102,11 @@
ClasspathHelper.removeClasspathEntries(project, fv);
ClasspathHelper.addClasspathEntries(project, fv);
+
+ //String prjName =
model.getStringProperty(IFacetDataModelProperties.FACET_PROJECT_NAME);
+ //IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(prjName);
+
+
}
private IFile createJBossESBXML(IFolder folder) throws CoreException{
@@ -118,13 +126,6 @@
private void createProjectStructure(IProject project) throws CoreException{
String strContentFolder =
model.getStringProperty(IJBossESBFacetDataModelProperties.ESB_CONTENT_FOLDER);
project.setPersistentProperty(IJBossESBFacetDataModelProperties.QNAME_ESB_CONTENT_FOLDER,
strContentFolder);
-
- String qualifier =
ESBProjectCorePlugin.getDefault().getDescriptor().getUniqueIdentifier();
- IScopeContext context = new ProjectScope(project);
- IEclipsePreferences node = context.getNode(qualifier);
- if (node != null)
- node.putDouble(IJBossESBFacetDataModelProperties.ESB_PROJECT_VERSION, 2.0);
-
IFolder esbContent = project.getFolder(strContentFolder);
if(!esbContent.exists()) {
esbContent.create(true, true, null);
Modified:
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/module/JBossESBModuleDelegate.java
===================================================================
---
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/module/JBossESBModuleDelegate.java 2009-08-25
06:44:12 UTC (rev 17247)
+++
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/module/JBossESBModuleDelegate.java 2009-08-25
08:52:19 UTC (rev 17248)
@@ -14,51 +14,41 @@
import java.util.List;
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.resources.ProjectScope;
+import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IScopeContext;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.wst.common.componentcore.ComponentCore;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
+import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.model.IModuleResource;
-import org.jboss.ide.eclipse.as.wtp.core.modules.IJBTModule;
-import org.jboss.ide.eclipse.as.wtp.core.modules.JBTProjectModuleDelegate;
-import org.jboss.tools.esb.core.ESBProjectCorePlugin;
+import org.eclipse.wst.server.core.util.ModuleFile;
+import org.eclipse.wst.server.core.util.ModuleFolder;
+import org.eclipse.wst.server.core.util.ProjectModule;
import org.jboss.tools.esb.core.StatusUtils;
-import org.jboss.tools.esb.core.facet.IJBossESBFacetDataModelProperties;
-public class JBossESBModuleDelegate extends JBTProjectModuleDelegate implements
IJBTModule {
+public class JBossESBModuleDelegate extends ProjectModule {
public JBossESBModuleDelegate(IProject project){
super(project);
}
+ @Override
+ public IModule[] getChildModules() {
+ return null;
+ }
public IModuleResource[] members() throws CoreException {
- IProject p = getProject();
- String qualifier =
ESBProjectCorePlugin.getDefault().getDescriptor().getUniqueIdentifier();
- IScopeContext context = new ProjectScope(p);
- IEclipsePreferences node = context.getNode(qualifier);
- if (node != null) {
- double d = node.getDouble(IJBossESBFacetDataModelProperties.ESB_PROJECT_VERSION,
1.0);
- if( d >= 2.0 )
- return super.members();
- }
- return legacyMembers();
- }
-
- public IModuleResource[] legacyMembers() throws CoreException {
IProject project = getProject();
final IVirtualComponent c = ComponentCore.createComponent(project);
IVirtualFolder vf = c.getRootFolder();
IContainer[] folders = vf.getUnderlyingFolders();
-
if(folders == null || folders.length == 0){
throw new CoreException(StatusUtils.errorStatus("The project is not a valid JBoss
ESB project."));
}
@@ -67,8 +57,8 @@
//in the JBT CR1, the length of folders will be 1.
IContainer contentFolder = folders.length > 1? folders[1] : folders[0];
- IFolder configFolder = getProject().getFolder(contentFolder.getProjectRelativePath());
- IJavaProject javaPrj = JavaCore.create(getProject());
+ IFolder configFolder = project.getFolder(contentFolder.getProjectRelativePath());
+ IJavaProject javaPrj = JavaCore.create(project);
IPath output = javaPrj.getOutputLocation();
// if the jboss-esb.xml file is not in META-INF folder, try to get it from other folder
of the project
// block this logic as Max's suggestion
@@ -77,7 +67,7 @@
List<IModuleResource> mrs = new ArrayList<IModuleResource>();
IModuleResource[] esbContent = getModuleResources(Path.EMPTY, configFolder);
- IModuleResource[] classes = getModuleResources(Path.EMPTY,
getProject().getWorkspace().getRoot().getFolder(output));
+ IModuleResource[] classes = getModuleResources(Path.EMPTY,
project.getWorkspace().getRoot().getFolder(output));
IModuleResource[] allResource = new IModuleResource[esbContent.length + classes.length
+ mrs.size()];
System.arraycopy(esbContent, 0, allResource, 0, esbContent.length);
System.arraycopy(classes, 0, allResource, esbContent.length, classes.length);
@@ -87,9 +77,40 @@
}
return allResource;
}
+
+
+
+ @Override
+ public IStatus validate() {
+ return null;
+ }
@Override
- protected String getFactoryId() {
- return JBossESBModuleFactory.FACTORY_ID;
+ protected IModuleResource[] getModuleResources(IPath path, IContainer container) throws
CoreException {
+
+ IResource[] resources = container.members();
+ if (resources != null) {
+ int size = resources.length;
+ List<IModuleResource> list = new ArrayList<IModuleResource>(size);
+ for (int i = 0; i < size; i++) {
+ IResource resource = resources[i];
+ if (resource != null && resource.exists()) {
+ String name = resource.getName();
+ if (resource instanceof IContainer) {
+ IContainer container2 = (IContainer) resource;
+ ModuleFolder mf = new ModuleFolder(container2, name, path);
+ mf.setMembers(getModuleResources(path.append(name), container2));
+ list.add(mf);
+ } else if (resource instanceof IFile) {
+ list.add(new ModuleFile((IFile) resource, name, path));
+ }
+ }
+ }
+ IModuleResource[] moduleResources = new IModuleResource[list.size()];
+ list.toArray(moduleResources);
+ return moduleResources;
+ }
+ return new IModuleResource[0];
}
+
}
Modified:
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/module/JBossESBModuleFactory.java
===================================================================
---
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/module/JBossESBModuleFactory.java 2009-08-25
06:44:12 UTC (rev 17247)
+++
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/module/JBossESBModuleFactory.java 2009-08-25
08:52:19 UTC (rev 17248)
@@ -10,29 +10,92 @@
******************************************************************************/
package org.jboss.tools.esb.core.module;
+import java.util.HashMap;
+
import org.eclipse.core.resources.IProject;
-import org.jboss.ide.eclipse.as.wtp.core.modules.JBTProjectModuleDelegate;
-import org.jboss.ide.eclipse.as.wtp.core.modules.JBTProjectModuleFactory;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+import org.eclipse.wst.common.project.facet.core.IProjectFacet;
+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.internal.ModuleFactory;
+import org.eclipse.wst.server.core.internal.ServerPlugin;
+import org.eclipse.wst.server.core.model.ModuleDelegate;
+import org.eclipse.wst.server.core.util.ProjectModuleFactoryDelegate;
import org.jboss.tools.esb.core.ESBProjectConstant;
+import org.jboss.tools.esb.core.ESBProjectCorePlugin;
import org.jboss.tools.esb.core.facet.IJBossESBFacetDataModelProperties;
-public class JBossESBModuleFactory extends JBTProjectModuleFactory {
+public class JBossESBModuleFactory extends ProjectModuleFactoryDelegate {
public static final String FACTORY_ID =
"org.jboss.tools.esb.project.core.moduleFactory";
public static final String MODULE_TYPE =
IJBossESBFacetDataModelProperties.JBOSS_ESB_FACET_ID;
+ public static final String MODULE_ID_PREFIX =
IJBossESBFacetDataModelProperties.JBOSS_ESB_FACET_ID + ".";
+ private static ModuleFactory factory;
private static JBossESBModuleFactory factDelegate;
public static JBossESBModuleFactory getFactory() {
- if (factDelegate == null)
- factDelegate = (JBossESBModuleFactory)getFactory(FACTORY_ID);
+ if (factDelegate == null) {
+ ModuleFactory[] factories = ServerPlugin.getModuleFactories();
+ for (int i = 0; i < factories.length; i++) {
+ if (factories[i].getId().equals(FACTORY_ID)) {
+ Object o = factories[i]
+ .getDelegate(new NullProgressMonitor());
+ if (o instanceof JBossESBModuleFactory) {
+ factory = factories[i];
+ factDelegate = (JBossESBModuleFactory) o;
+ return factDelegate;
+ }
+ }
+ }
+ }
return factDelegate;
}
+
+ private HashMap<IModule, JBossESBModuleDelegate> moduleToDelegate;
public JBossESBModuleFactory() {
- super(MODULE_TYPE, ESBProjectConstant.ESB_PROJECT_FACET);
+ moduleToDelegate = new HashMap<IModule, JBossESBModuleDelegate>();
}
- protected JBTProjectModuleDelegate createDelegate(IProject project) {
- return new JBossESBModuleDelegate(project);
+ @Override
+ protected void clearCache(IProject project) {
+ super.clearCache(project);
+ moduleToDelegate.remove(project);
}
+
+ @Override
+ public ModuleDelegate getModuleDelegate(IModule module) {
+ return moduleToDelegate.get(module);
+ }
+ protected IModule[] createModules(IProject project) {
+ IFacetedProject facetProject;
+ try {
+ facetProject = ProjectFacetsManager.create(project);
+ if (facetProject == null) {
+ return null;
+ }
+ IProjectFacet esbFacet = ProjectFacetsManager
+ .getProjectFacet(ESBProjectConstant.ESB_PROJECT_FACET);
+
+ if (facetProject.hasProjectFacet(esbFacet)) {
+ IProjectFacetVersion version = facetProject.getProjectFacetVersion(esbFacet);
+ IModule module = createModule(
+ MODULE_ID_PREFIX + project.getName(),
+ project.getName(),
+ MODULE_TYPE,
+ version.getVersionString(),
+ project);
+ moduleToDelegate.put(module, new JBossESBModuleDelegate(project));
+ return new IModule[] { module };
+ }
+ } catch (CoreException e) {
+ ESBProjectCorePlugin.getDefault().getLog().log(e.getStatus());
+ }
+ return null;
+
+ }
+
}