From b5aba49042cdbd29102d1b0f64cda13fd5a1efa5 Mon Sep 17 00:00:00 2001 From: Bhupendra Bhusman Bhardwaj Date: Tue, 24 Apr 2007 13:03:55 +0000 Subject: Added display of build and release versions in Help->About git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/M2@531917 13f79535-47bb-0310-9956-ffa450edef68 --- java/management/eclipse-plugin/plugin.xml | 11 +-- java/management/eclipse-plugin/pom.xml | 4 + .../management/ui/ApplicationActionBarAdvisor.java | 12 +-- .../qpid/management/ui/actions/AbstractAction.java | 22 +++++- .../qpid/management/ui/actions/VersionAction.java | 89 ++++++++++++++++++++++ .../qpid/management/ui/jmx/JMXServerRegistry.java | 87 ++++++++++----------- .../qpid/management/ui/views/NavigationView.java | 4 + 7 files changed, 169 insertions(+), 60 deletions(-) create mode 100644 java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/VersionAction.java (limited to 'java/management/eclipse-plugin') diff --git a/java/management/eclipse-plugin/plugin.xml b/java/management/eclipse-plugin/plugin.xml index bd7ae0a474..5774859b47 100644 --- a/java/management/eclipse-plugin/plugin.xml +++ b/java/management/eclipse-plugin/plugin.xml @@ -96,6 +96,11 @@ description="pops up the window for editing selected attribute" id="org.apache.qpid.management.ui.actions.cmd_editAttribute" name="Edit Attribute"/> + @@ -138,17 +143,13 @@ - - + value="Qpid Management Console"/> + + org.apache.maven.plugins + maven-antrun-plugin + org.apache.maven.plugins maven-jar-plugin diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ApplicationActionBarAdvisor.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ApplicationActionBarAdvisor.java index 9015b74f3f..b5c1b5074a 100644 --- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ApplicationActionBarAdvisor.java +++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ApplicationActionBarAdvisor.java @@ -20,6 +20,8 @@ */ package org.apache.qpid.management.ui; +import org.apache.qpid.management.ui.actions.VersionAction; +import org.eclipse.jface.action.Action; import org.eclipse.jface.action.GroupMarker; import org.eclipse.jface.action.ICoolBarManager; import org.eclipse.jface.action.IMenuManager; @@ -44,8 +46,7 @@ public class ApplicationActionBarAdvisor extends ActionBarAdvisor // in the fill methods. This ensures that the actions aren't recreated // when fillActionBars is called with FILL_PROXY. private IWorkbenchAction exitAction; - private IWorkbenchAction aboutAction; - + private Action _aboutAction; public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) { @@ -63,8 +64,8 @@ public class ApplicationActionBarAdvisor extends ActionBarAdvisor exitAction = ActionFactory.QUIT.create(window); register(exitAction); - aboutAction = ActionFactory.ABOUT.create(window); - register(aboutAction); + _aboutAction = new VersionAction(window); + register(_aboutAction); } @@ -85,8 +86,7 @@ public class ApplicationActionBarAdvisor extends ActionBarAdvisor fileMenu.add(exitAction); // Help - //aboutAction.setText("about Qpid Management Console"); - helpMenu.add(aboutAction); + helpMenu.add(_aboutAction); } protected void fillCoolBar(ICoolBarManager coolBar) diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/AbstractAction.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/AbstractAction.java index 0101905bbf..b1cf942e37 100644 --- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/AbstractAction.java +++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/AbstractAction.java @@ -1,3 +1,23 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ package org.apache.qpid.management.ui.actions; import static org.apache.qpid.management.ui.Constants.ERROR_SERVER_CONNECTION; @@ -30,7 +50,7 @@ public class AbstractAction } } - protected void handleException(Exception ex, String title, String msg) + protected void handleException(Throwable ex, String title, String msg) { MBeanUtility.printStackTrace(ex); if (msg == null) diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/VersionAction.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/VersionAction.java new file mode 100644 index 0000000000..11db02f5a2 --- /dev/null +++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/VersionAction.java @@ -0,0 +1,89 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.apache.qpid.management.ui.actions; + +import java.io.InputStream; +import java.util.Properties; + +import org.apache.qpid.management.ui.Constants; +import org.apache.qpid.management.ui.jmx.MBeanUtility; +import org.eclipse.jface.action.Action; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.ui.IWorkbenchWindow; + +public class VersionAction extends Action +{ + private IWorkbenchWindow _window; + public static final String VERSION_RESOURCE = "qpidversion.properties"; + + public static final String PRODUCT_NAME_PROPERTY = "qpid.name"; + public static final String RELEASE_VERSION_PROPERTY = "qpid.version"; + public static final String BUILD_VERSION_PROPERTY = "qpid.svnversion"; + + private static final String DEFAULT = "unknown"; + private static String _releaseVersion; + private static String _buildVersion; + private static String _text; + + static + { + Properties props = new Properties(); + try + { + InputStream propertyStream = VersionAction.class.getClassLoader().getResourceAsStream(VERSION_RESOURCE); + if (propertyStream != null) + { + props.load(propertyStream); + _releaseVersion = readPropertyValue(props, RELEASE_VERSION_PROPERTY); + _buildVersion = readPropertyValue(props, BUILD_VERSION_PROPERTY); + _text = "Build Version : " + _buildVersion + "\n" + + "Release Version : " + _releaseVersion; + } + } + catch (Exception ex) + { + MBeanUtility.printStackTrace(ex); + } + } + + public VersionAction(IWorkbenchWindow window) + { + _window = window; + setText("About " + Constants.APPLICATION_NAME); + setId("qpidmc.about"); + setActionDefinitionId("qpidmc.about"); + } + + private static String readPropertyValue(Properties props, String propertyName) + { + String retVal = (String) props.get(propertyName); + if (retVal == null) + { + retVal = DEFAULT; + } + return retVal; + } + + public void run() + { + MessageDialog.openInformation(_window.getShell(), Constants.APPLICATION_NAME, _text); + } +} diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java index 816c479cf9..02d9ed7fdc 100644 --- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java +++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java @@ -97,58 +97,49 @@ public class JMXServerRegistry extends ServerRegistry String securityMechanism = ApplicationRegistry.getSecurityMechanism(); if (securityMechanism != null) - { - try + { + // Check if the JMXMP connector is available + Class klass = Class.forName("javax.management.remote.jmxmp.JMXMPConnector"); + + jmxUrl = new JMXServiceURL("jmxmp", server.getHost(), server.getPort()); + env = new HashMap(); + + if (MECH_CRAMMD5.equals(securityMechanism)) { - // Check if the JMXMP connector is available - Class klass = Class.forName("javax.management.remote.jmxmp.JMXMPConnector"); - - jmxUrl = new JMXServiceURL("jmxmp", server.getHost(), server.getPort()); - env = new HashMap(); - - if (MECH_CRAMMD5.equals(securityMechanism)) - { - // For SASL/CRAM-MD5 - Map> map = new HashMap>(); - Class clazz = Class.forName("org.apache.qpid.management.ui.sasl.CRAMMD5HashedSaslClientFactory"); - map.put("CRAM-MD5-HASHED", (Class) clazz); - - Security.addProvider(new JCAProvider(map)); - env.put("jmx.remote.profiles", SASL_CRAMMD5); - env.put("jmx.remote.sasl.callback.handler", - new UsernameHashedPasswordCallbackHandler(server.getUser(), server.getPassword())); - } - else if (MECH_PLAIN.equals(securityMechanism)) - { - // For SASL/PLAIN - Security.addProvider(new SaslProvider()); - env.put("jmx.remote.profiles", SASL_PLAIN); - env.put("jmx.remote.sasl.callback.handler", - new UserPasswordCallbackHandler(server.getUser(), server.getPassword())); - } - else - { - MBeanUtility.printOutput("Security mechanism " + securityMechanism + " is not supported."); - } - - // Now create the instance of JMXMPConnector - Class[] paramTypes = {JMXServiceURL.class, Map.class}; - Constructor cons = klass.getConstructor(paramTypes); - - Object[] args = {jmxUrl, env}; - Object theObject = cons.newInstance(args); - - _jmxc = (JMXConnector)theObject; - _jmxc.connect(); - MBeanUtility.printOutput("Starting JMXConnector with SASL. Server=" + server.getName()); + // For SASL/CRAM-MD5 + Map> map = new HashMap>(); + Class clazz = Class.forName("org.apache.qpid.management.ui.sasl.CRAMMD5HashedSaslClientFactory"); + map.put("CRAM-MD5-HASHED", (Class) clazz); + + Security.addProvider(new JCAProvider(map)); + env.put("jmx.remote.profiles", SASL_CRAMMD5); + env.put("jmx.remote.sasl.callback.handler", + new UsernameHashedPasswordCallbackHandler(server.getUser(), server.getPassword())); } - catch (Exception ex) + else if (MECH_PLAIN.equals(securityMechanism)) { - // When JMXMPConnector is not available - MBeanUtility.printOutput("Starting JMXConnector. Server=" + server.getName()); - jmxUrl = new JMXServiceURL(server.getUrl()); - _jmxc = JMXConnectorFactory.connect(jmxUrl, null); + // For SASL/PLAIN + Security.addProvider(new SaslProvider()); + env.put("jmx.remote.profiles", SASL_PLAIN); + env.put("jmx.remote.sasl.callback.handler", + new UserPasswordCallbackHandler(server.getUser(), server.getPassword())); } + else + { + String text = "Security mechanism " + securityMechanism + " is not supported."; + MBeanUtility.printOutput(text); + throw new Exception(text); + } + // Now create the instance of JMXMPConnector + Class[] paramTypes = {JMXServiceURL.class, Map.class}; + Constructor cons = klass.getConstructor(paramTypes); + + Object[] args = {jmxUrl, env}; + Object theObject = cons.newInstance(args); + + _jmxc = (JMXConnector)theObject; + _jmxc.connect(); + MBeanUtility.printOutput("Starting JMXConnector with SASL. Server=" + server.getName()); } else { diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java index e5f99c2f7b..2a1a18939f 100644 --- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java +++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java @@ -216,6 +216,10 @@ public class NavigationView extends ViewPart } catch (IOException ex) { + if (ex.getCause() == null) + { + throw ex; + } throw (Exception)ex.getCause(); } } -- cgit v1.2.1