Use lower bound wildcard for API to be more flexible

Change-Id: Ia6bcec5afb2e872b55bae4bbd9139ad35ce01284
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 d394e1c..d777c81 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
@@ -43,7 +43,7 @@
      * @return true if registration is successfully done, false otherwise. Registration
      * succeeds when each resource is not registered or unallocated.
      */
-    boolean register(List<Resource> resources);
+    boolean register(List<? extends Resource> resources);
 
     /**
      * Unregisters the specified 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 unregister(List<ResourceId> ids);
+    boolean unregister(List<? extends ResourceId> ids);
 }
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 1a2fa2c..c28720c 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
@@ -66,7 +66,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<Resource> resources);
+    List<ResourceAllocation> allocate(ResourceConsumer consumer, List<? extends Resource> resources);
 
     /**
      * Transactionally allocates the specified resources to the specified user.
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 aee72f1..3584fab 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
@@ -37,7 +37,7 @@
      * @param resources resources to be registered
      * @return true if the registration succeeds, false otherwise
      */
-    boolean register(List<Resource> resources);
+    boolean register(List<? extends Resource> resources);
 
     /**
      * Unregisters the resources in transactional way.
@@ -48,7 +48,7 @@
      * @param ids resources to be unregistered
      * @return true if the registration succeeds, false otherwise
      */
-    boolean unregister(List<ResourceId> ids);
+    boolean unregister(List<? extends ResourceId> ids);
 
     /**
      * Allocates the specified resources to the specified consumer in transactional way.
@@ -60,7 +60,7 @@
      * @param consumer resource consumer which the resources are allocated to
      * @return true if the allocation succeeds, false otherwise.
      */
-    boolean allocate(List<Resource> resources, ResourceConsumer consumer);
+    boolean allocate(List<? extends Resource> resources, ResourceConsumer consumer);
 
     /**
      * Releases the specified resources allocated to the specified corresponding consumers
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 878f202..bbc8678 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
@@ -80,7 +80,7 @@
 
     @Override
     public List<ResourceAllocation> allocate(ResourceConsumer consumer,
-                                             List<Resource> resources) {
+                                             List<? extends Resource> resources) {
         checkNotNull(consumer);
         checkNotNull(resources);
 
@@ -171,14 +171,14 @@
     }
 
     @Override
-    public boolean register(List<Resource> resources) {
+    public boolean register(List<? extends Resource> resources) {
         checkNotNull(resources);
 
         return store.register(resources);
     }
 
     @Override
-    public boolean unregister(List<ResourceId> ids) {
+    public boolean unregister(List<? extends ResourceId> ids) {
         checkNotNull(ids);
 
         return store.unregister(ids);
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 4083f5b..b3ad768 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
@@ -44,7 +44,7 @@
     private final Map<Resource, ResourceConsumer> assignment = new HashMap<>();
 
     @Override
-    public List<ResourceAllocation> allocate(ResourceConsumer consumer, List<Resource> resources) {
+    public List<ResourceAllocation> allocate(ResourceConsumer consumer, List<? extends Resource> resources) {
         assignment.putAll(
                 resources.stream().collect(Collectors.toMap(x -> x, x -> consumer))
         );
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 c7a180a..397bcc6 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
@@ -151,7 +151,7 @@
     }
 
     @Override
-    public boolean register(List<Resource> resources) {
+    public boolean register(List<? extends Resource> resources) {
         checkNotNull(resources);
         if (log.isTraceEnabled()) {
             resources.forEach(r -> log.trace("registering {}", r));
@@ -190,7 +190,7 @@
     }
 
     @Override
-    public boolean unregister(List<ResourceId> ids) {
+    public boolean unregister(List<? extends ResourceId> ids) {
         checkNotNull(ids);
 
         TransactionContext tx = service.transactionContextBuilder().build();
@@ -254,7 +254,7 @@
     }
 
     @Override
-    public boolean allocate(List<Resource> resources, ResourceConsumer consumer) {
+    public boolean allocate(List<? extends Resource> resources, ResourceConsumer consumer) {
         checkNotNull(resources);
         checkNotNull(consumer);