You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/09/03 12:10:47 UTC
[03/18] ignite git commit: IGNITE-1347: Created real platform
processor.
IGNITE-1347: Created real platform processor.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/9910b6f6
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/9910b6f6
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/9910b6f6
Branch: refs/heads/ignite-1349
Commit: 9910b6f6bb3755269c1655a2aad15319a8e7e557
Parents: 61aad3c
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Wed Sep 2 16:19:27 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Wed Sep 2 16:19:27 2015 +0300
----------------------------------------------------------------------
.../cache/store/CacheOsStoreManager.java | 32 +-
.../cache/store/CacheStoreManager.java | 10 +
.../store/GridCacheStoreManagerAdapter.java | 5 -
.../platform/PlatformNoopProcessor.java | 11 +-
.../processors/platform/PlatformProcessor.java | 10 +
.../cache/store/PlatformCacheStore.java | 25 ++
.../platform/PlatformProcessorImpl.java | 360 +++++++++++++++++++
.../cache/store/PlatformCacheStore.java | 25 --
8 files changed, 444 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/9910b6f6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheOsStoreManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheOsStoreManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheOsStoreManager.java
index 6f73ad4..f7f5f4e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheOsStoreManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheOsStoreManager.java
@@ -17,8 +17,12 @@
package org.apache.ignite.internal.processors.cache.store;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.cache.store.CacheStore;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.internal.GridKernalContext;
+import org.apache.ignite.internal.processors.platform.PlatformProcessor;
+import org.apache.ignite.internal.processors.platform.cache.store.PlatformCacheStore;
import org.apache.ignite.marshaller.portable.PortableMarshaller;
/**
@@ -43,6 +47,25 @@ public class CacheOsStoreManager extends GridCacheStoreManagerAdapter {
}
/** {@inheritDoc} */
+ @Override protected void start0() throws IgniteCheckedException {
+ if (configured()) {
+ CacheStore store = configuredStore();
+
+ assert store != null;
+ assert !(store instanceof GridCacheWriteBehindStore);
+
+ if (store instanceof PlatformCacheStore) {
+ PlatformProcessor proc = ctx.platform();
+
+ proc.registerStore((PlatformCacheStore)store, configuredConvertPortable());
+ }
+ }
+
+ super.start0();
+ }
+
+
+ /** {@inheritDoc} */
@Override protected GridKernalContext igniteContext() {
return ctx;
}
@@ -53,7 +76,12 @@ public class CacheOsStoreManager extends GridCacheStoreManagerAdapter {
}
/** {@inheritDoc} */
- @Override protected boolean convertPortable() {
- return !(cfg.isKeepPortableInStore() && ctx.config().getMarshaller() instanceof PortableMarshaller);
+ @Override public boolean convertPortable() {
+ return configuredConvertPortable() && !(cfgStore instanceof PlatformCacheStore);
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean configuredConvertPortable() {
+ return !(ctx.config().getMarshaller() instanceof PortableMarshaller && cfg.isKeepPortableInStore());
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/9910b6f6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheStoreManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheStoreManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheStoreManager.java
index f5fc473..509c806 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheStoreManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheStoreManager.java
@@ -186,4 +186,14 @@ public interface CacheStoreManager<K, V> extends GridCacheManager<K, V> {
* @throws IgniteCheckedException If failed.
*/
public void forceFlush() throws IgniteCheckedException;
+
+ /**
+ * @return Convert-portable flag.
+ */
+ public boolean convertPortable();
+
+ /**
+ * @return Configured convert portable flag.
+ */
+ public boolean configuredConvertPortable();
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/9910b6f6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheStoreManagerAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheStoreManagerAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheStoreManagerAdapter.java
index 420d011..174e1ce 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheStoreManagerAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheStoreManagerAdapter.java
@@ -858,11 +858,6 @@ public abstract class GridCacheStoreManagerAdapter extends GridCacheManagerAdapt
protected abstract CacheConfiguration cacheConfiguration();
/**
- * @return Convert-portable flag.
- */
- protected abstract boolean convertPortable();
-
- /**
*
*/
private static class SessionData {
http://git-wip-us.apache.org/repos/asf/ignite/blob/9910b6f6/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java
index 8cba731..0f108cf 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java
@@ -21,6 +21,7 @@ import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.processors.GridProcessorAdapter;
+import org.apache.ignite.internal.processors.platform.cache.store.PlatformCacheStore;
import org.jetbrains.annotations.Nullable;
/**
@@ -101,8 +102,8 @@ public class PlatformNoopProcessor extends GridProcessorAdapter implements Platf
return null;
}
- @Override
- public PlatformTarget events(PlatformTarget grp) {
+ /** {@inheritDoc} */
+ @Override public PlatformTarget events(PlatformTarget grp) {
return null;
}
@@ -115,4 +116,10 @@ public class PlatformNoopProcessor extends GridProcessorAdapter implements Platf
@Override public PlatformTarget extensions() {
return null;
}
+
+ /** {@inheritDoc} */
+ @Override public void registerStore(PlatformCacheStore store, boolean convertPortable)
+ throws IgniteCheckedException {
+ // No-op.
+ }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/9910b6f6/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java
index a53c6b1..e1fa891 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.processors.platform;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.internal.processors.GridProcessor;
+import org.apache.ignite.internal.processors.platform.cache.store.PlatformCacheStore;
import org.jetbrains.annotations.Nullable;
/**
@@ -159,4 +160,13 @@ public interface PlatformProcessor extends GridProcessor {
* @return Platform extensions.
*/
public PlatformTarget extensions();
+
+ /**
+ * Register cache store.
+ *
+ * @param store Store.
+ * @param convertPortable Convert portable flag.
+ * @throws IgniteCheckedException If failed.
+ */
+ public void registerStore(PlatformCacheStore store, boolean convertPortable) throws IgniteCheckedException;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/9910b6f6/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cache/store/PlatformCacheStore.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cache/store/PlatformCacheStore.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cache/store/PlatformCacheStore.java
new file mode 100644
index 0000000..3d54979
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cache/store/PlatformCacheStore.java
@@ -0,0 +1,25 @@
+/*
+ * 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.internal.processors.platform.cache.store;
+
+/**
+ * Marker interface denoting that this instance is platform cache store.
+ */
+public interface PlatformCacheStore {
+ // No-op.
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/9910b6f6/modules/platform/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java b/modules/platform/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java
new file mode 100644
index 0000000..e5e7a57
--- /dev/null
+++ b/modules/platform/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java
@@ -0,0 +1,360 @@
+/*
+ * 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.internal.processors.platform;
+
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteDataStreamer;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.configuration.PlatformConfiguration;
+import org.apache.ignite.internal.GridKernalContext;
+import org.apache.ignite.internal.IgniteComputeImpl;
+import org.apache.ignite.internal.cluster.ClusterGroupAdapter;
+import org.apache.ignite.internal.portable.PortableRawWriterEx;
+import org.apache.ignite.internal.processors.GridProcessorAdapter;
+import org.apache.ignite.internal.processors.cache.IgniteCacheProxy;
+import org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl;
+import org.apache.ignite.internal.processors.platform.cache.PlatformCache;
+import org.apache.ignite.internal.processors.platform.cache.affinity.PlatformAffinity;
+import org.apache.ignite.internal.processors.platform.cache.store.PlatformCacheStore;
+import org.apache.ignite.internal.processors.platform.cluster.PlatformClusterGroup;
+import org.apache.ignite.internal.processors.platform.compute.PlatformCompute;
+import org.apache.ignite.internal.processors.platform.datastreamer.PlatformDataStreamer;
+import org.apache.ignite.internal.processors.platform.dotnet.PlatformDotNetCacheStore;
+import org.apache.ignite.internal.processors.platform.events.PlatformEvents;
+import org.apache.ignite.internal.processors.platform.memory.PlatformMemory;
+import org.apache.ignite.internal.processors.platform.memory.PlatformOutputStream;
+import org.apache.ignite.internal.processors.platform.messaging.PlatformMessaging;
+import org.apache.ignite.internal.processors.platform.services.PlatformServices;
+import org.apache.ignite.internal.processors.platform.transactions.PlatformTransactions;
+import org.apache.ignite.internal.processors.platform.utils.PlatformUtils;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+
+/**
+ * GridGain platform processor.
+ */
+public class PlatformProcessorImpl extends GridProcessorAdapter implements PlatformProcessor {
+ /** Start latch. */
+ private final CountDownLatch startLatch = new CountDownLatch(1);
+
+ /** Stores pending initialization. */
+ private final Collection<StoreInfo> pendingStores =
+ Collections.newSetFromMap(new ConcurrentHashMap<StoreInfo, Boolean>());
+
+ /** Started stores. */
+ private final Collection<PlatformCacheStore> stores =
+ Collections.newSetFromMap(new ConcurrentHashMap<PlatformCacheStore, Boolean>());
+
+ /** Lock for store lifecycle operations. */
+ private final ReadWriteLock storeLock = new ReentrantReadWriteLock();
+
+ /** Logger. */
+ private final IgniteLogger log;
+
+ /** Context. */
+ private final PlatformContext platformCtx;
+
+ /** Interop configuration. */
+ private final PlatformConfigurationEx interopCfg;
+
+ /** Whether processor is started. */
+ private boolean started;
+
+ /** Whether processor if stopped (or stopping). */
+ private boolean stopped;
+
+ /**
+ * Constructor.
+ *
+ * @param ctx Kernal context.
+ */
+ public PlatformProcessorImpl(GridKernalContext ctx) {
+ super(ctx);
+
+ log = ctx.log(PlatformProcessorImpl.class);
+
+ PlatformConfiguration interopCfg0 = ctx.config().getPlatformConfiguration();
+
+ assert interopCfg0 != null : "Must be checked earlier during component creation.";
+
+ if (!(interopCfg0 instanceof PlatformConfigurationEx))
+ throw new IgniteException("Unsupported platform configuration: " + interopCfg0.getClass().getName());
+
+ interopCfg = (PlatformConfigurationEx)interopCfg0;
+
+ if (!F.isEmpty(interopCfg.warnings())) {
+ for (String w : interopCfg.warnings())
+ U.warn(log, w);
+ }
+
+ platformCtx = new PlatformContextImpl(ctx, interopCfg.gate(), interopCfg.memory());
+ }
+
+ /** {@inheritDoc} */
+ @Override public void start() throws IgniteCheckedException {
+ try (PlatformMemory mem = platformCtx.memory().allocate()) {
+ PlatformOutputStream out = mem.output();
+
+ PortableRawWriterEx writer = platformCtx.writer(out);
+
+ writer.writeString(ctx.gridName());
+
+ out.synchronize();
+
+ platformCtx.gateway().onStart(mem.pointer());
+ }
+
+ // At this moment all necessary native libraries must be loaded, so we can process with store creation.
+ storeLock.writeLock().lock();
+
+ try {
+ for (StoreInfo store : pendingStores)
+ registerStore0(store.store, store.convertPortable);
+
+ pendingStores.clear();
+
+ started = true;
+ }
+ finally {
+ storeLock.writeLock().unlock();
+ }
+
+ // Add Interop node attributes.
+ ctx.addNodeAttribute(PlatformUtils.ATTR_PLATFORM, interopCfg.platform());
+ }
+
+ /** {@inheritDoc} */
+ @Override public void onKernalStop(boolean cancel) {
+ startLatch.countDown();
+ }
+
+ /** {@inheritDoc} */
+ @Override public void stop(boolean cancel) throws IgniteCheckedException {
+ if (platformCtx != null) {
+ // Destroy cache stores.
+ storeLock.writeLock().lock();
+
+ try {
+ for (PlatformCacheStore store : stores) {
+ if (store != null) {
+ if (store instanceof PlatformDotNetCacheStore) {
+ PlatformDotNetCacheStore store0 = (PlatformDotNetCacheStore)store;
+
+ try {
+ store0.destroy(platformCtx.kernalContext());
+ }
+ catch (Exception e) {
+ U.error(log, "Failed to destroy .Net cache store [store=" + store0 +
+ ", err=" + e.getMessage() + ']');
+ }
+ }
+ else
+ assert false : "Invalid interop cache store type: " + store;
+ }
+ }
+ }
+ finally {
+ stopped = true;
+
+ storeLock.writeLock().unlock();
+ }
+
+ platformCtx.gateway().onStop();
+ }
+ }
+
+ /** {@inheritDoc} */
+ @Override public Ignite ignite() {
+ return ctx.grid();
+ }
+
+ /** {@inheritDoc} */
+ @Override public long environmentPointer() {
+ return platformCtx.gateway().environmentPointer();
+ }
+
+ /** {@inheritDoc} */
+ public void releaseStart() {
+ startLatch.countDown();
+ }
+
+ /** {@inheritDoc} */
+ public void awaitStart() throws IgniteCheckedException {
+ U.await(startLatch);
+ }
+
+ /** {@inheritDoc} */
+ @Override public PlatformContext context() {
+ return platformCtx;
+ }
+
+ /** {@inheritDoc} */
+ @Override public PlatformTarget cache(@Nullable String name) throws IgniteCheckedException {
+ IgniteCacheProxy cache = (IgniteCacheProxy)ctx.grid().cache(name);
+
+ if (cache == null)
+ throw new IllegalArgumentException("Cache doesn't exist: " + name);
+
+ return new PlatformCache(platformCtx, cache.keepPortable(), false);
+ }
+
+ /** {@inheritDoc} */
+ @Override public PlatformTarget createCache(@Nullable String name) throws IgniteCheckedException {
+ IgniteCacheProxy cache = (IgniteCacheProxy)ctx.grid().createCache(name);
+
+ assert cache != null;
+
+ return new PlatformCache(platformCtx, cache.keepPortable(), false);
+ }
+
+ /** {@inheritDoc} */
+ @Override public PlatformTarget getOrCreateCache(@Nullable String name) throws IgniteCheckedException {
+ IgniteCacheProxy cache = (IgniteCacheProxy)ctx.grid().getOrCreateCache(name);
+
+ assert cache != null;
+
+ return new PlatformCache(platformCtx, cache.keepPortable(), false);
+ }
+
+ /** {@inheritDoc} */
+ @Override public PlatformTarget affinity(@Nullable String name) throws IgniteCheckedException {
+ return new PlatformAffinity(platformCtx, ctx, name);
+ }
+
+ /** {@inheritDoc} */
+ @Override public PlatformTarget dataStreamer(@Nullable String cacheName, boolean keepPortable)
+ throws IgniteCheckedException {
+ IgniteDataStreamer ldr = ctx.dataStream().dataStreamer(cacheName);
+
+ return new PlatformDataStreamer(platformCtx, cacheName, (DataStreamerImpl)ldr, keepPortable);
+ }
+
+ /** {@inheritDoc} */
+ @Override public PlatformTarget transactions() {
+ return new PlatformTransactions(platformCtx);
+ }
+
+ /** {@inheritDoc} */
+ @Override public PlatformTarget projection() throws IgniteCheckedException {
+ return new PlatformClusterGroup(platformCtx, ctx.grid().cluster());
+ }
+
+ /** {@inheritDoc} */
+ @Override public PlatformTarget compute(PlatformTarget grp) {
+ PlatformClusterGroup grp0 = (PlatformClusterGroup)grp;
+
+ assert grp0.projection() instanceof ClusterGroupAdapter; // Safety for very complex ClusterGroup hierarchy.
+
+ return new PlatformCompute(platformCtx, (IgniteComputeImpl)((ClusterGroupAdapter)grp0.projection()).compute());
+ }
+
+ /** {@inheritDoc} */
+ @Override public PlatformTarget message(PlatformTarget grp) {
+ PlatformClusterGroup grp0 = (PlatformClusterGroup)grp;
+
+ return new PlatformMessaging(platformCtx, grp0.projection().ignite().message(grp0.projection()));
+ }
+
+ /** {@inheritDoc} */
+ @Override public PlatformTarget events(PlatformTarget grp) {
+ PlatformClusterGroup grp0 = (PlatformClusterGroup)grp;
+
+ return new PlatformEvents(platformCtx, grp0.projection().ignite().events(grp0.projection()));
+ }
+
+ /** {@inheritDoc} */
+ @Override public PlatformTarget services(PlatformTarget grp) {
+ PlatformClusterGroup grp0 = (PlatformClusterGroup)grp;
+
+ return new PlatformServices(platformCtx, grp0.projection().ignite().services(grp0.projection()), false);
+ }
+
+ /** {@inheritDoc} */
+ @Override public PlatformTarget extensions() {
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override public void registerStore(PlatformCacheStore store, boolean convertPortable)
+ throws IgniteCheckedException {
+ storeLock.readLock().lock();
+
+ try {
+ if (stopped)
+ throw new IgniteCheckedException("Failed to initialize interop store becuase node is stopping: " +
+ store);
+
+ if (started)
+ registerStore0(store, convertPortable);
+ else
+ pendingStores.add(new StoreInfo(store, convertPortable));
+ }
+ finally {
+ storeLock.readLock().unlock();
+ }
+ }
+
+ /**
+ * Internal store initialization routine.
+ *
+ * @param store Store.
+ * @param convertPortable Convert portable flag.
+ * @throws IgniteCheckedException If failed.
+ */
+ private void registerStore0(PlatformCacheStore store, boolean convertPortable) throws IgniteCheckedException {
+ if (store instanceof PlatformDotNetCacheStore) {
+ PlatformDotNetCacheStore store0 = (PlatformDotNetCacheStore)store;
+
+ store0.initialize(ctx, convertPortable);
+ }
+ else
+ throw new IgniteCheckedException("Unsupported interop store: " + store);
+ }
+
+ /**
+ * Store and manager pair.
+ */
+ private static class StoreInfo {
+ /** Store. */
+ private final PlatformCacheStore store;
+
+ /** Convert portable flag. */
+ private final boolean convertPortable;
+
+ /**
+ * Constructor.
+ *
+ * @param store Store.
+ * @param convertPortable Convert portable flag.
+ */
+ private StoreInfo(PlatformCacheStore store, boolean convertPortable) {
+ this.store = store;
+ this.convertPortable = convertPortable;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/9910b6f6/modules/platform/src/main/java/org/apache/ignite/internal/processors/platform/cache/store/PlatformCacheStore.java
----------------------------------------------------------------------
diff --git a/modules/platform/src/main/java/org/apache/ignite/internal/processors/platform/cache/store/PlatformCacheStore.java b/modules/platform/src/main/java/org/apache/ignite/internal/processors/platform/cache/store/PlatformCacheStore.java
deleted file mode 100644
index 3d54979..0000000
--- a/modules/platform/src/main/java/org/apache/ignite/internal/processors/platform/cache/store/PlatformCacheStore.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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.internal.processors.platform.cache.store;
-
-/**
- * Marker interface denoting that this instance is platform cache store.
- */
-public interface PlatformCacheStore {
- // No-op.
-}
\ No newline at end of file