Author: rob.stryker(a)jboss.com
Date: 2007-11-07 19:35:31 -0500 (Wed, 07 Nov 2007)
New Revision: 4764
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/OperationGroup.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
Log:
Operations enhanced ;)
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/OperationGroup.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/OperationGroup.java 2007-11-08
00:35:25 UTC (rev 4763)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/OperationGroup.java 2007-11-08
00:35:31 UTC (rev 4764)
@@ -24,7 +24,11 @@
import java.util.HashMap;
import javax.management.MBeanParameterInfo;
+import javax.management.MBeanServerConnection;
+import javax.management.ObjectName;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.LabelProvider;
@@ -39,10 +43,14 @@
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeColumn;
+import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXModel.JMXRunnable;
+import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXModel.JMXSafeRunner;
import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXModel.WrappedMBeanOperationInfo;
import
org.jboss.ide.eclipse.as.core.extensions.jmx.JMXModel.WrappedMBeanOperationParameter;
+import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
/**
*
@@ -117,6 +125,34 @@
}
protected void executePressed() {
+ final Boolean[] errorBool = new Boolean[1];
+ final JMXRunnable run = new JMXRunnable() {
+ public void run(MBeanServerConnection connection) {
+ try {
+ ObjectName on = selectedOperation.getBean().getObjectName();
+ String opName = selectedOperation.getInfo().getName();
+ connection.invoke(on, opName, getParams(), getSignatures());
+ } catch (final Exception e) {
+ Display.getDefault().asyncExec(new Runnable() { public void run() {
+ IStatus status = new Status(IStatus.ERROR, JBossServerUIPlugin.PLUGIN_ID,
e.getMessage(), e);
+ JBossServerUIPlugin.getDefault().getLog().log(status);
+ errorBool[0] = new Boolean(true);
+ }});
+ }
+ }
+ };
+
+ new Thread() { public void run() {
+ JMXSafeRunner.run(selectedOperation.getBean().getServer(), run);
+ if( errorBool[0] == null ) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ // display error
+ }
+ });
+ }
+ }}.start();
+
}
protected class OperationViewerContentProvider implements
@@ -177,4 +213,21 @@
treeViewer.setInput(op);
}
+ protected Object[] getParams() {
+ WrappedMBeanOperationParameter[] params = selectedOperation.getParameters();
+ Object[] paramVals = new Object[params.length];
+ for( int i = 0; i < paramVals.length; i++ ) {
+ paramVals[i] = opParams.get(params[i].getInfo());
+ }
+ return paramVals;
+ }
+
+ protected String[] getSignatures() {
+ WrappedMBeanOperationParameter[] params = selectedOperation.getParameters();
+ String[] signatures = new String[selectedOperation.getParameters().length];
+ for( int i = 0; i < signatures.length; i++ ) {
+ signatures[i] = params[i].getInfo().getType();
+ }
+ return signatures;
+ }
}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2007-11-08 00:35:25 UTC (rev
4763)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2007-11-08 00:35:31 UTC (rev
4764)
@@ -163,12 +163,13 @@
id="org.jboss.ide.eclipse.as.ui.InactiveExtensionsProvider"
name="Inactive Categories"
providerClass="org.jboss.ide.eclipse.as.ui.views.server.providers.InactiveExtensionViewProvider"/>
-<!-- <ViewProvider
+ <ViewProvider
description="A clone of the JMX view in the web browser"
+ icon="icons/jmxIcon.JPG"
id="org.jboss.ide.eclipse.as.ui.JMXProvider"
name="JMX Console"
-
providerClass="org.jboss.ide.eclipse.as.ui.views.server.providers.JMXViewProvider">
- </ViewProvider>-->
+
providerClass="org.jboss.ide.eclipse.as.ui.views.server.providers.jmx.JMXViewProvider">
+ </ViewProvider>
</extension>
<!--
<extension
Show replies by date