[jbosstools-commits] JBoss Tools SVN: r42002 - in trunk/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:11:29 EDT 2012
Author: scabanovich
Date: 2012-06-15 13:11:28 -0400 (Fri, 15 Jun 2012)
New Revision: 42002
Added:
trunk/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBUtil.java
Modified:
trunk/esb/plugins/org.jboss.tools.esb.core/META-INF/MANIFEST.MF
trunk/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.
Modified: trunk/esb/plugins/org.jboss.tools.esb.core/META-INF/MANIFEST.MF
===================================================================
--- trunk/esb/plugins/org.jboss.tools.esb.core/META-INF/MANIFEST.MF 2012-06-15 15:20:33 UTC (rev 42001)
+++ trunk/esb/plugins/org.jboss.tools.esb.core/META-INF/MANIFEST.MF 2012-06-15 17:11:28 UTC (rev 42002)
@@ -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: trunk/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBResourceTree.java
===================================================================
--- trunk/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBResourceTree.java 2012-06-15 15:20:33 UTC (rev 42001)
+++ trunk/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)
@@ -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: trunk/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBUtil.java
===================================================================
--- trunk/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBUtil.java (rev 0)
+++ trunk/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBUtil.java 2012-06-15 17:11:28 UTC (rev 42002)
@@ -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: trunk/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