/*
* JBoss, Home of Professional Open Source
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
* by the @authors tag. See the copyright.txt 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.messaging.jms.server.management;
import org.jboss.messaging.core.config.TransportConfiguration;
import org.jboss.messaging.core.management.Operation;
import org.jboss.messaging.core.management.Parameter;
import static javax.management.MBeanOperationInfo.ACTION;
/**
* @author <a href="mailto:jmesnil@redhat.com">Jeff Mesnil</a>
*
* @version <tt>$Revision$</tt>
*
*/
public interface JMSServerControlMBean
{
// Attributes ----------------------------------------------------
boolean isStarted();
String getVersion();
// Operations ----------------------------------------------------
@Operation(desc = "Create a JMS Queue", impact = ACTION)
boolean createQueue(
@Parameter(name = "name", desc = "Name of the queue to create") String name,
@Parameter(name = "jndiBinding", desc = "the name of the binding for JNDI") String jndiBinding)
throws Exception;
@Operation(desc = "Destroy a JMS Queue", impact = ACTION)
boolean destroyQueue(
@Parameter(name = "name", desc = "Name of the queue to destroy") String name)
throws Exception;
@Operation(desc = "Create a JMS Topic", impact = ACTION)
boolean createTopic(
@Parameter(name = "name", desc = "Name of the topic to create") String name,
@Parameter(name = "jndiBinding", desc = "the name of the binding for JNDI") String jndiBinding)
throws Exception;
@Operation(desc = "Destroy a JMS Topic", impact = ACTION)
boolean destroyTopic(
@Parameter(name = "name", desc = "Name of the topic to destroy") String name)
throws Exception;
@Operation(desc = "Create a JMS ConnectionFactory", impact = ACTION)
void createConnectionFactory(
@Parameter(name = "name", desc = "Name of the ConnectionFactory to create") String name,
@Parameter(name = "transportConfiguration", desc = "The remoting connector configuration") TransportConfiguration connectorConfig,
@Parameter(name = "backupTransportConfiguration", desc = "The backup remoting connector configuration") TransportConfiguration backupConnectorConfig,
@Parameter(name = "pingPeriod", desc = "The ping period in m") long pingPeriod,
@Parameter(name = "callTimeout", desc = "The call timeout in m") long callTimeout,
@Parameter(name = "clientID", desc = "ClientID for created connections") String clientID,
@Parameter(name = "dupsOKBatchSize", desc = "Size of the batch when using DUPS_OK") int dupsOKBatchSize,
@Parameter(name = "consumerWindowSize", desc = "Consumer's window size") int consumerWindowSize,
@Parameter(name = "consumerMaxRate", desc = "Consumer's max rate") int consumerMaxRate,
@Parameter(name = "producerWindowSize", desc = "Producer's window size") int producerWindowSize,
@Parameter(name = "producerMaxRate", desc = "Producer's max rate") int producerMaxRate,
@Parameter(name = "blockOnAcknowledge", desc = "Does acknowlegment block?") boolean blockOnAcknowledge,
@Parameter(name = "blockOnNonPersistentSend", desc = "Does sending non persistent messages block?") boolean blockOnNonPersistentSend,
@Parameter(name = "blockOnPersistentSend", desc = "Does sending persistent messages block") boolean blockOnPersistentSend,
@Parameter(name = "autoGroupId", desc = "Any Messages sent via this factories connections will automatically set th eproperty 'JMSXGroupId'") boolean autoGroupId,
@Parameter(name = "jndiBinding", desc = "JNDI Binding") String jndiBinding)
throws Exception;
@Operation(desc = "Create a JMS ConnectionFactory", impact = ACTION)
void destroyConnectionFactory(
@Parameter(name = "name", desc = "Name of the ConnectionFactory to create") String name)
throws Exception;
}