Removed deprecated IntentStore#batchWrite() API.

Also javadoc fixes.

Change-Id: I4ccd109a22189f4762afec15a719e42a3b9e4f7b
This commit is contained in:
Jonathan Hart 2015-02-12 11:44:03 -08:00 committed by Brian O'Connor
parent 8010bb48a6
commit 2085e0751a
6 changed files with 32 additions and 178 deletions

View File

@ -15,7 +15,6 @@
*/ */
package org.onosproject.net.intent; package org.onosproject.net.intent;
import org.onosproject.net.intent.BatchWrite.Operation;
import org.onosproject.store.Store; import org.onosproject.store.Store;
import java.util.List; import java.util.List;
@ -61,16 +60,18 @@ public interface IntentStore extends Store<IntentEvent, IntentStoreDelegate> {
} }
/** /**
* Execute writes in a batch. * Writes an IntentData object to the store.
* If the specified BatchWrite is empty, write will not be executed.
* *
* @param batch BatchWrite to execute * @param newData new intent data to write
* @return failed operations
*/ */
@Deprecated
List<Operation> batchWrite(BatchWrite batch);
default void write(IntentData newData) {} default void write(IntentData newData) {}
/**
* Writes a batch of IntentData objects to the store. A batch has no
* semantics, this is simply a convenience API.
*
* @param updates collection of intent data objects to write
*/
default void batchWrite(Iterable<IntentData> updates) {} default void batchWrite(Iterable<IntentData> updates) {}
/** /**

View File

@ -22,7 +22,6 @@ import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader; import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache; import com.google.common.cache.LoadingCache;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
import org.apache.felix.scr.annotations.Activate; import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Deactivate; import org.apache.felix.scr.annotations.Deactivate;
@ -32,8 +31,6 @@ import org.apache.felix.scr.annotations.Service;
import org.onlab.metrics.MetricsService; import org.onlab.metrics.MetricsService;
import org.onlab.util.KryoNamespace; import org.onlab.util.KryoNamespace;
import org.onosproject.core.MetricsHelper; import org.onosproject.core.MetricsHelper;
import org.onosproject.net.intent.BatchWrite;
import org.onosproject.net.intent.BatchWrite.Operation;
import org.onosproject.net.intent.Intent; import org.onosproject.net.intent.Intent;
import org.onosproject.net.intent.IntentEvent; import org.onosproject.net.intent.IntentEvent;
import org.onosproject.net.intent.IntentId; import org.onosproject.net.intent.IntentId;
@ -45,24 +42,17 @@ import org.onosproject.store.AbstractStore;
import org.onosproject.store.serializers.KryoNamespaces; import org.onosproject.store.serializers.KryoNamespaces;
import org.onosproject.store.serializers.KryoSerializer; import org.onosproject.store.serializers.KryoSerializer;
import org.onosproject.store.serializers.StoreSerializer; import org.onosproject.store.serializers.StoreSerializer;
import org.onosproject.store.service.BatchWriteRequest;
import org.onosproject.store.service.BatchWriteRequest.Builder;
import org.onosproject.store.service.BatchWriteResult;
import org.onosproject.store.service.DatabaseAdminService; import org.onosproject.store.service.DatabaseAdminService;
import org.onosproject.store.service.DatabaseService; import org.onosproject.store.service.DatabaseService;
import org.onosproject.store.service.impl.CMap; import org.onosproject.store.service.impl.CMap;
import org.slf4j.Logger; import org.slf4j.Logger;
import java.util.ArrayList;
import java.util.Collections;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import static com.google.common.base.Preconditions.checkArgument;
import static org.onlab.metrics.MetricsUtil.startTimer; import static org.onlab.metrics.MetricsUtil.startTimer;
import static org.onlab.metrics.MetricsUtil.stopTimer; import static org.onlab.metrics.MetricsUtil.stopTimer;
import static org.onosproject.net.intent.IntentState.FAILED; import static org.onosproject.net.intent.IntentState.FAILED;
@ -292,7 +282,7 @@ public class DistributedIntentStore
} }
} }
@Override /*@Override
public List<Operation> batchWrite(BatchWrite batch) { public List<Operation> batchWrite(BatchWrite batch) {
if (batch.isEmpty()) { if (batch.isEmpty()) {
return Collections.emptyList(); return Collections.emptyList();
@ -370,5 +360,5 @@ public class DistributedIntentStore
// everything failed // everything failed
return batch.operations(); return batch.operations();
} }
} }*/
} }

View File

@ -23,7 +23,6 @@ import org.apache.felix.scr.annotations.ReferenceCardinality;
import org.apache.felix.scr.annotations.Service; import org.apache.felix.scr.annotations.Service;
import org.onlab.util.KryoNamespace; import org.onlab.util.KryoNamespace;
import org.onosproject.cluster.ClusterService; import org.onosproject.cluster.ClusterService;
import org.onosproject.net.intent.BatchWrite;
import org.onosproject.net.intent.Intent; import org.onosproject.net.intent.Intent;
import org.onosproject.net.intent.IntentData; import org.onosproject.net.intent.IntentData;
import org.onosproject.net.intent.IntentEvent; import org.onosproject.net.intent.IntentEvent;
@ -45,11 +44,7 @@ import org.slf4j.Logger;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.onosproject.net.intent.IntentState.FAILED; import static org.onosproject.net.intent.IntentState.*;
import static org.onosproject.net.intent.IntentState.INSTALLED;
import static org.onosproject.net.intent.IntentState.INSTALLING;
import static org.onosproject.net.intent.IntentState.WITHDRAWING;
import static org.onosproject.net.intent.IntentState.WITHDRAWN;
import static org.slf4j.LoggerFactory.getLogger; import static org.slf4j.LoggerFactory.getLogger;
/** /**
@ -143,12 +138,6 @@ public class GossipIntentStore
return null; return null;
} }
@Override
public List<BatchWrite.Operation> batchWrite(BatchWrite batch) {
// Deprecated
return null;
}
private IntentData copyData(IntentData original) { private IntentData copyData(IntentData original) {
if (original == null) { if (original == null) {
return null; return null;
@ -163,10 +152,13 @@ public class GossipIntentStore
} }
/** /**
* TODO. * Determines whether an intent data update is allowed. The update must
* @param currentData * either have a higher version than the current data, or the state
* @param newData * transition between two updates of the same version must be sane.
* @return *
* @param currentData existing intent data in the store
* @param newData new intent data update proposal
* @return true if we can apply the update, otherwise false
*/ */
private boolean isUpdateAcceptable(IntentData currentData, IntentData newData) { private boolean isUpdateAcceptable(IntentData currentData, IntentData newData) {

View File

@ -20,7 +20,6 @@ import com.codahale.metrics.Timer.Context;
import com.google.common.base.Verify; import com.google.common.base.Verify;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
import com.hazelcast.config.Config; import com.hazelcast.config.Config;
import com.hazelcast.config.MapConfig; import com.hazelcast.config.MapConfig;
import com.hazelcast.core.EntryAdapter; import com.hazelcast.core.EntryAdapter;
@ -53,8 +52,6 @@ import org.onosproject.store.serializers.KryoNamespaces;
import org.onosproject.store.serializers.KryoSerializer; import org.onosproject.store.serializers.KryoSerializer;
import org.slf4j.Logger; import org.slf4j.Logger;
import java.util.ArrayList;
import java.util.Collections;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -66,7 +63,10 @@ import java.util.concurrent.Future;
import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import static org.onlab.metrics.MetricsUtil.startTimer; import static org.onlab.metrics.MetricsUtil.startTimer;
import static org.onlab.metrics.MetricsUtil.stopTimer; import static org.onlab.metrics.MetricsUtil.stopTimer;
import static org.onosproject.net.intent.IntentState.*; import static org.onosproject.net.intent.IntentState.FAILED;
import static org.onosproject.net.intent.IntentState.INSTALLED;
import static org.onosproject.net.intent.IntentState.INSTALL_REQ;
import static org.onosproject.net.intent.IntentState.WITHDRAWN;
import static org.slf4j.LoggerFactory.getLogger; import static org.slf4j.LoggerFactory.getLogger;
//TODO Note: this store will be removed //TODO Note: this store will be removed
@ -277,7 +277,7 @@ public class HazelcastIntentStore
*/ */
} }
@Override /*@Override
public List<Operation> batchWrite(BatchWrite batch) { public List<Operation> batchWrite(BatchWrite batch) {
if (batch.isEmpty()) { if (batch.isEmpty()) {
return Collections.emptyList(); return Collections.emptyList();
@ -297,7 +297,7 @@ public class HazelcastIntentStore
notifyDelegate(events); notifyDelegate(events);
return failed; return failed;
} }*/
private void batchWriteAsync(BatchWrite batch, List<Operation> failed, private void batchWriteAsync(BatchWrite batch, List<Operation> failed,
List<Pair<Operation, List<Future<?>>>> futures) { List<Pair<Operation, List<Future<?>>>> futures) {

View File

@ -20,8 +20,6 @@ import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Deactivate; import org.apache.felix.scr.annotations.Deactivate;
import org.apache.felix.scr.annotations.Service; import org.apache.felix.scr.annotations.Service;
import org.onosproject.net.intent.BatchWrite;
import org.onosproject.net.intent.BatchWrite.Operation;
import org.onosproject.net.intent.Intent; import org.onosproject.net.intent.Intent;
import org.onosproject.net.intent.IntentData; import org.onosproject.net.intent.IntentData;
import org.onosproject.net.intent.IntentEvent; import org.onosproject.net.intent.IntentEvent;
@ -110,76 +108,15 @@ public class SimpleIntentStore
*/ */
} }
/*
* Execute writes in a batch.
*
* @param batch BatchWrite to execute
* @return failed operations
*/
@Override
public List<Operation> batchWrite(BatchWrite batch) {
throw new UnsupportedOperationException("deprecated");
/*
if (batch.isEmpty()) {
return Collections.emptyList();
}
List<Operation> failed = Lists.newArrayList();
for (Operation op : batch.operations()) {
switch (op.type()) {
case CREATE_INTENT:
checkArgument(op.args().size() == 1,
"CREATE_INTENT takes 1 argument. %s", op);
Intent intent = (Intent) op.args().get(0);
// TODO: what if it failed?
// createIntent(intent); FIXME
break;
case REMOVE_INTENT:
checkArgument(op.args().size() == 1,
"REMOVE_INTENT takes 1 argument. %s", op);
IntentId intentId = (IntentId) op.args().get(0);
// removeIntent(intentId); FIXME
break;
case REMOVE_INSTALLED:
checkArgument(op.args().size() == 1,
"REMOVE_INSTALLED takes 1 argument. %s", op);
intentId = (IntentId) op.args().get(0);
removeInstalledIntents(intentId);
break;
case SET_INSTALLABLE:
checkArgument(op.args().size() == 2,
"SET_INSTALLABLE takes 2 arguments. %s", op);
intentId = (IntentId) op.args().get(0);
@SuppressWarnings("unchecked")
List<Intent> installableIntents = (List<Intent>) op.args().get(1);
setInstallableIntents(intentId, installableIntents);
break;
case SET_STATE:
checkArgument(op.args().size() == 2,
"SET_STATE takes 2 arguments. %s", op);
intent = (Intent) op.args().get(0);
IntentState newState = (IntentState) op.args().get(1);
setState(intent, newState);
break;
default:
break;
}
}
return failed;
*/
}
/** /**
* TODO. * Determines whether an intent data update is allowed. The update must
* @param currentData * either have a higher version than the current data, or the state
* @param newData * transition between two updates of the same version must be sane.
* @return *
* @param currentData existing intent data in the store
* @param newData new intent data update proposal
* @return true if we can apply the update, otherwise false
*/ */
private boolean isUpdateAcceptable(IntentData currentData, IntentData newData) { private boolean isUpdateAcceptable(IntentData currentData, IntentData newData) {

View File

@ -20,8 +20,6 @@ import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Deactivate; import org.apache.felix.scr.annotations.Deactivate;
import org.apache.felix.scr.annotations.Service; import org.apache.felix.scr.annotations.Service;
import org.onosproject.net.intent.BatchWrite;
import org.onosproject.net.intent.BatchWrite.Operation;
import org.onosproject.net.intent.Intent; import org.onosproject.net.intent.Intent;
import org.onosproject.net.intent.IntentData; import org.onosproject.net.intent.IntentData;
import org.onosproject.net.intent.IntentEvent; import org.onosproject.net.intent.IntentEvent;
@ -87,70 +85,6 @@ public class SimpleIntentStore
return (data != null) ? data.installables() : null; return (data != null) ? data.installables() : null;
} }
/*
* Execute writes in a batch.
*
* @param batch BatchWrite to execute
* @return failed operations
*/
@Override
public List<Operation> batchWrite(BatchWrite batch) {
throw new UnsupportedOperationException("deprecated");
/*
if (batch.isEmpty()) {
return Collections.emptyList();
}
List<Operation> failed = Lists.newArrayList();
for (Operation op : batch.operations()) {
switch (op.type()) {
case CREATE_INTENT:
checkArgument(op.args().size() == 1,
"CREATE_INTENT takes 1 argument. %s", op);
Intent intent = (Intent) op.args().get(0);
// TODO: what if it failed?
// createIntent(intent); FIXME
break;
case REMOVE_INTENT:
checkArgument(op.args().size() == 1,
"REMOVE_INTENT takes 1 argument. %s", op);
IntentId intentId = (IntentId) op.args().get(0);
// removeIntent(intentId); FIXME
break;
case REMOVE_INSTALLED:
checkArgument(op.args().size() == 1,
"REMOVE_INSTALLED takes 1 argument. %s", op);
intentId = (IntentId) op.args().get(0);
removeInstalledIntents(intentId);
break;
case SET_INSTALLABLE:
checkArgument(op.args().size() == 2,
"SET_INSTALLABLE takes 2 arguments. %s", op);
intentId = (IntentId) op.args().get(0);
@SuppressWarnings("unchecked")
List<Intent> installableIntents = (List<Intent>) op.args().get(1);
setInstallableIntents(intentId, installableIntents);
break;
case SET_STATE:
checkArgument(op.args().size() == 2,
"SET_STATE takes 2 arguments. %s", op);
intent = (Intent) op.args().get(0);
IntentState newState = (IntentState) op.args().get(1);
setState(intent, newState);
break;
default:
break;
}
}
return failed;
*/
}
@Override @Override
public void write(IntentData newData) { public void write(IntentData newData) {
//FIXME need to compare the versions //FIXME need to compare the versions