You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2017/04/14 11:22:43 UTC

[03/10] ignite git commit: IGNITE-4938: Moved OptimizedMarshaller to private package. This closes #1793.

http://git-wip-us.apache.org/repos/asf/ignite/blob/a1b5b8c3/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerNodeFailoverTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerNodeFailoverTest.java b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerNodeFailoverTest.java
deleted file mode 100644
index d6bbdb4..0000000
--- a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerNodeFailoverTest.java
+++ /dev/null
@@ -1,357 +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.marshaller.optimized;
-
-import java.io.File;
-import java.io.Serializable;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.Callable;
-import org.apache.ignite.Ignite;
-import org.apache.ignite.IgniteCache;
-import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.IgniteInternalFuture;
-import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.marshaller.Marshaller;
-import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
-import org.apache.ignite.testframework.GridTestUtils;
-import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
-
-import static org.apache.ignite.cache.CacheMode.PARTITIONED;
-import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
-
-/**
- *
- */
-public class OptimizedMarshallerNodeFailoverTest extends GridCommonAbstractTest {
-    /** */
-    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
-
-    /** */
-    private boolean cache;
-
-    /** */
-    private String workDir;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        TcpDiscoverySpi disco = new TcpDiscoverySpi();
-
-        disco.setIpFinder(ipFinder);
-
-        cfg.setDiscoverySpi(disco);
-
-        cfg.setMarshaller(new OptimizedMarshaller());
-
-        cfg.setWorkDirectory(workDir);
-
-        if (cache) {
-            CacheConfiguration ccfg = new CacheConfiguration();
-
-            ccfg.setCacheMode(PARTITIONED);
-            ccfg.setBackups(1);
-            ccfg.setWriteSynchronizationMode(FULL_SYNC);
-
-            cfg.setCacheConfiguration(ccfg);
-        }
-        else
-            cfg.setClientMode(true);
-
-        return cfg;
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testClassCacheUpdateFailover1() throws Exception {
-        classCacheUpdateFailover(false);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testClassCacheUpdateFailover2() throws Exception {
-        classCacheUpdateFailover(true);
-    }
-
-    /**
-     * @param stopSrv If {@code true} restarts server node, otherwise client node.
-     * @throws Exception If failed.
-     */
-    private void classCacheUpdateFailover(boolean stopSrv) throws Exception {
-        cache = true;
-
-        startGridsMultiThreaded(2);
-
-        cache = stopSrv;
-
-        IgniteCache<Integer, Object> cache0 = ignite(0).cache(null);
-
-        for (int i = 0; i < 20; i++) {
-            log.info("Iteration: " + i);
-
-            Map<Integer, Object> map = new HashMap<>();
-
-            for (int j = 0; j < 10_000; j++)
-                map.put(j, create(i + 1));
-
-            final Ignite ignite = startGrid(2);
-
-            IgniteInternalFuture fut = GridTestUtils.runAsync(new Callable() {
-                @Override public Object call() throws Exception {
-                    ignite.close();
-
-                    return null;
-                }
-            });
-
-            cache0.putAll(map);
-
-            fut.get();
-        }
-
-        cache = true;
-
-        Ignite ignite = startGrid(2); // Check can start one more cache node.
-
-        assertNotNull(ignite.cache(null));
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testRestartAllNodes() throws Exception {
-        cache = true;
-
-        String home = U.getIgniteHome();
-
-        String[] workDirs = new String[3];
-
-        for (int i = 0; i < 3; i++) {
-            workDirs[i] = home + "/work/marshallerTestNode_" + i;
-
-            File file = new File(workDirs[i]);
-
-            if (file.exists())
-                assert U.delete(file);
-        }
-
-        try {
-            for (int i = 0; i < workDirs.length; i++) {
-                workDir = workDirs[i];
-
-                startGrid(i);
-            }
-
-            Marshaller marsh = ignite(0).configuration().getMarshaller();
-
-            TestClass1 obj = new TestClass1();
-
-            obj.val = 111;
-
-            byte[] bytes = marsh.marshal(obj);
-
-            stopAllGrids();
-
-            for (int i = 0; i < workDirs.length; i++) {
-                workDir = workDirs[i];
-
-                startGrid(i);
-            }
-
-            for (int i = 0; i < 3; i++) {
-                marsh = ignite(i).configuration().getMarshaller();
-
-                TestClass1 obj0 = marsh.unmarshal(bytes, null);
-
-                assertEquals(111, obj0.val);
-            }
-        }
-        finally {
-            for (String dir : workDirs)
-                assert U.delete(new File(dir));
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void afterTest() throws Exception {
-        super.afterTest();
-
-        stopAllGrids();
-    }
-
-    /**
-     * @param id Class ID.
-     * @return Test class instance.
-     */
-    private static Object create(int id) {
-        switch (id) {
-            case 1: return new TestClass1();
-
-            case 2: return new TestClass2();
-
-            case 3: return new TestClass3();
-
-            case 4: return new TestClass4();
-
-            case 5: return new TestClass5();
-
-            case 6: return new TestClass6();
-
-            case 7: return new TestClass7();
-
-            case 8: return new TestClass8();
-
-            case 9: return new TestClass9();
-
-            case 10: return new TestClass10();
-
-            case 11: return new TestClass11();
-
-            case 12: return new TestClass12();
-
-            case 13: return new TestClass13();
-
-            case 14: return new TestClass14();
-
-            case 15: return new TestClass15();
-
-            case 16: return new TestClass16();
-
-            case 17: return new TestClass17();
-
-            case 18: return new TestClass18();
-
-            case 19: return new TestClass19();
-
-            case 20: return new TestClass20();
-        }
-
-        fail();
-
-        return null;
-    }
-
-    /**
-     *
-     */
-    static class TestClass1 implements Serializable {
-        /** */
-        int val;
-    }
-
-    /**
-     *
-     */
-    static class TestClass2 implements Serializable {}
-
-    /**
-     *
-     */
-    static class TestClass3 implements Serializable {}
-
-    /**
-     *
-     */
-    static class TestClass4 implements Serializable {}
-
-    /**
-     *
-     */
-    static class TestClass5 implements Serializable {}
-
-    /**
-     *
-     */
-    static class TestClass6 implements Serializable {}
-
-    /**
-     *
-     */
-    static class TestClass7 implements Serializable {}
-
-    /**
-     *
-     */
-    static class TestClass8 implements Serializable {}
-
-    /**
-     *
-     */
-    static class TestClass9 implements Serializable {}
-
-    /**
-     *
-     */
-    static class TestClass10 implements Serializable {}
-
-    /**
-     *
-     */
-    static class TestClass11 implements Serializable {}
-
-    /**
-     *
-     */
-    static class TestClass12 implements Serializable {}
-
-    /**
-     *
-     */
-    static class TestClass13 implements Serializable {}
-
-    /**
-     *
-     */
-    static class TestClass14 implements Serializable {}
-
-    /**
-     *
-     */
-    static class TestClass15 implements Serializable {}
-
-    /**
-     *
-     */
-    static class TestClass16 implements Serializable {}
-
-    /**
-     *
-     */
-    static class TestClass17 implements Serializable {}
-
-    /**
-     *
-     */
-    static class TestClass18 implements Serializable {}
-
-    /**
-     *
-     */
-    static class TestClass19 implements Serializable {}
-
-    /**
-     *
-     */
-    static class TestClass20 implements Serializable {}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/a1b5b8c3/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerPooledSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerPooledSelfTest.java b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerPooledSelfTest.java
deleted file mode 100644
index a883270..0000000
--- a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerPooledSelfTest.java
+++ /dev/null
@@ -1,44 +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.marshaller.optimized;
-
-import org.apache.ignite.marshaller.Marshaller;
-import org.apache.ignite.testframework.junits.common.GridCommonTest;
-
-/**
- * Optimized marshaller self test.
- */
-@GridCommonTest(group = "Marshaller")
-public class OptimizedMarshallerPooledSelfTest extends OptimizedMarshallerSelfTest {
-    /** {@inheritDoc} */
-    @Override protected Marshaller marshaller() {
-        OptimizedMarshaller m = new OptimizedMarshaller(false);
-
-        m.setPoolSize(8);
-
-        return m;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void afterTestsStopped() throws Exception {
-        super.afterTestsStopped();
-
-        // Reset static registry.
-        new OptimizedMarshaller().setPoolSize(0);
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/a1b5b8c3/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerSelfTest.java b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerSelfTest.java
deleted file mode 100644
index a034b3a..0000000
--- a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerSelfTest.java
+++ /dev/null
@@ -1,283 +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.marshaller.optimized;
-
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-import java.util.concurrent.Callable;
-import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.lang.IgniteRunnable;
-import org.apache.ignite.marshaller.GridMarshallerAbstractTest;
-import org.apache.ignite.marshaller.Marshaller;
-import org.apache.ignite.testframework.GridTestUtils;
-import org.apache.ignite.testframework.junits.common.GridCommonTest;
-
-/**
- * Optimized marshaller self test.
- */
-@GridCommonTest(group = "Marshaller")
-public class OptimizedMarshallerSelfTest extends GridMarshallerAbstractTest {
-    /** {@inheritDoc} */
-    @Override protected Marshaller marshaller() {
-        return new OptimizedMarshaller(false);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testTestMarshalling() throws Exception {
-        final String msg = "PASSED";
-
-        byte[] buf = marshal(new IgniteRunnable() {
-            @Override public void run() {
-                c1.apply(msg);
-                c2.apply(msg);
-
-                c3.apply();
-                c4.reduce();
-
-                System.out.println("Test message: " + msg);
-            }
-        });
-
-        Runnable r = unmarshal(buf);
-
-        assertNotNull(r);
-
-        r.run();
-    }
-
-    /**
-     * Tests marshal self-linked object.
-     *
-     * @throws IgniteCheckedException If marshalling failed.
-     */
-    public void testMarshallingSelfLink() throws IgniteCheckedException {
-        SelfLink sl = new SelfLink("a string 1");
-
-        sl.link(sl);
-
-        SelfLink sl1 = unmarshal(marshal(sl));
-
-        assert sl1.link() == sl1;
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testInvalid() throws Exception {
-        GridTestUtils.assertThrows(
-            log,
-            new Callable<Object>() {
-                @Override public Object call() throws Exception {
-                    byte[] arr = new byte[10];
-
-                    arr[0] = (byte)200;
-
-                    unmarshal(arr);
-
-                    return null;
-                }
-            },
-            IgniteCheckedException.class,
-            null
-        );
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testNested() throws Exception {
-        NestedTestObject obj = new NestedTestObject("String", 100);
-
-        NestedTestObject newObj = unmarshal(marshal(obj));
-
-        assertEquals("String", newObj.str);
-        assertEquals(100, newObj.val);
-    }
-
-    /**
-     * Class for nested execution test.
-     */
-    private static class NestedTestObject implements Serializable {
-        /** */
-        private String str;
-
-        /** */
-        private int val;
-
-        /**
-         * @param str String.
-         * @param val Value.
-         */
-        private NestedTestObject(String str, int val) {
-            this.str = str;
-            this.val = val;
-        }
-
-        /** {@inheritDoc} */
-        private void writeObject(ObjectOutputStream out) throws IOException {
-            try {
-                byte[] arr = marshal(str);
-
-                out.writeInt(arr.length);
-                out.write(arr);
-
-                out.writeInt(val);
-            }
-            catch (IgniteCheckedException e) {
-                throw new IOException(e);
-            }
-        }
-
-        /** {@inheritDoc} */
-        @SuppressWarnings("UnusedParameters")
-        private void readObject(ObjectInputStream in) throws IOException {
-            try {
-                byte[] arr = new byte[in.readInt()];
-
-                in.read(arr);
-
-                str = unmarshal(arr);
-
-                val = in.readInt();
-            }
-            catch (IgniteCheckedException e) {
-                throw new IOException(e);
-            }
-        }
-    }
-
-    /** */
-    private static class TestObject2 {
-        /** */
-        private final int i;
-
-        /**
-         * Constructor for TestObject2 instances.
-         *
-         * @param i Integer value to hold.
-         */
-        private TestObject2(int i) {
-            this.i = i;
-        }
-
-        /** {@inheritDoc} */
-        @Override public boolean equals(Object o) {
-            return i == ((TestObject2)o).i;
-        }
-
-        /** {@inheritDoc} */
-        @Override public int hashCode() {
-            return i;
-        }
-    }
-
-    /**
-     * Static nested class.
-     */
-    private static class TestObject {
-        /** */
-        private final TestObject2 o2;
-
-        /** The only meaningful field in the class, used for {@link #equals(Object o)} and {@link #hashCode()}. */
-        private final String str;
-
-        /**
-         * @param str String to hold.
-         * @param i Integer.
-         */
-        TestObject(String str, int i) {
-            this.str = str;
-
-            o2 = new TestObject2(i);
-        }
-
-        /**
-         * Method for accessing value of the hold string after the object is created.
-         *
-         * @return Wrapped string.
-         */
-        public String string() {
-            return str;
-        }
-
-        /**
-         * @return Object held in this wrapped.
-         */
-        public TestObject2 obj() {
-            return o2;
-        }
-
-        /** {@inheritDoc} */
-        @Override public int hashCode() {
-            return 31 * o2.hashCode() + str.hashCode();
-        }
-
-        /** {@inheritDoc} */
-        @SuppressWarnings("RedundantIfStatement")
-        @Override public boolean equals(Object o) {
-            if (this == o)
-                return true;
-
-            if (o == null || getClass() != o.getClass())
-                return false;
-
-            TestObject obj = (TestObject)o;
-
-            if (o2 != null ? !o2.equals(obj.o2) : obj.o2 != null)
-                return false;
-
-            if (str != null ? !str.equals(obj.str) : obj.str != null)
-                return false;
-
-            return true;
-        }
-    }
-
-    /**
-     * Static nested class.
-     */
-    private static class SelfLink extends TestObject {
-        /** */
-        private SelfLink link;
-
-        /**
-         * @param str String to hold.
-         */
-        SelfLink(String str) {
-            super(str, 1);
-        }
-
-        /**
-         * @return The object this link points to,.
-         */
-        public SelfLink link() {
-            return link;
-        }
-
-        /**
-         * @param link The object this link should points to,
-         */
-        public void link(SelfLink link) {
-            this.link = link;
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/a1b5b8c3/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerSerialPersistentFieldsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerSerialPersistentFieldsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerSerialPersistentFieldsSelfTest.java
deleted file mode 100644
index ef05009..0000000
--- a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerSerialPersistentFieldsSelfTest.java
+++ /dev/null
@@ -1,114 +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.marshaller.optimized;
-
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.ObjectStreamField;
-import java.io.Serializable;
-import org.apache.ignite.marshaller.GridMarshallerAbstractTest;
-import org.apache.ignite.marshaller.Marshaller;
-
-/**
- * Test that Optimized Marshaller works with classes with serialPersistentFields.
- */
-public class OptimizedMarshallerSerialPersistentFieldsSelfTest  extends GridMarshallerAbstractTest {
-    /** {@inheritDoc} */
-    @Override protected Marshaller marshaller() {
-        return new OptimizedMarshaller(false);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testOptimizedMarshaller() throws Exception {
-        unmarshal(marshal(new TestClass()));
-
-        TestClass2 val = unmarshal(marshal(new TestClass2()));
-
-        assertNull(val.field3);
-    }
-
-    /**
-     * Test class with serialPersistentFields fields.
-     */
-    private static class TestClass implements Serializable {
-        private static final long serialVersionUID = 0L;
-
-        /** For serialization compatibility. */
-        private static final ObjectStreamField[] serialPersistentFields = {
-            new ObjectStreamField("field1", Integer.TYPE),
-            new ObjectStreamField("field2", Integer.TYPE)
-        };
-
-        /**
-         * @param s Object output stream.
-         */
-        private void writeObject(ObjectOutputStream s) throws IOException {
-            s.putFields().put("field1", 1);
-            s.putFields().put("field2", 2);
-            s.writeFields();
-
-            s.writeObject(null);
-        }
-
-        /**
-         * @param s Object input stream.
-         */
-        private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException {
-            s.defaultReadObject();
-
-            s.readObject();
-        }
-    }
-
-    /**
-     * Test class with serialPersistentFields fields.
-     */
-    private static class TestClass2 implements Serializable {
-        private static final long serialVersionUID = 0L;
-
-        private Integer field3 = 1;
-
-        /** For serialization compatibility. */
-        private static final ObjectStreamField[] serialPersistentFields = {
-            new ObjectStreamField("field1", Integer.TYPE),
-            new ObjectStreamField("field2", Integer.TYPE)
-        };
-
-        /**
-         * @param s Object output stream.
-         */
-        private void writeObject(ObjectOutputStream s) throws IOException {
-            s.putFields().put("field1", 1);
-            s.putFields().put("field2", 2);
-            s.writeFields();
-
-            s.writeObject(null);
-        }
-
-        /**
-         * @param s Object input stream.
-         */
-        private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException {
-            s.defaultReadObject();
-
-            s.readObject();
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/a1b5b8c3/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerTest.java b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerTest.java
deleted file mode 100644
index 2658a29..0000000
--- a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerTest.java
+++ /dev/null
@@ -1,790 +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.marshaller.optimized;
-
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.io.Serializable;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.net.InetSocketAddress;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.concurrent.ConcurrentMap;
-import org.apache.ignite.Ignite;
-import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.compute.ComputeJobAdapter;
-import org.apache.ignite.compute.ComputeTask;
-import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.marshaller.GridMarshallerTestInheritedBean;
-import org.apache.ignite.marshaller.Marshaller;
-import org.apache.ignite.marshaller.MarshallerContextTestImpl;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinderAdapter;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
-import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
-import org.jetbrains.annotations.Nullable;
-
-/**
- *
- */
-public class OptimizedMarshallerTest extends GridCommonAbstractTest {
-    /**
-     * @return Marshaller.
-     */
-    private OptimizedMarshaller marshaller() {
-        U.clearClassCache();
-
-        OptimizedMarshaller marsh = new OptimizedMarshaller();
-
-        marsh.setContext(new MarshallerContextTestImpl());
-
-        return marsh;
-    }
-
-    /**
-     * Tests ability to marshal non-serializable objects.
-     *
-     * @throws IgniteCheckedException If marshalling failed.
-     */
-    public void testNonSerializable() throws IgniteCheckedException {
-        OptimizedMarshaller marsh = marshaller();
-
-        marsh.setRequireSerializable(false);
-
-        NonSerializable outObj = marsh.unmarshal(marsh.marshal(new NonSerializable(null)), null);
-
-        outObj.checkAfterUnmarshalled();
-    }
-
-    /**
-     * Tests ability to marshal non-serializable objects.
-     *
-     * @throws IgniteCheckedException If marshalling failed.
-     */
-    public void testNonSerializable1() throws IgniteCheckedException {
-        OptimizedMarshaller marsh = marshaller();
-
-        marsh.setRequireSerializable(false);
-
-        byte[] bytes = marsh.marshal(new TcpDiscoveryVmIpFinder());
-
-        TcpDiscoveryIpFinder ipFinder = marsh.unmarshal(bytes, null);
-
-        assertFalse(ipFinder.isShared());
-
-        ipFinder = marsh.unmarshal(marsh.marshal(new TcpDiscoveryVmIpFinder(true)), null);
-
-        assertTrue(ipFinder.isShared());
-    }
-
-    /**
-     * Tests ability to marshal non-serializable objects.
-     *
-     * @throws IgniteCheckedException If marshalling failed.
-     */
-    public void testNonSerializable2() throws IgniteCheckedException {
-        OptimizedMarshaller marsh = marshaller();
-
-        marsh.setRequireSerializable(false);
-
-        TcpDiscoveryIpFinderAdapter ipFinder = new TcpDiscoveryIpFinderAdapter() {
-            @Override public Collection<InetSocketAddress> getRegisteredAddresses() {
-                return null;
-            }
-
-            @Override public void registerAddresses(Collection<InetSocketAddress> addrs) {
-                //No-op.
-            }
-
-            @Override public void unregisterAddresses(Collection<InetSocketAddress> addrs) {
-                //No-op.
-            }
-        };
-
-        ipFinder.setShared(false);
-
-        byte[] bytes = marsh.marshal(ipFinder);
-
-        ipFinder = marsh.unmarshal(bytes, null);
-
-        assertFalse(ipFinder.isShared());
-    }
-
-    /**
-     * Tests ability to marshal non-serializable objects.
-     *
-     * @throws IgniteCheckedException If marshalling failed.
-     */
-    public void testNonSerializable3() throws IgniteCheckedException {
-        OptimizedMarshaller marsh = marshaller();
-
-        marsh.setRequireSerializable(false);
-
-        byte[] bytes = marsh.marshal(new TestTcpDiscoveryIpFinderAdapter());
-
-        TcpDiscoveryIpFinder ipFinder = marsh.unmarshal(bytes, null);
-
-        assertFalse(ipFinder.isShared());
-    }
-
-     /**
-     * Tests ability to marshal non-serializable objects.
-     *
-     * @throws IgniteCheckedException If marshalling failed.
-     */
-    public void testNonSerializable4() throws IgniteCheckedException {
-        OptimizedMarshaller marsh = marshaller();
-
-        marsh.setRequireSerializable(false);
-
-        byte[] bytes = marsh.marshal(new GridMarshallerTestInheritedBean());
-
-        info(Arrays.toString(bytes));
-
-        GridMarshallerTestInheritedBean bean = marsh.unmarshal(bytes, null);
-
-        assertTrue(bean.isFlag());
-    }
-
-     /**
-     * Tests ability to marshal non-serializable objects.
-     *
-     * @throws IgniteCheckedException If marshalling failed.
-     */
-    public void testNonSerializable5() throws IgniteCheckedException {
-        Marshaller marsh = marshaller();
-
-        byte[] bytes = marsh.marshal(true);
-
-        Boolean val = marsh.unmarshal(bytes, null);
-
-        assertTrue(val);
-    }
-
-    /**
-     * Tests ability to marshal serializable objects.
-     *
-     * @throws IgniteCheckedException If marshalling failed.
-     */
-    public void testSerializable() throws IgniteCheckedException {
-        Marshaller marsh = marshaller();
-
-        SomeSerializable outObj = marsh.unmarshal(marsh.marshal(new SomeSerializable(null)), null);
-
-        outObj.checkAfterUnmarshalled();
-    }
-
-    /**
-     * @throws IgniteCheckedException If failed.
-     */
-    public void testSerializableAfterChangingValue() throws IgniteCheckedException {
-        Marshaller marsh = marshaller();
-
-        SomeSimpleSerializable newObj = new SomeSimpleSerializable();
-
-        assert(newObj.flag);
-
-        newObj.setFlagValue(false);
-
-        assert(! newObj.flag);
-
-        SomeSimpleSerializable outObj = marsh.unmarshal(marsh.marshal(newObj), null);
-
-        assert (! outObj.flag);
-    }
-
-    /**
-     * Tests ability to marshal externalizable objects.
-     *
-     * @throws IgniteCheckedException If marshalling failed.
-     */
-    public void testExternalizable() throws IgniteCheckedException {
-        Marshaller marsh = marshaller();
-
-        ExternalizableA outObj = marsh.unmarshal(marsh.marshal(new ExternalizableA(null, true)), null);
-        ExternalizableA outObj1 = marsh.unmarshal(marsh.marshal(new ExternalizableA(null, false)), null);
-
-        assertNotNull(outObj);
-        assertNotNull(outObj1);
-    }
-
-    /**
-     * Tests {@link OptimizedMarshaller#setRequireSerializable(boolean)}.
-     */
-    public void testRequireSerializable() {
-        OptimizedMarshaller marsh = marshaller();
-
-        marsh.setRequireSerializable(true);
-
-        try {
-            marsh.marshal(new NonSerializable(null));
-
-            fail();
-        }
-        catch (IgniteCheckedException ignore) {
-            // No-op.
-        }
-    }
-
-    /**
-     * Tests {@link Proxy}.
-     *
-     * @throws IgniteCheckedException If marshalling failed.
-     */
-    public void testProxy() throws IgniteCheckedException {
-        OptimizedMarshaller marsh = marshaller();
-
-        marsh.setRequireSerializable(false);
-
-        SomeItf inItf = (SomeItf)Proxy.newProxyInstance(
-            OptimizedMarshallerTest.class.getClassLoader(), new Class[] {SomeItf.class},
-            new InvocationHandler() {
-                private NonSerializable obj = new NonSerializable(null);
-
-                @Override public Object invoke(Object proxy, Method mtd, Object[] args) throws Throwable {
-                    obj.checkAfterUnmarshalled();
-
-                    return 17;
-                }
-            }
-        );
-
-        SomeItf outItf = marsh.unmarshal(marsh.marshal(inItf), null);
-
-        assertEquals(outItf.checkAfterUnmarshalled(), 17);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testDescriptorCache() throws Exception {
-        try {
-            Ignite ignite = startGridsMultiThreaded(2);
-
-            String taskClsName = "org.apache.ignite.tests.p2p.SingleSplitTestTask";
-            String jobClsName = "org.apache.ignite.tests.p2p.SingleSplitTestTask$SingleSplitTestJob";
-
-            ClassLoader ldr = getExternalClassLoader();
-
-            Class<? extends ComputeTask<?, ?>> taskCls = (Class<? extends ComputeTask<?, ?>>)ldr.loadClass(taskClsName);
-            Class<? extends ComputeTask<?, ?>> jobCls = (Class<? extends ComputeTask<?, ?>>)ldr.loadClass(jobClsName);
-
-            ignite.compute().localDeployTask(taskCls, ldr);
-
-            ignite.compute().execute(taskClsName, 2);
-
-            ConcurrentMap<Class<?>, OptimizedClassDescriptor> cache =
-                U.field(ignite.configuration().getMarshaller(), "clsMap");
-
-            assertTrue(cache.containsKey(jobCls));
-
-            ignite.compute().undeployTask(taskClsName);
-
-            // Wait for undeploy.
-            Thread.sleep(1000);
-
-            assertFalse(cache.containsKey(jobCls));
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testPerformance() throws Exception {
-        System.gc();
-
-        checkPerformance(10000, 4);
-    }
-
-    /**
-     * @param cnt Number of marshalling attempts.
-     * @param tries Number of retries.
-     * @throws Exception If failed.
-     */
-    private void checkPerformance(int cnt, int tries) throws Exception {
-        Marshaller marsh = marshaller();
-
-        for (int j = 0; j < tries; j++) {
-            System.gc();
-
-            long start = System.currentTimeMillis();
-
-            for (int i = 0; i < cnt; i++) {
-                TestCacheKey key = new TestCacheKey("key", "id");
-
-                TestCacheKey outKey = marsh.unmarshal(marsh.marshal(key), null);
-
-                assert key.equals(outKey);
-                assert key.hashCode() == outKey.hashCode();
-            }
-
-            info("Time non-serializable: " + (System.currentTimeMillis() - start));
-
-            System.gc();
-
-            start = System.currentTimeMillis();
-
-            for (int i = 0; i < cnt; i++) {
-                TestCacheKeySerializable key1 = new TestCacheKeySerializable("key", "id");
-
-                TestCacheKeySerializable outKey = marsh.unmarshal(marsh.marshal(key1), null);
-
-                assert key1.equals(outKey);
-                assert key1.hashCode() == outKey.hashCode();
-            }
-
-            info("Time serializable: " + (System.currentTimeMillis() - start));
-
-            System.gc();
-
-            start = System.currentTimeMillis();
-
-            for (int i = 0; i < cnt; i++) {
-                TestCacheKeyExternalizable key2 = new TestCacheKeyExternalizable("key", "id");
-
-                TestCacheKeyExternalizable outKey = marsh.unmarshal(marsh.marshal(key2), null);
-
-                assert key2.equals(outKey);
-                assert key2.hashCode() == outKey.hashCode();
-            }
-
-            info("Time externalizable: " + (System.currentTimeMillis() - start));
-
-            info(">>>");
-        }
-
-        info(">>> Finished performance check <<<");
-    }
-
-    /**
-     * Some non-serializable class.
-     */
-    @SuppressWarnings( {"PublicField","TransientFieldInNonSerializableClass","FieldMayBeStatic"})
-    private static class NonSerializableA {
-        /** */
-        private final long longVal = 0x33445566778899AAL;
-
-        /** */
-        protected Short shortVal = (short)0xAABB;
-
-        /** */
-        public String[] strArr = {"AA","BB"};
-
-        /** */
-        public boolean flag1 = true;
-
-        /** */
-        public boolean flag2;
-
-        /** */
-        public Boolean flag3;
-
-        /** */
-        public Boolean flag4 = true;
-
-        /** */
-        public Boolean flag5 = false;
-
-        /** */
-        private transient int intVal = 0xAABBCCDD;
-
-        /**
-         * @param strArr Array.
-         * @param shortVal Short value.
-         */
-        @SuppressWarnings( {"UnusedDeclaration"})
-        private NonSerializableA(@Nullable String[] strArr, @Nullable Short shortVal) {
-            // No-op.
-        }
-
-        /**
-         * Checks correctness of the state after unmarshalling.
-         */
-        void checkAfterUnmarshalled() {
-            assertEquals(longVal, 0x33445566778899AAL);
-
-            assertEquals(shortVal.shortValue(), (short)0xAABB);
-
-            assertTrue(Arrays.equals(strArr, new String[] {"AA","BB"}));
-
-            assertEquals(intVal, 0);
-
-            assertTrue(flag1);
-            assertFalse(flag2);
-            assertNull(flag3);
-            assertTrue(flag4);
-            assertFalse(flag5);
-        }
-    }
-
-    /**
-     * Some non-serializable class.
-     */
-    @SuppressWarnings( {"PublicField","TransientFieldInNonSerializableClass","PackageVisibleInnerClass"})
-    static class NonSerializableB extends NonSerializableA {
-        /** */
-        public Short shortVal = 0x1122;
-
-        /** */
-        public long longVal = 0x8877665544332211L;
-
-        /** */
-        private transient NonSerializableA[] aArr = {
-            new NonSerializableA(null, null),
-            new NonSerializableA(null, null),
-            new NonSerializableA(null, null)
-        };
-
-        /** */
-        protected Double doubleVal = 123.456;
-
-        /**
-         * Just to eliminate the default constructor.
-         */
-        private NonSerializableB() {
-            super(null, null);
-        }
-
-        /**
-         * Checks correctness of the state after unmarshalling.
-         */
-        @Override void checkAfterUnmarshalled() {
-            super.checkAfterUnmarshalled();
-
-            assertEquals(shortVal.shortValue(), 0x1122);
-
-            assertEquals(longVal, 0x8877665544332211L);
-
-            assertNull(aArr);
-
-            assertEquals(doubleVal, 123.456);
-        }
-    }
-
-    /**
-     * Some non-serializable class.
-     */
-    @SuppressWarnings( {"TransientFieldInNonSerializableClass","PublicField"})
-    private static class NonSerializable extends NonSerializableB {
-        /** */
-        private int idVal = -17;
-
-        /** */
-        private final NonSerializableA aVal = new NonSerializableB();
-
-        /** */
-        private transient NonSerializableB bVal = new NonSerializableB();
-
-        /** */
-        private NonSerializableA[] bArr = new NonSerializableA[] {
-            new NonSerializableB(),
-            new NonSerializableA(null, null)
-        };
-
-        /** */
-        public float floatVal = 567.89F;
-
-        /**
-         * Just to eliminate the default constructor.
-         *
-         * @param aVal Unused.
-         */
-        @SuppressWarnings( {"UnusedDeclaration"})
-        private NonSerializable(NonSerializableA aVal) {
-        }
-
-        /**
-         * Checks correctness of the state after unmarshalling.
-         */
-        @Override void checkAfterUnmarshalled() {
-            super.checkAfterUnmarshalled();
-
-            assertEquals(idVal, -17);
-
-            aVal.checkAfterUnmarshalled();
-
-            assertNull(bVal);
-
-            for (NonSerializableA a : bArr) {
-                a.checkAfterUnmarshalled();
-            }
-
-            assertEquals(floatVal, 567.89F);
-        }
-    }
-
-    /**
-     * Some serializable class.
-     */
-    @SuppressWarnings( {"PublicField","TransientFieldInNonSerializableClass","PackageVisibleInnerClass"})
-    static class ForSerializableB {
-        /** */
-        public Short shortVal = 0x1122;
-
-        /** */
-        public long longVal = 0x8877665544332211L;
-
-        /** */
-        private transient NonSerializableA[] aArr;
-
-        /** */
-        private transient String strVal = "abc";
-
-        /** */
-        protected Double doubleVal = 123.456;
-
-        /**
-         */
-        protected void init() {
-            shortVal = 0x1122;
-
-            longVal = 0x8877665544332211L;
-
-            aArr = new NonSerializableA[] {
-                new NonSerializableA(null, null),
-                new NonSerializableA(null, null),
-                new NonSerializableA(null, null)
-            };
-        }
-
-        /**
-         * Checks correctness of the state after unmarshalling.
-         */
-        void checkAfterUnmarshalled() {
-            assertEquals(shortVal.shortValue(), 0x1122);
-
-            assertEquals(longVal, 0x8877665544332211L);
-
-            assertNull(aArr);
-
-            assertNull(strVal);
-
-            assertEquals(doubleVal, 123.456);
-        }
-    }
-
-    /**
-     * Some serializable class.
-     */
-    private static class SomeSimpleSerializable extends ComputeJobAdapter {
-        /** */
-        private boolean flag = true;
-
-        /**
-         * @param newFlagVal - The new value of flag field.
-         */
-        public void setFlagValue(boolean newFlagVal) {
-            flag = newFlagVal;
-        }
-
-        /** {@inheritDoc} */
-        @Override public Object execute() {
-            assert false;
-
-            return null;
-        }
-    }
-    /**
-     * Some serializable class.
-     */
-    private static class SomeSerializable extends ForSerializableB implements Serializable {
-        /**
-         * Just to eliminate the default constructor.
-         *
-         * @param id Unused.
-         */
-        @SuppressWarnings( {"UnusedDeclaration"})
-        private SomeSerializable(Long id) {
-            init();
-        }
-    }
-
-    /**
-     */
-    private static interface SomeItf {
-        /**
-         * @return Check result.
-         */
-        int checkAfterUnmarshalled();
-    }
-
-    /**
-     * Some externalizable class.
-     */
-    @SuppressWarnings( {"UnusedDeclaration", "PublicField"})
-    private static class ExternalizableA implements Externalizable {
-        /** */
-        private boolean boolVal;
-
-        /** */
-        public String[] strArr;
-
-        /** No-arg constructor is required by externalization.  */
-        public ExternalizableA() {
-            // No-op.
-        }
-
-        /**
-         *
-         * @param strArr String array.
-         * @param boolVal Boolean value.
-         */
-        private ExternalizableA(String[] strArr, boolean boolVal) {
-            this.strArr = strArr;
-            this.boolVal = boolVal;
-        }
-
-        /** {@inheritDoc} */
-        @Override public void writeExternal(ObjectOutput out) throws IOException {
-            out.writeBoolean(false);
-            out.writeBoolean(false);
-            out.writeBoolean(false);
-            out.writeBoolean(false);
-            out.writeBoolean(false);
-            out.writeBoolean(false);
-        }
-
-        /** {@inheritDoc} */
-        @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-            boolVal = in.readBoolean();
-            in.readBoolean();
-            in.readBoolean();
-            in.readBoolean();
-            in.readBoolean();
-            in.readBoolean();
-        }
-    }
-
-    /**
-     *
-     */
-    private static class TestCacheKey implements Serializable {
-        /** */
-        private String key;
-
-        /** */
-        @SuppressWarnings({"UnusedDeclaration"})
-        private String terminalId;
-
-        /**
-         * @param key Key.
-         * @param terminalId Some ID.
-         */
-        TestCacheKey(String key, String terminalId) {
-            this.key = key;
-            this.terminalId = terminalId;
-        }
-
-        /** {@inheritDoc} */
-        @Override public int hashCode() {
-            return key.hashCode();
-        }
-
-        /** {@inheritDoc} */
-        @Override public boolean equals(Object obj) {
-            return obj instanceof TestCacheKey && key.equals(((TestCacheKey)obj).key);
-        }
-    }
-
-    /**
-     *
-     */
-    private static class TestCacheKeySerializable implements Serializable {
-        /** */
-        private String key;
-
-        /** */
-        @SuppressWarnings({"UnusedDeclaration"})
-        private String terminalId;
-
-        /**
-         * @param key Key.
-         * @param terminalId Some ID.
-         */
-        TestCacheKeySerializable(String key, String terminalId) {
-            this.key = key;
-            this.terminalId = terminalId;
-        }
-
-        /** {@inheritDoc} */
-        @Override public int hashCode() {
-            return key.hashCode();
-        }
-
-        /** {@inheritDoc} */
-        @Override public boolean equals(Object obj) {
-            return obj instanceof TestCacheKeySerializable && key.equals(((TestCacheKeySerializable)obj).key);
-        }
-    }
-
-    /**
-     *
-     */
-    private static class TestCacheKeyExternalizable implements Externalizable {
-        /** */
-        private String key;
-
-        /** */
-        private String terminalId;
-
-        /**
-         *
-         */
-        public TestCacheKeyExternalizable() {
-            // No-op.
-        }
-
-        /**
-         * @param key Key.
-         * @param terminalId Some ID.
-         */
-        TestCacheKeyExternalizable(String key, String terminalId) {
-            this.key = key;
-            this.terminalId = terminalId;
-        }
-
-        /** {@inheritDoc} */
-        @Override public int hashCode() {
-            return key.hashCode();
-        }
-
-        /** {@inheritDoc} */
-        @Override public boolean equals(Object obj) {
-            return obj instanceof TestCacheKeyExternalizable && key.equals(((TestCacheKeyExternalizable)obj).key);
-        }
-
-        /** {@inheritDoc} */
-        @Override public void writeExternal(ObjectOutput out) throws IOException {
-            U.writeString(out, key);
-            U.writeString(out, terminalId);
-        }
-
-        /** {@inheritDoc} */
-        @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-            key = U.readString(in);
-            terminalId = U.readString(in);
-        }
-    }
-}
\ No newline at end of file