View Javadoc
1 /*** 2 * Redistribution and use of this software and associated documentation 3 * ("Software"), with or without modification, are permitted provided 4 * that the following conditions are met: 5 * 6 * 1. Redistributions of source code must retain copyright 7 * statements and notices. Redistributions must also contain a 8 * copy of this document. 9 * 10 * 2. Redistributions in binary form must reproduce the 11 * above copyright notice, this list of conditions and the 12 * following disclaimer in the documentation and/or other 13 * materials provided with the distribution. 14 * 15 * 3. The name "Exolab" must not be used to endorse or promote 16 * products derived from this Software without prior written 17 * permission of Exoffice Technologies. For written permission, 18 * please contact info@exolab.org. 19 * 20 * 4. Products derived from this Software may not be called "Exolab" 21 * nor may "Exolab" appear in their names without prior written 22 * permission of Exoffice Technologies. Exolab is a registered 23 * trademark of Exoffice Technologies. 24 * 25 * 5. Due credit should be given to the Exolab Project 26 * (http://www.exolab.org/). 27 * 28 * THIS SOFTWARE IS PROVIDED BY EXOFFICE TECHNOLOGIES AND CONTRIBUTORS 29 * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT 30 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 31 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 32 * EXOFFICE TECHNOLOGIES OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 33 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 34 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 35 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 36 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 37 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 38 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 39 * OF THE POSSIBILITY OF SUCH DAMAGE. 40 * 41 * Copyright 2000,2003 (C) Exoffice Technologies Inc. All Rights Reserved. 42 * 43 * $Id: OnlineConnection.java,v 1.3 2003/08/24 07:09:29 tanderson Exp $ 44 * 45 * Date Author Changes 46 * $Date jimm Created 47 */ 48 49 50 package org.exolab.jms.tools.admin; 51 52 import java.awt.Component; 53 import java.util.Enumeration; 54 import java.util.Vector; 55 56 import javax.swing.JOptionPane; 57 58 import org.exolab.jms.administration.AdminConnectionFactory; 59 import org.exolab.jms.administration.JmsAdminServerIfc; 60 import org.exolab.jms.config.ConfigHelper; 61 import org.exolab.jms.config.ConfigurationManager; 62 import org.exolab.jms.config.Connector; 63 import org.exolab.jms.config.SecurityConfiguration; 64 import org.exolab.jms.config.types.SchemeType; 65 66 67 /*** 68 * Connects to the OpenJMSServer for all updates and requests. 69 * 70 * <P>Note: The OpenJMSServer must be active and in a running state for this 71 * type of connection to succeed. 72 * 73 * @version $Revision: 1.3 $ $Date: 2003/08/24 07:09:29 $ 74 * @author <a href="mailto:mourikis@exolab.org">Jim Mourikis</a> 75 */ 76 public class OnlineConnection extends AbstractAdminConnection { 77 78 // The connection to the OpenJMS server. 79 private JmsAdminServerIfc _admin = null; 80 81 // The parent Gui 82 private Component _parent; 83 84 // The connection object type 85 private String _connectionType; 86 87 88 /*** 89 * Connect to the Admin Server 90 * 91 * @exception OnlineConnectionException When online connection fails. 92 * 93 */ 94 public OnlineConnection(Component parent) throws OnlineConnectionException { 95 String username = "anonymous"; 96 String password = "anonymous"; 97 98 try { 99 if (_instance == null) { 100 Connector connector = ConfigurationManager.getConnector(); 101 SchemeType scheme = connector.getScheme(); 102 String url = ConfigHelper.getAdminURL( 103 scheme, ConfigurationManager.getConfig()); 104 105 SecurityConfiguration config = 106 ConfigurationManager.getConfig().getSecurityConfiguration(); 107 if (config.getSecurityEnabled()) { 108 CreateLogonDialog.instance().displayCreateLogon(); 109 110 if (CreateLogonDialog.instance().isConfirmed()) { 111 username = CreateLogonDialog.instance().getName(); 112 password = CreateLogonDialog.instance().getPassword(); 113 } 114 } 115 116 //Perform logon 117 _admin = AdminConnectionFactory.create(url, username, password); 118 119 _parent = parent; 120 _instance = this; 121 } else { 122 throw new org.exolab.jms.tools.admin.OnlineConnectionException("Already connected"); 123 } 124 } catch (Exception err) { 125 throw new org.exolab.jms.tools.admin.OnlineConnectionException("Failed to connect: " + err.toString()); 126 } 127 } 128 129 /*** 130 * Connect to the Admin Server, special constructor to be able to stop the server 131 * 132 * @exception OnlineConnectionException When online connection fails. 133 * 134 */ 135 public OnlineConnection(String username, String password) throws OnlineConnectionException { 136 try { 137 if (_instance == null) { 138 Connector connector = ConfigurationManager.getConnector(); 139 SchemeType scheme = connector.getScheme(); 140 String url = ConfigHelper.getAdminURL( 141 scheme, ConfigurationManager.getConfig()); 142 143 //Perform logon 144 _admin = AdminConnectionFactory.create(url, username, password); 145 146 _instance = this; 147 } else { 148 throw new org.exolab.jms.tools.admin.OnlineConnectionException("Already connected"); 149 } 150 } catch (Exception err) { 151 throw new org.exolab.jms.tools.admin.OnlineConnectionException("Failed to connect: " + err.toString()); 152 } 153 } 154 155 /*** 156 * Display the error in a JOptionPane. 157 * 158 * @param err The Error to display. 159 * @param st The string to use as a title on the JOptionPane. 160 * 161 */ 162 private void displayError(Exception err, String st) { 163 JOptionPane.showMessageDialog 164 (_parent, st + "\n" + err, st, JOptionPane.ERROR_MESSAGE); 165 } 166 167 // implementation of AbstractAdminConnection.close 168 public void close() { 169 _admin.close(); 170 _instance = null; 171 _admin = null; 172 } 173 174 // implementation of AbstractAdminConnection.addDurableConsumer 175 public boolean addDurableConsumer(String topic, String name) { 176 try { 177 return _admin.addDurableConsumer(topic, name); 178 } catch (javax.jms.JMSException error) { 179 if (error.getLinkedException() != null) { 180 error.getLinkedException().printStackTrace(); 181 } 182 displayError(error, "Failed to add consumer"); 183 return false; 184 } catch (Exception err) { 185 displayError(err, "Failed to add consumer " + name); 186 return false; 187 } 188 } 189 190 // implementation of AbstractAdminConnection.unregisterConsumer 191 public boolean removeDurableConsumer(String name) { 192 try { 193 return _admin.removeDurableConsumer(name); 194 } catch (Exception err) { 195 displayError(err, "Failed to remove consumer " + name); 196 return false; 197 } 198 } 199 200 // implementation of AbstractAdminConnection.unregisterConsumer 201 public boolean unregisterConsumer(String name) { 202 try { 203 return _admin.unregisterConsumer(name); 204 } catch (Exception err) { 205 displayError(err, "Failed to De-Activate consumer " + name); 206 return false; 207 } 208 } 209 210 // implementation of AbstractAdminConnection.isConnected 211 public boolean isConnected(String name) { 212 try { 213 return _admin.isConnected(name); 214 } catch (Exception err) { 215 return false; 216 } 217 } 218 219 // implementation of AbstractAdminConnection.getAllDestinations 220 public Enumeration getAllDestinations() { 221 try { 222 Vector v = _admin.getAllDestinations(); 223 Enumeration e = null; 224 if (v != null) { 225 e = v.elements(); 226 } 227 return e; 228 } catch (Exception err) { 229 displayError(err, "Failed to getAllQueueTopics"); 230 return null; 231 } 232 } 233 234 // implementation of AbstractAdminConnection.addDestination 235 public boolean addDestination(String destination, boolean isQueue) { 236 try { 237 return _admin.addDestination(destination, new Boolean(isQueue)); 238 } catch (Exception err) { 239 displayError(err, "Failed to add destination"); 240 return false; 241 } 242 } 243 244 // implementation of AbstractAdminConnection.getDurableConsumerMessageCount 245 public int getDurableConsumerMessageCount(String topic, String name) { 246 try { 247 return _admin.getDurableConsumerMessageCount(topic, name); 248 } catch (Exception err) { 249 displayError(err, "Failed in getDurableConsumerMessageCount"); 250 return -1; 251 } 252 } 253 254 // implementation of AbstractAdminConnection.getQueueMessageCount 255 public int getQueueMessageCount(String queue) { 256 try { 257 return _admin.getQueueMessageCount(queue); 258 } catch (Exception err) { 259 displayError(err, "Failed in getQueueMessageCount"); 260 return -1; 261 } 262 } 263 264 // implementation of AbstractAdminConnection.durableConsumerExists 265 public boolean durableConsumerExists(String name) { 266 try { 267 return _admin.durableConsumerExists(name); 268 } catch (Exception err) { 269 displayError(err, "Failed in durableConsumerExists"); 270 } 271 272 return false; 273 } 274 275 // implementation of AbstractAdminConnection.getDurableConsumers 276 public Enumeration getDurableConsumers(String topic) { 277 try { 278 Vector v = _admin.getDurableConsumers(topic); 279 Enumeration e = null; 280 if (v != null) { 281 e = v.elements(); 282 } 283 return e; 284 } catch (Exception err) { 285 displayError(err, "Failed in getDurableConsumers"); 286 return null; 287 } 288 } 289 290 // implementation of AbstractAdminConnection.removeDestination 291 public boolean removeDestination(String destination) { 292 try { 293 return _admin.removeDestination(destination); 294 } catch (Exception err) { 295 displayError(err, "Failed to destroy destination"); 296 return false; 297 } 298 } 299 300 // implementation of AbstractAdminConnection.purgeMessages 301 public int purgeMessages() { 302 int result = -1; 303 try { 304 result = _admin.purgeMessages(); 305 } catch (Exception err) { 306 displayError(err, "Failed to purge messages from database"); 307 } 308 309 return result; 310 } 311 312 // implementation of AbstractAdminConnection.stopServer 313 public void stopServer() { 314 try { 315 if (_admin == null) { 316 JOptionPane.showMessageDialog 317 (_parent, "Must connect with online mode \nto " 318 + "shutdown server", "Shutdown Error", 319 JOptionPane.ERROR_MESSAGE); 320 } else { 321 _admin.stopServer(); 322 _instance = null; 323 _admin = null; 324 } 325 } catch (Exception err) { 326 displayError(err, "Failed to Stop server"); 327 } 328 } 329 330 // implementation of AbstractAdminConnection.addUser 331 public boolean addUser(String username, String password) { 332 try { 333 return _admin.addUser(username, password); 334 } catch (javax.jms.JMSException error) { 335 if (error.getLinkedException() != null) { 336 error.getLinkedException().printStackTrace(); 337 } 338 displayError(error, "Failed to add user"); 339 return false; 340 } catch (Exception err) { 341 displayError(err, "Failed to add user " + username); 342 return false; 343 } 344 } 345 346 // implementation of AbstractAdminConnection.changePassord 347 public boolean changePassword(String username, String password) { 348 try { 349 return _admin.changePassword(username, password); 350 } catch (javax.jms.JMSException error) { 351 if (error.getLinkedException() != null) { 352 error.getLinkedException().printStackTrace(); 353 } 354 displayError(error, "Failed to change password"); 355 return false; 356 } catch (Exception err) { 357 displayError(err, "Failed to change password for user " + username); 358 return false; 359 } 360 } 361 362 // implementation of AbstractAdminConnection.removeUser 363 public boolean removeUser(String username) { 364 try { 365 return _admin.removeUser(username); 366 } catch (javax.jms.JMSException error) { 367 if (error.getLinkedException() != null) { 368 error.getLinkedException().printStackTrace(); 369 } 370 displayError(error, "Failed to remove user"); 371 return false; 372 } catch (Exception err) { 373 displayError(err, "Failed to remove user " + username); 374 return false; 375 } 376 } 377 378 // implementation of AbstractAdminConnection.getAllUsers 379 public Enumeration getAllUsers() { 380 try { 381 Vector v = _admin.getAllUsers(); 382 Enumeration e = null; 383 if (v != null) { 384 e = v.elements(); 385 } 386 return e; 387 } catch (Exception err) { 388 displayError(err, "Failed to getAllUsers"); 389 return null; 390 } 391 } 392 393 } // End OnlineConnection

This page was automatically generated by Maven