blob: 57568e497e32339761418f053fae835726c245f2 [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.camel.component.mina;
import java.nio.charset.Charset;
import java.util.List;
import org.apache.camel.LoggingLevel;
import org.apache.camel.RuntimeCamelException;
import org.apache.mina.common.IoFilter;
import org.apache.mina.filter.codec.ProtocolCodecFactory;
/**
* Mina configuration
*/
public class MinaConfiguration implements Cloneable {
private String protocol;
private String host;
private int port;
private boolean sync = true;
private boolean textline;
private TextLineDelimiter textlineDelimiter;
private ProtocolCodecFactory codec;
private String encoding;
private long timeout = 30000;
private boolean lazySessionCreation = true;
private boolean transferExchange;
private boolean minaLogger;
private int encoderMaxLineLength = -1;
private int decoderMaxLineLength = -1;
private List<IoFilter> filters;
private boolean allowDefaultCodec = true;
private boolean disconnect;
private boolean disconnectOnNoReply = true;
private LoggingLevel noReplyLogLevel = LoggingLevel.WARN;
/**
* Returns a copy of this configuration
*/
public MinaConfiguration copy() {
try {
return (MinaConfiguration) clone();
} catch (CloneNotSupportedException e) {
throw new RuntimeCamelException(e);
}
}
public String getCharsetName() {
if (encoding == null) {
return null;
}
if (!Charset.isSupported(encoding)) {
throw new IllegalArgumentException("The encoding: " + encoding + " is not supported");
}
return Charset.forName(encoding).name();
}
public String getProtocol() {
return protocol;
}
public void setProtocol(String protocol) {
this.protocol = protocol;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public boolean isSync() {
return sync;
}
public void setSync(boolean sync) {
this.sync = sync;
}
public boolean isTextline() {
return textline;
}
public void setTextline(boolean textline) {
this.textline = textline;
}
public TextLineDelimiter getTextlineDelimiter() {
return textlineDelimiter;
}
public void setTextlineDelimiter(TextLineDelimiter textlineDelimiter) {
this.textlineDelimiter = textlineDelimiter;
}
public ProtocolCodecFactory getCodec() {
return codec;
}
public void setCodec(ProtocolCodecFactory codec) {
this.codec = codec;
}
public String getEncoding() {
return encoding;
}
public void setEncoding(String encoding) {
this.encoding = encoding;
}
public long getTimeout() {
return timeout;
}
public void setTimeout(long timeout) {
this.timeout = timeout;
}
public boolean isLazySessionCreation() {
return lazySessionCreation;
}
public void setLazySessionCreation(boolean lazySessionCreation) {
this.lazySessionCreation = lazySessionCreation;
}
public boolean isTransferExchange() {
return transferExchange;
}
public void setTransferExchange(boolean transferExchange) {
this.transferExchange = transferExchange;
}
public void setEncoderMaxLineLength(int encoderMaxLineLength) {
this.encoderMaxLineLength = encoderMaxLineLength;
}
public int getEncoderMaxLineLength() {
return encoderMaxLineLength;
}
public void setDecoderMaxLineLength(int decoderMaxLineLength) {
this.decoderMaxLineLength = decoderMaxLineLength;
}
public int getDecoderMaxLineLength() {
return decoderMaxLineLength;
}
public boolean isMinaLogger() {
return minaLogger;
}
public void setMinaLogger(boolean minaLogger) {
this.minaLogger = minaLogger;
}
public List<IoFilter> getFilters() {
return filters;
}
public void setFilters(List<IoFilter> filters) {
this.filters = filters;
}
public boolean isDatagramProtocol() {
return protocol.equals("udp");
}
public void setAllowDefaultCodec(boolean allowDefaultCodec) {
this.allowDefaultCodec = allowDefaultCodec;
}
public boolean isAllowDefaultCodec() {
return allowDefaultCodec;
}
public boolean isDisconnect() {
return disconnect;
}
public void setDisconnect(boolean disconnect) {
this.disconnect = disconnect;
}
public boolean isDisconnectOnNoReply() {
return disconnectOnNoReply;
}
public void setDisconnectOnNoReply(boolean disconnectOnNoReply) {
this.disconnectOnNoReply = disconnectOnNoReply;
}
public LoggingLevel getNoReplyLogLevel() {
return noReplyLogLevel;
}
public void setNoReplyLogLevel(LoggingLevel noReplyLogLevel) {
this.noReplyLogLevel = noReplyLogLevel;
}
}