Committed by
Gerrit Code Review
Add a builder for DefaultLink to hide multiplying constructors
Change-Id: Iaf073d07989c398a8f44541ffdb8dd93e5715162
Showing
30 changed files
with
363 additions
and
88 deletions
| ... | @@ -342,8 +342,13 @@ public class EcmpShortestPathGraph { | ... | @@ -342,8 +342,13 @@ public class EcmpShortestPathGraph { |
| 342 | 342 | ||
| 343 | private Link copyDefaultLink(Link link) { | 343 | private Link copyDefaultLink(Link link) { |
| 344 | DefaultLink src = (DefaultLink) link; | 344 | DefaultLink src = (DefaultLink) link; |
| 345 | - DefaultLink defaultLink = new DefaultLink(src.providerId(), src.src(), | 345 | + DefaultLink defaultLink = DefaultLink.builder() |
| 346 | - src.dst(), src.type(), src.annotations()); | 346 | + .providerId(src.providerId()) |
| 347 | + .src(src.src()) | ||
| 348 | + .dst(src.dst()) | ||
| 349 | + .type(src.type()) | ||
| 350 | + .annotations(src.annotations()) | ||
| 351 | + .build(); | ||
| 347 | 352 | ||
| 348 | return defaultLink; | 353 | return defaultLink; |
| 349 | } | 354 | } | ... | ... |
| ... | @@ -21,6 +21,9 @@ import java.util.Objects; | ... | @@ -21,6 +21,9 @@ import java.util.Objects; |
| 21 | 21 | ||
| 22 | import static com.google.common.base.MoreObjects.toStringHelper; | 22 | import static com.google.common.base.MoreObjects.toStringHelper; |
| 23 | import static org.onosproject.net.Link.State.ACTIVE; | 23 | import static org.onosproject.net.Link.State.ACTIVE; |
| 24 | +import static org.onosproject.net.DefaultAnnotations.EMPTY; | ||
| 25 | +import static com.google.common.base.Preconditions.checkNotNull; | ||
| 26 | + | ||
| 24 | 27 | ||
| 25 | /** | 28 | /** |
| 26 | * Default infrastructure link model implementation. | 29 | * Default infrastructure link model implementation. |
| ... | @@ -42,7 +45,7 @@ public class DefaultLink extends AbstractModel implements Link { | ... | @@ -42,7 +45,7 @@ public class DefaultLink extends AbstractModel implements Link { |
| 42 | * @param type link type | 45 | * @param type link type |
| 43 | * @param annotations optional key/value annotations | 46 | * @param annotations optional key/value annotations |
| 44 | */ | 47 | */ |
| 45 | - public DefaultLink(ProviderId providerId, ConnectPoint src, ConnectPoint dst, | 48 | + protected DefaultLink(ProviderId providerId, ConnectPoint src, ConnectPoint dst, |
| 46 | Type type, Annotations... annotations) { | 49 | Type type, Annotations... annotations) { |
| 47 | this(providerId, src, dst, type, ACTIVE, false, annotations); | 50 | this(providerId, src, dst, type, ACTIVE, false, annotations); |
| 48 | } | 51 | } |
| ... | @@ -60,7 +63,7 @@ public class DefaultLink extends AbstractModel implements Link { | ... | @@ -60,7 +63,7 @@ public class DefaultLink extends AbstractModel implements Link { |
| 60 | * @param isExpected indicates if the link is preconfigured | 63 | * @param isExpected indicates if the link is preconfigured |
| 61 | * @param annotations optional key/value annotations | 64 | * @param annotations optional key/value annotations |
| 62 | */ | 65 | */ |
| 63 | - public DefaultLink(ProviderId providerId, ConnectPoint src, ConnectPoint dst, | 66 | + private DefaultLink(ProviderId providerId, ConnectPoint src, ConnectPoint dst, |
| 64 | Type type, State state, | 67 | Type type, State state, |
| 65 | boolean isExpected, Annotations... annotations) { | 68 | boolean isExpected, Annotations... annotations) { |
| 66 | super(providerId, annotations); | 69 | super(providerId, annotations); |
| ... | @@ -129,8 +132,130 @@ public class DefaultLink extends AbstractModel implements Link { | ... | @@ -129,8 +132,130 @@ public class DefaultLink extends AbstractModel implements Link { |
| 129 | .add("dst", dst) | 132 | .add("dst", dst) |
| 130 | .add("type", type) | 133 | .add("type", type) |
| 131 | .add("state", state) | 134 | .add("state", state) |
| 132 | - .add("configured", isExpected) | 135 | + .add("expected", isExpected) |
| 133 | .toString(); | 136 | .toString(); |
| 134 | } | 137 | } |
| 135 | 138 | ||
| 139 | + /** | ||
| 140 | + * Creates a new default link builder. | ||
| 141 | + * | ||
| 142 | + * @return default link builder | ||
| 143 | + */ | ||
| 144 | + public static Builder builder() { | ||
| 145 | + return new Builder(); | ||
| 146 | + } | ||
| 147 | + | ||
| 148 | + /** | ||
| 149 | + * Builder for DefaultLink objects. | ||
| 150 | + */ | ||
| 151 | + public static final class Builder { | ||
| 152 | + private ProviderId providerId; | ||
| 153 | + private Annotations annotations = EMPTY; | ||
| 154 | + private ConnectPoint src; | ||
| 155 | + private ConnectPoint dst; | ||
| 156 | + private Type type; | ||
| 157 | + private State state = ACTIVE; | ||
| 158 | + private boolean isExpected = false; | ||
| 159 | + | ||
| 160 | + private Builder() { | ||
| 161 | + // Hide constructor | ||
| 162 | + } | ||
| 163 | + | ||
| 164 | + /** | ||
| 165 | + * Sets the providerId to be used by the builder. | ||
| 166 | + * | ||
| 167 | + * @param providerId new provider id | ||
| 168 | + * @return self | ||
| 169 | + */ | ||
| 170 | + public Builder providerId(ProviderId providerId) { | ||
| 171 | + this.providerId = providerId; | ||
| 172 | + return this; | ||
| 173 | + } | ||
| 174 | + | ||
| 175 | + /** | ||
| 176 | + * Sets the annotations to be used by the builder. | ||
| 177 | + * | ||
| 178 | + * @param annotations new annotations | ||
| 179 | + * @return self | ||
| 180 | + */ | ||
| 181 | + public Builder annotations(Annotations annotations) { | ||
| 182 | + this.annotations = annotations; | ||
| 183 | + return this; | ||
| 184 | + } | ||
| 185 | + | ||
| 186 | + /** | ||
| 187 | + * Sets the source connect point to be used by the builder. | ||
| 188 | + * | ||
| 189 | + * @param src source connect point | ||
| 190 | + * @return self | ||
| 191 | + */ | ||
| 192 | + public Builder src(ConnectPoint src) { | ||
| 193 | + this.src = src; | ||
| 194 | + return this; | ||
| 195 | + } | ||
| 196 | + | ||
| 197 | + /** | ||
| 198 | + * Sets the destination connect point to be used by the builder. | ||
| 199 | + * | ||
| 200 | + * @param dst new destination connect point | ||
| 201 | + * @return self | ||
| 202 | + */ | ||
| 203 | + public Builder dst(ConnectPoint dst) { | ||
| 204 | + this.dst = dst; | ||
| 205 | + return this; | ||
| 206 | + } | ||
| 207 | + | ||
| 208 | + /** | ||
| 209 | + * Sets the link type to be used by the builder. | ||
| 210 | + * | ||
| 211 | + * @param type new link type | ||
| 212 | + * @return self | ||
| 213 | + */ | ||
| 214 | + public Builder type(Type type) { | ||
| 215 | + this.type = type; | ||
| 216 | + return this; | ||
| 217 | + } | ||
| 218 | + | ||
| 219 | + /** | ||
| 220 | + * Sets the link state to be used by the builder. | ||
| 221 | + * | ||
| 222 | + * @param state new link state | ||
| 223 | + * @return self | ||
| 224 | + */ | ||
| 225 | + public Builder state(State state) { | ||
| 226 | + this.state = state; | ||
| 227 | + return this; | ||
| 228 | + } | ||
| 229 | + | ||
| 230 | + /** | ||
| 231 | + * Sets the expected flag to be used by the builder. | ||
| 232 | + * | ||
| 233 | + * @param isExpected new expected flag | ||
| 234 | + * @return self | ||
| 235 | + */ | ||
| 236 | + public Builder isExpected(boolean isExpected) { | ||
| 237 | + this.isExpected = isExpected; | ||
| 238 | + return this; | ||
| 239 | + } | ||
| 240 | + | ||
| 241 | + /** | ||
| 242 | + * Builds a default link object from the accumulated parameters. | ||
| 243 | + * | ||
| 244 | + * @return default link object | ||
| 245 | + */ | ||
| 246 | + public DefaultLink build() { | ||
| 247 | + checkNotNull(src, "Source connect point cannot be null"); | ||
| 248 | + checkNotNull(dst, "Destination connect point cannot be null"); | ||
| 249 | + checkNotNull(type, "Type cannot be null"); | ||
| 250 | + checkNotNull(providerId, "Provider Id cannot be null"); | ||
| 251 | + | ||
| 252 | + return new DefaultLink(providerId, src, dst, | ||
| 253 | + type, state, | ||
| 254 | + isExpected, annotations); | ||
| 255 | + } | ||
| 256 | + | ||
| 257 | + } | ||
| 258 | + | ||
| 259 | + | ||
| 260 | + | ||
| 136 | } | 261 | } | ... | ... |
| ... | @@ -51,8 +51,18 @@ public class PathIntentTest extends ConnectivityIntentTest { | ... | @@ -51,8 +51,18 @@ public class PathIntentTest extends ConnectivityIntentTest { |
| 51 | private final ConnectPoint cp2 = new ConnectPoint(device1, port2); | 51 | private final ConnectPoint cp2 = new ConnectPoint(device1, port2); |
| 52 | private final ConnectPoint cp3 = new ConnectPoint(device2, port3); | 52 | private final ConnectPoint cp3 = new ConnectPoint(device2, port3); |
| 53 | private final ConnectPoint cp4 = new ConnectPoint(device2, port4); | 53 | private final ConnectPoint cp4 = new ConnectPoint(device2, port4); |
| 54 | - private final DefaultLink link1 = new DefaultLink(provider1, cp1, cp2, DIRECT); | 54 | + private final DefaultLink link1 = DefaultLink.builder() |
| 55 | - private final DefaultLink link2 = new DefaultLink(provider1, cp1, cp2, DIRECT); | 55 | + .providerId(provider1) |
| 56 | + .src(cp1) | ||
| 57 | + .dst(cp2) | ||
| 58 | + .type(DIRECT) | ||
| 59 | + .build(); | ||
| 60 | + private final DefaultLink link2 = DefaultLink.builder() | ||
| 61 | + .providerId(provider1) | ||
| 62 | + .src(cp1) | ||
| 63 | + .dst(cp2) | ||
| 64 | + .type(DIRECT) | ||
| 65 | + .build(); | ||
| 56 | private final double cost = 1; | 66 | private final double cost = 1; |
| 57 | 67 | ||
| 58 | @Test | 68 | @Test | ... | ... |
| ... | @@ -59,7 +59,12 @@ public class AnnotationConstraintTest { | ... | @@ -59,7 +59,12 @@ public class AnnotationConstraintTest { |
| 59 | 59 | ||
| 60 | DefaultAnnotations annotations = DefaultAnnotations.builder().set(KEY, String.valueOf(VALUE)).build(); | 60 | DefaultAnnotations annotations = DefaultAnnotations.builder().set(KEY, String.valueOf(VALUE)).build(); |
| 61 | 61 | ||
| 62 | - link = new DefaultLink(PID, cp(DID1, PID1), cp(DID2, PID2), DIRECT, annotations); | 62 | + link = DefaultLink.builder() |
| 63 | + .providerId(PID) | ||
| 64 | + .src(cp(DID1, PID1)) | ||
| 65 | + .dst(cp(DID2, PID2)) | ||
| 66 | + .type(DIRECT) | ||
| 67 | + .annotations(annotations).build(); | ||
| 63 | } | 68 | } |
| 64 | 69 | ||
| 65 | /** | 70 | /** | ... | ... |
| ... | @@ -69,8 +69,20 @@ public class LatencyConstraintTest { | ... | @@ -69,8 +69,20 @@ public class LatencyConstraintTest { |
| 69 | Annotations annotations1 = DefaultAnnotations.builder().set(LATENCY, LATENCY1).build(); | 69 | Annotations annotations1 = DefaultAnnotations.builder().set(LATENCY, LATENCY1).build(); |
| 70 | Annotations annotations2 = DefaultAnnotations.builder().set(LATENCY, LATENCY2).build(); | 70 | Annotations annotations2 = DefaultAnnotations.builder().set(LATENCY, LATENCY2).build(); |
| 71 | 71 | ||
| 72 | - link1 = new DefaultLink(PROVIDER_ID, cp(DID1, PN1), cp(DID2, PN2), DIRECT, annotations1); | 72 | + link1 = DefaultLink.builder() |
| 73 | - link2 = new DefaultLink(PROVIDER_ID, cp(DID2, PN3), cp(DID3, PN4), DIRECT, annotations2); | 73 | + .providerId(PROVIDER_ID) |
| 74 | + .src(cp(DID1, PN1)) | ||
| 75 | + .dst(cp(DID2, PN2)) | ||
| 76 | + .type(DIRECT) | ||
| 77 | + .annotations(annotations1) | ||
| 78 | + .build(); | ||
| 79 | + link2 = DefaultLink.builder() | ||
| 80 | + .providerId(PROVIDER_ID) | ||
| 81 | + .src(cp(DID2, PN3)) | ||
| 82 | + .dst(cp(DID3, PN4)) | ||
| 83 | + .type(DIRECT) | ||
| 84 | + .annotations(annotations2) | ||
| 85 | + .build(); | ||
| 74 | path = new DefaultPath(PROVIDER_ID, Arrays.asList(link1, link2), 10); | 86 | path = new DefaultPath(PROVIDER_ID, Arrays.asList(link1, link2), 10); |
| 75 | } | 87 | } |
| 76 | 88 | ... | ... |
| ... | @@ -62,8 +62,18 @@ public class ObstacleConstraintTest { | ... | @@ -62,8 +62,18 @@ public class ObstacleConstraintTest { |
| 62 | public void setUp() { | 62 | public void setUp() { |
| 63 | linkResourceService = createMock(LinkResourceService.class); | 63 | linkResourceService = createMock(LinkResourceService.class); |
| 64 | 64 | ||
| 65 | - link1 = new DefaultLink(PROVIDER_ID, cp(DID1, PN1), cp(DID2, PN2), DIRECT); | 65 | + link1 = DefaultLink.builder() |
| 66 | - link2 = new DefaultLink(PROVIDER_ID, cp(DID2, PN3), cp(DID3, PN4), DIRECT); | 66 | + .providerId(PROVIDER_ID) |
| 67 | + .src(cp(DID1, PN1)) | ||
| 68 | + .dst(cp(DID2, PN2)) | ||
| 69 | + .type(DIRECT) | ||
| 70 | + .build(); | ||
| 71 | + link2 = DefaultLink.builder() | ||
| 72 | + .providerId(PROVIDER_ID) | ||
| 73 | + .src(cp(DID2, PN3)) | ||
| 74 | + .dst(cp(DID3, PN4)) | ||
| 75 | + .type(DIRECT) | ||
| 76 | + .build(); | ||
| 67 | path = new DefaultPath(PROVIDER_ID, Arrays.asList(link1, link2), 10); | 77 | path = new DefaultPath(PROVIDER_ID, Arrays.asList(link1, link2), 10); |
| 68 | } | 78 | } |
| 69 | 79 | ... | ... |
| ... | @@ -62,8 +62,19 @@ public class WaypointConstraintTest { | ... | @@ -62,8 +62,19 @@ public class WaypointConstraintTest { |
| 62 | public void setUp() { | 62 | public void setUp() { |
| 63 | linkResourceService = createMock(LinkResourceService.class); | 63 | linkResourceService = createMock(LinkResourceService.class); |
| 64 | 64 | ||
| 65 | - link1 = new DefaultLink(PROVIDER_ID, cp(DID1, PN1), cp(DID2, PN2), DIRECT); | 65 | + link1 = DefaultLink.builder() |
| 66 | - link2 = new DefaultLink(PROVIDER_ID, cp(DID2, PN3), cp(DID3, PN4), DIRECT); | 66 | + .providerId(PROVIDER_ID) |
| 67 | + .src(cp(DID1, PN1)) | ||
| 68 | + .dst(cp(DID2, PN2)) | ||
| 69 | + .type(DIRECT) | ||
| 70 | + .build(); | ||
| 71 | + link2 = DefaultLink.builder() | ||
| 72 | + .providerId(PROVIDER_ID) | ||
| 73 | + .src(cp(DID2, PN3)) | ||
| 74 | + .dst(cp(DID3, PN4)) | ||
| 75 | + .type(DIRECT) | ||
| 76 | + .build(); | ||
| 77 | + | ||
| 67 | path = new DefaultPath(PROVIDER_ID, Arrays.asList(link1, link2), 10); | 78 | path = new DefaultPath(PROVIDER_ID, Arrays.asList(link1, link2), 10); |
| 68 | } | 79 | } |
| 69 | 80 | ... | ... |
| ... | @@ -31,10 +31,12 @@ import static org.onosproject.net.PortNumber.portNumber; | ... | @@ -31,10 +31,12 @@ import static org.onosproject.net.PortNumber.portNumber; |
| 31 | public class LinkEventTest extends AbstractEventTest { | 31 | public class LinkEventTest extends AbstractEventTest { |
| 32 | 32 | ||
| 33 | private Link createLink() { | 33 | private Link createLink() { |
| 34 | - return new DefaultLink(new ProviderId("of", "foo"), | 34 | + return DefaultLink.builder() |
| 35 | - new ConnectPoint(deviceId("of:foo"), portNumber(1)), | 35 | + .providerId(new ProviderId("of", "foo")) |
| 36 | - new ConnectPoint(deviceId("of:bar"), portNumber(2)), | 36 | + .src(new ConnectPoint(deviceId("of:foo"), portNumber(1))) |
| 37 | - Link.Type.INDIRECT); | 37 | + .dst(new ConnectPoint(deviceId("of:bar"), portNumber(2))) |
| 38 | + .type(Link.Type.INDIRECT) | ||
| 39 | + .build(); | ||
| 38 | } | 40 | } |
| 39 | 41 | ||
| 40 | @Test | 42 | @Test | ... | ... |
| ... | @@ -49,9 +49,19 @@ public class DefaultTopologyEdgeTest { | ... | @@ -49,9 +49,19 @@ public class DefaultTopologyEdgeTest { |
| 49 | static final ProviderId PID = new ProviderId("foo", "bar"); | 49 | static final ProviderId PID = new ProviderId("foo", "bar"); |
| 50 | 50 | ||
| 51 | /** D1:P1 -> D2:P1. */ | 51 | /** D1:P1 -> D2:P1. */ |
| 52 | - static final Link L1 = new DefaultLink(PID, CP1, CP2, Link.Type.INDIRECT); | 52 | + static final Link L1 = DefaultLink.builder() |
| 53 | + .providerId(PID) | ||
| 54 | + .src(CP1) | ||
| 55 | + .dst(CP2) | ||
| 56 | + .type(Link.Type.INDIRECT) | ||
| 57 | + .build(); | ||
| 53 | /** D2:P1 -> D1:P2. */ | 58 | /** D2:P1 -> D1:P2. */ |
| 54 | - static final Link L2 = new DefaultLink(PID, CP3, CP4, Link.Type.INDIRECT); | 59 | + static final Link L2 = DefaultLink.builder() |
| 60 | + .providerId(PID) | ||
| 61 | + .src(CP3) | ||
| 62 | + .dst(CP4) | ||
| 63 | + .type(Link.Type.INDIRECT) | ||
| 64 | + .build(); | ||
| 55 | 65 | ||
| 56 | @Test | 66 | @Test |
| 57 | public void basics() { | 67 | public void basics() { | ... | ... |
| ... | @@ -75,6 +75,13 @@ public final class LinkCodec extends AnnotatedCodec<Link> { | ... | @@ -75,6 +75,13 @@ public final class LinkCodec extends AnnotatedCodec<Link> { |
| 75 | Type type = Type.valueOf(json.get(TYPE).asText()); | 75 | Type type = Type.valueOf(json.get(TYPE).asText()); |
| 76 | Annotations annotations = extractAnnotations(json, context); | 76 | Annotations annotations = extractAnnotations(json, context); |
| 77 | 77 | ||
| 78 | - return new DefaultLink(pid, src, dst, type, annotations); | 78 | + return DefaultLink |
| 79 | + .builder() | ||
| 80 | + .providerId(pid) | ||
| 81 | + .src(src) | ||
| 82 | + .dst(dst) | ||
| 83 | + .type(type) | ||
| 84 | + .annotations(annotations) | ||
| 85 | + .build(); | ||
| 79 | } | 86 | } |
| 80 | } | 87 | } | ... | ... |
| ... | @@ -33,13 +33,15 @@ import org.onosproject.net.device.DeviceServiceAdapter; | ... | @@ -33,13 +33,15 @@ import org.onosproject.net.device.DeviceServiceAdapter; |
| 33 | */ | 33 | */ |
| 34 | public class LinkCodecTest { | 34 | public class LinkCodecTest { |
| 35 | 35 | ||
| 36 | - private final Link link = new DefaultLink(JsonCodecUtils.PID, | 36 | + private final Link link = DefaultLink.builder() |
| 37 | - JsonCodecUtils.CP1, | 37 | + .providerId(JsonCodecUtils.PID) |
| 38 | - JsonCodecUtils.CP2, | 38 | + .src(JsonCodecUtils.CP1) |
| 39 | - Link.Type.DIRECT, | 39 | + .dst(JsonCodecUtils.CP2) |
| 40 | - Link.State.ACTIVE, | 40 | + .type(Link.Type.DIRECT) |
| 41 | - false, | 41 | + .state(Link.State.ACTIVE) |
| 42 | - JsonCodecUtils.A1); | 42 | + .isExpected(false) |
| 43 | + .annotations(JsonCodecUtils.A1) | ||
| 44 | + .build(); | ||
| 43 | 45 | ||
| 44 | @Test | 46 | @Test |
| 45 | public void linkCodecTest() { | 47 | public void linkCodecTest() { | ... | ... |
| ... | @@ -122,9 +122,11 @@ public class DefaultTopologyTest { | ... | @@ -122,9 +122,11 @@ public class DefaultTopologyTest { |
| 122 | 122 | ||
| 123 | // Short-hand for creating a link. | 123 | // Short-hand for creating a link. |
| 124 | public static Link link(String src, int sp, String dst, int dp) { | 124 | public static Link link(String src, int sp, String dst, int dp) { |
| 125 | - return new DefaultLink(PID, new ConnectPoint(did(src), portNumber(sp)), | 125 | + return DefaultLink.builder().providerId(PID) |
| 126 | - new ConnectPoint(did(dst), portNumber(dp)), | 126 | + .src(new ConnectPoint(did(src), portNumber(sp))) |
| 127 | - Link.Type.DIRECT); | 127 | + .dst(new ConnectPoint(did(dst), portNumber(dp))) |
| 128 | + .type(Link.Type.DIRECT) | ||
| 129 | + .build(); | ||
| 128 | } | 130 | } |
| 129 | 131 | ||
| 130 | // Crates a new device with the specified id | 132 | // Crates a new device with the specified id | ... | ... |
| ... | @@ -76,11 +76,13 @@ public class SimpleLinkResourceStoreTest { | ... | @@ -76,11 +76,13 @@ public class SimpleLinkResourceStoreTest { |
| 76 | .set(AnnotationKeys.OPTICAL_WAVES, "80") | 76 | .set(AnnotationKeys.OPTICAL_WAVES, "80") |
| 77 | .set(AnnotationKeys.BANDWIDTH, "1000") | 77 | .set(AnnotationKeys.BANDWIDTH, "1000") |
| 78 | .build(); | 78 | .build(); |
| 79 | - return new DefaultLink( | 79 | + return DefaultLink.builder() |
| 80 | - new ProviderId("of", "foo"), | 80 | + .providerId(new ProviderId("of", "foo")) |
| 81 | - new ConnectPoint(deviceId(dev1), portNumber(port1)), | 81 | + .src(new ConnectPoint(deviceId(dev1), portNumber(port1))) |
| 82 | - new ConnectPoint(deviceId(dev2), portNumber(port2)), | 82 | + .dst(new ConnectPoint(deviceId(dev2), portNumber(port2))) |
| 83 | - DIRECT, annotations); | 83 | + .type(DIRECT) |
| 84 | + .annotations(annotations) | ||
| 85 | + .build(); | ||
| 84 | } | 86 | } |
| 85 | 87 | ||
| 86 | @Before | 88 | @Before | ... | ... |
| ... | @@ -196,11 +196,14 @@ public class SimpleLinkStore | ... | @@ -196,11 +196,14 @@ public class SimpleLinkStore |
| 196 | if (link.isDurable()) { | 196 | if (link.isDurable()) { |
| 197 | return link.state() == INACTIVE ? null : | 197 | return link.state() == INACTIVE ? null : |
| 198 | updateLink(linkKey(link.src(), link.dst()), link, | 198 | updateLink(linkKey(link.src(), link.dst()), link, |
| 199 | - new DefaultLink(link.providerId(), | 199 | + DefaultLink.builder() |
| 200 | - link.src(), link.dst(), | 200 | + .providerId(link.providerId()) |
| 201 | - link.type(), INACTIVE, | 201 | + .src(link.src()) |
| 202 | - link.isDurable(), | 202 | + .dst(link.dst()) |
| 203 | - link.annotations())); | 203 | + .type(link.type()) |
| 204 | + .state(INACTIVE) | ||
| 205 | + .isExpected(link.isExpected()) | ||
| 206 | + .annotations(link.annotations()).build()); | ||
| 204 | } | 207 | } |
| 205 | return removeLink(src, dst); | 208 | return removeLink(src, dst); |
| 206 | } | 209 | } |
| ... | @@ -327,7 +330,15 @@ public class SimpleLinkStore | ... | @@ -327,7 +330,15 @@ public class SimpleLinkStore |
| 327 | } | 330 | } |
| 328 | 331 | ||
| 329 | boolean isDurable = Objects.equals(annotations.value(AnnotationKeys.DURABLE), "true"); | 332 | boolean isDurable = Objects.equals(annotations.value(AnnotationKeys.DURABLE), "true"); |
| 330 | - return new DefaultLink(primary, src, dst, type, ACTIVE, isDurable, annotations); | 333 | + return DefaultLink.builder() |
| 334 | + .providerId(primary) | ||
| 335 | + .src(src) | ||
| 336 | + .dst(dst) | ||
| 337 | + .type(type) | ||
| 338 | + .state(ACTIVE) | ||
| 339 | + .isExpected(isDurable) | ||
| 340 | + .annotations(annotations) | ||
| 341 | + .build(); | ||
| 331 | } | 342 | } |
| 332 | 343 | ||
| 333 | private Map<ProviderId, LinkDescription> getOrCreateLinkDescriptions(LinkKey key) { | 344 | private Map<ProviderId, LinkDescription> getOrCreateLinkDescriptions(LinkKey key) { | ... | ... |
| ... | @@ -88,8 +88,13 @@ public class HostToHostIntentCompiler | ... | @@ -88,8 +88,13 @@ public class HostToHostIntentCompiler |
| 88 | 88 | ||
| 89 | // Produces a reverse variant of the specified link. | 89 | // Produces a reverse variant of the specified link. |
| 90 | private Link reverseLink(Link link) { | 90 | private Link reverseLink(Link link) { |
| 91 | - return new DefaultLink(link.providerId(), link.dst(), link.src(), | 91 | + return DefaultLink.builder().providerId(link.providerId()) |
| 92 | - link.type(), link.state(), link.isDurable()); | 92 | + .src(link.dst()) |
| 93 | + .dst(link.src()) | ||
| 94 | + .type(link.type()) | ||
| 95 | + .state(link.state()) | ||
| 96 | + .isExpected(link.isExpected()) | ||
| 97 | + .build(); | ||
| 93 | } | 98 | } |
| 94 | 99 | ||
| 95 | // Creates a path intent from the specified path and original connectivity intent. | 100 | // Creates a path intent from the specified path and original connectivity intent. | ... | ... |
| ... | @@ -65,9 +65,9 @@ public class LinkCollectionIntentCompilerTest { | ... | @@ -65,9 +65,9 @@ public class LinkCollectionIntentCompilerTest { |
| 65 | private final ConnectPoint d1p0 = connectPoint("s1", 10); | 65 | private final ConnectPoint d1p0 = connectPoint("s1", 10); |
| 66 | 66 | ||
| 67 | private final Set<Link> links = ImmutableSet.of( | 67 | private final Set<Link> links = ImmutableSet.of( |
| 68 | - new DefaultLink(PID, d1p1, d2p0, DIRECT), | 68 | + DefaultLink.builder().providerId(PID).src(d1p1).dst(d2p0).type(DIRECT).build(), |
| 69 | - new DefaultLink(PID, d2p1, d3p1, DIRECT), | 69 | + DefaultLink.builder().providerId(PID).src(d2p1).dst(d3p1).type(DIRECT).build(), |
| 70 | - new DefaultLink(PID, d1p1, d3p1, DIRECT)); | 70 | + DefaultLink.builder().providerId(PID).src(d1p1).dst(d3p1).type(DIRECT).build()); |
| 71 | 71 | ||
| 72 | private final TrafficSelector selector = DefaultTrafficSelector.builder().build(); | 72 | private final TrafficSelector selector = DefaultTrafficSelector.builder().build(); |
| 73 | private final TrafficTreatment treatment = DefaultTrafficTreatment.builder().build(); | 73 | private final TrafficTreatment treatment = DefaultTrafficTreatment.builder().build(); | ... | ... |
| ... | @@ -77,8 +77,8 @@ public class MplsPathIntentCompilerTest { | ... | @@ -77,8 +77,8 @@ public class MplsPathIntentCompilerTest { |
| 77 | 77 | ||
| 78 | private final List<Link> links = Arrays.asList( | 78 | private final List<Link> links = Arrays.asList( |
| 79 | createEdgeLink(d1pi, true), | 79 | createEdgeLink(d1pi, true), |
| 80 | - new DefaultLink(PID, d1p1, d2p0, DIRECT), | 80 | + DefaultLink.builder().providerId(PID).src(d1p1).dst(d2p0).type(DIRECT).build(), |
| 81 | - new DefaultLink(PID, d2p1, d3p1, DIRECT), | 81 | + DefaultLink.builder().providerId(PID).src(d2p1).dst(d3p1).type(DIRECT).build(), |
| 82 | createEdgeLink(d3pe, false) | 82 | createEdgeLink(d3pe, false) |
| 83 | ); | 83 | ); |
| 84 | 84 | ... | ... |
| ... | @@ -64,8 +64,8 @@ public class OpticalPathIntentCompilerTest { | ... | @@ -64,8 +64,8 @@ public class OpticalPathIntentCompilerTest { |
| 64 | private final ConnectPoint d3p1 = connectPoint("s3", 1); | 64 | private final ConnectPoint d3p1 = connectPoint("s3", 1); |
| 65 | 65 | ||
| 66 | private final List<Link> links = Arrays.asList( | 66 | private final List<Link> links = Arrays.asList( |
| 67 | - new DefaultLink(PID, d1p1, d2p0, DIRECT), | 67 | + DefaultLink.builder().providerId(PID).src(d1p1).dst(d2p0).type(DIRECT).build(), |
| 68 | - new DefaultLink(PID, d2p1, d3p1, DIRECT) | 68 | + DefaultLink.builder().providerId(PID).src(d2p1).dst(d3p1).type(DIRECT).build() |
| 69 | ); | 69 | ); |
| 70 | private final int hops = links.size() + 1; | 70 | private final int hops = links.size() + 1; |
| 71 | private OpticalPathIntent intent; | 71 | private OpticalPathIntent intent; | ... | ... |
| ... | @@ -84,8 +84,8 @@ public class PathIntentCompilerTest { | ... | @@ -84,8 +84,8 @@ public class PathIntentCompilerTest { |
| 84 | 84 | ||
| 85 | private final List<Link> links = Arrays.asList( | 85 | private final List<Link> links = Arrays.asList( |
| 86 | createEdgeLink(d1p0, true), | 86 | createEdgeLink(d1p0, true), |
| 87 | - new DefaultLink(PID, d1p1, d2p0, DIRECT), | 87 | + DefaultLink.builder().providerId(PID).src(d1p1).dst(d2p0).type(DIRECT).build(), |
| 88 | - new DefaultLink(PID, d2p1, d3p1, DIRECT), | 88 | + DefaultLink.builder().providerId(PID).src(d2p1).dst(d3p1).type(DIRECT).build(), |
| 89 | createEdgeLink(d3p0, false) | 89 | createEdgeLink(d3p0, false) |
| 90 | ); | 90 | ); |
| 91 | private final int hops = links.size() - 1; | 91 | private final int hops = links.size() - 1; | ... | ... |
| ... | @@ -70,7 +70,8 @@ public class CompilingTest { | ... | @@ -70,7 +70,8 @@ public class CompilingTest { |
| 70 | private final ConnectPoint cp3 = new ConnectPoint(deviceId("2"), portNumber(1)); | 70 | private final ConnectPoint cp3 = new ConnectPoint(deviceId("2"), portNumber(1)); |
| 71 | private final ConnectPoint cp4 = new ConnectPoint(deviceId("2"), portNumber(2)); | 71 | private final ConnectPoint cp4 = new ConnectPoint(deviceId("2"), portNumber(2)); |
| 72 | 72 | ||
| 73 | - private final List<Link> links = Collections.singletonList(new DefaultLink(pid, cp2, cp4, DIRECT)); | 73 | + private final List<Link> links = Collections.singletonList( |
| 74 | + DefaultLink.builder().providerId(pid).src(cp2).dst(cp4).type(DIRECT).build()); | ||
| 74 | private final Path path = new DefaultPath(pid, links, 10); | 75 | private final Path path = new DefaultPath(pid, links, 10); |
| 75 | 76 | ||
| 76 | private PointToPointIntent input; | 77 | private PointToPointIntent input; | ... | ... |
| ... | @@ -317,7 +317,15 @@ public class ECLinkStore | ... | @@ -317,7 +317,15 @@ public class ECLinkStore |
| 317 | }); | 317 | }); |
| 318 | 318 | ||
| 319 | boolean isDurable = Objects.equals(annotations.get().value(AnnotationKeys.DURABLE), "true"); | 319 | boolean isDurable = Objects.equals(annotations.get().value(AnnotationKeys.DURABLE), "true"); |
| 320 | - return new DefaultLink(baseProviderId, src, dst, type, ACTIVE, isDurable, annotations.get()); | 320 | + return DefaultLink.builder() |
| 321 | + .providerId(baseProviderId) | ||
| 322 | + .src(src) | ||
| 323 | + .dst(dst) | ||
| 324 | + .type(type) | ||
| 325 | + .state(ACTIVE) | ||
| 326 | + .isExpected(isDurable) | ||
| 327 | + .annotations(annotations.get()) | ||
| 328 | + .build(); | ||
| 321 | } | 329 | } |
| 322 | 330 | ||
| 323 | // Updates, if necessary the specified link and returns the appropriate event. | 331 | // Updates, if necessary the specified link and returns the appropriate event. |
| ... | @@ -346,11 +354,15 @@ public class ECLinkStore | ... | @@ -346,11 +354,15 @@ public class ECLinkStore |
| 346 | // FIXME: this will not sync link state!!! | 354 | // FIXME: this will not sync link state!!! |
| 347 | return link.state() == INACTIVE ? null : | 355 | return link.state() == INACTIVE ? null : |
| 348 | updateLink(linkKey(link.src(), link.dst()), link, | 356 | updateLink(linkKey(link.src(), link.dst()), link, |
| 349 | - new DefaultLink(link.providerId(), | 357 | + DefaultLink.builder() |
| 350 | - link.src(), link.dst(), | 358 | + .providerId(link.providerId()) |
| 351 | - link.type(), INACTIVE, | 359 | + .src(link.src()) |
| 352 | - link.isDurable(), | 360 | + .dst(link.dst()) |
| 353 | - link.annotations())); | 361 | + .type(link.type()) |
| 362 | + .state(INACTIVE) | ||
| 363 | + .isExpected(link.isExpected()) | ||
| 364 | + .annotations(link.annotations()) | ||
| 365 | + .build()); | ||
| 354 | } | 366 | } |
| 355 | return removeLink(src, dst); | 367 | return removeLink(src, dst); |
| 356 | } | 368 | } | ... | ... |
| ... | @@ -361,11 +361,15 @@ public class GossipLinkStore | ... | @@ -361,11 +361,15 @@ public class GossipLinkStore |
| 361 | // FIXME: this is not the right thing to call for the gossip store; will not sync link state!!! | 361 | // FIXME: this is not the right thing to call for the gossip store; will not sync link state!!! |
| 362 | return link.state() == INACTIVE ? null : | 362 | return link.state() == INACTIVE ? null : |
| 363 | updateLink(linkKey(link.src(), link.dst()), link, | 363 | updateLink(linkKey(link.src(), link.dst()), link, |
| 364 | - new DefaultLink(link.providerId(), | 364 | + DefaultLink.builder() |
| 365 | - link.src(), link.dst(), | 365 | + .providerId(link.providerId()) |
| 366 | - link.type(), INACTIVE, | 366 | + .src(link.src()) |
| 367 | - link.isDurable(), | 367 | + .dst(link.dst()) |
| 368 | - link.annotations())); | 368 | + .type(link.type()) |
| 369 | + .state(INACTIVE) | ||
| 370 | + .isExpected(link.isExpected()) | ||
| 371 | + .annotations(link.annotations()) | ||
| 372 | + .build()); | ||
| 369 | } | 373 | } |
| 370 | return removeLink(src, dst); | 374 | return removeLink(src, dst); |
| 371 | } | 375 | } |
| ... | @@ -605,7 +609,15 @@ public class GossipLinkStore | ... | @@ -605,7 +609,15 @@ public class GossipLinkStore |
| 605 | } | 609 | } |
| 606 | 610 | ||
| 607 | boolean isDurable = Objects.equals(annotations.value(AnnotationKeys.DURABLE), "true"); | 611 | boolean isDurable = Objects.equals(annotations.value(AnnotationKeys.DURABLE), "true"); |
| 608 | - return new DefaultLink(baseProviderId, src, dst, type, ACTIVE, isDurable, annotations); | 612 | + return DefaultLink.builder() |
| 613 | + .providerId(baseProviderId) | ||
| 614 | + .src(src) | ||
| 615 | + .dst(dst) | ||
| 616 | + .type(type) | ||
| 617 | + .state(ACTIVE) | ||
| 618 | + .isExpected(isDurable) | ||
| 619 | + .annotations(annotations) | ||
| 620 | + .build(); | ||
| 609 | } | 621 | } |
| 610 | 622 | ||
| 611 | private Map<ProviderId, Timestamped<LinkDescription>> getOrCreateLinkDescriptions(LinkKey key) { | 623 | private Map<ProviderId, Timestamped<LinkDescription>> getOrCreateLinkDescriptions(LinkKey key) { | ... | ... |
| ... | @@ -56,6 +56,13 @@ public class DefaultLinkSerializer extends Serializer<DefaultLink> { | ... | @@ -56,6 +56,13 @@ public class DefaultLinkSerializer extends Serializer<DefaultLink> { |
| 56 | Type linkType = (Type) kryo.readClassAndObject(input); | 56 | Type linkType = (Type) kryo.readClassAndObject(input); |
| 57 | State state = (State) kryo.readClassAndObject(input); | 57 | State state = (State) kryo.readClassAndObject(input); |
| 58 | boolean isDurable = input.readBoolean(); | 58 | boolean isDurable = input.readBoolean(); |
| 59 | - return new DefaultLink(providerId, src, dst, linkType, state, isDurable); | 59 | + return DefaultLink.builder() |
| 60 | + .providerId(providerId) | ||
| 61 | + .src(src) | ||
| 62 | + .dst(dst) | ||
| 63 | + .type(linkType) | ||
| 64 | + .state(state) | ||
| 65 | + .isExpected(isDurable) | ||
| 66 | + .build(); | ||
| 60 | } | 67 | } |
| 61 | } | 68 | } | ... | ... |
| ... | @@ -183,8 +183,19 @@ public class KryoSerializerTest { | ... | @@ -183,8 +183,19 @@ public class KryoSerializerTest { |
| 183 | 183 | ||
| 184 | @Test | 184 | @Test |
| 185 | public void testDefaultLink() { | 185 | public void testDefaultLink() { |
| 186 | - testSerializedEquals(new DefaultLink(PID, CP1, CP2, Link.Type.DIRECT)); | 186 | + testSerializedEquals(DefaultLink.builder() |
| 187 | - testSerializedEquals(new DefaultLink(PID, CP1, CP2, Link.Type.DIRECT, A1)); | 187 | + .providerId(PID) |
| 188 | + .src(CP1) | ||
| 189 | + .dst(CP2) | ||
| 190 | + .type(Link.Type.DIRECT) | ||
| 191 | + .build()); | ||
| 192 | + testSerializedEquals(DefaultLink.builder() | ||
| 193 | + .providerId(PID) | ||
| 194 | + .src(CP1) | ||
| 195 | + .dst(CP2) | ||
| 196 | + .type(Link.Type.DIRECT) | ||
| 197 | + .annotations(A1) | ||
| 198 | + .build()); | ||
| 188 | } | 199 | } |
| 189 | 200 | ||
| 190 | @Test | 201 | @Test |
| ... | @@ -367,7 +378,9 @@ public class KryoSerializerTest { | ... | @@ -367,7 +378,9 @@ public class KryoSerializerTest { |
| 367 | .addBandwidthRequest(32.195) | 378 | .addBandwidthRequest(32.195) |
| 368 | .build(); | 379 | .build(); |
| 369 | Map<Link, Set<ResourceAllocation>> allocations = new HashMap<>(); | 380 | Map<Link, Set<ResourceAllocation>> allocations = new HashMap<>(); |
| 370 | - allocations.put(new DefaultLink(PID, CP1, CP2, Type.DIRECT), | 381 | + allocations.put(DefaultLink.builder() |
| 382 | + .providerId(PID) | ||
| 383 | + .src(CP1).dst(CP2).type(Type.DIRECT).build(), | ||
| 371 | ImmutableSet.of(new BandwidthResourceAllocation(new BandwidthResource(Bandwidth.bps(10.0))), | 384 | ImmutableSet.of(new BandwidthResourceAllocation(new BandwidthResource(Bandwidth.bps(10.0))), |
| 372 | new LambdaResourceAllocation(LambdaResource.valueOf(1)))); | 385 | new LambdaResourceAllocation(LambdaResource.valueOf(1)))); |
| 373 | testSerializable(new DefaultLinkResourceAllocations(request, allocations)); | 386 | testSerializable(new DefaultLinkResourceAllocations(request, allocations)); | ... | ... |
| ... | @@ -55,6 +55,13 @@ public class OvsdbTunnelProviderTest { | ... | @@ -55,6 +55,13 @@ public class OvsdbTunnelProviderTest { |
| 55 | private final TestTunnelRegistry tunnelRegistry = new TestTunnelRegistry(); | 55 | private final TestTunnelRegistry tunnelRegistry = new TestTunnelRegistry(); |
| 56 | private TestTunnelProviderService providerService; | 56 | private TestTunnelProviderService providerService; |
| 57 | 57 | ||
| 58 | + Link link = DefaultLink.builder() | ||
| 59 | + .providerId(this.provider.id()) | ||
| 60 | + .src(ConnectPoint.deviceConnectPoint("192.168.2.3/20")) | ||
| 61 | + .dst(ConnectPoint.deviceConnectPoint("192.168.2.4/30")) | ||
| 62 | + .type(Link.Type.DIRECT) | ||
| 63 | + .build(); | ||
| 64 | + | ||
| 58 | @Before | 65 | @Before |
| 59 | public void setUp() { | 66 | public void setUp() { |
| 60 | provider.providerRegistry = tunnelRegistry; | 67 | provider.providerRegistry = tunnelRegistry; |
| ... | @@ -75,11 +82,7 @@ public class OvsdbTunnelProviderTest { | ... | @@ -75,11 +82,7 @@ public class OvsdbTunnelProviderTest { |
| 75 | .valueOf("192.168.1.3")); | 82 | .valueOf("192.168.1.3")); |
| 76 | SparseAnnotations annotations = DefaultAnnotations.builder() | 83 | SparseAnnotations annotations = DefaultAnnotations.builder() |
| 77 | .set("bandwidth", "1024").build(); | 84 | .set("bandwidth", "1024").build(); |
| 78 | - Link link = new DefaultLink( | 85 | + |
| 79 | - this.provider.id(), | ||
| 80 | - ConnectPoint.deviceConnectPoint("192.168.2.3/20"), | ||
| 81 | - ConnectPoint.deviceConnectPoint("192.168.2.4/30"), | ||
| 82 | - Link.Type.DIRECT); | ||
| 83 | List<Link> links = new ArrayList<Link>(); | 86 | List<Link> links = new ArrayList<Link>(); |
| 84 | links.add(link); | 87 | links.add(link); |
| 85 | TunnelDescription tunnel = new DefaultTunnelDescription( | 88 | TunnelDescription tunnel = new DefaultTunnelDescription( |
| ... | @@ -104,11 +107,7 @@ public class OvsdbTunnelProviderTest { | ... | @@ -104,11 +107,7 @@ public class OvsdbTunnelProviderTest { |
| 104 | .valueOf("192.168.1.3")); | 107 | .valueOf("192.168.1.3")); |
| 105 | SparseAnnotations annotations = DefaultAnnotations.builder() | 108 | SparseAnnotations annotations = DefaultAnnotations.builder() |
| 106 | .set("bandwidth", "1024").build(); | 109 | .set("bandwidth", "1024").build(); |
| 107 | - Link link = new DefaultLink( | 110 | + |
| 108 | - this.provider.id(), | ||
| 109 | - ConnectPoint.deviceConnectPoint("192.168.2.3/20"), | ||
| 110 | - ConnectPoint.deviceConnectPoint("192.168.2.4/30"), | ||
| 111 | - Link.Type.DIRECT); | ||
| 112 | List<Link> links = new ArrayList<Link>(); | 111 | List<Link> links = new ArrayList<Link>(); |
| 113 | links.add(link); | 112 | links.add(link); |
| 114 | TunnelDescription tunnel = new DefaultTunnelDescription( | 113 | TunnelDescription tunnel = new DefaultTunnelDescription( | ... | ... |
| ... | @@ -480,9 +480,12 @@ public class PcepTunnelProvider extends AbstractProvider implements TunnelProvid | ... | @@ -480,9 +480,12 @@ public class PcepTunnelProvider extends AbstractProvider implements TunnelProvid |
| 480 | 480 | ||
| 481 | // Short-hand for creating a link. | 481 | // Short-hand for creating a link. |
| 482 | private Link link(PcepDpid src, long sp, PcepDpid dst, long dp) { | 482 | private Link link(PcepDpid src, long sp, PcepDpid dst, long dp) { |
| 483 | - return new DefaultLink(id(), connectPoint(src, sp), connectPoint(dst, | 483 | + return DefaultLink.builder() |
| 484 | - dp), | 484 | + .providerId(id()) |
| 485 | - Link.Type.TUNNEL); | 485 | + .src(connectPoint(src, sp)) |
| 486 | + .dst(connectPoint(dst, dp)) | ||
| 487 | + .type(Link.Type.TUNNEL) | ||
| 488 | + .build(); | ||
| 486 | } | 489 | } |
| 487 | 490 | ||
| 488 | // Creates a path that leads through the given devices. | 491 | // Creates a path that leads through the given devices. |
| ... | @@ -1132,7 +1135,12 @@ public class PcepTunnelProvider extends AbstractProvider implements TunnelProvid | ... | @@ -1132,7 +1135,12 @@ public class PcepTunnelProvider extends AbstractProvider implements TunnelProvid |
| 1132 | } else { | 1135 | } else { |
| 1133 | IpAddress dstIp = IpAddress.valueOf(ipv4SubObj.getIpAddress()); | 1136 | IpAddress dstIp = IpAddress.valueOf(ipv4SubObj.getIpAddress()); |
| 1134 | dst = new ConnectPoint(IpElementId.ipElement(dstIp), PortNumber.portNumber(0)); | 1137 | dst = new ConnectPoint(IpElementId.ipElement(dstIp), PortNumber.portNumber(0)); |
| 1135 | - Link link = new DefaultLink(providerId, src, dst, Link.Type.DIRECT, EMPTY); | 1138 | + Link link = DefaultLink.builder() |
| 1139 | + .providerId(providerId) | ||
| 1140 | + .src(src) | ||
| 1141 | + .dst(dst) | ||
| 1142 | + .type(Link.Type.DIRECT) | ||
| 1143 | + .build(); | ||
| 1136 | links.add(link); | 1144 | links.add(link); |
| 1137 | src = dst; | 1145 | src = dst; |
| 1138 | } | 1146 | } | ... | ... |
| ... | @@ -84,7 +84,8 @@ public class PcepReleaseTunnelProviderTest { | ... | @@ -84,7 +84,8 @@ public class PcepReleaseTunnelProviderTest { |
| 84 | 84 | ||
| 85 | ConnectPoint dst = new ConnectPoint(dstElementId, PortNumber.portNumber(10023)); | 85 | ConnectPoint dst = new ConnectPoint(dstElementId, PortNumber.portNumber(10023)); |
| 86 | 86 | ||
| 87 | - Link link = new DefaultLink(pid, src, dst, Link.Type.DIRECT, EMPTY); | 87 | + Link link = DefaultLink.builder().providerId(pid).src(src).dst(dst) |
| 88 | + .type(Link.Type.DIRECT).build(); | ||
| 88 | links.add(link); | 89 | links.add(link); |
| 89 | 90 | ||
| 90 | path = new DefaultPath(pid, links, 20, EMPTY); | 91 | path = new DefaultPath(pid, links, 20, EMPTY); | ... | ... |
| ... | @@ -80,7 +80,8 @@ public class PcepSetupTunnelProviderTest { | ... | @@ -80,7 +80,8 @@ public class PcepSetupTunnelProviderTest { |
| 80 | 80 | ||
| 81 | ConnectPoint dst = new ConnectPoint(dstElementId, PortNumber.portNumber(10023)); | 81 | ConnectPoint dst = new ConnectPoint(dstElementId, PortNumber.portNumber(10023)); |
| 82 | 82 | ||
| 83 | - Link link = new DefaultLink(pid, src, dst, Link.Type.DIRECT, EMPTY); | 83 | + Link link = DefaultLink.builder().providerId(pid).src(src).dst(dst) |
| 84 | + .type(Link.Type.DIRECT).build(); | ||
| 84 | links.add(link); | 85 | links.add(link); |
| 85 | 86 | ||
| 86 | path = new DefaultPath(pid, links, 10, EMPTY); | 87 | path = new DefaultPath(pid, links, 10, EMPTY); | ... | ... |
| ... | @@ -79,7 +79,8 @@ public class PcepTunnelProviderTest { | ... | @@ -79,7 +79,8 @@ public class PcepTunnelProviderTest { |
| 79 | 79 | ||
| 80 | ConnectPoint dst = new ConnectPoint(dstElementId, PortNumber.portNumber(10023)); | 80 | ConnectPoint dst = new ConnectPoint(dstElementId, PortNumber.portNumber(10023)); |
| 81 | 81 | ||
| 82 | - Link link = new DefaultLink(pid, src, dst, Link.Type.DIRECT, EMPTY); | 82 | + Link link = DefaultLink.builder().providerId(pid).src(src).dst(dst) |
| 83 | + .type(Link.Type.DIRECT).build(); | ||
| 83 | links.add(link); | 84 | links.add(link); |
| 84 | 85 | ||
| 85 | path = new DefaultPath(pid, links, 10, EMPTY); | 86 | path = new DefaultPath(pid, links, 10, EMPTY); | ... | ... |
| ... | @@ -83,7 +83,8 @@ public class PcepUpdateTunnelProviderTest { | ... | @@ -83,7 +83,8 @@ public class PcepUpdateTunnelProviderTest { |
| 83 | 83 | ||
| 84 | ConnectPoint dst = new ConnectPoint(dstElementId, PortNumber.portNumber(10023)); | 84 | ConnectPoint dst = new ConnectPoint(dstElementId, PortNumber.portNumber(10023)); |
| 85 | 85 | ||
| 86 | - Link link = new DefaultLink(pid, src, dst, Link.Type.DIRECT, EMPTY); | 86 | + Link link = DefaultLink.builder().providerId(pid).src(src).dst(dst) |
| 87 | + .type(Link.Type.DIRECT).build(); | ||
| 87 | links.add(link); | 88 | links.add(link); |
| 88 | 89 | ||
| 89 | path = new DefaultPath(pid, links, 20, EMPTY); | 90 | path = new DefaultPath(pid, links, 20, EMPTY); | ... | ... |
-
Please register or login to post a comment