Author: rob.stryker(a)jboss.com
Date: 2008-11-19 20:48:57 -0500 (Wed, 19 Nov 2008)
New Revision: 11893
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/icons/jmeth_obj.gif
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JMXProvider.java
Removed:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/icons/jmxIcon.JPG
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/jmx/JBossServerConnection.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/jmx/JBossServerConnectionProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/META-INF/MANIFEST.MF
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUISharedImages.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
trunk/jmx/plugins/org.jboss.tools.jmx.core/src/org/jboss/tools/jmx/core/IConnectionWrapper.java
trunk/jmx/plugins/org.jboss.tools.jmx.core/src/org/jboss/tools/jmx/core/providers/DefaultConnectionWrapper.java
trunk/jmx/plugins/org.jboss.tools.jmx.ui/META-INF/MANIFEST.MF
trunk/jmx/plugins/org.jboss.tools.jmx.ui/plugin.xml
trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/ActionProvider.java
trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/MBeanExplorerContentProvider.java
Log:
JBIDE-2760 - some additional touches to add to servers view as well.
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/jmx/JBossServerConnection.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/jmx/JBossServerConnection.java 2008-11-19
23:38:57 UTC (rev 11892)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/jmx/JBossServerConnection.java 2008-11-20
01:48:57 UTC (rev 11893)
@@ -24,9 +24,11 @@
private IServer server;
private Root root;
private boolean isConnected;
+ private boolean isLoading;
public JBossServerConnection(IServer server) {
this.server = server;
this.isConnected = false;
+ this.isLoading = false;
checkState(); // prime the state
((JBossServerConnectionProvider)getProvider()).addListener(this);
server.addServerListener(this);
@@ -49,7 +51,8 @@
}
public void loadRoot(IProgressMonitor monitor) {
- if( isConnected()) {
+ if( isConnected() && !isLoading) {
+ isLoading = true;
// saferunner just adds itself as a concern and then removes, after each call.
// This will ensure the classloader does not need to make multiple loads
JMXClassLoaderRepository.getDefault().addConcerned(server, this);
@@ -62,6 +65,7 @@
JBossServerCorePlugin.getDefault().getLog().log(status);
} finally {
JMXClassLoaderRepository.getDefault().removeConcerned(server, this);
+ isLoading = false;
}
}
}
@@ -89,7 +93,6 @@
public void serverChanged(ServerEvent event) {
int eventKind = event.getKind();
- IServer server = event.getServer();
if ((eventKind & ServerEvent.SERVER_CHANGE) != 0) {
// server change event
if ((eventKind & ServerEvent.STATE_CHANGE) != 0) {
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/jmx/JBossServerConnectionProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/jmx/JBossServerConnectionProvider.java 2008-11-19
23:38:57 UTC (rev 11892)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/jmx/JBossServerConnectionProvider.java 2008-11-20
01:48:57 UTC (rev 11893)
@@ -98,6 +98,7 @@
}
public IConnectionWrapper findConnection(IServer s) {
+ getConnections();
return idToConnection.get(s.getId());
}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/META-INF/MANIFEST.MF 2008-11-19 23:38:57
UTC (rev 11892)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/META-INF/MANIFEST.MF 2008-11-20 01:48:57
UTC (rev 11893)
@@ -43,7 +43,9 @@
org.apache.ant,
org.jboss.ide.eclipse.as.core,
org.eclipse.ui.navigator;bundle-version="3.3.100",
- org.eclipse.ui.views.log;bundle-version="1.0.0"
+ org.eclipse.ui.views.log;bundle-version="1.0.0",
+ org.jboss.tools.jmx.ui;bundle-version="0.2.2",
+ org.jboss.tools.jmx.core;bundle-version="0.2.1"
Eclipse-LazyStart: true
Export-Package: org.jboss.ide.eclipse.as.ui,
org.jboss.ide.eclipse.as.ui.dialogs,
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/icons/jmeth_obj.gif
===================================================================
(Binary files differ)
Property changes on: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/icons/jmeth_obj.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/icons/jmxIcon.JPG
===================================================================
(Binary files differ)
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUISharedImages.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUISharedImages.java 2008-11-19
23:38:57 UTC (rev 11892)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUISharedImages.java 2008-11-20
01:48:57 UTC (rev 11893)
@@ -51,8 +51,8 @@
public static final String GENERIC_SERVER_IMAGE = "GENERIC_SERVER_IMAGE";
public static final String PUBLISH_IMAGE = "PUBLISH_IMAGE";
public static final String UNPUBLISH_IMAGE = "UNPUBLISH_IMAGE";
+ public static final String JMX_IMAGE = "JMX_IMAGE";
-
private static JBossServerUISharedImages instance;
private Hashtable<String, Object> images, descriptors;
@@ -75,7 +75,7 @@
descriptors.put(INACTIVE_CATEGORY_IMAGE, createImageDescriptor(pluginBundle,
"/icons/inactiveCat.gif"));
descriptors.put(PUBLISH_IMAGE, createImageDescriptor(pluginBundle,
"/icons/publish.gif"));
descriptors.put(UNPUBLISH_IMAGE, createImageDescriptor(pluginBundle,
"/icons/unpublish.gif"));
-
+ descriptors.put(JMX_IMAGE, createImageDescriptor(pluginBundle,
"/icons/jmeth_obj.gif"));
Iterator<String> iter = descriptors.keySet().iterator();
while (iter.hasNext()) {
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JMXProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JMXProvider.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JMXProvider.java 2008-11-20
01:48:57 UTC (rev 11893)
@@ -0,0 +1,67 @@
+package org.jboss.ide.eclipse.as.ui.views.server.extensions;
+
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.wst.server.core.IServer;
+import org.jboss.ide.eclipse.as.core.extensions.jmx.JBossServerConnectionProvider;
+import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
+import org.jboss.tools.jmx.core.IConnectionWrapper;
+import org.jboss.tools.jmx.ui.internal.views.navigator.MBeanExplorerContentProvider;
+import org.jboss.tools.jmx.ui.internal.views.navigator.MBeanExplorerLabelProvider;
+
+public class JMXProvider {
+
+ public static class ContentProvider implements ITreeContentProvider {
+ private MBeanExplorerContentProvider delegate;
+ public ContentProvider() {
+ delegate = new MBeanExplorerContentProvider();
+ }
+ public Object[] getChildren(Object parentElement) {
+ if( parentElement instanceof IServer )
+ return new Object[] {
JBossServerConnectionProvider.getConnection((IServer)parentElement)};
+ return delegate.getChildren(parentElement);
+ }
+ public Object getParent(Object element) {
+ return delegate.getParent(element);
+ }
+ public boolean hasChildren(Object element) {
+ return delegate.hasChildren(element);
+ }
+ public Object[] getElements(Object inputElement) {
+ return delegate.getElements(inputElement);
+ }
+ public void dispose() {
+ delegate.dispose();
+ }
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ delegate.inputChanged(viewer, oldInput, newInput);
+ }
+ }
+
+ public static class LabelProvider extends org.eclipse.jface.viewers.LabelProvider {
+ private MBeanExplorerLabelProvider delegate;
+ public LabelProvider() {
+ delegate = new MBeanExplorerLabelProvider();
+ }
+
+ public void dispose() {
+ delegate.dispose();
+ }
+
+ public String getText(Object element) {
+ if( element instanceof IConnectionWrapper ) {
+ return "JMX";
+ }
+ return delegate.getText(element);
+ }
+
+ public Image getImage(Object element) {
+ if( element instanceof IConnectionWrapper ) {
+ return JBossServerUISharedImages.getImage(JBossServerUISharedImages.JMX_IMAGE);
+ }
+ return delegate.getImage(element);
+ }
+ }
+
+}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2008-11-19 23:38:57 UTC (rev
11892)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2008-11-20 01:48:57 UTC (rev
11893)
@@ -426,6 +426,33 @@
</instanceof>
</enablement>
</actionProvider>
+ <navigatorContent
+ activeByDefault="true"
+
contentProvider="org.jboss.ide.eclipse.as.ui.views.server.extensions.JMXProvider$ContentProvider"
+ icon="icons/jmeth_obj.gif"
+ id="org.jboss.ide.eclipse.as.ui.extensions.jmx"
+
labelProvider="org.jboss.ide.eclipse.as.ui.views.server.extensions.JMXProvider$LabelProvider"
+ name="JMX"
+ priority="low">
+ <triggerPoints>
+ <instanceof
+ value="org.eclipse.wst.server.core.IServer">
+ </instanceof>
+ </triggerPoints>
+ <possibleChildren>
+ <or>
+ <instanceof
+ value="org.jboss.tools.jmx.core.tree.Node">
+ </instanceof>
+ <instanceof
+
value="org.jboss.ide.eclipse.as.ui.views.server.extensions.JMXProvider$Wrapper">
+ </instanceof>
+ <instanceof
+
value="org.jboss.tools.jmx.ui.internal.views.navigator.MBeanExplorerContentProvider$DelayProxy">
+ </instanceof>
+ </or>
+ </possibleChildren>
+ </navigatorContent>
</extension>
@@ -439,6 +466,14 @@
isRoot="false"
pattern="org.jboss.ide.eclipse.as.ui.extensions.xml">
</contentExtension>
+ <contentExtension
+ isRoot="false"
+ pattern="org.jboss.ide.eclipse.as.ui.extensions.jmx">
+ </contentExtension>
+ <contentExtension
+ isRoot="false"
+
pattern="org.jboss.tools.jmx.ui.internal.views.navigator.JMXLinkHelper">
+ </contentExtension>
</includes>
</viewerContentBinding>
<viewerActionBinding
@@ -448,6 +483,9 @@
pattern="org.jboss.ide.eclipse.as.ui.extensions.modules"/>
<actionExtension
pattern="org.jboss.ide.eclipse.as.ui.extensions.serverLog"/>
+ <actionExtension
+
pattern="org.jboss.tools.jmx.ui.internal.views.navigator.actionProvider">
+ </actionExtension>
</includes>
</viewerActionBinding>
</extension>
@@ -483,9 +521,6 @@
icon="icons/jboss.gif"
id="org.jboss.ide.eclipse.as.core.extensions.jmx.JBossServerConnectionProvider"
name="JBoss Server">
- <wizardPage
-
class="org.jboss.tools.jmx.ui.internal.wizards.DefaultConnectionWizardPage">
- </wizardPage>
</providerUI>
</extension>
Modified:
trunk/jmx/plugins/org.jboss.tools.jmx.core/src/org/jboss/tools/jmx/core/IConnectionWrapper.java
===================================================================
---
trunk/jmx/plugins/org.jboss.tools.jmx.core/src/org/jboss/tools/jmx/core/IConnectionWrapper.java 2008-11-19
23:38:57 UTC (rev 11892)
+++
trunk/jmx/plugins/org.jboss.tools.jmx.core/src/org/jboss/tools/jmx/core/IConnectionWrapper.java 2008-11-20
01:48:57 UTC (rev 11893)
@@ -31,7 +31,7 @@
* Loads the root object in the current thread if it is not loaded.
* If it is loaded, does nothing.
*/
- public void loadRoot(IProgressMonitor monitor);
+ public void loadRoot(IProgressMonitor monitor) throws CoreException;
/**
* Gets the current root object, or null if its not yet loaded.
Modified:
trunk/jmx/plugins/org.jboss.tools.jmx.core/src/org/jboss/tools/jmx/core/providers/DefaultConnectionWrapper.java
===================================================================
---
trunk/jmx/plugins/org.jboss.tools.jmx.core/src/org/jboss/tools/jmx/core/providers/DefaultConnectionWrapper.java 2008-11-19
23:38:57 UTC (rev 11892)
+++
trunk/jmx/plugins/org.jboss.tools.jmx.core/src/org/jboss/tools/jmx/core/providers/DefaultConnectionWrapper.java 2008-11-20
01:48:57 UTC (rev 11893)
@@ -38,7 +38,7 @@
private JMXConnector connector;
private MBeanServerConnection connection;
private Root root;
-
+ private boolean isLoading;
private boolean isConnected;
private Map<String, String[]> environment;
@@ -47,6 +47,7 @@
public DefaultConnectionWrapper(MBeanServerConnectionDescriptor descriptor) throws
MalformedURLException {
this.descriptor = descriptor;
this.isConnected = false;
+ this.isLoading = false;
String username = descriptor.getUserName();
environment = new HashMap<String, String[]>();
if (username != null && username.length() > 0) {
@@ -102,12 +103,13 @@
return root;
}
- public void loadRoot(IProgressMonitor monitor) {
- if( isConnected && root == null ) {
+ public void loadRoot(IProgressMonitor monitor) throws CoreException {
+ if( isConnected && root == null && !isLoading) {
try {
+ isLoading = true;
root = NodeUtils.createObjectNameTree(this, monitor);
- } catch( CoreException ce ) {
- // TODO LOG
+ } finally {
+ isLoading = false;
}
}
}
Modified: trunk/jmx/plugins/org.jboss.tools.jmx.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/jmx/plugins/org.jboss.tools.jmx.ui/META-INF/MANIFEST.MF 2008-11-19 23:38:57 UTC
(rev 11892)
+++ trunk/jmx/plugins/org.jboss.tools.jmx.ui/META-INF/MANIFEST.MF 2008-11-20 01:48:57 UTC
(rev 11893)
@@ -13,6 +13,7 @@
org.jboss.tools.jmx.core;bundle-version="0.2.1"
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.jboss.tools.jmx.ui.extensions
+Export-Package: org.jboss.tools.jmx.ui.extensions,
+ org.jboss.tools.jmx.ui.internal.views.navigator
Bundle-ActivationPolicy: lazy
Eclipse-LazyStart: true
Modified: trunk/jmx/plugins/org.jboss.tools.jmx.ui/plugin.xml
===================================================================
--- trunk/jmx/plugins/org.jboss.tools.jmx.ui/plugin.xml 2008-11-19 23:38:57 UTC (rev
11892)
+++ trunk/jmx/plugins/org.jboss.tools.jmx.ui/plugin.xml 2008-11-20 01:48:57 UTC (rev
11893)
@@ -81,7 +81,7 @@
<navigatorContent
activeByDefault="true"
contentProvider="org.jboss.tools.jmx.ui.internal.views.navigator.MBeanExplorerContentProvider"
- icon="icons/sample.gif"
+ icon="icons/full/obj16/jmeth_obj.gif"
id="org.jboss.tools.jmx.ui.internal.views.navigator.root"
labelProvider="org.jboss.tools.jmx.ui.internal.views.navigator.MBeanExplorerLabelProvider"
name="MBeans"
Modified:
trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/ActionProvider.java
===================================================================
---
trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/ActionProvider.java 2008-11-19
23:38:57 UTC (rev 11892)
+++
trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/ActionProvider.java 2008-11-20
01:48:57 UTC (rev 11893)
@@ -65,8 +65,11 @@
}
// Finish up
- menu.add(new Separator());
- menu.add(newConnectionAction);
+ int size = getSelectionSize();
+ if( size == 0 || (size == 1 && getWrappersFromSelection().length == 1)) {
+ menu.add(new Separator());
+ menu.add(newConnectionAction);
+ }
}
protected boolean anyConnected(IConnectionWrapper[] connections) {
@@ -82,6 +85,16 @@
return true;
}
+ protected int getSelectionSize() {
+ if( getContext() != null && getContext().getSelection() != null ) {
+ ISelection sel = getContext().getSelection();
+ if( sel instanceof IStructuredSelection ) {
+ return ((IStructuredSelection)sel).size();
+ }
+ }
+ return -1;
+ }
+
protected IConnectionWrapper[] getWrappersFromSelection() {
ArrayList<IConnectionWrapper> list = new
ArrayList<IConnectionWrapper>();
if( getContext() != null && getContext().getSelection() != null ) {
Modified:
trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/MBeanExplorerContentProvider.java
===================================================================
---
trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/MBeanExplorerContentProvider.java 2008-11-19
23:38:57 UTC (rev 11892)
+++
trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/MBeanExplorerContentProvider.java 2008-11-20
01:48:57 UTC (rev 11893)
@@ -12,6 +12,7 @@
import java.util.HashMap;
+import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
@@ -108,9 +109,11 @@
protected IStatus run(IProgressMonitor monitor) {
try {
w.loadRoot(monitor);
- } catch( RuntimeException re ) {
+ } catch( CoreException ce ) {
+ return ce.getStatus();
+ } finally {
+ loading.remove(w);
}
- loading.remove(w);
Display.getDefault().asyncExec(new Runnable() {
public void run() {
if( viewer instanceof StructuredViewer)