/* * JBoss, Home of Professional Open Source. * Copyright 2006, Red Hat Middleware LLC, and individual contributors * as indicated by the @author tags. See the copyright.txt file in the * distribution for a full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.jboss.mq.il; import javax.jms.Destination; import javax.jms.Queue; import javax.jms.TemporaryQueue; import javax.jms.TemporaryTopic; import javax.jms.Topic; import org.jboss.mq.AcknowledgementRequest; import org.jboss.mq.ConnectionToken; import org.jboss.mq.DurableSubscriptionID; import org.jboss.mq.SpyDestination; import org.jboss.mq.SpyMessage; import org.jboss.mq.TransactionRequest; /** * Defines the methods that can be called by a client on the server. * * @author Hiram Chirino * @author Norbert Lataille * @author Peter Antman * @version $Revision: 57198 $ * @created August 16, 2001 */ public interface ServerIL { /** * #Description of the Method * * @return Description of the Returned Value * @exception Exception Description of Exception */ public ServerIL cloneServerIL() throws Exception; /** * @param newConnectionToken org.jboss.mq.ConnectionToken * @exception java.lang.Exception The exception description. */ void setConnectionToken(org.jboss.mq.ConnectionToken newConnectionToken) throws java.lang.Exception; /** * Get a clientID from the server. It is up to the server side components * to update the ConectionToken if this method returns normaly. * * @return an internally generated clientID. * @exception Exception Description of Exception */ public String getID() throws Exception; /** * Gets the TemporaryTopic attribute of the ServerIL object * * @param dc Description of Parameter * @return The TemporaryTopic value * @exception Exception Description of Exception */ public TemporaryTopic getTemporaryTopic(ConnectionToken dc) throws Exception; /** * Gets the TemporaryQueue attribute of the ServerIL object * * @param dc Description of Parameter * @return The TemporaryQueue value * @exception Exception Description of Exception */ public TemporaryQueue getTemporaryQueue(ConnectionToken dc) throws Exception; /** * The client is closing the connection. * * @param dc Description of Parameter * @exception Exception Description of Exception */ public void connectionClosing(ConnectionToken dc) throws Exception; /** * Check if clientID is a valid ID. * * This method should be called when the client tries to set its own * clientID. It is up to the server side components * to update the ConectionToken if this method returns normaly. * * @param ID a clientID set by the client. * @exception Exception if the clientID was not vallid. */ public void checkID(String ID) throws Exception; /** * Adds a message to the destination specifyed in the message. * * @param dc The feature to be added to the Message attribute * @param message The feature to be added to the Message attribute * @exception Exception Description of Exception */ public void addMessage(ConnectionToken dc, SpyMessage message) throws Exception; /** * #Description of the Method * * @param dc Description of Parameter * @param dest Description of Parameter * @return Description of the Returned Value * @exception Exception Description of Exception */ public Queue createQueue(ConnectionToken dc, String dest) throws Exception; /** * #Description of the Method * * @param dc Description of Parameter * @param dest Description of Parameter * @return Description of the Returned Value * @exception Exception Description of Exception */ public Topic createTopic(ConnectionToken dc, String dest) throws Exception; /** * #Description of the Method * * @param dc Description of Parameter * @param dest Description of Parameter * @exception Exception Description of Exception */ public void deleteTemporaryDestination(ConnectionToken dc, SpyDestination dest) throws Exception; /** * #Description of the Method * * @param dc Description of Parameter * @param t Description of Parameter * @exception Exception Description of Exception */ public void transact(ConnectionToken dc, TransactionRequest t) throws Exception; /** * #Description of the Method * * @param dc Description of Parameter * @param item Description of Parameter * @exception Exception Description of Exception */ public void acknowledge(ConnectionToken dc, AcknowledgementRequest item) throws Exception; /** * #Description of the Method * * @param dc Description of Parameter * @param dest Description of Parameter * @param selector Description of Parameter * @return Description of the Returned Value * @exception Exception Description of Exception */ public SpyMessage[] browse(ConnectionToken dc, Destination dest, String selector) throws Exception; /** * Get a message synchronously. * * @param dc Description of Parameter * @param subscriberId Description of Parameter * @param wait Description of Parameter * @return Description of the Returned Value * @exception Exception Description of Exception */ public SpyMessage receive(ConnectionToken dc, int subscriberId, long wait) throws Exception; /** * Sets the Enabled attribute of the ServerIL object * * @param dc The new Enabled value * @param enabled The new Enabled value * @exception Exception Description of Exception */ public void setEnabled(ConnectionToken dc, boolean enabled) throws Exception; /** * Remove a consumer. Is NOT the same as the topic session unsubscribe. * * @param dc Description of Parameter * @param subscriptionId Description of Parameter * @exception Exception Description of Exception */ public void unsubscribe(ConnectionToken dc, int subscriptionId) throws Exception; /** * Unsubscribe from a durable subscription. * * @param id Description of Parameter * @exception Exception Description of Exception */ public void destroySubscription(ConnectionToken dc,DurableSubscriptionID id) throws Exception; /** * Get a clientID for a given user/password. * * May also be used for autentication if StateManager is used as * authenticator. * * @param userName a valid user name that the StateManager knows about. * @param password a password * @return a preconfigured clientID or null. * @exception Exception Description of Exception */ public String checkUser(String userName, String password) throws Exception; /** * Authenticate the user. * * If using a securityManager the user will be autenticated by that. * * @param userName a username. * @param password a password. * @return a sessionid, valid only for the life of this connection. * @exception Exception Description of Exception */ public String authenticate(String userName, String password) throws Exception; /** * @param dc org.jboss.mq.ConnectionToken * @param s org.jboss.mq.Subscription * @exception java.lang.Exception The exception description. */ void subscribe(org.jboss.mq.ConnectionToken dc, org.jboss.mq.Subscription s) throws java.lang.Exception; /** * Ping the server. * * @param dc Description of Parameter * @param clientTime Description of Parameter * @exception Exception Description of Exception */ public void ping(ConnectionToken dc, long clientTime) throws Exception; }