Eliminating some performance bottlenecks; more to be done.
diff --git a/core/api/src/main/java/org/onlab/onos/net/ElementId.java b/core/api/src/main/java/org/onlab/onos/net/ElementId.java
index d2cd398..3f9c88d 100644
--- a/core/api/src/main/java/org/onlab/onos/net/ElementId.java
+++ b/core/api/src/main/java/org/onlab/onos/net/ElementId.java
@@ -9,10 +9,12 @@
public abstract class ElementId {
private final URI uri;
+ private final String str;
// Default constructor for serialization
protected ElementId() {
this.uri = null;
+ this.str = null;
}
/**
@@ -22,6 +24,7 @@
*/
protected ElementId(URI uri) {
this.uri = uri;
+ this.str = uri.toString();
}
/**
@@ -35,7 +38,7 @@
@Override
public int hashCode() {
- return Objects.hash(uri);
+ return Objects.hash(str);
}
@Override
@@ -46,14 +49,14 @@
if (obj instanceof ElementId) {
final ElementId that = (ElementId) obj;
return this.getClass() == that.getClass() &&
- Objects.equals(this.uri, that.uri);
+ Objects.equals(this.str, that.str);
}
return false;
}
@Override
public String toString() {
- return uri.toString();
+ return str;
}
}
diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/DefaultTrafficTreatment.java b/core/api/src/main/java/org/onlab/onos/net/flow/DefaultTrafficTreatment.java
index 7182916..269347a 100644
--- a/core/api/src/main/java/org/onlab/onos/net/flow/DefaultTrafficTreatment.java
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/DefaultTrafficTreatment.java
@@ -1,19 +1,16 @@
package org.onlab.onos.net.flow;
-import static org.slf4j.LoggerFactory.getLogger;
-
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Objects;
-
import org.onlab.onos.net.PortNumber;
import org.onlab.onos.net.flow.instructions.Instruction;
import org.onlab.onos.net.flow.instructions.Instructions;
import org.onlab.packet.IpPrefix;
import org.onlab.packet.MacAddress;
import org.onlab.packet.VlanId;
-import org.slf4j.Logger;
+
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Objects;
/**
* Default traffic treatment implementation.
@@ -58,7 +55,7 @@
}
if (obj instanceof DefaultTrafficTreatment) {
DefaultTrafficTreatment that = (DefaultTrafficTreatment) obj;
- return Objects.equals(instructions, that.instructions);
+ return Objects.equals(instructions, that.instructions);
}
return false;
@@ -70,8 +67,6 @@
*/
public static final class Builder implements TrafficTreatment.Builder {
- private final Logger log = getLogger(getClass());
-
boolean drop = false;
List<Instruction> outputs = new LinkedList<>();
@@ -107,7 +102,8 @@
groups.add(instruction);
break;
default:
- log.warn("Unknown instruction type {}", instruction.type());
+ throw new IllegalArgumentException("Unknown instruction type: " +
+ instruction.type());
}
return this;
}