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-2004 (C) Exoffice Technologies Inc. All Rights Reserved. 42 * 43 * $Id: RemoteJmsAdminConnectionIfc.java,v 1.1 2004/11/26 01:51:01 tanderson Exp $ 44 */ 45 package org.exolab.jms.server.net; 46 47 import java.rmi.RemoteException; 48 import java.util.Vector; 49 50 51 /*** 52 * This specifies all the administration methods that can be used to control 53 * the JMS server through an RMI connector. The control logic is all at the 54 * org.exolab.jms.server package level 55 * 56 * @version $Revision: 1.1 $ $Date: 2004/11/26 01:51:01 $ 57 * @author <a href="mailto:jima@comware.com.au">Jim Alateras</a> 58 */ 59 public interface RemoteJmsAdminConnectionIfc { 60 61 /*** 62 * Add a consumer for the specified topic 63 * 64 * @param topic name of the destination 65 * @param name name of the consumer 66 * @return boolean true if successful 67 * @throws RemoteException if the connection cannot be created 68 */ 69 boolean addDurableConsumer(String topic, String name) 70 throws RemoteException; 71 72 /*** 73 * Remove the consumer attached to the specified destination and with 74 * the passed in name 75 * 76 * @param name name of the consumer 77 * @return boolean true if successful 78 * @throws RemoteException if the connection cannot be created 79 */ 80 boolean removeDurableConsumer(String name) throws RemoteException; 81 82 /*** 83 * Check if a durable consumer, with the specified name, already exists 84 * 85 * @param name name of the consumer 86 * @return boolean true if it exists 87 * @throws RemoteException if the connection cannot be created 88 */ 89 boolean durableConsumerExists(String name) throws RemoteException; 90 91 /*** 92 * Return the collection of durable consumer names for a particular 93 * topic destination. 94 * 95 * @param destination the destination name 96 * @return Vector collection of strings 97 * @throws RemoteException if the connection cannot be created 98 */ 99 Vector getDurableConsumers(String destination) throws RemoteException; 100 101 /*** 102 * Deactivate an active persistent consumer. 103 * 104 * @param name name of the consumer 105 * @return boolean true if successful 106 * @throws RemoteException if the consumer cannot be unregistered 107 */ 108 boolean unregisterConsumer(String name) throws RemoteException; 109 110 /*** 111 * Check to see if the given consumer is currently connected to the 112 * OpenJMSServer. This is only valid when in online mode. 113 * 114 * @param name The name of the onsumer. 115 * @return boolean True if the consumer is connected. 116 * @throws RemoteException if the connection cannot be created 117 */ 118 boolean isConnected(String name) throws RemoteException; 119 120 /*** 121 * Add a specific destination with the specified name 122 * 123 * @param destination destination name 124 * @param queue whether it is queue or a topic 125 * @return boolean true if successful 126 * @throws RemoteException if the connection cannot be created 127 */ 128 boolean addDestination(String destination, Boolean queue) 129 throws RemoteException; 130 131 /*** 132 * Destroy the specified destination and all associated messsages and 133 * consumers. This is a very dangerous operation to execute while there 134 * are clients online 135 * 136 * @param name destination to destroy 137 * @return boolean if the destination got destroyed 138 * @throws RemoteException if the connection cannot be created 139 */ 140 boolean removeDestination(String name) throws RemoteException; 141 142 /*** 143 * Determine whether the destination with the specified name exists 144 * 145 * @param name - the destination to check 146 * @return boolean - if the destination exists 147 * @throws RemoteException if the connection cannot be created 148 */ 149 boolean destinationExists(String name) throws RemoteException; 150 151 /*** 152 * Return a list of all registered destinations. 153 * 154 * @return Vector collection of strings 155 * @throws RemoteException if the connection cannot be created 156 */ 157 Vector getAllDestinations() throws RemoteException; 158 159 /*** 160 * Return the number of outstanding messages for a particular destination. 161 * 162 * @param topic name of the topic 163 * @param name durable consumer name 164 * @return int message count 165 * @throws RemoteException if the connection cannot be created 166 */ 167 int getDurableConsumerMessageCount(String topic, String name) 168 throws RemoteException; 169 170 /*** 171 * Return the number of outstanding messages for a particular queue. 172 * 173 * @param queue the queue name 174 * @return int message count 175 * @throws RemoteException if the connection cannot be created 176 */ 177 int getQueueMessageCount(String queue) throws RemoteException; 178 179 /*** 180 * Purge all processed messages from the database 181 * 182 * @return int the number of purged messages 183 * @throws RemoteException if the connection cannot be created 184 */ 185 int purgeMessages() throws RemoteException; 186 187 /*** 188 * Terminate the JMS Server. If it is running as a standalone application 189 * then exit the application. It is running as an embedded application then 190 * just terminate the thread 191 * @throws RemoteException if the connection cannot be created 192 */ 193 void stopServer() throws RemoteException; 194 195 196 /*** 197 * Add a user with the specified name 198 * 199 * @param username the users name 200 * @param password the users password 201 * @return <code>true</code> if the user is added 202 * otherwise <code>false</code> 203 * @throws RemoteException if the connection cannot be created 204 */ 205 boolean addUser(String username, String password) throws RemoteException; 206 207 /*** 208 * Change password for the specified user 209 * 210 * @param username the users name 211 * @param password the users password 212 * @return <code>true</code> if the password is changed 213 * otherwise <code>false</code> 214 * @throws RemoteException if the connection cannot be created 215 */ 216 boolean changePassword(String username, String password) 217 throws RemoteException; 218 219 /*** 220 * Remove the specified user 221 * 222 * @param username the users name 223 * @return <code>true</code> if the user is removed 224 * otherwise <code>false</code> 225 * @throws RemoteException if the connection cannot be created 226 */ 227 boolean removeUser(String username) throws RemoteException; 228 229 /*** 230 * Return a list of all registered users. 231 * 232 * @return Vector of users 233 * @throws RemoteException if the connection cannot be created 234 */ 235 Vector getAllUsers() throws RemoteException; 236 237 }