Move static factory methods to the utility class
Change-Id: Icf458adf78f51823e4ffa31346595fa9716485bf
diff --git a/cli/src/main/java/org/onosproject/cli/net/AllocationsCommand.java b/cli/src/main/java/org/onosproject/cli/net/AllocationsCommand.java
index 715fef0..4a350a9 100644
--- a/cli/src/main/java/org/onosproject/cli/net/AllocationsCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/AllocationsCommand.java
@@ -35,6 +35,7 @@
import org.onosproject.net.newresource.ResourceService;
import com.google.common.base.Strings;
+import org.onosproject.net.newresource.Resources;
/**
* Lists allocated resources.
@@ -106,7 +107,7 @@
// TODO: Current design cannot deal with sub-resources
// (e.g., TX/RX under Port)
- Resource resource = Resource.discrete(did, num).resource();
+ Resource resource = Resources.discrete(did, num).resource();
if (lambda) {
//print("Lambda resources:");
Collection<ResourceAllocation> allocations
diff --git a/cli/src/main/java/org/onosproject/cli/net/ResourcesCommand.java b/cli/src/main/java/org/onosproject/cli/net/ResourcesCommand.java
index bf9201b..c64518c 100644
--- a/cli/src/main/java/org/onosproject/cli/net/ResourcesCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/ResourcesCommand.java
@@ -46,6 +46,7 @@
import com.google.common.collect.Range;
import com.google.common.collect.RangeSet;
import com.google.common.collect.TreeRangeSet;
+import org.onosproject.net.newresource.Resources;
/**
* Lists available resources.
@@ -89,11 +90,11 @@
DeviceId deviceId = deviceId(deviceIdStr);
PortNumber portNumber = PortNumber.fromString(portNumberStr);
- printResource(Resource.discrete(deviceId, portNumber).resource(), 0);
+ printResource(Resources.discrete(deviceId, portNumber).resource(), 0);
} else if (deviceIdStr != null) {
DeviceId deviceId = deviceId(deviceIdStr);
- printResource(Resource.discrete(deviceId).resource(), 0);
+ printResource(Resources.discrete(deviceId).resource(), 0);
} else {
printResource(Resource.ROOT, 0);
}
diff --git a/cli/src/main/java/org/onosproject/cli/net/TestAllocateResource.java b/cli/src/main/java/org/onosproject/cli/net/TestAllocateResource.java
index 8e72843..984987f 100644
--- a/cli/src/main/java/org/onosproject/cli/net/TestAllocateResource.java
+++ b/cli/src/main/java/org/onosproject/cli/net/TestAllocateResource.java
@@ -15,8 +15,6 @@
*/
package org.onosproject.cli.net;
-import static org.onosproject.net.newresource.Resource.discrete;
-
import java.util.Optional;
import org.apache.karaf.shell.commands.Argument;
@@ -33,6 +31,7 @@
import org.onosproject.net.newresource.ResourceConsumer;
import org.onosproject.net.newresource.Resource;
import org.onosproject.net.newresource.ResourceService;
+import org.onosproject.net.newresource.Resources;
/**
* Test tool to allocate resources.
@@ -73,8 +72,8 @@
ResourceConsumer consumer = IntentId.valueOf(nIntendId);
- Resource resource = discrete(did, portNum,
- createLambda(Integer.parseInt(lambda))).resource();
+ Resource resource = Resources.discrete(did, portNum,
+ createLambda(Integer.parseInt(lambda))).resource();
Optional<ResourceAllocation> allocate = resourceService.allocate(consumer, resource);
if (allocate.isPresent()) {
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResource.java b/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResource.java
index f5301f7..431fcd8 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResource.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResource.java
@@ -98,7 +98,7 @@
@Override
public Optional<DiscreteResource> parent() {
- return id.parent().map(x -> Resource.discrete(x).resource());
+ return id.parent().map(x -> Resources.discrete(x).resource());
}
@Override
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResource.java b/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResource.java
index f1876d5..4ed281c 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResource.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResource.java
@@ -80,17 +80,17 @@
public DiscreteResource child(Object child) {
checkArgument(!(child instanceof Class<?>));
- return Resource.discrete(id.child(child)).resource();
+ return Resources.discrete(id.child(child)).resource();
}
@Override
public ContinuousResource child(Class<?> child, double value) {
- return Resource.continuous(id.child(child)).resource(value);
+ return Resources.continuous(id.child(child)).resource(value);
}
@Override
public Optional<DiscreteResource> parent() {
- return id.parent().map(x -> Resource.discrete(x).resource());
+ return id.parent().map(x -> Resources.discrete(x).resource());
}
@Override
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResourceId.java b/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResourceId.java
index 804dfba..4b83344 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResourceId.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResourceId.java
@@ -50,14 +50,14 @@
public DiscreteResourceId child(Object child) {
checkArgument(!(child instanceof Class<?>));
- return Resource.discrete(this, child).id();
+ return Resources.discrete(this, child).id();
}
@Override
public ContinuousResourceId child(Class<?> child) {
checkNotNull(child);
- return Resource.continuous(this, child).id();
+ return Resources.continuous(this, child).id();
}
@Override
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/Resource.java b/core/api/src/main/java/org/onosproject/net/newresource/Resource.java
index 749d87e..c402b42 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/Resource.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/Resource.java
@@ -16,17 +16,10 @@
package org.onosproject.net.newresource;
import com.google.common.annotations.Beta;
-import com.google.common.collect.ImmutableList;
-import org.onosproject.net.DeviceId;
-import org.onosproject.net.PortNumber;
-import java.util.Arrays;
import java.util.List;
import java.util.Optional;
-import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
-
/**
* An object that represent a resource in a network.
* A Resource can represents path-like hierarchical structure with its ID. An ID of resource is
@@ -106,189 +99,4 @@
* @return the ID of this resource path
*/
ResourceId id();
-
- /**
- * Create a factory for discrete-type with the specified resource ID.
- *
- * @param id resource ID
- * @return {@link DiscreteFactory}
- */
- static DiscreteFactory discrete(DiscreteResourceId id) {
- checkNotNull(id);
-
- return new DiscreteFactory(id);
- }
-
- /**
- * Creates a factory for discrete-type with the specified parent ID and child.
- *
- * @param parent ID of the parent
- * @param child child
- * @return {@link DiscreteFactory}
- */
- static DiscreteFactory discrete(DiscreteResourceId parent, Object child) {
- checkNotNull(parent);
- checkNotNull(child);
- checkArgument(!(child instanceof Class<?>));
-
- return new DiscreteFactory(new DiscreteResourceId(ImmutableList.builder()
- .addAll(parent.components())
- .add(child)
- .build()));
- }
-
- /**
- * Create a factory for discrete-type with the specified device ID.
- *
- * @param device device ID
- * @return {@link DiscreteFactory}
- */
- static DiscreteFactory discrete(DeviceId device) {
- checkNotNull(device);
-
- return new DiscreteFactory(new DiscreteResourceId(ImmutableList.of(device)));
- }
-
- /**
- * Create a factory for discrete-type with the specified device ID and components.
- *
- * @param device device ID
- * @param components resource ID components other than the device ID
- * @return {@link DiscreteFactory}
- */
- static DiscreteFactory discrete(DeviceId device, Object... components) {
- checkNotNull(device);
- checkNotNull(components);
-
- return new DiscreteFactory(new DiscreteResourceId(ImmutableList.builder()
- .add(device)
- .add(components)
- .build()));
- }
-
- /**
- * Create a factory for discrete-type with the specified device ID, port number and components.
- *
- * @param device device ID
- * @param port port number
- * @param components resource ID components other than the device ID and port number
- * @return {@link DiscreteFactory}
- */
- static DiscreteFactory discrete(DeviceId device, PortNumber port, Object... components) {
- checkNotNull(device);
- checkNotNull(port);
- checkNotNull(components);
-
- return new DiscreteFactory(new DiscreteResourceId(ImmutableList.builder()
- .add(device)
- .add(port)
- .add(components)
- .build()));
- }
-
- /**
- * Create a factory for continuous-type with the specified resource ID.
- *
- * @param id resource ID
- * @return {@link ContinuousFactory}
- */
- static ContinuousFactory continuous(ContinuousResourceId id) {
- checkNotNull(id);
-
- return new ContinuousFactory(id);
- }
-
- /**
- * Creates a factory for continuous-type wit the specified parent ID and child.
- *
- * @param parent ID of the parent
- * @param child child
- * @return {@link ContinuousFactory}
- */
- static ContinuousFactory continuous(DiscreteResourceId parent, Class<?> child) {
- checkNotNull(parent);
- checkNotNull(child);
-
- return new ContinuousFactory(new ContinuousResourceId(ImmutableList.builder()
- .addAll(parent.components()), child));
- }
-
- /**
- * Create a factory for continuous-type with the specified device ID and type.
- *
- * @param device device ID
- * @param cls type of resource the returned factory will create
- * @return {@link ContinuousFactory}
- */
- static ContinuousFactory continuous(DeviceId device, Class<?> cls) {
- checkNotNull(device);
- checkNotNull(cls);
-
- return new ContinuousFactory(new ContinuousResourceId(ImmutableList.builder().add(device), cls));
- }
-
- /**
- * Create a factory for continuous-type with the specified device ID and components.
- * The last element of the components must be a {@link Class} instance. Otherwise,
- * an {@link IllegalArgumentException} is thrown.
- *
- * @param device device ID
- * @param components resource ID components other than the device ID.
- * @return {@link ContinuousFactory}
- */
- static ContinuousFactory continuous(DeviceId device, Object... components) {
- checkNotNull(device);
- checkNotNull(components);
- checkArgument(components.length > 1);
-
- Object last = components[components.length - 1];
- checkArgument(last instanceof Class<?>);
-
- return new ContinuousFactory(new ContinuousResourceId(ImmutableList.builder()
- .add(device)
- .add(Arrays.copyOfRange(components, 0, components.length - 1)), (Class<?>) last));
- }
-
- /**
- * Create a factory for continuous-type with the specified device ID, port number and type.
- *
- * @param device device ID
- * @param port port number
- * @param cls type of resource the returned factory will create
- * @return {@link ContinuousFactory}
- */
- static ContinuousFactory continuous(DeviceId device, PortNumber port, Class<?> cls) {
- checkNotNull(device);
- checkNotNull(port);
- checkNotNull(cls);
-
- return new ContinuousFactory(new ContinuousResourceId(ImmutableList.builder()
- .add(device)
- .add(port), cls));
- }
-
- /**
- * Create a factory for continuous-type with the specified device ID and components.
- * The last element of the components must be a {@link Class} instance. Otherwise,
- * an {@link IllegalArgumentException} is thrown.
- *
- * @param device device ID
- * @param port port number
- * @param components resource ID components other than the device ID and port number.
- * @return {@link ContinuousFactory}
- */
- static ContinuousFactory continuous(DeviceId device, PortNumber port, Object... components) {
- checkNotNull(device);
- checkNotNull(port);
- checkNotNull(components);
- checkArgument(components.length > 1);
-
- Object last = components[components.length - 1];
- checkArgument(last instanceof Class<?>);
-
- return new ContinuousFactory(new ContinuousResourceId(ImmutableList.builder()
- .add(device)
- .add(port)
- .add(Arrays.copyOfRange(components, 0, components.length - 1)), (Class<?>) last));
- }
}
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/Resources.java b/core/api/src/main/java/org/onosproject/net/newresource/Resources.java
new file mode 100644
index 0000000..13b226e
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/net/newresource/Resources.java
@@ -0,0 +1,220 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * 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.
+ */
+package org.onosproject.net.newresource;
+
+import com.google.common.annotations.Beta;
+import com.google.common.collect.ImmutableList;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.PortNumber;
+
+import java.util.Arrays;
+
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Preconditions.checkNotNull;
+
+/**
+ * Utility class for resource related classes.
+ */
+@Beta
+public final class Resources {
+ // public construction is prohibited
+ private Resources() {}
+
+ /**
+ * Create a factory for discrete-type with the specified resource ID.
+ *
+ * @param id resource ID
+ * @return {@link DiscreteFactory}
+ */
+ public static DiscreteFactory discrete(DiscreteResourceId id) {
+ checkNotNull(id);
+
+ return new DiscreteFactory(id);
+ }
+
+ /**
+ * Creates a factory for discrete-type with the specified parent ID and child.
+ *
+ * @param parent ID of the parent
+ * @param child child
+ * @return {@link DiscreteFactory}
+ */
+ public static DiscreteFactory discrete(DiscreteResourceId parent, Object child) {
+ checkNotNull(parent);
+ checkNotNull(child);
+ checkArgument(!(child instanceof Class<?>));
+
+ return new DiscreteFactory(new DiscreteResourceId(ImmutableList.builder()
+ .addAll(parent.components())
+ .add(child)
+ .build()));
+ }
+
+ /**
+ * Create a factory for discrete-type with the specified device ID.
+ *
+ * @param device device ID
+ * @return {@link DiscreteFactory}
+ */
+ public static DiscreteFactory discrete(DeviceId device) {
+ checkNotNull(device);
+
+ return new DiscreteFactory(new DiscreteResourceId(ImmutableList.of(device)));
+ }
+
+ /**
+ * Create a factory for discrete-type with the specified device ID and components.
+ *
+ * @param device device ID
+ * @param components resource ID components other than the device ID
+ * @return {@link DiscreteFactory}
+ */
+ public static DiscreteFactory discrete(DeviceId device, Object... components) {
+ checkNotNull(device);
+ checkNotNull(components);
+
+ return new DiscreteFactory(new DiscreteResourceId(ImmutableList.builder()
+ .add(device)
+ .add(components)
+ .build()));
+ }
+
+ /**
+ * Create a factory for discrete-type with the specified device ID, port number and components.
+ *
+ * @param device device ID
+ * @param port port number
+ * @param components resource ID components other than the device ID and port number
+ * @return {@link DiscreteFactory}
+ */
+ public static DiscreteFactory discrete(DeviceId device, PortNumber port, Object... components) {
+ checkNotNull(device);
+ checkNotNull(port);
+ checkNotNull(components);
+
+ return new DiscreteFactory(new DiscreteResourceId(ImmutableList.builder()
+ .add(device)
+ .add(port)
+ .add(components)
+ .build()));
+ }
+
+ /**
+ * Create a factory for continuous-type with the specified resource ID.
+ *
+ * @param id resource ID
+ * @return {@link ContinuousFactory}
+ */
+ public static ContinuousFactory continuous(ContinuousResourceId id) {
+ checkNotNull(id);
+
+ return new ContinuousFactory(id);
+ }
+
+ /**
+ * Creates a factory for continuous-type wit the specified parent ID and child.
+ *
+ * @param parent ID of the parent
+ * @param child child
+ * @return {@link ContinuousFactory}
+ */
+ public static ContinuousFactory continuous(DiscreteResourceId parent, Class<?> child) {
+ checkNotNull(parent);
+ checkNotNull(child);
+
+ return new ContinuousFactory(new ContinuousResourceId(ImmutableList.builder()
+ .addAll(parent.components()), child));
+ }
+
+ /**
+ * Create a factory for continuous-type with the specified device ID and type.
+ *
+ * @param device device ID
+ * @param cls type of resource the returned factory will create
+ * @return {@link ContinuousFactory}
+ */
+ public static ContinuousFactory continuous(DeviceId device, Class<?> cls) {
+ checkNotNull(device);
+ checkNotNull(cls);
+
+ return new ContinuousFactory(new ContinuousResourceId(ImmutableList.builder().add(device), cls));
+ }
+
+ /**
+ * Create a factory for continuous-type with the specified device ID and components.
+ * The last element of the components must be a {@link Class} instance. Otherwise,
+ * an {@link IllegalArgumentException} is thrown.
+ *
+ * @param device device ID
+ * @param components resource ID components other than the device ID.
+ * @return {@link ContinuousFactory}
+ */
+ public static ContinuousFactory continuous(DeviceId device, Object... components) {
+ checkNotNull(device);
+ checkNotNull(components);
+ checkArgument(components.length > 1);
+
+ Object last = components[components.length - 1];
+ checkArgument(last instanceof Class<?>);
+
+ return new ContinuousFactory(new ContinuousResourceId(ImmutableList.builder()
+ .add(device)
+ .add(Arrays.copyOfRange(components, 0, components.length - 1)), (Class<?>) last));
+ }
+
+ /**
+ * Create a factory for continuous-type with the specified device ID, port number and type.
+ *
+ * @param device device ID
+ * @param port port number
+ * @param cls type of resource the returned factory will create
+ * @return {@link ContinuousFactory}
+ */
+ public static ContinuousFactory continuous(DeviceId device, PortNumber port, Class<?> cls) {
+ checkNotNull(device);
+ checkNotNull(port);
+ checkNotNull(cls);
+
+ return new ContinuousFactory(new ContinuousResourceId(ImmutableList.builder()
+ .add(device)
+ .add(port), cls));
+ }
+
+ /**
+ * Create a factory for continuous-type with the specified device ID and components.
+ * The last element of the components must be a {@link Class} instance. Otherwise,
+ * an {@link IllegalArgumentException} is thrown.
+ *
+ * @param device device ID
+ * @param port port number
+ * @param components resource ID components other than the device ID and port number.
+ * @return {@link ContinuousFactory}
+ */
+ public static ContinuousFactory continuous(DeviceId device, PortNumber port, Object... components) {
+ checkNotNull(device);
+ checkNotNull(port);
+ checkNotNull(components);
+ checkArgument(components.length > 1);
+
+ Object last = components[components.length - 1];
+ checkArgument(last instanceof Class<?>);
+
+ return new ContinuousFactory(new ContinuousResourceId(ImmutableList.builder()
+ .add(device)
+ .add(port)
+ .add(Arrays.copyOfRange(components, 0, components.length - 1)), (Class<?>) last));
+ }
+}
diff --git a/core/api/src/test/java/org/onosproject/net/newresource/ResourceAllocationTest.java b/core/api/src/test/java/org/onosproject/net/newresource/ResourceAllocationTest.java
index c8c1b17..4a5a450 100644
--- a/core/api/src/test/java/org/onosproject/net/newresource/ResourceAllocationTest.java
+++ b/core/api/src/test/java/org/onosproject/net/newresource/ResourceAllocationTest.java
@@ -32,9 +32,9 @@
@Test
public void testEquals() {
- ResourceAllocation alloc1 = new ResourceAllocation(Resource.discrete(D1, P1, VLAN1).resource(), IID1);
- ResourceAllocation sameAsAlloc1 = new ResourceAllocation(Resource.discrete(D1, P1, VLAN1).resource(), IID1);
- ResourceAllocation alloc2 = new ResourceAllocation(Resource.discrete(D2, P1, VLAN1).resource(), IID1);
+ ResourceAllocation alloc1 = new ResourceAllocation(Resources.discrete(D1, P1, VLAN1).resource(), IID1);
+ ResourceAllocation sameAsAlloc1 = new ResourceAllocation(Resources.discrete(D1, P1, VLAN1).resource(), IID1);
+ ResourceAllocation alloc2 = new ResourceAllocation(Resources.discrete(D2, P1, VLAN1).resource(), IID1);
new EqualsTester()
.addEqualityGroup(alloc1, sameAsAlloc1)
diff --git a/core/api/src/test/java/org/onosproject/net/newresource/ResourceIdTest.java b/core/api/src/test/java/org/onosproject/net/newresource/ResourceIdTest.java
index 1d2257b..aa97892 100644
--- a/core/api/src/test/java/org/onosproject/net/newresource/ResourceIdTest.java
+++ b/core/api/src/test/java/org/onosproject/net/newresource/ResourceIdTest.java
@@ -32,20 +32,20 @@
@Test
public void testDiscreteToString() {
- ResourceId resource = Resource.discrete(D1, P1).id();
+ ResourceId resource = Resources.discrete(D1, P1).id();
assertThat(resource.toString(), is(Arrays.asList(D1, P1).toString()));
}
@Test
public void testContinuousToString() {
- ResourceId resource = Resource.continuous(D1, P1, Bandwidth.class).id();
+ ResourceId resource = Resources.continuous(D1, P1, Bandwidth.class).id();
assertThat(resource.toString(), is(Arrays.asList(D1, P1, Bandwidth.class.getSimpleName()).toString()));
}
@Test(expected = IllegalArgumentException.class)
public void testInitWithNonClassInstance() {
- Resource.continuous(D1, P1, BW1).id();
+ Resources.continuous(D1, P1, BW1).id();
}
}
diff --git a/core/api/src/test/java/org/onosproject/net/newresource/ResourceTest.java b/core/api/src/test/java/org/onosproject/net/newresource/ResourceTest.java
index a14b947..59f327f 100644
--- a/core/api/src/test/java/org/onosproject/net/newresource/ResourceTest.java
+++ b/core/api/src/test/java/org/onosproject/net/newresource/ResourceTest.java
@@ -39,11 +39,11 @@
@Test
public void testEquals() {
- Resource resource1 = Resource.discrete(D1, P1, VLAN1).resource();
- Resource sameAsResource1 = Resource.discrete(D1, P1, VLAN1).resource();
- Resource resource2 = Resource.discrete(D2, P1, VLAN1).resource();
- Resource resource3 = Resource.continuous(D1, P1, Bandwidth.class).resource(BW1.bps());
- Resource sameAsResource3 = Resource.continuous(D1, P1, Bandwidth.class).resource(BW1.bps());
+ Resource resource1 = Resources.discrete(D1, P1, VLAN1).resource();
+ Resource sameAsResource1 = Resources.discrete(D1, P1, VLAN1).resource();
+ Resource resource2 = Resources.discrete(D2, P1, VLAN1).resource();
+ Resource resource3 = Resources.continuous(D1, P1, Bandwidth.class).resource(BW1.bps());
+ Resource sameAsResource3 = Resources.continuous(D1, P1, Bandwidth.class).resource(BW1.bps());
new EqualsTester()
.addEqualityGroup(resource1, sameAsResource1)
@@ -54,19 +54,19 @@
@Test
public void testComponents() {
- Resource port = Resource.discrete(D1, P1).resource();
+ Resource port = Resources.discrete(D1, P1).resource();
assertThat(port.components(), contains(D1, P1));
}
@Test
public void testIdEquality() {
- ResourceId id1 = Resource.discrete(D1, P1, VLAN1).id();
- ResourceId sameAsId1 = Resource.discrete(D1, P1, VLAN1).id();
- ResourceId id2 = Resource.discrete(D2, P1, VLAN1).id();
- ResourceId id3 = Resource.continuous(D1, P1, Bandwidth.class).resource(BW1.bps()).id();
+ ResourceId id1 = Resources.discrete(D1, P1, VLAN1).id();
+ ResourceId sameAsId1 = Resources.discrete(D1, P1, VLAN1).id();
+ ResourceId id2 = Resources.discrete(D2, P1, VLAN1).id();
+ ResourceId id3 = Resources.continuous(D1, P1, Bandwidth.class).resource(BW1.bps()).id();
// intentionally set a different value
- ResourceId sameAsId3 = Resource.continuous(D1, P1, Bandwidth.class).resource(BW2.bps()).id();
+ ResourceId sameAsId3 = Resources.continuous(D1, P1, Bandwidth.class).resource(BW2.bps()).id();
new EqualsTester()
.addEqualityGroup(id1, sameAsId1)
@@ -76,30 +76,30 @@
@Test
public void testChild() {
- Resource r1 = Resource.discrete(D1).resource().child(P1);
- Resource sameAsR2 = Resource.discrete(D1, P1).resource();
+ Resource r1 = Resources.discrete(D1).resource().child(P1);
+ Resource sameAsR2 = Resources.discrete(D1, P1).resource();
assertThat(r1, is(sameAsR2));
}
@Test
public void testThereIsParent() {
- Resource resource = Resource.discrete(D1, P1, VLAN1).resource();
- Resource parent = Resource.discrete(D1, P1).resource();
+ Resource resource = Resources.discrete(D1, P1, VLAN1).resource();
+ Resource parent = Resources.discrete(D1, P1).resource();
assertThat(resource.parent(), is(Optional.of(parent)));
}
@Test
public void testNoParent() {
- Resource resource = Resource.discrete(D1).resource();
+ Resource resource = Resources.discrete(D1).resource();
assertThat(resource.parent(), is(Optional.of(Resource.ROOT)));
}
@Test
public void testBase() {
- Resource resource = Resource.discrete(D1).resource();
+ Resource resource = Resources.discrete(D1).resource();
DeviceId child = (DeviceId) resource.last();
assertThat(child, is(D1));
@@ -107,7 +107,7 @@
@Test
public void testVolumeOfDiscrete() {
- Resource resource = Resource.discrete(D1).resource();
+ Resource resource = Resources.discrete(D1).resource();
DeviceId volume = resource.volume();
assertThat(volume, is(D1));
@@ -115,7 +115,7 @@
@Test
public void testVolumeOfContinuous() {
- Resource resource = Resource.continuous(D1, P1, Bandwidth.class).resource(BW1.bps());
+ Resource resource = Resources.continuous(D1, P1, Bandwidth.class).resource(BW1.bps());
double volume = resource.volume();
assertThat(volume, is(BW1.bps()));
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/MplsPathIntentCompiler.java b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/MplsPathIntentCompiler.java
index 511c0c2..c8c7e8f 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/MplsPathIntentCompiler.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/MplsPathIntentCompiler.java
@@ -51,6 +51,7 @@
import org.onosproject.net.intent.MplsPathIntent;
import org.onosproject.net.newresource.Resource;
import org.onosproject.net.newresource.ResourceService;
+import org.onosproject.net.newresource.Resources;
import org.onosproject.net.resource.link.LinkResourceAllocations;
import org.slf4j.Logger;
@@ -125,9 +126,9 @@
// TODO: introduce the concept of Tx and Rx resources of a port
Set<Resource> resources = labels.entrySet().stream()
.flatMap(x -> Stream.of(
- Resource.discrete(x.getKey().src().deviceId(), x.getKey().src().port(), x.getValue())
+ Resources.discrete(x.getKey().src().deviceId(), x.getKey().src().port(), x.getValue())
.resource(),
- Resource.discrete(x.getKey().dst().deviceId(), x.getKey().dst().port(), x.getValue())
+ Resources.discrete(x.getKey().dst().deviceId(), x.getKey().dst().port(), x.getValue())
.resource()
))
.collect(Collectors.toSet());
@@ -156,7 +157,7 @@
}
private Set<MplsLabel> findMplsLabel(ConnectPoint cp) {
- return resourceService.getAvailableResources(Resource.discrete(cp.deviceId(), cp.port()).resource()).stream()
+ return resourceService.getAvailableResources(Resources.discrete(cp.deviceId(), cp.port()).resource()).stream()
.filter(x -> x.last() instanceof MplsLabel)
.map(x -> (MplsLabel) x.last())
.collect(Collectors.toSet());
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalCircuitIntentCompiler.java b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalCircuitIntentCompiler.java
index a08b843..d2f92d5 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalCircuitIntentCompiler.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalCircuitIntentCompiler.java
@@ -52,6 +52,7 @@
import org.onosproject.net.newresource.ResourceAllocation;
import org.onosproject.net.newresource.Resource;
import org.onosproject.net.newresource.ResourceService;
+import org.onosproject.net.newresource.Resources;
import org.onosproject.net.resource.device.IntentSetMultimap;
import org.onosproject.net.resource.link.LinkResourceAllocations;
import org.osgi.service.component.ComponentContext;
@@ -160,8 +161,8 @@
log.debug("Compiling optical circuit intent between {} and {}", src, dst);
// Reserve OduClt ports
- Resource srcPortResource = Resource.discrete(src.deviceId(), src.port()).resource();
- Resource dstPortResource = Resource.discrete(dst.deviceId(), dst.port()).resource();
+ Resource srcPortResource = Resources.discrete(src.deviceId(), src.port()).resource();
+ Resource dstPortResource = Resources.discrete(dst.deviceId(), dst.port()).resource();
List<ResourceAllocation> allocation = resourceService.allocate(intent.id(), srcPortResource, dstPortResource);
if (allocation.isEmpty()) {
throw new IntentCompilationException("Unable to reserve ports for intent " + intent);
@@ -312,7 +313,8 @@
if (ochCP != null) {
OchPort ochPort = (OchPort) deviceService.getPort(ochCP.deviceId(), ochCP.port());
Optional<IntentId> intentId =
- resourceService.getResourceAllocations(Resource.discrete(ochCP.deviceId(), ochCP.port()).resource())
+ resourceService.getResourceAllocations(
+ Resources.discrete(ochCP.deviceId(), ochCP.port()).resource())
.stream()
.map(ResourceAllocation::consumer)
.filter(x -> x instanceof IntentId)
@@ -334,7 +336,7 @@
Optional<IntentId> intentId =
resourceService.getResourceAllocations(
- Resource.discrete(oduPort.deviceId(), port.number()).resource())
+ Resources.discrete(oduPort.deviceId(), port.number()).resource())
.stream()
.map(ResourceAllocation::consumer)
.filter(x -> x instanceof IntentId)
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalConnectivityIntentCompiler.java b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalConnectivityIntentCompiler.java
index 690f3c2..2f04cfd 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalConnectivityIntentCompiler.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalConnectivityIntentCompiler.java
@@ -46,6 +46,7 @@
import org.onosproject.net.newresource.ResourceAllocation;
import org.onosproject.net.newresource.Resource;
import org.onosproject.net.newresource.ResourceService;
+import org.onosproject.net.newresource.Resources;
import org.onosproject.net.resource.link.LinkResourceAllocations;
import org.onosproject.net.topology.LinkWeight;
import org.onosproject.net.topology.Topology;
@@ -109,8 +110,8 @@
log.debug("Compiling optical connectivity intent between {} and {}", src, dst);
// Reserve OCh ports
- Resource srcPortResource = Resource.discrete(src.deviceId(), src.port()).resource();
- Resource dstPortResource = Resource.discrete(dst.deviceId(), dst.port()).resource();
+ Resource srcPortResource = Resources.discrete(src.deviceId(), src.port()).resource();
+ Resource dstPortResource = Resources.discrete(dst.deviceId(), dst.port()).resource();
List<ResourceAllocation> allocation = resourceService.allocate(intent.id(), srcPortResource, dstPortResource);
if (allocation.isEmpty()) {
throw new IntentCompilationException("Unable to reserve ports for intent " + intent);
@@ -183,8 +184,8 @@
List<OchSignal> minLambda = findFirstLambda(lambdas, slotCount());
List<Resource> lambdaResources = path.links().stream()
.flatMap(x -> Stream.of(
- Resource.discrete(x.src().deviceId(), x.src().port()).resource(),
- Resource.discrete(x.dst().deviceId(), x.dst().port()).resource()
+ Resources.discrete(x.src().deviceId(), x.src().port()).resource(),
+ Resources.discrete(x.dst().deviceId(), x.dst().port()).resource()
))
.flatMap(x -> minLambda.stream().map(l -> x.child(l)))
.collect(Collectors.toList());
@@ -213,8 +214,8 @@
private Set<OchSignal> findCommonLambdasOverLinks(List<Link> links) {
return links.stream()
.flatMap(x -> Stream.of(
- Resource.discrete(x.src().deviceId(), x.src().port()).resource(),
- Resource.discrete(x.dst().deviceId(), x.dst().port()).resource()
+ Resources.discrete(x.src().deviceId(), x.src().port()).resource(),
+ Resources.discrete(x.dst().deviceId(), x.dst().port()).resource()
))
.map(resourceService::getAvailableResources)
.map(x -> Iterables.filter(x, r -> r.last() instanceof OchSignal))
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/PathIntentCompiler.java b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/PathIntentCompiler.java
index 842e5e0..7473ce5 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/PathIntentCompiler.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/PathIntentCompiler.java
@@ -46,6 +46,7 @@
import org.onosproject.net.intent.impl.IntentCompilationException;
import org.onosproject.net.newresource.Resource;
import org.onosproject.net.newresource.ResourceService;
+import org.onosproject.net.newresource.Resources;
import org.onosproject.net.resource.link.LinkResourceAllocations;
import org.slf4j.Logger;
@@ -252,9 +253,9 @@
//same VLANID is used for both directions
Set<Resource> resources = vlanIds.entrySet().stream()
.flatMap(x -> Stream.of(
- Resource.discrete(x.getKey().src().deviceId(), x.getKey().src().port(), x.getValue())
+ Resources.discrete(x.getKey().src().deviceId(), x.getKey().src().port(), x.getValue())
.resource(),
- Resource.discrete(x.getKey().dst().deviceId(), x.getKey().dst().port(), x.getValue())
+ Resources.discrete(x.getKey().dst().deviceId(), x.getKey().dst().port(), x.getValue())
.resource()
))
.collect(Collectors.toSet());
@@ -282,7 +283,7 @@
}
private Set<VlanId> findVlanId(ConnectPoint cp) {
- return resourceService.getAvailableResources(Resource.discrete(cp.deviceId(), cp.port()).resource()).stream()
+ return resourceService.getAvailableResources(Resources.discrete(cp.deviceId(), cp.port()).resource()).stream()
.filter(x -> x.last() instanceof VlanId)
.map(x -> (VlanId) x.last())
.collect(Collectors.toSet());
diff --git a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceDeviceListener.java b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceDeviceListener.java
index 2a85fbb..64691d5 100644
--- a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceDeviceListener.java
+++ b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceDeviceListener.java
@@ -40,6 +40,7 @@
import org.onosproject.net.newresource.ResourceAdminService;
import org.onosproject.net.newresource.BandwidthCapacity;
import org.onosproject.net.newresource.Resource;
+import org.onosproject.net.newresource.Resources;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -118,15 +119,15 @@
}
private void registerDeviceResource(Device device) {
- executor.submit(() -> adminService.registerResources(Resource.discrete(device.id()).resource()));
+ executor.submit(() -> adminService.registerResources(Resources.discrete(device.id()).resource()));
}
private void unregisterDeviceResource(Device device) {
- executor.submit(() -> adminService.unregisterResources(Resource.discrete(device.id()).resource()));
+ executor.submit(() -> adminService.unregisterResources(Resources.discrete(device.id()).resource()));
}
private void registerPortResource(Device device, Port port) {
- Resource portPath = Resource.discrete(device.id(), port.number()).resource();
+ Resource portPath = Resources.discrete(device.id(), port.number()).resource();
executor.submit(() -> {
adminService.registerResources(portPath);
@@ -174,7 +175,7 @@
}
private void unregisterPortResource(Device device, Port port) {
- Resource resource = Resource.discrete(device.id(), port.number()).resource();
+ Resource resource = Resources.discrete(device.id(), port.number()).resource();
executor.submit(() -> adminService.unregisterResources(resource));
}
diff --git a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceNetworkConfigListener.java b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceNetworkConfigListener.java
index b8d373b..e98a3c3 100644
--- a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceNetworkConfigListener.java
+++ b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceNetworkConfigListener.java
@@ -17,7 +17,6 @@
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
-import static org.onosproject.net.newresource.Resource.continuous;
import static org.slf4j.LoggerFactory.getLogger;
import java.util.Set;
@@ -30,6 +29,7 @@
import org.onosproject.net.config.NetworkConfigService;
import org.onosproject.net.newresource.BandwidthCapacity;
import org.onosproject.net.newresource.ResourceAdminService;
+import org.onosproject.net.newresource.Resources;
import org.slf4j.Logger;
import com.google.common.annotations.Beta;
@@ -93,8 +93,8 @@
switch (event.type()) {
case CONFIG_ADDED:
- if (!adminService.registerResources(continuous(cp.deviceId(),
- cp.port(), Bandwidth.class)
+ if (!adminService.registerResources(Resources.continuous(cp.deviceId(),
+ cp.port(), Bandwidth.class)
.resource(bwCapacity.capacity().bps()))) {
log.info("Failed to register Bandwidth for {}, attempting update", cp);
@@ -115,9 +115,9 @@
case CONFIG_REMOVED:
// FIXME Following should be an update to the value based on port speed
- if (!adminService.unregisterResources(continuous(cp.deviceId(),
- cp.port(),
- Bandwidth.class).resource(0))) {
+ if (!adminService.unregisterResources(Resources.continuous(cp.deviceId(),
+ cp.port(),
+ Bandwidth.class).resource(0))) {
log.warn("Failed to unregister Bandwidth for {}", cp);
}
break;
@@ -147,12 +147,13 @@
// but both unregisterResources(..) and registerResources(..)
// returns true (success)
- if (!adminService.unregisterResources(continuous(cp.deviceId(), cp.port(), Bandwidth.class).resource(0))) {
+ if (!adminService.unregisterResources(
+ Resources.continuous(cp.deviceId(), cp.port(), Bandwidth.class).resource(0))) {
log.warn("unregisterResources for {} failed", cp);
}
- return adminService.registerResources(continuous(cp.deviceId(),
- cp.port(),
- Bandwidth.class).resource(bwCapacity.capacity().bps()));
+ return adminService.registerResources(Resources.continuous(cp.deviceId(),
+ cp.port(),
+ Bandwidth.class).resource(bwCapacity.capacity().bps()));
}
}
diff --git a/core/net/src/test/java/org/onosproject/net/intent/impl/ObjectiveTrackerTest.java b/core/net/src/test/java/org/onosproject/net/intent/impl/ObjectiveTrackerTest.java
index 7c1036e..eb5a4bc 100644
--- a/core/net/src/test/java/org/onosproject/net/intent/impl/ObjectiveTrackerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/intent/impl/ObjectiveTrackerTest.java
@@ -41,7 +41,7 @@
import org.onosproject.net.link.LinkEvent;
import org.onosproject.net.newresource.ResourceEvent;
import org.onosproject.net.newresource.ResourceListener;
-import org.onosproject.net.newresource.Resource;
+import org.onosproject.net.newresource.Resources;
import org.onosproject.net.topology.Topology;
import org.onosproject.net.topology.TopologyEvent;
import org.onosproject.net.topology.TopologyListener;
@@ -232,7 +232,7 @@
@Test
public void testResourceEvent() throws Exception {
ResourceEvent event = new ResourceEvent(RESOURCE_ADDED,
- Resource.discrete(DeviceId.deviceId("a"), PortNumber.portNumber(1)).resource());
+ Resources.discrete(DeviceId.deviceId("a"), PortNumber.portNumber(1)).resource());
resourceListener.event(event);
assertThat(
diff --git a/core/store/serializers/src/test/java/org/onosproject/store/serializers/KryoSerializerTest.java b/core/store/serializers/src/test/java/org/onosproject/store/serializers/KryoSerializerTest.java
index 8d2d368..9a0e94f 100644
--- a/core/store/serializers/src/test/java/org/onosproject/store/serializers/KryoSerializerTest.java
+++ b/core/store/serializers/src/test/java/org/onosproject/store/serializers/KryoSerializerTest.java
@@ -62,7 +62,7 @@
import org.onosproject.net.flow.FlowRule;
import org.onosproject.net.flow.FlowRuleBatchEntry;
import org.onosproject.net.intent.IntentId;
-import org.onosproject.net.newresource.Resource;
+import org.onosproject.net.newresource.Resources;
import org.onosproject.net.provider.ProviderId;
import org.onosproject.net.resource.link.BandwidthResource;
import org.onosproject.net.resource.link.BandwidthResourceAllocation;
@@ -388,18 +388,18 @@
@Test
public void testResource() {
- testSerializedEquals(Resource.discrete(DID1, P1, VLAN1).resource());
+ testSerializedEquals(Resources.discrete(DID1, P1, VLAN1).resource());
}
@Test
public void testResourceId() {
- testSerializedEquals(Resource.discrete(DID1, P1).id());
+ testSerializedEquals(Resources.discrete(DID1, P1).id());
}
@Test
public void testResourceAllocation() {
testSerializedEquals(new org.onosproject.net.newresource.ResourceAllocation(
- Resource.discrete(DID1, P1, VLAN1).resource(),
+ Resources.discrete(DID1, P1, VLAN1).resource(),
IntentId.valueOf(30)));
}