[jbosstools-commits] JBoss Tools SVN: r42003 - in branches/jbosstools-3.3.x/esb/plugins/org.jboss.tools.esb.core: src/org/jboss/tools/esb/core/model and 1 other directory.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Fri Jun 15 13:19:11 EDT 2012


Author: scabanovich
Date: 2012-06-15 13:19:11 -0400 (Fri, 15 Jun 2012)
New Revision: 42003

Added:
   branches/jbosstools-3.3.x/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBUtil.java
Modified:
   branches/jbosstools-3.3.x/esb/plugins/org.jboss.tools.esb.core/META-INF/MANIFEST.MF
   branches/jbosstools-3.3.x/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBResourceTree.java
Log:
JBIDE-12082
https://issues.jboss.org/browse/JBIDE-12082
ESB content folder is added to attachment selector.
Merged to 3.3.x

Modified: branches/jbosstools-3.3.x/esb/plugins/org.jboss.tools.esb.core/META-INF/MANIFEST.MF
===================================================================
--- branches/jbosstools-3.3.x/esb/plugins/org.jboss.tools.esb.core/META-INF/MANIFEST.MF	2012-06-15 17:11:28 UTC (rev 42002)
+++ branches/jbosstools-3.3.x/esb/plugins/org.jboss.tools.esb.core/META-INF/MANIFEST.MF	2012-06-15 17:19:11 UTC (rev 42003)
@@ -14,6 +14,10 @@
 Require-Bundle: org.eclipse.core.resources;visibility:=reexport,
  org.jboss.tools.common.model;visibility:=reexport,
  org.eclipse.ui,
- org.jboss.tools.esb.project.core
+ org.jboss.tools.esb.project.core,
+ org.eclipse.wst.common.core,
+ org.eclipse.wst.common.project.facet.core,
+ org.eclipse.wst.common.modulecore,
+ org.eclipse.jst.j2ee
 Bundle-Version: 1.5.0.qualifier
 Bundle-RequiredExecutionEnvironment: J2SE-1.5

Modified: branches/jbosstools-3.3.x/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBResourceTree.java
===================================================================
--- branches/jbosstools-3.3.x/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBResourceTree.java	2012-06-15 17:11:28 UTC (rev 42002)
+++ branches/jbosstools-3.3.x/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBResourceTree.java	2012-06-15 17:19:11 UTC (rev 42003)
@@ -25,6 +25,7 @@
     }
 
 	public XModelObject[] getChildren(XModelObject object) {
+		ESBUtil.updateModel(object.getModel());
 		if(object == getRoot()) {
 			XModelObject[] os = object.getChildren();
 			List<XModelObject> list = new ArrayList<XModelObject>();
@@ -32,6 +33,10 @@
 			if(r != null) {
 				list.add(r);
 			}
+			r = ESBUtil.getESBRoot(model);
+			if(r != null) {
+				list.add(r);
+			}
 			for (int i = 0; i < os.length; i++) {
 				String name = os[i].getAttributeValue(XModelObjectConstants.ATTR_NAME);
 				if(name.startsWith("src")) {

Added: branches/jbosstools-3.3.x/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBUtil.java
===================================================================
--- branches/jbosstools-3.3.x/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBUtil.java	                        (rev 0)
+++ branches/jbosstools-3.3.x/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBUtil.java	2012-06-15 17:19:11 UTC (rev 42003)
@@ -0,0 +1,117 @@
+/******************************************************************************* 
+ * Copyright (c) 2012 Red Hat, Inc. 
+ * Distributed under license by Red Hat, Inc. All rights reserved. 
+ * This program is 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: 
+ * Red Hat, Inc. - initial API and implementation 
+ ******************************************************************************/
+package org.jboss.tools.esb.core.model;
+
+import java.util.ArrayList;
+import java.util.Properties;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Path;
+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.common.project.facet.core.IFacetedProject;
+import org.eclipse.wst.common.project.facet.core.IProjectFacet;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+import org.jboss.tools.common.CommonPlugin;
+import org.jboss.tools.common.model.XModel;
+import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.common.model.XModelObjectConstants;
+import org.jboss.tools.common.model.filesystems.FileSystemsHelper;
+import org.jboss.tools.common.model.filesystems.impl.FileSystemImpl;
+import org.jboss.tools.common.model.util.EclipseResourceUtil;
+import org.jboss.tools.esb.core.facet.IJBossESBFacetDataModelProperties;
+
+/**
+ * 
+ * @author Viacheslav Kabanovich 
+ *
+ */
+public class ESBUtil {
+	static String ESB_CHECKED = "esbChecked"; //$NON-NLS-1$
+	static String ESB_ROOT = "ESB-ROOT"; //$NON-NLS-1$
+	
+	public static XModelObject getESBRoot(XModel model) {
+		return model.getByPath(FileSystemsHelper.FILE_SYSTEMS + "/" + ESB_ROOT); //$NON-NLS-1$
+	}
+
+	public static void updateModel(XModel model) {
+		if("true".equals(model.getProperties().getProperty(ESB_CHECKED))) { //$NON-NLS-1$
+			return;
+		}
+		model.getProperties().setProperty(ESB_CHECKED, "true"); //$NON-NLS-1$
+
+		IProject project = EclipseResourceUtil.getProject(model.getRoot());
+		
+		IContainer[] roots = getESBRootFolders(project, true);
+		
+		if(roots.length == 0) return;
+		
+		IContainer esbContentFolder = roots.length > 1 ? roots[1] : roots[0];
+		if(!esbContentFolder.exists()) {
+			return;
+		}
+
+		String fsLoc = esbContentFolder.getLocation().toString().replace('\\', '/');
+		XModelObject fs = FileSystemsHelper.getFileSystems(model);
+		XModelObject[] cs = fs.getChildren();
+		for (XModelObject c: cs) {
+			if(fsLoc.equals(c.getAttributeValue(XModelObjectConstants.ATTR_NAME_LOCATION))) {
+				String name = c.getAttributeValue(XModelObjectConstants.ATTR_NAME);
+				if(ESB_ROOT.equals(name)) return;
+				if(fsLoc.endsWith("/" + name)) { //$NON-NLS-1$
+					c.setAttributeValue(XModelObjectConstants.ATTR_NAME, ESB_ROOT);
+					return;
+				}
+			}
+		}
+		Properties properties = new Properties();
+		properties.setProperty(XModelObjectConstants.ATTR_NAME_LOCATION, fsLoc);
+		properties.setProperty(XModelObjectConstants.ATTR_NAME, ESB_ROOT);
+		FileSystemImpl s = (FileSystemImpl)model.createModelObject(XModelObjectConstants.ENT_FILE_SYSTEM_FOLDER, properties);
+		fs.addChild(s);
+	}
+
+	public static IContainer[] getESBRootFolders(IProject project, boolean ignoreDerived) {
+		IFacetedProject facetedProject = null;
+		try {
+			facetedProject = ProjectFacetsManager.create(project);
+		} catch (CoreException e) {
+			CommonPlugin.getDefault().logError(e);
+		}
+		IProjectFacet facet = ProjectFacetsManager.getProjectFacet(IJBossESBFacetDataModelProperties.JBOSS_ESB_FACET_ID);
+		if(facet != null && facetedProject!=null && facetedProject.getProjectFacetVersion(facet)!=null) {
+			IVirtualComponent component = ComponentCore.createComponent(project);
+			if(component!=null) {
+				IVirtualFolder webRootVirtFolder = component.getRootFolder().getFolder(new Path("/")); //$NON-NLS-1$
+
+				IContainer[] folders = webRootVirtFolder.getUnderlyingFolders();
+				if(folders.length > 1){
+					ArrayList<IContainer> containers = new ArrayList<IContainer>();
+					for(IContainer container : folders){
+						if(!ignoreDerived || !container.isDerived(IResource.CHECK_ANCESTORS)) {
+							containers.add(container);
+						}
+					}
+					return containers.toArray(new IContainer[containers.size()]);
+				} else {
+					return folders;
+				}
+			}
+		}
+		return EMPTY_ARRAY;
+	}
+
+	private static final IContainer[] EMPTY_ARRAY = new IContainer[0];
+}


Property changes on: branches/jbosstools-3.3.x/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBUtil.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain



More information about the jbosstools-commits mailing list