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 2015/12/16 09:40:10 UTC

[2/2] ignite git commit: IGNITE-2100: WIP.

IGNITE-2100: WIP.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/43a3de5a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/43a3de5a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/43a3de5a

Branch: refs/heads/ignite-2100
Commit: 43a3de5ad28f38189be4c4354591431b6636a08b
Parents: 855b154
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Wed Dec 16 10:51:54 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Wed Dec 16 10:51:54 2015 +0300

----------------------------------------------------------------------
 .../ignite/binary/BinaryTypeConfiguration.java  | 43 +++++++++++---------
 .../ignite/internal/binary/BinaryContext.java   | 28 ++++++-------
 2 files changed, 38 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/43a3de5a/modules/core/src/main/java/org/apache/ignite/binary/BinaryTypeConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/binary/BinaryTypeConfiguration.java b/modules/core/src/main/java/org/apache/ignite/binary/BinaryTypeConfiguration.java
index 9d00eee..c9bdac1 100644
--- a/modules/core/src/main/java/org/apache/ignite/binary/BinaryTypeConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/binary/BinaryTypeConfiguration.java
@@ -33,8 +33,8 @@ import java.io.Externalizable;
  * binary type without affecting configuration for other binary types.
  */
 public class BinaryTypeConfiguration {
-    /** Default value of "use default serialization" flag. */
-    public static final boolean DFLT_USE_DFLT_SER = true;
+    /** Default value of "ignore Java serialization" flag. */
+    public static final boolean DFLT_IGNORE_JAVA_SER = false;
 
     /** Class name. */
     private String typeName;
@@ -48,8 +48,8 @@ public class BinaryTypeConfiguration {
     /** Enum flag. */
     private boolean isEnum;
 
-    /** Use default serialization flag. */
-    private boolean useDfltSer = DFLT_USE_DFLT_SER;
+    /** Ignore Java serialization flag. */
+    private boolean ignoreJavaSer = DFLT_IGNORE_JAVA_SER;
 
     /**
      * Constructor.
@@ -70,7 +70,7 @@ public class BinaryTypeConfiguration {
         idMapper = other.idMapper;
         serializer = other.serializer;
         isEnum = other.isEnum;
-        useDfltSer = other.useDfltSer;
+        ignoreJavaSer = other.ignoreJavaSer;
     }
 
     /**
@@ -153,31 +153,36 @@ public class BinaryTypeConfiguration {
     }
 
     /**
-     * Gets whether to use default serialization.
+     * Gets whether to ignore Java serialization mechanisms.
      * <p>
      * {@link BinaryMarshaller} allows for objects to be used without deserialization. To achieve this fields metadata
-     * is written along with their values. When default Java serialization mechanisms, such as {@link Externalizable}
-     * or {@code writeObject()} method, are used, there is no way to get this metadata. For this reason by default
-     * {@code BinaryMarshaller} ignores these mechanisms and writes all non-transient fields directly.
+     * must be written along with their values. When custom Java serialization mechanics is present (such as
+     * {@link Externalizable} or {@code writeObject()} method), Ignite has to respect it. But fields metadata cannot
+     * be written in this case and so objects will be deserialized on the server.
      * <p>
-     * Sometimes you might want to disable this behavior and fallback to default serialization. Set value of this flag
-     * to {@code true} to achieve this.
+     * To avoid deserialization on the server you can set this property to {@code true}. In this case Ignite will
+     * ignore custom Java serialization and will write all objects fields (except of transient ones) directly.
      * <p>
-     * Defaults to {@link #DFLT_USE_DFLT_SER}.
+     * Note that there are other ways to achieve the same things:
+     * <ul>
+     *     <li>Implement {@link Binarylizable} interface;</li>
+     *     <li>Define custom {@link BinaryIdMapper} using {@link #setIdMapper(BinaryIdMapper)}.</li>
+     * </ul>
+     * Defaults to {@link #DFLT_IGNORE_JAVA_SER}.
      *
-     * @return {@code True} if default serialization should be used.
+     * @return {@code True} if Java serialization should be ignored.
      */
-    public boolean isUseDefaultSerialization() {
-        return useDfltSer;
+    public boolean isIgnoreJavaSerialization() {
+        return ignoreJavaSer;
     }
 
     /**
-     * Sets whether to use default serialization. See {@link #isUseDefaultSerialization()} for details.
+     * Sets whether to ignore Java serialization mechanisms. See {@link #isIgnoreJavaSerialization()} for details.
      *
-     * @param useDfltSer {@code True} if default serialization should be used.
+     * @param ignoreJavaSer {@code True} if Java serialization should be ignored.
      */
-    public void setUseDefaultSerialization(boolean useDfltSer) {
-        this.useDfltSer = useDfltSer;
+    public void setIgnoreJavaSerialization(boolean ignoreJavaSer) {
+        this.ignoreJavaSer = ignoreJavaSer;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/43a3de5a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
index 3c6f722..2f32629 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
@@ -334,17 +334,17 @@ public class BinaryContext implements Externalizable {
 
                     for (String clsName0 : classesInPackage(pkgName))
                         descs.add(clsName0, idMapper, serializer, affFields.get(clsName0),
-                            typeCfg.isEnum(), typeCfg.isUseDefaultSerialization(), true);
+                            typeCfg.isEnum(), !typeCfg.isIgnoreJavaSerialization(), true);
                 }
                 else
                     descs.add(clsName, idMapper, serializer, affFields.get(clsName),
-                        typeCfg.isEnum(), typeCfg.isUseDefaultSerialization(), false);
+                        typeCfg.isEnum(), !typeCfg.isIgnoreJavaSerialization(), false);
             }
         }
 
         for (TypeDescriptor desc : descs.descriptors())
             registerUserType(desc.clsName, desc.idMapper, desc.serializer, desc.affKeyFieldName, desc.isEnum,
-                desc.useDfltSerialization);
+                desc.useJavaSerialization);
 
         BinaryInternalIdMapper dfltMapper = BinaryInternalIdMapper.create(globalIdMapper);
 
@@ -781,7 +781,7 @@ public class BinaryContext implements Externalizable {
      * @param serializer Serializer.
      * @param affKeyFieldName Affinity key field name.
      * @param isEnum If enum.
-     * @param useDfltSerialization Use default serialization flag.
+     * @param useJavaSerialization Use default serialization flag.
      * @throws BinaryObjectException In case of error.
      */
     @SuppressWarnings("ErrorNotRethrown")
@@ -790,7 +790,7 @@ public class BinaryContext implements Externalizable {
         @Nullable BinarySerializer serializer,
         @Nullable String affKeyFieldName,
         boolean isEnum,
-        boolean useDfltSerialization)
+        boolean useJavaSerialization)
         throws BinaryObjectException {
         assert idMapper != null;
 
@@ -821,7 +821,7 @@ public class BinaryContext implements Externalizable {
 
         typeMappers.put(typeName, idMapper);
 
-        if (!useDfltSerialization)
+        if (!useJavaSerialization)
             nonDfltSerializationFlags.add(id);
 
         Map<String, Integer> fieldsMeta = null;
@@ -840,7 +840,7 @@ public class BinaryContext implements Externalizable {
                 true,
                 true, /* registered */
                 false, /* predefined */
-                useDfltSerialization
+                useJavaSerialization
             );
 
             fieldsMeta = desc.fieldsMeta();
@@ -1028,7 +1028,7 @@ public class BinaryContext implements Externalizable {
          * @param serializer Serializer.
          * @param affKeyFieldName Affinity key field name.
          * @param isEnum Enum flag.
-         * @param useDfltSerialziation Use default serialization flag.
+         * @param useJavaSer Whether to use Java serialization.
          * @param canOverride Whether this descriptor can be override.
          * @throws BinaryObjectException If failed.
          */
@@ -1037,7 +1037,7 @@ public class BinaryContext implements Externalizable {
             BinarySerializer serializer,
             String affKeyFieldName,
             boolean isEnum,
-            boolean useDfltSerialziation,
+            boolean useJavaSer,
             boolean canOverride)
             throws BinaryObjectException {
             TypeDescriptor desc = new TypeDescriptor(clsName,
@@ -1045,7 +1045,7 @@ public class BinaryContext implements Externalizable {
                 serializer,
                 affKeyFieldName,
                 isEnum,
-                useDfltSerialziation,
+                useJavaSer,
                 canOverride);
 
             TypeDescriptor oldDesc = descs.get(clsName);
@@ -1086,7 +1086,7 @@ public class BinaryContext implements Externalizable {
         private boolean isEnum;
 
         /** Use default serialization flag. */
-        private boolean useDfltSerialization;
+        private boolean useJavaSerialization;
 
         /** Whether this descriptor can be override. */
         private boolean canOverride;
@@ -1099,17 +1099,17 @@ public class BinaryContext implements Externalizable {
          * @param serializer Serializer.
          * @param affKeyFieldName Affinity key field name.
          * @param isEnum Enum type.
-         * @param useDfltSerialization Use default serialization flag.
+         * @param useJavaSerialization Use default serialization flag.
          * @param canOverride Whether this descriptor can be override.
          */
         private TypeDescriptor(String clsName, BinaryIdMapper idMapper, BinarySerializer serializer,
-            String affKeyFieldName, boolean isEnum, boolean useDfltSerialization, boolean canOverride) {
+            String affKeyFieldName, boolean isEnum, boolean useJavaSerialization, boolean canOverride) {
             this.clsName = clsName;
             this.idMapper = idMapper;
             this.serializer = serializer;
             this.affKeyFieldName = affKeyFieldName;
             this.isEnum = isEnum;
-            this.useDfltSerialization = useDfltSerialization;
+            this.useJavaSerialization = useJavaSerialization;
             this.canOverride = canOverride;
         }