Create a copy of floodlight source files on which we can apply our changes.
Move imported floodlight from src/ext to import/ to better reflect its purpose (clean imported files).
diff --git a/src/ext/floodlight/build.xml b/build.xml
similarity index 100%
rename from src/ext/floodlight/build.xml
rename to build.xml
diff --git a/doc/readme b/doc/readme
deleted file mode 100644
index e69de29..0000000
--- a/doc/readme
+++ /dev/null
diff --git a/lib/gen-java/net/floodlightcontroller/packetstreamer/thrift/Constants.java b/lib/gen-java/net/floodlightcontroller/packetstreamer/thrift/Constants.java
new file mode 100644
index 0000000..d1ef80b
--- /dev/null
+++ b/lib/gen-java/net/floodlightcontroller/packetstreamer/thrift/Constants.java
@@ -0,0 +1,27 @@
+/**
+ * Autogenerated by Thrift Compiler (0.7.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ */
+package net.floodlightcontroller.packetstreamer.thrift;
+
+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 Constants {
+
+ public static final String VERSION = "0.1.0";
+
+}
diff --git a/lib/gen-java/net/floodlightcontroller/packetstreamer/thrift/Message.java b/lib/gen-java/net/floodlightcontroller/packetstreamer/thrift/Message.java
new file mode 100644
index 0000000..8e4d989
--- /dev/null
+++ b/lib/gen-java/net/floodlightcontroller/packetstreamer/thrift/Message.java
@@ -0,0 +1,446 @@
+/**
+ * Autogenerated by Thrift Compiler (0.7.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ */
+package net.floodlightcontroller.packetstreamer.thrift;
+
+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 Message implements org.apache.thrift.TBase<Message, Message._Fields>, java.io.Serializable, Cloneable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Message");
+
+ private static final org.apache.thrift.protocol.TField SESSION_IDS_FIELD_DESC = new org.apache.thrift.protocol.TField("sessionIDs", org.apache.thrift.protocol.TType.LIST, (short)1);
+ private static final org.apache.thrift.protocol.TField PACKET_FIELD_DESC = new org.apache.thrift.protocol.TField("packet", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+
+ public List<String> sessionIDs; // required
+ public Packet packet; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ SESSION_IDS((short)1, "sessionIDs"),
+ PACKET((short)2, "packet");
+
+ 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: // SESSION_IDS
+ return SESSION_IDS;
+ case 2: // PACKET
+ return PACKET;
+ 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.SESSION_IDS, new org.apache.thrift.meta_data.FieldMetaData("sessionIDs", 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))));
+ tmpMap.put(_Fields.PACKET, new org.apache.thrift.meta_data.FieldMetaData("packet", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Packet.class)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Message.class, metaDataMap);
+ }
+
+ public Message() {
+ }
+
+ public Message(
+ List<String> sessionIDs,
+ Packet packet)
+ {
+ this();
+ this.sessionIDs = sessionIDs;
+ this.packet = packet;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public Message(Message other) {
+ if (other.isSetSessionIDs()) {
+ List<String> __this__sessionIDs = new ArrayList<String>();
+ for (String other_element : other.sessionIDs) {
+ __this__sessionIDs.add(other_element);
+ }
+ this.sessionIDs = __this__sessionIDs;
+ }
+ if (other.isSetPacket()) {
+ this.packet = new Packet(other.packet);
+ }
+ }
+
+ public Message deepCopy() {
+ return new Message(this);
+ }
+
+ @Override
+ public void clear() {
+ this.sessionIDs = null;
+ this.packet = null;
+ }
+
+ public int getSessionIDsSize() {
+ return (this.sessionIDs == null) ? 0 : this.sessionIDs.size();
+ }
+
+ public java.util.Iterator<String> getSessionIDsIterator() {
+ return (this.sessionIDs == null) ? null : this.sessionIDs.iterator();
+ }
+
+ public void addToSessionIDs(String elem) {
+ if (this.sessionIDs == null) {
+ this.sessionIDs = new ArrayList<String>();
+ }
+ this.sessionIDs.add(elem);
+ }
+
+ public List<String> getSessionIDs() {
+ return this.sessionIDs;
+ }
+
+ public Message setSessionIDs(List<String> sessionIDs) {
+ this.sessionIDs = sessionIDs;
+ return this;
+ }
+
+ public void unsetSessionIDs() {
+ this.sessionIDs = null;
+ }
+
+ /** Returns true if field sessionIDs is set (has been assigned a value) and false otherwise */
+ public boolean isSetSessionIDs() {
+ return this.sessionIDs != null;
+ }
+
+ public void setSessionIDsIsSet(boolean value) {
+ if (!value) {
+ this.sessionIDs = null;
+ }
+ }
+
+ public Packet getPacket() {
+ return this.packet;
+ }
+
+ public Message setPacket(Packet packet) {
+ this.packet = packet;
+ return this;
+ }
+
+ public void unsetPacket() {
+ this.packet = null;
+ }
+
+ /** Returns true if field packet is set (has been assigned a value) and false otherwise */
+ public boolean isSetPacket() {
+ return this.packet != null;
+ }
+
+ public void setPacketIsSet(boolean value) {
+ if (!value) {
+ this.packet = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case SESSION_IDS:
+ if (value == null) {
+ unsetSessionIDs();
+ } else {
+ setSessionIDs((List<String>)value);
+ }
+ break;
+
+ case PACKET:
+ if (value == null) {
+ unsetPacket();
+ } else {
+ setPacket((Packet)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case SESSION_IDS:
+ return getSessionIDs();
+
+ case PACKET:
+ return getPacket();
+
+ }
+ 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 SESSION_IDS:
+ return isSetSessionIDs();
+ case PACKET:
+ return isSetPacket();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof Message)
+ return this.equals((Message)that);
+ return false;
+ }
+
+ public boolean equals(Message that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_sessionIDs = true && this.isSetSessionIDs();
+ boolean that_present_sessionIDs = true && that.isSetSessionIDs();
+ if (this_present_sessionIDs || that_present_sessionIDs) {
+ if (!(this_present_sessionIDs && that_present_sessionIDs))
+ return false;
+ if (!this.sessionIDs.equals(that.sessionIDs))
+ return false;
+ }
+
+ boolean this_present_packet = true && this.isSetPacket();
+ boolean that_present_packet = true && that.isSetPacket();
+ if (this_present_packet || that_present_packet) {
+ if (!(this_present_packet && that_present_packet))
+ return false;
+ if (!this.packet.equals(that.packet))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return 0;
+ }
+
+ public int compareTo(Message other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+ Message typedOther = (Message)other;
+
+ lastComparison = Boolean.valueOf(isSetSessionIDs()).compareTo(typedOther.isSetSessionIDs());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSessionIDs()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sessionIDs, typedOther.sessionIDs);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetPacket()).compareTo(typedOther.isSetPacket());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetPacket()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.packet, typedOther.packet);
+ 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 {
+ org.apache.thrift.protocol.TField field;
+ iprot.readStructBegin();
+ while (true)
+ {
+ field = iprot.readFieldBegin();
+ if (field.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (field.id) {
+ case 1: // SESSION_IDS
+ if (field.type == org.apache.thrift.protocol.TType.LIST) {
+ {
+ org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+ this.sessionIDs = new ArrayList<String>(_list0.size);
+ for (int _i1 = 0; _i1 < _list0.size; ++_i1)
+ {
+ String _elem2; // required
+ _elem2 = iprot.readString();
+ this.sessionIDs.add(_elem2);
+ }
+ iprot.readListEnd();
+ }
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ break;
+ case 2: // PACKET
+ if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
+ this.packet = new Packet();
+ this.packet.read(iprot);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (this.sessionIDs != null) {
+ oprot.writeFieldBegin(SESSION_IDS_FIELD_DESC);
+ {
+ oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.sessionIDs.size()));
+ for (String _iter3 : this.sessionIDs)
+ {
+ oprot.writeString(_iter3);
+ }
+ oprot.writeListEnd();
+ }
+ oprot.writeFieldEnd();
+ }
+ if (this.packet != null) {
+ oprot.writeFieldBegin(PACKET_FIELD_DESC);
+ this.packet.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("Message(");
+ boolean first = true;
+
+ sb.append("sessionIDs:");
+ if (this.sessionIDs == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.sessionIDs);
+ }
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("packet:");
+ if (this.packet == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.packet);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ }
+
+ 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);
+ }
+ }
+
+}
+
diff --git a/lib/gen-java/net/floodlightcontroller/packetstreamer/thrift/OFMessageType.java b/lib/gen-java/net/floodlightcontroller/packetstreamer/thrift/OFMessageType.java
new file mode 100644
index 0000000..b9b2843
--- /dev/null
+++ b/lib/gen-java/net/floodlightcontroller/packetstreamer/thrift/OFMessageType.java
@@ -0,0 +1,102 @@
+/**
+ * Autogenerated by Thrift Compiler (0.7.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ */
+package net.floodlightcontroller.packetstreamer.thrift;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * OFMessage type
+ *
+ */
+@SuppressWarnings("all") public enum OFMessageType implements org.apache.thrift.TEnum {
+ HELLO(0),
+ ERROR(1),
+ ECHO_REQUEST(2),
+ ECHO_REPLY(3),
+ VENDOR(4),
+ FEATURES_REQUEST(5),
+ FEATURES_REPLY(6),
+ GET_CONFIG_REQUEST(7),
+ GET_CONFIG_REPLY(8),
+ SET_CONFIG(9),
+ PACKET_IN(10),
+ FLOW_REMOVED(11),
+ PORT_STATUS(12),
+ PACKET_OUT(13),
+ FLOW_MOD(14),
+ PORT_MOD(15),
+ STATS_REQUEST(16),
+ STATS_REPLY(17),
+ BARRIER_REQUEST(18),
+ BARRIER_REPLY(19);
+
+ private final int value;
+
+ private OFMessageType(int value) {
+ this.value = value;
+ }
+
+ /**
+ * Get the integer value of this enum value, as defined in the Thrift IDL.
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * Find a the enum type by its integer value, as defined in the Thrift IDL.
+ * @return null if the value is not found.
+ */
+ public static OFMessageType findByValue(int value) {
+ switch (value) {
+ case 0:
+ return HELLO;
+ case 1:
+ return ERROR;
+ case 2:
+ return ECHO_REQUEST;
+ case 3:
+ return ECHO_REPLY;
+ case 4:
+ return VENDOR;
+ case 5:
+ return FEATURES_REQUEST;
+ case 6:
+ return FEATURES_REPLY;
+ case 7:
+ return GET_CONFIG_REQUEST;
+ case 8:
+ return GET_CONFIG_REPLY;
+ case 9:
+ return SET_CONFIG;
+ case 10:
+ return PACKET_IN;
+ case 11:
+ return FLOW_REMOVED;
+ case 12:
+ return PORT_STATUS;
+ case 13:
+ return PACKET_OUT;
+ case 14:
+ return FLOW_MOD;
+ case 15:
+ return PORT_MOD;
+ case 16:
+ return STATS_REQUEST;
+ case 17:
+ return STATS_REPLY;
+ case 18:
+ return BARRIER_REQUEST;
+ case 19:
+ return BARRIER_REPLY;
+ default:
+ return null;
+ }
+ }
+}
diff --git a/lib/gen-java/net/floodlightcontroller/packetstreamer/thrift/Packet.java b/lib/gen-java/net/floodlightcontroller/packetstreamer/thrift/Packet.java
new file mode 100644
index 0000000..65c140f
--- /dev/null
+++ b/lib/gen-java/net/floodlightcontroller/packetstreamer/thrift/Packet.java
@@ -0,0 +1,525 @@
+/**
+ * Autogenerated by Thrift Compiler (0.7.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ */
+package net.floodlightcontroller.packetstreamer.thrift;
+
+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 Packet implements org.apache.thrift.TBase<Packet, Packet._Fields>, java.io.Serializable, Cloneable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Packet");
+
+ private static final org.apache.thrift.protocol.TField MESSAGE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("messageType", org.apache.thrift.protocol.TType.I32, (short)1);
+ private static final org.apache.thrift.protocol.TField SW_PORT_TUPLE_FIELD_DESC = new org.apache.thrift.protocol.TField("swPortTuple", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+ private static final org.apache.thrift.protocol.TField DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("data", org.apache.thrift.protocol.TType.STRING, (short)3);
+
+ /**
+ *
+ * @see OFMessageType
+ */
+ public OFMessageType messageType; // required
+ public SwitchPortTuple swPortTuple; // required
+ public ByteBuffer data; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ /**
+ *
+ * @see OFMessageType
+ */
+ MESSAGE_TYPE((short)1, "messageType"),
+ SW_PORT_TUPLE((short)2, "swPortTuple"),
+ DATA((short)3, "data");
+
+ 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: // MESSAGE_TYPE
+ return MESSAGE_TYPE;
+ case 2: // SW_PORT_TUPLE
+ return SW_PORT_TUPLE;
+ case 3: // DATA
+ return DATA;
+ 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.MESSAGE_TYPE, new org.apache.thrift.meta_data.FieldMetaData("messageType", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, OFMessageType.class)));
+ tmpMap.put(_Fields.SW_PORT_TUPLE, new org.apache.thrift.meta_data.FieldMetaData("swPortTuple", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SwitchPortTuple.class)));
+ tmpMap.put(_Fields.DATA, new org.apache.thrift.meta_data.FieldMetaData("data", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ 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(Packet.class, metaDataMap);
+ }
+
+ public Packet() {
+ }
+
+ public Packet(
+ OFMessageType messageType,
+ SwitchPortTuple swPortTuple,
+ ByteBuffer data)
+ {
+ this();
+ this.messageType = messageType;
+ this.swPortTuple = swPortTuple;
+ this.data = data;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public Packet(Packet other) {
+ if (other.isSetMessageType()) {
+ this.messageType = other.messageType;
+ }
+ if (other.isSetSwPortTuple()) {
+ this.swPortTuple = new SwitchPortTuple(other.swPortTuple);
+ }
+ if (other.isSetData()) {
+ this.data = org.apache.thrift.TBaseHelper.copyBinary(other.data);
+;
+ }
+ }
+
+ public Packet deepCopy() {
+ return new Packet(this);
+ }
+
+ @Override
+ public void clear() {
+ this.messageType = null;
+ this.swPortTuple = null;
+ this.data = null;
+ }
+
+ /**
+ *
+ * @see OFMessageType
+ */
+ public OFMessageType getMessageType() {
+ return this.messageType;
+ }
+
+ /**
+ *
+ * @see OFMessageType
+ */
+ public Packet setMessageType(OFMessageType messageType) {
+ this.messageType = messageType;
+ return this;
+ }
+
+ public void unsetMessageType() {
+ this.messageType = null;
+ }
+
+ /** Returns true if field messageType is set (has been assigned a value) and false otherwise */
+ public boolean isSetMessageType() {
+ return this.messageType != null;
+ }
+
+ public void setMessageTypeIsSet(boolean value) {
+ if (!value) {
+ this.messageType = null;
+ }
+ }
+
+ public SwitchPortTuple getSwPortTuple() {
+ return this.swPortTuple;
+ }
+
+ public Packet setSwPortTuple(SwitchPortTuple swPortTuple) {
+ this.swPortTuple = swPortTuple;
+ return this;
+ }
+
+ public void unsetSwPortTuple() {
+ this.swPortTuple = null;
+ }
+
+ /** Returns true if field swPortTuple is set (has been assigned a value) and false otherwise */
+ public boolean isSetSwPortTuple() {
+ return this.swPortTuple != null;
+ }
+
+ public void setSwPortTupleIsSet(boolean value) {
+ if (!value) {
+ this.swPortTuple = null;
+ }
+ }
+
+ public byte[] getData() {
+ setData(org.apache.thrift.TBaseHelper.rightSize(data));
+ return data == null ? null : data.array();
+ }
+
+ public ByteBuffer bufferForData() {
+ return data;
+ }
+
+ public Packet setData(byte[] data) {
+ setData(data == null ? (ByteBuffer)null : ByteBuffer.wrap(data));
+ return this;
+ }
+
+ public Packet setData(ByteBuffer data) {
+ this.data = data;
+ return this;
+ }
+
+ public void unsetData() {
+ this.data = null;
+ }
+
+ /** Returns true if field data is set (has been assigned a value) and false otherwise */
+ public boolean isSetData() {
+ return this.data != null;
+ }
+
+ public void setDataIsSet(boolean value) {
+ if (!value) {
+ this.data = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case MESSAGE_TYPE:
+ if (value == null) {
+ unsetMessageType();
+ } else {
+ setMessageType((OFMessageType)value);
+ }
+ break;
+
+ case SW_PORT_TUPLE:
+ if (value == null) {
+ unsetSwPortTuple();
+ } else {
+ setSwPortTuple((SwitchPortTuple)value);
+ }
+ break;
+
+ case DATA:
+ if (value == null) {
+ unsetData();
+ } else {
+ setData((ByteBuffer)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case MESSAGE_TYPE:
+ return getMessageType();
+
+ case SW_PORT_TUPLE:
+ return getSwPortTuple();
+
+ case DATA:
+ return getData();
+
+ }
+ 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 MESSAGE_TYPE:
+ return isSetMessageType();
+ case SW_PORT_TUPLE:
+ return isSetSwPortTuple();
+ case DATA:
+ return isSetData();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof Packet)
+ return this.equals((Packet)that);
+ return false;
+ }
+
+ public boolean equals(Packet that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_messageType = true && this.isSetMessageType();
+ boolean that_present_messageType = true && that.isSetMessageType();
+ if (this_present_messageType || that_present_messageType) {
+ if (!(this_present_messageType && that_present_messageType))
+ return false;
+ if (!this.messageType.equals(that.messageType))
+ return false;
+ }
+
+ boolean this_present_swPortTuple = true && this.isSetSwPortTuple();
+ boolean that_present_swPortTuple = true && that.isSetSwPortTuple();
+ if (this_present_swPortTuple || that_present_swPortTuple) {
+ if (!(this_present_swPortTuple && that_present_swPortTuple))
+ return false;
+ if (!this.swPortTuple.equals(that.swPortTuple))
+ return false;
+ }
+
+ boolean this_present_data = true && this.isSetData();
+ boolean that_present_data = true && that.isSetData();
+ if (this_present_data || that_present_data) {
+ if (!(this_present_data && that_present_data))
+ return false;
+ if (!this.data.equals(that.data))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return 0;
+ }
+
+ public int compareTo(Packet other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+ Packet typedOther = (Packet)other;
+
+ lastComparison = Boolean.valueOf(isSetMessageType()).compareTo(typedOther.isSetMessageType());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetMessageType()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.messageType, typedOther.messageType);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetSwPortTuple()).compareTo(typedOther.isSetSwPortTuple());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSwPortTuple()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.swPortTuple, typedOther.swPortTuple);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetData()).compareTo(typedOther.isSetData());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetData()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.data, typedOther.data);
+ 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 {
+ org.apache.thrift.protocol.TField field;
+ iprot.readStructBegin();
+ while (true)
+ {
+ field = iprot.readFieldBegin();
+ if (field.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (field.id) {
+ case 1: // MESSAGE_TYPE
+ if (field.type == org.apache.thrift.protocol.TType.I32) {
+ this.messageType = OFMessageType.findByValue(iprot.readI32());
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ break;
+ case 2: // SW_PORT_TUPLE
+ if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
+ this.swPortTuple = new SwitchPortTuple();
+ this.swPortTuple.read(iprot);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ break;
+ case 3: // DATA
+ if (field.type == org.apache.thrift.protocol.TType.STRING) {
+ this.data = iprot.readBinary();
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (this.messageType != null) {
+ oprot.writeFieldBegin(MESSAGE_TYPE_FIELD_DESC);
+ oprot.writeI32(this.messageType.getValue());
+ oprot.writeFieldEnd();
+ }
+ if (this.swPortTuple != null) {
+ oprot.writeFieldBegin(SW_PORT_TUPLE_FIELD_DESC);
+ this.swPortTuple.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ if (this.data != null) {
+ oprot.writeFieldBegin(DATA_FIELD_DESC);
+ oprot.writeBinary(this.data);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("Packet(");
+ boolean first = true;
+
+ sb.append("messageType:");
+ if (this.messageType == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.messageType);
+ }
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("swPortTuple:");
+ if (this.swPortTuple == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.swPortTuple);
+ }
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("data:");
+ if (this.data == null) {
+ sb.append("null");
+ } else {
+ org.apache.thrift.TBaseHelper.toString(this.data, sb);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ }
+
+ 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);
+ }
+ }
+
+}
+
diff --git a/lib/gen-java/net/floodlightcontroller/packetstreamer/thrift/PacketStreamer.java b/lib/gen-java/net/floodlightcontroller/packetstreamer/thrift/PacketStreamer.java
new file mode 100644
index 0000000..f4e8ae5
--- /dev/null
+++ b/lib/gen-java/net/floodlightcontroller/packetstreamer/thrift/PacketStreamer.java
@@ -0,0 +1,2427 @@
+/**
+ * Autogenerated by Thrift Compiler (0.7.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ */
+package net.floodlightcontroller.packetstreamer.thrift;
+
+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 PacketStreamer {
+
+ /**
+ * Packetstreamer API
+ */
+ public interface Iface {
+
+ /**
+ * Synchronous method to get packets for a given sessionid
+ *
+ * @param sessionid
+ */
+ public List<ByteBuffer> getPackets(String sessionid) throws org.apache.thrift.TException;
+
+ /**
+ * Synchronous method to publish a packet.
+ * It ensure the order that the packets are pushed
+ *
+ * @param packet
+ */
+ public int pushMessageSync(Message packet) throws org.apache.thrift.TException;
+
+ /**
+ * Asynchronous method to publish a packet.
+ * Order is not guaranteed.
+ *
+ * @param packet
+ */
+ public void pushMessageAsync(Message packet) throws org.apache.thrift.TException;
+
+ /**
+ * Terminate a session
+ *
+ * @param sessionid
+ */
+ public void terminateSession(String sessionid) throws org.apache.thrift.TException;
+
+ }
+
+ public interface AsyncIface {
+
+ public void getPackets(String sessionid, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getPackets_call> resultHandler) throws org.apache.thrift.TException;
+
+ public void pushMessageSync(Message packet, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.pushMessageSync_call> resultHandler) throws org.apache.thrift.TException;
+
+ public void pushMessageAsync(Message packet, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.pushMessageAsync_call> resultHandler) throws org.apache.thrift.TException;
+
+ public void terminateSession(String sessionid, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.terminateSession_call> resultHandler) throws org.apache.thrift.TException;
+
+ }
+
+ public static class Client extends org.apache.thrift.TServiceClient implements Iface {
+ public static class Factory implements org.apache.thrift.TServiceClientFactory<Client> {
+ public Factory() {}
+ public Client getClient(org.apache.thrift.protocol.TProtocol prot) {
+ return new Client(prot);
+ }
+ public Client getClient(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) {
+ return new Client(iprot, oprot);
+ }
+ }
+
+ public Client(org.apache.thrift.protocol.TProtocol prot)
+ {
+ super(prot, prot);
+ }
+
+ public Client(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) {
+ super(iprot, oprot);
+ }
+
+ public List<ByteBuffer> getPackets(String sessionid) throws org.apache.thrift.TException
+ {
+ send_getPackets(sessionid);
+ return recv_getPackets();
+ }
+
+ public void send_getPackets(String sessionid) throws org.apache.thrift.TException
+ {
+ getPackets_args args = new getPackets_args();
+ args.setSessionid(sessionid);
+ sendBase("getPackets", args);
+ }
+
+ public List<ByteBuffer> recv_getPackets() throws org.apache.thrift.TException
+ {
+ getPackets_result result = new getPackets_result();
+ receiveBase(result, "getPackets");
+ if (result.isSetSuccess()) {
+ return result.success;
+ }
+ throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getPackets failed: unknown result");
+ }
+
+ public int pushMessageSync(Message packet) throws org.apache.thrift.TException
+ {
+ send_pushMessageSync(packet);
+ return recv_pushMessageSync();
+ }
+
+ public void send_pushMessageSync(Message packet) throws org.apache.thrift.TException
+ {
+ pushMessageSync_args args = new pushMessageSync_args();
+ args.setPacket(packet);
+ sendBase("pushMessageSync", args);
+ }
+
+ public int recv_pushMessageSync() throws org.apache.thrift.TException
+ {
+ pushMessageSync_result result = new pushMessageSync_result();
+ receiveBase(result, "pushMessageSync");
+ if (result.isSetSuccess()) {
+ return result.success;
+ }
+ throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "pushMessageSync failed: unknown result");
+ }
+
+ public void pushMessageAsync(Message packet) throws org.apache.thrift.TException
+ {
+ send_pushMessageAsync(packet);
+ }
+
+ public void send_pushMessageAsync(Message packet) throws org.apache.thrift.TException
+ {
+ pushMessageAsync_args args = new pushMessageAsync_args();
+ args.setPacket(packet);
+ sendBase("pushMessageAsync", args);
+ }
+
+ public void terminateSession(String sessionid) throws org.apache.thrift.TException
+ {
+ send_terminateSession(sessionid);
+ recv_terminateSession();
+ }
+
+ public void send_terminateSession(String sessionid) throws org.apache.thrift.TException
+ {
+ terminateSession_args args = new terminateSession_args();
+ args.setSessionid(sessionid);
+ sendBase("terminateSession", args);
+ }
+
+ public void recv_terminateSession() throws org.apache.thrift.TException
+ {
+ terminateSession_result result = new terminateSession_result();
+ receiveBase(result, "terminateSession");
+ return;
+ }
+
+ }
+ public static class AsyncClient extends org.apache.thrift.async.TAsyncClient implements AsyncIface {
+ public static class Factory implements org.apache.thrift.async.TAsyncClientFactory<AsyncClient> {
+ private org.apache.thrift.async.TAsyncClientManager clientManager;
+ private org.apache.thrift.protocol.TProtocolFactory protocolFactory;
+ public Factory(org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.protocol.TProtocolFactory protocolFactory) {
+ this.clientManager = clientManager;
+ this.protocolFactory = protocolFactory;
+ }
+ public AsyncClient getAsyncClient(org.apache.thrift.transport.TNonblockingTransport transport) {
+ return new AsyncClient(protocolFactory, clientManager, transport);
+ }
+ }
+
+ public AsyncClient(org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.transport.TNonblockingTransport transport) {
+ super(protocolFactory, clientManager, transport);
+ }
+
+ public void getPackets(String sessionid, org.apache.thrift.async.AsyncMethodCallback<getPackets_call> resultHandler) throws org.apache.thrift.TException {
+ checkReady();
+ getPackets_call method_call = new getPackets_call(sessionid, resultHandler, this, ___protocolFactory, ___transport);
+ this.___currentMethod = method_call;
+ ___manager.call(method_call);
+ }
+
+ public static class getPackets_call extends org.apache.thrift.async.TAsyncMethodCall {
+ private String sessionid;
+ public getPackets_call(String sessionid, org.apache.thrift.async.AsyncMethodCallback<getPackets_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+ super(client, protocolFactory, transport, resultHandler, false);
+ this.sessionid = sessionid;
+ }
+
+ public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+ prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getPackets", org.apache.thrift.protocol.TMessageType.CALL, 0));
+ getPackets_args args = new getPackets_args();
+ args.setSessionid(sessionid);
+ args.write(prot);
+ prot.writeMessageEnd();
+ }
+
+ public List<ByteBuffer> getResult() throws org.apache.thrift.TException {
+ if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+ throw new IllegalStateException("Method call not finished!");
+ }
+ org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+ org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+ return (new Client(prot)).recv_getPackets();
+ }
+ }
+
+ public void pushMessageSync(Message packet, org.apache.thrift.async.AsyncMethodCallback<pushMessageSync_call> resultHandler) throws org.apache.thrift.TException {
+ checkReady();
+ pushMessageSync_call method_call = new pushMessageSync_call(packet, resultHandler, this, ___protocolFactory, ___transport);
+ this.___currentMethod = method_call;
+ ___manager.call(method_call);
+ }
+
+ public static class pushMessageSync_call extends org.apache.thrift.async.TAsyncMethodCall {
+ private Message packet;
+ public pushMessageSync_call(Message packet, org.apache.thrift.async.AsyncMethodCallback<pushMessageSync_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+ super(client, protocolFactory, transport, resultHandler, false);
+ this.packet = packet;
+ }
+
+ public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+ prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("pushMessageSync", org.apache.thrift.protocol.TMessageType.CALL, 0));
+ pushMessageSync_args args = new pushMessageSync_args();
+ args.setPacket(packet);
+ args.write(prot);
+ prot.writeMessageEnd();
+ }
+
+ public int getResult() throws org.apache.thrift.TException {
+ if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+ throw new IllegalStateException("Method call not finished!");
+ }
+ org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+ org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+ return (new Client(prot)).recv_pushMessageSync();
+ }
+ }
+
+ public void pushMessageAsync(Message packet, org.apache.thrift.async.AsyncMethodCallback<pushMessageAsync_call> resultHandler) throws org.apache.thrift.TException {
+ checkReady();
+ pushMessageAsync_call method_call = new pushMessageAsync_call(packet, resultHandler, this, ___protocolFactory, ___transport);
+ this.___currentMethod = method_call;
+ ___manager.call(method_call);
+ }
+
+ public static class pushMessageAsync_call extends org.apache.thrift.async.TAsyncMethodCall {
+ private Message packet;
+ public pushMessageAsync_call(Message packet, org.apache.thrift.async.AsyncMethodCallback<pushMessageAsync_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+ super(client, protocolFactory, transport, resultHandler, true);
+ this.packet = packet;
+ }
+
+ public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+ prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("pushMessageAsync", org.apache.thrift.protocol.TMessageType.CALL, 0));
+ pushMessageAsync_args args = new pushMessageAsync_args();
+ args.setPacket(packet);
+ args.write(prot);
+ prot.writeMessageEnd();
+ }
+
+ public void getResult() throws org.apache.thrift.TException {
+ if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+ throw new IllegalStateException("Method call not finished!");
+ }
+ org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+ org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+ }
+ }
+
+ public void terminateSession(String sessionid, org.apache.thrift.async.AsyncMethodCallback<terminateSession_call> resultHandler) throws org.apache.thrift.TException {
+ checkReady();
+ terminateSession_call method_call = new terminateSession_call(sessionid, resultHandler, this, ___protocolFactory, ___transport);
+ this.___currentMethod = method_call;
+ ___manager.call(method_call);
+ }
+
+ public static class terminateSession_call extends org.apache.thrift.async.TAsyncMethodCall {
+ private String sessionid;
+ public terminateSession_call(String sessionid, org.apache.thrift.async.AsyncMethodCallback<terminateSession_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+ super(client, protocolFactory, transport, resultHandler, false);
+ this.sessionid = sessionid;
+ }
+
+ public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+ prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("terminateSession", org.apache.thrift.protocol.TMessageType.CALL, 0));
+ terminateSession_args args = new terminateSession_args();
+ args.setSessionid(sessionid);
+ args.write(prot);
+ prot.writeMessageEnd();
+ }
+
+ public void getResult() throws org.apache.thrift.TException {
+ if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+ throw new IllegalStateException("Method call not finished!");
+ }
+ org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+ org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+ (new Client(prot)).recv_terminateSession();
+ }
+ }
+
+ }
+
+ public static class Processor<I extends Iface> extends org.apache.thrift.TBaseProcessor implements org.apache.thrift.TProcessor {
+ private static final Logger LOGGER = LoggerFactory.getLogger(Processor.class.getName());
+ public Processor(I iface) {
+ super(iface, getProcessMap(new HashMap<String, org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>>()));
+ }
+
+ protected Processor(I iface, Map<String, org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>> processMap) {
+ super(iface, getProcessMap(processMap));
+ }
+
+ private static <I extends Iface> Map<String, org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>> getProcessMap(Map<String, org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>> processMap) {
+ processMap.put("getPackets", new getPackets());
+ processMap.put("pushMessageSync", new pushMessageSync());
+ processMap.put("pushMessageAsync", new pushMessageAsync());
+ processMap.put("terminateSession", new terminateSession());
+ return processMap;
+ }
+
+ private static class getPackets<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getPackets_args> {
+ public getPackets() {
+ super("getPackets");
+ }
+
+ protected getPackets_args getEmptyArgsInstance() {
+ return new getPackets_args();
+ }
+
+ protected getPackets_result getResult(I iface, getPackets_args args) throws org.apache.thrift.TException {
+ getPackets_result result = new getPackets_result();
+ result.success = iface.getPackets(args.sessionid);
+ return result;
+ }
+ }
+
+ private static class pushMessageSync<I extends Iface> extends org.apache.thrift.ProcessFunction<I, pushMessageSync_args> {
+ public pushMessageSync() {
+ super("pushMessageSync");
+ }
+
+ protected pushMessageSync_args getEmptyArgsInstance() {
+ return new pushMessageSync_args();
+ }
+
+ protected pushMessageSync_result getResult(I iface, pushMessageSync_args args) throws org.apache.thrift.TException {
+ pushMessageSync_result result = new pushMessageSync_result();
+ result.success = iface.pushMessageSync(args.packet);
+ result.setSuccessIsSet(true);
+ return result;
+ }
+ }
+
+ private static class pushMessageAsync<I extends Iface> extends org.apache.thrift.ProcessFunction<I, pushMessageAsync_args> {
+ public pushMessageAsync() {
+ super("pushMessageAsync");
+ }
+
+ protected pushMessageAsync_args getEmptyArgsInstance() {
+ return new pushMessageAsync_args();
+ }
+
+ protected org.apache.thrift.TBase getResult(I iface, pushMessageAsync_args args) throws org.apache.thrift.TException {
+ iface.pushMessageAsync(args.packet);
+ return null;
+ }
+ }
+
+ private static class terminateSession<I extends Iface> extends org.apache.thrift.ProcessFunction<I, terminateSession_args> {
+ public terminateSession() {
+ super("terminateSession");
+ }
+
+ protected terminateSession_args getEmptyArgsInstance() {
+ return new terminateSession_args();
+ }
+
+ protected terminateSession_result getResult(I iface, terminateSession_args args) throws org.apache.thrift.TException {
+ terminateSession_result result = new terminateSession_result();
+ iface.terminateSession(args.sessionid);
+ return result;
+ }
+ }
+
+ }
+
+ public static class getPackets_args implements org.apache.thrift.TBase<getPackets_args, getPackets_args._Fields>, java.io.Serializable, Cloneable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getPackets_args");
+
+ private static final org.apache.thrift.protocol.TField SESSIONID_FIELD_DESC = new org.apache.thrift.protocol.TField("sessionid", org.apache.thrift.protocol.TType.STRING, (short)1);
+
+ public String sessionid; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ SESSIONID((short)1, "sessionid");
+
+ 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: // SESSIONID
+ return SESSIONID;
+ 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.SESSIONID, new org.apache.thrift.meta_data.FieldMetaData("sessionid", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getPackets_args.class, metaDataMap);
+ }
+
+ public getPackets_args() {
+ }
+
+ public getPackets_args(
+ String sessionid)
+ {
+ this();
+ this.sessionid = sessionid;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public getPackets_args(getPackets_args other) {
+ if (other.isSetSessionid()) {
+ this.sessionid = other.sessionid;
+ }
+ }
+
+ public getPackets_args deepCopy() {
+ return new getPackets_args(this);
+ }
+
+ @Override
+ public void clear() {
+ this.sessionid = null;
+ }
+
+ public String getSessionid() {
+ return this.sessionid;
+ }
+
+ public getPackets_args setSessionid(String sessionid) {
+ this.sessionid = sessionid;
+ return this;
+ }
+
+ public void unsetSessionid() {
+ this.sessionid = null;
+ }
+
+ /** Returns true if field sessionid is set (has been assigned a value) and false otherwise */
+ public boolean isSetSessionid() {
+ return this.sessionid != null;
+ }
+
+ public void setSessionidIsSet(boolean value) {
+ if (!value) {
+ this.sessionid = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case SESSIONID:
+ if (value == null) {
+ unsetSessionid();
+ } else {
+ setSessionid((String)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case SESSIONID:
+ return getSessionid();
+
+ }
+ 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 SESSIONID:
+ return isSetSessionid();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof getPackets_args)
+ return this.equals((getPackets_args)that);
+ return false;
+ }
+
+ public boolean equals(getPackets_args that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_sessionid = true && this.isSetSessionid();
+ boolean that_present_sessionid = true && that.isSetSessionid();
+ if (this_present_sessionid || that_present_sessionid) {
+ if (!(this_present_sessionid && that_present_sessionid))
+ return false;
+ if (!this.sessionid.equals(that.sessionid))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return 0;
+ }
+
+ public int compareTo(getPackets_args other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+ getPackets_args typedOther = (getPackets_args)other;
+
+ lastComparison = Boolean.valueOf(isSetSessionid()).compareTo(typedOther.isSetSessionid());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSessionid()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sessionid, typedOther.sessionid);
+ 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 {
+ org.apache.thrift.protocol.TField field;
+ iprot.readStructBegin();
+ while (true)
+ {
+ field = iprot.readFieldBegin();
+ if (field.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (field.id) {
+ case 1: // SESSIONID
+ if (field.type == org.apache.thrift.protocol.TType.STRING) {
+ this.sessionid = iprot.readString();
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (this.sessionid != null) {
+ oprot.writeFieldBegin(SESSIONID_FIELD_DESC);
+ oprot.writeString(this.sessionid);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("getPackets_args(");
+ boolean first = true;
+
+ sb.append("sessionid:");
+ if (this.sessionid == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.sessionid);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ }
+
+ 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);
+ }
+ }
+
+ }
+
+ public static class getPackets_result implements org.apache.thrift.TBase<getPackets_result, getPackets_result._Fields>, java.io.Serializable, Cloneable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getPackets_result");
+
+ private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
+
+ public List<ByteBuffer> success; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ SUCCESS((short)0, "success");
+
+ 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 0: // SUCCESS
+ return SUCCESS;
+ 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.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", 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(getPackets_result.class, metaDataMap);
+ }
+
+ public getPackets_result() {
+ }
+
+ public getPackets_result(
+ List<ByteBuffer> success)
+ {
+ this();
+ this.success = success;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public getPackets_result(getPackets_result other) {
+ if (other.isSetSuccess()) {
+ List<ByteBuffer> __this__success = new ArrayList<ByteBuffer>();
+ for (ByteBuffer other_element : other.success) {
+ ByteBuffer temp_binary_element = org.apache.thrift.TBaseHelper.copyBinary(other_element);
+;
+ __this__success.add(temp_binary_element);
+ }
+ this.success = __this__success;
+ }
+ }
+
+ public getPackets_result deepCopy() {
+ return new getPackets_result(this);
+ }
+
+ @Override
+ public void clear() {
+ this.success = null;
+ }
+
+ public int getSuccessSize() {
+ return (this.success == null) ? 0 : this.success.size();
+ }
+
+ public java.util.Iterator<ByteBuffer> getSuccessIterator() {
+ return (this.success == null) ? null : this.success.iterator();
+ }
+
+ public void addToSuccess(ByteBuffer elem) {
+ if (this.success == null) {
+ this.success = new ArrayList<ByteBuffer>();
+ }
+ this.success.add(elem);
+ }
+
+ public List<ByteBuffer> getSuccess() {
+ return this.success;
+ }
+
+ public getPackets_result setSuccess(List<ByteBuffer> success) {
+ this.success = success;
+ return this;
+ }
+
+ public void unsetSuccess() {
+ this.success = null;
+ }
+
+ /** Returns true if field success is set (has been assigned a value) and false otherwise */
+ public boolean isSetSuccess() {
+ return this.success != null;
+ }
+
+ public void setSuccessIsSet(boolean value) {
+ if (!value) {
+ this.success = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case SUCCESS:
+ if (value == null) {
+ unsetSuccess();
+ } else {
+ setSuccess((List<ByteBuffer>)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case SUCCESS:
+ return getSuccess();
+
+ }
+ 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 SUCCESS:
+ return isSetSuccess();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof getPackets_result)
+ return this.equals((getPackets_result)that);
+ return false;
+ }
+
+ public boolean equals(getPackets_result that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_success = true && this.isSetSuccess();
+ boolean that_present_success = true && that.isSetSuccess();
+ if (this_present_success || that_present_success) {
+ if (!(this_present_success && that_present_success))
+ return false;
+ if (!this.success.equals(that.success))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return 0;
+ }
+
+ public int compareTo(getPackets_result other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+ getPackets_result typedOther = (getPackets_result)other;
+
+ lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSuccess()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
+ 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 {
+ org.apache.thrift.protocol.TField field;
+ iprot.readStructBegin();
+ while (true)
+ {
+ field = iprot.readFieldBegin();
+ if (field.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (field.id) {
+ case 0: // SUCCESS
+ if (field.type == org.apache.thrift.protocol.TType.LIST) {
+ {
+ org.apache.thrift.protocol.TList _list4 = iprot.readListBegin();
+ this.success = new ArrayList<ByteBuffer>(_list4.size);
+ for (int _i5 = 0; _i5 < _list4.size; ++_i5)
+ {
+ ByteBuffer _elem6; // required
+ _elem6 = iprot.readBinary();
+ this.success.add(_elem6);
+ }
+ iprot.readListEnd();
+ }
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ oprot.writeStructBegin(STRUCT_DESC);
+
+ if (this.isSetSuccess()) {
+ oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+ {
+ oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.success.size()));
+ for (ByteBuffer _iter7 : this.success)
+ {
+ oprot.writeBinary(_iter7);
+ }
+ oprot.writeListEnd();
+ }
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("getPackets_result(");
+ boolean first = true;
+
+ sb.append("success:");
+ if (this.success == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.success);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ }
+
+ 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);
+ }
+ }
+
+ }
+
+ public static class pushMessageSync_args implements org.apache.thrift.TBase<pushMessageSync_args, pushMessageSync_args._Fields>, java.io.Serializable, Cloneable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pushMessageSync_args");
+
+ private static final org.apache.thrift.protocol.TField PACKET_FIELD_DESC = new org.apache.thrift.protocol.TField("packet", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+ public Message packet; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ PACKET((short)1, "packet");
+
+ 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: // PACKET
+ return PACKET;
+ 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.PACKET, new org.apache.thrift.meta_data.FieldMetaData("packet", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Message.class)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pushMessageSync_args.class, metaDataMap);
+ }
+
+ public pushMessageSync_args() {
+ }
+
+ public pushMessageSync_args(
+ Message packet)
+ {
+ this();
+ this.packet = packet;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public pushMessageSync_args(pushMessageSync_args other) {
+ if (other.isSetPacket()) {
+ this.packet = new Message(other.packet);
+ }
+ }
+
+ public pushMessageSync_args deepCopy() {
+ return new pushMessageSync_args(this);
+ }
+
+ @Override
+ public void clear() {
+ this.packet = null;
+ }
+
+ public Message getPacket() {
+ return this.packet;
+ }
+
+ public pushMessageSync_args setPacket(Message packet) {
+ this.packet = packet;
+ return this;
+ }
+
+ public void unsetPacket() {
+ this.packet = null;
+ }
+
+ /** Returns true if field packet is set (has been assigned a value) and false otherwise */
+ public boolean isSetPacket() {
+ return this.packet != null;
+ }
+
+ public void setPacketIsSet(boolean value) {
+ if (!value) {
+ this.packet = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case PACKET:
+ if (value == null) {
+ unsetPacket();
+ } else {
+ setPacket((Message)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case PACKET:
+ return getPacket();
+
+ }
+ 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 PACKET:
+ return isSetPacket();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof pushMessageSync_args)
+ return this.equals((pushMessageSync_args)that);
+ return false;
+ }
+
+ public boolean equals(pushMessageSync_args that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_packet = true && this.isSetPacket();
+ boolean that_present_packet = true && that.isSetPacket();
+ if (this_present_packet || that_present_packet) {
+ if (!(this_present_packet && that_present_packet))
+ return false;
+ if (!this.packet.equals(that.packet))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return 0;
+ }
+
+ public int compareTo(pushMessageSync_args other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+ pushMessageSync_args typedOther = (pushMessageSync_args)other;
+
+ lastComparison = Boolean.valueOf(isSetPacket()).compareTo(typedOther.isSetPacket());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetPacket()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.packet, typedOther.packet);
+ 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 {
+ org.apache.thrift.protocol.TField field;
+ iprot.readStructBegin();
+ while (true)
+ {
+ field = iprot.readFieldBegin();
+ if (field.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (field.id) {
+ case 1: // PACKET
+ if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
+ this.packet = new Message();
+ this.packet.read(iprot);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (this.packet != null) {
+ oprot.writeFieldBegin(PACKET_FIELD_DESC);
+ this.packet.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("pushMessageSync_args(");
+ boolean first = true;
+
+ sb.append("packet:");
+ if (this.packet == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.packet);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ }
+
+ 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);
+ }
+ }
+
+ }
+
+ public static class pushMessageSync_result implements org.apache.thrift.TBase<pushMessageSync_result, pushMessageSync_result._Fields>, java.io.Serializable, Cloneable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pushMessageSync_result");
+
+ private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
+
+ public int success; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ SUCCESS((short)0, "success");
+
+ 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 0: // SUCCESS
+ return SUCCESS;
+ 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
+ private static final int __SUCCESS_ISSET_ID = 0;
+ private BitSet __isset_bit_vector = new BitSet(1);
+
+ 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.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pushMessageSync_result.class, metaDataMap);
+ }
+
+ public pushMessageSync_result() {
+ }
+
+ public pushMessageSync_result(
+ int success)
+ {
+ this();
+ this.success = success;
+ setSuccessIsSet(true);
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public pushMessageSync_result(pushMessageSync_result other) {
+ __isset_bit_vector.clear();
+ __isset_bit_vector.or(other.__isset_bit_vector);
+ this.success = other.success;
+ }
+
+ public pushMessageSync_result deepCopy() {
+ return new pushMessageSync_result(this);
+ }
+
+ @Override
+ public void clear() {
+ setSuccessIsSet(false);
+ this.success = 0;
+ }
+
+ public int getSuccess() {
+ return this.success;
+ }
+
+ public pushMessageSync_result setSuccess(int success) {
+ this.success = success;
+ setSuccessIsSet(true);
+ return this;
+ }
+
+ public void unsetSuccess() {
+ __isset_bit_vector.clear(__SUCCESS_ISSET_ID);
+ }
+
+ /** Returns true if field success is set (has been assigned a value) and false otherwise */
+ public boolean isSetSuccess() {
+ return __isset_bit_vector.get(__SUCCESS_ISSET_ID);
+ }
+
+ public void setSuccessIsSet(boolean value) {
+ __isset_bit_vector.set(__SUCCESS_ISSET_ID, value);
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case SUCCESS:
+ if (value == null) {
+ unsetSuccess();
+ } else {
+ setSuccess((Integer)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case SUCCESS:
+ return Integer.valueOf(getSuccess());
+
+ }
+ 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 SUCCESS:
+ return isSetSuccess();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof pushMessageSync_result)
+ return this.equals((pushMessageSync_result)that);
+ return false;
+ }
+
+ public boolean equals(pushMessageSync_result that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_success = true;
+ boolean that_present_success = true;
+ if (this_present_success || that_present_success) {
+ if (!(this_present_success && that_present_success))
+ return false;
+ if (this.success != that.success)
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return 0;
+ }
+
+ public int compareTo(pushMessageSync_result other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+ pushMessageSync_result typedOther = (pushMessageSync_result)other;
+
+ lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSuccess()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
+ 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 {
+ org.apache.thrift.protocol.TField field;
+ iprot.readStructBegin();
+ while (true)
+ {
+ field = iprot.readFieldBegin();
+ if (field.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (field.id) {
+ case 0: // SUCCESS
+ if (field.type == org.apache.thrift.protocol.TType.I32) {
+ this.success = iprot.readI32();
+ setSuccessIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ oprot.writeStructBegin(STRUCT_DESC);
+
+ if (this.isSetSuccess()) {
+ oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+ oprot.writeI32(this.success);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("pushMessageSync_result(");
+ boolean first = true;
+
+ sb.append("success:");
+ sb.append(this.success);
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ }
+
+ 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 {
+ // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+ __isset_bit_vector = new BitSet(1);
+ 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);
+ }
+ }
+
+ }
+
+ public static class pushMessageAsync_args implements org.apache.thrift.TBase<pushMessageAsync_args, pushMessageAsync_args._Fields>, java.io.Serializable, Cloneable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pushMessageAsync_args");
+
+ private static final org.apache.thrift.protocol.TField PACKET_FIELD_DESC = new org.apache.thrift.protocol.TField("packet", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+ public Message packet; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ PACKET((short)1, "packet");
+
+ 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: // PACKET
+ return PACKET;
+ 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.PACKET, new org.apache.thrift.meta_data.FieldMetaData("packet", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Message.class)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pushMessageAsync_args.class, metaDataMap);
+ }
+
+ public pushMessageAsync_args() {
+ }
+
+ public pushMessageAsync_args(
+ Message packet)
+ {
+ this();
+ this.packet = packet;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public pushMessageAsync_args(pushMessageAsync_args other) {
+ if (other.isSetPacket()) {
+ this.packet = new Message(other.packet);
+ }
+ }
+
+ public pushMessageAsync_args deepCopy() {
+ return new pushMessageAsync_args(this);
+ }
+
+ @Override
+ public void clear() {
+ this.packet = null;
+ }
+
+ public Message getPacket() {
+ return this.packet;
+ }
+
+ public pushMessageAsync_args setPacket(Message packet) {
+ this.packet = packet;
+ return this;
+ }
+
+ public void unsetPacket() {
+ this.packet = null;
+ }
+
+ /** Returns true if field packet is set (has been assigned a value) and false otherwise */
+ public boolean isSetPacket() {
+ return this.packet != null;
+ }
+
+ public void setPacketIsSet(boolean value) {
+ if (!value) {
+ this.packet = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case PACKET:
+ if (value == null) {
+ unsetPacket();
+ } else {
+ setPacket((Message)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case PACKET:
+ return getPacket();
+
+ }
+ 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 PACKET:
+ return isSetPacket();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof pushMessageAsync_args)
+ return this.equals((pushMessageAsync_args)that);
+ return false;
+ }
+
+ public boolean equals(pushMessageAsync_args that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_packet = true && this.isSetPacket();
+ boolean that_present_packet = true && that.isSetPacket();
+ if (this_present_packet || that_present_packet) {
+ if (!(this_present_packet && that_present_packet))
+ return false;
+ if (!this.packet.equals(that.packet))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return 0;
+ }
+
+ public int compareTo(pushMessageAsync_args other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+ pushMessageAsync_args typedOther = (pushMessageAsync_args)other;
+
+ lastComparison = Boolean.valueOf(isSetPacket()).compareTo(typedOther.isSetPacket());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetPacket()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.packet, typedOther.packet);
+ 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 {
+ org.apache.thrift.protocol.TField field;
+ iprot.readStructBegin();
+ while (true)
+ {
+ field = iprot.readFieldBegin();
+ if (field.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (field.id) {
+ case 1: // PACKET
+ if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
+ this.packet = new Message();
+ this.packet.read(iprot);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (this.packet != null) {
+ oprot.writeFieldBegin(PACKET_FIELD_DESC);
+ this.packet.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("pushMessageAsync_args(");
+ boolean first = true;
+
+ sb.append("packet:");
+ if (this.packet == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.packet);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ }
+
+ 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);
+ }
+ }
+
+ }
+
+ public static class terminateSession_args implements org.apache.thrift.TBase<terminateSession_args, terminateSession_args._Fields>, java.io.Serializable, Cloneable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("terminateSession_args");
+
+ private static final org.apache.thrift.protocol.TField SESSIONID_FIELD_DESC = new org.apache.thrift.protocol.TField("sessionid", org.apache.thrift.protocol.TType.STRING, (short)1);
+
+ public String sessionid; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ SESSIONID((short)1, "sessionid");
+
+ 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: // SESSIONID
+ return SESSIONID;
+ 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.SESSIONID, new org.apache.thrift.meta_data.FieldMetaData("sessionid", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(terminateSession_args.class, metaDataMap);
+ }
+
+ public terminateSession_args() {
+ }
+
+ public terminateSession_args(
+ String sessionid)
+ {
+ this();
+ this.sessionid = sessionid;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public terminateSession_args(terminateSession_args other) {
+ if (other.isSetSessionid()) {
+ this.sessionid = other.sessionid;
+ }
+ }
+
+ public terminateSession_args deepCopy() {
+ return new terminateSession_args(this);
+ }
+
+ @Override
+ public void clear() {
+ this.sessionid = null;
+ }
+
+ public String getSessionid() {
+ return this.sessionid;
+ }
+
+ public terminateSession_args setSessionid(String sessionid) {
+ this.sessionid = sessionid;
+ return this;
+ }
+
+ public void unsetSessionid() {
+ this.sessionid = null;
+ }
+
+ /** Returns true if field sessionid is set (has been assigned a value) and false otherwise */
+ public boolean isSetSessionid() {
+ return this.sessionid != null;
+ }
+
+ public void setSessionidIsSet(boolean value) {
+ if (!value) {
+ this.sessionid = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case SESSIONID:
+ if (value == null) {
+ unsetSessionid();
+ } else {
+ setSessionid((String)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case SESSIONID:
+ return getSessionid();
+
+ }
+ 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 SESSIONID:
+ return isSetSessionid();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof terminateSession_args)
+ return this.equals((terminateSession_args)that);
+ return false;
+ }
+
+ public boolean equals(terminateSession_args that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_sessionid = true && this.isSetSessionid();
+ boolean that_present_sessionid = true && that.isSetSessionid();
+ if (this_present_sessionid || that_present_sessionid) {
+ if (!(this_present_sessionid && that_present_sessionid))
+ return false;
+ if (!this.sessionid.equals(that.sessionid))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return 0;
+ }
+
+ public int compareTo(terminateSession_args other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+ terminateSession_args typedOther = (terminateSession_args)other;
+
+ lastComparison = Boolean.valueOf(isSetSessionid()).compareTo(typedOther.isSetSessionid());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSessionid()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sessionid, typedOther.sessionid);
+ 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 {
+ org.apache.thrift.protocol.TField field;
+ iprot.readStructBegin();
+ while (true)
+ {
+ field = iprot.readFieldBegin();
+ if (field.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (field.id) {
+ case 1: // SESSIONID
+ if (field.type == org.apache.thrift.protocol.TType.STRING) {
+ this.sessionid = iprot.readString();
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (this.sessionid != null) {
+ oprot.writeFieldBegin(SESSIONID_FIELD_DESC);
+ oprot.writeString(this.sessionid);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("terminateSession_args(");
+ boolean first = true;
+
+ sb.append("sessionid:");
+ if (this.sessionid == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.sessionid);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ }
+
+ 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);
+ }
+ }
+
+ }
+
+ public static class terminateSession_result implements org.apache.thrift.TBase<terminateSession_result, terminateSession_result._Fields>, java.io.Serializable, Cloneable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("terminateSession_result");
+
+
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+;
+
+ 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) {
+ 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;
+ }
+ }
+ 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);
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(terminateSession_result.class, metaDataMap);
+ }
+
+ public terminateSession_result() {
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public terminateSession_result(terminateSession_result other) {
+ }
+
+ public terminateSession_result deepCopy() {
+ return new terminateSession_result(this);
+ }
+
+ @Override
+ public void clear() {
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ }
+ 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) {
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof terminateSession_result)
+ return this.equals((terminateSession_result)that);
+ return false;
+ }
+
+ public boolean equals(terminateSession_result that) {
+ if (that == null)
+ return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return 0;
+ }
+
+ public int compareTo(terminateSession_result other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+ terminateSession_result typedOther = (terminateSession_result)other;
+
+ 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 {
+ org.apache.thrift.protocol.TField field;
+ iprot.readStructBegin();
+ while (true)
+ {
+ field = iprot.readFieldBegin();
+ if (field.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (field.id) {
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ oprot.writeStructBegin(STRUCT_DESC);
+
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("terminateSession_result(");
+ boolean first = true;
+
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ }
+
+ 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);
+ }
+ }
+
+ }
+
+}
diff --git a/lib/gen-java/net/floodlightcontroller/packetstreamer/thrift/SwitchPortTuple.java b/lib/gen-java/net/floodlightcontroller/packetstreamer/thrift/SwitchPortTuple.java
new file mode 100644
index 0000000..8fe8191
--- /dev/null
+++ b/lib/gen-java/net/floodlightcontroller/packetstreamer/thrift/SwitchPortTuple.java
@@ -0,0 +1,406 @@
+/**
+ * Autogenerated by Thrift Compiler (0.7.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ */
+package net.floodlightcontroller.packetstreamer.thrift;
+
+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;
+
+/**
+ * A struct that defines switch port tuple
+ */
+@SuppressWarnings("all") public class SwitchPortTuple implements org.apache.thrift.TBase<SwitchPortTuple, SwitchPortTuple._Fields>, java.io.Serializable, Cloneable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SwitchPortTuple");
+
+ private static final org.apache.thrift.protocol.TField DPID_FIELD_DESC = new org.apache.thrift.protocol.TField("dpid", org.apache.thrift.protocol.TType.I64, (short)1);
+ private static final org.apache.thrift.protocol.TField PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("port", org.apache.thrift.protocol.TType.I16, (short)2);
+
+ public long dpid; // required
+ public short port; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ DPID((short)1, "dpid"),
+ PORT((short)2, "port");
+
+ 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: // DPID
+ return DPID;
+ case 2: // PORT
+ return PORT;
+ 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
+ private static final int __DPID_ISSET_ID = 0;
+ private static final int __PORT_ISSET_ID = 1;
+ private BitSet __isset_bit_vector = new BitSet(2);
+
+ 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.DPID, new org.apache.thrift.meta_data.FieldMetaData("dpid", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+ tmpMap.put(_Fields.PORT, new org.apache.thrift.meta_data.FieldMetaData("port", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I16)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SwitchPortTuple.class, metaDataMap);
+ }
+
+ public SwitchPortTuple() {
+ }
+
+ public SwitchPortTuple(
+ long dpid,
+ short port)
+ {
+ this();
+ this.dpid = dpid;
+ setDpidIsSet(true);
+ this.port = port;
+ setPortIsSet(true);
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public SwitchPortTuple(SwitchPortTuple other) {
+ __isset_bit_vector.clear();
+ __isset_bit_vector.or(other.__isset_bit_vector);
+ this.dpid = other.dpid;
+ this.port = other.port;
+ }
+
+ public SwitchPortTuple deepCopy() {
+ return new SwitchPortTuple(this);
+ }
+
+ @Override
+ public void clear() {
+ setDpidIsSet(false);
+ this.dpid = 0;
+ setPortIsSet(false);
+ this.port = 0;
+ }
+
+ public long getDpid() {
+ return this.dpid;
+ }
+
+ public SwitchPortTuple setDpid(long dpid) {
+ this.dpid = dpid;
+ setDpidIsSet(true);
+ return this;
+ }
+
+ public void unsetDpid() {
+ __isset_bit_vector.clear(__DPID_ISSET_ID);
+ }
+
+ /** Returns true if field dpid is set (has been assigned a value) and false otherwise */
+ public boolean isSetDpid() {
+ return __isset_bit_vector.get(__DPID_ISSET_ID);
+ }
+
+ public void setDpidIsSet(boolean value) {
+ __isset_bit_vector.set(__DPID_ISSET_ID, value);
+ }
+
+ public short getPort() {
+ return this.port;
+ }
+
+ public SwitchPortTuple setPort(short port) {
+ this.port = port;
+ setPortIsSet(true);
+ return this;
+ }
+
+ public void unsetPort() {
+ __isset_bit_vector.clear(__PORT_ISSET_ID);
+ }
+
+ /** Returns true if field port is set (has been assigned a value) and false otherwise */
+ public boolean isSetPort() {
+ return __isset_bit_vector.get(__PORT_ISSET_ID);
+ }
+
+ public void setPortIsSet(boolean value) {
+ __isset_bit_vector.set(__PORT_ISSET_ID, value);
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case DPID:
+ if (value == null) {
+ unsetDpid();
+ } else {
+ setDpid((Long)value);
+ }
+ break;
+
+ case PORT:
+ if (value == null) {
+ unsetPort();
+ } else {
+ setPort((Short)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case DPID:
+ return Long.valueOf(getDpid());
+
+ case PORT:
+ return Short.valueOf(getPort());
+
+ }
+ 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 DPID:
+ return isSetDpid();
+ case PORT:
+ return isSetPort();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof SwitchPortTuple)
+ return this.equals((SwitchPortTuple)that);
+ return false;
+ }
+
+ public boolean equals(SwitchPortTuple that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_dpid = true;
+ boolean that_present_dpid = true;
+ if (this_present_dpid || that_present_dpid) {
+ if (!(this_present_dpid && that_present_dpid))
+ return false;
+ if (this.dpid != that.dpid)
+ return false;
+ }
+
+ boolean this_present_port = true;
+ boolean that_present_port = true;
+ if (this_present_port || that_present_port) {
+ if (!(this_present_port && that_present_port))
+ return false;
+ if (this.port != that.port)
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return 0;
+ }
+
+ public int compareTo(SwitchPortTuple other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+ SwitchPortTuple typedOther = (SwitchPortTuple)other;
+
+ lastComparison = Boolean.valueOf(isSetDpid()).compareTo(typedOther.isSetDpid());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetDpid()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dpid, typedOther.dpid);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetPort()).compareTo(typedOther.isSetPort());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetPort()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.port, typedOther.port);
+ 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 {
+ org.apache.thrift.protocol.TField field;
+ iprot.readStructBegin();
+ while (true)
+ {
+ field = iprot.readFieldBegin();
+ if (field.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (field.id) {
+ case 1: // DPID
+ if (field.type == org.apache.thrift.protocol.TType.I64) {
+ this.dpid = iprot.readI64();
+ setDpidIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ break;
+ case 2: // PORT
+ if (field.type == org.apache.thrift.protocol.TType.I16) {
+ this.port = iprot.readI16();
+ setPortIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ oprot.writeFieldBegin(DPID_FIELD_DESC);
+ oprot.writeI64(this.dpid);
+ oprot.writeFieldEnd();
+ oprot.writeFieldBegin(PORT_FIELD_DESC);
+ oprot.writeI16(this.port);
+ oprot.writeFieldEnd();
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("SwitchPortTuple(");
+ boolean first = true;
+
+ sb.append("dpid:");
+ sb.append(this.dpid);
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("port:");
+ sb.append(this.port);
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ }
+
+ 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 {
+ // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+ __isset_bit_vector = new BitSet(1);
+ 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);
+ }
+ }
+
+}
+
diff --git a/src/ext/floodlight/LICENSE.txt b/src/ext/floodlight/LICENSE.txt
deleted file mode 100644
index d645695..0000000
--- a/src/ext/floodlight/LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed 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.
diff --git a/src/ext/floodlight/Makefile b/src/ext/floodlight/Makefile
deleted file mode 100644
index 63c4dd0..0000000
--- a/src/ext/floodlight/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-# Because I am old and crotchety and my fingers can't stop from running
-# `make` commands
-
-.PHONY: docs doc all test tests count install clean
-
-all:
- ant
-
-init:
- ant init
-
-docs:
- ant javadoc
-
-doc:
- ant javadoc
-
-javadoc:
- ant javadoc
-
-check: tests
-test: tests
-
-tests: all unit-tests
-
-unit-tests:
- ant tests
-
-regression-tests:
- make -C regress tests
-
-count:
- @find src -name \*.java | xargs wc -l | sort -n
-
-clean:
- ant clean
diff --git a/src/ext/floodlight/NOTICE.txt b/src/ext/floodlight/NOTICE.txt
deleted file mode 100644
index 98945cb..0000000
--- a/src/ext/floodlight/NOTICE.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-INDEMNITY AND DISCLAIMER OF WARRANTIES
-
-SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-OR 27973/00100/SF/5339045.1 BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/src/ext/floodlight/README.txt b/src/ext/floodlight/README.txt
deleted file mode 100644
index 44f509d..0000000
--- a/src/ext/floodlight/README.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-
- Floodlight
- An Apache licensed, Java based OpenFlow controller
-
-Floodlight is a Java based OpenFlow controller originally written by David Erickson at Stanford
-University. It is available under the Apache 2.0 license.
-
-For documentation, forums, issue tracking and more visit:
-
- http://www.openflowhub.org/display/Floodlight/Floodlight+Home
diff --git a/src/ext/floodlight/apps/circuitpusher/circuitpusher.py b/src/ext/floodlight/apps/circuitpusher/circuitpusher.py
deleted file mode 100755
index 68c5df5..0000000
--- a/src/ext/floodlight/apps/circuitpusher/circuitpusher.py
+++ /dev/null
@@ -1,201 +0,0 @@
-#! /usr/bin/python
-"""
-circuitpusher utilizes floodlight rest APIs to create a bidirectional circuit,
-i.e., permanent flow entry, on all switches in route between two devices based
-on IP addresses with specified priority.
-
-Notes:
- 1. The circuit pusher currently only creates circuit with two IP end points
- 2. Prior to sending restAPI requests to the circuit pusher, the specified end
- points must already been known to the controller (i.e., already have sent
- packets on the network, easy way to assure this is to do a ping (to any
- target) from the two hosts.
- 3. The current supported command syntax format is:
- a) circuitpusher.py --controller={IP}:{rest port} --type ip --src {IP} --dst {IP} --add --name {circuit-name}
-
- adds a new circuit between src and dst devices Currently ip circuit is supported. ARP is automatically supported.
-
- Currently a simple circuit record storage is provided in a text file circuits.json in the working directory.
- The file is not protected and does not clean itself between controller restarts. The file is needed for correct operation
- and the user should make sure deleting the file when floodlight controller is restarted.
-
- b) circuitpusher.py --controller={IP}:{rest port} --delete --name {circuit-name}
-
- deletes a created circuit (as recorded in circuits.json) using the previously given name
-
-@author kcwang
-"""
-
-import os
-import sys
-import subprocess
-import json
-import argparse
-import io
-import time
-
-# parse circuit options. Currently supports add and delete actions.
-# Syntax:
-# circuitpusher --controller {IP:REST_PORT} --add --name {CIRCUIT_NAME} --type ip --src {IP} --dst {IP}
-# circuitpusher --controller {IP:REST_PORT} --delete --name {CIRCUIT_NAME}
-
-parser = argparse.ArgumentParser(description='Circuit Pusher')
-parser.add_argument('--controller', dest='controllerRestIp', action='store', default='localhost:8080', help='controller IP:RESTport, e.g., localhost:8080 or A.B.C.D:8080')
-parser.add_argument('--add', dest='action', action='store_const', const='add', default='add', help='action: add, delete')
-parser.add_argument('--delete', dest='action', action='store_const', const='delete', default='add', help='action: add, delete')
-parser.add_argument('--type', dest='type', action='store', default='ip', help='valid types: ip')
-parser.add_argument('--src', dest='srcAddress', action='store', default='0.0.0.0', help='source address: if type=ip, A.B.C.D')
-parser.add_argument('--dst', dest='dstAddress', action='store', default='0.0.0.0', help='destination address: if type=ip, A.B.C.D')
-parser.add_argument('--name', dest='circuitName', action='store', default='circuit-1', help='name for circuit, e.g., circuit-1')
-
-args = parser.parse_args()
-print args
-
-controllerRestIp = args.controllerRestIp
-
-# first check if a local file exists, which needs to be updated after add/delete
-if os.path.exists('./circuits.json'):
- circuitDb = open('./circuits.json','r')
- lines = circuitDb.readlines()
- circuitDb.close()
-else:
- lines={}
-
-if args.action=='add':
-
- circuitDb = open('./circuits.json','a')
-
- for line in lines:
- data = json.loads(line)
- if data['name']==(args.circuitName):
- print "Circuit %s exists already. Use new name to create." % args.circuitName
- sys.exit()
- else:
- circuitExists = False
-
- # retrieve source and destination device attachment points
- # using DeviceManager rest API
-
- command = "curl -s http://%s/wm/device/?ipv4=%s" % (args.controllerRestIp, args.srcAddress)
- result = os.popen(command).read()
- parsedResult = json.loads(result)
- print command+"\n"
- sourceSwitch = parsedResult[0]['attachmentPoint'][0]['switchDPID']
- sourcePort = parsedResult[0]['attachmentPoint'][0]['port']
-
- command = "curl -s http://%s/wm/device/?ipv4=%s" % (args.controllerRestIp, args.dstAddress)
- result = os.popen(command).read()
- parsedResult = json.loads(result)
- print command+"\n"
- destSwitch = parsedResult[0]['attachmentPoint'][0]['switchDPID']
- destPort = parsedResult[0]['attachmentPoint'][0]['port']
-
- print "Creating circuit:"
- print "from source device at switch %s port %s" % (sourceSwitch,sourcePort)
- print "to destination device at switch %s port %s"% (destSwitch,destPort)
-
- # retrieving route from source to destination
- # using Routing rest API
-
- command = "curl -s http://%s/wm/topology/route/%s/%s/%s/%s/json" % (controllerRestIp, sourceSwitch, sourcePort, destSwitch, destPort)
-
- result = os.popen(command).read()
- parsedResult = json.loads(result)
-
- print command+"\n"
- print result+"\n"
-
- for i in range(len(parsedResult)):
- if i % 2 == 0:
- ap1Dpid = parsedResult[i]['switch']
- ap1Port = parsedResult[i]['port']
- print ap1Dpid, ap1Port
-
- else:
- ap2Dpid = parsedResult[i]['switch']
- ap2Port = parsedResult[i]['port']
- print ap2Dpid, ap2Port
-
- # send one flow mod per pair of APs in route
- # using StaticFlowPusher rest API
-
- # IMPORTANT NOTE: current Floodlight StaticflowEntryPusher
- # assumes all flow entries to have unique name across all switches
- # this will most possibly be relaxed later, but for now we
- # encode each flow entry's name with both switch dpid, user
- # specified name, and flow type (f: forward, r: reverse, farp/rarp: arp)
-
- command = "curl -s -d '{\"switch\": \"%s\", \"name\":\"%s\", \"src-ip\":\"%s\", \"dst-ip\":\"%s\", \"ether-type\":\"%s\", \"cookie\":\"0\", \"priority\":\"32768\", \"ingress-port\":\"%s\",\"active\":\"true\", \"actions\":\"output=%s\"}' http://%s/wm/staticflowentrypusher/json" % (ap1Dpid, ap1Dpid+"."+args.circuitName+".f", args.srcAddress, args.dstAddress, "0x800", ap1Port, ap2Port, controllerRestIp)
- result = os.popen(command).read()
- print command
-
- command = "curl -s -d '{\"switch\": \"%s\", \"name\":\"%s\", \"ether-type\":\"%s\", \"cookie\":\"0\", \"priority\":\"32768\", \"ingress-port\":\"%s\",\"active\":\"true\", \"actions\":\"output=%s\"}' http://%s/wm/staticflowentrypusher/json" % (ap1Dpid, ap1Dpid+"."+args.circuitName+".farp", "0x806", ap1Port, ap2Port, controllerRestIp)
- result = os.popen(command).read()
- print command
-
-
- command = "curl -s -d '{\"switch\": \"%s\", \"name\":\"%s\", \"src-ip\":\"%s\", \"dst-ip\":\"%s\", \"ether-type\":\"%s\", \"cookie\":\"0\", \"priority\":\"32768\", \"ingress-port\":\"%s\",\"active\":\"true\", \"actions\":\"output=%s\"}' http://%s/wm/staticflowentrypusher/json" % (ap1Dpid, ap1Dpid+"."+args.circuitName+".r", args.dstAddress, args.srcAddress, "0x800", ap2Port, ap1Port, controllerRestIp)
- result = os.popen(command).read()
- print command
-
- command = "curl -s -d '{\"switch\": \"%s\", \"name\":\"%s\", \"ether-type\":\"%s\", \"cookie\":\"0\", \"priority\":\"32768\", \"ingress-port\":\"%s\",\"active\":\"true\", \"actions\":\"output=%s\"}' http://%s/wm/staticflowentrypusher/json" % (ap1Dpid, ap1Dpid+"."+args.circuitName+".rarp", "0x806", ap2Port, ap1Port, controllerRestIp)
- result = os.popen(command).read()
- print command
-
- # store created circuit attributes in local ./circuits.json
- datetime = time.asctime()
- circuitParams = {'name':args.circuitName, 'Dpid':ap1Dpid, 'inPort':ap1Port, 'outPort':ap2Port, 'datetime':datetime}
- str = json.dumps(circuitParams)
- circuitDb.write(str+"\n")
-
- # confirm successful circuit creation
- # using controller rest API
-
- command="curl -s http://%s/wm/core/switch/all/flow/json| python -mjson.tool" % (controllerRestIp)
- result = os.popen(command).read()
- print command + "\n" + result
-
-elif args.action=='delete':
-
- circuitDb = open('./circuits.json','w')
-
- # removing previously created flow from switches
- # using StaticFlowPusher rest API
- # currently, circuitpusher records created circuits in local file ./circuits.db
- # with circuit name and list of switches
-
- circuitExists = False
-
- for line in lines:
- data = json.loads(line)
- if data['name']==(args.circuitName):
- circuitExists = True
-
- sw = data['Dpid']
- print data, sw
-
- command = "curl -X DELETE -d '{\"name\":\"%s\", \"switch\":\"%s\"}' http://%s/wm/staticflowentrypusher/json" % (sw+"."+args.circuitName+".f", sw, controllerRestIp)
- result = os.popen(command).read()
- print command, result
-
- command = "curl -X DELETE -d '{\"name\":\"%s\", \"switch\":\"%s\"}' http://%s/wm/staticflowentrypusher/json" % (sw+"."+args.circuitName+".farp", sw, controllerRestIp)
- result = os.popen(command).read()
- print command, result
-
- command = "curl -X DELETE -d '{\"name\":\"%s\", \"switch\":\"%s\"}' http://%s/wm/staticflowentrypusher/json" % (sw+"."+args.circuitName+".r", sw, controllerRestIp)
- result = os.popen(command).read()
- print command, result
-
- command = "curl -X DELETE -d '{\"name\":\"%s\", \"switch\":\"%s\"}' http://%s/wm/staticflowentrypusher/json" % (sw+"."+args.circuitName+".rarp", sw, controllerRestIp)
- result = os.popen(command).read()
- print command, result
-
- else:
- circuitDb.write(line)
-
- circuitDb.close()
-
- if not circuitExists:
- print "specified circuit does not exist"
- sys.exit()
-
diff --git a/src/ext/floodlight/example/README b/src/ext/floodlight/example/README
deleted file mode 100644
index e3e8179..0000000
--- a/src/ext/floodlight/example/README
+++ /dev/null
@@ -1,28 +0,0 @@
-One of Floodlight's main goals is extensibility and flexibility.
-
-To prove that point, this directory includes a number of useful
-utilities as examples of what can do with this extensibility.
-
-UTILITIES:
---------------------------
-
-graphDeps.py and graphTopo.py
-
- Read the module dependencies (graphDeps.py) or the topology
- from the REST API and output it in the 'dot' format used by the
- popular graphviz (www.graphviz.org) package so that they can
- be visualized.
-
- Example usage:
- ./graphTopo.py $hostname # generate .dot file
- dot -Tpdf -o $hostname.pdf $hostname.dot # convert to PDF
- open $hostname.pdf # open to view topology
-
-
-
-packetStreamerClientExample.py
-
- Example client for the packet streamer server in floodlight.
- Allows you to intercept packets from floodlight's packet_in
- processing chain and read them.
-
diff --git a/src/ext/floodlight/example/cli.py b/src/ext/floodlight/example/cli.py
deleted file mode 100755
index ca8b443..0000000
--- a/src/ext/floodlight/example/cli.py
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/usr/bin/python
-
-import sys
-import argparse
-import json
-import httplib
-import urllib2
-
-class RestApi(object):
-
- def __init__(self, server,port):
- self.server = server
- self.port = port
-
- def get(self, path):
- #ret = self.rest_call(path, {}, 'GET')
- #return ret[2]
- f = urllib2.urlopen('http://'+self.server+':'+str(self.port)+path)
- ret = f.read()
- return json.loads(ret)
-
- def set(self, path, data):
- ret = self.rest_call(path, data, 'POST')
- return ret[0] == 200
-
- def remove(self, objtype, data):
- #ret = self.rest_call(data, 'DELETE')
- return ret[0] == 200
-
- def rest_call(self, path, data, action):
- headers = {
- 'Content-type': 'application/json',
- 'Accept': 'application/json',
- }
- body = json.dumps(data)
- conn = httplib.HTTPConnection(self.server, self.port)
- conn.request(action, path, body, headers)
- response = conn.getresponse()
- ret = (response.status, response.reason, response.read())
- conn.close()
- print str(ret[2])
- return ret
-
-
-
-usage_desc = """
-Command descriptions:
-
- host [debug]
- link [tunnellinks]
- port <blocked | broadcast>
- memory
- switch
- switchclusters
- counter [DPID] <name>
- switch_stats [DPID] <port | queue | flow | aggregate | desc | table | features | host>
-"""
-
-def lookupPath(cmd):
- path = ''
-
- numargs = len(args.otherargs)
-
- if args.cmd == 'switch_stats':
- if numargs == 1:
- path = '/wm/core/switch/all/'+args.otherargs[0]+'/json'
- elif numargs == 2:
- path = '/wm/core/switch/'+args.otherargs[0]+'/'+args.otherargs[1]+'/json'
- elif args.cmd == 'switch':
- path = '/wm/core/controller/switches/json'
- elif args.cmd == 'counter':
- if numargs == 1:
- path = '/wm/core/counter/'+args.otherargs[0]+'/json'
- elif numargs == 2:
- path = '/wm/core/counter/'+args.otherargs[0]+'/'+args.otherargs[1]+'/json'
- elif args.cmd == 'memory':
- path = '/wm/core/memory/json'
- elif args.cmd == 'link':
- if numargs == 0:
- path = '/wm/topology/links/json'
- elif numargs == 1:
- path = '/wm/topology/'+args.otherargs[0]+'/json'
- elif args.cmd == 'port' and numargs == 1:
- if args.otherargs[0] == "blocked":
- path = '/wm/topology/blockedports/json'
- elif args.otherargs[0] == "broadcast":
- path = '/wm/topology/broadcastdomainports/json'
- elif args.cmd == 'switchclusters':
- path = '/wm/topology/switchclusters/json'
- elif args.cmd == 'host':
- path = '/wm/device/'
- if len(args.otherargs) == 1 and args.otherargs[0] == 'debug':
- path = '/wm/device/debug'
- else:
- print usage_desc
- path = ''
- exit(0)
- return path
-
-parser = argparse.ArgumentParser(description='process args', usage=usage_desc, epilog='foo bar help')
-parser.add_argument('--ip', default='localhost')
-parser.add_argument('--port', default=8080)
-parser.add_argument('cmd')
-parser.add_argument('otherargs', nargs='*')
-args = parser.parse_args()
-
-#print args
-
-rest = RestApi(args.ip, args.port)
-path = lookupPath(args.cmd)
-
-out = rest.get(path)
-print json.dumps(out,sort_keys=True, indent=4)
-print "Number of items: " + str(len(out))
-
diff --git a/src/ext/floodlight/example/graphDeps.py b/src/ext/floodlight/example/graphDeps.py
deleted file mode 100755
index 505d516..0000000
--- a/src/ext/floodlight/example/graphDeps.py
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/python
-
-import urllib2
-import json
-import sys
-
-
-def simple_json_get(url):
- return json.loads(urllib2.urlopen(url).read())
-
-
-def shorten(s):
- return s.replace('net.floodlightcontroller','n.f'
- ).replace('com.bigswitch','c.b')
-
-def usage(s):
- sys.stderr.write("Usage:\ngrahDeps.py hostname [port]\n%s" % s)
- sys.stderr.write("\n\n\n\n writes data to 'hostname.dot' for use with graphviz\n")
- sys.exit(1)
-
-
-if __name__ == '__main__':
-
- host='localhost'
- port=8080
-
- if len(sys.argv) == 1 or sys.argv[1] == '-h' or sys.argv[1] == '--help':
- usage("need to specify hostname")
-
- host = sys.argv[1]
- if len(sys.argv) > 2:
- port = int(sys.argv[2])
-
- sys.stderr.write("Connecting to %s:%d ..." % (host,port))
- URL="http://%s:%d/wm/core/module/loaded/json" % (host,port)
-
- deps = simple_json_get(URL)
- serviceMap = {}
- nodeMap = {}
- nodeCount = 0
-
- sys.stderr.write("Writing to %s.dot ..." % (host))
- f = open("%s.dot" % host, 'w')
-
- f.write( "digraph Deps {\n")
-
- for mod, info in deps.iteritems():
- # sys.stderr.write("Discovered module %s\n" % mod)
- nodeMap[mod] = "n%d" % nodeCount
- nodeCount += 1
- label = shorten(mod) + "\\n"
- for service, serviceImpl in info['provides'].iteritems():
- # sys.stderr.write(" Discovered service %s implemented with %s\n" % (service,serviceImpl))
- label += "\\nService=%s" % shorten(service)
- serviceMap[serviceImpl] = mod
- f.write(" %s [ label=\"%s\", color=\"blue\"];\n" % (nodeMap[mod], label))
-
- f.write("\n") # for readability
-
- for mod, info in deps.iteritems():
- for dep, serviceImpl in info['depends'].iteritems():
- f.write(" %s -> %s [ label=\"%s\"];\n" % (
- nodeMap[mod],
- shorten(nodeMap[serviceMap[serviceImpl]]),
- shorten(dep)))
-
-
- f.write("}\n")
- f.close();
- sys.stderr.write("Now type\ndot -Tpdf -o %s.pdf %s.dot\n" % (
- host, host))
-
diff --git a/src/ext/floodlight/example/graphTopo.py b/src/ext/floodlight/example/graphTopo.py
deleted file mode 100755
index b89a763..0000000
--- a/src/ext/floodlight/example/graphTopo.py
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/python
-
-import urllib2
-import json
-import sys
-
-
-def simple_json_get(url):
- return json.loads(urllib2.urlopen(url).read())
-
-
-def shorten(s):
- return s.replace('net.floodlightcontroller','n.f'
- ).replace('com.bigswitch','c.b')
-
-def usage(s):
- sys.stderr.write("Usage:\ngrahTopo.py hostname [port]\n%s" % s)
- sys.stderr.write("\n\n\n\n writes data to 'hostname.dot' for use with graphviz\n")
- sys.exit(1)
-
-
-if __name__ == '__main__':
-
- host='localhost'
- port=8080
-
- if len(sys.argv) == 1 or sys.argv[1] == '-h' or sys.argv[1] == '--help':
- usage("need to specify hostname")
-
- host = sys.argv[1]
- if len(sys.argv) > 2:
- port = int(sys.argv[2])
-
- sys.stderr.write("Connecting to %s:%d ..." % (host,port))
- URL="http://%s:%d/wm/topology/links/json" % (host,port)
-
- # {
- # "dst-port": 2,
- # "dst-switch": "00:00:00:00:00:00:00:0a",
- # "src-port": 3,
- # "src-switch": "00:00:00:00:00:00:00:0c"
- # }
-
- links = simple_json_get(URL)
- nodeMap = {}
-
- sys.stderr.write("Writing to %s.dot ..." % (host))
- f = open("%s.dot" % host, 'w')
-
- f.write( "digraph Deps {\n")
-
- for link in links:
- # sys.stderr.write("Discovered module %s\n" % mod)
- if not link['dst-switch'] in nodeMap:
- sw = link['dst-switch']
- nodeMap[sw] = "n%d" % len(nodeMap)
- f.write(" %s [ label=\"dpid=%s\", color=\"blue\"];\n" % (nodeMap[sw], sw))
-
- if not link['src-switch'] in nodeMap:
- sw = link['src-switch']
- nodeMap[sw] = "n%d" % len(nodeMap)
- f.write(" %s [ label=\"dpid=%s\", color=\"blue\"];\n" % (nodeMap[sw], sw))
-
-
- f.write(" %s -> %s [ label=\"%s\"];\n" % (
- nodeMap[link['dst-switch']],
- nodeMap[link['src-switch']],
- "src_port %d --> dst_port %d" % (link['src-port'],link['dst-port'])
- )
- )
-
-
- f.write("}\n")
- f.close();
- sys.stderr.write("Now type\ndot -Tpdf -o %s.pdf %s.dot\n" % (
- host, host))
-
diff --git a/src/ext/floodlight/example/packetStreamerClientExample.py b/src/ext/floodlight/example/packetStreamerClientExample.py
deleted file mode 100755
index 4510374..0000000
--- a/src/ext/floodlight/example/packetStreamerClientExample.py
+++ /dev/null
@@ -1,138 +0,0 @@
-#!/usr/bin/python
-
-import urllib2
-import json
-import re
-import sys
-
-from optparse import OptionParser
-
-sys.path.append('~/floodlight/target/gen-py')
-sys.path.append('~/floodlight/thrift/lib/py')
-
-from packetstreamer import PacketStreamer
-from packetstreamer.ttypes import *
-
-from thrift import Thrift
-from thrift.transport import TSocket
-from thrift.transport import TTransport
-from thrift.protocol import TBinaryProtocol
-
-SESSIONID = 'sessionId'
-usage = "usage: %prog [options]"
-parser = OptionParser(usage=usage, version="%prog 1.0")
-parser.add_option("-c", "--controller", dest="controller", metavar="CONTROLLER_IP",
- default="127.0.0.1", help="controller's IP address")
-parser.add_option("-m", "--mac", dest="mac", metavar="HOST_MAC",
- help="The host mac address to trace the OF packets")
-
-(options, args) = parser.parse_args()
-
-def validateIp(ip):
- ipReg = ("(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"
- "\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"
- "\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"
- "\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)")
- m = re.compile(ipReg).match(ip)
- if m:
- return True
- else :
- return False
-
-def validateMac(mac):
- macReg = '([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}' # same regex as above
- m = re.compile(macReg).match(mac)
- if m:
- return True
- else :
- return False
-
-if not validateIp(options.controller):
- parser.error("Invalid format for ip address.")
-
-if not options.mac:
- parser.error("-m or --mac option is required.")
-
-if not validateMac(options.mac):
- parser.error("Invalid format for mac address. Format: xx:xx:xx:xx:xx:xx")
-
-controller = options.controller
-host = options.mac
-
-url = 'http://%s:8080/wm/core/packettrace/json' % controller
-filter = {'mac':host, 'direction':'both', 'period':1000}
-post_data = json.dumps(filter)
-request = urllib2.Request(url, post_data, {'Content-Type':'application/json'})
-response_text = None
-
-def terminateTrace(sid):
- global controller
-
- filter = {SESSIONID:sid, 'period':-1}
- post_data = json.dumps(filter)
- url = 'http://%s:8080/wm/core/packettrace/json' % controller
- request = urllib2.Request(url, post_data, {'Content-Type':'application/json'})
- try:
- response = urllib2.urlopen(request)
- response_text = response.read()
- except Exception, e:
- # Floodlight may not be running, but we don't want that to be a fatal
- # error, so we just ignore the exception in that case.
- print "Exception:", e
-
-try:
- response = urllib2.urlopen(request)
- response_text = response.read()
-except Exception, e:
- # Floodlight may not be running, but we don't want that to be a fatal
- # error, so we just ignore the exception in that case.
- print "Exception:", e
- exit
-
-if not response_text:
- print "Failed to start a packet trace session"
- sys.exit()
-
-response_text = json.loads(response_text)
-
-sessionId = None
-if SESSIONID in response_text:
- sessionId = response_text[SESSIONID]
-else:
- print "Failed to start a packet trace session"
- sys.exit()
-
-try:
-
- # Make socket
- transport = TSocket.TSocket('localhost', 9090)
-
- # Buffering is critical. Raw sockets are very slow
- transport = TTransport.TFramedTransport(transport)
-
- # Wrap in a protocol
- protocol = TBinaryProtocol.TBinaryProtocol(transport)
-
- # Create a client to use the protocol encoder
- client = PacketStreamer.Client(protocol)
-
- # Connect!
- transport.open()
-
- while 1:
- packets = client.getPackets(sessionId)
- for packet in packets:
- print "Packet: %s"% packet
- if "FilterTimeout" in packet:
- sys.exit()
-
-except Thrift.TException, e:
- print '%s' % (e.message)
- terminateTrace(sessionId)
-
-except KeyboardInterrupt, e:
- terminateTrace(sessionId)
-
-# Close!
-transport.close()
-
diff --git a/src/ext/floodlight/floodlight.sh b/src/ext/floodlight/floodlight.sh
deleted file mode 100755
index 5bc8564..0000000
--- a/src/ext/floodlight/floodlight.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-
-# Set paths
-FL_HOME=`dirname $0`
-FL_JAR="${FL_HOME}/target/floodlight.jar"
-FL_LOGBACK="${FL_HOME}/logback.xml"
-
-# Set JVM options
-JVM_OPTS=""
-JVM_OPTS="$JVM_OPTS -server -d64"
-JVM_OPTS="$JVM_OPTS -Xmx2g -Xms2g -Xmn800m"
-JVM_OPTS="$JVM_OPTS -XX:+UseParallelGC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods"
-JVM_OPTS="$JVM_OPTS -XX:MaxInlineSize=8192 -XX:FreqInlineSize=8192"
-JVM_OPTS="$JVM_OPTS -XX:CompileThreshold=1500 -XX:PreBlockSpin=8"
-JVM_OPTS="$JVM_OPTS -Dpython.security.respectJavaAccessibility=false"
-
-# Create a logback file if required
-[ -f ${FL_LOGBACK} ] || cat <<EOF_LOGBACK >${FL_LOGBACK}
-<configuration scan="true">
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <pattern>%level [%logger:%thread] %msg%n</pattern>
- </encoder>
- </appender>
- <root level="INFO">
- <appender-ref ref="STDOUT" />
- </root>
- <logger name="org" level="WARN"/>
- <logger name="LogService" level="WARN"/> <!-- Restlet access logging -->
- <logger name="net.floodlightcontroller" level="INFO"/>
- <logger name="net.floodlightcontroller.logging" level="ERROR"/>
-</configuration>
-EOF_LOGBACK
-
-echo "Starting floodlight server ..."
-java ${JVM_OPTS} -Dlogback.configurationFile=${FL_LOGBACK} -jar ${FL_JAR}
diff --git a/src/ext/floodlight/floodlight_style_settings.xml b/src/ext/floodlight/floodlight_style_settings.xml
deleted file mode 100644
index 51ff232..0000000
--- a/src/ext/floodlight/floodlight_style_settings.xml
+++ /dev/null
@@ -1,291 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<profiles version="12">
-<profile kind="CodeFormatterProfile" name="Floodlight" version="12">
-<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="false"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="18"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="82"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="18"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/>
-<setting id="org.eclipse.jdt.core.compiler.source" value="1.7"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="18"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="18"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="77"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="20"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="2"/>
-<setting id="org.eclipse.jdt.core.compiler.problem.assertIdentifier" value="error"/>
-<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="18"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="18"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.compiler.problem.enumIdentifier" value="error"/>
-<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
-<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="18"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="20"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
-<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="18"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
-<setting id="org.eclipse.jdt.core.compiler.compliance" value="1.7"/>
-<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="18"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="20"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="18"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode" value="enabled"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="18"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="80"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
-<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.wrap_before_binary_operator" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="18"/>
-<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="18"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="18"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="18"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.7"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="82"/>
-<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="82"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="2"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
-<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
-<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
-</profile>
-</profiles>
diff --git a/src/ext/floodlight/logback.xml b/src/ext/floodlight/logback.xml
deleted file mode 100644
index b85b463..0000000
--- a/src/ext/floodlight/logback.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<configuration scan="true">
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <pattern>%level [%logger:%thread] %msg%n</pattern>
- </encoder>
- </appender>
- <root level="INFO">
- <appender-ref ref="STDOUT" />
- </root>
- <logger name="org" level="WARN"/>
- <logger name="LogService" level="WARN"/> <!-- Restlet access logging -->
- <logger name="net.floodlightcontroller" level="INFO"/>
- <logger name="net.floodlightcontroller.logging" level="WARN"/>
-</configuration>
diff --git a/src/ext/floodlight/setup-eclipse.sh b/src/ext/floodlight/setup-eclipse.sh
deleted file mode 100755
index a39dc62..0000000
--- a/src/ext/floodlight/setup-eclipse.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/bash
-
-d=$(dirname $0)
-MAIN_CLASS=$1
-LIBRARIES=$2
-[ "${MAIN_CLASS}" ] || { echo "Run 'ant eclipse' to generate Eclipse project files"; exit 1; }
-
-
-cat >$d/.project <<EOF
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>floodlight</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
-EOF
-
-
-cat >$d/.classpath <<EOF
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/main/java" output="target/bin"/>
- <classpathentry kind="src" path="src/main/resources"/>
- <classpathentry kind="src" path="src/test/java" output="target/bin-test"/>
- <classpathentry kind="src" path="lib/gen-java" output="target/bin"/>
-EOF
-(
-IFS=":"
-for l in ${LIBRARIES}; do
-cat >>$d/.classpath <<EOF
- <classpathentry exported="true" kind="lib" path="$l"/>
-EOF
-done
-)
-cat >>$d/.classpath <<EOF
- <classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="output" path="target/bin"/>
-</classpath>
-EOF
diff --git a/src/floodlight/Makefile b/src/floodlight/Makefile
deleted file mode 100644
index d4cfa39..0000000
--- a/src/floodlight/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Because I am old and crotchety and my fingers can't stop from running
-# `make` commands
-
-.PHONY: all doc tests clean
-
-all:
- ant
-
-init:
- ant init
-
-doc:
- ant javadoc
-
-tests: all unit-tests
-
-unit-tests:
- ant tests
-
-clean:
- ant clean
diff --git a/src/floodlight/build.xml b/src/floodlight/build.xml
deleted file mode 100644
index 20dd0ce..0000000
--- a/src/floodlight/build.xml
+++ /dev/null
@@ -1,279 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-
- <!--
- Copyright 2011, Big Switch Networks, Inc.
-
- 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.
--->
-
-<!--
- The build uses pregenerated Thrift code by default to reduce build
- dependencies. To generate it locally run the gen-thrift target.
- If you change the Thrift files be sure to also commit the updated
- generated code.
--->
-
-<project default="dist" name="Floodlight">
- <property name="target" location="target"/>
- <property name="build" location="${target}/bin"/>
- <property name="build-test" location="${target}/bin-test"/>
- <property name="build-coverage" location="${target}/bin-coverage"/>
- <property name="test-output" location="${target}/test"/>
- <property name="coverage-output" location="${target}/coverage"/>
- <property name="fl-dir" location="../ext/floodlight"/>
- <property name="source" location="${fl-dir}/src/main/java"/>
- <property name="resources" location="${fl-dir}/src/main/resources/"/>
- <property name="source-test" location="${fl-dir}/src/test/java"/>
- <property name="python-src" location="${fl-dir}/src/main/python"/>
- <property name="docs" location="${target}/docs"/>
- <property name="main-class" value="net.floodlightcontroller.core.Main"/>
- <property name="floodlight-jar" location="${target}/floodlight.jar"/>
- <property name="floodlight-test-jar" location="${target}/floodlight-test.jar"/>
- <property name="thrift.dir" value="${fl-dir}/src/main/thrift"/>
- <property name="thrift.out.dir" value="${fl-dir}/lib/gen-java"/>
- <property name="thrift.package" value="net/floodlightcontroller/packetstreamer/thrift"/>
- <property name="ant.build.javac.source" value="1.6"/>
- <property name="ant.build.javac.target" value="1.6"/>
- <property name="lib" location="${fl-dir}/lib"/>
-
- <patternset id="lib">
- <include name="logback-classic-1.0.0.jar"/>
- <include name="logback-core-1.0.0.jar"/>
- <include name="jackson-core-asl-1.8.6.jar"/>
- <include name="jackson-mapper-asl-1.8.6.jar"/>
- <include name="slf4j-api-1.6.4.jar"/>
- <include name="org.restlet-2.1-RC1.jar"/>
- <include name="org.restlet.ext.jackson-2.1-RC1.jar"/>
- <include name="org.restlet.ext.simple-2.1-RC1.jar"/>
- <include name="org.restlet.ext.slf4j-2.1-RC1.jar"/>
- <include name="simple-4.1.21.jar"/>
- <include name="netty-3.2.6.Final.jar"/>
- <include name="args4j-2.0.16.jar"/>
- <include name="concurrentlinkedhashmap-lru-1.2.jar"/>
- <include name="jython-2.5.2.jar"/>
- <include name="libthrift-0.7.0.jar"/>
- </patternset>
-
- <path id="classpath">
- <fileset dir="${lib}">
- <patternset refid="lib"/>
- </fileset>
- </path>
-
- <patternset id="lib-cobertura">
- <include name="cobertura-1.9.4.1.jar"/>
- <include name="asm-3.0.jar"/>
- <include name="asm-tree-3.0.jar"/>
- <include name="oro/jakarta-oro-2.0.8.jar"/>
- <include name="log4j-1.2.9.jar"/>
- </patternset>
- <path id="classpath-cobertura">
- <fileset dir="${lib}">
- <patternset refid="lib-cobertura"/>
- </fileset>
- </path>
-
- <patternset id="lib-test">
- <include name="junit-4.8.2.jar"/>
- <include name="org.easymock-3.1.jar"/>
- <include name="objenesis-1.2.jar"/> <!-- required by easymock to mock classes -->
- <include name="cglib-nodep-2.2.2.jar"/> <!-- required by easymock to mock classes -->
- </patternset>
- <path id="classpath-test">
- <fileset dir="${lib}">
- <patternset refid="lib-test"/>
- <patternset refid="lib-cobertura"/>
- <patternset refid="lib"/>
- </fileset>
- </path>
-
- <target name="init">
- <mkdir dir="${build}"/>
- <mkdir dir="${build-test}"/>
- <mkdir dir="${target}/lib"/>
- <mkdir dir="${thrift.out.dir}"/>
- <mkdir dir="${test-output}"/>
- </target>
-
- <target name="compile" depends="init">
- <javac includeAntRuntime="false"
- classpathref="classpath"
- debug="true"
- srcdir="${source}:${thrift.out.dir}"
- destdir="${build}">
- </javac>
- </target>
-
- <target name="compile-tests" depends="compile-test"/>
- <target name="compile-test" depends="compile">
- <fileset dir="${resources}"/>
- <javac includeAntRuntime="false" debug="true"
- srcdir="${source-test}"
- classpath="${build}"
- classpathref="classpath-test"
- destdir="${build-test}"/>
- </target>
-
- <!-- Thrift build based on http://www.flester.com/blog/2009/04/26/using-thrift-from-ant -->
- <fileset id="thrift.files" dir="${thrift.dir}">
- <include name="**/*.thrift"/>
- </fileset>
-
- <target name="gen-thrift" depends="init">
- <pathconvert property="thrift.file.list" refid="thrift.files"
- pathsep=" " dirsep="/">
- </pathconvert>
- <echo message="Running thrift generator on ${thrift.file.list}"/>
- <exec executable="thrift" dir="${basedir}" failonerror="true">
- <arg line="--strict -v --gen java -o ${thrift.out.dir}/.. ${thrift.file.list}"/>
- </exec>
- <!-- Get rid of annoying warnings in thrift java: at annotations -->
- <echo message="Adding @SuppressWarning annotations"/>
- <replaceregexp byline="true">
- <regexp pattern="^public "/>
- <substitution expression='@SuppressWarnings("all") public '/>
- <fileset id="thrift.output.files" dir="${thrift.out.dir}/..">
- <include name="**/*.java"/>
- </fileset>
- </replaceregexp>
- </target>
-
- <target name="clean">
- <delete dir="${target}"/>
- </target>
-
- <target name="run" depends="dist">
- <java fork="true" jar="${floodlight-jar}" classpathref="classpath">
- <jvmarg value="-server"/>
- <jvmarg value="-Xms1024M"/>
- <jvmarg value="-Xmx1024M"/>
- </java>
- </target>
-
- <target name="tests" depends="test"/>
- <target name="test" depends="compile-test">
- <junit fork="true" forkmode="once"
- failureproperty="junit.failure"
- printsummary="on">
- <sysproperty key="net.sourceforge.cobertura.datafile"
- file="${target}/cobertura.ser" />
- <classpath>
- <pathelement location="${build-coverage}"/>
- <pathelement location="${build}"/>
- <pathelement location="${build-test}"/>
- <pathelement location="${floodlight-jar}"/>
- <path refid="classpath-test"/>
- </classpath>
- <formatter type="brief" usefile="true" />
- <batchtest todir="${test-output}">
- <fileset dir="${source-test}">
- <exclude name="**/storage/tests/StorageTest.java"/>
- <include name="**/*Test*.java"/>
- <exclude name="**/core/test/**"/>
- <exclude name="**/core/module/**"/>
- </fileset>
- </batchtest>
- </junit>
- <fail if="junit.failure" message="Unit test(s) failed. See reports!"/>
- </target>
-
- <taskdef classpathref="classpath-cobertura" resource="tasks.properties"/>
- <target name="clean-instrument">
- <delete file="${target}/cobertura.ser"/>
- <delete dir="${build-coverage}"/>
- </target>
- <target name="instrument" depends="compile,compile-test,clean-instrument">
- <cobertura-instrument datafile="${target}/cobertura.ser"
- todir="${build-coverage}"
- classpathref="classpath-cobertura">
- <fileset dir="${build}">
- <include name="**/*.class"/>
- </fileset>
- </cobertura-instrument>
- </target>
- <target name="coverage-report">
- <cobertura-report format="html"
- datafile="${target}/cobertura.ser"
- destdir="${coverage-output}"
- srcdir="${source}"/>
- <cobertura-report format="xml"
- datafile="${target}/cobertura.ser"
- destdir="${coverage-output}"
- srcdir="${source}"/>
- </target>
- <target name="coverage" depends="instrument,test,coverage-report"/>
-
- <target name="dist" depends="compile,compile-test">
- <jar destfile="${floodlight-jar}" filesetmanifest="mergewithoutmain">
- <manifest>
- <attribute name="Main-Class" value="${main-class}"/>
- <attribute name="Class-Path" value="."/>
- </manifest>
- <fileset dir="${build}"/>
- <fileset dir="${resources}"/>
- <fileset dir="${python-src}">
- <include name="**/*.py"/>
- </fileset>
- <zipgroupfileset dir="${lib}">
- <patternset refid="lib"/>
- </zipgroupfileset>
- </jar>
- <jar destfile="${floodlight-test-jar}" filesetmanifest="mergewithoutmain">
- <manifest>
- <attribute name="Class-Path" value="."/>
- </manifest>
- <fileset dir="${build-test}"/>
- <fileset dir="${resources}"/>
- <zipgroupfileset dir="${lib}">
- <patternset refid="lib-test"/>
- <patternset refid="lib-cobertura"/>
- </zipgroupfileset>
- </jar>
- </target>
-
- <target name="javadoc">
- <javadoc access="protected"
- author="true"
- classpathref="classpath"
- destdir="${docs}"
- doctitle="Floodlight"
- nodeprecated="false"
- nodeprecatedlist="false"
- noindex="false"
- nonavbar="false"
- notree="false"
- source="1.6"
- sourcepath="${source}"
- splitindex="true"
- use="true"
- version="true"/>
- </target>
-
- <target name="eclipse" depends="init">
- <pathconvert property="eclipse-lib">
- <map from="${basedir}/" to=""/>
- <fileset dir="${lib}">
- <patternset refid="lib"/>
- <patternset refid="lib-test"/>
- </fileset>
- </pathconvert>
- <exec executable="${fl-dir}/setup-eclipse.sh">
- <arg value="${main-class}"/>
- <arg value="${eclipse-lib}"/>
- </exec>
- </target>
-
-</project>
diff --git a/src/ext/floodlight/src/main/images/Floodlight Icons.sketch/Data b/src/main/images/Floodlight Icons.sketch/Data
similarity index 100%
rename from src/ext/floodlight/src/main/images/Floodlight Icons.sketch/Data
rename to src/main/images/Floodlight Icons.sketch/Data
Binary files differ
diff --git a/src/ext/floodlight/src/main/images/Floodlight Icons.sketch/QuickLook/Preview.png b/src/main/images/Floodlight Icons.sketch/QuickLook/Preview.png
similarity index 100%
rename from src/ext/floodlight/src/main/images/Floodlight Icons.sketch/QuickLook/Preview.png
rename to src/main/images/Floodlight Icons.sketch/QuickLook/Preview.png
Binary files differ
diff --git a/src/ext/floodlight/src/main/images/Floodlight Icons.sketch/QuickLook/Thumbnail.png b/src/main/images/Floodlight Icons.sketch/QuickLook/Thumbnail.png
similarity index 100%
rename from src/ext/floodlight/src/main/images/Floodlight Icons.sketch/QuickLook/Thumbnail.png
rename to src/main/images/Floodlight Icons.sketch/QuickLook/Thumbnail.png
Binary files differ
diff --git a/src/ext/floodlight/src/main/images/README b/src/main/images/README
similarity index 100%
rename from src/ext/floodlight/src/main/images/README
rename to src/main/images/README
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/FloodlightContext.java b/src/main/java/net/floodlightcontroller/core/FloodlightContext.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/FloodlightContext.java
rename to src/main/java/net/floodlightcontroller/core/FloodlightContext.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/FloodlightContextStore.java b/src/main/java/net/floodlightcontroller/core/FloodlightContextStore.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/FloodlightContextStore.java
rename to src/main/java/net/floodlightcontroller/core/FloodlightContextStore.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/FloodlightProvider.java b/src/main/java/net/floodlightcontroller/core/FloodlightProvider.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/FloodlightProvider.java
rename to src/main/java/net/floodlightcontroller/core/FloodlightProvider.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/IFloodlightProviderService.java b/src/main/java/net/floodlightcontroller/core/IFloodlightProviderService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/IFloodlightProviderService.java
rename to src/main/java/net/floodlightcontroller/core/IFloodlightProviderService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/IHAListener.java b/src/main/java/net/floodlightcontroller/core/IHAListener.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/IHAListener.java
rename to src/main/java/net/floodlightcontroller/core/IHAListener.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/IInfoProvider.java b/src/main/java/net/floodlightcontroller/core/IInfoProvider.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/IInfoProvider.java
rename to src/main/java/net/floodlightcontroller/core/IInfoProvider.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/IListener.java b/src/main/java/net/floodlightcontroller/core/IListener.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/IListener.java
rename to src/main/java/net/floodlightcontroller/core/IListener.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/IOFMessageFilterManagerService.java b/src/main/java/net/floodlightcontroller/core/IOFMessageFilterManagerService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/IOFMessageFilterManagerService.java
rename to src/main/java/net/floodlightcontroller/core/IOFMessageFilterManagerService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/IOFMessageListener.java b/src/main/java/net/floodlightcontroller/core/IOFMessageListener.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/IOFMessageListener.java
rename to src/main/java/net/floodlightcontroller/core/IOFMessageListener.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/IOFSwitch.java b/src/main/java/net/floodlightcontroller/core/IOFSwitch.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/IOFSwitch.java
rename to src/main/java/net/floodlightcontroller/core/IOFSwitch.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/IOFSwitchFilter.java b/src/main/java/net/floodlightcontroller/core/IOFSwitchFilter.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/IOFSwitchFilter.java
rename to src/main/java/net/floodlightcontroller/core/IOFSwitchFilter.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/IOFSwitchListener.java b/src/main/java/net/floodlightcontroller/core/IOFSwitchListener.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/IOFSwitchListener.java
rename to src/main/java/net/floodlightcontroller/core/IOFSwitchListener.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/Main.java b/src/main/java/net/floodlightcontroller/core/Main.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/Main.java
rename to src/main/java/net/floodlightcontroller/core/Main.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/OFMessageFilterManager.java b/src/main/java/net/floodlightcontroller/core/OFMessageFilterManager.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/OFMessageFilterManager.java
rename to src/main/java/net/floodlightcontroller/core/OFMessageFilterManager.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/annotations/LogMessageCategory.java b/src/main/java/net/floodlightcontroller/core/annotations/LogMessageCategory.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/annotations/LogMessageCategory.java
rename to src/main/java/net/floodlightcontroller/core/annotations/LogMessageCategory.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/annotations/LogMessageDoc.java b/src/main/java/net/floodlightcontroller/core/annotations/LogMessageDoc.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/annotations/LogMessageDoc.java
rename to src/main/java/net/floodlightcontroller/core/annotations/LogMessageDoc.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/annotations/LogMessageDocs.java b/src/main/java/net/floodlightcontroller/core/annotations/LogMessageDocs.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/annotations/LogMessageDocs.java
rename to src/main/java/net/floodlightcontroller/core/annotations/LogMessageDocs.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/CmdLineSettings.java b/src/main/java/net/floodlightcontroller/core/internal/CmdLineSettings.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/CmdLineSettings.java
rename to src/main/java/net/floodlightcontroller/core/internal/CmdLineSettings.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/Controller.java b/src/main/java/net/floodlightcontroller/core/internal/Controller.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/Controller.java
rename to src/main/java/net/floodlightcontroller/core/internal/Controller.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/HandshakeTimeoutException.java b/src/main/java/net/floodlightcontroller/core/internal/HandshakeTimeoutException.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/HandshakeTimeoutException.java
rename to src/main/java/net/floodlightcontroller/core/internal/HandshakeTimeoutException.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/HandshakeTimeoutHandler.java b/src/main/java/net/floodlightcontroller/core/internal/HandshakeTimeoutHandler.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/HandshakeTimeoutHandler.java
rename to src/main/java/net/floodlightcontroller/core/internal/HandshakeTimeoutHandler.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/IOFSwitchFeatures.java b/src/main/java/net/floodlightcontroller/core/internal/IOFSwitchFeatures.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/IOFSwitchFeatures.java
rename to src/main/java/net/floodlightcontroller/core/internal/IOFSwitchFeatures.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/OFChannelState.java b/src/main/java/net/floodlightcontroller/core/internal/OFChannelState.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/OFChannelState.java
rename to src/main/java/net/floodlightcontroller/core/internal/OFChannelState.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/OFFeaturesReplyFuture.java b/src/main/java/net/floodlightcontroller/core/internal/OFFeaturesReplyFuture.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/OFFeaturesReplyFuture.java
rename to src/main/java/net/floodlightcontroller/core/internal/OFFeaturesReplyFuture.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/OFMessageDecoder.java b/src/main/java/net/floodlightcontroller/core/internal/OFMessageDecoder.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/OFMessageDecoder.java
rename to src/main/java/net/floodlightcontroller/core/internal/OFMessageDecoder.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/OFMessageEncoder.java b/src/main/java/net/floodlightcontroller/core/internal/OFMessageEncoder.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/OFMessageEncoder.java
rename to src/main/java/net/floodlightcontroller/core/internal/OFMessageEncoder.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/OFMessageFuture.java b/src/main/java/net/floodlightcontroller/core/internal/OFMessageFuture.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/OFMessageFuture.java
rename to src/main/java/net/floodlightcontroller/core/internal/OFMessageFuture.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/OFStatisticsFuture.java b/src/main/java/net/floodlightcontroller/core/internal/OFStatisticsFuture.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/OFStatisticsFuture.java
rename to src/main/java/net/floodlightcontroller/core/internal/OFStatisticsFuture.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImpl.java b/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImpl.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImpl.java
rename to src/main/java/net/floodlightcontroller/core/internal/OFSwitchImpl.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/OpenflowPipelineFactory.java b/src/main/java/net/floodlightcontroller/core/internal/OpenflowPipelineFactory.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/OpenflowPipelineFactory.java
rename to src/main/java/net/floodlightcontroller/core/internal/OpenflowPipelineFactory.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/RoleChanger.java b/src/main/java/net/floodlightcontroller/core/internal/RoleChanger.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/RoleChanger.java
rename to src/main/java/net/floodlightcontroller/core/internal/RoleChanger.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/SwitchStateException.java b/src/main/java/net/floodlightcontroller/core/internal/SwitchStateException.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/internal/SwitchStateException.java
rename to src/main/java/net/floodlightcontroller/core/internal/SwitchStateException.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleContext.java b/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleContext.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleContext.java
rename to src/main/java/net/floodlightcontroller/core/module/FloodlightModuleContext.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleException.java b/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleException.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleException.java
rename to src/main/java/net/floodlightcontroller/core/module/FloodlightModuleException.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleLoader.java b/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleLoader.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleLoader.java
rename to src/main/java/net/floodlightcontroller/core/module/FloodlightModuleLoader.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/module/IFloodlightModule.java b/src/main/java/net/floodlightcontroller/core/module/IFloodlightModule.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/module/IFloodlightModule.java
rename to src/main/java/net/floodlightcontroller/core/module/IFloodlightModule.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/module/IFloodlightModuleContext.java b/src/main/java/net/floodlightcontroller/core/module/IFloodlightModuleContext.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/module/IFloodlightModuleContext.java
rename to src/main/java/net/floodlightcontroller/core/module/IFloodlightModuleContext.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/module/IFloodlightService.java b/src/main/java/net/floodlightcontroller/core/module/IFloodlightService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/module/IFloodlightService.java
rename to src/main/java/net/floodlightcontroller/core/module/IFloodlightService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/module/ModuleLoaderResource.java b/src/main/java/net/floodlightcontroller/core/module/ModuleLoaderResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/module/ModuleLoaderResource.java
rename to src/main/java/net/floodlightcontroller/core/module/ModuleLoaderResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/types/MacVlanPair.java b/src/main/java/net/floodlightcontroller/core/types/MacVlanPair.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/types/MacVlanPair.java
rename to src/main/java/net/floodlightcontroller/core/types/MacVlanPair.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/types/SwitchMessagePair.java b/src/main/java/net/floodlightcontroller/core/types/SwitchMessagePair.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/types/SwitchMessagePair.java
rename to src/main/java/net/floodlightcontroller/core/types/SwitchMessagePair.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/util/AppCookie.java b/src/main/java/net/floodlightcontroller/core/util/AppCookie.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/util/AppCookie.java
rename to src/main/java/net/floodlightcontroller/core/util/AppCookie.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/util/ListenerDispatcher.java b/src/main/java/net/floodlightcontroller/core/util/ListenerDispatcher.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/util/ListenerDispatcher.java
rename to src/main/java/net/floodlightcontroller/core/util/ListenerDispatcher.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/util/MutableInteger.java b/src/main/java/net/floodlightcontroller/core/util/MutableInteger.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/util/MutableInteger.java
rename to src/main/java/net/floodlightcontroller/core/util/MutableInteger.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/util/SingletonTask.java b/src/main/java/net/floodlightcontroller/core/util/SingletonTask.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/util/SingletonTask.java
rename to src/main/java/net/floodlightcontroller/core/util/SingletonTask.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/AllSwitchStatisticsResource.java b/src/main/java/net/floodlightcontroller/core/web/AllSwitchStatisticsResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/AllSwitchStatisticsResource.java
rename to src/main/java/net/floodlightcontroller/core/web/AllSwitchStatisticsResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/ControllerMemoryResource.java b/src/main/java/net/floodlightcontroller/core/web/ControllerMemoryResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/ControllerMemoryResource.java
rename to src/main/java/net/floodlightcontroller/core/web/ControllerMemoryResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/ControllerRoleResource.java b/src/main/java/net/floodlightcontroller/core/web/ControllerRoleResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/ControllerRoleResource.java
rename to src/main/java/net/floodlightcontroller/core/web/ControllerRoleResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/ControllerSummaryResource.java b/src/main/java/net/floodlightcontroller/core/web/ControllerSummaryResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/ControllerSummaryResource.java
rename to src/main/java/net/floodlightcontroller/core/web/ControllerSummaryResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/ControllerSwitchesResource.java b/src/main/java/net/floodlightcontroller/core/web/ControllerSwitchesResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/ControllerSwitchesResource.java
rename to src/main/java/net/floodlightcontroller/core/web/ControllerSwitchesResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java b/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java
rename to src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/CounterResource.java b/src/main/java/net/floodlightcontroller/core/web/CounterResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/CounterResource.java
rename to src/main/java/net/floodlightcontroller/core/web/CounterResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/CounterResourceBase.java b/src/main/java/net/floodlightcontroller/core/web/CounterResourceBase.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/CounterResourceBase.java
rename to src/main/java/net/floodlightcontroller/core/web/CounterResourceBase.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyClusterResource.java b/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyClusterResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyClusterResource.java
rename to src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyClusterResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyLinkResource.java b/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyLinkResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyLinkResource.java
rename to src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyLinkResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologySwitchResource.java b/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologySwitchResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologySwitchResource.java
rename to src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologySwitchResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/HealthCheckResource.java b/src/main/java/net/floodlightcontroller/core/web/HealthCheckResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/HealthCheckResource.java
rename to src/main/java/net/floodlightcontroller/core/web/HealthCheckResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/LoadedModuleLoaderResource.java b/src/main/java/net/floodlightcontroller/core/web/LoadedModuleLoaderResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/LoadedModuleLoaderResource.java
rename to src/main/java/net/floodlightcontroller/core/web/LoadedModuleLoaderResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/PacketTraceResource.java b/src/main/java/net/floodlightcontroller/core/web/PacketTraceResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/PacketTraceResource.java
rename to src/main/java/net/floodlightcontroller/core/web/PacketTraceResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/RoleInfo.java b/src/main/java/net/floodlightcontroller/core/web/RoleInfo.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/RoleInfo.java
rename to src/main/java/net/floodlightcontroller/core/web/RoleInfo.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/StorageSourceTablesResource.java b/src/main/java/net/floodlightcontroller/core/web/StorageSourceTablesResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/StorageSourceTablesResource.java
rename to src/main/java/net/floodlightcontroller/core/web/StorageSourceTablesResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/SwitchCounterCategoriesResource.java b/src/main/java/net/floodlightcontroller/core/web/SwitchCounterCategoriesResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/SwitchCounterCategoriesResource.java
rename to src/main/java/net/floodlightcontroller/core/web/SwitchCounterCategoriesResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/SwitchCounterResource.java b/src/main/java/net/floodlightcontroller/core/web/SwitchCounterResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/SwitchCounterResource.java
rename to src/main/java/net/floodlightcontroller/core/web/SwitchCounterResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/SwitchResourceBase.java b/src/main/java/net/floodlightcontroller/core/web/SwitchResourceBase.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/SwitchResourceBase.java
rename to src/main/java/net/floodlightcontroller/core/web/SwitchResourceBase.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/SwitchRoleResource.java b/src/main/java/net/floodlightcontroller/core/web/SwitchRoleResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/SwitchRoleResource.java
rename to src/main/java/net/floodlightcontroller/core/web/SwitchRoleResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/SwitchStatisticsResource.java b/src/main/java/net/floodlightcontroller/core/web/SwitchStatisticsResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/SwitchStatisticsResource.java
rename to src/main/java/net/floodlightcontroller/core/web/SwitchStatisticsResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/SystemUptimeResource.java b/src/main/java/net/floodlightcontroller/core/web/SystemUptimeResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/SystemUptimeResource.java
rename to src/main/java/net/floodlightcontroller/core/web/SystemUptimeResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/serializers/ByteArrayMACSerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/ByteArrayMACSerializer.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/serializers/ByteArrayMACSerializer.java
rename to src/main/java/net/floodlightcontroller/core/web/serializers/ByteArrayMACSerializer.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/serializers/DPIDSerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/DPIDSerializer.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/serializers/DPIDSerializer.java
rename to src/main/java/net/floodlightcontroller/core/web/serializers/DPIDSerializer.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/serializers/IPv4Serializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/IPv4Serializer.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/serializers/IPv4Serializer.java
rename to src/main/java/net/floodlightcontroller/core/web/serializers/IPv4Serializer.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/serializers/MACSerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/MACSerializer.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/serializers/MACSerializer.java
rename to src/main/java/net/floodlightcontroller/core/web/serializers/MACSerializer.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/serializers/UShortSerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/UShortSerializer.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/core/web/serializers/UShortSerializer.java
rename to src/main/java/net/floodlightcontroller/core/web/serializers/UShortSerializer.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/ConcurrentCounter.java b/src/main/java/net/floodlightcontroller/counter/ConcurrentCounter.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/ConcurrentCounter.java
rename to src/main/java/net/floodlightcontroller/counter/ConcurrentCounter.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/CountBuffer.java b/src/main/java/net/floodlightcontroller/counter/CountBuffer.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/CountBuffer.java
rename to src/main/java/net/floodlightcontroller/counter/CountBuffer.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/CountSeries.java b/src/main/java/net/floodlightcontroller/counter/CountSeries.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/CountSeries.java
rename to src/main/java/net/floodlightcontroller/counter/CountSeries.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/CounterStore.java b/src/main/java/net/floodlightcontroller/counter/CounterStore.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/CounterStore.java
rename to src/main/java/net/floodlightcontroller/counter/CounterStore.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/CounterValue.java b/src/main/java/net/floodlightcontroller/counter/CounterValue.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/CounterValue.java
rename to src/main/java/net/floodlightcontroller/counter/CounterValue.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/ICounter.java b/src/main/java/net/floodlightcontroller/counter/ICounter.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/ICounter.java
rename to src/main/java/net/floodlightcontroller/counter/ICounter.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/ICounterStoreService.java b/src/main/java/net/floodlightcontroller/counter/ICounterStoreService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/ICounterStoreService.java
rename to src/main/java/net/floodlightcontroller/counter/ICounterStoreService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/NullCounterStore.java b/src/main/java/net/floodlightcontroller/counter/NullCounterStore.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/NullCounterStore.java
rename to src/main/java/net/floodlightcontroller/counter/NullCounterStore.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/SimpleCounter.java b/src/main/java/net/floodlightcontroller/counter/SimpleCounter.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/SimpleCounter.java
rename to src/main/java/net/floodlightcontroller/counter/SimpleCounter.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/TypeAliases.java b/src/main/java/net/floodlightcontroller/counter/TypeAliases.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/counter/TypeAliases.java
rename to src/main/java/net/floodlightcontroller/counter/TypeAliases.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/IDevice.java b/src/main/java/net/floodlightcontroller/devicemanager/IDevice.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/IDevice.java
rename to src/main/java/net/floodlightcontroller/devicemanager/IDevice.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/IDeviceListener.java b/src/main/java/net/floodlightcontroller/devicemanager/IDeviceListener.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/IDeviceListener.java
rename to src/main/java/net/floodlightcontroller/devicemanager/IDeviceListener.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/IDeviceService.java b/src/main/java/net/floodlightcontroller/devicemanager/IDeviceService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/IDeviceService.java
rename to src/main/java/net/floodlightcontroller/devicemanager/IDeviceService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/IEntityClass.java b/src/main/java/net/floodlightcontroller/devicemanager/IEntityClass.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/IEntityClass.java
rename to src/main/java/net/floodlightcontroller/devicemanager/IEntityClass.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/IEntityClassListener.java b/src/main/java/net/floodlightcontroller/devicemanager/IEntityClassListener.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/IEntityClassListener.java
rename to src/main/java/net/floodlightcontroller/devicemanager/IEntityClassListener.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/IEntityClassifierService.java b/src/main/java/net/floodlightcontroller/devicemanager/IEntityClassifierService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/IEntityClassifierService.java
rename to src/main/java/net/floodlightcontroller/devicemanager/IEntityClassifierService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/SwitchPort.java b/src/main/java/net/floodlightcontroller/devicemanager/SwitchPort.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/SwitchPort.java
rename to src/main/java/net/floodlightcontroller/devicemanager/SwitchPort.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/AttachmentPoint.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/AttachmentPoint.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/AttachmentPoint.java
rename to src/main/java/net/floodlightcontroller/devicemanager/internal/AttachmentPoint.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/DefaultEntityClassifier.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/DefaultEntityClassifier.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/DefaultEntityClassifier.java
rename to src/main/java/net/floodlightcontroller/devicemanager/internal/DefaultEntityClassifier.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java
rename to src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceIndex.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceIndex.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceIndex.java
rename to src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceIndex.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceIndexInterator.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceIndexInterator.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceIndexInterator.java
rename to src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceIndexInterator.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceIterator.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceIterator.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceIterator.java
rename to src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceIterator.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
rename to src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceMultiIndex.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceMultiIndex.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceMultiIndex.java
rename to src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceMultiIndex.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceUniqueIndex.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceUniqueIndex.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceUniqueIndex.java
rename to src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceUniqueIndex.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/Entity.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/Entity.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/Entity.java
rename to src/main/java/net/floodlightcontroller/devicemanager/internal/Entity.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/IndexedEntity.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/IndexedEntity.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/internal/IndexedEntity.java
rename to src/main/java/net/floodlightcontroller/devicemanager/internal/IndexedEntity.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/web/AbstractDeviceResource.java b/src/main/java/net/floodlightcontroller/devicemanager/web/AbstractDeviceResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/web/AbstractDeviceResource.java
rename to src/main/java/net/floodlightcontroller/devicemanager/web/AbstractDeviceResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/web/DeviceEntityResource.java b/src/main/java/net/floodlightcontroller/devicemanager/web/DeviceEntityResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/web/DeviceEntityResource.java
rename to src/main/java/net/floodlightcontroller/devicemanager/web/DeviceEntityResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/web/DeviceResource.java b/src/main/java/net/floodlightcontroller/devicemanager/web/DeviceResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/web/DeviceResource.java
rename to src/main/java/net/floodlightcontroller/devicemanager/web/DeviceResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/web/DeviceRoutable.java b/src/main/java/net/floodlightcontroller/devicemanager/web/DeviceRoutable.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/web/DeviceRoutable.java
rename to src/main/java/net/floodlightcontroller/devicemanager/web/DeviceRoutable.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/web/DeviceSerializer.java b/src/main/java/net/floodlightcontroller/devicemanager/web/DeviceSerializer.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/devicemanager/web/DeviceSerializer.java
rename to src/main/java/net/floodlightcontroller/devicemanager/web/DeviceSerializer.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/firewall/Firewall.java b/src/main/java/net/floodlightcontroller/firewall/Firewall.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/firewall/Firewall.java
rename to src/main/java/net/floodlightcontroller/firewall/Firewall.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/firewall/FirewallResource.java b/src/main/java/net/floodlightcontroller/firewall/FirewallResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/firewall/FirewallResource.java
rename to src/main/java/net/floodlightcontroller/firewall/FirewallResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/firewall/FirewallRule.java b/src/main/java/net/floodlightcontroller/firewall/FirewallRule.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/firewall/FirewallRule.java
rename to src/main/java/net/floodlightcontroller/firewall/FirewallRule.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/firewall/FirewallRulesResource.java b/src/main/java/net/floodlightcontroller/firewall/FirewallRulesResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/firewall/FirewallRulesResource.java
rename to src/main/java/net/floodlightcontroller/firewall/FirewallRulesResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/firewall/FirewallWebRoutable.java b/src/main/java/net/floodlightcontroller/firewall/FirewallWebRoutable.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/firewall/FirewallWebRoutable.java
rename to src/main/java/net/floodlightcontroller/firewall/FirewallWebRoutable.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/firewall/IFirewallService.java b/src/main/java/net/floodlightcontroller/firewall/IFirewallService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/firewall/IFirewallService.java
rename to src/main/java/net/floodlightcontroller/firewall/IFirewallService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/firewall/RuleWildcardsPair.java b/src/main/java/net/floodlightcontroller/firewall/RuleWildcardsPair.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/firewall/RuleWildcardsPair.java
rename to src/main/java/net/floodlightcontroller/firewall/RuleWildcardsPair.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/firewall/WildcardsPair.java b/src/main/java/net/floodlightcontroller/firewall/WildcardsPair.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/firewall/WildcardsPair.java
rename to src/main/java/net/floodlightcontroller/firewall/WildcardsPair.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/FCQueryObj.java b/src/main/java/net/floodlightcontroller/flowcache/FCQueryObj.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/FCQueryObj.java
rename to src/main/java/net/floodlightcontroller/flowcache/FCQueryObj.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/FlowCacheQueryResp.java b/src/main/java/net/floodlightcontroller/flowcache/FlowCacheQueryResp.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/FlowCacheQueryResp.java
rename to src/main/java/net/floodlightcontroller/flowcache/FlowCacheQueryResp.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/FlowReconcileManager.java b/src/main/java/net/floodlightcontroller/flowcache/FlowReconcileManager.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/FlowReconcileManager.java
rename to src/main/java/net/floodlightcontroller/flowcache/FlowReconcileManager.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/IFlowCacheService.java b/src/main/java/net/floodlightcontroller/flowcache/IFlowCacheService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/IFlowCacheService.java
rename to src/main/java/net/floodlightcontroller/flowcache/IFlowCacheService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/IFlowQueryHandler.java b/src/main/java/net/floodlightcontroller/flowcache/IFlowQueryHandler.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/IFlowQueryHandler.java
rename to src/main/java/net/floodlightcontroller/flowcache/IFlowQueryHandler.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/IFlowReconcileListener.java b/src/main/java/net/floodlightcontroller/flowcache/IFlowReconcileListener.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/IFlowReconcileListener.java
rename to src/main/java/net/floodlightcontroller/flowcache/IFlowReconcileListener.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/IFlowReconcileService.java b/src/main/java/net/floodlightcontroller/flowcache/IFlowReconcileService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/IFlowReconcileService.java
rename to src/main/java/net/floodlightcontroller/flowcache/IFlowReconcileService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/OFMatchReconcile.java b/src/main/java/net/floodlightcontroller/flowcache/OFMatchReconcile.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/OFMatchReconcile.java
rename to src/main/java/net/floodlightcontroller/flowcache/OFMatchReconcile.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/PendingSwRespKey.java b/src/main/java/net/floodlightcontroller/flowcache/PendingSwRespKey.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/PendingSwRespKey.java
rename to src/main/java/net/floodlightcontroller/flowcache/PendingSwRespKey.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/PendingSwitchResp.java b/src/main/java/net/floodlightcontroller/flowcache/PendingSwitchResp.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/PendingSwitchResp.java
rename to src/main/java/net/floodlightcontroller/flowcache/PendingSwitchResp.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/QRFlowCacheObj.java b/src/main/java/net/floodlightcontroller/flowcache/QRFlowCacheObj.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/flowcache/QRFlowCacheObj.java
rename to src/main/java/net/floodlightcontroller/flowcache/QRFlowCacheObj.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/forwarding/Forwarding.java b/src/main/java/net/floodlightcontroller/forwarding/Forwarding.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/forwarding/Forwarding.java
rename to src/main/java/net/floodlightcontroller/forwarding/Forwarding.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/hub/Hub.java b/src/main/java/net/floodlightcontroller/hub/Hub.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/hub/Hub.java
rename to src/main/java/net/floodlightcontroller/hub/Hub.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/jython/JythonDebugInterface.java b/src/main/java/net/floodlightcontroller/jython/JythonDebugInterface.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/jython/JythonDebugInterface.java
rename to src/main/java/net/floodlightcontroller/jython/JythonDebugInterface.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/jython/JythonServer.java b/src/main/java/net/floodlightcontroller/jython/JythonServer.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/jython/JythonServer.java
rename to src/main/java/net/floodlightcontroller/jython/JythonServer.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/learningswitch/ILearningSwitchService.java b/src/main/java/net/floodlightcontroller/learningswitch/ILearningSwitchService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/learningswitch/ILearningSwitchService.java
rename to src/main/java/net/floodlightcontroller/learningswitch/ILearningSwitchService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/learningswitch/LearningSwitch.java b/src/main/java/net/floodlightcontroller/learningswitch/LearningSwitch.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/learningswitch/LearningSwitch.java
rename to src/main/java/net/floodlightcontroller/learningswitch/LearningSwitch.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/learningswitch/LearningSwitchTable.java b/src/main/java/net/floodlightcontroller/learningswitch/LearningSwitchTable.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/learningswitch/LearningSwitchTable.java
rename to src/main/java/net/floodlightcontroller/learningswitch/LearningSwitchTable.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/learningswitch/LearningSwitchWebRoutable.java b/src/main/java/net/floodlightcontroller/learningswitch/LearningSwitchWebRoutable.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/learningswitch/LearningSwitchWebRoutable.java
rename to src/main/java/net/floodlightcontroller/learningswitch/LearningSwitchWebRoutable.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscovery.java b/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscovery.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscovery.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscovery.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryListener.java b/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryListener.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryListener.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryListener.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryService.java b/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryService.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/LinkInfo.java b/src/main/java/net/floodlightcontroller/linkdiscovery/LinkInfo.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/LinkInfo.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/LinkInfo.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyCluster.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyCluster.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyCluster.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyCluster.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyLink.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyLink.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyLink.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyLink.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologySwitch.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologySwitch.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologySwitch.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologySwitch.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/web/AutoPortFast.java b/src/main/java/net/floodlightcontroller/linkdiscovery/web/AutoPortFast.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/web/AutoPortFast.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/web/AutoPortFast.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/web/LinkDiscoveryWebRoutable.java b/src/main/java/net/floodlightcontroller/linkdiscovery/web/LinkDiscoveryWebRoutable.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/web/LinkDiscoveryWebRoutable.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/web/LinkDiscoveryWebRoutable.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/web/LinkWithType.java b/src/main/java/net/floodlightcontroller/linkdiscovery/web/LinkWithType.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/web/LinkWithType.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/web/LinkWithType.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/web/LinksResource.java b/src/main/java/net/floodlightcontroller/linkdiscovery/web/LinksResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/web/LinksResource.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/web/LinksResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/ARP.java b/src/main/java/net/floodlightcontroller/packet/ARP.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/ARP.java
rename to src/main/java/net/floodlightcontroller/packet/ARP.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/BPDU.java b/src/main/java/net/floodlightcontroller/packet/BPDU.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/BPDU.java
rename to src/main/java/net/floodlightcontroller/packet/BPDU.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/BSN.java b/src/main/java/net/floodlightcontroller/packet/BSN.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/BSN.java
rename to src/main/java/net/floodlightcontroller/packet/BSN.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/BSNPROBE.java b/src/main/java/net/floodlightcontroller/packet/BSNPROBE.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/BSNPROBE.java
rename to src/main/java/net/floodlightcontroller/packet/BSNPROBE.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/BasePacket.java b/src/main/java/net/floodlightcontroller/packet/BasePacket.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/BasePacket.java
rename to src/main/java/net/floodlightcontroller/packet/BasePacket.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/DHCP.java b/src/main/java/net/floodlightcontroller/packet/DHCP.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/DHCP.java
rename to src/main/java/net/floodlightcontroller/packet/DHCP.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/DHCPOption.java b/src/main/java/net/floodlightcontroller/packet/DHCPOption.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/DHCPOption.java
rename to src/main/java/net/floodlightcontroller/packet/DHCPOption.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/DHCPPacketType.java b/src/main/java/net/floodlightcontroller/packet/DHCPPacketType.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/DHCPPacketType.java
rename to src/main/java/net/floodlightcontroller/packet/DHCPPacketType.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/Data.java b/src/main/java/net/floodlightcontroller/packet/Data.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/Data.java
rename to src/main/java/net/floodlightcontroller/packet/Data.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/Ethernet.java b/src/main/java/net/floodlightcontroller/packet/Ethernet.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/Ethernet.java
rename to src/main/java/net/floodlightcontroller/packet/Ethernet.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/ICMP.java b/src/main/java/net/floodlightcontroller/packet/ICMP.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/ICMP.java
rename to src/main/java/net/floodlightcontroller/packet/ICMP.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/IPacket.java b/src/main/java/net/floodlightcontroller/packet/IPacket.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/IPacket.java
rename to src/main/java/net/floodlightcontroller/packet/IPacket.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/IPv4.java b/src/main/java/net/floodlightcontroller/packet/IPv4.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/IPv4.java
rename to src/main/java/net/floodlightcontroller/packet/IPv4.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/LLC.java b/src/main/java/net/floodlightcontroller/packet/LLC.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/LLC.java
rename to src/main/java/net/floodlightcontroller/packet/LLC.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/LLDP.java b/src/main/java/net/floodlightcontroller/packet/LLDP.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/LLDP.java
rename to src/main/java/net/floodlightcontroller/packet/LLDP.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/LLDPOrganizationalTLV.java b/src/main/java/net/floodlightcontroller/packet/LLDPOrganizationalTLV.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/LLDPOrganizationalTLV.java
rename to src/main/java/net/floodlightcontroller/packet/LLDPOrganizationalTLV.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/LLDPTLV.java b/src/main/java/net/floodlightcontroller/packet/LLDPTLV.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/LLDPTLV.java
rename to src/main/java/net/floodlightcontroller/packet/LLDPTLV.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/TCP.java b/src/main/java/net/floodlightcontroller/packet/TCP.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/TCP.java
rename to src/main/java/net/floodlightcontroller/packet/TCP.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/UDP.java b/src/main/java/net/floodlightcontroller/packet/UDP.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packet/UDP.java
rename to src/main/java/net/floodlightcontroller/packet/UDP.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerClient.java b/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerClient.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerClient.java
rename to src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerClient.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerHandler.java b/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerHandler.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerHandler.java
rename to src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerHandler.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerServer.java b/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerServer.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerServer.java
rename to src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerServer.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/perfmon/CumulativeTimeBucket.java b/src/main/java/net/floodlightcontroller/perfmon/CumulativeTimeBucket.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/perfmon/CumulativeTimeBucket.java
rename to src/main/java/net/floodlightcontroller/perfmon/CumulativeTimeBucket.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/perfmon/CumulativeTimeBucketJSONSerializer.java b/src/main/java/net/floodlightcontroller/perfmon/CumulativeTimeBucketJSONSerializer.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/perfmon/CumulativeTimeBucketJSONSerializer.java
rename to src/main/java/net/floodlightcontroller/perfmon/CumulativeTimeBucketJSONSerializer.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/perfmon/IPktInProcessingTimeService.java b/src/main/java/net/floodlightcontroller/perfmon/IPktInProcessingTimeService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/perfmon/IPktInProcessingTimeService.java
rename to src/main/java/net/floodlightcontroller/perfmon/IPktInProcessingTimeService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/perfmon/NullPktInProcessingTime.java b/src/main/java/net/floodlightcontroller/perfmon/NullPktInProcessingTime.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/perfmon/NullPktInProcessingTime.java
rename to src/main/java/net/floodlightcontroller/perfmon/NullPktInProcessingTime.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/perfmon/OneComponentTime.java b/src/main/java/net/floodlightcontroller/perfmon/OneComponentTime.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/perfmon/OneComponentTime.java
rename to src/main/java/net/floodlightcontroller/perfmon/OneComponentTime.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/perfmon/PerfMonDataResource.java b/src/main/java/net/floodlightcontroller/perfmon/PerfMonDataResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/perfmon/PerfMonDataResource.java
rename to src/main/java/net/floodlightcontroller/perfmon/PerfMonDataResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/perfmon/PerfMonToggleResource.java b/src/main/java/net/floodlightcontroller/perfmon/PerfMonToggleResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/perfmon/PerfMonToggleResource.java
rename to src/main/java/net/floodlightcontroller/perfmon/PerfMonToggleResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/perfmon/PerfWebRoutable.java b/src/main/java/net/floodlightcontroller/perfmon/PerfWebRoutable.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/perfmon/PerfWebRoutable.java
rename to src/main/java/net/floodlightcontroller/perfmon/PerfWebRoutable.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/perfmon/PktInProcessingTime.java b/src/main/java/net/floodlightcontroller/perfmon/PktInProcessingTime.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/perfmon/PktInProcessingTime.java
rename to src/main/java/net/floodlightcontroller/perfmon/PktInProcessingTime.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/restserver/IRestApiService.java b/src/main/java/net/floodlightcontroller/restserver/IRestApiService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/restserver/IRestApiService.java
rename to src/main/java/net/floodlightcontroller/restserver/IRestApiService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/restserver/RestApiServer.java b/src/main/java/net/floodlightcontroller/restserver/RestApiServer.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/restserver/RestApiServer.java
rename to src/main/java/net/floodlightcontroller/restserver/RestApiServer.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/restserver/RestletRoutable.java b/src/main/java/net/floodlightcontroller/restserver/RestletRoutable.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/restserver/RestletRoutable.java
rename to src/main/java/net/floodlightcontroller/restserver/RestletRoutable.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/routing/BroadcastTree.java b/src/main/java/net/floodlightcontroller/routing/BroadcastTree.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/routing/BroadcastTree.java
rename to src/main/java/net/floodlightcontroller/routing/BroadcastTree.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/routing/ForwardingBase.java b/src/main/java/net/floodlightcontroller/routing/ForwardingBase.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/routing/ForwardingBase.java
rename to src/main/java/net/floodlightcontroller/routing/ForwardingBase.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/routing/IRoutingDecision.java b/src/main/java/net/floodlightcontroller/routing/IRoutingDecision.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/routing/IRoutingDecision.java
rename to src/main/java/net/floodlightcontroller/routing/IRoutingDecision.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/routing/IRoutingService.java b/src/main/java/net/floodlightcontroller/routing/IRoutingService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/routing/IRoutingService.java
rename to src/main/java/net/floodlightcontroller/routing/IRoutingService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/routing/Link.java b/src/main/java/net/floodlightcontroller/routing/Link.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/routing/Link.java
rename to src/main/java/net/floodlightcontroller/routing/Link.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/routing/Route.java b/src/main/java/net/floodlightcontroller/routing/Route.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/routing/Route.java
rename to src/main/java/net/floodlightcontroller/routing/Route.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/routing/RouteId.java b/src/main/java/net/floodlightcontroller/routing/RouteId.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/routing/RouteId.java
rename to src/main/java/net/floodlightcontroller/routing/RouteId.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/routing/RoutingDecision.java b/src/main/java/net/floodlightcontroller/routing/RoutingDecision.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/routing/RoutingDecision.java
rename to src/main/java/net/floodlightcontroller/routing/RoutingDecision.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/staticflowentry/IStaticFlowEntryPusherService.java b/src/main/java/net/floodlightcontroller/staticflowentry/IStaticFlowEntryPusherService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/staticflowentry/IStaticFlowEntryPusherService.java
rename to src/main/java/net/floodlightcontroller/staticflowentry/IStaticFlowEntryPusherService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntries.java b/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntries.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntries.java
rename to src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntries.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntryPusher.java b/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntryPusher.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntryPusher.java
rename to src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntryPusher.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/staticflowentry/web/ClearStaticFlowEntriesResource.java b/src/main/java/net/floodlightcontroller/staticflowentry/web/ClearStaticFlowEntriesResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/staticflowentry/web/ClearStaticFlowEntriesResource.java
rename to src/main/java/net/floodlightcontroller/staticflowentry/web/ClearStaticFlowEntriesResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/staticflowentry/web/ListStaticFlowEntriesResource.java b/src/main/java/net/floodlightcontroller/staticflowentry/web/ListStaticFlowEntriesResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/staticflowentry/web/ListStaticFlowEntriesResource.java
rename to src/main/java/net/floodlightcontroller/staticflowentry/web/ListStaticFlowEntriesResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/staticflowentry/web/StaticFlowEntryPusherResource.java b/src/main/java/net/floodlightcontroller/staticflowentry/web/StaticFlowEntryPusherResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/staticflowentry/web/StaticFlowEntryPusherResource.java
rename to src/main/java/net/floodlightcontroller/staticflowentry/web/StaticFlowEntryPusherResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/staticflowentry/web/StaticFlowEntryWebRoutable.java b/src/main/java/net/floodlightcontroller/staticflowentry/web/StaticFlowEntryWebRoutable.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/staticflowentry/web/StaticFlowEntryWebRoutable.java
rename to src/main/java/net/floodlightcontroller/staticflowentry/web/StaticFlowEntryWebRoutable.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/AbstractStorageSource.java b/src/main/java/net/floodlightcontroller/storage/AbstractStorageSource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/AbstractStorageSource.java
rename to src/main/java/net/floodlightcontroller/storage/AbstractStorageSource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/CompoundPredicate.java b/src/main/java/net/floodlightcontroller/storage/CompoundPredicate.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/CompoundPredicate.java
rename to src/main/java/net/floodlightcontroller/storage/CompoundPredicate.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/IPredicate.java b/src/main/java/net/floodlightcontroller/storage/IPredicate.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/IPredicate.java
rename to src/main/java/net/floodlightcontroller/storage/IPredicate.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/IQuery.java b/src/main/java/net/floodlightcontroller/storage/IQuery.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/IQuery.java
rename to src/main/java/net/floodlightcontroller/storage/IQuery.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/IResultSet.java b/src/main/java/net/floodlightcontroller/storage/IResultSet.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/IResultSet.java
rename to src/main/java/net/floodlightcontroller/storage/IResultSet.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/IRowMapper.java b/src/main/java/net/floodlightcontroller/storage/IRowMapper.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/IRowMapper.java
rename to src/main/java/net/floodlightcontroller/storage/IRowMapper.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/IStorageExceptionHandler.java b/src/main/java/net/floodlightcontroller/storage/IStorageExceptionHandler.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/IStorageExceptionHandler.java
rename to src/main/java/net/floodlightcontroller/storage/IStorageExceptionHandler.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/IStorageSourceListener.java b/src/main/java/net/floodlightcontroller/storage/IStorageSourceListener.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/IStorageSourceListener.java
rename to src/main/java/net/floodlightcontroller/storage/IStorageSourceListener.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/IStorageSourceService.java b/src/main/java/net/floodlightcontroller/storage/IStorageSourceService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/IStorageSourceService.java
rename to src/main/java/net/floodlightcontroller/storage/IStorageSourceService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/NullValueStorageException.java b/src/main/java/net/floodlightcontroller/storage/NullValueStorageException.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/NullValueStorageException.java
rename to src/main/java/net/floodlightcontroller/storage/NullValueStorageException.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/OperatorPredicate.java b/src/main/java/net/floodlightcontroller/storage/OperatorPredicate.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/OperatorPredicate.java
rename to src/main/java/net/floodlightcontroller/storage/OperatorPredicate.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/ResultSetIterator.java b/src/main/java/net/floodlightcontroller/storage/ResultSetIterator.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/ResultSetIterator.java
rename to src/main/java/net/floodlightcontroller/storage/ResultSetIterator.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/RowOrdering.java b/src/main/java/net/floodlightcontroller/storage/RowOrdering.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/RowOrdering.java
rename to src/main/java/net/floodlightcontroller/storage/RowOrdering.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/StorageException.java b/src/main/java/net/floodlightcontroller/storage/StorageException.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/StorageException.java
rename to src/main/java/net/floodlightcontroller/storage/StorageException.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/StorageNotificationFormatException.java b/src/main/java/net/floodlightcontroller/storage/StorageNotificationFormatException.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/StorageNotificationFormatException.java
rename to src/main/java/net/floodlightcontroller/storage/StorageNotificationFormatException.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/StorageSourceNotification.java b/src/main/java/net/floodlightcontroller/storage/StorageSourceNotification.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/StorageSourceNotification.java
rename to src/main/java/net/floodlightcontroller/storage/StorageSourceNotification.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/SynchronousExecutorService.java b/src/main/java/net/floodlightcontroller/storage/SynchronousExecutorService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/SynchronousExecutorService.java
rename to src/main/java/net/floodlightcontroller/storage/SynchronousExecutorService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/TypeMismatchStorageException.java b/src/main/java/net/floodlightcontroller/storage/TypeMismatchStorageException.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/TypeMismatchStorageException.java
rename to src/main/java/net/floodlightcontroller/storage/TypeMismatchStorageException.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/memory/MemoryStorageSource.java b/src/main/java/net/floodlightcontroller/storage/memory/MemoryStorageSource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/memory/MemoryStorageSource.java
rename to src/main/java/net/floodlightcontroller/storage/memory/MemoryStorageSource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/memory/MemoryTable.java b/src/main/java/net/floodlightcontroller/storage/memory/MemoryTable.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/memory/MemoryTable.java
rename to src/main/java/net/floodlightcontroller/storage/memory/MemoryTable.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/nosql/NoSqlQuery.java b/src/main/java/net/floodlightcontroller/storage/nosql/NoSqlQuery.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/nosql/NoSqlQuery.java
rename to src/main/java/net/floodlightcontroller/storage/nosql/NoSqlQuery.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/nosql/NoSqlResultSet.java b/src/main/java/net/floodlightcontroller/storage/nosql/NoSqlResultSet.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/nosql/NoSqlResultSet.java
rename to src/main/java/net/floodlightcontroller/storage/nosql/NoSqlResultSet.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/nosql/NoSqlStorageSource.java b/src/main/java/net/floodlightcontroller/storage/nosql/NoSqlStorageSource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/nosql/NoSqlStorageSource.java
rename to src/main/java/net/floodlightcontroller/storage/nosql/NoSqlStorageSource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/web/StorageNotifyResource.java b/src/main/java/net/floodlightcontroller/storage/web/StorageNotifyResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/web/StorageNotifyResource.java
rename to src/main/java/net/floodlightcontroller/storage/web/StorageNotifyResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/web/StorageWebRoutable.java b/src/main/java/net/floodlightcontroller/storage/web/StorageWebRoutable.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/storage/web/StorageWebRoutable.java
rename to src/main/java/net/floodlightcontroller/storage/web/StorageWebRoutable.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/threadpool/IThreadPoolService.java b/src/main/java/net/floodlightcontroller/threadpool/IThreadPoolService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/threadpool/IThreadPoolService.java
rename to src/main/java/net/floodlightcontroller/threadpool/IThreadPoolService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/threadpool/ThreadPool.java b/src/main/java/net/floodlightcontroller/threadpool/ThreadPool.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/threadpool/ThreadPool.java
rename to src/main/java/net/floodlightcontroller/threadpool/ThreadPool.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/Cluster.java b/src/main/java/net/floodlightcontroller/topology/Cluster.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/Cluster.java
rename to src/main/java/net/floodlightcontroller/topology/Cluster.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/ITopologyListener.java b/src/main/java/net/floodlightcontroller/topology/ITopologyListener.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/ITopologyListener.java
rename to src/main/java/net/floodlightcontroller/topology/ITopologyListener.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/ITopologyService.java b/src/main/java/net/floodlightcontroller/topology/ITopologyService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/ITopologyService.java
rename to src/main/java/net/floodlightcontroller/topology/ITopologyService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/NodePair.java b/src/main/java/net/floodlightcontroller/topology/NodePair.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/NodePair.java
rename to src/main/java/net/floodlightcontroller/topology/NodePair.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/NodePortTuple.java b/src/main/java/net/floodlightcontroller/topology/NodePortTuple.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/NodePortTuple.java
rename to src/main/java/net/floodlightcontroller/topology/NodePortTuple.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/OrderedNodePair.java b/src/main/java/net/floodlightcontroller/topology/OrderedNodePair.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/OrderedNodePair.java
rename to src/main/java/net/floodlightcontroller/topology/OrderedNodePair.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/TopologyInstance.java b/src/main/java/net/floodlightcontroller/topology/TopologyInstance.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/TopologyInstance.java
rename to src/main/java/net/floodlightcontroller/topology/TopologyInstance.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/TopologyManager.java b/src/main/java/net/floodlightcontroller/topology/TopologyManager.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/TopologyManager.java
rename to src/main/java/net/floodlightcontroller/topology/TopologyManager.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/web/BlockedPortsResource.java b/src/main/java/net/floodlightcontroller/topology/web/BlockedPortsResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/web/BlockedPortsResource.java
rename to src/main/java/net/floodlightcontroller/topology/web/BlockedPortsResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/web/BroadcastDomainPortsResource.java b/src/main/java/net/floodlightcontroller/topology/web/BroadcastDomainPortsResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/web/BroadcastDomainPortsResource.java
rename to src/main/java/net/floodlightcontroller/topology/web/BroadcastDomainPortsResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/web/EnabledPortsResource.java b/src/main/java/net/floodlightcontroller/topology/web/EnabledPortsResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/web/EnabledPortsResource.java
rename to src/main/java/net/floodlightcontroller/topology/web/EnabledPortsResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/web/RouteResource.java b/src/main/java/net/floodlightcontroller/topology/web/RouteResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/web/RouteResource.java
rename to src/main/java/net/floodlightcontroller/topology/web/RouteResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/web/SwitchClustersResource.java b/src/main/java/net/floodlightcontroller/topology/web/SwitchClustersResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/web/SwitchClustersResource.java
rename to src/main/java/net/floodlightcontroller/topology/web/SwitchClustersResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/web/TopologyWebRoutable.java b/src/main/java/net/floodlightcontroller/topology/web/TopologyWebRoutable.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/web/TopologyWebRoutable.java
rename to src/main/java/net/floodlightcontroller/topology/web/TopologyWebRoutable.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/web/TunnelLinksResource.java b/src/main/java/net/floodlightcontroller/topology/web/TunnelLinksResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/topology/web/TunnelLinksResource.java
rename to src/main/java/net/floodlightcontroller/topology/web/TunnelLinksResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/ui/web/StaticWebRoutable.java b/src/main/java/net/floodlightcontroller/ui/web/StaticWebRoutable.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/ui/web/StaticWebRoutable.java
rename to src/main/java/net/floodlightcontroller/ui/web/StaticWebRoutable.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/util/BundleAction.java b/src/main/java/net/floodlightcontroller/util/BundleAction.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/util/BundleAction.java
rename to src/main/java/net/floodlightcontroller/util/BundleAction.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/util/BundleState.java b/src/main/java/net/floodlightcontroller/util/BundleState.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/util/BundleState.java
rename to src/main/java/net/floodlightcontroller/util/BundleState.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/util/ClusterDFS.java b/src/main/java/net/floodlightcontroller/util/ClusterDFS.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/util/ClusterDFS.java
rename to src/main/java/net/floodlightcontroller/util/ClusterDFS.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/util/EventHistory.java b/src/main/java/net/floodlightcontroller/util/EventHistory.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/util/EventHistory.java
rename to src/main/java/net/floodlightcontroller/util/EventHistory.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/util/EventHistoryBaseInfo.java b/src/main/java/net/floodlightcontroller/util/EventHistoryBaseInfo.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/util/EventHistoryBaseInfo.java
rename to src/main/java/net/floodlightcontroller/util/EventHistoryBaseInfo.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/util/EventHistoryBaseInfoJSONSerializer.java b/src/main/java/net/floodlightcontroller/util/EventHistoryBaseInfoJSONSerializer.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/util/EventHistoryBaseInfoJSONSerializer.java
rename to src/main/java/net/floodlightcontroller/util/EventHistoryBaseInfoJSONSerializer.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/util/FilterIterator.java b/src/main/java/net/floodlightcontroller/util/FilterIterator.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/util/FilterIterator.java
rename to src/main/java/net/floodlightcontroller/util/FilterIterator.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/util/IterableIterator.java b/src/main/java/net/floodlightcontroller/util/IterableIterator.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/util/IterableIterator.java
rename to src/main/java/net/floodlightcontroller/util/IterableIterator.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/util/LRUHashMap.java b/src/main/java/net/floodlightcontroller/util/LRUHashMap.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/util/LRUHashMap.java
rename to src/main/java/net/floodlightcontroller/util/LRUHashMap.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/util/MACAddress.java b/src/main/java/net/floodlightcontroller/util/MACAddress.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/util/MACAddress.java
rename to src/main/java/net/floodlightcontroller/util/MACAddress.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/util/MultiIterator.java b/src/main/java/net/floodlightcontroller/util/MultiIterator.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/util/MultiIterator.java
rename to src/main/java/net/floodlightcontroller/util/MultiIterator.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/util/OFMessageDamper.java b/src/main/java/net/floodlightcontroller/util/OFMessageDamper.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/util/OFMessageDamper.java
rename to src/main/java/net/floodlightcontroller/util/OFMessageDamper.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/util/TimedCache.java b/src/main/java/net/floodlightcontroller/util/TimedCache.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/util/TimedCache.java
rename to src/main/java/net/floodlightcontroller/util/TimedCache.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/virtualnetwork/HostResource.java b/src/main/java/net/floodlightcontroller/virtualnetwork/HostResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/virtualnetwork/HostResource.java
rename to src/main/java/net/floodlightcontroller/virtualnetwork/HostResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/virtualnetwork/IVirtualNetworkService.java b/src/main/java/net/floodlightcontroller/virtualnetwork/IVirtualNetworkService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/virtualnetwork/IVirtualNetworkService.java
rename to src/main/java/net/floodlightcontroller/virtualnetwork/IVirtualNetworkService.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/virtualnetwork/NetworkResource.java b/src/main/java/net/floodlightcontroller/virtualnetwork/NetworkResource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/virtualnetwork/NetworkResource.java
rename to src/main/java/net/floodlightcontroller/virtualnetwork/NetworkResource.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/virtualnetwork/NoOp.java b/src/main/java/net/floodlightcontroller/virtualnetwork/NoOp.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/virtualnetwork/NoOp.java
rename to src/main/java/net/floodlightcontroller/virtualnetwork/NoOp.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetwork.java b/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetwork.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetwork.java
rename to src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetwork.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkFilter.java b/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkFilter.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkFilter.java
rename to src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkFilter.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkSerializer.java b/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkSerializer.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkSerializer.java
rename to src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkSerializer.java
diff --git a/src/ext/floodlight/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkWebRoutable.java b/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkWebRoutable.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkWebRoutable.java
rename to src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkWebRoutable.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/Instantiable.java b/src/main/java/org/openflow/protocol/Instantiable.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/Instantiable.java
rename to src/main/java/org/openflow/protocol/Instantiable.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFBarrierReply.java b/src/main/java/org/openflow/protocol/OFBarrierReply.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFBarrierReply.java
rename to src/main/java/org/openflow/protocol/OFBarrierReply.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFBarrierRequest.java b/src/main/java/org/openflow/protocol/OFBarrierRequest.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFBarrierRequest.java
rename to src/main/java/org/openflow/protocol/OFBarrierRequest.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFEchoReply.java b/src/main/java/org/openflow/protocol/OFEchoReply.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFEchoReply.java
rename to src/main/java/org/openflow/protocol/OFEchoReply.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFEchoRequest.java b/src/main/java/org/openflow/protocol/OFEchoRequest.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFEchoRequest.java
rename to src/main/java/org/openflow/protocol/OFEchoRequest.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFError.java b/src/main/java/org/openflow/protocol/OFError.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFError.java
rename to src/main/java/org/openflow/protocol/OFError.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFFeaturesReply.java b/src/main/java/org/openflow/protocol/OFFeaturesReply.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFFeaturesReply.java
rename to src/main/java/org/openflow/protocol/OFFeaturesReply.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFFeaturesRequest.java b/src/main/java/org/openflow/protocol/OFFeaturesRequest.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFFeaturesRequest.java
rename to src/main/java/org/openflow/protocol/OFFeaturesRequest.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFFlowMod.java b/src/main/java/org/openflow/protocol/OFFlowMod.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFFlowMod.java
rename to src/main/java/org/openflow/protocol/OFFlowMod.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFFlowRemoved.java b/src/main/java/org/openflow/protocol/OFFlowRemoved.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFFlowRemoved.java
rename to src/main/java/org/openflow/protocol/OFFlowRemoved.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFGetConfigReply.java b/src/main/java/org/openflow/protocol/OFGetConfigReply.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFGetConfigReply.java
rename to src/main/java/org/openflow/protocol/OFGetConfigReply.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFGetConfigRequest.java b/src/main/java/org/openflow/protocol/OFGetConfigRequest.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFGetConfigRequest.java
rename to src/main/java/org/openflow/protocol/OFGetConfigRequest.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFHello.java b/src/main/java/org/openflow/protocol/OFHello.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFHello.java
rename to src/main/java/org/openflow/protocol/OFHello.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFMatch.java b/src/main/java/org/openflow/protocol/OFMatch.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFMatch.java
rename to src/main/java/org/openflow/protocol/OFMatch.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFMatchBeanInfo.java b/src/main/java/org/openflow/protocol/OFMatchBeanInfo.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFMatchBeanInfo.java
rename to src/main/java/org/openflow/protocol/OFMatchBeanInfo.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFMatchWithSwDpid.java b/src/main/java/org/openflow/protocol/OFMatchWithSwDpid.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFMatchWithSwDpid.java
rename to src/main/java/org/openflow/protocol/OFMatchWithSwDpid.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFMessage.java b/src/main/java/org/openflow/protocol/OFMessage.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFMessage.java
rename to src/main/java/org/openflow/protocol/OFMessage.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFMessageContextStore.java b/src/main/java/org/openflow/protocol/OFMessageContextStore.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFMessageContextStore.java
rename to src/main/java/org/openflow/protocol/OFMessageContextStore.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFPacketIn.java b/src/main/java/org/openflow/protocol/OFPacketIn.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFPacketIn.java
rename to src/main/java/org/openflow/protocol/OFPacketIn.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFPacketOut.java b/src/main/java/org/openflow/protocol/OFPacketOut.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFPacketOut.java
rename to src/main/java/org/openflow/protocol/OFPacketOut.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFPhysicalPort.java b/src/main/java/org/openflow/protocol/OFPhysicalPort.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFPhysicalPort.java
rename to src/main/java/org/openflow/protocol/OFPhysicalPort.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFPort.java b/src/main/java/org/openflow/protocol/OFPort.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFPort.java
rename to src/main/java/org/openflow/protocol/OFPort.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFPortMod.java b/src/main/java/org/openflow/protocol/OFPortMod.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFPortMod.java
rename to src/main/java/org/openflow/protocol/OFPortMod.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFPortStatus.java b/src/main/java/org/openflow/protocol/OFPortStatus.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFPortStatus.java
rename to src/main/java/org/openflow/protocol/OFPortStatus.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFSetConfig.java b/src/main/java/org/openflow/protocol/OFSetConfig.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFSetConfig.java
rename to src/main/java/org/openflow/protocol/OFSetConfig.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFStatisticsMessageBase.java b/src/main/java/org/openflow/protocol/OFStatisticsMessageBase.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFStatisticsMessageBase.java
rename to src/main/java/org/openflow/protocol/OFStatisticsMessageBase.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFStatisticsReply.java b/src/main/java/org/openflow/protocol/OFStatisticsReply.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFStatisticsReply.java
rename to src/main/java/org/openflow/protocol/OFStatisticsReply.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFStatisticsRequest.java b/src/main/java/org/openflow/protocol/OFStatisticsRequest.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFStatisticsRequest.java
rename to src/main/java/org/openflow/protocol/OFStatisticsRequest.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFSwitchConfig.java b/src/main/java/org/openflow/protocol/OFSwitchConfig.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFSwitchConfig.java
rename to src/main/java/org/openflow/protocol/OFSwitchConfig.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFType.java b/src/main/java/org/openflow/protocol/OFType.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFType.java
rename to src/main/java/org/openflow/protocol/OFType.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/OFVendor.java b/src/main/java/org/openflow/protocol/OFVendor.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/OFVendor.java
rename to src/main/java/org/openflow/protocol/OFVendor.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFAction.java b/src/main/java/org/openflow/protocol/action/OFAction.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFAction.java
rename to src/main/java/org/openflow/protocol/action/OFAction.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionDataLayer.java b/src/main/java/org/openflow/protocol/action/OFActionDataLayer.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionDataLayer.java
rename to src/main/java/org/openflow/protocol/action/OFActionDataLayer.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionDataLayerDestination.java b/src/main/java/org/openflow/protocol/action/OFActionDataLayerDestination.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionDataLayerDestination.java
rename to src/main/java/org/openflow/protocol/action/OFActionDataLayerDestination.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionDataLayerSource.java b/src/main/java/org/openflow/protocol/action/OFActionDataLayerSource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionDataLayerSource.java
rename to src/main/java/org/openflow/protocol/action/OFActionDataLayerSource.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionEnqueue.java b/src/main/java/org/openflow/protocol/action/OFActionEnqueue.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionEnqueue.java
rename to src/main/java/org/openflow/protocol/action/OFActionEnqueue.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionNetworkLayerAddress.java b/src/main/java/org/openflow/protocol/action/OFActionNetworkLayerAddress.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionNetworkLayerAddress.java
rename to src/main/java/org/openflow/protocol/action/OFActionNetworkLayerAddress.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionNetworkLayerDestination.java b/src/main/java/org/openflow/protocol/action/OFActionNetworkLayerDestination.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionNetworkLayerDestination.java
rename to src/main/java/org/openflow/protocol/action/OFActionNetworkLayerDestination.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionNetworkLayerSource.java b/src/main/java/org/openflow/protocol/action/OFActionNetworkLayerSource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionNetworkLayerSource.java
rename to src/main/java/org/openflow/protocol/action/OFActionNetworkLayerSource.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionNetworkTypeOfService.java b/src/main/java/org/openflow/protocol/action/OFActionNetworkTypeOfService.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionNetworkTypeOfService.java
rename to src/main/java/org/openflow/protocol/action/OFActionNetworkTypeOfService.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionOutput.java b/src/main/java/org/openflow/protocol/action/OFActionOutput.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionOutput.java
rename to src/main/java/org/openflow/protocol/action/OFActionOutput.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionStripVirtualLan.java b/src/main/java/org/openflow/protocol/action/OFActionStripVirtualLan.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionStripVirtualLan.java
rename to src/main/java/org/openflow/protocol/action/OFActionStripVirtualLan.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionTransportLayer.java b/src/main/java/org/openflow/protocol/action/OFActionTransportLayer.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionTransportLayer.java
rename to src/main/java/org/openflow/protocol/action/OFActionTransportLayer.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionTransportLayerDestination.java b/src/main/java/org/openflow/protocol/action/OFActionTransportLayerDestination.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionTransportLayerDestination.java
rename to src/main/java/org/openflow/protocol/action/OFActionTransportLayerDestination.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionTransportLayerSource.java b/src/main/java/org/openflow/protocol/action/OFActionTransportLayerSource.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionTransportLayerSource.java
rename to src/main/java/org/openflow/protocol/action/OFActionTransportLayerSource.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionType.java b/src/main/java/org/openflow/protocol/action/OFActionType.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionType.java
rename to src/main/java/org/openflow/protocol/action/OFActionType.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionVendor.java b/src/main/java/org/openflow/protocol/action/OFActionVendor.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionVendor.java
rename to src/main/java/org/openflow/protocol/action/OFActionVendor.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionVirtualLanIdentifier.java b/src/main/java/org/openflow/protocol/action/OFActionVirtualLanIdentifier.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionVirtualLanIdentifier.java
rename to src/main/java/org/openflow/protocol/action/OFActionVirtualLanIdentifier.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionVirtualLanPriorityCodePoint.java b/src/main/java/org/openflow/protocol/action/OFActionVirtualLanPriorityCodePoint.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/action/OFActionVirtualLanPriorityCodePoint.java
rename to src/main/java/org/openflow/protocol/action/OFActionVirtualLanPriorityCodePoint.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/factory/BasicFactory.java b/src/main/java/org/openflow/protocol/factory/BasicFactory.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/factory/BasicFactory.java
rename to src/main/java/org/openflow/protocol/factory/BasicFactory.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/factory/MessageParseException.java b/src/main/java/org/openflow/protocol/factory/MessageParseException.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/factory/MessageParseException.java
rename to src/main/java/org/openflow/protocol/factory/MessageParseException.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/factory/OFActionFactory.java b/src/main/java/org/openflow/protocol/factory/OFActionFactory.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/factory/OFActionFactory.java
rename to src/main/java/org/openflow/protocol/factory/OFActionFactory.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/factory/OFActionFactoryAware.java b/src/main/java/org/openflow/protocol/factory/OFActionFactoryAware.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/factory/OFActionFactoryAware.java
rename to src/main/java/org/openflow/protocol/factory/OFActionFactoryAware.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/factory/OFMessageFactory.java b/src/main/java/org/openflow/protocol/factory/OFMessageFactory.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/factory/OFMessageFactory.java
rename to src/main/java/org/openflow/protocol/factory/OFMessageFactory.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/factory/OFMessageFactoryAware.java b/src/main/java/org/openflow/protocol/factory/OFMessageFactoryAware.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/factory/OFMessageFactoryAware.java
rename to src/main/java/org/openflow/protocol/factory/OFMessageFactoryAware.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/factory/OFStatisticsFactory.java b/src/main/java/org/openflow/protocol/factory/OFStatisticsFactory.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/factory/OFStatisticsFactory.java
rename to src/main/java/org/openflow/protocol/factory/OFStatisticsFactory.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/factory/OFStatisticsFactoryAware.java b/src/main/java/org/openflow/protocol/factory/OFStatisticsFactoryAware.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/factory/OFStatisticsFactoryAware.java
rename to src/main/java/org/openflow/protocol/factory/OFStatisticsFactoryAware.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/factory/OFVendorDataFactory.java b/src/main/java/org/openflow/protocol/factory/OFVendorDataFactory.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/factory/OFVendorDataFactory.java
rename to src/main/java/org/openflow/protocol/factory/OFVendorDataFactory.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/factory/OFVendorDataFactoryAware.java b/src/main/java/org/openflow/protocol/factory/OFVendorDataFactoryAware.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/factory/OFVendorDataFactoryAware.java
rename to src/main/java/org/openflow/protocol/factory/OFVendorDataFactoryAware.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/serializers/OFFeaturesReplyJSONSerializer.java b/src/main/java/org/openflow/protocol/serializers/OFFeaturesReplyJSONSerializer.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/serializers/OFFeaturesReplyJSONSerializer.java
rename to src/main/java/org/openflow/protocol/serializers/OFFeaturesReplyJSONSerializer.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/serializers/OFMatchJSONSerializer.java b/src/main/java/org/openflow/protocol/serializers/OFMatchJSONSerializer.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/serializers/OFMatchJSONSerializer.java
rename to src/main/java/org/openflow/protocol/serializers/OFMatchJSONSerializer.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFAggregateStatisticsReply.java b/src/main/java/org/openflow/protocol/statistics/OFAggregateStatisticsReply.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFAggregateStatisticsReply.java
rename to src/main/java/org/openflow/protocol/statistics/OFAggregateStatisticsReply.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFAggregateStatisticsRequest.java b/src/main/java/org/openflow/protocol/statistics/OFAggregateStatisticsRequest.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFAggregateStatisticsRequest.java
rename to src/main/java/org/openflow/protocol/statistics/OFAggregateStatisticsRequest.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFDescriptionStatistics.java b/src/main/java/org/openflow/protocol/statistics/OFDescriptionStatistics.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFDescriptionStatistics.java
rename to src/main/java/org/openflow/protocol/statistics/OFDescriptionStatistics.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFFlowStatisticsReply.java b/src/main/java/org/openflow/protocol/statistics/OFFlowStatisticsReply.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFFlowStatisticsReply.java
rename to src/main/java/org/openflow/protocol/statistics/OFFlowStatisticsReply.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFFlowStatisticsRequest.java b/src/main/java/org/openflow/protocol/statistics/OFFlowStatisticsRequest.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFFlowStatisticsRequest.java
rename to src/main/java/org/openflow/protocol/statistics/OFFlowStatisticsRequest.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFPortStatisticsReply.java b/src/main/java/org/openflow/protocol/statistics/OFPortStatisticsReply.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFPortStatisticsReply.java
rename to src/main/java/org/openflow/protocol/statistics/OFPortStatisticsReply.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFPortStatisticsRequest.java b/src/main/java/org/openflow/protocol/statistics/OFPortStatisticsRequest.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFPortStatisticsRequest.java
rename to src/main/java/org/openflow/protocol/statistics/OFPortStatisticsRequest.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFQueueStatisticsReply.java b/src/main/java/org/openflow/protocol/statistics/OFQueueStatisticsReply.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFQueueStatisticsReply.java
rename to src/main/java/org/openflow/protocol/statistics/OFQueueStatisticsReply.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFQueueStatisticsRequest.java b/src/main/java/org/openflow/protocol/statistics/OFQueueStatisticsRequest.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFQueueStatisticsRequest.java
rename to src/main/java/org/openflow/protocol/statistics/OFQueueStatisticsRequest.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFStatistics.java b/src/main/java/org/openflow/protocol/statistics/OFStatistics.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFStatistics.java
rename to src/main/java/org/openflow/protocol/statistics/OFStatistics.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFStatisticsType.java b/src/main/java/org/openflow/protocol/statistics/OFStatisticsType.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFStatisticsType.java
rename to src/main/java/org/openflow/protocol/statistics/OFStatisticsType.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFTableStatistics.java b/src/main/java/org/openflow/protocol/statistics/OFTableStatistics.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFTableStatistics.java
rename to src/main/java/org/openflow/protocol/statistics/OFTableStatistics.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFVendorStatistics.java b/src/main/java/org/openflow/protocol/statistics/OFVendorStatistics.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/statistics/OFVendorStatistics.java
rename to src/main/java/org/openflow/protocol/statistics/OFVendorStatistics.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/vendor/OFBasicVendorDataType.java b/src/main/java/org/openflow/protocol/vendor/OFBasicVendorDataType.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/vendor/OFBasicVendorDataType.java
rename to src/main/java/org/openflow/protocol/vendor/OFBasicVendorDataType.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/vendor/OFBasicVendorId.java b/src/main/java/org/openflow/protocol/vendor/OFBasicVendorId.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/vendor/OFBasicVendorId.java
rename to src/main/java/org/openflow/protocol/vendor/OFBasicVendorId.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/vendor/OFByteArrayVendorData.java b/src/main/java/org/openflow/protocol/vendor/OFByteArrayVendorData.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/vendor/OFByteArrayVendorData.java
rename to src/main/java/org/openflow/protocol/vendor/OFByteArrayVendorData.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/vendor/OFVendorData.java b/src/main/java/org/openflow/protocol/vendor/OFVendorData.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/vendor/OFVendorData.java
rename to src/main/java/org/openflow/protocol/vendor/OFVendorData.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/vendor/OFVendorDataType.java b/src/main/java/org/openflow/protocol/vendor/OFVendorDataType.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/vendor/OFVendorDataType.java
rename to src/main/java/org/openflow/protocol/vendor/OFVendorDataType.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/protocol/vendor/OFVendorId.java b/src/main/java/org/openflow/protocol/vendor/OFVendorId.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/protocol/vendor/OFVendorId.java
rename to src/main/java/org/openflow/protocol/vendor/OFVendorId.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/util/HexString.java b/src/main/java/org/openflow/util/HexString.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/util/HexString.java
rename to src/main/java/org/openflow/util/HexString.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/util/LRULinkedHashMap.java b/src/main/java/org/openflow/util/LRULinkedHashMap.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/util/LRULinkedHashMap.java
rename to src/main/java/org/openflow/util/LRULinkedHashMap.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/util/StringByteSerializer.java b/src/main/java/org/openflow/util/StringByteSerializer.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/util/StringByteSerializer.java
rename to src/main/java/org/openflow/util/StringByteSerializer.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/util/U16.java b/src/main/java/org/openflow/util/U16.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/util/U16.java
rename to src/main/java/org/openflow/util/U16.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/util/U32.java b/src/main/java/org/openflow/util/U32.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/util/U32.java
rename to src/main/java/org/openflow/util/U32.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/util/U64.java b/src/main/java/org/openflow/util/U64.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/util/U64.java
rename to src/main/java/org/openflow/util/U64.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/util/U8.java b/src/main/java/org/openflow/util/U8.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/util/U8.java
rename to src/main/java/org/openflow/util/U8.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/util/Unsigned.java b/src/main/java/org/openflow/util/Unsigned.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/util/Unsigned.java
rename to src/main/java/org/openflow/util/Unsigned.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/vendor/nicira/OFNiciraVendorData.java b/src/main/java/org/openflow/vendor/nicira/OFNiciraVendorData.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/vendor/nicira/OFNiciraVendorData.java
rename to src/main/java/org/openflow/vendor/nicira/OFNiciraVendorData.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/vendor/nicira/OFRoleReplyVendorData.java b/src/main/java/org/openflow/vendor/nicira/OFRoleReplyVendorData.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/vendor/nicira/OFRoleReplyVendorData.java
rename to src/main/java/org/openflow/vendor/nicira/OFRoleReplyVendorData.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/vendor/nicira/OFRoleRequestVendorData.java b/src/main/java/org/openflow/vendor/nicira/OFRoleRequestVendorData.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/vendor/nicira/OFRoleRequestVendorData.java
rename to src/main/java/org/openflow/vendor/nicira/OFRoleRequestVendorData.java
diff --git a/src/ext/floodlight/src/main/java/org/openflow/vendor/nicira/OFRoleVendorData.java b/src/main/java/org/openflow/vendor/nicira/OFRoleVendorData.java
similarity index 100%
rename from src/ext/floodlight/src/main/java/org/openflow/vendor/nicira/OFRoleVendorData.java
rename to src/main/java/org/openflow/vendor/nicira/OFRoleVendorData.java
diff --git a/src/ext/floodlight/src/main/python/PythonClient.py b/src/main/python/PythonClient.py
similarity index 100%
rename from src/ext/floodlight/src/main/python/PythonClient.py
rename to src/main/python/PythonClient.py
diff --git a/src/ext/floodlight/src/main/python/PythonServer.py b/src/main/python/PythonServer.py
similarity index 100%
rename from src/ext/floodlight/src/main/python/PythonServer.py
rename to src/main/python/PythonServer.py
diff --git a/src/ext/floodlight/src/main/python/compileall.py b/src/main/python/compileall.py
similarity index 100%
rename from src/ext/floodlight/src/main/python/compileall.py
rename to src/main/python/compileall.py
diff --git a/src/ext/floodlight/src/main/python/debugserver.py b/src/main/python/debugserver.py
similarity index 100%
rename from src/ext/floodlight/src/main/python/debugserver.py
rename to src/main/python/debugserver.py
diff --git a/src/ext/floodlight/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule b/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule
similarity index 100%
rename from src/ext/floodlight/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule
rename to src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule
diff --git a/src/ext/floodlight/src/main/resources/floodlightdefault.properties b/src/main/resources/floodlightdefault.properties
similarity index 100%
rename from src/ext/floodlight/src/main/resources/floodlightdefault.properties
rename to src/main/resources/floodlightdefault.properties
diff --git a/src/ext/floodlight/src/main/resources/quantum.properties b/src/main/resources/quantum.properties
similarity index 100%
rename from src/ext/floodlight/src/main/resources/quantum.properties
rename to src/main/resources/quantum.properties
diff --git a/src/ext/floodlight/src/main/resources/web/css/bootstrap.css b/src/main/resources/web/css/bootstrap.css
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/css/bootstrap.css
rename to src/main/resources/web/css/bootstrap.css
diff --git a/src/ext/floodlight/src/main/resources/web/css/styles.css b/src/main/resources/web/css/styles.css
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/css/styles.css
rename to src/main/resources/web/css/styles.css
diff --git a/src/ext/floodlight/src/main/resources/web/img/floodlight.png b/src/main/resources/web/img/floodlight.png
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/img/floodlight.png
rename to src/main/resources/web/img/floodlight.png
Binary files differ
diff --git a/src/ext/floodlight/src/main/resources/web/img/glyphicons-halflings-white.png b/src/main/resources/web/img/glyphicons-halflings-white.png
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/img/glyphicons-halflings-white.png
rename to src/main/resources/web/img/glyphicons-halflings-white.png
Binary files differ
diff --git a/src/ext/floodlight/src/main/resources/web/img/glyphicons-halflings.png b/src/main/resources/web/img/glyphicons-halflings.png
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/img/glyphicons-halflings.png
rename to src/main/resources/web/img/glyphicons-halflings.png
Binary files differ
diff --git a/src/ext/floodlight/src/main/resources/web/img/logo.jpg b/src/main/resources/web/img/logo.jpg
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/img/logo.jpg
rename to src/main/resources/web/img/logo.jpg
Binary files differ
diff --git a/src/ext/floodlight/src/main/resources/web/img/openflow-logo-40px.png b/src/main/resources/web/img/openflow-logo-40px.png
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/img/openflow-logo-40px.png
rename to src/main/resources/web/img/openflow-logo-40px.png
Binary files differ
diff --git a/src/ext/floodlight/src/main/resources/web/img/server.png b/src/main/resources/web/img/server.png
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/img/server.png
rename to src/main/resources/web/img/server.png
Binary files differ
diff --git a/src/ext/floodlight/src/main/resources/web/img/switch.png b/src/main/resources/web/img/switch.png
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/img/switch.png
rename to src/main/resources/web/img/switch.png
Binary files differ
diff --git a/src/ext/floodlight/src/main/resources/web/index.html b/src/main/resources/web/index.html
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/index.html
rename to src/main/resources/web/index.html
diff --git a/src/ext/floodlight/src/main/resources/web/js/main.js b/src/main/resources/web/js/main.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/js/main.js
rename to src/main/resources/web/js/main.js
diff --git a/src/ext/floodlight/src/main/resources/web/js/models/flowmodel.js b/src/main/resources/web/js/models/flowmodel.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/js/models/flowmodel.js
rename to src/main/resources/web/js/models/flowmodel.js
diff --git a/src/ext/floodlight/src/main/resources/web/js/models/hostmodel.js b/src/main/resources/web/js/models/hostmodel.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/js/models/hostmodel.js
rename to src/main/resources/web/js/models/hostmodel.js
diff --git a/src/ext/floodlight/src/main/resources/web/js/models/portmodel.js b/src/main/resources/web/js/models/portmodel.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/js/models/portmodel.js
rename to src/main/resources/web/js/models/portmodel.js
diff --git a/src/ext/floodlight/src/main/resources/web/js/models/statusmodel.js b/src/main/resources/web/js/models/statusmodel.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/js/models/statusmodel.js
rename to src/main/resources/web/js/models/statusmodel.js
diff --git a/src/ext/floodlight/src/main/resources/web/js/models/switchmodel.js b/src/main/resources/web/js/models/switchmodel.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/js/models/switchmodel.js
rename to src/main/resources/web/js/models/switchmodel.js
diff --git a/src/ext/floodlight/src/main/resources/web/js/models/topologymodel.js b/src/main/resources/web/js/models/topologymodel.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/js/models/topologymodel.js
rename to src/main/resources/web/js/models/topologymodel.js
diff --git a/src/ext/floodlight/src/main/resources/web/js/utils.js b/src/main/resources/web/js/utils.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/js/utils.js
rename to src/main/resources/web/js/utils.js
diff --git a/src/ext/floodlight/src/main/resources/web/js/views/flow.js b/src/main/resources/web/js/views/flow.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/js/views/flow.js
rename to src/main/resources/web/js/views/flow.js
diff --git a/src/ext/floodlight/src/main/resources/web/js/views/header.js b/src/main/resources/web/js/views/header.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/js/views/header.js
rename to src/main/resources/web/js/views/header.js
diff --git a/src/ext/floodlight/src/main/resources/web/js/views/home.js b/src/main/resources/web/js/views/home.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/js/views/home.js
rename to src/main/resources/web/js/views/home.js
diff --git a/src/ext/floodlight/src/main/resources/web/js/views/host.js b/src/main/resources/web/js/views/host.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/js/views/host.js
rename to src/main/resources/web/js/views/host.js
diff --git a/src/ext/floodlight/src/main/resources/web/js/views/port.js b/src/main/resources/web/js/views/port.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/js/views/port.js
rename to src/main/resources/web/js/views/port.js
diff --git a/src/ext/floodlight/src/main/resources/web/js/views/status.js b/src/main/resources/web/js/views/status.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/js/views/status.js
rename to src/main/resources/web/js/views/status.js
diff --git a/src/ext/floodlight/src/main/resources/web/js/views/switch.js b/src/main/resources/web/js/views/switch.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/js/views/switch.js
rename to src/main/resources/web/js/views/switch.js
diff --git a/src/ext/floodlight/src/main/resources/web/js/views/topology.js b/src/main/resources/web/js/views/topology.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/js/views/topology.js
rename to src/main/resources/web/js/views/topology.js
diff --git a/src/ext/floodlight/src/main/resources/web/lib/backbone-min.js b/src/main/resources/web/lib/backbone-min.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/lib/backbone-min.js
rename to src/main/resources/web/lib/backbone-min.js
diff --git a/src/ext/floodlight/src/main/resources/web/lib/bootstrap-alert.js b/src/main/resources/web/lib/bootstrap-alert.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/lib/bootstrap-alert.js
rename to src/main/resources/web/lib/bootstrap-alert.js
diff --git a/src/ext/floodlight/src/main/resources/web/lib/bootstrap-dropdown.js b/src/main/resources/web/lib/bootstrap-dropdown.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/lib/bootstrap-dropdown.js
rename to src/main/resources/web/lib/bootstrap-dropdown.js
diff --git a/src/ext/floodlight/src/main/resources/web/lib/d3.v2.min.js b/src/main/resources/web/lib/d3.v2.min.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/lib/d3.v2.min.js
rename to src/main/resources/web/lib/d3.v2.min.js
diff --git a/src/ext/floodlight/src/main/resources/web/lib/jquery.min.js b/src/main/resources/web/lib/jquery.min.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/lib/jquery.min.js
rename to src/main/resources/web/lib/jquery.min.js
diff --git a/src/ext/floodlight/src/main/resources/web/lib/underscore-min.js b/src/main/resources/web/lib/underscore-min.js
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/lib/underscore-min.js
rename to src/main/resources/web/lib/underscore-min.js
diff --git a/src/ext/floodlight/src/main/resources/web/tpl/flow-list-item.html b/src/main/resources/web/tpl/flow-list-item.html
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/tpl/flow-list-item.html
rename to src/main/resources/web/tpl/flow-list-item.html
diff --git a/src/ext/floodlight/src/main/resources/web/tpl/flow-list.html b/src/main/resources/web/tpl/flow-list.html
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/tpl/flow-list.html
rename to src/main/resources/web/tpl/flow-list.html
diff --git a/src/ext/floodlight/src/main/resources/web/tpl/header.html b/src/main/resources/web/tpl/header.html
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/tpl/header.html
rename to src/main/resources/web/tpl/header.html
diff --git a/src/ext/floodlight/src/main/resources/web/tpl/home.html b/src/main/resources/web/tpl/home.html
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/tpl/home.html
rename to src/main/resources/web/tpl/home.html
diff --git a/src/ext/floodlight/src/main/resources/web/tpl/host-list-item.html b/src/main/resources/web/tpl/host-list-item.html
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/tpl/host-list-item.html
rename to src/main/resources/web/tpl/host-list-item.html
diff --git a/src/ext/floodlight/src/main/resources/web/tpl/host-list.html b/src/main/resources/web/tpl/host-list.html
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/tpl/host-list.html
rename to src/main/resources/web/tpl/host-list.html
diff --git a/src/ext/floodlight/src/main/resources/web/tpl/host.html b/src/main/resources/web/tpl/host.html
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/tpl/host.html
rename to src/main/resources/web/tpl/host.html
diff --git a/src/ext/floodlight/src/main/resources/web/tpl/port-list-item.html b/src/main/resources/web/tpl/port-list-item.html
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/tpl/port-list-item.html
rename to src/main/resources/web/tpl/port-list-item.html
diff --git a/src/ext/floodlight/src/main/resources/web/tpl/port-list.html b/src/main/resources/web/tpl/port-list.html
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/tpl/port-list.html
rename to src/main/resources/web/tpl/port-list.html
diff --git a/src/ext/floodlight/src/main/resources/web/tpl/status.html b/src/main/resources/web/tpl/status.html
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/tpl/status.html
rename to src/main/resources/web/tpl/status.html
diff --git a/src/ext/floodlight/src/main/resources/web/tpl/switch-list-item.html b/src/main/resources/web/tpl/switch-list-item.html
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/tpl/switch-list-item.html
rename to src/main/resources/web/tpl/switch-list-item.html
diff --git a/src/ext/floodlight/src/main/resources/web/tpl/switch-list.html b/src/main/resources/web/tpl/switch-list.html
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/tpl/switch-list.html
rename to src/main/resources/web/tpl/switch-list.html
diff --git a/src/ext/floodlight/src/main/resources/web/tpl/switch.html b/src/main/resources/web/tpl/switch.html
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/tpl/switch.html
rename to src/main/resources/web/tpl/switch.html
diff --git a/src/ext/floodlight/src/main/resources/web/tpl/topology.html b/src/main/resources/web/tpl/topology.html
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/tpl/topology.html
rename to src/main/resources/web/tpl/topology.html
diff --git a/src/ext/floodlight/src/main/resources/web/tpl/vlan-list-item.html b/src/main/resources/web/tpl/vlan-list-item.html
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/tpl/vlan-list-item.html
rename to src/main/resources/web/tpl/vlan-list-item.html
diff --git a/src/ext/floodlight/src/main/resources/web/tpl/vlan.html b/src/main/resources/web/tpl/vlan.html
similarity index 100%
rename from src/ext/floodlight/src/main/resources/web/tpl/vlan.html
rename to src/main/resources/web/tpl/vlan.html
diff --git a/src/ext/floodlight/src/main/thrift/packetstreamer.thrift b/src/main/thrift/packetstreamer.thrift
similarity index 100%
rename from src/ext/floodlight/src/main/thrift/packetstreamer.thrift
rename to src/main/thrift/packetstreamer.thrift
diff --git a/src/readme b/src/readme
deleted file mode 100644
index e69de29..0000000
--- a/src/readme
+++ /dev/null
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/core/internal/ControllerTest.java b/src/test/java/net/floodlightcontroller/core/internal/ControllerTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/core/internal/ControllerTest.java
rename to src/test/java/net/floodlightcontroller/core/internal/ControllerTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/core/internal/OFSwitchImplTest.java b/src/test/java/net/floodlightcontroller/core/internal/OFSwitchImplTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/core/internal/OFSwitchImplTest.java
rename to src/test/java/net/floodlightcontroller/core/internal/OFSwitchImplTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/core/internal/RoleChangerTest.java b/src/test/java/net/floodlightcontroller/core/internal/RoleChangerTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/core/internal/RoleChangerTest.java
rename to src/test/java/net/floodlightcontroller/core/internal/RoleChangerTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/core/module/FloodlightTestModuleLoader.java b/src/test/java/net/floodlightcontroller/core/module/FloodlightTestModuleLoader.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/core/module/FloodlightTestModuleLoader.java
rename to src/test/java/net/floodlightcontroller/core/module/FloodlightTestModuleLoader.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/core/test/MockFloodlightProvider.java b/src/test/java/net/floodlightcontroller/core/test/MockFloodlightProvider.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/core/test/MockFloodlightProvider.java
rename to src/test/java/net/floodlightcontroller/core/test/MockFloodlightProvider.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/core/test/MockScheduledExecutor.java b/src/test/java/net/floodlightcontroller/core/test/MockScheduledExecutor.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/core/test/MockScheduledExecutor.java
rename to src/test/java/net/floodlightcontroller/core/test/MockScheduledExecutor.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/core/test/MockThreadPoolService.java b/src/test/java/net/floodlightcontroller/core/test/MockThreadPoolService.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/core/test/MockThreadPoolService.java
rename to src/test/java/net/floodlightcontroller/core/test/MockThreadPoolService.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/core/test/PacketFactory.java b/src/test/java/net/floodlightcontroller/core/test/PacketFactory.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/core/test/PacketFactory.java
rename to src/test/java/net/floodlightcontroller/core/test/PacketFactory.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/core/util/AppCookieTest.java b/src/test/java/net/floodlightcontroller/core/util/AppCookieTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/core/util/AppCookieTest.java
rename to src/test/java/net/floodlightcontroller/core/util/AppCookieTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/core/util/MessageDispatcherTest.java b/src/test/java/net/floodlightcontroller/core/util/MessageDispatcherTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/core/util/MessageDispatcherTest.java
rename to src/test/java/net/floodlightcontroller/core/util/MessageDispatcherTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/core/util/SingletonTaskTest.java b/src/test/java/net/floodlightcontroller/core/util/SingletonTaskTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/core/util/SingletonTaskTest.java
rename to src/test/java/net/floodlightcontroller/core/util/SingletonTaskTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImplTest.java b/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImplTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImplTest.java
rename to src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImplTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceUniqueIndexTest.java b/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceUniqueIndexTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceUniqueIndexTest.java
rename to src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceUniqueIndexTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/devicemanager/test/MockDevice.java b/src/test/java/net/floodlightcontroller/devicemanager/test/MockDevice.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/devicemanager/test/MockDevice.java
rename to src/test/java/net/floodlightcontroller/devicemanager/test/MockDevice.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/devicemanager/test/MockDeviceManager.java b/src/test/java/net/floodlightcontroller/devicemanager/test/MockDeviceManager.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/devicemanager/test/MockDeviceManager.java
rename to src/test/java/net/floodlightcontroller/devicemanager/test/MockDeviceManager.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/devicemanager/test/MockEntityClassifier.java b/src/test/java/net/floodlightcontroller/devicemanager/test/MockEntityClassifier.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/devicemanager/test/MockEntityClassifier.java
rename to src/test/java/net/floodlightcontroller/devicemanager/test/MockEntityClassifier.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/devicemanager/test/MockEntityClassifierMac.java b/src/test/java/net/floodlightcontroller/devicemanager/test/MockEntityClassifierMac.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/devicemanager/test/MockEntityClassifierMac.java
rename to src/test/java/net/floodlightcontroller/devicemanager/test/MockEntityClassifierMac.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/devicemanager/test/MockFlexEntityClassifier.java b/src/test/java/net/floodlightcontroller/devicemanager/test/MockFlexEntityClassifier.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/devicemanager/test/MockFlexEntityClassifier.java
rename to src/test/java/net/floodlightcontroller/devicemanager/test/MockFlexEntityClassifier.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/firewall/FirewallTest.java b/src/test/java/net/floodlightcontroller/firewall/FirewallTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/firewall/FirewallTest.java
rename to src/test/java/net/floodlightcontroller/firewall/FirewallTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/flowcache/FlowReconcileMgrTest.java b/src/test/java/net/floodlightcontroller/flowcache/FlowReconcileMgrTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/flowcache/FlowReconcileMgrTest.java
rename to src/test/java/net/floodlightcontroller/flowcache/FlowReconcileMgrTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/forwarding/ForwardingTest.java b/src/test/java/net/floodlightcontroller/forwarding/ForwardingTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/forwarding/ForwardingTest.java
rename to src/test/java/net/floodlightcontroller/forwarding/ForwardingTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/hub/HubTest.java b/src/test/java/net/floodlightcontroller/hub/HubTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/hub/HubTest.java
rename to src/test/java/net/floodlightcontroller/hub/HubTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/learningswitch/LearningSwitchTest.java b/src/test/java/net/floodlightcontroller/learningswitch/LearningSwitchTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/learningswitch/LearningSwitchTest.java
rename to src/test/java/net/floodlightcontroller/learningswitch/LearningSwitchTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManagerTest.java b/src/test/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManagerTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManagerTest.java
rename to src/test/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManagerTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/BSNTest.java b/src/test/java/net/floodlightcontroller/packet/BSNTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/BSNTest.java
rename to src/test/java/net/floodlightcontroller/packet/BSNTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/DHCPTest.java b/src/test/java/net/floodlightcontroller/packet/DHCPTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/DHCPTest.java
rename to src/test/java/net/floodlightcontroller/packet/DHCPTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/EthernetTest.java b/src/test/java/net/floodlightcontroller/packet/EthernetTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/EthernetTest.java
rename to src/test/java/net/floodlightcontroller/packet/EthernetTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/ICMPTest.java b/src/test/java/net/floodlightcontroller/packet/ICMPTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/ICMPTest.java
rename to src/test/java/net/floodlightcontroller/packet/ICMPTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/IPv4Test.java b/src/test/java/net/floodlightcontroller/packet/IPv4Test.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/IPv4Test.java
rename to src/test/java/net/floodlightcontroller/packet/IPv4Test.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/LLDPOrganizationalTLVTest.java b/src/test/java/net/floodlightcontroller/packet/LLDPOrganizationalTLVTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/LLDPOrganizationalTLVTest.java
rename to src/test/java/net/floodlightcontroller/packet/LLDPOrganizationalTLVTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/LLDPTest.java b/src/test/java/net/floodlightcontroller/packet/LLDPTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/LLDPTest.java
rename to src/test/java/net/floodlightcontroller/packet/LLDPTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/PacketTest.java b/src/test/java/net/floodlightcontroller/packet/PacketTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/PacketTest.java
rename to src/test/java/net/floodlightcontroller/packet/PacketTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/TCPTest.java b/src/test/java/net/floodlightcontroller/packet/TCPTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/TCPTest.java
rename to src/test/java/net/floodlightcontroller/packet/TCPTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/UDPTest.java b/src/test/java/net/floodlightcontroller/packet/UDPTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/packet/UDPTest.java
rename to src/test/java/net/floodlightcontroller/packet/UDPTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/routing/RouteTest.java b/src/test/java/net/floodlightcontroller/routing/RouteTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/routing/RouteTest.java
rename to src/test/java/net/floodlightcontroller/routing/RouteTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/staticflowentry/StaticFlowTests.java b/src/test/java/net/floodlightcontroller/staticflowentry/StaticFlowTests.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/staticflowentry/StaticFlowTests.java
rename to src/test/java/net/floodlightcontroller/staticflowentry/StaticFlowTests.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/storage/memory/tests/MemoryStorageTest.java b/src/test/java/net/floodlightcontroller/storage/memory/tests/MemoryStorageTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/storage/memory/tests/MemoryStorageTest.java
rename to src/test/java/net/floodlightcontroller/storage/memory/tests/MemoryStorageTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/storage/tests/StorageTest.java b/src/test/java/net/floodlightcontroller/storage/tests/StorageTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/storage/tests/StorageTest.java
rename to src/test/java/net/floodlightcontroller/storage/tests/StorageTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/test/FloodlightTestCase.java b/src/test/java/net/floodlightcontroller/test/FloodlightTestCase.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/test/FloodlightTestCase.java
rename to src/test/java/net/floodlightcontroller/test/FloodlightTestCase.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/topology/TopologyInstanceTest.java b/src/test/java/net/floodlightcontroller/topology/TopologyInstanceTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/topology/TopologyInstanceTest.java
rename to src/test/java/net/floodlightcontroller/topology/TopologyInstanceTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/topology/TopologyManagerTest.java b/src/test/java/net/floodlightcontroller/topology/TopologyManagerTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/topology/TopologyManagerTest.java
rename to src/test/java/net/floodlightcontroller/topology/TopologyManagerTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/util/MACAddressTest.java b/src/test/java/net/floodlightcontroller/util/MACAddressTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/util/MACAddressTest.java
rename to src/test/java/net/floodlightcontroller/util/MACAddressTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/util/OFMessageDamperMockSwitch.java b/src/test/java/net/floodlightcontroller/util/OFMessageDamperMockSwitch.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/util/OFMessageDamperMockSwitch.java
rename to src/test/java/net/floodlightcontroller/util/OFMessageDamperMockSwitch.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/util/OFMessageDamperTest.java b/src/test/java/net/floodlightcontroller/util/OFMessageDamperTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/util/OFMessageDamperTest.java
rename to src/test/java/net/floodlightcontroller/util/OFMessageDamperTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/util/TimedCacheTest.java b/src/test/java/net/floodlightcontroller/util/TimedCacheTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/util/TimedCacheTest.java
rename to src/test/java/net/floodlightcontroller/util/TimedCacheTest.java
diff --git a/src/ext/floodlight/src/test/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkFilterTest.java b/src/test/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkFilterTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkFilterTest.java
rename to src/test/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkFilterTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/BasicFactoryTest.java b/src/test/java/org/openflow/protocol/BasicFactoryTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/BasicFactoryTest.java
rename to src/test/java/org/openflow/protocol/BasicFactoryTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/OFActionTypeTest.java b/src/test/java/org/openflow/protocol/OFActionTypeTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/OFActionTypeTest.java
rename to src/test/java/org/openflow/protocol/OFActionTypeTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/OFBarrierReplyTest.java b/src/test/java/org/openflow/protocol/OFBarrierReplyTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/OFBarrierReplyTest.java
rename to src/test/java/org/openflow/protocol/OFBarrierReplyTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/OFBarrierRequestTest.java b/src/test/java/org/openflow/protocol/OFBarrierRequestTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/OFBarrierRequestTest.java
rename to src/test/java/org/openflow/protocol/OFBarrierRequestTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/OFErrorTest.java b/src/test/java/org/openflow/protocol/OFErrorTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/OFErrorTest.java
rename to src/test/java/org/openflow/protocol/OFErrorTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/OFFeaturesReplyTest.java b/src/test/java/org/openflow/protocol/OFFeaturesReplyTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/OFFeaturesReplyTest.java
rename to src/test/java/org/openflow/protocol/OFFeaturesReplyTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/OFFlowRemovedTest.java b/src/test/java/org/openflow/protocol/OFFlowRemovedTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/OFFlowRemovedTest.java
rename to src/test/java/org/openflow/protocol/OFFlowRemovedTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/OFGetConfigReplyTest.java b/src/test/java/org/openflow/protocol/OFGetConfigReplyTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/OFGetConfigReplyTest.java
rename to src/test/java/org/openflow/protocol/OFGetConfigReplyTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/OFGetConfigRequestTest.java b/src/test/java/org/openflow/protocol/OFGetConfigRequestTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/OFGetConfigRequestTest.java
rename to src/test/java/org/openflow/protocol/OFGetConfigRequestTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/OFMatchTest.java b/src/test/java/org/openflow/protocol/OFMatchTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/OFMatchTest.java
rename to src/test/java/org/openflow/protocol/OFMatchTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/OFMessageContextStoreTest.java b/src/test/java/org/openflow/protocol/OFMessageContextStoreTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/OFMessageContextStoreTest.java
rename to src/test/java/org/openflow/protocol/OFMessageContextStoreTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/OFPortConfigTest.java b/src/test/java/org/openflow/protocol/OFPortConfigTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/OFPortConfigTest.java
rename to src/test/java/org/openflow/protocol/OFPortConfigTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/OFPortStatusTest.java b/src/test/java/org/openflow/protocol/OFPortStatusTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/OFPortStatusTest.java
rename to src/test/java/org/openflow/protocol/OFPortStatusTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/OFSetConfigTest.java b/src/test/java/org/openflow/protocol/OFSetConfigTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/OFSetConfigTest.java
rename to src/test/java/org/openflow/protocol/OFSetConfigTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/OFStatisticsReplyTest.java b/src/test/java/org/openflow/protocol/OFStatisticsReplyTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/OFStatisticsReplyTest.java
rename to src/test/java/org/openflow/protocol/OFStatisticsReplyTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/OFStatisticsRequestTest.java b/src/test/java/org/openflow/protocol/OFStatisticsRequestTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/OFStatisticsRequestTest.java
rename to src/test/java/org/openflow/protocol/OFStatisticsRequestTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/OFStatisticsTypeTest.java b/src/test/java/org/openflow/protocol/OFStatisticsTypeTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/OFStatisticsTypeTest.java
rename to src/test/java/org/openflow/protocol/OFStatisticsTypeTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/OFTypeTest.java b/src/test/java/org/openflow/protocol/OFTypeTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/OFTypeTest.java
rename to src/test/java/org/openflow/protocol/OFTypeTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/protocol/OFVendorTest.java b/src/test/java/org/openflow/protocol/OFVendorTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/protocol/OFVendorTest.java
rename to src/test/java/org/openflow/protocol/OFVendorTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/util/HexStringTest.java b/src/test/java/org/openflow/util/HexStringTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/util/HexStringTest.java
rename to src/test/java/org/openflow/util/HexStringTest.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/util/OFTestCase.java b/src/test/java/org/openflow/util/OFTestCase.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/util/OFTestCase.java
rename to src/test/java/org/openflow/util/OFTestCase.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/util/U16Test.java b/src/test/java/org/openflow/util/U16Test.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/util/U16Test.java
rename to src/test/java/org/openflow/util/U16Test.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/util/U32Test.java b/src/test/java/org/openflow/util/U32Test.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/util/U32Test.java
rename to src/test/java/org/openflow/util/U32Test.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/util/U64Test.java b/src/test/java/org/openflow/util/U64Test.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/util/U64Test.java
rename to src/test/java/org/openflow/util/U64Test.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/util/U8Test.java b/src/test/java/org/openflow/util/U8Test.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/util/U8Test.java
rename to src/test/java/org/openflow/util/U8Test.java
diff --git a/src/ext/floodlight/src/test/java/org/openflow/util/UnsignedTest.java b/src/test/java/org/openflow/util/UnsignedTest.java
similarity index 100%
rename from src/ext/floodlight/src/test/java/org/openflow/util/UnsignedTest.java
rename to src/test/java/org/openflow/util/UnsignedTest.java