Ray Milkey
Committed by Brian O'Connor

[Cardinal] Add builders for Intents and remove extra constructors.

Starting with PointToPoint intent to see how it looks

Change-Id: I5366a05d657ceaad18c03b95cd71f5d1107200e2
......@@ -324,11 +324,15 @@ public class IntentPerfInstaller {
ConnectPoint ingress = new ConnectPoint(device.id(), PortNumber.portNumber(1));
ConnectPoint egress = new ConnectPoint(device.id(), PortNumber.portNumber(2));
return new PointToPointIntent(appId, key,
selector, treatment,
ingress, egress,
Collections.emptyList(),
Intent.DEFAULT_INTENT_PRIORITY);
return PointToPointIntent.builder()
.appId(appId)
.key(key)
.selector(selector)
.treatment(treatment)
.ingressPoint(ingress)
.egressPoint(egress)
.build();
}
/**
......
......@@ -37,7 +37,6 @@ import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
/**
......@@ -192,11 +191,14 @@ public class PeerConnectivityManager {
int priority = PRIORITY_OFFSET;
intents.add(new PointToPointIntent(appId, selector, treatment,
bgpdConnectPoint,
bgpdPeerConnectPoint,
Collections.emptyList(),
priority));
intents.add(PointToPointIntent.builder()
.appId(appId)
.selector(selector)
.treatment(treatment)
.ingressPoint(bgpdConnectPoint)
.egressPoint(bgpdPeerConnectPoint)
.priority(priority)
.build());
// Path from BGP speaker to BGP peer matching source TCP port 179
selector = buildSelector(tcpProtocol,
......@@ -205,11 +207,14 @@ public class PeerConnectivityManager {
BGP_PORT,
null);
intents.add(new PointToPointIntent(appId, selector, treatment,
bgpdConnectPoint,
bgpdPeerConnectPoint,
Collections.emptyList(),
priority));
intents.add(PointToPointIntent.builder()
.appId(appId)
.selector(selector)
.treatment(treatment)
.ingressPoint(bgpdConnectPoint)
.egressPoint(bgpdPeerConnectPoint)
.priority(priority)
.build());
// Path from BGP peer to BGP speaker matching destination TCP port 179
selector = buildSelector(tcpProtocol,
......@@ -218,11 +223,14 @@ public class PeerConnectivityManager {
null,
BGP_PORT);
intents.add(new PointToPointIntent(appId, selector, treatment,
bgpdPeerConnectPoint,
bgpdConnectPoint,
Collections.emptyList(),
priority));
intents.add(PointToPointIntent.builder()
.appId(appId)
.selector(selector)
.treatment(treatment)
.ingressPoint(bgpdPeerConnectPoint)
.egressPoint(bgpdConnectPoint)
.priority(priority)
.build());
// Path from BGP peer to BGP speaker matching source TCP port 179
selector = buildSelector(tcpProtocol,
......@@ -231,11 +239,14 @@ public class PeerConnectivityManager {
BGP_PORT,
null);
intents.add(new PointToPointIntent(appId, selector, treatment,
bgpdPeerConnectPoint,
bgpdConnectPoint,
Collections.emptyList(),
priority));
intents.add(PointToPointIntent.builder()
.appId(appId)
.selector(selector)
.treatment(treatment)
.ingressPoint(bgpdPeerConnectPoint)
.egressPoint(bgpdConnectPoint)
.priority(priority)
.build());
// ICMP path from BGP speaker to BGP peer
selector = buildSelector(icmpProtocol,
......@@ -244,11 +255,14 @@ public class PeerConnectivityManager {
null,
null);
intents.add(new PointToPointIntent(appId, selector, treatment,
bgpdConnectPoint,
bgpdPeerConnectPoint,
Collections.emptyList(),
priority));
intents.add(PointToPointIntent.builder()
.appId(appId)
.selector(selector)
.treatment(treatment)
.ingressPoint(bgpdConnectPoint)
.egressPoint(bgpdPeerConnectPoint)
.priority(priority)
.build());
// ICMP path from BGP peer to BGP speaker
selector = buildSelector(icmpProtocol,
......@@ -257,11 +271,14 @@ public class PeerConnectivityManager {
null,
null);
intents.add(new PointToPointIntent(appId, selector, treatment,
bgpdPeerConnectPoint,
bgpdConnectPoint,
Collections.emptyList(),
priority));
intents.add(PointToPointIntent.builder()
.appId(appId)
.selector(selector)
.treatment(treatment)
.ingressPoint(bgpdPeerConnectPoint)
.egressPoint(bgpdConnectPoint)
.priority(priority)
.build());
return intents;
}
......
......@@ -15,7 +15,13 @@
*/
package org.onosproject.sdnip;
import com.google.common.collect.Sets;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
......@@ -46,14 +52,13 @@ import org.onosproject.routing.config.Interface;
import org.onosproject.routing.config.InterfaceAddress;
import org.onosproject.routing.config.RoutingConfigurationService;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import com.google.common.collect.Sets;
import static org.easymock.EasyMock.*;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.reset;
import static org.easymock.EasyMock.verify;
import static org.onosproject.sdnip.TestIntentServiceHelper.eqExceptId;
/**
......@@ -285,9 +290,13 @@ public class PeerConnectivityManagerTest extends AbstractIntentTest {
builder.matchTcpDst(dstTcpPort);
}
PointToPointIntent intent = new PointToPointIntent(
APPID, builder.build(), noTreatment,
srcConnectPoint, dstConnectPoint);
PointToPointIntent intent = PointToPointIntent.builder()
.appId(APPID)
.selector(builder.build())
.treatment(noTreatment)
.ingressPoint(srcConnectPoint)
.egressPoint(dstConnectPoint)
.build();
intentList.add(intent);
}
......@@ -457,9 +466,13 @@ public class PeerConnectivityManagerTest extends AbstractIntentTest {
.matchIPDst(IpPrefix.valueOf(dstPrefix))
.build();
PointToPointIntent intent = new PointToPointIntent(
APPID, selector, noTreatment,
srcConnectPoint, dstConnectPoint);
PointToPointIntent intent = PointToPointIntent.builder()
.appId(APPID)
.selector(selector)
.treatment(noTreatment)
.ingressPoint(srcConnectPoint)
.egressPoint(dstConnectPoint)
.build();
intentList.add(intent);
}
......
......@@ -67,11 +67,16 @@ public class AddPointToPointIntentCommand extends ConnectivityIntentCommand {
List<Constraint> constraints = buildConstraints();
Intent intent = new PointToPointIntent(appId(),
key(),
selector, treatment,
ingress, egress, constraints,
priority());
Intent intent = PointToPointIntent.builder()
.appId(appId())
.key(key())
.selector(selector)
.treatment(treatment)
.ingressPoint(ingress)
.egressPoint(egress)
.constraints(constraints)
.priority(priority())
.build();
service.submit(intent);
print("Point to point intent submitted:\n%s", intent.toString());
}
......
......@@ -15,7 +15,11 @@
*/
package org.onosproject.cli.net;
import com.google.common.collect.Lists;
import java.util.EnumSet;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
import org.onlab.packet.Ethernet;
......@@ -36,11 +40,7 @@ import org.onosproject.net.intent.IntentService;
import org.onosproject.net.intent.Key;
import org.onosproject.net.intent.PointToPointIntent;
import java.util.Collections;
import java.util.EnumSet;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicLong;
import com.google.common.collect.Lists;
import static org.onlab.util.Tools.delay;
import static org.onosproject.net.DeviceId.deviceId;
......@@ -127,11 +127,16 @@ public class IntentCycleCommand extends AbstractShellCommand
TrafficSelector selector = selectorBldr
.matchEthSrc(MacAddress.valueOf(i + keyOffset))
.build();
intents.add(new PointToPointIntent(appId(), Key.of(i + keyOffset, appId()),
selector, treatment,
ingress, egress,
Collections.emptyList(),
Intent.DEFAULT_INTENT_PRIORITY));
intents.add(
PointToPointIntent.builder()
.appId(appId())
.key(Key.of(i + keyOffset, appId()))
.selector(selector)
.treatment(treatment)
.ingressPoint(ingress)
.egressPoint(egress)
.build());
}
return intents;
......
......@@ -15,7 +15,11 @@
*/
package org.onosproject.cli.net;
import com.google.common.collect.Lists;
import java.util.EnumSet;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
import org.apache.karaf.shell.commands.Option;
......@@ -37,11 +41,7 @@ import org.onosproject.net.intent.IntentService;
import org.onosproject.net.intent.Key;
import org.onosproject.net.intent.PointToPointIntent;
import java.util.Collections;
import java.util.EnumSet;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import com.google.common.collect.Lists;
import static org.onosproject.net.DeviceId.deviceId;
import static org.onosproject.net.PortNumber.portNumber;
......@@ -136,11 +136,15 @@ public class IntentPushTestCommand extends AbstractShellCommand
TrafficSelector selector = selectorBldr
.matchEthSrc(MacAddress.valueOf(i + keyOffset))
.build();
intents.add(new PointToPointIntent(appId(), Key.of(i + keyOffset, appId()),
selector, treatment,
ingress, egress,
Collections.emptyList(),
Intent.DEFAULT_INTENT_PRIORITY));
intents.add(PointToPointIntent.builder()
.appId(appId())
.key(Key.of(i + keyOffset, appId()))
.selector(selector)
.treatment(treatment)
.ingressPoint(ingress)
.egressPoint(egress)
.build());
}
return intents;
......
......@@ -15,10 +15,13 @@
*/
package org.onosproject.net.intent;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import org.onosproject.core.ApplicationId;
import org.onosproject.net.Link;
import org.onosproject.net.NetworkResource;
import org.onosproject.net.flow.DefaultTrafficSelector;
import org.onosproject.net.flow.DefaultTrafficTreatment;
import org.onosproject.net.flow.TrafficSelector;
import org.onosproject.net.flow.TrafficTreatment;
......@@ -112,6 +115,65 @@ public abstract class ConnectivityIntent extends Intent {
}
/**
* Abstract builder for connectivity intents.
*/
public abstract static class Builder extends Intent.Builder {
protected TrafficSelector selector = DefaultTrafficSelector.emptySelector();
protected TrafficTreatment treatment = DefaultTrafficTreatment.emptyTreatment();
protected List<Constraint> constraints = ImmutableList.of();
@Override
public Builder appId(ApplicationId appId) {
return (Builder) super.appId(appId);
}
@Override
public Builder key(Key key) {
return (Builder) super.key(key);
}
@Override
public Builder priority(int priority) {
return (Builder) super.priority(priority);
}
/**
* Sets the traffic selector for the intent that will be built.
*
* @param selector selector to use for built intent
* @return this builder
*/
public Builder selector(TrafficSelector selector) {
this.selector = selector;
return this;
}
/**
* Sets the traffic treatment for the intent that will be built.
*
* @param treatment treatment to use for built intent
* @return this builder
*/
public Builder treatment(TrafficTreatment treatment) {
this.treatment = treatment;
return this;
}
/**
* Sets the constraints for the intent that will be built.
*
* @param constraints constraints to use for built intent
* @return this builder
*/
public Builder constraints(List<Constraint> constraints) {
this.constraints = ImmutableList.copyOf(constraints);
return this;
}
}
/**
* Returns the match specifying the type of traffic.
*
* @return traffic match
......
......@@ -15,13 +15,13 @@
*/
package org.onosproject.net.intent;
import java.util.Collection;
import java.util.Objects;
import org.onosproject.core.ApplicationId;
import org.onosproject.core.IdGenerator;
import org.onosproject.net.NetworkResource;
import java.util.Collection;
import java.util.Objects;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;
......@@ -92,6 +92,49 @@ public abstract class Intent {
}
/**
* Abstract builder for intents.
*/
public abstract static class Builder {
protected ApplicationId appId;
protected Key key;
protected int priority = Intent.DEFAULT_INTENT_PRIORITY;
/**
* Sets the application id for the intent that will be built.
*
* @param appId application id to use for built intent
* @return this builder
*/
public Builder appId(ApplicationId appId) {
this.appId = appId;
return this;
}
/**
* Sets the key for the intent that will be built.
*
* @param key key to use for built intent
* @return this builder
*/
public Builder key(Key key) {
this.key = key;
return this;
}
/**
* Sets the priority for the intent that will be built.
*
* @param priority priority to use for built intent
* @return this builder
*/
public Builder priority(int priority) {
this.priority = priority;
return this;
}
}
/**
* Returns the intent identifier.
*
* @return intent fingerprint
......
......@@ -15,17 +15,15 @@
*/
package org.onosproject.net.intent;
import com.google.common.base.MoreObjects;
import com.google.common.collect.ImmutableList;
import java.util.Collections;
import java.util.List;
import org.onosproject.core.ApplicationId;
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.Link;
import org.onosproject.net.flow.TrafficSelector;
import org.onosproject.net.flow.TrafficTreatment;
import org.onosproject.net.intent.constraint.LinkTypeConstraint;
import java.util.Collections;
import java.util.List;
import com.google.common.base.MoreObjects;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
......@@ -39,80 +37,127 @@ public final class PointToPointIntent extends ConnectivityIntent {
private final ConnectPoint egressPoint;
/**
* Creates a new point-to-point intent with the supplied ingress/egress
* ports and constraints.
* Returns a new point to point intent builder. The application id,
* ingress point and egress point are required fields. If they are
* not set by calls to the appropriate methods, an exception will
* be thrown.
*
* @param appId application identifier
* @param key key of the intent
* @param selector traffic selector
* @param treatment treatment
* @param ingressPoint ingress port
* @param egressPoint egress port
* @param constraints optional list of constraints
* @param priority priority to use for flows generated by this intent
* @throws NullPointerException if {@code ingressPoint} or {@code egressPoints} is null.
* @return point to point builder
*/
public PointToPointIntent(ApplicationId appId,
Key key,
TrafficSelector selector,
TrafficTreatment treatment,
ConnectPoint ingressPoint,
ConnectPoint egressPoint,
List<Constraint> constraints,
int priority) {
super(appId, key, Collections.emptyList(), selector, treatment, constraints,
priority);
public static PointToPointIntent.Builder builder() {
return new Builder();
}
checkNotNull(ingressPoint);
checkNotNull(egressPoint);
checkArgument(!ingressPoint.equals(egressPoint),
"ingress and egress should be different (ingress: %s, egress: %s)", ingressPoint, egressPoint);
/**
* Builder of a point to point intent.
*/
public static final class Builder extends ConnectivityIntent.Builder {
ConnectPoint ingressPoint;
ConnectPoint egressPoint;
private Builder() {
// Hide constructor
}
@Override
public Builder appId(ApplicationId appId) {
return (Builder) super.appId(appId);
}
@Override
public Builder key(Key key) {
return (Builder) super.key(key);
}
@Override
public Builder selector(TrafficSelector selector) {
return (Builder) super.selector(selector);
}
@Override
public Builder treatment(TrafficTreatment treatment) {
return (Builder) super.treatment(treatment);
}
@Override
public Builder constraints(List<Constraint> constraints) {
return (Builder) super.constraints(constraints);
}
@Override
public Builder priority(int priority) {
return (Builder) super.priority(priority);
}
/**
* Sets the ingress point of the point to point intent that will be built.
*
* @param ingressPoint ingress connect point
* @return this builder
*/
public Builder ingressPoint(ConnectPoint ingressPoint) {
this.ingressPoint = ingressPoint;
return this;
}
/**
* Sets the egress point of the point to point intent that will be built.
*
* @param egressPoint egress connect point
* @return this builder
*/
public Builder egressPoint(ConnectPoint egressPoint) {
this.egressPoint = egressPoint;
return this;
}
/**
* Creates a new point-to-point intent with the supplied ingress/egress
* ports and with built-in link type constraint to avoid optical links.
* Builds a point to point intent from the accumulated parameters.
*
* @param appId application identifier
* @param selector traffic selector
* @param treatment treatment
* @param ingressPoint ingress port
* @param egressPoint egress port
* @throws NullPointerException if {@code ingressPoint} or {@code egressPoints} is null.
* @return point to point intent
*/
public PointToPointIntent(ApplicationId appId, TrafficSelector selector,
TrafficTreatment treatment,
ConnectPoint ingressPoint,
ConnectPoint egressPoint) {
this(appId, null, selector, treatment, ingressPoint, egressPoint,
ImmutableList.of(new LinkTypeConstraint(false, Link.Type.OPTICAL)),
DEFAULT_INTENT_PRIORITY);
public PointToPointIntent build() {
return new PointToPointIntent(
appId,
key,
selector,
treatment,
ingressPoint,
egressPoint,
constraints,
priority
);
}
}
/**
* Creates a new point-to-point intent with the supplied ingress/egress
* ports and constraints.
*
* @param appId application identifier
* @param key key of the intent
* @param selector traffic selector
* @param treatment treatment
* @param ingressPoint ingress port
* @param egressPoint egress port
* @param constraints optional list of constraints
* @param priority priority to use for flows generated by this intent
* @throws NullPointerException if {@code ingressPoint} or {@code egressPoints} is null.
* @throws NullPointerException if {@code ingressPoint} or
* {@code egressPoints} or {@code appId} is null.
*/
public PointToPointIntent(ApplicationId appId, TrafficSelector selector,
private PointToPointIntent(ApplicationId appId,
Key key,
TrafficSelector selector,
TrafficTreatment treatment,
ConnectPoint ingressPoint,
ConnectPoint egressPoint,
List<Constraint> constraints,
int priority) {
super(appId, null, Collections.emptyList(), selector, treatment,
constraints, priority);
super(appId, key, Collections.emptyList(), selector, treatment, constraints,
priority);
checkNotNull(ingressPoint);
checkNotNull(egressPoint);
......
......@@ -44,11 +44,23 @@ public class PointToPointIntentTest extends ConnectivityIntentTest {
@Override
protected PointToPointIntent createOne() {
return new PointToPointIntent(APPID, MATCH, NOP, P1, P2);
return PointToPointIntent.builder()
.appId(APPID)
.selector(MATCH)
.treatment(NOP)
.ingressPoint(P1)
.egressPoint(P2)
.build();
}
@Override
protected PointToPointIntent createAnother() {
return new PointToPointIntent(APPID, MATCH, NOP, P2, P1);
return PointToPointIntent.builder()
.appId(APPID)
.selector(MATCH)
.treatment(NOP)
.ingressPoint(P2)
.egressPoint(P1)
.build();
}
}
......
......@@ -48,14 +48,25 @@ public class TwoWayP2PIntentCompiler
public List<Intent> compile(TwoWayP2PIntent intent, List<Intent> installable,
Set<LinkResourceAllocations> resources) {
return Lists.newArrayList(
new PointToPointIntent(intent.appId(), intent.key(),
intent.selector(), intent.treatment(),
intent.one(), intent.two(),
intent.constraints(), intent.priority()),
new PointToPointIntent(intent.appId(), intent.key(),
intent.selector(), intent.treatment(),
intent.two(), intent.one(),
intent.constraints(), intent.priority()));
PointToPointIntent.builder()
.appId(intent.appId())
.key(intent.key())
.selector(intent.selector())
.treatment(intent.treatment())
.ingressPoint(intent.one())
.egressPoint(intent.two())
.constraints(intent.constraints())
.priority(intent.priority())
.build(),
PointToPointIntent.builder()
.appId(intent.appId())
.key(intent.key())
.selector(intent.selector())
.treatment(intent.treatment())
.ingressPoint(intent.two())
.egressPoint(intent.one())
.constraints(intent.constraints())
.priority(intent.priority())
.build());
}
}
......
......@@ -72,9 +72,13 @@ public class PointToPointIntentCompilerTest extends AbstractIntentTest {
*/
private PointToPointIntent makeIntent(String ingressIdString,
String egressIdString) {
return new PointToPointIntent(APPID, selector, treatment,
connectPoint(ingressIdString, 1),
connectPoint(egressIdString, 1));
return PointToPointIntent.builder()
.appId(APPID)
.selector(selector)
.treatment(treatment)
.ingressPoint(connectPoint(ingressIdString, 1))
.egressPoint(connectPoint(egressIdString, 1))
.build();
}
/**
......@@ -87,10 +91,14 @@ public class PointToPointIntentCompilerTest extends AbstractIntentTest {
*/
private PointToPointIntent makeIntent(String ingressIdString,
String egressIdString, List<Constraint> constraints) {
return new PointToPointIntent(APPID, selector, treatment,
connectPoint(ingressIdString, 1),
connectPoint(egressIdString, 1),
constraints, Intent.DEFAULT_INTENT_PRIORITY);
return PointToPointIntent.builder()
.appId(APPID)
.selector(selector)
.treatment(treatment)
.ingressPoint(connectPoint(ingressIdString, 1))
.egressPoint(connectPoint(egressIdString, 1))
.constraints(constraints)
.build();
}
/**
......@@ -187,7 +195,13 @@ public class PointToPointIntentCompilerTest extends AbstractIntentTest {
public void testSameSwitchDifferentPortsIntentCompilation() {
ConnectPoint src = new ConnectPoint(deviceId("1"), portNumber(1));
ConnectPoint dst = new ConnectPoint(deviceId("1"), portNumber(2));
PointToPointIntent intent = new PointToPointIntent(APP_ID, selector, treatment, src, dst);
PointToPointIntent intent = PointToPointIntent.builder()
.appId(APP_ID)
.selector(selector)
.treatment(treatment)
.ingressPoint(src)
.egressPoint(dst)
.build();
String[] hops = {"1"};
PointToPointIntentCompiler sut = makeCompiler(hops);
......
......@@ -90,7 +90,13 @@ public class CompilingTest {
Intent.bindIdGenerator(idGenerator);
// Intent creation should be placed after binding an ID generator
input = new PointToPointIntent(appId, selector, treatment, cp1, cp3);
input = PointToPointIntent.builder()
.appId(appId)
.selector(selector)
.treatment(treatment)
.ingressPoint(cp1)
.egressPoint(cp3)
.build();
compiled = new PathIntent(appId, selector, treatment, path);
}
......
......@@ -91,7 +91,13 @@ public class InstallCoordinatingTest {
Intent.bindIdGenerator(idGenerator);
// Intent creation should be placed after binding an ID generator
input = new PointToPointIntent(appId, selector, treatment, cp1, cp3);
input = PointToPointIntent.builder()
.appId(appId)
.selector(selector)
.treatment(treatment)
.ingressPoint(cp1)
.egressPoint(cp3)
.build();
compiled = new PathIntent(appId, selector, treatment, path);
}
......
......@@ -91,7 +91,13 @@ public class InstallingTest {
Intent.bindIdGenerator(idGenerator);
// Intent creation should be placed after binding an ID generator
input = new PointToPointIntent(appId, selector, treatment, cp1, cp3);
input = PointToPointIntent.builder()
.appId(appId)
.selector(selector)
.treatment(treatment)
.ingressPoint(cp1)
.egressPoint(cp3)
.build();
compiled = new PathIntent(appId, selector, treatment, path);
}
......
......@@ -92,7 +92,13 @@ public class WithdrawCoordinatingTest {
Intent.bindIdGenerator(idGenerator);
// Intent creation should be placed after binding an ID generator
input = new PointToPointIntent(appId, selector, treatment, cp1, cp3);
input = PointToPointIntent.builder()
.appId(appId)
.selector(selector)
.treatment(treatment)
.ingressPoint(cp1)
.egressPoint(cp3)
.build();
compiled = new PathIntent(appId, selector, treatment, path);
}
......
......@@ -90,7 +90,13 @@ public class WithdrawingTest {
Intent.bindIdGenerator(idGenerator);
// Intent creation should be placed after binding an ID generator
input = new PointToPointIntent(appId, selector, treatment, cp1, cp3);
input = PointToPointIntent.builder()
.appId(appId)
.selector(selector)
.treatment(treatment)
.ingressPoint(cp1)
.egressPoint(cp3)
.build();
compiled = new PathIntent(appId, selector, treatment, path);
}
......
......@@ -35,10 +35,9 @@ import org.onosproject.net.flow.DefaultTrafficSelector;
import org.onosproject.net.flow.DefaultTrafficTreatment;
import org.onosproject.net.flow.TrafficSelector;
import org.onosproject.net.flow.TrafficTreatment;
import org.onosproject.net.intent.AbstractIntentTest;
import org.onosproject.net.intent.Constraint;
import org.onosproject.net.intent.HostToHostIntent;
import org.onosproject.net.intent.AbstractIntentTest;
import org.onosproject.net.intent.Intent;
import org.onosproject.net.intent.PointToPointIntent;
import org.onosproject.net.intent.constraint.AnnotationConstraint;
import org.onosproject.net.intent.constraint.AsymmetricPathConstraint;
......@@ -53,11 +52,11 @@ import org.onosproject.net.resource.Lambda;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.common.collect.ImmutableList;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.notNullValue;
import static org.onosproject.codec.impl.IntentJsonMatcher.matchesIntent;
import static org.onosproject.net.NetTestTools.did;
import static org.onosproject.net.NetTestTools.hid;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.notNullValue;
/**
* Unit tests for the host to host intent class codec.
......@@ -98,8 +97,12 @@ public class IntentCodecTest extends AbstractIntentTest {
ConnectPoint egress = NetTestTools.connectPoint("egress", 2);
final PointToPointIntent intent =
new PointToPointIntent(appId, emptySelector,
emptyTreatment, ingress, egress);
PointToPointIntent.builder()
.appId(appId)
.selector(emptySelector)
.treatment(emptyTreatment)
.ingressPoint(ingress)
.egressPoint(egress).build();
final CodecContext context = new MockCodecContext();
final JsonCodec<PointToPointIntent> intentCodec =
......@@ -147,9 +150,15 @@ public class IntentCodecTest extends AbstractIntentTest {
new WaypointConstraint(did3));
final PointToPointIntent intent =
new PointToPointIntent(appId, selector, treatment,
ingress, egress, constraints,
Intent.DEFAULT_INTENT_PRIORITY);
PointToPointIntent.builder()
.appId(appId)
.selector(selector)
.treatment(treatment)
.ingressPoint(ingress)
.egressPoint(egress)
.constraints(constraints)
.build();
final CodecContext context = new MockCodecContext();
final JsonCodec<PointToPointIntent> intentCodec =
......