blob: bb740f909448a238ae1575f0f698ac17f7789968 [file] [log] [blame]
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
package org.apache.qpid.topic;
import org.apache.qpid.client.AMQSession;
import org.apache.qpid.config.ConnectorConfig;
import org.apache.qpid.config.ConnectionFactoryInitialiser;
import org.apache.qpid.config.Connector;
import org.apache.qpid.config.AbstractConfig;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
class Config extends AbstractConfig implements ConnectorConfig
{
private String host = "localhost";
private int port = 5672;
private String factory = null;
private int payload = 256;
private int messages = 1000;
private int clients = 1;
private int batch = 1;
private long delay = 1;
private int warmup;
private int ackMode= AMQSession.NO_ACKNOWLEDGE;
private String clientId;
private String subscriptionId;
private boolean persistent;
public Config()
{
}
int getAckMode()
{
return ackMode;
}
void setPayload(int payload)
{
this.payload = payload;
}
int getPayload()
{
return payload;
}
void setClients(int clients)
{
this.clients = clients;
}
int getClients()
{
return clients;
}
void setMessages(int messages)
{
this.messages = messages;
}
int getMessages()
{
return messages;
}
public String getHost()
{
return host;
}
public void setHost(String host)
{
this.host = host;
}
public int getPort()
{
return port;
}
public String getFactory()
{
return factory;
}
public void setPort(int port)
{
this.port = port;
}
int getBatch()
{
return batch;
}
void setBatch(int batch)
{
this.batch = batch;
}
int getWarmup()
{
return warmup;
}
void setWarmup(int warmup)
{
this.warmup = warmup;
}
public long getDelay()
{
return delay;
}
public void setDelay(long delay)
{
this.delay = delay;
}
String getClientId()
{
return clientId;
}
String getSubscriptionId()
{
return subscriptionId;
}
boolean usePersistentMessages()
{
return persistent;
}
public void setOption(String key, String value)
{
if("-host".equalsIgnoreCase(key))
{
setHost(value);
}
else if("-port".equalsIgnoreCase(key))
{
try
{
setPort(Integer.parseInt(value));
}
catch(NumberFormatException e)
{
throw new RuntimeException("Bad port number: " + value);
}
}
else if("-payload".equalsIgnoreCase(key))
{
setPayload(parseInt("Bad payload size", value));
}
else if("-messages".equalsIgnoreCase(key))
{
setMessages(parseInt("Bad message count", value));
}
else if("-clients".equalsIgnoreCase(key))
{
setClients(parseInt("Bad client count", value));
}
else if("-batch".equalsIgnoreCase(key))
{
setBatch(parseInt("Bad batch count", value));
}
else if("-delay".equalsIgnoreCase(key))
{
setDelay(parseLong("Bad batch delay", value));
}
else if("-warmup".equalsIgnoreCase(key))
{
setWarmup(parseInt("Bad warmup count", value));
}
else if("-ack".equalsIgnoreCase(key))
{
ackMode = parseInt("Bad ack mode", value);
}
else if("-factory".equalsIgnoreCase(key))
{
factory = value;
}
else if("-clientId".equalsIgnoreCase(key))
{
clientId = value;
}
else if("-subscriptionId".equalsIgnoreCase(key))
{
subscriptionId = value;
}
else if("-persistent".equalsIgnoreCase(key))
{
persistent = "true".equalsIgnoreCase(value);
}
else
{
System.out.println("Ignoring unrecognised option: " + key);
}
}
static String getAckModeDescription(int ackMode)
{
switch(ackMode)
{
case AMQSession.NO_ACKNOWLEDGE: return "NO_ACKNOWLEDGE";
case AMQSession.AUTO_ACKNOWLEDGE: return "AUTO_ACKNOWLEDGE";
case AMQSession.CLIENT_ACKNOWLEDGE: return "CLIENT_ACKNOWLEDGE";
case AMQSession.DUPS_OK_ACKNOWLEDGE: return "DUPS_OK_ACKNOWELDGE";
case AMQSession.PRE_ACKNOWLEDGE: return "PRE_ACKNOWLEDGE";
}
return "AckMode=" + ackMode;
}
public Connection createConnection() throws Exception
{
return new Connector().createConnection(this);
}
}