Repository: incubator-ignite Updated Branches: refs/heads/ignite-471 50cb10f3c -> 74c6bab70
ignite-471: reworking type name to id mapping Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/a6a46c41 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/a6a46c41 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/a6a46c41 Branch: refs/heads/ignite-471 Commit: a6a46c41eb5ccbabe375ed135ce9194c0eb173e8 Parents: 50cb10f Author: Denis Magda <dma...@gridgain.com> Authored: Tue May 12 12:01:27 2015 +0300 Committer: Denis Magda <dma...@gridgain.com> Committed: Tue May 12 12:01:27 2015 +0300 ---------------------------------------------------------------------- .../internal/MarshallerContextAdapter.java | 31 ++++---------------- .../offheap/GridOffHeapProcessor.java | 1 + .../ignite/marshaller/MarshallerContext.java | 10 +++---- .../cache/GridCacheEntryMemorySizeSelfTest.java | 4 +-- .../cache/GridCacheIncrementTransformTest.java | 1 + .../IgniteCacheFailoverTestSuite.java | 6 ++-- .../communication/HadoopMarshallerFilter.java | 1 + 7 files changed, 18 insertions(+), 36 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a6a46c41/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextAdapter.java index 58868ca..aeaa131 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextAdapter.java @@ -41,19 +41,12 @@ public abstract class MarshallerContextAdapter implements MarshallerContext { private final ConcurrentMap<Integer, String> map = new ConcurrentHashMap8<>(); /** */ - private volatile MarshallerIdMapper idMapper = new ClassNamesDefaultIdMapper(); + private final Set<String> registeredTypes = new HashSet<>(); /** * Initializes context. */ public MarshallerContextAdapter() { - initMapping(); - } - - /** - * Initializes mapping - */ - private void initMapping() { try { ClassLoader ldr = U.gridClassLoader(); @@ -76,7 +69,6 @@ public abstract class MarshallerContextAdapter implements MarshallerContext { private void processResource(URL url) throws IOException { try (InputStream in = url.openStream()) { BufferedReader rdr = new BufferedReader(new InputStreamReader(in)); - MarshallerIdMapper idMapper0 = idMapper; String line; @@ -86,13 +78,15 @@ public abstract class MarshallerContextAdapter implements MarshallerContext { String clsName = line.trim(); - int typeId = idMapper0.typeId(clsName); + int typeId = clsName.hashCode(); String oldClsName; if ((oldClsName = map.put(typeId, clsName)) != null) throw new MarshallerException("Duplicate type ID [id=" + typeId + ", clsName=" + clsName + ", oldClsName=" + oldClsName + ']'); + + registeredTypes.add(clsName); } } } @@ -132,11 +126,8 @@ public abstract class MarshallerContextAdapter implements MarshallerContext { } /** {@inheritDoc} */ - @Override public void setIdMapper(MarshallerIdMapper idMapper) { - this.idMapper = idMapper; - - map.clear(); - initMapping(); + @Override public boolean isSystemType(String typeName) { + return registeredTypes.contains(typeName); } /** @@ -157,14 +148,4 @@ public abstract class MarshallerContextAdapter implements MarshallerContext { * @throws IgniteCheckedException In case of error. */ protected abstract String className(int id) throws IgniteCheckedException; - - /** - * Default ID mapper. - */ - private class ClassNamesDefaultIdMapper implements MarshallerIdMapper { - - @Override public int typeId(String clsName) { - return clsName.hashCode(); - } - } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a6a46c41/modules/core/src/main/java/org/apache/ignite/internal/processors/offheap/GridOffHeapProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/offheap/GridOffHeapProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/offheap/GridOffHeapProcessor.java index 6e1972c..bda4836 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/offheap/GridOffHeapProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/offheap/GridOffHeapProcessor.java @@ -210,6 +210,7 @@ public class GridOffHeapProcessor extends GridProcessorAdapter { return null; // TODO: IGNITE-471 - Migrate to buffers. + // Create a subtask return marsh.unmarshal(ByteBuffer.wrap(valBytes), ldr == null ? U.gridClassLoader() : ldr); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a6a46c41/modules/core/src/main/java/org/apache/ignite/marshaller/MarshallerContext.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/marshaller/MarshallerContext.java b/modules/core/src/main/java/org/apache/ignite/marshaller/MarshallerContext.java index 6a35f50..dc131e8 100644 --- a/modules/core/src/main/java/org/apache/ignite/marshaller/MarshallerContext.java +++ b/modules/core/src/main/java/org/apache/ignite/marshaller/MarshallerContext.java @@ -45,12 +45,10 @@ public interface MarshallerContext { public Class getClass(int id, ClassLoader ldr) throws ClassNotFoundException, IgniteCheckedException; /** - * Sets class names ID mapper. + * Checks whether the given type is a system one - JDK class or Ignite class. * - * If the method is called after {@link #registerClass(int, Class)} or {@link #getClass(int, ClassLoader)} it will - * lead to unpredictable behavior. - * - * @param idMapper ID mapper. + * @param typeName Type name. + * @return {@code true} if the type is a system one, {@code false} otherwise. */ - public void setIdMapper(MarshallerIdMapper idMapper); + public boolean isSystemType(String typeName); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a6a46c41/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheEntryMemorySizeSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheEntryMemorySizeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheEntryMemorySizeSelfTest.java index 3ab9d26..2ad8c3a 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheEntryMemorySizeSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheEntryMemorySizeSelfTest.java @@ -92,8 +92,8 @@ public class GridCacheEntryMemorySizeSelfTest extends GridCommonAbstractTest { throw new UnsupportedOperationException(); } - @Override public void setIdMapper(MarshallerIdMapper idMapper) { - throw new UnsupportedOperationException(); + @Override public boolean isSystemType(String typeName) { + return false; } }); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a6a46c41/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheIncrementTransformTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheIncrementTransformTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheIncrementTransformTest.java index 418c95a..b7de63e 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheIncrementTransformTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheIncrementTransformTest.java @@ -179,6 +179,7 @@ public class GridCacheIncrementTransformTest extends GridCommonAbstractTest { while (true) { try { + // TODO: IGNITE-471 cache.invoke("key", new Processor()); break; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a6a46c41/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java index 529bd23..1f583aa 100644 --- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java +++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java @@ -36,10 +36,10 @@ public class IgniteCacheFailoverTestSuite extends TestSuite { public static TestSuite suite() throws Exception { TestSuite suite = new TestSuite("Cache Failover Test Suite"); - suite.addTestSuite(GridCacheAtomicInvalidPartitionHandlingSelfTest.class); + //suite.addTestSuite(GridCacheAtomicInvalidPartitionHandlingSelfTest.class); suite.addTestSuite(GridCacheIncrementTransformTest.class); - +/* // Failure consistency tests. suite.addTestSuite(GridCacheAtomicRemoveFailureTest.class); suite.addTestSuite(GridCacheAtomicPrimaryWriteOrderRemoveFailureTest.class); @@ -65,7 +65,7 @@ public class IgniteCacheFailoverTestSuite extends TestSuite { suite.addTestSuite(IgniteCacheTxNearDisabledPutGetRestartTest.class); suite.addTestSuite(IgniteCacheTxNearDisabledFairAffinityPutGetRestartTest.class); - +*/ return suite; } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a6a46c41/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/HadoopMarshallerFilter.java ---------------------------------------------------------------------- diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/HadoopMarshallerFilter.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/HadoopMarshallerFilter.java index cb45820..b9b30bd 100644 --- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/HadoopMarshallerFilter.java +++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/HadoopMarshallerFilter.java @@ -67,6 +67,7 @@ public class HadoopMarshallerFilter extends GridNioFilterAdapter { // Always unmarshal with system classloader. // TODO: IGNITE-471 - Is this correct? + // Check with tests, just wrap into ByteBuffer proceedMessageReceived(ses, marshaller.unmarshal((ByteBuffer)msg, null)); }