diff options
author | Bhupendra Bhusman Bhardwaj <bhupendrab@apache.org> | 2007-04-24 13:03:55 +0000 |
---|---|---|
committer | Bhupendra Bhusman Bhardwaj <bhupendrab@apache.org> | 2007-04-24 13:03:55 +0000 |
commit | b5aba49042cdbd29102d1b0f64cda13fd5a1efa5 (patch) | |
tree | bcc0f0319c75881f8fbf8f5440e6948056144a60 | |
parent | f51d407d8083fb3be576d0ef910888994eafc172 (diff) | |
download | qpid-python-b5aba49042cdbd29102d1b0f64cda13fd5a1efa5.tar.gz |
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
7 files changed, 169 insertions, 60 deletions
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"/> + <command + categoryId="org.apache.qpid.management.ui.category" + description="About Qpid Management Console" + id="qpidmc.about" + name="About"/> </extension> <extension point="org.eclipse.ui.bindings"> @@ -139,16 +144,12 @@ application="org.apache.qpid.management.ui.application" name="Qpid Management Console"> <property - name="about Qpid Management Console" - value="version 0.1.0"> - </property> - <property name="windowImages" value="icons/qpidmc16.gif,icons/qpidmc32.gif"> </property> <property name="aboutText" - value="Qpid Management Console
version 0.1.0"/> + value="Qpid Management Console"/> </product> </extension> <extension diff --git a/java/management/eclipse-plugin/pom.xml b/java/management/eclipse-plugin/pom.xml index c61adde877..152b5e9b1a 100644 --- a/java/management/eclipse-plugin/pom.xml +++ b/java/management/eclipse-plugin/pom.xml @@ -207,6 +207,10 @@ <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> 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<String, Object>(); + + 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<String, Object>(); - - if (MECH_CRAMMD5.equals(securityMechanism)) - { - // For SASL/CRAM-MD5 - Map<String, Class<? extends SaslClientFactory>> map = new HashMap<String, Class<? extends SaslClientFactory>>(); - Class<?> clazz = Class.forName("org.apache.qpid.management.ui.sasl.CRAMMD5HashedSaslClientFactory"); - map.put("CRAM-MD5-HASHED", (Class<? extends SaslClientFactory>) 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<String, Class<? extends SaslClientFactory>> map = new HashMap<String, Class<? extends SaslClientFactory>>(); + Class<?> clazz = Class.forName("org.apache.qpid.management.ui.sasl.CRAMMD5HashedSaslClientFactory"); + map.put("CRAM-MD5-HASHED", (Class<? extends SaslClientFactory>) 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(); } } |