jmsadminconnectionimpl.java

来自「OpenJMS是一个开源的Java Message Service API 1.」· Java 代码 · 共 352 行

JAVA
352
字号
/** * Redistribution and use of this software and associated documentation * ("Software"), with or without modification, are permitted provided * that the following conditions are met: * * 1. Redistributions of source code must retain copyright *    statements and notices.  Redistributions must also contain a *    copy of this document. * * 2. Redistributions in binary form must reproduce the *    above copyright notice, this list of conditions and the *    following disclaimer in the documentation and/or other *    materials provided with the distribution. * * 3. The name "Exolab" must not be used to endorse or promote *    products derived from this Software without prior written *    permission of Exoffice Technologies.  For written permission, *    please contact info@exolab.org. * * 4. Products derived from this Software may not be called "Exolab" *    nor may "Exolab" appear in their names without prior written *    permission of Exoffice Technologies. Exolab is a registered *    trademark of Exoffice Technologies. * * 5. Due credit should be given to the Exolab Project *    (http://www.exolab.org/). * * THIS SOFTWARE IS PROVIDED BY EXOFFICE TECHNOLOGIES AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL * EXOFFICE TECHNOLOGIES OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * * Copyright 2000-2005 (C) Exoffice Technologies Inc. All Rights Reserved. * * $Id: JmsAdminConnectionImpl.java,v 1.4 2006/05/24 07:59:19 tanderson Exp $ */package org.exolab.jms.administration.net;import org.exolab.jms.administration.AdminConnection;import org.exolab.jms.administration.JmsAdminServerIfc;import org.exolab.jms.client.net.SharedORB;import org.exolab.jms.net.orb.ORB;import org.exolab.jms.net.proxy.Proxy;import org.exolab.jms.net.registry.Registry;import org.exolab.jms.server.net.RemoteJmsAdminConnectionIfc;import org.exolab.jms.server.net.RemoteJmsAdminServerIfc;import javax.jms.JMSException;import java.rmi.NotBoundException;import java.rmi.RemoteException;import java.util.HashMap;import java.util.Map;import java.util.Vector;/** * This class is repsonsible for an admin connection to the server * * @author <a href="mailto:mourikis@intalio.com">Jim Mourikis</a> * @version $Revision: 1.4 $ $Date: 2006/05/24 07:59:19 $ * @see org.exolab.jms.administration.AdminConnectionFactory */public class JmsAdminConnectionImpl        implements JmsAdminServerIfc, AdminConnection {    /**     * The admin connection.     */    private RemoteJmsAdminConnectionIfc _connection;    /**     * Construct a new <code>JmsAdminConnectionImpl</code>     *     * @param url      the server URI     * @param username the client's username     * @param password the client's password     */    public JmsAdminConnectionImpl(String url, String username, String password)            throws JMSException {        Map properties = new HashMap();        properties.put(ORB.PROVIDER_URI, url);        if (username != null) {            properties.put(ORB.SECURITY_PRINCIPAL, username);        }        if (password != null) {            properties.put(ORB.SECURITY_CREDENTIALS, password);        }        Registry registry;        try {            ORB orb = SharedORB.getInstance();            registry = orb.getRegistry(properties);        } catch (RemoteException exception) {            JMSException error = new JMSException(                    "Failed to get registry service for URL: " + url);            error.setLinkedException(exception);            throw error;        }        RemoteJmsAdminServerIfc admin = null;        try {            admin = (RemoteJmsAdminServerIfc) registry.lookup("admin");            _connection = admin.createConnection(username, password);        } catch (NotBoundException exception) {            throw new JMSException("Administration server is not bound in the registry for "                    + "URL: " + url);        } catch (RemoteException exception) {            JMSException error = new JMSException("Failed to lookup OpenJMS administration server at URL: "                    + url);            error.setLinkedException(exception);            throw error;        } finally {            if (admin instanceof Proxy) {                ((Proxy) admin).disposeProxy();            }            if (registry instanceof Proxy) {                ((Proxy) registry).disposeProxy();            }        }    }    // implementation of JmsAdminServerIfc.addDurableConsumer    public boolean addDurableConsumer(String topic, String name)            throws JMSException {        boolean result = false;        try {            result = _connection.addDurableConsumer(topic, name);        } catch (Exception exception) {            raise(exception);        }        return result;    }    // implementation of JmsAdminServerIfc.removeDurableConsumer    public boolean removeDurableConsumer(String name) throws JMSException {        boolean result = false;        try {            result = _connection.removeDurableConsumer(name);        } catch (Exception exception) {            raise(exception);        }        return result;    }    // implementation of JmsAdminServerIfc.durableConsumerExists    public boolean durableConsumerExists(String name) throws JMSException {        boolean result = false;        try {            result = _connection.durableConsumerExists(name);        } catch (Exception exception) {            raise(exception);        }        return result;    }    // implementation of JmsAdminServerIfc.getDurableConsumers    public Vector getDurableConsumers(String topic) throws JMSException {        Vector result = null;        try {            result = _connection.getDurableConsumers(topic);        } catch (Exception exception) {            raise(exception);        }        return result;    }    // implementation of JmsAdminServerIfc.unregisterConsumer    public boolean unregisterConsumer(String name) throws JMSException {        boolean result = false;        try {            result = _connection.unregisterConsumer(name);        } catch (Exception exception) {            raise(exception);        }        return result;    }    // implementation of JmsAdminServerIfc.isConnected    public boolean isConnected(String name) throws JMSException {        boolean result = false;        try {            result = _connection.isConnected(name);        } catch (Exception exception) {            raise(exception);        }        return result;    }    // implementation of JmsAdminServerIfc.addDestination    public boolean addDestination(String destination, Boolean queue)            throws JMSException {        boolean result = false;        try {            result = _connection.addDestination(destination, queue);        } catch (Exception exception) {            raise(exception);        }        return result;    }    // implementation of JmsAdminServerIfc.removeDestination    public boolean removeDestination(String name) throws JMSException {        boolean result = false;        try {            result = _connection.removeDestination(name);        } catch (Exception exception) {            raise(exception);        }        return result;    }    // implementation of JmsAdminServerIfc.destinationExists    public boolean destinationExists(String name) throws JMSException {        boolean result = false;        try {            result = _connection.destinationExists(name);        } catch (Exception exception) {            raise(exception);        }        return result;    }    // implementation of JmsAdminServerIfc.getAllDestinations    public Vector getAllDestinations() throws JMSException {        Vector result = null;        try {            result = _connection.getAllDestinations();        } catch (Exception exception) {            raise(exception);        }        return result;    }    // implementation of JmsAdminServerIfc.getDurableConsumerMessageCount    public int getDurableConsumerMessageCount(String topic, String name)            throws JMSException {        int result = 0;        try {            result = _connection.getDurableConsumerMessageCount(topic, name);        } catch (Exception exception) {            raise(exception);        }        return result;    }    // implementation of JmsAdminServerIfc.getDurableConsumerMessageCount    public int getQueueMessageCount(String queue) throws JMSException {        int result = 0;        try {            result = _connection.getQueueMessageCount(queue);        } catch (Exception exception) {            raise(exception);        }        return result;    }    // implementation of JmsAdminServerIfc.purgeMessages    public int purgeMessages() throws JMSException {        int result = 0;        try {            result = _connection.purgeMessages();        } catch (Exception exception) {            raise(exception);        }        return result;    }    // implementation of JmsAdminServerIfc.stopServer    public void stopServer() throws JMSException {        try {            _connection.stopServer();        } catch (Exception exception) {            raise(exception);        }    }    // implementation of JmsAdminServerIfc.close    public void close() {        if (_connection instanceof Proxy) {            ((Proxy) _connection).disposeProxy();            _connection = null;        }    }    // implementation of JmsAdminServerIfc.addUser    public boolean addUser(String username, String password)            throws JMSException {        boolean result = false;        try {            result = _connection.addUser(username, password);        } catch (Exception exception) {            raise(exception);        }        return result;    }    // implementation of JmsAdminServerIfc.getAllUsers    public Vector getAllUsers() throws JMSException {        Vector result = null;        try {            result = _connection.getAllUsers();        } catch (Exception exception) {            raise(exception);        }        return result;    }    // implementation of JmsAdminServerIfc.removeUser    public boolean removeUser(String username)            throws JMSException {        boolean result = false;        try {            result = _connection.removeUser(username);        } catch (Exception exception) {            raise(exception);        }        return result;    }    // implementation of JmsAdminServerIfc.changePassword    public boolean changePassword(String username, String password)            throws JMSException {        boolean result = false;        try {            result = _connection.changePassword(username, password);        } catch (Exception exception) {            raise(exception);        }        return result;    }    private void raise(Exception exception) throws JMSException {        if (exception instanceof JMSException) {            throw (JMSException) exception;        } else {            JMSException error = new JMSException(exception.getMessage());            error.setLinkedException(exception);            throw error;        }    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?