blob: 22704ab1fd071d7ddbf5d99dfa069f7cbd4aac79 [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.ignite.internal.visor.node;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import org.apache.ignite.configuration.ClientConnectorConfiguration;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.internal.visor.VisorDataTransferObject;
import org.jetbrains.annotations.Nullable;
import static org.apache.ignite.internal.visor.util.VisorTaskUtils.compactClass;
/**
* Data transfer object for client connector configuration.
*/
public class VisorClientConnectorConfiguration extends VisorDataTransferObject {
/** */
private static final long serialVersionUID = 0L;
/** Host. */
private String host;
/** Port. */
private int port;
/** Port range. */
private int portRange;
/** Max number of opened cursors per connection. */
private int maxOpenCursorsPerConn;
/** Socket send buffer size. */
private int sockSndBufSize;
/** Socket receive buffer size. */
private int sockRcvBufSize;
/** TCP no delay. */
private boolean tcpNoDelay;
/** Thread pool size. */
private int threadPoolSize;
/** Idle timeout. */
private long idleTimeout;
/** JDBC connections enabled flag. */
private boolean jdbcEnabled;
/** ODBC connections enabled flag. */
private boolean odbcEnabled;
/** JDBC connections enabled flag. */
private boolean thinCliEnabled;
/** SSL enable flag, default is disabled. */
private boolean sslEnabled;
/** If to use SSL context factory from Ignite configuration. */
private boolean useIgniteSslCtxFactory;
/** SSL need client auth flag. */
private boolean sslClientAuth;
/** SSL connection factory class name. */
private String sslCtxFactory;
/**
* Default constructor.
*/
public VisorClientConnectorConfiguration() {
// No-op.
}
/**
* Create data transfer object for Sql connector configuration.
*
* @param cfg Sql connector configuration.
*/
public VisorClientConnectorConfiguration(ClientConnectorConfiguration cfg) {
host = cfg.getHost();
port = cfg.getPort();
portRange = cfg.getPortRange();
maxOpenCursorsPerConn = cfg.getMaxOpenCursorsPerConnection();
sockSndBufSize = cfg.getSocketSendBufferSize();
sockRcvBufSize = cfg.getSocketReceiveBufferSize();
tcpNoDelay = cfg.isTcpNoDelay();
threadPoolSize = cfg.getThreadPoolSize();
idleTimeout = cfg.getIdleTimeout();
jdbcEnabled = cfg.isJdbcEnabled();
odbcEnabled = cfg.isOdbcEnabled();
thinCliEnabled = cfg.isThinClientEnabled();
sslEnabled = cfg.isSslEnabled();
useIgniteSslCtxFactory = cfg.isUseIgniteSslContextFactory();
sslClientAuth = cfg.isSslClientAuth();
sslCtxFactory = compactClass(cfg.getSslContextFactory());
}
/**
* @return Host.
*/
@Nullable public String getHost() {
return host;
}
/**
* @return Port.
*/
public int getPort() {
return port;
}
/**
* @return Port range.
*/
public int getPortRange() {
return portRange;
}
/**
* @return Maximum number of opened cursors.
*/
public int getMaxOpenCursorsPerConnection() {
return maxOpenCursorsPerConn;
}
/**
* @return Socket send buffer size in bytes.
*/
public int getSocketSendBufferSize() {
return sockSndBufSize;
}
/**
* @return Socket receive buffer size in bytes.
*/
public int getSocketReceiveBufferSize() {
return sockRcvBufSize;
}
/**
* @return TCP NO_DELAY flag.
*/
public boolean isTcpNoDelay() {
return tcpNoDelay;
}
/**
* @return Thread pool that is in charge of processing SQL requests.
*/
public int getThreadPoolSize() {
return threadPoolSize;
}
/**
* @return Idle timeout.
*/
public long getIdleTimeout() {
return idleTimeout;
}
/**
* @return JDBC connections enabled flag.
*/
public boolean isJdbcEnabled() {
return jdbcEnabled;
}
/**
* @return ODBC connections enabled flag.
*/
public boolean isOdbcEnabled() {
return odbcEnabled;
}
/**
* @return JDBC connections enabled flag.
*/
public boolean isThinClientEnabled() {
return thinCliEnabled;
}
/**
* @return SSL enable flag, default is disabled.
*/
public boolean isSslEnabled() {
return sslEnabled;
}
/**
* @return If to use SSL context factory from Ignite configuration.
*/
public boolean isUseIgniteSslContextFactory() {
return useIgniteSslCtxFactory;
}
/**
* @return SSL need client auth flag.
*/
public boolean isSslClientAuth() {
return sslClientAuth;
}
/**
* @return SSL connection factory.
*/
public String getSslContextFactory() {
return sslCtxFactory;
}
/** {@inheritDoc} */
@Override public byte getProtocolVersion() {
return V2;
}
/** {@inheritDoc} */
@Override protected void writeExternalData(ObjectOutput out) throws IOException {
U.writeString(out, host);
out.writeInt(port);
out.writeInt(portRange);
out.writeInt(maxOpenCursorsPerConn);
out.writeInt(sockSndBufSize);
out.writeInt(sockRcvBufSize);
out.writeBoolean(tcpNoDelay);
out.writeInt(threadPoolSize);
out.writeLong(idleTimeout);
out.writeBoolean(jdbcEnabled);
out.writeBoolean(odbcEnabled);
out.writeBoolean(thinCliEnabled);
out.writeBoolean(sslEnabled);
out.writeBoolean(useIgniteSslCtxFactory);
out.writeBoolean(sslClientAuth);
U.writeString(out, sslCtxFactory);
}
/** {@inheritDoc} */
@Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
host = U.readString(in);
port = in.readInt();
portRange = in.readInt();
maxOpenCursorsPerConn = in.readInt();
sockSndBufSize = in.readInt();
sockRcvBufSize = in.readInt();
tcpNoDelay = in.readBoolean();
threadPoolSize = in.readInt();
if (protoVer > V1) {
idleTimeout = in.readLong();
jdbcEnabled = in.readBoolean();
odbcEnabled = in.readBoolean();
thinCliEnabled = in.readBoolean();
sslEnabled = in.readBoolean();
useIgniteSslCtxFactory = in.readBoolean();
sslClientAuth = in.readBoolean();
sslCtxFactory = U.readString(in);
}
}
/** {@inheritDoc} */
@Override public String toString() {
return S.toString(VisorClientConnectorConfiguration.class, this);
}
}