Refactor: Rename ResourcePath to Resource for a better name
Also the followings
- Rename variables from path to resource
- Update Javadoc
Change-Id: I07da7e7d13882f2134a3687c66ed91a9de5b0849
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 353ab3a..869868f 100644
--- a/cli/src/main/java/org/onosproject/cli/net/AllocationsCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/AllocationsCommand.java
@@ -31,7 +31,7 @@
import org.onosproject.net.PortNumber;
import org.onosproject.net.device.DeviceService;
import org.onosproject.net.newresource.ResourceAllocation;
-import org.onosproject.net.newresource.ResourcePath;
+import org.onosproject.net.newresource.Resource;
import org.onosproject.net.newresource.ResourceService;
import com.google.common.base.Strings;
@@ -106,11 +106,11 @@
// TODO: Current design cannot deal with sub-resources
// (e.g., TX/RX under Port)
- ResourcePath path = ResourcePath.discrete(did, num);
+ Resource resource = Resource.discrete(did, num);
if (lambda) {
//print("Lambda resources:");
Collection<ResourceAllocation> allocations
- = resourceService.getResourceAllocations(path, OchSignal.class);
+ = resourceService.getResourceAllocations(resource, OchSignal.class);
for (ResourceAllocation a : allocations) {
print("%s%s allocated by %s", Strings.repeat(" ", level + 1),
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 b70723e..6c74848 100644
--- a/cli/src/main/java/org/onosproject/cli/net/ResourcesCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/ResourcesCommand.java
@@ -29,7 +29,7 @@
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.net.DeviceId;
import org.onosproject.net.PortNumber;
-import org.onosproject.net.newresource.ResourcePath;
+import org.onosproject.net.newresource.Resource;
import org.onosproject.net.newresource.ResourceService;
import com.google.common.base.Strings;
@@ -76,20 +76,20 @@
DeviceId deviceId = deviceId(deviceIdStr);
PortNumber portNumber = PortNumber.fromString(portNumberStr);
- printResource(ResourcePath.discrete(deviceId, portNumber), 0);
+ printResource(Resource.discrete(deviceId, portNumber), 0);
} else if (deviceIdStr != null) {
DeviceId deviceId = deviceId(deviceIdStr);
- printResource(ResourcePath.discrete(deviceId), 0);
+ printResource(Resource.discrete(deviceId), 0);
} else {
- printResource(ResourcePath.ROOT, 0);
+ printResource(Resource.ROOT, 0);
}
}
- private void printResource(ResourcePath resource, int level) {
- Collection<ResourcePath> children = resourceService.getAvailableResources(resource);
+ private void printResource(Resource resource, int level) {
+ Collection<Resource> children = resourceService.getAvailableResources(resource);
- if (resource.equals(ResourcePath.ROOT)) {
+ if (resource.equals(Resource.ROOT)) {
print("ROOT");
} else {
String resourceName = resource.last().getClass().getSimpleName();
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 843361f..35d9a4c 100644
--- a/cli/src/main/java/org/onosproject/cli/net/TestAllocateResource.java
+++ b/cli/src/main/java/org/onosproject/cli/net/TestAllocateResource.java
@@ -15,7 +15,7 @@
*/
package org.onosproject.cli.net;
-import static org.onosproject.net.newresource.ResourcePath.discrete;
+import static org.onosproject.net.newresource.Resource.discrete;
import java.util.Optional;
@@ -31,7 +31,7 @@
import org.onosproject.net.intent.IntentId;
import org.onosproject.net.newresource.ResourceAllocation;
import org.onosproject.net.newresource.ResourceConsumer;
-import org.onosproject.net.newresource.ResourcePath;
+import org.onosproject.net.newresource.Resource;
import org.onosproject.net.newresource.ResourceService;
/**
@@ -73,7 +73,7 @@
ResourceConsumer consumer = IntentId.valueOf(nIntendId);
- ResourcePath resource = discrete(did, portNum,
+ Resource resource = discrete(did, portNum,
createLambda(Integer.parseInt(lambda)));
Optional<ResourceAllocation> allocate = resourceService.allocate(consumer, resource);
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/ResourcePath.java b/core/api/src/main/java/org/onosproject/net/newresource/Resource.java
similarity index 87%
rename from core/api/src/main/java/org/onosproject/net/newresource/ResourcePath.java
rename to core/api/src/main/java/org/onosproject/net/newresource/Resource.java
index 2e86509..72b9a57 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/ResourcePath.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/Resource.java
@@ -29,10 +29,10 @@
import static com.google.common.base.Preconditions.checkState;
/**
- * An object that is used to locate a resource in a network.
- * A ResourcePath represents a path that is hierarchical and composed of a sequence
- * of elementary resources that are not globally identifiable. A ResourcePath can be a globally
- * unique resource identifier.
+ * 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
+ * composed of a sequence of elementary resources that are not globally identifiable. A Resource
+ * can be globally identifiable by its ID.
*
* Two types of resource are considered. One is discrete type and the other is continuous type.
* Discrete type resource is a resource whose amount is measured as a discrete unit. VLAN ID and
@@ -41,18 +41,18 @@
* A double value is associated with a continuous type value.
*
* Users of this class must keep the semantics of resources regarding the hierarchical structure.
- * For example, resource path, Device:1/Port:1/VLAN ID:100, is valid, but resource path,
+ * For example, resource, Device:1/Port:1/VLAN ID:100, is valid, but resource,
* VLAN ID:100/Device:1/Port:1 is not valid because a link is not a sub-component of a VLAN ID.
*/
@Beta
-public abstract class ResourcePath {
+public abstract class Resource {
private final Discrete parent;
private final ResourceId id;
public static final Discrete ROOT = new Discrete();
- public static ResourcePath discrete(DeviceId device) {
+ public static Resource discrete(DeviceId device) {
return new Discrete(ResourceId.of(device));
}
@@ -63,7 +63,7 @@
* @param components following components of the path. The order represents hierarchical structure of the resource.
* @return resource path instance
*/
- public static ResourcePath discrete(DeviceId device, Object... components) {
+ public static Resource discrete(DeviceId device, Object... components) {
return new Discrete(ResourceId.of(device, components));
}
@@ -75,7 +75,7 @@
* @param components following components of the path. The order represents hierarchical structure of the resource.
* @return resource path instance
*/
- public static ResourcePath discrete(DeviceId device, PortNumber port, Object... components) {
+ public static Resource discrete(DeviceId device, PortNumber port, Object... components) {
return new Discrete(ResourceId.of(device, port, components));
}
@@ -87,7 +87,7 @@
* @param components following components of the path. The order represents hierarchical structure of the resource.
* @return resource path instance
*/
- public static ResourcePath continuous(double value, DeviceId device, Object... components) {
+ public static Resource continuous(double value, DeviceId device, Object... components) {
checkArgument(components.length > 0,
"Length of components must be greater thant 0, but " + components.length);
@@ -103,7 +103,7 @@
* @param components following components of the path. The order represents hierarchical structure of the resource.
* @return resource path instance
*/
- public static ResourcePath continuous(double value, DeviceId device, PortNumber port, Object... components) {
+ public static Resource continuous(double value, DeviceId device, PortNumber port, Object... components) {
return new Continuous(ResourceId.of(device, port, components), value);
}
@@ -112,7 +112,7 @@
*
* @param id id of the path
*/
- protected ResourcePath(ResourceId id) {
+ protected Resource(ResourceId id) {
checkNotNull(id);
this.id = id;
@@ -124,7 +124,7 @@
}
// for serialization
- private ResourcePath() {
+ private Resource() {
this.parent = null;
this.id = ResourceId.ROOT;
}
@@ -156,7 +156,7 @@
* @param child child object
* @return a child resource path
*/
- public ResourcePath child(Object child) {
+ public Resource child(Object child) {
checkState(this instanceof Discrete);
return new Discrete(id().child(child));
@@ -170,7 +170,7 @@
* @param value value
* @return a child resource path
*/
- public ResourcePath child(Object child, double value) {
+ public Resource child(Object child, double value) {
checkState(this instanceof Discrete);
return new Continuous(id.child(child), value);
@@ -208,10 +208,10 @@
if (this == obj) {
return true;
}
- if (!(obj instanceof ResourcePath)) {
+ if (!(obj instanceof Resource)) {
return false;
}
- final ResourcePath that = (ResourcePath) obj;
+ final Resource that = (Resource) obj;
return Objects.equals(this.id, that.id);
}
@@ -231,7 +231,7 @@
* </p>
*/
@Beta
- public static final class Discrete extends ResourcePath {
+ public static final class Discrete extends Resource {
private Discrete() {
super();
}
@@ -249,7 +249,7 @@
* implementation only. It is not for resource API user.
*/
@Beta
- public static final class Continuous extends ResourcePath {
+ public static final class Continuous extends Resource {
private final double value;
private Continuous(ResourceId id, double value) {
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/ResourceAdminService.java b/core/api/src/main/java/org/onosproject/net/newresource/ResourceAdminService.java
index 28c429b..ee4b630 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/ResourceAdminService.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/ResourceAdminService.java
@@ -32,7 +32,7 @@
* @return true if registration is successfully done, false otherwise. Registration
* succeeds when each resource is not registered or unallocated.
*/
- default boolean registerResources(ResourcePath... resources) {
+ default boolean registerResources(Resource... resources) {
return registerResources(ImmutableList.copyOf(resources));
}
@@ -43,7 +43,7 @@
* @return true if registration is successfully done, false otherwise. Registration
* succeeds when each resource is not registered or unallocated.
*/
- boolean registerResources(List<ResourcePath> resources);
+ boolean registerResources(List<Resource> resources);
/**
* Unregisters the specified resources.
@@ -52,7 +52,7 @@
* @return true if unregistration is successfully done, false otherwise. Unregistration
* succeeds when each resource is not registered or unallocated.
*/
- default boolean unregisterResources(ResourcePath... resources) {
+ default boolean unregisterResources(Resource... resources) {
return unregisterResources(ImmutableList.copyOf(resources));
}
@@ -63,5 +63,5 @@
* @return true if unregistration is successfully done, false otherwise. Unregistration
* succeeds when each resource is not registered or unallocated.
*/
- boolean unregisterResources(List<ResourcePath> resources);
+ boolean unregisterResources(List<Resource> resources);
}
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/ResourceAllocation.java b/core/api/src/main/java/org/onosproject/net/newresource/ResourceAllocation.java
index 2d68fa5..07976a9 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/ResourceAllocation.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/ResourceAllocation.java
@@ -28,7 +28,7 @@
@Beta
public class ResourceAllocation {
- private final ResourcePath resource;
+ private final Resource resource;
private final ResourceConsumer consumer;
/**
@@ -37,7 +37,7 @@
* @param resource resource of the subject
* @param consumer consumer of this resource
*/
- public ResourceAllocation(ResourcePath resource, ResourceConsumer consumer) {
+ public ResourceAllocation(Resource resource, ResourceConsumer consumer) {
this.resource = checkNotNull(resource);
this.consumer = consumer;
}
@@ -53,7 +53,7 @@
*
* @return the specifier of the resource this allocation uses
*/
- public ResourcePath resource() {
+ public Resource resource() {
return resource;
}
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/ResourceEvent.java b/core/api/src/main/java/org/onosproject/net/newresource/ResourceEvent.java
index 98abf30..c54b505 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/ResourceEvent.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/ResourceEvent.java
@@ -24,7 +24,7 @@
* Describes an event related to a resource.
*/
@Beta
-public final class ResourceEvent extends AbstractEvent<ResourceEvent.Type, ResourcePath> {
+public final class ResourceEvent extends AbstractEvent<ResourceEvent.Type, Resource> {
/**
* Type of resource events.
@@ -48,7 +48,7 @@
* @param type type of resource event
* @param subject subject of resource event
*/
- public ResourceEvent(Type type, ResourcePath subject) {
+ public ResourceEvent(Type type, Resource subject) {
super(checkNotNull(type), checkNotNull(subject));
}
}
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/ResourceService.java b/core/api/src/main/java/org/onosproject/net/newresource/ResourceService.java
index 79a7bba..3076ec9 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/ResourceService.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/ResourceService.java
@@ -38,7 +38,7 @@
* @param resource resource to be allocated
* @return allocation information enclosed by Optional. If the allocation fails, the return value is empty
*/
- default Optional<ResourceAllocation> allocate(ResourceConsumer consumer, ResourcePath resource) {
+ default Optional<ResourceAllocation> allocate(ResourceConsumer consumer, Resource resource) {
checkNotNull(consumer);
checkNotNull(resource);
@@ -65,7 +65,7 @@
* @param resources resources to be allocated
* @return non-empty list of allocation information if succeeded, otherwise empty list
*/
- List<ResourceAllocation> allocate(ResourceConsumer consumer, List<ResourcePath> resources);
+ List<ResourceAllocation> allocate(ResourceConsumer consumer, List<Resource> resources);
/**
* Transactionally allocates the specified resources to the specified user.
@@ -75,7 +75,7 @@
* @param resources resources to be allocated
* @return non-empty list of allocation information if succeeded, otherwise empty list
*/
- default List<ResourceAllocation> allocate(ResourceConsumer consumer, ResourcePath... resources) {
+ default List<ResourceAllocation> allocate(ResourceConsumer consumer, Resource... resources) {
checkNotNull(consumer);
checkNotNull(resources);
@@ -132,18 +132,18 @@
* @return list of allocation information.
* If the resource is not allocated, the return value is an empty list.
*/
- List<ResourceAllocation> getResourceAllocation(ResourcePath resource);
+ List<ResourceAllocation> getResourceAllocation(Resource resource);
/**
* Returns allocated resources being as children of the specified parent and being the specified resource type.
*
- * @param parent parent resource path
+ * @param parent parent resource
* @param cls class to specify a type of resource
* @param <T> type of the resource
* @return non-empty collection of resource allocations if resources are allocated with the subject and type,
* empty collection if no resource is allocated with the subject and type
*/
- <T> Collection<ResourceAllocation> getResourceAllocations(ResourcePath parent, Class<T> cls);
+ <T> Collection<ResourceAllocation> getResourceAllocations(Resource parent, Class<T> cls);
/**
* Returns resources allocated to the specified consumer.
@@ -154,12 +154,12 @@
Collection<ResourceAllocation> getResourceAllocations(ResourceConsumer consumer);
/**
- * Returns resource paths that point available child resources under the specified resource path.
+ * Returns resources that point available child resources under the specified resource.
*
- * @param parent parent resource path
- * @return available resource paths under the specified resource path
+ * @param parent parent resource
+ * @return available resources under the specified resource
*/
- Collection<ResourcePath> getAvailableResources(ResourcePath parent);
+ Collection<Resource> getAvailableResources(Resource parent);
/**
* Returns the availability of the specified resource.
@@ -167,7 +167,7 @@
* @param resource resource to check the availability
* @return true if available, otherwise false
*/
- boolean isAvailable(ResourcePath resource);
+ boolean isAvailable(Resource resource);
// TODO: listener and event mechanism need to be considered
}
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/ResourceStore.java b/core/api/src/main/java/org/onosproject/net/newresource/ResourceStore.java
index b0c24bd..ac30548 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/ResourceStore.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/ResourceStore.java
@@ -36,7 +36,7 @@
* @param resources resources to be registered
* @return true if the registration succeeds, false otherwise
*/
- boolean register(List<ResourcePath> resources);
+ boolean register(List<Resource> resources);
/**
* Unregisters the resources in transactional way.
@@ -47,7 +47,7 @@
* @param resources resources to be unregistered
* @return true if the registration succeeds, false otherwise
*/
- boolean unregister(List<ResourcePath> resources);
+ boolean unregister(List<Resource> resources);
/**
* Allocates the specified resources to the specified consumer in transactional way.
@@ -59,7 +59,7 @@
* @param consumer resource consumer which the resources are allocated to
* @return true if the allocation succeeds, false otherwise.
*/
- boolean allocate(List<ResourcePath> resources, ResourceConsumer consumer);
+ boolean allocate(List<Resource> resources, ResourceConsumer consumer);
/**
* Releases the specified resources allocated to the specified corresponding consumers
@@ -73,7 +73,7 @@
* @param consumers resource consumers to whom the resource allocated to
* @return true if succeeds, otherwise false
*/
- boolean release(List<ResourcePath> resources, List<ResourceConsumer> consumers);
+ boolean release(List<Resource> resources, List<ResourceConsumer> consumers);
/**
* Returns the resource consumers to whom the specified resource is allocated.
@@ -84,7 +84,7 @@
* @return resource consumers who are allocated the resource.
* Returns empty list if there is no such consumer.
*/
- List<ResourceConsumer> getConsumers(ResourcePath resource);
+ List<ResourceConsumer> getConsumers(Resource resource);
/**
* Returns the availability of the specified resource.
@@ -92,7 +92,7 @@
* @param resource resource to check the availability
* @return true if available, otherwise false
*/
- boolean isAvailable(ResourcePath resource);
+ boolean isAvailable(Resource resource);
/**
* Returns a collection of the resources allocated to the specified consumer.
@@ -100,7 +100,7 @@
* @param consumer resource consumer whose allocated resource are searched for
* @return a collection of the resources allocated to the specified consumer
*/
- Collection<ResourcePath> getResources(ResourceConsumer consumer);
+ Collection<Resource> getResources(ResourceConsumer consumer);
/**
* Returns a collection of the child resources of the specified parent.
@@ -108,7 +108,7 @@
* @param parent parent of the resource to be returned
* @return a collection of the child resources of the specified resource
*/
- Collection<ResourcePath> getChildResources(ResourcePath parent);
+ Collection<Resource> getChildResources(Resource parent);
/**
* Returns a collection of the resources which are children of the specified parent and
@@ -120,5 +120,5 @@
* @return a collection of the resources which belongs to the specified subject and
* whose type is the specified class.
*/
- <T> Collection<ResourcePath> getAllocatedResources(ResourcePath parent, Class<T> cls);
+ <T> Collection<Resource> getAllocatedResources(Resource parent, Class<T> cls);
}
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 d21c4b1..a9a8ed2 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(ResourcePath.discrete(D1, P1, VLAN1), IID1);
- ResourceAllocation sameAsAlloc1 = new ResourceAllocation(ResourcePath.discrete(D1, P1, VLAN1), IID1);
- ResourceAllocation alloc2 = new ResourceAllocation(ResourcePath.discrete(D2, P1, VLAN1), IID1);
+ ResourceAllocation alloc1 = new ResourceAllocation(Resource.discrete(D1, P1, VLAN1), IID1);
+ ResourceAllocation sameAsAlloc1 = new ResourceAllocation(Resource.discrete(D1, P1, VLAN1), IID1);
+ ResourceAllocation alloc2 = new ResourceAllocation(Resource.discrete(D2, P1, VLAN1), IID1);
new EqualsTester()
.addEqualityGroup(alloc1, sameAsAlloc1)
diff --git a/core/api/src/test/java/org/onosproject/net/newresource/ResourcePathTest.java b/core/api/src/test/java/org/onosproject/net/newresource/ResourceTest.java
similarity index 62%
rename from core/api/src/test/java/org/onosproject/net/newresource/ResourcePathTest.java
rename to core/api/src/test/java/org/onosproject/net/newresource/ResourceTest.java
index ea7ff5e..dd4432d 100644
--- a/core/api/src/test/java/org/onosproject/net/newresource/ResourcePathTest.java
+++ b/core/api/src/test/java/org/onosproject/net/newresource/ResourceTest.java
@@ -28,7 +28,7 @@
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
-public class ResourcePathTest {
+public class ResourceTest {
private static final DeviceId D1 = DeviceId.deviceId("of:001");
private static final DeviceId D2 = DeviceId.deviceId("of:002");
@@ -39,11 +39,11 @@
@Test
public void testEquals() {
- ResourcePath resource1 = ResourcePath.discrete(D1, P1, VLAN1);
- ResourcePath sameAsResource1 = ResourcePath.discrete(D1, P1, VLAN1);
- ResourcePath resource2 = ResourcePath.discrete(D2, P1, VLAN1);
- ResourcePath resource3 = ResourcePath.continuous(BW1.bps(), D1, P1, BW1);
- ResourcePath sameAsResource3 = ResourcePath.continuous(BW1.bps(), D1, P1, BW1);
+ Resource resource1 = Resource.discrete(D1, P1, VLAN1);
+ Resource sameAsResource1 = Resource.discrete(D1, P1, VLAN1);
+ Resource resource2 = Resource.discrete(D2, P1, VLAN1);
+ Resource resource3 = Resource.continuous(BW1.bps(), D1, P1, BW1);
+ Resource sameAsResource3 = Resource.continuous(BW1.bps(), D1, P1, BW1);
new EqualsTester()
.addEqualityGroup(resource1, sameAsResource1)
@@ -54,19 +54,19 @@
@Test
public void testComponents() {
- ResourcePath port = ResourcePath.discrete(D1, P1);
+ Resource port = Resource.discrete(D1, P1);
assertThat(port.components(), contains(D1, P1));
}
@Test
public void testIdEquality() {
- ResourceId id1 = ResourcePath.discrete(D1, P1, VLAN1).id();
- ResourceId sameAsId1 = ResourcePath.discrete(D1, P1, VLAN1).id();
- ResourceId id2 = ResourcePath.discrete(D2, P1, VLAN1).id();
- ResourceId id3 = ResourcePath.continuous(BW1.bps(), D1, P1, BW1).id();
+ 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(BW1.bps(), D1, P1, BW1).id();
// intentionally set a different value
- ResourceId sameAsId3 = ResourcePath.continuous(BW2.bps(), D1, P1, BW1).id();
+ ResourceId sameAsId3 = Resource.continuous(BW2.bps(), D1, P1, BW1).id();
new EqualsTester()
.addEqualityGroup(id1, sameAsId1)
@@ -76,32 +76,32 @@
@Test
public void testChild() {
- ResourcePath r1 = ResourcePath.discrete(D1).child(P1);
- ResourcePath sameAsR2 = ResourcePath.discrete(D1, P1);
+ Resource r1 = Resource.discrete(D1).child(P1);
+ Resource sameAsR2 = Resource.discrete(D1, P1);
assertThat(r1, is(sameAsR2));
}
@Test
public void testThereIsParent() {
- ResourcePath path = ResourcePath.discrete(D1, P1, VLAN1);
- ResourcePath parent = ResourcePath.discrete(D1, P1);
+ Resource resource = Resource.discrete(D1, P1, VLAN1);
+ Resource parent = Resource.discrete(D1, P1);
- assertThat(path.parent(), is(Optional.of(parent)));
+ assertThat(resource.parent(), is(Optional.of(parent)));
}
@Test
public void testNoParent() {
- ResourcePath path = ResourcePath.discrete(D1);
+ Resource resource = Resource.discrete(D1);
- assertThat(path.parent(), is(Optional.of(ResourcePath.ROOT)));
+ assertThat(resource.parent(), is(Optional.of(Resource.ROOT)));
}
@Test
public void testBase() {
- ResourcePath path = ResourcePath.discrete(D1);
+ Resource resource = Resource.discrete(D1);
- DeviceId child = (DeviceId) path.last();
+ DeviceId child = (DeviceId) resource.last();
assertThat(child, is(D1));
}
}
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 5549918..a9bf1b7 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
@@ -49,7 +49,7 @@
import org.onosproject.net.intent.IntentCompiler;
import org.onosproject.net.intent.IntentExtensionService;
import org.onosproject.net.intent.MplsPathIntent;
-import org.onosproject.net.newresource.ResourcePath;
+import org.onosproject.net.newresource.Resource;
import org.onosproject.net.newresource.ResourceService;
import org.onosproject.net.resource.link.LinkResourceAllocations;
import org.slf4j.Logger;
@@ -123,10 +123,10 @@
// for short term solution: same label is used for both directions
// TODO: introduce the concept of Tx and Rx resources of a port
- Set<ResourcePath> resources = labels.entrySet().stream()
+ Set<Resource> resources = labels.entrySet().stream()
.flatMap(x -> Stream.of(
- ResourcePath.discrete(x.getKey().src().deviceId(), x.getKey().src().port(), x.getValue()),
- ResourcePath.discrete(x.getKey().dst().deviceId(), x.getKey().dst().port(), x.getValue())
+ Resource.discrete(x.getKey().src().deviceId(), x.getKey().src().port(), x.getValue()),
+ Resource.discrete(x.getKey().dst().deviceId(), x.getKey().dst().port(), x.getValue())
))
.collect(Collectors.toSet());
List<org.onosproject.net.newresource.ResourceAllocation> allocations =
@@ -154,7 +154,7 @@
}
private Set<MplsLabel> findMplsLabel(ConnectPoint cp) {
- return resourceService.getAvailableResources(ResourcePath.discrete(cp.deviceId(), cp.port())).stream()
+ return resourceService.getAvailableResources(Resource.discrete(cp.deviceId(), cp.port())).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 2c547ea..9bcd7a9 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
@@ -50,7 +50,7 @@
import org.onosproject.net.intent.OpticalConnectivityIntent;
import org.onosproject.net.intent.impl.IntentCompilationException;
import org.onosproject.net.newresource.ResourceAllocation;
-import org.onosproject.net.newresource.ResourcePath;
+import org.onosproject.net.newresource.Resource;
import org.onosproject.net.newresource.ResourceService;
import org.onosproject.net.resource.device.IntentSetMultimap;
import org.onosproject.net.resource.link.LinkResourceAllocations;
@@ -160,9 +160,9 @@
log.debug("Compiling optical circuit intent between {} and {}", src, dst);
// Reserve OduClt ports
- ResourcePath srcPortPath = ResourcePath.discrete(src.deviceId(), src.port());
- ResourcePath dstPortPath = ResourcePath.discrete(dst.deviceId(), dst.port());
- List<ResourceAllocation> allocation = resourceService.allocate(intent.id(), srcPortPath, dstPortPath);
+ Resource srcPortResource = Resource.discrete(src.deviceId(), src.port());
+ Resource dstPortResource = Resource.discrete(dst.deviceId(), dst.port());
+ List<ResourceAllocation> allocation = resourceService.allocate(intent.id(), srcPortResource, dstPortResource);
if (allocation.isEmpty()) {
throw new IntentCompilationException("Unable to reserve ports for intent " + intent);
}
@@ -312,7 +312,7 @@
if (ochCP != null) {
OchPort ochPort = (OchPort) deviceService.getPort(ochCP.deviceId(), ochCP.port());
Optional<IntentId> intentId =
- resourceService.getResourceAllocation(ResourcePath.discrete(ochCP.deviceId(), ochCP.port()))
+ resourceService.getResourceAllocation(Resource.discrete(ochCP.deviceId(), ochCP.port()))
.stream()
.map(ResourceAllocation::consumer)
.filter(x -> x instanceof IntentId)
@@ -333,7 +333,7 @@
}
Optional<IntentId> intentId =
- resourceService.getResourceAllocation(ResourcePath.discrete(oduPort.deviceId(), port.number()))
+ resourceService.getResourceAllocation(Resource.discrete(oduPort.deviceId(), port.number()))
.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 2d4545c..44d0894 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
@@ -44,7 +44,7 @@
import org.onosproject.net.intent.OpticalPathIntent;
import org.onosproject.net.intent.impl.IntentCompilationException;
import org.onosproject.net.newresource.ResourceAllocation;
-import org.onosproject.net.newresource.ResourcePath;
+import org.onosproject.net.newresource.Resource;
import org.onosproject.net.newresource.ResourceService;
import org.onosproject.net.resource.link.LinkResourceAllocations;
import org.onosproject.net.topology.LinkWeight;
@@ -109,10 +109,10 @@
log.debug("Compiling optical connectivity intent between {} and {}", src, dst);
// Reserve OCh ports
- ResourcePath srcPortPath = ResourcePath.discrete(src.deviceId(), src.port());
- ResourcePath dstPortPath = ResourcePath.discrete(dst.deviceId(), dst.port());
+ Resource srcPortResource = Resource.discrete(src.deviceId(), src.port());
+ Resource dstPortResource = Resource.discrete(dst.deviceId(), dst.port());
List<org.onosproject.net.newresource.ResourceAllocation> allocation =
- resourceService.allocate(intent.id(), srcPortPath, dstPortPath);
+ resourceService.allocate(intent.id(), srcPortResource, dstPortResource);
if (allocation.isEmpty()) {
throw new IntentCompilationException("Unable to reserve ports for intent " + intent);
}
@@ -182,10 +182,10 @@
}
List<OchSignal> minLambda = findFirstLambda(lambdas, slotCount());
- List<ResourcePath> lambdaResources = path.links().stream()
+ List<Resource> lambdaResources = path.links().stream()
.flatMap(x -> Stream.of(
- ResourcePath.discrete(x.src().deviceId(), x.src().port()),
- ResourcePath.discrete(x.dst().deviceId(), x.dst().port())
+ Resource.discrete(x.src().deviceId(), x.src().port()),
+ Resource.discrete(x.dst().deviceId(), x.dst().port())
))
.flatMap(x -> minLambda.stream().map(l -> x.child(l)))
.collect(Collectors.toList());
@@ -214,8 +214,8 @@
private Set<OchSignal> findCommonLambdasOverLinks(List<Link> links) {
return links.stream()
.flatMap(x -> Stream.of(
- ResourcePath.discrete(x.src().deviceId(), x.src().port()),
- ResourcePath.discrete(x.dst().deviceId(), x.dst().port())
+ Resource.discrete(x.src().deviceId(), x.src().port()),
+ Resource.discrete(x.dst().deviceId(), x.dst().port())
))
.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 ffced6c..ec7cfd7 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
@@ -44,7 +44,7 @@
import org.onosproject.net.intent.PathIntent;
import org.onosproject.net.intent.constraint.EncapsulationConstraint;
import org.onosproject.net.intent.impl.IntentCompilationException;
-import org.onosproject.net.newresource.ResourcePath;
+import org.onosproject.net.newresource.Resource;
import org.onosproject.net.newresource.ResourceService;
import org.onosproject.net.resource.link.LinkResourceAllocations;
import org.slf4j.Logger;
@@ -250,10 +250,10 @@
}
//same VLANID is used for both directions
- Set<ResourcePath> resources = vlanIds.entrySet().stream()
+ Set<Resource> resources = vlanIds.entrySet().stream()
.flatMap(x -> Stream.of(
- ResourcePath.discrete(x.getKey().src().deviceId(), x.getKey().src().port(), x.getValue()),
- ResourcePath.discrete(x.getKey().dst().deviceId(), x.getKey().dst().port(), x.getValue())
+ Resource.discrete(x.getKey().src().deviceId(), x.getKey().src().port(), x.getValue()),
+ Resource.discrete(x.getKey().dst().deviceId(), x.getKey().dst().port(), x.getValue())
))
.collect(Collectors.toSet());
List<org.onosproject.net.newresource.ResourceAllocation> allocations =
@@ -280,7 +280,7 @@
}
private Set<VlanId> findVlanId(ConnectPoint cp) {
- return resourceService.getAvailableResources(ResourcePath.discrete(cp.deviceId(), cp.port())).stream()
+ return resourceService.getAvailableResources(Resource.discrete(cp.deviceId(), cp.port())).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 b9b11dc..0b793a9 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
@@ -35,7 +35,7 @@
import org.onosproject.net.driver.DriverHandler;
import org.onosproject.net.driver.DriverService;
import org.onosproject.net.newresource.ResourceAdminService;
-import org.onosproject.net.newresource.ResourcePath;
+import org.onosproject.net.newresource.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -108,15 +108,15 @@
}
private void registerDeviceResource(Device device) {
- executor.submit(() -> adminService.registerResources(ResourcePath.discrete(device.id())));
+ executor.submit(() -> adminService.registerResources(Resource.discrete(device.id())));
}
private void unregisterDeviceResource(Device device) {
- executor.submit(() -> adminService.unregisterResources(ResourcePath.discrete(device.id())));
+ executor.submit(() -> adminService.unregisterResources(Resource.discrete(device.id())));
}
private void registerPortResource(Device device, Port port) {
- ResourcePath portPath = ResourcePath.discrete(device.id(), port.number());
+ Resource portPath = Resource.discrete(device.id(), port.number());
executor.submit(() -> {
adminService.registerResources(portPath);
@@ -155,7 +155,7 @@
}
private void unregisterPortResource(Device device, Port port) {
- ResourcePath resource = ResourcePath.discrete(device.id(), port.number());
+ Resource resource = Resource.discrete(device.id(), port.number());
executor.submit(() -> adminService.unregisterResources(resource));
}
diff --git a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceManager.java b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceManager.java
index eaf4b59..96466d5 100644
--- a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceManager.java
+++ b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceManager.java
@@ -31,7 +31,7 @@
import org.onosproject.net.newresource.ResourceEvent;
import org.onosproject.net.newresource.ResourceListener;
import org.onosproject.net.newresource.ResourceService;
-import org.onosproject.net.newresource.ResourcePath;
+import org.onosproject.net.newresource.Resource;
import org.onosproject.net.newresource.ResourceStore;
import org.onosproject.net.newresource.ResourceStoreDelegate;
@@ -69,7 +69,7 @@
@Override
public List<ResourceAllocation> allocate(ResourceConsumer consumer,
- List<ResourcePath> resources) {
+ List<Resource> resources) {
checkNotNull(consumer);
checkNotNull(resources);
@@ -87,7 +87,7 @@
public boolean release(List<ResourceAllocation> allocations) {
checkNotNull(allocations);
- List<ResourcePath> resources = allocations.stream()
+ List<Resource> resources = allocations.stream()
.map(ResourceAllocation::resource)
.collect(Collectors.toList());
List<ResourceConsumer> consumers = allocations.stream()
@@ -106,7 +106,7 @@
}
@Override
- public List<ResourceAllocation> getResourceAllocation(ResourcePath resource) {
+ public List<ResourceAllocation> getResourceAllocation(Resource resource) {
checkNotNull(resource);
List<ResourceConsumer> consumers = store.getConsumers(resource);
@@ -116,12 +116,12 @@
}
@Override
- public <T> Collection<ResourceAllocation> getResourceAllocations(ResourcePath parent, Class<T> cls) {
+ public <T> Collection<ResourceAllocation> getResourceAllocations(Resource parent, Class<T> cls) {
checkNotNull(parent);
checkNotNull(cls);
// We access store twice in this method, then the store may be updated by others
- Collection<ResourcePath> resources = store.getAllocatedResources(parent, cls);
+ Collection<Resource> resources = store.getAllocatedResources(parent, cls);
return resources.stream()
.flatMap(resource -> store.getConsumers(resource).stream()
.map(consumer -> new ResourceAllocation(resource, consumer)))
@@ -132,17 +132,17 @@
public Collection<ResourceAllocation> getResourceAllocations(ResourceConsumer consumer) {
checkNotNull(consumer);
- Collection<ResourcePath> resources = store.getResources(consumer);
+ Collection<Resource> resources = store.getResources(consumer);
return resources.stream()
.map(x -> new ResourceAllocation(x, consumer))
.collect(Collectors.toList());
}
@Override
- public Collection<ResourcePath> getAvailableResources(ResourcePath parent) {
+ public Collection<Resource> getAvailableResources(Resource parent) {
checkNotNull(parent);
- Collection<ResourcePath> children = store.getChildResources(parent);
+ Collection<Resource> children = store.getChildResources(parent);
return children.stream()
// We access store twice in this method, then the store may be updated by others
.filter(store::isAvailable)
@@ -150,21 +150,21 @@
}
@Override
- public boolean isAvailable(ResourcePath resource) {
+ public boolean isAvailable(Resource resource) {
checkNotNull(resource);
return store.isAvailable(resource);
}
@Override
- public boolean registerResources(List<ResourcePath> resources) {
+ public boolean registerResources(List<Resource> resources) {
checkNotNull(resources);
return store.register(resources);
}
@Override
- public boolean unregisterResources(List<ResourcePath> resources) {
+ public boolean unregisterResources(List<Resource> resources) {
checkNotNull(resources);
return store.unregister(resources);
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 7cee0d0..480e6e4 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.ResourcePath;
+import org.onosproject.net.newresource.Resource;
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,
- ResourcePath.discrete(DeviceId.deviceId("a"), PortNumber.portNumber(1)));
+ Resource.discrete(DeviceId.deviceId("a"), PortNumber.portNumber(1)));
resourceListener.event(event);
assertThat(
diff --git a/core/net/src/test/java/org/onosproject/net/intent/impl/compiler/MockResourceService.java b/core/net/src/test/java/org/onosproject/net/intent/impl/compiler/MockResourceService.java
index 866c513..16c3c9b 100644
--- a/core/net/src/test/java/org/onosproject/net/intent/impl/compiler/MockResourceService.java
+++ b/core/net/src/test/java/org/onosproject/net/intent/impl/compiler/MockResourceService.java
@@ -21,7 +21,7 @@
import org.onosproject.net.newresource.ResourceAllocation;
import org.onosproject.net.newresource.ResourceConsumer;
import org.onosproject.net.newresource.ResourceListener;
-import org.onosproject.net.newresource.ResourcePath;
+import org.onosproject.net.newresource.Resource;
import org.onosproject.net.newresource.ResourceService;
import java.util.Collection;
@@ -34,10 +34,10 @@
class MockResourceService implements ResourceService {
- private final Map<ResourcePath, ResourceConsumer> assignment = new HashMap<>();
+ private final Map<Resource, ResourceConsumer> assignment = new HashMap<>();
@Override
- public List<ResourceAllocation> allocate(ResourceConsumer consumer, List<ResourcePath> resources) {
+ public List<ResourceAllocation> allocate(ResourceConsumer consumer, List<Resource> resources) {
assignment.putAll(
resources.stream().collect(Collectors.toMap(x -> x, x -> consumer))
);
@@ -56,7 +56,7 @@
@Override
public boolean release(ResourceConsumer consumer) {
- List<ResourcePath> resources = assignment.entrySet().stream()
+ List<Resource> resources = assignment.entrySet().stream()
.filter(x -> x.getValue().equals(consumer))
.map(Map.Entry::getKey)
.collect(Collectors.toList());
@@ -68,14 +68,14 @@
}
@Override
- public List<ResourceAllocation> getResourceAllocation(ResourcePath resource) {
+ public List<ResourceAllocation> getResourceAllocation(Resource resource) {
return Optional.ofNullable(assignment.get(resource))
.map(x -> ImmutableList.of(new ResourceAllocation(resource, x)))
.orElse(ImmutableList.of());
}
@Override
- public <T> Collection<ResourceAllocation> getResourceAllocations(ResourcePath parent, Class<T> cls) {
+ public <T> Collection<ResourceAllocation> getResourceAllocations(Resource parent, Class<T> cls) {
return assignment.entrySet().stream()
.filter(x -> x.getKey().parent().isPresent())
.filter(x -> x.getKey().parent().get().equals(parent))
@@ -92,16 +92,16 @@
}
@Override
- public Collection<ResourcePath> getAvailableResources(ResourcePath parent) {
+ public Collection<Resource> getAvailableResources(Resource parent) {
- Collection<ResourcePath> resources = new HashSet<ResourcePath>();
+ Collection<Resource> resources = new HashSet<Resource>();
resources.add(parent.child(VlanId.vlanId((short) 10)));
resources.add(parent.child(MplsLabel.mplsLabel(10)));
return ImmutableList.copyOf(resources);
}
@Override
- public boolean isAvailable(ResourcePath resource) {
+ public boolean isAvailable(Resource resource) {
return true;
}
diff --git a/core/store/dist/src/main/java/org/onosproject/store/newresource/impl/ConsistentResourceStore.java b/core/store/dist/src/main/java/org/onosproject/store/newresource/impl/ConsistentResourceStore.java
index 7339b16..6b1443d 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/newresource/impl/ConsistentResourceStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/newresource/impl/ConsistentResourceStore.java
@@ -29,7 +29,7 @@
import org.onosproject.net.newresource.ResourceConsumer;
import org.onosproject.net.newresource.ResourceEvent;
import org.onosproject.net.newresource.ResourceId;
-import org.onosproject.net.newresource.ResourcePath;
+import org.onosproject.net.newresource.Resource;
import org.onosproject.net.newresource.ResourceStore;
import org.onosproject.net.newresource.ResourceStoreDelegate;
import org.onosproject.store.AbstractStore;
@@ -84,13 +84,13 @@
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
protected StorageService service;
- private ConsistentMap<ResourcePath.Discrete, ResourceConsumer> discreteConsumers;
+ private ConsistentMap<Resource.Discrete, ResourceConsumer> discreteConsumers;
private ConsistentMap<ResourceId, ContinuousResourceAllocation> continuousConsumers;
- private ConsistentMap<ResourcePath.Discrete, Set<ResourcePath>> childMap;
+ private ConsistentMap<Resource.Discrete, Set<Resource>> childMap;
@Activate
public void activate() {
- discreteConsumers = service.<ResourcePath.Discrete, ResourceConsumer>consistentMapBuilder()
+ discreteConsumers = service.<Resource.Discrete, ResourceConsumer>consistentMapBuilder()
.withName(DISCRETE_CONSUMER_MAP)
.withSerializer(SERIALIZER)
.build();
@@ -98,29 +98,29 @@
.withName(CONTINUOUS_CONSUMER_MAP)
.withSerializer(SERIALIZER)
.build();
- childMap = service.<ResourcePath.Discrete, Set<ResourcePath>>consistentMapBuilder()
+ childMap = service.<Resource.Discrete, Set<Resource>>consistentMapBuilder()
.withName(CHILD_MAP)
.withSerializer(SERIALIZER)
.build();
- Tools.retryable(() -> childMap.put(ResourcePath.ROOT, new LinkedHashSet<>()),
+ Tools.retryable(() -> childMap.put(Resource.ROOT, new LinkedHashSet<>()),
ConsistentMapException.class, MAX_RETRIES, RETRY_DELAY);
log.info("Started");
}
@Override
- public List<ResourceConsumer> getConsumers(ResourcePath resource) {
+ public List<ResourceConsumer> getConsumers(Resource resource) {
checkNotNull(resource);
- checkArgument(resource instanceof ResourcePath.Discrete || resource instanceof ResourcePath.Continuous);
+ checkArgument(resource instanceof Resource.Discrete || resource instanceof Resource.Continuous);
- if (resource instanceof ResourcePath.Discrete) {
- return getConsumer((ResourcePath.Discrete) resource);
+ if (resource instanceof Resource.Discrete) {
+ return getConsumer((Resource.Discrete) resource);
} else {
- return getConsumer((ResourcePath.Continuous) resource);
+ return getConsumer((Resource.Continuous) resource);
}
}
- private List<ResourceConsumer> getConsumer(ResourcePath.Discrete resource) {
+ private List<ResourceConsumer> getConsumer(Resource.Discrete resource) {
Versioned<ResourceConsumer> consumer = discreteConsumers.get(resource);
if (consumer == null) {
return ImmutableList.of();
@@ -129,7 +129,7 @@
return ImmutableList.of(consumer.value());
}
- private List<ResourceConsumer> getConsumer(ResourcePath.Continuous resource) {
+ private List<ResourceConsumer> getConsumer(Resource.Continuous resource) {
Versioned<ContinuousResourceAllocation> allocations = continuousConsumers.get(resource.id());
if (allocations == null) {
return ImmutableList.of();
@@ -142,21 +142,21 @@
}
@Override
- public boolean register(List<ResourcePath> resources) {
+ public boolean register(List<Resource> resources) {
checkNotNull(resources);
TransactionContext tx = service.transactionContextBuilder().build();
tx.begin();
- TransactionalMap<ResourcePath.Discrete, Set<ResourcePath>> childTxMap =
+ TransactionalMap<Resource.Discrete, Set<Resource>> childTxMap =
tx.getTransactionalMap(CHILD_MAP, SERIALIZER);
- Map<ResourcePath.Discrete, List<ResourcePath>> resourceMap = resources.stream()
+ Map<Resource.Discrete, List<Resource>> resourceMap = resources.stream()
.filter(x -> x.parent().isPresent())
.collect(Collectors.groupingBy(x -> x.parent().get()));
- for (Map.Entry<ResourcePath.Discrete, List<ResourcePath>> entry: resourceMap.entrySet()) {
- Optional<ResourcePath.Discrete> child = lookup(childTxMap, entry.getKey());
+ for (Map.Entry<Resource.Discrete, List<Resource>> entry: resourceMap.entrySet()) {
+ Optional<Resource.Discrete> child = lookup(childTxMap, entry.getKey());
if (!child.isPresent()) {
return abortTransaction(tx);
}
@@ -178,31 +178,31 @@
}
@Override
- public boolean unregister(List<ResourcePath> resources) {
+ public boolean unregister(List<Resource> resources) {
checkNotNull(resources);
TransactionContext tx = service.transactionContextBuilder().build();
tx.begin();
- TransactionalMap<ResourcePath.Discrete, Set<ResourcePath>> childTxMap =
+ TransactionalMap<Resource.Discrete, Set<Resource>> childTxMap =
tx.getTransactionalMap(CHILD_MAP, SERIALIZER);
- TransactionalMap<ResourcePath.Discrete, ResourceConsumer> discreteConsumerTxMap =
+ TransactionalMap<Resource.Discrete, ResourceConsumer> discreteConsumerTxMap =
tx.getTransactionalMap(DISCRETE_CONSUMER_MAP, SERIALIZER);
TransactionalMap<ResourceId, ContinuousResourceAllocation> continuousConsumerTxMap =
tx.getTransactionalMap(CONTINUOUS_CONSUMER_MAP, SERIALIZER);
// Extract Discrete instances from resources
- Map<ResourcePath.Discrete, List<ResourcePath>> resourceMap = resources.stream()
+ Map<Resource.Discrete, List<Resource>> resourceMap = resources.stream()
.filter(x -> x.parent().isPresent())
.collect(Collectors.groupingBy(x -> x.parent().get()));
// even if one of the resources is allocated to a consumer,
// all unregistrations are regarded as failure
- for (Map.Entry<ResourcePath.Discrete, List<ResourcePath>> entry: resourceMap.entrySet()) {
+ for (Map.Entry<Resource.Discrete, List<Resource>> entry: resourceMap.entrySet()) {
boolean allocated = entry.getValue().stream().anyMatch(x -> {
- if (x instanceof ResourcePath.Discrete) {
- return discreteConsumerTxMap.get((ResourcePath.Discrete) x) != null;
- } else if (x instanceof ResourcePath.Continuous) {
+ if (x instanceof Resource.Discrete) {
+ return discreteConsumerTxMap.get((Resource.Discrete) x) != null;
+ } else if (x instanceof Resource.Continuous) {
ContinuousResourceAllocation allocations = continuousConsumerTxMap.get(x.id());
return allocations != null && !allocations.allocations().isEmpty();
} else {
@@ -230,38 +230,38 @@
}
@Override
- public boolean allocate(List<ResourcePath> resources, ResourceConsumer consumer) {
+ public boolean allocate(List<Resource> resources, ResourceConsumer consumer) {
checkNotNull(resources);
checkNotNull(consumer);
TransactionContext tx = service.transactionContextBuilder().build();
tx.begin();
- TransactionalMap<ResourcePath.Discrete, Set<ResourcePath>> childTxMap =
+ TransactionalMap<Resource.Discrete, Set<Resource>> childTxMap =
tx.getTransactionalMap(CHILD_MAP, SERIALIZER);
- TransactionalMap<ResourcePath.Discrete, ResourceConsumer> discreteConsumerTxMap =
+ TransactionalMap<Resource.Discrete, ResourceConsumer> discreteConsumerTxMap =
tx.getTransactionalMap(DISCRETE_CONSUMER_MAP, SERIALIZER);
TransactionalMap<ResourceId, ContinuousResourceAllocation> continuousConsumerTxMap =
tx.getTransactionalMap(CONTINUOUS_CONSUMER_MAP, SERIALIZER);
- for (ResourcePath resource: resources) {
- if (resource instanceof ResourcePath.Discrete) {
+ for (Resource resource: resources) {
+ if (resource instanceof Resource.Discrete) {
if (!lookup(childTxMap, resource).isPresent()) {
return abortTransaction(tx);
}
- ResourceConsumer oldValue = discreteConsumerTxMap.put((ResourcePath.Discrete) resource, consumer);
+ ResourceConsumer oldValue = discreteConsumerTxMap.put((Resource.Discrete) resource, consumer);
if (oldValue != null) {
return abortTransaction(tx);
}
- } else if (resource instanceof ResourcePath.Continuous) {
- Optional<ResourcePath.Continuous> continuous = lookup(childTxMap, (ResourcePath.Continuous) resource);
+ } else if (resource instanceof Resource.Continuous) {
+ Optional<Resource.Continuous> continuous = lookup(childTxMap, (Resource.Continuous) resource);
if (!continuous.isPresent()) {
return abortTransaction(tx);
}
ContinuousResourceAllocation allocations = continuousConsumerTxMap.get(continuous.get().id());
- if (!hasEnoughResource(continuous.get(), (ResourcePath.Continuous) resource, allocations)) {
+ if (!hasEnoughResource(continuous.get(), (Resource.Continuous) resource, allocations)) {
return abortTransaction(tx);
}
@@ -277,7 +277,7 @@
}
@Override
- public boolean release(List<ResourcePath> resources, List<ResourceConsumer> consumers) {
+ public boolean release(List<Resource> resources, List<ResourceConsumer> consumers) {
checkNotNull(resources);
checkNotNull(consumers);
checkArgument(resources.size() == consumers.size());
@@ -285,29 +285,29 @@
TransactionContext tx = service.transactionContextBuilder().build();
tx.begin();
- TransactionalMap<ResourcePath.Discrete, ResourceConsumer> discreteConsumerTxMap =
+ TransactionalMap<Resource.Discrete, ResourceConsumer> discreteConsumerTxMap =
tx.getTransactionalMap(DISCRETE_CONSUMER_MAP, SERIALIZER);
TransactionalMap<ResourceId, ContinuousResourceAllocation> continuousConsumerTxMap =
tx.getTransactionalMap(CONTINUOUS_CONSUMER_MAP, SERIALIZER);
- Iterator<ResourcePath> resourceIte = resources.iterator();
+ Iterator<Resource> resourceIte = resources.iterator();
Iterator<ResourceConsumer> consumerIte = consumers.iterator();
while (resourceIte.hasNext() && consumerIte.hasNext()) {
- ResourcePath resource = resourceIte.next();
+ Resource resource = resourceIte.next();
ResourceConsumer consumer = consumerIte.next();
- if (resource instanceof ResourcePath.Discrete) {
+ if (resource instanceof Resource.Discrete) {
// if this single release fails (because the resource is allocated to another consumer,
// the whole release fails
- if (!discreteConsumerTxMap.remove((ResourcePath.Discrete) resource, consumer)) {
+ if (!discreteConsumerTxMap.remove((Resource.Discrete) resource, consumer)) {
return abortTransaction(tx);
}
- } else if (resource instanceof ResourcePath.Continuous) {
- ResourcePath.Continuous continuous = (ResourcePath.Continuous) resource;
+ } else if (resource instanceof Resource.Continuous) {
+ Resource.Continuous continuous = (Resource.Continuous) resource;
ContinuousResourceAllocation allocation = continuousConsumerTxMap.get(continuous.id());
ImmutableList<ResourceAllocation> newAllocations = allocation.allocations().stream()
.filter(x -> !(x.consumer().equals(consumer) &&
- ((ResourcePath.Continuous) x.resource()).value() == continuous.value()))
+ ((Resource.Continuous) x.resource()).value() == continuous.value()))
.collect(GuavaCollectors.toImmutableList());
if (!continuousConsumerTxMap.replace(continuous.id(), allocation,
@@ -321,18 +321,18 @@
}
@Override
- public boolean isAvailable(ResourcePath resource) {
+ public boolean isAvailable(Resource resource) {
checkNotNull(resource);
- checkArgument(resource instanceof ResourcePath.Discrete || resource instanceof ResourcePath.Continuous);
+ checkArgument(resource instanceof Resource.Discrete || resource instanceof Resource.Continuous);
- if (resource instanceof ResourcePath.Discrete) {
- return getConsumer((ResourcePath.Discrete) resource).isEmpty();
+ if (resource instanceof Resource.Discrete) {
+ return getConsumer((Resource.Discrete) resource).isEmpty();
} else {
- return isAvailable((ResourcePath.Continuous) resource);
+ return isAvailable((Resource.Continuous) resource);
}
}
- private boolean isAvailable(ResourcePath.Continuous resource) {
+ private boolean isAvailable(Resource.Continuous resource) {
Versioned<ContinuousResourceAllocation> allocation = continuousConsumers.get(resource.id());
if (allocation == null) {
return false;
@@ -342,16 +342,16 @@
}
@Override
- public Collection<ResourcePath> getResources(ResourceConsumer consumer) {
+ public Collection<Resource> getResources(ResourceConsumer consumer) {
checkNotNull(consumer);
// NOTE: getting all entries may become performance bottleneck
// TODO: revisit for better backend data structure
- Stream<ResourcePath.Discrete> discreteStream = discreteConsumers.entrySet().stream()
+ Stream<Resource.Discrete> discreteStream = discreteConsumers.entrySet().stream()
.filter(x -> x.getValue().value().equals(consumer))
.map(Map.Entry::getKey);
- Stream<ResourcePath.Continuous> continuousStream = continuousConsumers.values().stream()
+ Stream<Resource.Continuous> continuousStream = continuousConsumers.values().stream()
.flatMap(x -> x.value().allocations().stream()
.map(y -> Maps.immutableEntry(x.value().original(), y)))
.filter(x -> x.getValue().consumer().equals(consumer))
@@ -361,11 +361,11 @@
}
@Override
- public Collection<ResourcePath> getChildResources(ResourcePath parent) {
+ public Collection<Resource> getChildResources(Resource parent) {
checkNotNull(parent);
- checkArgument(parent instanceof ResourcePath.Discrete);
+ checkArgument(parent instanceof Resource.Discrete);
- Versioned<Set<ResourcePath>> children = childMap.get((ResourcePath.Discrete) parent);
+ Versioned<Set<Resource>> children = childMap.get((Resource.Discrete) parent);
if (children == null) {
return Collections.emptyList();
}
@@ -374,26 +374,26 @@
}
@Override
- public <T> Collection<ResourcePath> getAllocatedResources(ResourcePath parent, Class<T> cls) {
+ public <T> Collection<Resource> getAllocatedResources(Resource parent, Class<T> cls) {
checkNotNull(parent);
checkNotNull(cls);
- checkArgument(parent instanceof ResourcePath.Discrete);
+ checkArgument(parent instanceof Resource.Discrete);
- Versioned<Set<ResourcePath>> children = childMap.get((ResourcePath.Discrete) parent);
+ Versioned<Set<Resource>> children = childMap.get((Resource.Discrete) parent);
if (children == null) {
return Collections.emptyList();
}
- Stream<ResourcePath.Discrete> discrete = children.value().stream()
+ Stream<Resource.Discrete> discrete = children.value().stream()
.filter(x -> x.last().getClass().equals(cls))
- .filter(x -> x instanceof ResourcePath.Discrete)
- .map(x -> (ResourcePath.Discrete) x)
+ .filter(x -> x instanceof Resource.Discrete)
+ .map(x -> (Resource.Discrete) x)
.filter(discreteConsumers::containsKey);
- Stream<ResourcePath.Continuous> continuous = children.value().stream()
+ Stream<Resource.Continuous> continuous = children.value().stream()
.filter(x -> x.last().getClass().equals(cls))
- .filter(x -> x instanceof ResourcePath.Continuous)
- .map(x -> (ResourcePath.Continuous) x)
+ .filter(x -> x instanceof Resource.Continuous)
+ .map(x -> (Resource.Continuous) x)
.filter(x -> continuousConsumers.containsKey(x.id()))
.filter(x -> continuousConsumers.get(x.id()) != null)
.filter(x -> !continuousConsumers.get(x.id()).value().allocations().isEmpty());
@@ -414,7 +414,7 @@
// Appends the specified ResourceAllocation to the existing values stored in the map
private boolean appendValue(TransactionalMap<ResourceId, ContinuousResourceAllocation> map,
- ResourcePath.Continuous original, ResourceAllocation value) {
+ Resource.Continuous original, ResourceAllocation value) {
ContinuousResourceAllocation oldValue = map.putIfAbsent(original.id(),
new ContinuousResourceAllocation(original, ImmutableList.of(value)));
if (oldValue == null) {
@@ -496,14 +496,14 @@
* @return the resource which is regarded as the same as the specified resource
*/
// Naive implementation, which traverses all elements in the list
- private <T extends ResourcePath> Optional<T> lookup(
- TransactionalMap<ResourcePath.Discrete, Set<ResourcePath>> map, T resource) {
+ private <T extends Resource> Optional<T> lookup(
+ TransactionalMap<Resource.Discrete, Set<Resource>> map, T resource) {
// if it is root, always returns itself
if (!resource.parent().isPresent()) {
return Optional.of(resource);
}
- Set<ResourcePath> values = map.get(resource.parent().get());
+ Set<Resource> values = map.get(resource.parent().get());
if (values == null) {
return Optional.empty();
}
@@ -525,17 +525,17 @@
* @param allocation current allocation of the resource
* @return true if there is enough resource volume. Otherwise, false.
*/
- private boolean hasEnoughResource(ResourcePath.Continuous original,
- ResourcePath.Continuous request,
+ private boolean hasEnoughResource(Resource.Continuous original,
+ Resource.Continuous request,
ContinuousResourceAllocation allocation) {
if (allocation == null) {
return request.value() <= original.value();
}
double allocated = allocation.allocations().stream()
- .filter(x -> x.resource() instanceof ResourcePath.Continuous)
- .map(x -> (ResourcePath.Continuous) x.resource())
- .mapToDouble(ResourcePath.Continuous::value)
+ .filter(x -> x.resource() instanceof Resource.Continuous)
+ .map(x -> (Resource.Continuous) x.resource())
+ .mapToDouble(Resource.Continuous::value)
.sum();
double left = original.value() - allocated;
return request.value() <= left;
@@ -543,16 +543,16 @@
// internal use only
private static final class ContinuousResourceAllocation {
- private final ResourcePath.Continuous original;
+ private final Resource.Continuous original;
private final ImmutableList<ResourceAllocation> allocations;
- private ContinuousResourceAllocation(ResourcePath.Continuous original,
+ private ContinuousResourceAllocation(Resource.Continuous original,
ImmutableList<ResourceAllocation> allocations) {
this.original = original;
this.allocations = allocations;
}
- private ResourcePath.Continuous original() {
+ private Resource.Continuous original() {
return original;
}
diff --git a/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java b/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
index c7a236d..44b255e 100644
--- a/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
+++ b/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
@@ -174,7 +174,7 @@
import org.onosproject.net.meter.MeterId;
import org.onosproject.net.newresource.ResourceAllocation;
import org.onosproject.net.newresource.ResourceId;
-import org.onosproject.net.newresource.ResourcePath;
+import org.onosproject.net.newresource.Resource;
import org.onosproject.net.packet.DefaultOutboundPacket;
import org.onosproject.net.packet.DefaultPacketRequest;
import org.onosproject.net.packet.PacketPriority;
@@ -433,9 +433,9 @@
DefaultLinkResourceAllocations.class,
BandwidthResourceAllocation.class,
LambdaResourceAllocation.class,
- ResourcePath.class,
- ResourcePath.Discrete.class,
- ResourcePath.Continuous.class,
+ Resource.class,
+ Resource.Discrete.class,
+ Resource.Continuous.class,
ResourceId.class,
ResourceAllocation.class,
// Constraints
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 9ee9cd9..a986278 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.ResourcePath;
+import org.onosproject.net.newresource.Resource;
import org.onosproject.net.provider.ProviderId;
import org.onosproject.net.resource.link.BandwidthResource;
import org.onosproject.net.resource.link.BandwidthResourceAllocation;
@@ -374,19 +374,19 @@
}
@Test
- public void testResourcePath() {
- testSerializedEquals(ResourcePath.discrete(DID1, P1, VLAN1));
+ public void testResource() {
+ testSerializedEquals(Resource.discrete(DID1, P1, VLAN1));
}
@Test
public void testResourceKey() {
- testSerializedEquals(ResourcePath.discrete(DID1, P1).id());
+ testSerializedEquals(Resource.discrete(DID1, P1).id());
}
@Test
public void testResourceAllocation() {
testSerializedEquals(new org.onosproject.net.newresource.ResourceAllocation(
- ResourcePath.discrete(DID1, P1, VLAN1),
+ Resource.discrete(DID1, P1, VLAN1),
IntentId.valueOf(30)));
}