Added an adapter for PersistenceService to be used in unit tests
Change-Id: Ided127f848b97632b021ea1f1c88d912fe28492c
diff --git a/core/api/src/test/java/org/onosproject/store/persistence/PersistenceServiceAdapter.java b/core/api/src/test/java/org/onosproject/store/persistence/PersistenceServiceAdapter.java
new file mode 100644
index 0000000..3edfcc7
--- /dev/null
+++ b/core/api/src/test/java/org/onosproject/store/persistence/PersistenceServiceAdapter.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2015 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.store.persistence;
+
+import org.onosproject.persistence.PersistenceService;
+import org.onosproject.persistence.PersistentMapBuilder;
+import org.onosproject.persistence.PersistentSetBuilder;
+
+/**
+ * Adapter for PersistenceService.
+ */
+public class PersistenceServiceAdapter implements PersistenceService {
+
+ @Override
+ public <K, V> PersistentMapBuilder<K, V> persistentMapBuilder() {
+ return null;
+ }
+
+ @Override
+ public <E> PersistentSetBuilder<E> persistentSetBuilder() {
+ return null;
+ }
+}
diff --git a/core/api/src/test/java/org/onosproject/store/persistence/TestPersistenceService.java b/core/api/src/test/java/org/onosproject/store/persistence/TestPersistenceService.java
new file mode 100644
index 0000000..a6d9745
--- /dev/null
+++ b/core/api/src/test/java/org/onosproject/store/persistence/TestPersistenceService.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2015 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.store.persistence;
+
+import java.util.Map;
+
+import org.onosproject.persistence.PersistentMapBuilder;
+import org.onosproject.persistence.PersistentSetBuilder;
+import org.onosproject.store.service.Serializer;
+
+import com.google.common.collect.Maps;
+
+/**
+ * PersistenceService that produces in memory maps for use in unit testing.
+ */
+public class TestPersistenceService extends PersistenceServiceAdapter {
+ @Override
+ public <K, V> PersistentMapBuilder<K, V> persistentMapBuilder() {
+ return new TestPersistentMapBuilder<K, V>();
+ }
+
+ @Override
+ public <E> PersistentSetBuilder<E> persistentSetBuilder() {
+ throw new UnsupportedOperationException();
+ }
+
+ private static class TestPersistentMapBuilder<K, V> implements PersistentMapBuilder<K, V> {
+
+ @Override
+ public PersistentMapBuilder<K, V> withName(String name) {
+ return this;
+ }
+
+ @Override
+ public PersistentMapBuilder<K, V> withSerializer(Serializer serializer) {
+ return this;
+ }
+
+ @Override
+ public Map<K, V> build() {
+ return Maps.newConcurrentMap();
+ }
+ }
+}
diff --git a/core/store/dist/src/test/java/org/onosproject/store/ecmap/EventuallyConsistentMapImplTest.java b/core/store/dist/src/test/java/org/onosproject/store/ecmap/EventuallyConsistentMapImplTest.java
index ef8d992..b74aa37 100644
--- a/core/store/dist/src/test/java/org/onosproject/store/ecmap/EventuallyConsistentMapImplTest.java
+++ b/core/store/dist/src/test/java/org/onosproject/store/ecmap/EventuallyConsistentMapImplTest.java
@@ -42,12 +42,13 @@
import org.onosproject.cluster.DefaultControllerNode;
import org.onosproject.cluster.NodeId;
import org.onosproject.event.AbstractEvent;
-import org.onosproject.persistence.impl.PersistenceManager;
+import org.onosproject.persistence.PersistenceService;
import org.onosproject.store.Timestamp;
import org.onosproject.store.cluster.messaging.ClusterCommunicationService;
import org.onosproject.store.cluster.messaging.ClusterCommunicationServiceAdapter;
import org.onosproject.store.cluster.messaging.MessageSubject;
import org.onosproject.store.impl.LogicalTimestamp;
+import org.onosproject.store.persistence.TestPersistenceService;
import org.onosproject.store.serializers.KryoNamespaces;
import org.onosproject.store.serializers.KryoSerializer;
import org.onosproject.store.service.EventuallyConsistentMap;
@@ -82,7 +83,7 @@
private EventuallyConsistentMap<String, String> ecMap;
- private PersistenceManager persistenceService;
+ private PersistenceService persistenceService;
private ClusterService clusterService;
private ClusterCommunicationService clusterCommunicator;
private SequentialClockService<String, String> clockService;
@@ -138,8 +139,7 @@
clusterCommunicator = createMock(ClusterCommunicationService.class);
- persistenceService = new PersistenceManager();
- persistenceService.activate();
+ persistenceService = new TestPersistenceService();
// Add expectation for adding cluster message subscribers which
// delegate to our ClusterCommunicationService implementation. This
// allows us to get a reference to the map's internal cluster message
diff --git a/core/store/persistence/src/main/java/org/onosproject/persistence/impl/PersistenceManager.java b/core/store/persistence/src/main/java/org/onosproject/persistence/impl/PersistenceManager.java
index 3428bce..f1ae5f9 100644
--- a/core/store/persistence/src/main/java/org/onosproject/persistence/impl/PersistenceManager.java
+++ b/core/store/persistence/src/main/java/org/onosproject/persistence/impl/PersistenceManager.java
@@ -46,9 +46,8 @@
@Service
public class PersistenceManager implements PersistenceService {
- private static final String DATABASE_PATH = "../data/localDB";
-
- private static final String ENCLOSING_FOLDER = "../data";
+ private static final String DATABASE_PATH = System.getProperty("karaf.data", "./data/localDB");
+ private static final String ENCLOSING_FOLDER = System.getProperty("karaf.data", "./data");
static final String MAP_PREFIX = "map:";