Remove dependency toward some PDE internal classes.
diff --git a/org.eclipse.virgo.ide.runtime.ui/src/org/eclipse/virgo/ide/runtime/internal/ui/providers/RuntimeActionProvider.java b/org.eclipse.virgo.ide.runtime.ui/src/org/eclipse/virgo/ide/runtime/internal/ui/providers/RuntimeActionProvider.java
index c3bf618..f470419 100644
--- a/org.eclipse.virgo.ide.runtime.ui/src/org/eclipse/virgo/ide/runtime/internal/ui/providers/RuntimeActionProvider.java
+++ b/org.eclipse.virgo.ide.runtime.ui/src/org/eclipse/virgo/ide/runtime/internal/ui/providers/RuntimeActionProvider.java
@@ -15,14 +15,16 @@
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.mapping.ResourceMapping;
+import org.eclipse.core.runtime.Assert;
 import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.PlatformObject;
 import org.eclipse.jface.action.GroupMarker;
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.IActionBars;
 import org.eclipse.ui.actions.OpenWithMenu;
-import org.eclipse.ui.internal.navigator.AdaptabilityUtility;
 import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorMessages;
 import org.eclipse.ui.navigator.CommonActionProvider;
 import org.eclipse.ui.navigator.ICommonActionConstants;
@@ -91,10 +93,11 @@
         Object o = ss.getFirstElement();
 
         // first try IResource
-        IAdaptable openable = (IAdaptable) AdaptabilityUtility.getAdapter(o, IResource.class);
+        Platform.getAdapterManager().getAdapter(o, IResource.class);
+        IAdaptable openable = (IAdaptable) getAdapter(o, IResource.class);
         // otherwise try ResourceMapping
         if (openable == null) {
-            openable = (IAdaptable) AdaptabilityUtility.getAdapter(o, ResourceMapping.class);
+            openable = (IAdaptable) getAdapter(o, ResourceMapping.class);
         } else if (((IResource) openable).getType() != IResource.FILE) {
             openable = null;
         }
@@ -113,4 +116,43 @@
             }
         }
     }
+
+    /**
+     * <p>
+     * Returns an adapter of the requested type (anAdapterType)
+     *
+     * @param anElement The element to adapt, which may or may not implement {@link IAdaptable}, or null
+     * @param anAdapterType The class type to return
+     * @return An adapter of the requested type or null
+     */
+    public static Object getAdapter(Object anElement, Class anAdapterType) {
+        Assert.isNotNull(anAdapterType);
+        if (anElement == null) {
+            return null;
+        }
+        if (anAdapterType.isInstance(anElement)) {
+            return anElement;
+        }
+
+        if (anElement instanceof IAdaptable) {
+            IAdaptable adaptable = (IAdaptable) anElement;
+
+            Object result = adaptable.getAdapter(anAdapterType);
+            if (result != null) {
+                // Sanity-check
+                Assert.isTrue(anAdapterType.isInstance(result));
+                return result;
+            }
+        }
+
+        if (!(anElement instanceof PlatformObject)) {
+            Object result = Platform.getAdapterManager().getAdapter(anElement, anAdapterType);
+            if (result != null) {
+                return result;
+            }
+        }
+
+        return null;
+    }
+
 }
diff --git a/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleExecutionEnvironmentSection.java b/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleExecutionEnvironmentSection.java
index 391e1b7..7104f14 100644
--- a/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleExecutionEnvironmentSection.java
+++ b/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleExecutionEnvironmentSection.java
@@ -20,10 +20,12 @@
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.Separator;
 import org.eclipse.jface.preference.PreferenceDialog;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.window.Window;
 import org.eclipse.pde.core.IModelChangedEvent;
 import org.eclipse.pde.core.plugin.IPluginModelBase;
@@ -40,7 +42,6 @@
 import org.eclipse.pde.internal.ui.editor.TableSection;
 import org.eclipse.pde.internal.ui.editor.context.InputContextManager;
 import org.eclipse.pde.internal.ui.editor.plugin.BundleInputContext;
-import org.eclipse.pde.internal.ui.elements.DefaultTableProvider;
 import org.eclipse.pde.internal.ui.parts.EditableTablePart;
 import org.eclipse.pde.internal.ui.parts.TablePart;
 import org.eclipse.swt.SWT;
@@ -105,7 +106,13 @@
         }
     }
 
-    class ContentProvider extends DefaultTableProvider {
+    class ContentProvider implements IStructuredContentProvider {
+
+        public void dispose() {
+        }
+
+        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+        }
 
         public Object[] getElements(Object inputElement) {
             if (inputElement instanceof IBundleModel) {
diff --git a/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleImportLibrarySection.java b/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleImportLibrarySection.java
index 0a22996..0ad59a8 100644
--- a/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleImportLibrarySection.java
+++ b/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleImportLibrarySection.java
@@ -17,15 +17,16 @@
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ITableLabelProvider;
 import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.window.Window;
 import org.eclipse.pde.internal.ui.PDEPlugin;
 import org.eclipse.pde.internal.ui.PDEPluginImages;
 import org.eclipse.pde.internal.ui.PDEUIMessages;
 import org.eclipse.pde.internal.ui.editor.PDEFormPage;
-import org.eclipse.pde.internal.ui.elements.DefaultTableProvider;
 import org.eclipse.pde.internal.ui.util.SWTUtil;
 import org.eclipse.swt.custom.BusyIndicator;
 import org.eclipse.swt.graphics.Image;
@@ -67,7 +68,13 @@
         getTablePart().setEditable(false);
     }
 
-    class ImportLibraryContentProvider extends DefaultTableProvider {
+    class ImportLibraryContentProvider implements IStructuredContentProvider {
+
+        public void dispose() {
+        }
+
+        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+        }
 
         public Object[] getElements(Object parent) {
             ImportLibraryHeader header = (ImportLibraryHeader) getBundle().getManifestHeader(IHeaderConstants.IMPORT_LIBRARY);
diff --git a/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleImportPackageSection.java b/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleImportPackageSection.java
index 5a5faaa..01efedc 100644
--- a/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleImportPackageSection.java
+++ b/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleImportPackageSection.java
@@ -23,9 +23,11 @@
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.viewers.IContentProvider;
 import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ITableLabelProvider;
 import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.window.Window;
 import org.eclipse.osgi.service.resolver.ExportPackageDescription;
 import org.eclipse.pde.core.IBaseModel;
@@ -38,7 +40,6 @@
 import org.eclipse.pde.internal.ui.PDEPlugin;
 import org.eclipse.pde.internal.ui.PDEUIMessages;
 import org.eclipse.pde.internal.ui.editor.PDEFormPage;
-import org.eclipse.pde.internal.ui.elements.DefaultTableProvider;
 import org.eclipse.pde.internal.ui.util.SWTUtil;
 import org.eclipse.swt.custom.BusyIndicator;
 import org.eclipse.swt.graphics.Image;
@@ -411,7 +412,13 @@
         }
     }
 
-    class ImportPackageContentProvider extends DefaultTableProvider {
+    class ImportPackageContentProvider implements IStructuredContentProvider {
+
+        public void dispose() {
+        }
+
+        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+        }
 
         public Object[] getElements(Object parent) {
             ImportPackageHeader header = (ImportPackageHeader) getBundle().getManifestHeader(Constants.IMPORT_PACKAGE);
diff --git a/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleImportSection.java b/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleImportSection.java
index fe170a6..51e1b80 100644
--- a/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleImportSection.java
+++ b/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleImportSection.java
@@ -17,15 +17,16 @@
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ITableLabelProvider;
 import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.window.Window;
 import org.eclipse.pde.internal.ui.PDEPlugin;
 import org.eclipse.pde.internal.ui.PDEPluginImages;
 import org.eclipse.pde.internal.ui.PDEUIMessages;
 import org.eclipse.pde.internal.ui.editor.PDEFormPage;
-import org.eclipse.pde.internal.ui.elements.DefaultTableProvider;
 import org.eclipse.pde.internal.ui.util.SWTUtil;
 import org.eclipse.swt.custom.BusyIndicator;
 import org.eclipse.swt.graphics.Image;
@@ -67,7 +68,13 @@
         getTablePart().setEditable(false);
     }
 
-    class ImportBundleContentProvider extends DefaultTableProvider {
+    class ImportBundleContentProvider implements IStructuredContentProvider {
+
+        public void dispose() {
+        }
+
+        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+        }
 
         public Object[] getElements(Object parent) {
             ImportBundleHeader header = (ImportBundleHeader) getBundle().getManifestHeader(IHeaderConstants.IMPORT_BUNDLE);
diff --git a/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleLibrarySection.java b/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleLibrarySection.java
index 610fc09..ea28c59 100644
--- a/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleLibrarySection.java
+++ b/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/BundleLibrarySection.java
@@ -60,7 +60,6 @@
 import org.eclipse.pde.internal.ui.editor.plugin.BundleInputContext;
 import org.eclipse.pde.internal.ui.editor.plugin.JarSelectionValidator;
 import org.eclipse.pde.internal.ui.editor.plugin.NewRuntimeLibraryDialog;
-import org.eclipse.pde.internal.ui.elements.DefaultContentProvider;
 import org.eclipse.pde.internal.ui.parts.EditableTablePart;
 import org.eclipse.pde.internal.ui.parts.TablePart;
 import org.eclipse.pde.internal.ui.util.SWTUtil;
@@ -133,7 +132,13 @@
         }
     }
 
-    class TableContentProvider extends DefaultContentProvider implements IStructuredContentProvider {
+    class TableContentProvider implements IStructuredContentProvider {
+
+        public void dispose() {
+        }
+
+        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+        }
 
         public Object[] getElements(Object parent) {
             return getModel().getPluginBase().getLibraries();
diff --git a/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/SpringBundleSourcePage.java b/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/SpringBundleSourcePage.java
index e5408cf..221f85a 100644
--- a/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/SpringBundleSourcePage.java
+++ b/org.eclipse.virgo.ide.ui/src/org/eclipse/virgo/ide/ui/editors/SpringBundleSourcePage.java
@@ -28,6 +28,7 @@
 import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.pde.core.IBaseModel;
 import org.eclipse.pde.core.plugin.IPluginLibrary;
 import org.eclipse.pde.core.plugin.IPluginModelBase;
@@ -62,7 +63,6 @@
 import org.eclipse.pde.internal.ui.editor.text.ChangeAwareSourceViewerConfiguration;
 import org.eclipse.pde.internal.ui.editor.text.IColorManager;
 import org.eclipse.pde.internal.ui.editor.text.ReconcilingStrategy;
-import org.eclipse.pde.internal.ui.elements.DefaultContentProvider;
 import org.eclipse.pde.internal.ui.util.SharedLabelProvider;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.ui.forms.editor.FormEditor;
@@ -284,7 +284,13 @@
         return super.findRange();
     }
 
-    private class SpringBundleOutlineContentProvider extends DefaultContentProvider implements ITreeContentProvider {
+    private class SpringBundleOutlineContentProvider implements ITreeContentProvider {
+
+        public void dispose() {
+        }
+
+        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+        }
 
         public Object[] getChildren(Object parent) {
             // Need an identifying class for label provider
diff --git a/org.eclipse.virgo.ide/NeonTargetPlatform-Linux.target b/org.eclipse.virgo.ide/NeonTargetPlatform-Linux.target
new file mode 100644
index 0000000..04ffa4e
--- /dev/null
+++ b/org.eclipse.virgo.ide/NeonTargetPlatform-Linux.target
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.8"?><target includeMode="feature" name="Virgo Target" sequenceNumber="83">
+<locations>
+<location path="${eclipse_home}" type="Profile"/>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.virgo.kernel.springintegration.feature.group" version="3.7.0.D-20150624084347"/>
+<unit id="org.eclipse.virgo.nano.mbeans.feature.group" version="3.7.0.D-20150624084347"/>
+<unit id="org.eclipse.virgo.kernel.httpservice.feature.group" version="3.7.0.D-20150624084347"/>
+<unit id="org.eclipse.virgo.shell.feature.group" version="3.7.0.D-20150624084347"/>
+<unit id="org.eclipse.virgo.medic.feature.group" version="3.7.0.D-20150624084347"/>
+<unit id="org.eclipse.virgo.ds.feature.group" version="1.4.0.v20120112-1400"/>
+<unit id="org.eclipse.virgo.core.feature.group" version="3.7.0.D-20150624084347"/>
+<unit id="org.eclipse.virgo.kernel.feature.group" version="3.7.0.D-20150624084347"/>
+<unit id="org.eclipse.virgo.simpleconfigurator.feature.group" version="3.7.0.D-20150624084347"/>
+<unit id="org.eclipse.virgo.management.feature.group" version="3.7.0.D-20150624084347"/>
+<unit id="org.eclipse.equinox.regions.feature.group" version="1.1.0.v20120319-1602"/>
+<unit id="org.eclipse.virgo.springdm.feature.group" version="2.0.0.M02"/>
+<repository location="http://download.eclipse.org/virgo/snapshots/3.7/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.libra.framework.feature.feature.group" version="0.3.1.201405141436"/>
+<unit id="org.eclipse.libra.framework.editor.feature.feature.group" version="0.3.1.201405141436"/>
+<unit id="org.eclipse.libra.framework.feature.source.feature.group" version="0.3.1.201405141436"/>
+<unit id="org.eclipse.libra.warproducts.feature.source.feature.group" version="0.3.1.201405141436"/>
+<unit id="org.eclipse.libra.warproducts.feature.feature.group" version="0.3.1.201405141436"/>
+<unit id="org.eclipse.libra.facet.feature.feature.group" version="0.3.1.201405141436"/>
+<unit id="org.eclipse.libra.framework.editor.feature.source.feature.group" version="0.3.1.201405141436"/>
+<unit id="org.eclipse.libra.facet.feature.source.feature.group" version="0.3.1.201405141436"/>
+<repository location="http://download.eclipse.org/libra/milestones"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.virgo.bundlor.maven.feature.group" version="1.1.0.RELEASE"/>
+<unit id="org.eclipse.virgo.bundlor.commandline.feature.group" version="1.1.0.RELEASE"/>
+<unit id="org.eclipse.virgo.bundlor.resources.feature.group" version="1.1.0.RELEASE"/>
+<unit id="org.eclipse.virgo.bundlor.feature.group" version="1.1.0.RELEASE"/>
+<unit id="org.eclipse.virgo.bundlor.ant.feature.group" version="1.1.0.RELEASE"/>
+<unit id="bundlor.product" version="1.0.0"/>
+<repository location="http://download.eclipse.org/virgo/release/BNDLR/1.1.0.RELEASE/updatesite"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.orbit.build.feature.set1.feature.group" version="1.0.0.v201605202053-FAfFJHFJIJfY9DASFi7aEeQz0P99"/>
+<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20160520211859/repository/"/>
+</location>
+</locations>
+</target>
diff --git a/org.eclipse.virgo.ide/Virgo Tooling 3.7-Neon-Linux.launch b/org.eclipse.virgo.ide/Virgo Tooling 3.7-Neon-Linux.launch
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/org.eclipse.virgo.ide/Virgo Tooling 3.7-Neon-Linux.launch