http://git-wip-us.apache.org/repos/asf/accumulo/blob/fca82d84/core/src/main/java/org/apache/accumulo/core/replication/thrift/WalEdits.java ---------------------------------------------------------------------- diff --cc core/src/main/java/org/apache/accumulo/core/replication/thrift/WalEdits.java index b4942d4,0000000..e792f6a mode 100644,000000..100644 --- a/core/src/main/java/org/apache/accumulo/core/replication/thrift/WalEdits.java +++ b/core/src/main/java/org/apache/accumulo/core/replication/thrift/WalEdits.java @@@ -1,456 -1,0 +1,453 @@@ +/* + * 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. + */ +/** - * Autogenerated by Thrift Compiler (0.9.0) ++ * Autogenerated by Thrift Compiler (0.9.1) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package org.apache.accumulo.core.replication.thrift; + +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; + +import org.apache.thrift.scheme.TupleScheme; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.protocol.TProtocolException; +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.TException; ++import org.apache.thrift.async.AsyncMethodCallback; ++import org.apache.thrift.server.AbstractNonblockingServer.*; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; +import java.util.EnumMap; +import java.util.Set; +import java.util.HashSet; +import java.util.EnumSet; +import java.util.Collections; +import java.util.BitSet; +import java.nio.ByteBuffer; +import java.util.Arrays; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + - @SuppressWarnings("all") public class WalEdits implements org.apache.thrift.TBase<WalEdits, WalEdits._Fields>, java.io.Serializable, Cloneable { ++@SuppressWarnings("all") public class WalEdits implements org.apache.thrift.TBase<WalEdits, WalEdits._Fields>, java.io.Serializable, Cloneable, Comparable<WalEdits> { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("WalEdits"); + + private static final org.apache.thrift.protocol.TField EDITS_FIELD_DESC = new org.apache.thrift.protocol.TField("edits", org.apache.thrift.protocol.TType.LIST, (short)1); + + private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new WalEditsStandardSchemeFactory()); + schemes.put(TupleScheme.class, new WalEditsTupleSchemeFactory()); + } + + public List<ByteBuffer> edits; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum { + EDITS((short)1, "edits"); + + private static final Map<String, _Fields> byName = new HashMap<String, _Fields>(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // EDITS + return EDITS; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.EDITS, new org.apache.thrift.meta_data.FieldMetaData("edits", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , true)))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(WalEdits.class, metaDataMap); + } + + public WalEdits() { + } + + public WalEdits( + List<ByteBuffer> edits) + { + this(); + this.edits = edits; + } + + /** + * Performs a deep copy on <i>other</i>. + */ + public WalEdits(WalEdits other) { + if (other.isSetEdits()) { - List<ByteBuffer> __this__edits = new ArrayList<ByteBuffer>(); - for (ByteBuffer other_element : other.edits) { - ByteBuffer temp_binary_element = org.apache.thrift.TBaseHelper.copyBinary(other_element); - ; - __this__edits.add(temp_binary_element); - } ++ List<ByteBuffer> __this__edits = new ArrayList<ByteBuffer>(other.edits); + this.edits = __this__edits; + } + } + + public WalEdits deepCopy() { + return new WalEdits(this); + } + + @Override + public void clear() { + this.edits = null; + } + + public int getEditsSize() { + return (this.edits == null) ? 0 : this.edits.size(); + } + + public java.util.Iterator<ByteBuffer> getEditsIterator() { + return (this.edits == null) ? null : this.edits.iterator(); + } + + public void addToEdits(ByteBuffer elem) { + if (this.edits == null) { + this.edits = new ArrayList<ByteBuffer>(); + } + this.edits.add(elem); + } + + public List<ByteBuffer> getEdits() { + return this.edits; + } + + public WalEdits setEdits(List<ByteBuffer> edits) { + this.edits = edits; + return this; + } + + public void unsetEdits() { + this.edits = null; + } + + /** Returns true if field edits is set (has been assigned a value) and false otherwise */ + public boolean isSetEdits() { + return this.edits != null; + } + + public void setEditsIsSet(boolean value) { + if (!value) { + this.edits = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case EDITS: + if (value == null) { + unsetEdits(); + } else { + setEdits((List<ByteBuffer>)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case EDITS: + return getEdits(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case EDITS: + return isSetEdits(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof WalEdits) + return this.equals((WalEdits)that); + return false; + } + + public boolean equals(WalEdits that) { + if (that == null) + return false; + + boolean this_present_edits = true && this.isSetEdits(); + boolean that_present_edits = true && that.isSetEdits(); + if (this_present_edits || that_present_edits) { + if (!(this_present_edits && that_present_edits)) + return false; + if (!this.edits.equals(that.edits)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + return 0; + } + ++ @Override + public int compareTo(WalEdits other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; - WalEdits typedOther = (WalEdits)other; + - lastComparison = Boolean.valueOf(isSetEdits()).compareTo(typedOther.isSetEdits()); ++ lastComparison = Boolean.valueOf(isSetEdits()).compareTo(other.isSetEdits()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetEdits()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.edits, typedOther.edits); ++ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.edits, other.edits); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("WalEdits("); + boolean first = true; + + sb.append("edits:"); + if (this.edits == null) { + sb.append("null"); + } else { + sb.append(this.edits); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class WalEditsStandardSchemeFactory implements SchemeFactory { + public WalEditsStandardScheme getScheme() { + return new WalEditsStandardScheme(); + } + } + + private static class WalEditsStandardScheme extends StandardScheme<WalEdits> { + + public void read(org.apache.thrift.protocol.TProtocol iprot, WalEdits struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // EDITS + if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { + { + org.apache.thrift.protocol.TList _list0 = iprot.readListBegin(); + struct.edits = new ArrayList<ByteBuffer>(_list0.size); + for (int _i1 = 0; _i1 < _list0.size; ++_i1) + { - ByteBuffer _elem2; // required ++ ByteBuffer _elem2; + _elem2 = iprot.readBinary(); + struct.edits.add(_elem2); + } + iprot.readListEnd(); + } + struct.setEditsIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, WalEdits struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.edits != null) { + oprot.writeFieldBegin(EDITS_FIELD_DESC); + { + oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.edits.size())); + for (ByteBuffer _iter3 : struct.edits) + { + oprot.writeBinary(_iter3); + } + oprot.writeListEnd(); + } + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class WalEditsTupleSchemeFactory implements SchemeFactory { + public WalEditsTupleScheme getScheme() { + return new WalEditsTupleScheme(); + } + } + + private static class WalEditsTupleScheme extends TupleScheme<WalEdits> { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, WalEdits struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetEdits()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetEdits()) { + { + oprot.writeI32(struct.edits.size()); + for (ByteBuffer _iter4 : struct.edits) + { + oprot.writeBinary(_iter4); + } + } + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, WalEdits struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + { + org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.edits = new ArrayList<ByteBuffer>(_list5.size); + for (int _i6 = 0; _i6 < _list5.size; ++_i6) + { - ByteBuffer _elem7; // required ++ ByteBuffer _elem7; + _elem7 = iprot.readBinary(); + struct.edits.add(_elem7); + } + } + struct.setEditsIsSet(true); + } + } + } + +} +
http://git-wip-us.apache.org/repos/asf/accumulo/blob/fca82d84/pom.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/fca82d84/server/base/src/main/java/org/apache/accumulo/server/util/TServerUtils.java ---------------------------------------------------------------------- diff --cc server/base/src/main/java/org/apache/accumulo/server/util/TServerUtils.java index 419515e,b2d69af..671dedc --- a/server/base/src/main/java/org/apache/accumulo/server/util/TServerUtils.java +++ b/server/base/src/main/java/org/apache/accumulo/server/util/TServerUtils.java @@@ -199,40 -196,11 +197,10 @@@ public class TServerUtils } } - public static class THsHaServer extends org.apache.thrift.server.THsHaServer { - public THsHaServer(Args args) { - super(args); - } - - @Override - protected Runnable getRunnable(FrameBuffer frameBuffer) { - return new Invocation(frameBuffer); - } - - private class Invocation implements Runnable { - - private final FrameBuffer frameBuffer; - - public Invocation(final FrameBuffer frameBuffer) { - this.frameBuffer = frameBuffer; - } - - @Override - public void run() { - if (frameBuffer.trans_ instanceof TNonblockingSocket) { - TNonblockingSocket tsock = (TNonblockingSocket) frameBuffer.trans_; - Socket sock = tsock.getSocketChannel().socket(); - clientAddress.set(sock.getInetAddress().getHostAddress() + ":" + sock.getPort()); - } - frameBuffer.invoke(); - } - } - } - - public static ServerAddress createHsHaServer(HostAndPort address, TProcessor processor, final String serverName, String threadName, final int numThreads, - final int numSTThreads, long timeBetweenThreadChecks, long maxMessageSize) throws TTransportException { + public static ServerAddress createNonBlockingServer(HostAndPort address, TProcessor processor, final String serverName, String threadName, - final int numThreads, - long timeBetweenThreadChecks, long maxMessageSize) throws TTransportException { ++ final int numThreads, final int numSTThreads, long timeBetweenThreadChecks, long maxMessageSize) throws TTransportException { TNonblockingServerSocket transport = new TNonblockingServerSocket(new InetSocketAddress(address.getHostText(), address.getPort())); - THsHaServer.Args options = new THsHaServer.Args(transport); + CustomNonBlockingServer.Args options = new CustomNonBlockingServer.Args(transport); options.protocolFactory(ThriftUtil.protocolFactory()); options.transportFactory(ThriftUtil.transportFactory(maxMessageSize)); options.maxReadBufferBytes = maxMessageSize; @@@ -325,7 -293,7 +293,7 @@@ if (sslParams != null) { serverAddress = createSslThreadPoolServer(address, processor, sslSocketTimeout, sslParams); } else { - serverAddress = createHsHaServer(address, processor, serverName, threadName, numThreads, numSTThreads, timeBetweenThreadChecks, maxMessageSize); - serverAddress = createNonBlockingServer(address, processor, serverName, threadName, numThreads, timeBetweenThreadChecks, maxMessageSize); ++ serverAddress = createNonBlockingServer(address, processor, serverName, threadName, numThreads, numSTThreads, timeBetweenThreadChecks, maxMessageSize); } final TServer finalServer = serverAddress.server; Runnable serveTask = new Runnable() {