Fix files with windows line endings + Add checkstyle rule to catch this issue

Change-Id: Ic1905f2121c5c2ab66259f7f531c1e36fe58e9d4
diff --git a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/Router.java b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/Router.java
index e853ec2..3c6d881 100644
--- a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/Router.java
+++ b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/Router.java
@@ -1,102 +1,102 @@
-/*

- * 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.vtnrsc;

-

-import java.util.List;

-

-/**

- * Representation of a Router.

- */

-public interface Router {

-

-    /**

-     * Coarse classification of the type of the Router.

-     */

-    public enum Status {

-        /**

-         * Signifies that a router is currently active.

-         */

-        ACTIVE,

-        /**

-         * Signifies that a router is currently inactive.

-         */

-        INACTIVE

-    }

-

-    /**

-     * Returns the router identifier.

-     *

-     * @return identifier

-     */

-    RouterId id();

-

-    /**

-     * Returns the router Name.

-     *

-     * @return routerName

-     */

-    String name();

-

-    /**

-     * Returns the router admin state.

-     *

-     * @return true or false

-     */

-    boolean adminStateUp();

-

-    /**

-     * Returns the status of router.

-     *

-     * @return RouterStatus

-     */

-    Status status();

-

-    /**

-     * Returns the distributed status of this router.

-     * If true, indicates a distributed router.

-     *

-     * @return true or false

-     */

-    boolean distributed();

-

-    /**

-     * Returns the RouterGateway of router.

-     *

-     * @return routerGateway

-     */

-    RouterGateway externalGatewayInfo();

-

-    /**

-     * Returns the gatewayPortid of router.

-     *

-     * @return virtualPortId

-     */

-    VirtualPortId gatewayPortid();

-

-    /**

-     * Returns the owner(tenant) of this router.

-     *

-     * @return tenantId

-     */

-    TenantId tenantId();

-

-    /**

-     * Returns the router list of router.

-     *

-     * @return routes

-     */

-    List<String> routes();

-}

+/*
+ * 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.vtnrsc;
+
+import java.util.List;
+
+/**
+ * Representation of a Router.
+ */
+public interface Router {
+
+    /**
+     * Coarse classification of the type of the Router.
+     */
+    public enum Status {
+        /**
+         * Signifies that a router is currently active.
+         */
+        ACTIVE,
+        /**
+         * Signifies that a router is currently inactive.
+         */
+        INACTIVE
+    }
+
+    /**
+     * Returns the router identifier.
+     *
+     * @return identifier
+     */
+    RouterId id();
+
+    /**
+     * Returns the router Name.
+     *
+     * @return routerName
+     */
+    String name();
+
+    /**
+     * Returns the router admin state.
+     *
+     * @return true or false
+     */
+    boolean adminStateUp();
+
+    /**
+     * Returns the status of router.
+     *
+     * @return RouterStatus
+     */
+    Status status();
+
+    /**
+     * Returns the distributed status of this router.
+     * If true, indicates a distributed router.
+     *
+     * @return true or false
+     */
+    boolean distributed();
+
+    /**
+     * Returns the RouterGateway of router.
+     *
+     * @return routerGateway
+     */
+    RouterGateway externalGatewayInfo();
+
+    /**
+     * Returns the gatewayPortid of router.
+     *
+     * @return virtualPortId
+     */
+    VirtualPortId gatewayPortid();
+
+    /**
+     * Returns the owner(tenant) of this router.
+     *
+     * @return tenantId
+     */
+    TenantId tenantId();
+
+    /**
+     * Returns the router list of router.
+     *
+     * @return routes
+     */
+    List<String> routes();
+}
diff --git a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/RouterGateway.java b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/RouterGateway.java
index 9a75556..da14fae 100644
--- a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/RouterGateway.java
+++ b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/RouterGateway.java
@@ -1,108 +1,108 @@
-/*

- * 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.vtnrsc;

-

-import static com.google.common.base.MoreObjects.toStringHelper;

-import static com.google.common.base.Preconditions.checkNotNull;

-

-import java.util.Collection;

-import java.util.Objects;

-

-/**

- * Representation of a Router gateway.

- */

-public final class RouterGateway {

-

-    private final TenantNetworkId networkId;

-    private final boolean enableSnat;

-    private final Collection<FixedIp> externalFixedIps;

-

-    // Public construction is prohibited

-    private RouterGateway(TenantNetworkId networkId, boolean enableSnat,

-                         Collection<FixedIp> externalFixedIps) {

-        this.networkId = checkNotNull(networkId, "networkId cannot be null");

-        this.enableSnat = checkNotNull(enableSnat, "enableSnat cannot be null");

-        this.externalFixedIps = checkNotNull(externalFixedIps, "externalFixedIps cannot be null");

-    }

-

-    /**

-     * Creates router gateway object.

-     *

-     * @param networkId network identifier

-     * @param enableSnat SNAT enable or not

-     * @param externalFixedIps external fixed IP

-     * @return RouterGateway

-     */

-    public static RouterGateway routerGateway(TenantNetworkId networkId, boolean enableSnat,

-                                              Collection<FixedIp> externalFixedIps) {

-        return new RouterGateway(networkId, enableSnat, externalFixedIps);

-    }

-

-    /**

-     * Returns network identifier.

-     *

-     * @return networkId

-     */

-    public TenantNetworkId networkId() {

-        return networkId;

-    }

-

-    /**

-     * Return SNAT enable or not.

-     *

-     * @return enableSnat

-     */

-    public boolean enableSnat() {

-        return enableSnat;

-    }

-

-    /**

-     * Return external fixed Ip.

-     *

-     * @return externalFixedIps

-     */

-    public Collection<FixedIp> externalFixedIps() {

-        return externalFixedIps;

-    }

-

-    @Override

-    public int hashCode() {

-        return Objects.hash(networkId, enableSnat, externalFixedIps);

-    }

-

-    @Override

-    public boolean equals(Object obj) {

-        if (this == obj) {

-            return true;

-        }

-        if (obj instanceof RouterGateway) {

-            final RouterGateway that = (RouterGateway) obj;

-            return Objects.equals(this.networkId, that.networkId)

-                    && Objects.equals(this.enableSnat, that.enableSnat)

-                    && Objects.equals(this.externalFixedIps, that.externalFixedIps);

-        }

-        return false;

-    }

-

-    @Override

-    public String toString() {

-        return toStringHelper(this)

-                .add("networkId", networkId)

-                .add("enableSnat", enableSnat)

-                .add("externalFixedIps", externalFixedIps)

-                .toString();

-    }

-}

+/*
+ * 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.vtnrsc;
+
+import static com.google.common.base.MoreObjects.toStringHelper;
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import java.util.Collection;
+import java.util.Objects;
+
+/**
+ * Representation of a Router gateway.
+ */
+public final class RouterGateway {
+
+    private final TenantNetworkId networkId;
+    private final boolean enableSnat;
+    private final Collection<FixedIp> externalFixedIps;
+
+    // Public construction is prohibited
+    private RouterGateway(TenantNetworkId networkId, boolean enableSnat,
+                         Collection<FixedIp> externalFixedIps) {
+        this.networkId = checkNotNull(networkId, "networkId cannot be null");
+        this.enableSnat = checkNotNull(enableSnat, "enableSnat cannot be null");
+        this.externalFixedIps = checkNotNull(externalFixedIps, "externalFixedIps cannot be null");
+    }
+
+    /**
+     * Creates router gateway object.
+     *
+     * @param networkId network identifier
+     * @param enableSnat SNAT enable or not
+     * @param externalFixedIps external fixed IP
+     * @return RouterGateway
+     */
+    public static RouterGateway routerGateway(TenantNetworkId networkId, boolean enableSnat,
+                                              Collection<FixedIp> externalFixedIps) {
+        return new RouterGateway(networkId, enableSnat, externalFixedIps);
+    }
+
+    /**
+     * Returns network identifier.
+     *
+     * @return networkId
+     */
+    public TenantNetworkId networkId() {
+        return networkId;
+    }
+
+    /**
+     * Return SNAT enable or not.
+     *
+     * @return enableSnat
+     */
+    public boolean enableSnat() {
+        return enableSnat;
+    }
+
+    /**
+     * Return external fixed Ip.
+     *
+     * @return externalFixedIps
+     */
+    public Collection<FixedIp> externalFixedIps() {
+        return externalFixedIps;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(networkId, enableSnat, externalFixedIps);
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj instanceof RouterGateway) {
+            final RouterGateway that = (RouterGateway) obj;
+            return Objects.equals(this.networkId, that.networkId)
+                    && Objects.equals(this.enableSnat, that.enableSnat)
+                    && Objects.equals(this.externalFixedIps, that.externalFixedIps);
+        }
+        return false;
+    }
+
+    @Override
+    public String toString() {
+        return toStringHelper(this)
+                .add("networkId", networkId)
+                .add("enableSnat", enableSnat)
+                .add("externalFixedIps", externalFixedIps)
+                .toString();
+    }
+}
diff --git a/apps/vtn/vtnrsc/src/test/java/org/onosproject/vtnrsc/util/VtnEventuallyConsistentMapTest.java b/apps/vtn/vtnrsc/src/test/java/org/onosproject/vtnrsc/util/VtnEventuallyConsistentMapTest.java
index 68b7d68..60b64cc 100644
--- a/apps/vtn/vtnrsc/src/test/java/org/onosproject/vtnrsc/util/VtnEventuallyConsistentMapTest.java
+++ b/apps/vtn/vtnrsc/src/test/java/org/onosproject/vtnrsc/util/VtnEventuallyConsistentMapTest.java
@@ -1,242 +1,242 @@
-/*

- * 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.vtnrsc.util;

-

-import java.util.Collection;

-import java.util.HashMap;

-import java.util.LinkedList;

-import java.util.List;

-import java.util.Map;

-import java.util.Set;

-import java.util.concurrent.ExecutorService;

-import java.util.concurrent.ScheduledExecutorService;

-import java.util.concurrent.TimeUnit;

-import java.util.function.BiFunction;

-

-import org.onlab.util.KryoNamespace;

-import org.onosproject.cluster.NodeId;

-import org.onosproject.store.Timestamp;

-

-import static org.onosproject.store.service.EventuallyConsistentMapEvent.Type.*;

-import org.onosproject.store.service.EventuallyConsistentMapListener;

-import org.onosproject.store.service.EventuallyConsistentMapEvent;

-import org.onosproject.store.service.EventuallyConsistentMapBuilder;

-import org.onosproject.store.service.EventuallyConsistentMap;

-

-/**

- * Testing version of an Eventually Consistent Map.

- */

-

-public final class VtnEventuallyConsistentMapTest<K, V> extends VtnEventuallyConsistentMapAdapter<K, V> {

-

-    private final HashMap<K, V> map;

-    private final String mapName;

-    private final List<EventuallyConsistentMapListener<K, V>> listeners;

-    private final BiFunction<K, V, Collection<NodeId>> peerUpdateFunction;

-

-    private VtnEventuallyConsistentMapTest(String mapName,

-            BiFunction<K, V, Collection<NodeId>> peerUpdateFunction) {

-        map = new HashMap<>();

-        listeners = new LinkedList<>();

-        this.mapName = mapName;

-        this.peerUpdateFunction = peerUpdateFunction;

-    }

-

-    /**

-     * Notify all listeners of an event.

-     */

-    private void notifyListeners(EventuallyConsistentMapEvent<K, V> event) {

-        listeners.forEach(

-                listener -> listener.event(event)

-                );

-    }

-

-    @Override

-    public int size() {

-        return map.size();

-    }

-

-    @Override

-    public boolean isEmpty() {

-        return map.isEmpty();

-    }

-

-    @Override

-    public boolean containsKey(K key) {

-        return map.containsKey(key);

-    }

-

-    @Override

-    public boolean containsValue(V value) {

-        return map.containsValue(value);

-    }

-

-    @Override

-    public V get(K key) {

-        return map.get(key);

-    }

-

-    @Override

-    public void put(K key, V value) {

-        map.put(key, value);

-        EventuallyConsistentMapEvent<K, V> addEvent =

-                new EventuallyConsistentMapEvent<>(mapName, PUT, key, value);

-        notifyListeners(addEvent);

-        if (peerUpdateFunction != null) {

-            peerUpdateFunction.apply(key, value);

-        }

-    }

-

-    @Override

-    public V remove(K key) {

-        V result = map.remove(key);

-        if (result != null) {

-            EventuallyConsistentMapEvent<K, V> removeEvent =

-                    new EventuallyConsistentMapEvent<>(mapName, REMOVE,

-                            key, map.get(key));

-            notifyListeners(removeEvent);

-        }

-        return result;

-    }

-

-    @Override

-    public void remove(K key, V value) {

-        boolean removed = map.remove(key, value);

-        if (removed) {

-            EventuallyConsistentMapEvent<K, V> removeEvent =

-                    new EventuallyConsistentMapEvent<>(mapName, REMOVE, key, value);

-            notifyListeners(removeEvent);

-        }

-    }

-

-    @Override

-    public V compute(K key, BiFunction<K, V, V> recomputeFunction) {

-        return map.compute(key, recomputeFunction);

-    }

-

-    @Override

-    public void putAll(Map<? extends K, ? extends V> m) {

-        map.putAll(m);

-    }

-

-    @Override

-    public void clear() {

-        map.clear();

-    }

-

-    @Override

-    public Set<K> keySet() {

-        return map.keySet();

-    }

-

-    @Override

-    public Collection<V> values() {

-        return map.values();

-    }

-

-    @Override

-    public Set<Map.Entry<K, V>> entrySet() {

-        return map.entrySet();

-    }

-

-    public static <K, V> Builder<K, V> builder() {

-        return new Builder<>();

-    }

-

-    @Override

-    public void addListener(EventuallyConsistentMapListener<K, V> listener) {

-        listeners.add(listener);

-    }

-

-    @Override

-    public void removeListener(EventuallyConsistentMapListener<K, V> listener) {

-        listeners.remove(listener);

-    }

-

-    public static class Builder<K, V> implements EventuallyConsistentMapBuilder<K, V> {

-        private String name;

-        private BiFunction<K, V, Collection<NodeId>> peerUpdateFunction;

-

-        @Override

-        public EventuallyConsistentMapBuilder<K, V> withName(String name) {

-            this.name = name;

-            return this;

-        }

-

-        @Override

-        public EventuallyConsistentMapBuilder<K, V> withSerializer(KryoNamespace.Builder serializerBuilder) {

-            return this;

-        }

-

-        @Override

-        public EventuallyConsistentMapBuilder<K, V>

-        withTimestampProvider(BiFunction<K, V, Timestamp> timestampProvider) {

-            return this;

-        }

-

-        @Override

-        public EventuallyConsistentMapBuilder<K, V> withEventExecutor(ExecutorService executor) {

-            return this;

-        }

-

-        @Override

-        public EventuallyConsistentMapBuilder<K, V> withCommunicationExecutor(ExecutorService executor) {

-            return this;

-        }

-

-        @Override

-        public EventuallyConsistentMapBuilder<K, V> withBackgroundExecutor(ScheduledExecutorService executor) {

-            return this;

-        }

-

-        @Override

-        public EventuallyConsistentMapBuilder<K, V>

-        withPeerUpdateFunction(BiFunction<K, V, Collection<NodeId>> peerUpdateFunction) {

-            this.peerUpdateFunction = peerUpdateFunction;

-            return this;

-        }

-

-        @Override

-        public EventuallyConsistentMapBuilder<K, V> withTombstonesDisabled() {

-            return this;

-        }

-

-        @Override

-        public EventuallyConsistentMapBuilder<K, V> withAntiEntropyPeriod(long period, TimeUnit unit) {

-            return this;

-        }

-

-        @Override

-        public EventuallyConsistentMapBuilder<K, V> withFasterConvergence() {

-            return this;

-        }

-

-        @Override

-        public EventuallyConsistentMapBuilder<K, V> withPersistence() {

-            return this;

-        }

-

-        @Override

-        public EventuallyConsistentMap<K, V> build() {

-            if (name == null) {

-                name = "test";

-            }

-            return new VtnEventuallyConsistentMapTest<>(name, peerUpdateFunction);

-        }

-    }

-

-}

-

+/*
+ * 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.vtnrsc.util;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+import java.util.function.BiFunction;
+
+import org.onlab.util.KryoNamespace;
+import org.onosproject.cluster.NodeId;
+import org.onosproject.store.Timestamp;
+
+import static org.onosproject.store.service.EventuallyConsistentMapEvent.Type.*;
+import org.onosproject.store.service.EventuallyConsistentMapListener;
+import org.onosproject.store.service.EventuallyConsistentMapEvent;
+import org.onosproject.store.service.EventuallyConsistentMapBuilder;
+import org.onosproject.store.service.EventuallyConsistentMap;
+
+/**
+ * Testing version of an Eventually Consistent Map.
+ */
+
+public final class VtnEventuallyConsistentMapTest<K, V> extends VtnEventuallyConsistentMapAdapter<K, V> {
+
+    private final HashMap<K, V> map;
+    private final String mapName;
+    private final List<EventuallyConsistentMapListener<K, V>> listeners;
+    private final BiFunction<K, V, Collection<NodeId>> peerUpdateFunction;
+
+    private VtnEventuallyConsistentMapTest(String mapName,
+            BiFunction<K, V, Collection<NodeId>> peerUpdateFunction) {
+        map = new HashMap<>();
+        listeners = new LinkedList<>();
+        this.mapName = mapName;
+        this.peerUpdateFunction = peerUpdateFunction;
+    }
+
+    /**
+     * Notify all listeners of an event.
+     */
+    private void notifyListeners(EventuallyConsistentMapEvent<K, V> event) {
+        listeners.forEach(
+                listener -> listener.event(event)
+                );
+    }
+
+    @Override
+    public int size() {
+        return map.size();
+    }
+
+    @Override
+    public boolean isEmpty() {
+        return map.isEmpty();
+    }
+
+    @Override
+    public boolean containsKey(K key) {
+        return map.containsKey(key);
+    }
+
+    @Override
+    public boolean containsValue(V value) {
+        return map.containsValue(value);
+    }
+
+    @Override
+    public V get(K key) {
+        return map.get(key);
+    }
+
+    @Override
+    public void put(K key, V value) {
+        map.put(key, value);
+        EventuallyConsistentMapEvent<K, V> addEvent =
+                new EventuallyConsistentMapEvent<>(mapName, PUT, key, value);
+        notifyListeners(addEvent);
+        if (peerUpdateFunction != null) {
+            peerUpdateFunction.apply(key, value);
+        }
+    }
+
+    @Override
+    public V remove(K key) {
+        V result = map.remove(key);
+        if (result != null) {
+            EventuallyConsistentMapEvent<K, V> removeEvent =
+                    new EventuallyConsistentMapEvent<>(mapName, REMOVE,
+                            key, map.get(key));
+            notifyListeners(removeEvent);
+        }
+        return result;
+    }
+
+    @Override
+    public void remove(K key, V value) {
+        boolean removed = map.remove(key, value);
+        if (removed) {
+            EventuallyConsistentMapEvent<K, V> removeEvent =
+                    new EventuallyConsistentMapEvent<>(mapName, REMOVE, key, value);
+            notifyListeners(removeEvent);
+        }
+    }
+
+    @Override
+    public V compute(K key, BiFunction<K, V, V> recomputeFunction) {
+        return map.compute(key, recomputeFunction);
+    }
+
+    @Override
+    public void putAll(Map<? extends K, ? extends V> m) {
+        map.putAll(m);
+    }
+
+    @Override
+    public void clear() {
+        map.clear();
+    }
+
+    @Override
+    public Set<K> keySet() {
+        return map.keySet();
+    }
+
+    @Override
+    public Collection<V> values() {
+        return map.values();
+    }
+
+    @Override
+    public Set<Map.Entry<K, V>> entrySet() {
+        return map.entrySet();
+    }
+
+    public static <K, V> Builder<K, V> builder() {
+        return new Builder<>();
+    }
+
+    @Override
+    public void addListener(EventuallyConsistentMapListener<K, V> listener) {
+        listeners.add(listener);
+    }
+
+    @Override
+    public void removeListener(EventuallyConsistentMapListener<K, V> listener) {
+        listeners.remove(listener);
+    }
+
+    public static class Builder<K, V> implements EventuallyConsistentMapBuilder<K, V> {
+        private String name;
+        private BiFunction<K, V, Collection<NodeId>> peerUpdateFunction;
+
+        @Override
+        public EventuallyConsistentMapBuilder<K, V> withName(String name) {
+            this.name = name;
+            return this;
+        }
+
+        @Override
+        public EventuallyConsistentMapBuilder<K, V> withSerializer(KryoNamespace.Builder serializerBuilder) {
+            return this;
+        }
+
+        @Override
+        public EventuallyConsistentMapBuilder<K, V>
+        withTimestampProvider(BiFunction<K, V, Timestamp> timestampProvider) {
+            return this;
+        }
+
+        @Override
+        public EventuallyConsistentMapBuilder<K, V> withEventExecutor(ExecutorService executor) {
+            return this;
+        }
+
+        @Override
+        public EventuallyConsistentMapBuilder<K, V> withCommunicationExecutor(ExecutorService executor) {
+            return this;
+        }
+
+        @Override
+        public EventuallyConsistentMapBuilder<K, V> withBackgroundExecutor(ScheduledExecutorService executor) {
+            return this;
+        }
+
+        @Override
+        public EventuallyConsistentMapBuilder<K, V>
+        withPeerUpdateFunction(BiFunction<K, V, Collection<NodeId>> peerUpdateFunction) {
+            this.peerUpdateFunction = peerUpdateFunction;
+            return this;
+        }
+
+        @Override
+        public EventuallyConsistentMapBuilder<K, V> withTombstonesDisabled() {
+            return this;
+        }
+
+        @Override
+        public EventuallyConsistentMapBuilder<K, V> withAntiEntropyPeriod(long period, TimeUnit unit) {
+            return this;
+        }
+
+        @Override
+        public EventuallyConsistentMapBuilder<K, V> withFasterConvergence() {
+            return this;
+        }
+
+        @Override
+        public EventuallyConsistentMapBuilder<K, V> withPersistence() {
+            return this;
+        }
+
+        @Override
+        public EventuallyConsistentMap<K, V> build() {
+            if (name == null) {
+                name = "test";
+            }
+            return new VtnEventuallyConsistentMapTest<>(name, peerUpdateFunction);
+        }
+    }
+
+}
+
diff --git a/apps/vtn/vtnrsc/src/test/java/org/onosproject/vtnrsc/util/VtnStorageServiceAdapter.java b/apps/vtn/vtnrsc/src/test/java/org/onosproject/vtnrsc/util/VtnStorageServiceAdapter.java
index efb1a79..4724ceb 100644
--- a/apps/vtn/vtnrsc/src/test/java/org/onosproject/vtnrsc/util/VtnStorageServiceAdapter.java
+++ b/apps/vtn/vtnrsc/src/test/java/org/onosproject/vtnrsc/util/VtnStorageServiceAdapter.java
@@ -1,65 +1,65 @@
-/*

- * 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.vtnrsc.util;

-

-import org.onosproject.store.service.EventuallyConsistentMapBuilder;

-import org.onosproject.store.service.ConsistentMapBuilder;

-import org.onosproject.store.service.DistributedSetBuilder;

-import org.onosproject.store.service.DistributedQueueBuilder;

-import org.onosproject.store.service.AtomicCounterBuilder;

-import org.onosproject.store.service.AtomicValueBuilder;

-import org.onosproject.store.service.TransactionContextBuilder;

-import org.onosproject.store.service.StorageService;

-

-/**

- * Adapter for the storage service.

- */

-public class VtnStorageServiceAdapter implements StorageService {

-    @Override

-    public <K, V> EventuallyConsistentMapBuilder<K, V> eventuallyConsistentMapBuilder() {

-        return null;

-    }

-

-    @Override

-    public <K, V> ConsistentMapBuilder<K, V> consistentMapBuilder() {

-        return null;

-    }

-

-    @Override

-    public <E> DistributedSetBuilder<E> setBuilder() {

-        return null;

-    }

-

-    @Override

-    public <E> DistributedQueueBuilder<E> queueBuilder() {

-        return null;

-    }

-

-    @Override

-    public AtomicCounterBuilder atomicCounterBuilder() {

-        return null;

-    }

-

-    @Override

-    public <V> AtomicValueBuilder<V> atomicValueBuilder() {

-        return null;

-    }

-

-    @Override

-    public TransactionContextBuilder transactionContextBuilder() {

-        return null;

-    }

-}

+/*
+ * 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.vtnrsc.util;
+
+import org.onosproject.store.service.EventuallyConsistentMapBuilder;
+import org.onosproject.store.service.ConsistentMapBuilder;
+import org.onosproject.store.service.DistributedSetBuilder;
+import org.onosproject.store.service.DistributedQueueBuilder;
+import org.onosproject.store.service.AtomicCounterBuilder;
+import org.onosproject.store.service.AtomicValueBuilder;
+import org.onosproject.store.service.TransactionContextBuilder;
+import org.onosproject.store.service.StorageService;
+
+/**
+ * Adapter for the storage service.
+ */
+public class VtnStorageServiceAdapter implements StorageService {
+    @Override
+    public <K, V> EventuallyConsistentMapBuilder<K, V> eventuallyConsistentMapBuilder() {
+        return null;
+    }
+
+    @Override
+    public <K, V> ConsistentMapBuilder<K, V> consistentMapBuilder() {
+        return null;
+    }
+
+    @Override
+    public <E> DistributedSetBuilder<E> setBuilder() {
+        return null;
+    }
+
+    @Override
+    public <E> DistributedQueueBuilder<E> queueBuilder() {
+        return null;
+    }
+
+    @Override
+    public AtomicCounterBuilder atomicCounterBuilder() {
+        return null;
+    }
+
+    @Override
+    public <V> AtomicValueBuilder<V> atomicValueBuilder() {
+        return null;
+    }
+
+    @Override
+    public TransactionContextBuilder transactionContextBuilder() {
+        return null;
+    }
+}
diff --git a/apps/vtn/vtnrsc/src/test/java/org/onosproject/vtnrsc/util/VtnStorageServiceTest.java b/apps/vtn/vtnrsc/src/test/java/org/onosproject/vtnrsc/util/VtnStorageServiceTest.java
index 1f0f183..0537ff5 100644
--- a/apps/vtn/vtnrsc/src/test/java/org/onosproject/vtnrsc/util/VtnStorageServiceTest.java
+++ b/apps/vtn/vtnrsc/src/test/java/org/onosproject/vtnrsc/util/VtnStorageServiceTest.java
@@ -1,25 +1,25 @@
-/*

- * 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.vtnrsc.util;

-

-import org.onosproject.store.service.EventuallyConsistentMapBuilder;

-

-public class VtnStorageServiceTest extends VtnStorageServiceAdapter {

-    @Override

-    public <K, V> EventuallyConsistentMapBuilder<K, V> eventuallyConsistentMapBuilder() {

-        return VtnEventuallyConsistentMapTest.builder();

-    }

-}

+/*
+ * 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.vtnrsc.util;
+
+import org.onosproject.store.service.EventuallyConsistentMapBuilder;
+
+public class VtnStorageServiceTest extends VtnStorageServiceAdapter {
+    @Override
+    public <K, V> EventuallyConsistentMapBuilder<K, V> eventuallyConsistentMapBuilder() {
+        return VtnEventuallyConsistentMapTest.builder();
+    }
+}