http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/EventStorageSpiConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/EventStorageSpiConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/EventStorageSpiConfiguration.java
new file mode 100644
index 0000000..64c67c5
--- /dev/null
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/EventStorageSpiConfiguration.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.ignite.spi.eventstorage;
+
+import org.apache.ignite.spi.*;
+
+/**
+ *
+ */
+public interface EventStorageSpiConfiguration<T extends EventStorageSpi> 
extends IgniteSpiConfiguration<T> {
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpi.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpi.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpi.java
index 181f185..8713a8a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpi.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpi.java
@@ -115,11 +115,18 @@ public class MemoryEventStorageSpi extends 
IgniteSpiAdapter implements EventStor
     private IgnitePredicate<IgniteEvent> filter;
 
     /**
+     *
+     */
+    public MemoryEventStorageSpi() {
+        this(new MemoryEventStorageSpiConfiguration());
+    }
+
+    /**
      * Create SPI from configuration object.
      *
      * @param spiCfg SPI configuration.
      */
-    protected MemoryEventStorageSpi(MemoryEventStorageSpiConfiguration spiCfg) 
{
+    public MemoryEventStorageSpi(MemoryEventStorageSpiConfiguration spiCfg) {
         super(spiCfg);
 
         filter = spiCfg.getFilter();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpiConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpiConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpiConfiguration.java
index 6cfe30e..c9e13ff 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpiConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpiConfiguration.java
@@ -20,11 +20,12 @@ package org.apache.ignite.spi.eventstorage.memory;
 import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.eventstorage.*;
 
 /**
  *
  */
-public class MemoryEventStorageSpiConfiguration implements 
IgniteSpiConfiguration<MemoryEventStorageSpi> {
+public class MemoryEventStorageSpiConfiguration implements 
EventStorageSpiConfiguration<MemoryEventStorageSpi> {
     /** Default event time to live value in milliseconds (value is {@link 
Long#MAX_VALUE}). */
     public static final long DFLT_EXPIRE_AGE_MS = Long.MAX_VALUE;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/failover/FailoverSpiConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/failover/FailoverSpiConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/failover/FailoverSpiConfiguration.java
new file mode 100644
index 0000000..641279f
--- /dev/null
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/failover/FailoverSpiConfiguration.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.ignite.spi.failover;
+
+import org.apache.ignite.spi.*;
+
+/**
+ *
+ */
+public interface FailoverSpiConfiguration<T extends FailoverSpi> extends 
IgniteSpiConfiguration<T> {
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/failover/always/AlwaysFailoverSpi.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/failover/always/AlwaysFailoverSpi.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/failover/always/AlwaysFailoverSpi.java
index 485be32..330ec6a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/failover/always/AlwaysFailoverSpi.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/failover/always/AlwaysFailoverSpi.java
@@ -105,6 +105,14 @@ public class AlwaysFailoverSpi extends IgniteSpiAdapter 
implements FailoverSpi,
     /** Number of jobs that were failed over. */
     private int totalFailoverJobs;
 
+
+    /**
+     * Create SPI from configuration object.
+     */
+    public AlwaysFailoverSpi() {
+        this(new AlwaysFailoverSpiConfiguration());
+    }
+
     /**
      * Create SPI from configuration object.
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/failover/always/AlwaysFailoverSpiConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/failover/always/AlwaysFailoverSpiConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/failover/always/AlwaysFailoverSpiConfiguration.java
index 6167913..855cdb1 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/failover/always/AlwaysFailoverSpiConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/failover/always/AlwaysFailoverSpiConfiguration.java
@@ -18,13 +18,14 @@
 package org.apache.ignite.spi.failover.always;
 
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.failover.FailoverSpiConfiguration;
 
 /**
  * TODO:
  */
 @IgniteSpiMultipleInstancesSupport(true)
 @IgniteSpiConsistencyChecked(optional = true)
-public class AlwaysFailoverSpiConfiguration implements 
IgniteSpiConfiguration<AlwaysFailoverSpi> {
+public class AlwaysFailoverSpiConfiguration implements 
FailoverSpiConfiguration<AlwaysFailoverSpi> {
     /** Maximum number of attempts to execute a failed job on another node 
(default is {@code 5}). */
     public static final int DFLT_MAX_FAILOVER_ATTEMPTS = 5;
 
@@ -32,7 +33,7 @@ public class AlwaysFailoverSpiConfiguration implements 
IgniteSpiConfiguration<Al
     private int maxFailoverAttempts = DFLT_MAX_FAILOVER_ATTEMPTS;
 
     /** {@inheritDoc} */
-    @Override public Class<AlwaysFailoverSpi> spiClass() {
+    @Override public Class<? extends AlwaysFailoverSpi> spiClass() {
         return AlwaysFailoverSpi.class;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/failover/jobstealing/JobStealingFailoverSpiConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/failover/jobstealing/JobStealingFailoverSpiConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/failover/jobstealing/JobStealingFailoverSpiConfiguration.java
index 49beb9c..6d7b8d6 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/failover/jobstealing/JobStealingFailoverSpiConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/failover/jobstealing/JobStealingFailoverSpiConfiguration.java
@@ -18,13 +18,14 @@
 package org.apache.ignite.spi.failover.jobstealing;
 
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.failover.*;
 
 /**
  *
  */
 @IgniteSpiMultipleInstancesSupport(true)
 @IgniteSpiConsistencyChecked(optional = true)
-public class JobStealingFailoverSpiConfiguration implements 
IgniteSpiConfiguration<JobStealingFailoverSpi> {
+public class JobStealingFailoverSpiConfiguration implements 
FailoverSpiConfiguration<JobStealingFailoverSpi> {
     /** Maximum number of attempts to execute a failed job on another node 
(default is {@code 5}). */
     public static final int DFLT_MAX_FAILOVER_ATTEMPTS = 5;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/failover/never/NeverFailoverSpiConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/failover/never/NeverFailoverSpiConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/failover/never/NeverFailoverSpiConfiguration.java
index cd5bfef..5326638 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/failover/never/NeverFailoverSpiConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/failover/never/NeverFailoverSpiConfiguration.java
@@ -18,12 +18,13 @@
 package org.apache.ignite.spi.failover.never;
 
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.failover.FailoverSpiConfiguration;
 
 /**
  *
  */
 @IgniteSpiMultipleInstancesSupport(true)
-public class NeverFailoverSpiConfiguration implements 
IgniteSpiConfiguration<NeverFailoverSpi> {
+public class NeverFailoverSpiConfiguration implements 
FailoverSpiConfiguration<NeverFailoverSpi> {
     /** {@inheritDoc} */
     @Override public Class<NeverFailoverSpi> spiClass() {
         return NeverFailoverSpi.class;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/indexing/GridIndexingSpiConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/indexing/GridIndexingSpiConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/indexing/GridIndexingSpiConfiguration.java
new file mode 100644
index 0000000..e6bc97b
--- /dev/null
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/indexing/GridIndexingSpiConfiguration.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.ignite.spi.indexing;
+
+import org.apache.ignite.spi.*;
+
+/**
+ *
+ */
+public interface GridIndexingSpiConfiguration<T extends GridIndexingSpi> 
extends IgniteSpiConfiguration<T> {
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/indexing/GridNoopIndexingSpi.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/indexing/GridNoopIndexingSpi.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/indexing/GridNoopIndexingSpi.java
index 828a3ac..757b428 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/indexing/GridNoopIndexingSpi.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/indexing/GridNoopIndexingSpi.java
@@ -28,7 +28,14 @@ import java.util.*;
 @IgniteSpiNoop
 public class GridNoopIndexingSpi extends IgniteSpiAdapter implements 
GridIndexingSpi {
     /** {@inheritDoc} */
-    public GridNoopIndexingSpi(IgniteSpiConfiguration spiCfg) {
+    public GridNoopIndexingSpi() {
+        super(new GridNoopIndexingSpiConfiguration());
+    }
+
+    /**
+     *
+     */
+    public GridNoopIndexingSpi(GridNoopIndexingSpiConfiguration spiCfg) {
         super(spiCfg);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/indexing/GridNoopIndexingSpiConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/indexing/GridNoopIndexingSpiConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/indexing/GridNoopIndexingSpiConfiguration.java
index 8cfe1e6..a6cebaa 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/indexing/GridNoopIndexingSpiConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/indexing/GridNoopIndexingSpiConfiguration.java
@@ -23,7 +23,7 @@ import org.apache.ignite.spi.*;
  *
  */
 @IgniteSpiNoop
-public class GridNoopIndexingSpiConfiguration implements 
IgniteSpiConfiguration<GridNoopIndexingSpi> {
+public class GridNoopIndexingSpiConfiguration implements 
GridIndexingSpiConfiguration<GridNoopIndexingSpi> {
     /** {@inheritDoc} */
     @Override public Class<GridNoopIndexingSpi> spiClass() {
         return GridNoopIndexingSpi.class;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/LoadBalancingSpiConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/LoadBalancingSpiConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/LoadBalancingSpiConfiguration.java
new file mode 100644
index 0000000..8dc326b
--- /dev/null
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/LoadBalancingSpiConfiguration.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.ignite.spi.loadbalancing;
+
+import org.apache.ignite.spi.*;
+
+/**
+ *
+ */
+public interface LoadBalancingSpiConfiguration<T extends LoadBalancingSpi> 
extends IgniteSpiConfiguration<T> {
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/adaptive/AdaptiveLoadBalancingSpiConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/adaptive/AdaptiveLoadBalancingSpiConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/adaptive/AdaptiveLoadBalancingSpiConfiguration.java
index 05dd7ff..5a121dc 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/adaptive/AdaptiveLoadBalancingSpiConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/adaptive/AdaptiveLoadBalancingSpiConfiguration.java
@@ -17,15 +17,15 @@
 
 package org.apache.ignite.spi.loadbalancing.adaptive;
 
-
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.loadbalancing.*;
 
 /**
  *
  */
 @IgniteSpiMultipleInstancesSupport(true)
-public class AdaptiveLoadBalancingSpiConfiguration implements 
IgniteSpiConfiguration<AdaptiveLoadBalancingSpi> {
+public class AdaptiveLoadBalancingSpiConfiguration implements 
LoadBalancingSpiConfiguration<AdaptiveLoadBalancingSpi> {
     /** */
     private AdaptiveLoadProbeConfiguration probeCfg = new 
AdaptiveCpuLoadProbeConfiguration();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/roundrobin/RoundRobinLoadBalancingSpi.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/roundrobin/RoundRobinLoadBalancingSpi.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/roundrobin/RoundRobinLoadBalancingSpi.java
index 13a8fdc..f6198dc 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/roundrobin/RoundRobinLoadBalancingSpi.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/roundrobin/RoundRobinLoadBalancingSpi.java
@@ -193,11 +193,18 @@ public class RoundRobinLoadBalancingSpi extends 
IgniteSpiAdapter implements Load
     };
 
     /**
+     * Create SPI.
+     */
+    public RoundRobinLoadBalancingSpi() {
+        this(new RoundRobinLoadBalancingSpiConfiguration());
+    }
+
+    /**
      * Create SPI from configuration object.
      *
      * @param spiCfg SPI configuration.
      */
-    protected 
RoundRobinLoadBalancingSpi(RoundRobinLoadBalancingSpiConfiguration spiCfg) {
+    public RoundRobinLoadBalancingSpi(RoundRobinLoadBalancingSpiConfiguration 
spiCfg) {
         super(spiCfg);
 
         isPerTask = spiCfg.isPerTask();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/roundrobin/RoundRobinLoadBalancingSpiConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/roundrobin/RoundRobinLoadBalancingSpiConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/roundrobin/RoundRobinLoadBalancingSpiConfiguration.java
index 4e80215..c0be0a2 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/roundrobin/RoundRobinLoadBalancingSpiConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/roundrobin/RoundRobinLoadBalancingSpiConfiguration.java
@@ -17,14 +17,15 @@
 
 package org.apache.ignite.spi.loadbalancing.roundrobin;
 
-import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.loadbalancing.*;
 
 /**
  *
  */
 @IgniteSpiMultipleInstancesSupport(true)
-public class RoundRobinLoadBalancingSpiConfiguration implements 
IgniteSpiConfiguration<RoundRobinLoadBalancingSpi> {
+public class RoundRobinLoadBalancingSpiConfiguration
+    implements LoadBalancingSpiConfiguration<RoundRobinLoadBalancingSpi> {
     /** */
     private boolean isPerTask;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/weightedrandom/WeightedRandomLoadBalancingSpi.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/weightedrandom/WeightedRandomLoadBalancingSpi.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/weightedrandom/WeightedRandomLoadBalancingSpi.java
index 2d7a6e5..639d7f1 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/weightedrandom/WeightedRandomLoadBalancingSpi.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/weightedrandom/WeightedRandomLoadBalancingSpi.java
@@ -193,7 +193,7 @@ public class WeightedRandomLoadBalancingSpi extends 
IgniteSpiAdapter implements
         new ConcurrentHashMap8<>();
 
     /** {@inheritDoc} */
-    protected 
WeightedRandomLoadBalancingSpi(WeightedRandomLoadBalancingSpiConfiguration 
spiCfg) {
+    public 
WeightedRandomLoadBalancingSpi(WeightedRandomLoadBalancingSpiConfiguration 
spiCfg) {
         super(spiCfg);
 
         isUseWeights = spiCfg.isUseWeights();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/weightedrandom/WeightedRandomLoadBalancingSpiConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/weightedrandom/WeightedRandomLoadBalancingSpiConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/weightedrandom/WeightedRandomLoadBalancingSpiConfiguration.java
index 1aef870..63a53ef 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/weightedrandom/WeightedRandomLoadBalancingSpiConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/weightedrandom/WeightedRandomLoadBalancingSpiConfiguration.java
@@ -17,16 +17,16 @@
 
 package org.apache.ignite.spi.loadbalancing.weightedrandom;
 
-import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.loadbalancing.*;
 
 /**
  *
  */
 @IgniteSpiMultipleInstancesSupport(true)
 @IgniteSpiConsistencyChecked(optional = true)
-public class WeightedRandomLoadBalancingSpiConfiguration implements
-    IgniteSpiConfiguration<WeightedRandomLoadBalancingSpi> {
+public class WeightedRandomLoadBalancingSpiConfiguration
+    implements LoadBalancingSpiConfiguration<WeightedRandomLoadBalancingSpi> {
     /** Default weight assigned to every node if explicit one is not provided 
(value is {@code 10}). */
     public static final int DFLT_NODE_WEIGHT = 10;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/securesession/SecureSessionSpiConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/securesession/SecureSessionSpiConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/securesession/SecureSessionSpiConfiguration.java
new file mode 100644
index 0000000..a376063
--- /dev/null
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/securesession/SecureSessionSpiConfiguration.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.ignite.spi.securesession;
+
+import org.apache.ignite.spi.*;
+
+/**
+ *
+ */
+public interface SecureSessionSpiConfiguration<T extends SecureSessionSpi> 
extends IgniteSpiConfiguration<T> {
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpi.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpi.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpi.java
index 8ea1e4d..0f0b578 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpi.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpi.java
@@ -77,11 +77,18 @@ public class NoopSecureSessionSpi extends IgniteSpiAdapter
     private IgniteLogger log;
 
     /**
+     * Create SPI.
+     */
+    public NoopSecureSessionSpi() {
+        super(new NoopSecureSessionSpiConfiguration());
+    }
+
+    /**
      * Create SPI from configuration object.
      *
      * @param spiCfg SPI configuration.
      */
-    protected NoopSecureSessionSpi(NoopSecureSessionSpiConfiguration spiCfg) {
+    public NoopSecureSessionSpi(NoopSecureSessionSpiConfiguration spiCfg) {
         super(spiCfg);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpiConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpiConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpiConfiguration.java
index c1c7d4a..958230a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpiConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpiConfiguration.java
@@ -18,11 +18,12 @@
 package org.apache.ignite.spi.securesession.noop;
 
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.securesession.*;
 
 /**
  *
  */
-public class NoopSecureSessionSpiConfiguration implements 
IgniteSpiConfiguration<NoopSecureSessionSpi> {
+public class NoopSecureSessionSpiConfiguration implements 
SecureSessionSpiConfiguration<NoopSecureSessionSpi> {
     /** {@inheritDoc} */
     @Override public Class<NoopSecureSessionSpi> spiClass() {
         return NoopSecureSessionSpi.class;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/swapspace/SwapSpaceSpiConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/swapspace/SwapSpaceSpiConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/swapspace/SwapSpaceSpiConfiguration.java
new file mode 100644
index 0000000..2a89459
--- /dev/null
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/swapspace/SwapSpaceSpiConfiguration.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.ignite.spi.swapspace;
+
+import org.apache.ignite.spi.*;
+
+/**
+ *
+ */
+public interface SwapSpaceSpiConfiguration<T extends SwapSpaceSpi> extends 
IgniteSpiConfiguration<T> {
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpi.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpi.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpi.java
index 4199035..ef02aa1 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpi.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpi.java
@@ -153,6 +153,13 @@ public class FileSwapSpaceSpi extends IgniteSpiAdapter 
implements SwapSpaceSpi,
     /**
      *
      */
+    public FileSwapSpaceSpi() {
+        this(new FileSwapSpaceSpiConfiguration());
+    }
+
+    /**
+     *
+     */
     public FileSwapSpaceSpi(FileSwapSpaceSpiConfiguration spiCfg) {
         super(spiCfg);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpiConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpiConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpiConfiguration.java
index ea7291d..280057b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpiConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpiConfiguration.java
@@ -27,7 +27,7 @@ import java.io.*;
  *
  */
 @IgniteSpiMultipleInstancesSupport(true)
-public class FileSwapSpaceSpiConfiguration implements 
IgniteSpiConfiguration<FileSwapSpaceSpi> {
+public class FileSwapSpaceSpiConfiguration implements 
SwapSpaceSpiConfiguration<FileSwapSpaceSpi> {
     /**
      * Default base directory. Note that this path is relative to {@code 
IGNITE_HOME/work} folder
      * if {@code IGNITE_HOME} system or environment variable specified, 
otherwise it is relative to

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/swapspace/noop/NoopSwapSpaceSpi.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/swapspace/noop/NoopSwapSpaceSpi.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/swapspace/noop/NoopSwapSpaceSpi.java
index f6f5990..1281a1f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/swapspace/noop/NoopSwapSpaceSpi.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/swapspace/noop/NoopSwapSpaceSpi.java
@@ -38,6 +38,10 @@ public class NoopSwapSpaceSpi extends IgniteSpiAdapter 
implements SwapSpaceSpi {
     @IgniteLoggerResource
     private IgniteLogger log;
 
+    public NoopSwapSpaceSpi() {
+        super(new NoopSwapSpaceSpiConfiguration());
+    }
+
     public NoopSwapSpaceSpi(NoopSwapSpaceSpiConfiguration spiCfg) {
         super(spiCfg);
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/spi/swapspace/noop/NoopSwapSpaceSpiConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/swapspace/noop/NoopSwapSpaceSpiConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/swapspace/noop/NoopSwapSpaceSpiConfiguration.java
index 7680cbd..d7713ba 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/swapspace/noop/NoopSwapSpaceSpiConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/swapspace/noop/NoopSwapSpaceSpiConfiguration.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.spi.swapspace.noop;
 
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.swapspace.*;
 
 /**
  * No-op implementation of {@link 
org.apache.ignite.spi.swapspace.SwapSpaceSpi}.
@@ -25,7 +26,7 @@ import org.apache.ignite.spi.*;
  */
 @IgniteSpiNoop
 @IgniteSpiMultipleInstancesSupport(true)
-public class NoopSwapSpaceSpiConfiguration implements 
IgniteSpiConfiguration<NoopSwapSpaceSpi> {
+public class NoopSwapSpaceSpiConfiguration implements 
SwapSpaceSpiConfiguration<NoopSwapSpaceSpi> {
     /** {@inheritDoc} */
     @Override public Class<NoopSwapSpaceSpi> spiClass() {
         return NoopSwapSpaceSpi.class;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/main/java/org/apache/ignite/startup/BasicWarmupClosure.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/startup/BasicWarmupClosure.java 
b/modules/core/src/main/java/org/apache/ignite/startup/BasicWarmupClosure.java
index 1e5525c..6ad5025 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/startup/BasicWarmupClosure.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/startup/BasicWarmupClosure.java
@@ -196,18 +196,20 @@ public class BasicWarmupClosure implements 
IgniteInClosure<IgniteConfiguration>
         try {
             System.setProperty(IgniteSystemProperties.IGNITE_UPDATE_NOTIFIER, 
"false");
 
-            TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+            TcpDiscoveryVmIpFinderConfiguration ipFinderCfg = new 
TcpDiscoveryVmIpFinderConfiguration();
+
+            ipFinderCfg.setShared(true);
 
             for (int i = 0; i < gridCnt; i++) {
                 IgniteConfiguration cfg0 = new IgniteConfiguration(cfg);
 
-                TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
+                TcpDiscoverySpiConfiguration discoSpi = new 
TcpDiscoverySpiConfiguration();
 
-                discoSpi.setIpFinder(ipFinder);
+                discoSpi.setIpFinder(ipFinderCfg);
 
                 discoSpi.setLocalPort(discoveryPort);
 
-                cfg0.setDiscoverySpi(discoSpi);
+                cfg0.setDiscoverySpiConfiguration(discoSpi);
 
                 cfg0.setGridLogger(new IgniteNullLogger());
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/fs/GridGgfsFragmentizerAbstractSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/fs/GridGgfsFragmentizerAbstractSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/fs/GridGgfsFragmentizerAbstractSelfTest.java
index 21b6a81..1bfb704 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/fs/GridGgfsFragmentizerAbstractSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/fs/GridGgfsFragmentizerAbstractSelfTest.java
@@ -34,7 +34,7 @@ import static org.apache.ignite.cache.CacheMode.*;
  */
 public class GridGgfsFragmentizerAbstractSelfTest extends 
GridGgfsCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new 
TcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinderConfiguration IP_FINDER = new 
TcpDiscoveryVmIpFinderConfiguration(true);
 
     /** Test nodes count. */
     protected static final int NODE_CNT = 4;
@@ -55,11 +55,11 @@ public class GridGgfsFragmentizerAbstractSelfTest extends 
GridGgfsCommonAbstract
     @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
+        TcpDiscoverySpiConfiguration discoSpi = new 
TcpDiscoverySpiConfiguration();
 
         discoSpi.setIpFinder(IP_FINDER);
 
-        cfg.setDiscoverySpi(discoSpi);
+        cfg.setDiscoverySpiConfiguration(discoSpi);
 
         cfg.setCacheConfiguration(metaConfiguration(), dataConfiguration());
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/GridFailoverSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/GridFailoverSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/GridFailoverSelfTest.java
index 6e845ea..d5b3acf 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/GridFailoverSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/GridFailoverSelfTest.java
@@ -46,7 +46,7 @@ public class GridFailoverSelfTest extends 
GridCommonAbstractTest {
     @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        cfg.setFailoverSpi(new AlwaysFailoverSpi());
+        cfg.setFailoverSpiConfiguration(new AlwaysFailoverSpiConfiguration());
 
         return cfg;
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/GridJobMasterLeaveAwareSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/GridJobMasterLeaveAwareSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/GridJobMasterLeaveAwareSelfTest.java
index f184821..abdd9cd 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/GridJobMasterLeaveAwareSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/GridJobMasterLeaveAwareSelfTest.java
@@ -54,7 +54,7 @@ public class GridJobMasterLeaveAwareSelfTest extends 
GridCommonAbstractTest {
     private static final int GRID_CNT = 2;
 
     /** Default IP finder for single-JVM cloud grid. */
-    private static final TcpDiscoveryIpFinder ipFinder = new 
TcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinderConfiguration ipFinder = new 
TcpDiscoveryVmIpFinderConfiguration(true);
 
     /** Counts how many times master-leave interface implementation was 
called. */
     private static volatile CountDownLatch invokeLatch;
@@ -85,12 +85,12 @@ public class GridJobMasterLeaveAwareSelfTest extends 
GridCommonAbstractTest {
     @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
+        TcpDiscoverySpiConfiguration discoSpi = new 
TcpDiscoverySpiConfiguration();
         discoSpi.setIpFinder(ipFinder);
 
-        cfg.setDiscoverySpi(discoSpi);
+        cfg.setDiscoverySpiConfiguration(discoSpi);
 
-        cfg.setCommunicationSpi(new CommunicationSpi());
+        cfg.setCommunicationSpiConfiguration(new 
CommunicationSpiConfiguration());
         cfg.setMarshaller(new IgniteOptimizedMarshaller(false));
 
         CacheConfiguration ccfg = defaultCacheConfiguration();
@@ -717,9 +717,19 @@ public class GridJobMasterLeaveAwareSelfTest extends 
GridCommonAbstractTest {
     }
 
     /**
+     * Communication SPI configuration.
+     */
+    public static class CommunicationSpiConfiguration extends 
TcpCommunicationSpiConfiguration {
+        /** {@inheritDoc} */
+        @Override public Class<? extends TcpCommunicationSpi> spiClass() {
+            return CommunicationSpi.class;
+        }
+    }
+
+    /**
      * Communication SPI which could optionally block outgoing messages.
      */
-    private static class CommunicationSpi extends TcpCommunicationSpi {
+    public static class CommunicationSpi extends TcpCommunicationSpi {
         /** Whether to block all outgoing messages. */
         private volatile boolean block;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/GridProjectionLocalJobMultipleArgumentsSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/GridProjectionLocalJobMultipleArgumentsSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/GridProjectionLocalJobMultipleArgumentsSelfTest.java
index 2cb707a..d0ce675 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/GridProjectionLocalJobMultipleArgumentsSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/GridProjectionLocalJobMultipleArgumentsSelfTest.java
@@ -38,7 +38,7 @@ import static org.apache.ignite.cache.CacheMode.*;
  */
 public class GridProjectionLocalJobMultipleArgumentsSelfTest extends 
GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new 
TcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinderConfiguration IP_FINDER = new 
TcpDiscoveryVmIpFinderConfiguration(true);
 
     /** */
     private static Collection<Integer> ids;
@@ -66,11 +66,11 @@ public class 
GridProjectionLocalJobMultipleArgumentsSelfTest extends GridCommonA
 
         cfg.setCacheConfiguration(cache);
 
-        TcpDiscoverySpi disco = new TcpDiscoverySpi();
+        TcpDiscoverySpiConfiguration disco = new 
TcpDiscoverySpiConfiguration();
 
         disco.setIpFinder(IP_FINDER);
 
-        cfg.setDiscoverySpi(disco);
+        cfg.setDiscoverySpiConfiguration(disco);
 
         return cfg;
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/GridReleaseTypeSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/GridReleaseTypeSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/GridReleaseTypeSelfTest.java
index 158491b..58ca5e1 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/GridReleaseTypeSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/GridReleaseTypeSelfTest.java
@@ -34,7 +34,7 @@ import java.util.concurrent.atomic.*;
  */
 public class GridReleaseTypeSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new 
TcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinderConfiguration IP_FINDER = new 
TcpDiscoveryVmIpFinderConfiguration(true);
 
     /** Counter. */
     private static final AtomicInteger cnt = new AtomicInteger();
@@ -52,20 +52,12 @@ public class GridReleaseTypeSelfTest extends 
GridCommonAbstractTest {
         final int idx = cnt.getAndIncrement();
 
         // Override node attributes in discovery spi.
-        TcpDiscoverySpi discoSpi = new TcpDiscoverySpi() {
-            @Override public void setNodeAttributes(Map<String, Object> attrs, 
IgniteProductVersion ver) {
-                super.setNodeAttributes(attrs, ver);
-
-                if (idx % 2 == 0)
-                    attrs.put(GridNodeAttributes.ATTR_BUILD_VER, firstNodeVer);
-                else
-                    attrs.put(GridNodeAttributes.ATTR_BUILD_VER, 
secondNodeVer);
-            }
-        };
+        TestTcpDiscoverySpiConfiguration discoSpi =
+            new TestTcpDiscoverySpiConfiguration(idx, firstNodeVer, 
secondNodeVer);
 
         discoSpi.setIpFinder(IP_FINDER);
 
-        cfg.setDiscoverySpi(discoSpi);
+        cfg.setDiscoverySpiConfiguration(discoSpi);
 
         return cfg;
     }
@@ -129,6 +121,92 @@ public class GridReleaseTypeSelfTest extends 
GridCommonAbstractTest {
             stopAllGrids();
         }
 
+
+
         fail("Exception has not been thrown.");
     }
+
+    /**
+     *
+     */
+    public static class TestTcpDiscoverySpiConfiguration extends 
TcpDiscoverySpiConfiguration {
+        /** Index. */
+        private final int idx;
+
+        /** */
+        private final String firstNodeVer;
+
+        /** */
+        private final String secondNodeVer;
+
+        /**
+         *
+         */
+        public TestTcpDiscoverySpiConfiguration(int idx, String firstNodeVer, 
String secondNodeVer) {
+            this.idx = idx;
+            this.firstNodeVer = firstNodeVer;
+            this.secondNodeVer = secondNodeVer;
+        }
+
+        /**
+         *
+         */
+        public int getIdx() {
+            return idx;
+        }
+
+        /**
+         *
+         */
+        public String getFirstNodeVer() {
+            return firstNodeVer;
+        }
+
+        /**
+         *
+         */
+        public String getSecondNodeVer() {
+            return secondNodeVer;
+        }
+
+        /** {@inheritDoc} */
+        @Override public Class<? extends TcpDiscoverySpi> spiClass() {
+            return TestTcpDiscoverySpi.class;
+        }
+    }
+
+    /**
+     *
+     */
+    public static class TestTcpDiscoverySpi extends TcpDiscoverySpi {
+        /** */
+        private final int idx;
+
+        /** */
+        private final String firstNodeVer;
+
+        /** */
+        private final String secondNodeVer;
+
+        /**
+         *
+         */
+        public TestTcpDiscoverySpi(TestTcpDiscoverySpiConfiguration spiCfg){
+            super(spiCfg);
+
+            idx = spiCfg.getIdx();
+            firstNodeVer = spiCfg.getFirstNodeVer();
+            secondNodeVer = spiCfg.getSecondNodeVer();
+        }
+
+        /** {@inheritDoc} */
+        @Override public void setNodeAttributes(Map<String, Object> attrs, 
IgniteProductVersion ver) {
+            super.setNodeAttributes(attrs, ver);
+
+            if (idx % 2 == 0)
+                attrs.put(GridNodeAttributes.ATTR_BUILD_VER, firstNodeVer);
+            else
+                attrs.put(GridNodeAttributes.ATTR_BUILD_VER, secondNodeVer);
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/GridStopWithWaitSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/GridStopWithWaitSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/GridStopWithWaitSelfTest.java
index 58ff860..2a30fa0 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/GridStopWithWaitSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/GridStopWithWaitSelfTest.java
@@ -53,7 +53,7 @@ public class GridStopWithWaitSelfTest extends 
GridCommonAbstractTest {
     @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        cfg.setFailoverSpi(new AlwaysFailoverSpi());
+        cfg.setFailoverSpiConfiguration(new AlwaysFailoverSpiConfiguration());
 
         return cfg;
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java
index a4d6f6f..5230a19 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java
@@ -94,7 +94,7 @@ public abstract class GridCheckpointManagerAbstractSelfTest 
extends GridCommonAb
     private static final String SES_VAL_OVERWRITTEN = SES_VAL + "-overwritten";
 
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new 
TcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinderConfiguration IP_FINDER = new 
TcpDiscoveryVmIpFinderConfiguration(true);
 
     /**
      * Static variable to control whether test should retry checkpoint read 
attempts.
@@ -121,11 +121,11 @@ public abstract class 
GridCheckpointManagerAbstractSelfTest extends GridCommonAb
 
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
+        TcpDiscoverySpiConfiguration discoSpi = new 
TcpDiscoverySpiConfiguration();
 
         discoSpi.setIpFinder(IP_FINDER);
 
-        cfg.setDiscoverySpi(discoSpi);
+        cfg.setDiscoverySpiConfiguration(discoSpi);
 
         if (gridName.contains("cache")) {
             String cacheName = "test-checkpoints";
@@ -135,16 +135,16 @@ public abstract class 
GridCheckpointManagerAbstractSelfTest extends GridCommonAb
             cacheCfg.setName(cacheName);
             cacheCfg.setWriteSynchronizationMode(FULL_SYNC);
 
-            CacheCheckpointSpi spi = new CacheCheckpointSpi();
+            CacheCheckpointSpiConfiguration spi = new 
CacheCheckpointSpiConfiguration();
 
             spi.setCacheName(cacheName);
 
             cfg.setCacheConfiguration(cacheCfg);
 
-            cfg.setCheckpointSpi(spi);
+            cfg.setCheckpointSpiConfiguration(spi);
         }
         else if (gridName.contains("jdbc")) {
-            JdbcCheckpointSpi spi = new JdbcCheckpointSpi();
+            JdbcCheckpointSpiConfiguration spi = new 
JdbcCheckpointSpiConfiguration();
 
             jdbcDataSource ds = new jdbcDataSource();
 
@@ -159,7 +159,7 @@ public abstract class GridCheckpointManagerAbstractSelfTest 
extends GridCommonAb
             spi.setValueFieldType("longvarbinary");
             spi.setExpireDateFieldName("expire_date");
 
-            cfg.setCheckpointSpi(spi);
+            cfg.setCheckpointSpiConfiguration(spi);
         }
 
         return cfg;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridCommunicationSendMessageSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridCommunicationSendMessageSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridCommunicationSendMessageSelfTest.java
index 46a380f..421df7b 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridCommunicationSendMessageSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridCommunicationSendMessageSelfTest.java
@@ -37,7 +37,7 @@ import static java.util.concurrent.TimeUnit.*;
  */
 public class GridCommunicationSendMessageSelfTest extends 
GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new 
TcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinderConfiguration ipFinder = new 
TcpDiscoveryVmIpFinderConfiguration(true);
 
     /** Sample count. */
     private static final int SAMPLE_CNT = 1;
@@ -60,17 +60,17 @@ public class GridCommunicationSendMessageSelfTest extends 
GridCommonAbstractTest
     @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
         IgniteConfiguration c = super.getConfiguration(gridName);
 
-        TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
+        TcpDiscoverySpiConfiguration discoSpi = new 
TcpDiscoverySpiConfiguration();
 
         discoSpi.setIpFinder(ipFinder);
 
-        c.setDiscoverySpi(discoSpi);
+        c.setDiscoverySpiConfiguration(discoSpi);
 
-        TcpCommunicationSpi commSpi = new TcpCommunicationSpi();
+        TcpCommunicationSpiConfiguration commSpi = new 
TcpCommunicationSpiConfiguration();
 
         commSpi.setConnectionBufferSize(bufSize);
 
-        c.setCommunicationSpi(commSpi);
+        c.setCommunicationSpiConfiguration(commSpi);
 
         return c;
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/managers/deployment/GridDeploymentMessageCountSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/managers/deployment/GridDeploymentMessageCountSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/managers/deployment/GridDeploymentMessageCountSelfTest.java
index 9a455e9..35e3bd3 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/managers/deployment/GridDeploymentMessageCountSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/managers/deployment/GridDeploymentMessageCountSelfTest.java
@@ -17,10 +17,15 @@
 
 package org.apache.ignite.internal.managers.deployment;
 
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.compute.*;
 import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.resources.IgniteInstanceResource;
+import org.apache.ignite.resources.IgniteLoggerResource;
 import org.apache.ignite.spi.*;
 import org.apache.ignite.internal.managers.communication.*;
 import org.apache.ignite.spi.communication.tcp.*;
@@ -42,7 +47,7 @@ import static 
org.apache.ignite.cache.CacheWriteSynchronizationMode.*;
  */
 public class GridDeploymentMessageCountSelfTest extends GridCommonAbstractTest 
{
     /** VM ip finder for TCP discovery. */
-    private static TcpDiscoveryIpFinder ipFinder = new 
TcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinderConfiguration ipFinder = new 
TcpDiscoveryVmIpFinderConfiguration(true);
 
     /** Test p2p task. */
     private static final String TEST_TASK = 
"org.apache.ignite.tests.p2p.SingleSplitTestTask";
@@ -50,18 +55,15 @@ public class GridDeploymentMessageCountSelfTest extends 
GridCommonAbstractTest {
     /** Test p2p value. */
     private static final String TEST_VALUE = 
"org.apache.ignite.tests.p2p.CacheDeploymentTestValue";
 
-    /** SPIs. */
-    private Map<String, MessageCountingCommunicationSpi> commSpis = new 
ConcurrentHashMap8<>();
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
+        TcpDiscoverySpiConfiguration discoSpi = new 
TcpDiscoverySpiConfiguration();
 
         discoSpi.setIpFinder(ipFinder);
 
-        cfg.setDiscoverySpi(discoSpi);
+        cfg.setDiscoverySpiConfiguration(discoSpi);
 
         cfg.setPeerClassLoadingEnabled(true);
 
@@ -72,11 +74,9 @@ public class GridDeploymentMessageCountSelfTest extends 
GridCommonAbstractTest {
 
         cfg.setCacheConfiguration(cacheCfg);
 
-        MessageCountingCommunicationSpi commSpi = new 
MessageCountingCommunicationSpi();
-
-        commSpis.put(gridName, commSpi);
+        MessageCountingCommunicationSpiConfiguration commSpi = new 
MessageCountingCommunicationSpiConfiguration();
 
-        cfg.setCommunicationSpi(commSpi);
+        cfg.setCommunicationSpiConfiguration(commSpi);
 
         return cfg;
     }
@@ -97,11 +97,8 @@ public class GridDeploymentMessageCountSelfTest extends 
GridCommonAbstractTest {
 
             assertEquals(Integer.valueOf(2), res);
 
-            for (MessageCountingCommunicationSpi spi : commSpis.values()) {
-                assertTrue(spi.deploymentMessageCount() > 0);
-
-                spi.resetCount();
-            }
+            checkDeploymentMessageCount(grid(0));
+            checkDeploymentMessageCount(grid(1));
 
             for (int i = 0; i < 10; i++) {
                 taskFut = executeAsync(grid(0).compute(), taskCls, 2);
@@ -111,14 +108,30 @@ public class GridDeploymentMessageCountSelfTest extends 
GridCommonAbstractTest {
                 assertEquals(Integer.valueOf(2), res);
             }
 
-            for (MessageCountingCommunicationSpi spi : commSpis.values())
-                assertEquals(0, spi.deploymentMessageCount());
+            checkDeploymentMessageCountIsZero(grid(0));
+            checkDeploymentMessageCountIsZero(grid(1));
         }
         finally {
             stopAllGrids();
         }
     }
 
+    private void checkDeploymentMessageCount(IgniteEx ignite){
+        MessageCountingCommunicationSpi spi = 
(MessageCountingCommunicationSpi)ignite.configuration()
+            .getCommunicationSpi();
+
+        assertTrue(spi.deploymentMessageCount() > 0);
+
+        spi.resetCount();
+    }
+
+    private void checkDeploymentMessageCountIsZero(IgniteEx ignite){
+        MessageCountingCommunicationSpi spi = 
(MessageCountingCommunicationSpi)ignite.configuration()
+                .getCommunicationSpi();
+
+        assertEquals(0, spi.deploymentMessageCount());
+    }
+
     /**
      * @throws Exception If failed.
      */
@@ -137,11 +150,8 @@ public class GridDeploymentMessageCountSelfTest extends 
GridCommonAbstractTest {
             for (int i = 0; i < 2; i++)
                 assertNotNull("For grid: " + i, 
grid(i).cache(null).peek("key"));
 
-            for (MessageCountingCommunicationSpi spi : commSpis.values()) {
-                assertTrue(spi.deploymentMessageCount() > 0);
-
-                spi.resetCount();
-            }
+            checkDeploymentMessageCount(grid(0));
+            checkDeploymentMessageCount(grid(1));
 
             for (int i = 0; i < 10; i++) {
                 String key = "key" + i;
@@ -152,8 +162,8 @@ public class GridDeploymentMessageCountSelfTest extends 
GridCommonAbstractTest {
                     assertNotNull(grid(k).cache(null).peek(key));
             }
 
-            for (MessageCountingCommunicationSpi spi : commSpis.values())
-                assertEquals(0, spi.deploymentMessageCount());
+            checkDeploymentMessageCountIsZero(grid(0));
+            checkDeploymentMessageCountIsZero(grid(1));
         }
         finally {
             stopAllGrids();
@@ -163,7 +173,21 @@ public class GridDeploymentMessageCountSelfTest extends 
GridCommonAbstractTest {
     /**
      *
      */
-    private class MessageCountingCommunicationSpi extends TcpCommunicationSpi {
+    public static class MessageCountingCommunicationSpiConfiguration extends 
TcpCommunicationSpiConfiguration {
+        /** {@inheritDoc} */
+        @Override public Class<? extends TcpCommunicationSpi> spiClass() {
+            return MessageCountingCommunicationSpi.class;
+        }
+    }
+
+    /**
+     *
+     */
+    public static class MessageCountingCommunicationSpi extends 
TcpCommunicationSpi {
+        /** */
+        @IgniteLoggerResource
+        private IgniteLogger logger;
+
         /** */
         private AtomicInteger msgCnt = new AtomicInteger();
 
@@ -201,8 +225,8 @@ public class GridDeploymentMessageCountSelfTest extends 
GridCommonAbstractTest {
 
             boolean dep = (origMsg instanceof GridDeploymentRequest) || 
(origMsg instanceof GridDeploymentResponse);
 
-            if (dep)
-                info(">>> Got deployment message: " + origMsg);
+            if (dep && logger.isInfoEnabled())
+                logger.info(">>> Got deployment message: " + origMsg);
 
             return dep;
         }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java
index 090bee8..bb0f0fd 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java
@@ -36,7 +36,7 @@ public class GridDiscoveryManagerSelfTest extends 
GridCommonAbstractTest {
     private static final String CACHE_NAME = "cache";
 
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new 
TcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinderConfiguration IP_FINDER = new 
TcpDiscoveryVmIpFinderConfiguration(true);
 
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
@@ -48,11 +48,11 @@ public class GridDiscoveryManagerSelfTest extends 
GridCommonAbstractTest {
     @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        TcpDiscoverySpi disc = new TcpDiscoverySpi();
+        TcpDiscoverySpiConfiguration disc = new TcpDiscoverySpiConfiguration();
 
         disc.setIpFinder(IP_FINDER);
 
-        cfg.setDiscoverySpi(disc);
+        cfg.setDiscoverySpiConfiguration(disc);
 
         CacheConfiguration ccfg1 = defaultCacheConfiguration();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManagerSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManagerSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManagerSelfTest.java
index 4158f18..6266498 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManagerSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManagerSelfTest.java
@@ -53,7 +53,7 @@ public class GridSwapSpaceManagerSelfTest extends 
GridCommonAbstractTest {
     @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
         IgniteConfiguration c = super.getConfiguration(gridName);
 
-        c.setSwapSpaceSpi(new FileSwapSpaceSpi());
+        c.setSwapSpaceSpiConfiguration(new FileSwapSpaceSpiConfiguration());
 
         return c;
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java
index 18e7ca4..11a72eb 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java
@@ -46,17 +46,17 @@ public abstract class 
GridCacheAbstractByteArrayValuesSelfTest extends GridCommo
     protected static final Integer SWAP_TEST_KEY = 3;
 
     /** Shared IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new 
TcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinderConfiguration IP_FINDER = new 
TcpDiscoveryVmIpFinderConfiguration(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
         IgniteConfiguration c = super.getConfiguration(gridName);
 
-        TcpDiscoverySpi disco = new TcpDiscoverySpi();
+        TcpDiscoverySpiConfiguration disco = new 
TcpDiscoverySpiConfiguration();
 
         disco.setIpFinder(IP_FINDER);
 
-        c.setDiscoverySpi(disco);
+        c.setDiscoverySpiConfiguration(disco);
 
         return c;
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
index 4f55e2f..4b8a966 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
@@ -107,7 +107,7 @@ public abstract class GridCacheAbstractFullApiSelfTest 
extends GridCacheAbstract
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
         if (offHeapValues())
-            cfg.setSwapSpaceSpi(new GridTestSwapSpaceSpi());
+            cfg.setSwapSpaceSpiConfiguration(new 
GridTestSwapSpaceSpiConfiguration());
 
         return cfg;
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java
index 0f9a11f..5a67660 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java
@@ -59,7 +59,7 @@ public abstract class GridCacheAbstractSelfTest extends 
GridCommonAbstractTest {
     protected static final Map<Object, Object> map = new 
ConcurrentHashMap8<>();
 
     /** VM ip finder for TCP discovery. */
-    private static TcpDiscoveryIpFinder ipFinder = new 
TcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinderConfiguration ipFinder = new 
TcpDiscoveryVmIpFinderConfiguration(true);
 
     /**
      * @return Grids count to start.
@@ -205,7 +205,7 @@ public abstract class GridCacheAbstractSelfTest extends 
GridCommonAbstractTest {
     @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        TcpDiscoverySpi disco = new TcpDiscoverySpi();
+        TcpDiscoverySpiConfiguration disco = new 
TcpDiscoverySpiConfiguration();
 
         disco.setMaxMissedHeartbeats(Integer.MAX_VALUE);
 
@@ -214,7 +214,7 @@ public abstract class GridCacheAbstractSelfTest extends 
GridCommonAbstractTest {
         if (isDebug())
             disco.setAckTimeout(Integer.MAX_VALUE);
 
-        cfg.setDiscoverySpi(disco);
+        cfg.setDiscoverySpiConfiguration(disco);
 
         cfg.setCacheConfiguration(cacheConfiguration(gridName));
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheBasicApiAbstractTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheBasicApiAbstractTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheBasicApiAbstractTest.java
index 4c945d9..3cffc7f 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheBasicApiAbstractTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheBasicApiAbstractTest.java
@@ -59,11 +59,11 @@ public abstract class GridCacheBasicApiAbstractTest extends 
GridCommonAbstractTe
     @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        TcpDiscoverySpi disco = new TcpDiscoverySpi();
+        TcpDiscoverySpiConfiguration disco = new 
TcpDiscoverySpiConfiguration();
 
-        disco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
+        disco.setIpFinder(new TcpDiscoveryVmIpFinderConfiguration(true));
 
-        cfg.setDiscoverySpi(disco);
+        cfg.setDiscoverySpiConfiguration(disco);
 
         return cfg;
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java
index e832d59..361ccb3 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java
@@ -65,11 +65,11 @@ public abstract class 
GridCacheBasicStoreMultithreadedAbstractTest extends GridC
     @Override protected final IgniteConfiguration getConfiguration(String 
gridName) throws Exception {
         IgniteConfiguration c = super.getConfiguration(gridName);
 
-        TcpDiscoverySpi disco = new TcpDiscoverySpi();
+        TcpDiscoverySpiConfiguration disco = new 
TcpDiscoverySpiConfiguration();
 
-        disco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
+        disco.setIpFinder(new TcpDiscoveryVmIpFinderConfiguration(true));
 
-        c.setDiscoverySpi(disco);
+        c.setDiscoverySpiConfiguration(disco);
 
         CacheConfiguration cc = defaultCacheConfiguration();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java
index af91565..3b085e4 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java
@@ -40,7 +40,7 @@ import static 
org.apache.ignite.transactions.IgniteTxIsolation.*;
  */
 public abstract class GridCacheDaemonNodeAbstractSelfTest extends 
GridCommonAbstractTest {
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new 
TcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinderConfiguration ipFinder = new 
TcpDiscoveryVmIpFinderConfiguration(true);
 
     /** Daemon flag. */
     protected boolean daemon;
@@ -58,11 +58,11 @@ public abstract class GridCacheDaemonNodeAbstractSelfTest 
extends GridCommonAbst
 
         c.setDaemon(daemon);
 
-        TcpDiscoverySpi disco = new TcpDiscoverySpi();
+        TcpDiscoverySpiConfiguration disco = new 
TcpDiscoverySpiConfiguration();
 
         disco.setIpFinder(ipFinder);
 
-        c.setDiscoverySpi(disco);
+        c.setDiscoverySpiConfiguration(disco);
 
         c.setRestEnabled(false);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentSelfTest.java
index 78fdd89..7c5231a 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentSelfTest.java
@@ -48,7 +48,7 @@ import static 
org.apache.ignite.cache.CacheWriteSynchronizationMode.*;
  */
 public class GridCacheDeploymentSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new 
TcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinderConfiguration IP_FINDER = new 
TcpDiscoveryVmIpFinderConfiguration(true);
 
     /** Name for grid without cache. */
     private static final String GRID_NAME = "grid-no-cache";
@@ -85,11 +85,11 @@ public class GridCacheDeploymentSelfTest extends 
GridCommonAbstractTest {
         else
             cfg.setCacheConfiguration(cacheConfiguration());
 
-        TcpDiscoverySpi disco = new TcpDiscoverySpi();
+        TcpDiscoverySpiConfiguration disco = new 
TcpDiscoverySpiConfiguration();
 
         disco.setIpFinder(IP_FINDER);
 
-        cfg.setDiscoverySpi(disco);
+        cfg.setDiscoverySpiConfiguration(disco);
 
         cfg.setRestEnabled(false);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionEventAbstractTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionEventAbstractTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionEventAbstractTest.java
index 517ffd2..6c5dbae 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionEventAbstractTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionEventAbstractTest.java
@@ -37,7 +37,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public abstract class GridCacheEvictionEventAbstractTest extends 
GridCommonAbstractTest {
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new 
TcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinderConfiguration ipFinder = new 
TcpDiscoveryVmIpFinderConfiguration(true);
 
     /**
      *
@@ -50,11 +50,11 @@ public abstract class GridCacheEvictionEventAbstractTest 
extends GridCommonAbstr
     @Override protected IgniteConfiguration getConfiguration() throws 
Exception {
         IgniteConfiguration c = super.getConfiguration();
 
-        TcpDiscoverySpi disco = new TcpDiscoverySpi();
+        TcpDiscoverySpiConfiguration disco = new 
TcpDiscoverySpiConfiguration();
 
         disco.setIpFinder(ipFinder);
 
-        c.setDiscoverySpi(disco);
+        c.setDiscoverySpiConfiguration(disco);
 
         CacheConfiguration cc = defaultCacheConfiguration();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheGroupLockAbstractSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheGroupLockAbstractSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheGroupLockAbstractSelfTest.java
index 4bddd4a..7a6539c 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheGroupLockAbstractSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheGroupLockAbstractSelfTest.java
@@ -55,7 +55,7 @@ import static 
org.apache.ignite.transactions.IgniteTxIsolation.*;
  */
 public abstract class GridCacheGroupLockAbstractSelfTest extends 
GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder ipFinder = new 
TcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryVmIpFinderConfiguration ipFinder = new 
TcpDiscoveryVmIpFinderConfiguration(true);
 
     /** Event wait timeout. */
     private static final int WAIT_TIMEOUT = 3000;
@@ -98,17 +98,17 @@ public abstract class GridCacheGroupLockAbstractSelfTest 
extends GridCommonAbstr
         cfg.setCacheConfiguration(cacheCfg);
         cfg.setCacheSanityCheckEnabled(sanityCheckEnabled());
 
-        TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
+        TcpDiscoverySpiConfiguration discoSpi = new 
TcpDiscoverySpiConfiguration();
 
         discoSpi.setIpFinder(ipFinder);
 
-        cfg.setDiscoverySpi(discoSpi);
+        cfg.setDiscoverySpiConfiguration(discoSpi);
 
-        TcpCommunicationSpi commSpi = new TcpCommunicationSpi();
+        TcpCommunicationSpiConfiguration commSpi = new 
TcpCommunicationSpiConfiguration();
 
         commSpi.setSharedMemoryPort(-1);
 
-        cfg.setCommunicationSpi(commSpi);
+        cfg.setCommunicationSpiConfiguration(commSpi);
 
         return cfg;
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
index 852e84d..83ee3af 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
@@ -46,7 +46,7 @@ import static 
org.apache.ignite.cache.CacheWriteSynchronizationMode.*;
  */
 public class GridCacheGroupLockFailoverSelfTest extends GridCommonAbstractTest 
{
     /** IP finder. */
-    private static TcpDiscoveryIpFinder ipFinder = new 
TcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinderConfiguration ipFinder = new 
TcpDiscoveryVmIpFinderConfiguration(true);
 
     /** Size of the test map. */
     private static final int TEST_MAP_SIZE = 200000;
@@ -415,27 +415,28 @@ public class GridCacheGroupLockFailoverSelfTest extends 
GridCommonAbstractTest {
 
         cfg.setDeploymentMode(IgniteDeploymentMode.CONTINUOUS);
 
-        TcpDiscoverySpi discoverySpi = new TcpDiscoverySpi();
+        TcpDiscoverySpiConfiguration discoverySpi = new 
TcpDiscoverySpiConfiguration();
 
         discoverySpi.setAckTimeout(60000);
         discoverySpi.setIpFinder(ipFinder);
 
-        cfg.setDiscoverySpi(discoverySpi);
+        cfg.setDiscoverySpiConfiguration(discoverySpi);
 
         if (gridName.startsWith("master")) {
             cfg.setUserAttributes(ImmutableMap.of("segment", "master"));
 
-            GridTestFailoverSpi failoverSpi = new GridTestFailoverSpi(true, 
(IgnitePredicate)workerNodesFilter);
+            IgniteTestFailoverSpiConfiguration failoverSpi = new 
IgniteTestFailoverSpiConfiguration(true,
+                (IgnitePredicate)workerNodesFilter);
 
             // For sure.
             failoverSpi.setMaximumFailoverAttempts(50);
 
-            cfg.setFailoverSpi(failoverSpi);
+            cfg.setFailoverSpiConfiguration(failoverSpi);
         }
         else if (gridName.startsWith("worker")) {
-            GridTestFailoverSpi failoverSpi = new GridTestFailoverSpi(false);
+            IgniteTestFailoverSpiConfiguration failoverSpi = new 
IgniteTestFailoverSpiConfiguration(false);
 
-            cfg.setFailoverSpi(failoverSpi);
+            cfg.setFailoverSpiConfiguration(failoverSpi);
 
             cfg.setUserAttributes(ImmutableMap.of("segment", "worker"));
 
@@ -461,7 +462,7 @@ public class GridCacheGroupLockFailoverSelfTest extends 
GridCommonAbstractTest {
     /**
      * Test failover SPI that remembers the job contexts of failed jobs.
      */
-    private class GridTestFailoverSpi extends AlwaysFailoverSpi {
+    private class IgniteTestFailoverSpi extends AlwaysFailoverSpi {
         /** */
         private static final String FAILOVER_NUMBER_ATTR = 
"failover:number:attr";
 
@@ -475,13 +476,15 @@ public class GridCacheGroupLockFailoverSelfTest extends 
GridCommonAbstractTest {
         private IgnitePredicate<? super ClusterNode>[] filter;
 
         /**
-         * @param master Master flag.
-         * @param filter Filters.
+         * Create SPI from configuration object.
+         *
+         * @param spiCfg SPI configuration.
          */
-        @SafeVarargs
-        GridTestFailoverSpi(boolean master, IgnitePredicate<? super 
ClusterNode>... filter) {
-            this.master = master;
-            this.filter = filter;
+        public IgniteTestFailoverSpi(IgniteTestFailoverSpiConfiguration 
spiCfg) {
+            super(spiCfg);
+
+            master = spiCfg.isMaster();
+            filter = spiCfg.getFilter();
         }
 
         /** {@inheritDoc} */
@@ -530,4 +533,44 @@ public class GridCacheGroupLockFailoverSelfTest extends 
GridCommonAbstractTest {
             return failedOverJobs;
         }
     }
+
+    /**
+     * Test failover SPI configuration.
+     */
+    private class IgniteTestFailoverSpiConfiguration extends 
AlwaysFailoverSpiConfiguration {
+        /** Node filter. */
+        private IgnitePredicate<? super ClusterNode>[] filter;
+
+        /** */
+        private final boolean master;
+
+        /**
+         * @param master Master flag.
+         * @param filter Filters.
+         */
+        @SafeVarargs
+        public IgniteTestFailoverSpiConfiguration(boolean master, 
IgnitePredicate<? super ClusterNode>... filter) {
+            this.master = master;
+            this.filter = filter;
+        }
+
+        /** {@inheritDoc} */
+        @Override public Class<IgniteTestFailoverSpi> spiClass() {
+            return IgniteTestFailoverSpi.class;
+        }
+
+        /**
+         *
+         */
+        public IgnitePredicate<? super ClusterNode>[] getFilter() {
+            return filter;
+        }
+
+        /**
+         *
+         */
+        public boolean isMaster() {
+            return master;
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheLifecycleAwareSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheLifecycleAwareSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheLifecycleAwareSelfTest.java
index be7babc..30a306e 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheLifecycleAwareSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheLifecycleAwareSelfTest.java
@@ -267,7 +267,7 @@ public class GridCacheLifecycleAwareSelfTest extends 
GridAbstractLifecycleAwareS
     @Override protected final IgniteConfiguration getConfiguration(String 
gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        cfg.setDiscoverySpi(new TcpDiscoverySpi());
+        cfg.setDiscoverySpiConfiguration(new TcpDiscoverySpiConfiguration());
 
         CacheConfiguration ccfg = defaultCacheConfiguration();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheLuceneQueryIndexTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheLuceneQueryIndexTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheLuceneQueryIndexTest.java
index 0530419..89f8b61 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheLuceneQueryIndexTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheLuceneQueryIndexTest.java
@@ -43,7 +43,7 @@ import static 
org.apache.ignite.cache.CacheWriteSynchronizationMode.*;
  */
 public class GridCacheLuceneQueryIndexTest extends GridCommonAbstractTest {
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new 
TcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinderConfiguration ipFinder = new 
TcpDiscoveryVmIpFinderConfiguration(true);
 
     /**
      *
@@ -56,11 +56,11 @@ public class GridCacheLuceneQueryIndexTest extends 
GridCommonAbstractTest {
     @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        TcpDiscoverySpi disco = new TcpDiscoverySpi();
+        TcpDiscoverySpiConfiguration disco = new 
TcpDiscoverySpiConfiguration();
 
         disco.setIpFinder(ipFinder);
 
-        cfg.setDiscoverySpi(disco);
+        cfg.setDiscoverySpiConfiguration(disco);
 
         cfg.setIncludeEventTypes();
         cfg.setRestEnabled(false);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edbfd9ad/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManagerSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManagerSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManagerSelfTest.java
index b12b8bc..dddd253 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManagerSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManagerSelfTest.java
@@ -35,7 +35,7 @@ import static org.apache.ignite.cache.CacheMode.*;
  */
 public class GridCacheMvccManagerSelfTest extends GridCommonAbstractTest {
     /** VM ip finder for TCP discovery. */
-    private static TcpDiscoveryIpFinder ipFinder = new 
TcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinderConfiguration ipFinder = new 
TcpDiscoveryVmIpFinderConfiguration(true);
 
     /** Cache mode. */
     private CacheMode mode;
@@ -44,12 +44,12 @@ public class GridCacheMvccManagerSelfTest extends 
GridCommonAbstractTest {
     @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        TcpDiscoverySpi disco = new TcpDiscoverySpi();
+        TcpDiscoverySpiConfiguration disco = new 
TcpDiscoverySpiConfiguration();
 
         disco.setMaxMissedHeartbeats(Integer.MAX_VALUE);
         disco.setIpFinder(ipFinder);
 
-        cfg.setDiscoverySpi(disco);
+        cfg.setDiscoverySpiConfiguration(disco);
         cfg.setCacheConfiguration(cacheConfiguration());
 
         return cfg;

Reply via email to