Repository: ignite
Updated Branches:
  refs/heads/ignite-843-rc2 2a9c5d3f0 -> 3b2ca7a80


IGNITE-2217 Fixed Binary code generation.


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

Branch: refs/heads/ignite-843-rc2
Commit: 3b2ca7a80dfb59e648577772979f259c7e4ab780
Parents: 2a9c5d3
Author: vsisko <vsi...@gridgain.com>
Authored: Fri Dec 25 17:23:06 2015 +0700
Committer: Alexey Kuznetsov <akuznet...@apache.org>
Committed: Fri Dec 25 17:23:29 2015 +0700

----------------------------------------------------------------------
 .../js/helpers/generator/generator-common.js    |  6 ++
 .../main/js/helpers/generator/generator-java.js | 98 +++++++++++++++-----
 .../main/js/helpers/generator/generator-xml.js  |  3 +-
 3 files changed, 80 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/3b2ca7a8/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
----------------------------------------------------------------------
diff --git 
a/modules/control-center-web/src/main/js/helpers/generator/generator-common.js 
b/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
index cc8bdcf..dfe66c7 100644
--- 
a/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
+++ 
b/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
@@ -459,3 +459,9 @@ $generatorCommon.cacheHasDatasource = function (cache) {
 $generatorCommon.secretPropertiesNeeded = function (cluster, res) {
     return $commonUtils.isDefined(_.find(cluster.caches, 
$generatorCommon.cacheHasDatasource)) || cluster.sslEnabled;
 };
+
+// Check that binary is configured.
+$generatorCommon.binaryIsDefined = function (binary) {
+    return binary && ($commonUtils.isDefinedAndNotEmpty(binary.idMapper) || 
$commonUtils.isDefinedAndNotEmpty(binary.serializer) ||
+        $commonUtils.isDefinedAndNotEmpty(binary.typeConfigurations) || 
($commonUtils.isDefined(binary.compactFooter) && !binary.compactFooter))
+};

http://git-wip-us.apache.org/repos/asf/ignite/blob/3b2ca7a8/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
----------------------------------------------------------------------
diff --git 
a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js 
b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
index 5b9eb56..fea1d1f 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
@@ -548,8 +548,7 @@ $generatorJava.clusterBinary = function (cluster, res) {
 
     var binary = cluster.binaryConfiguration;
 
-    if (binary && ($commonUtils.isDefinedAndNotEmpty(binary.idMapper) || 
$commonUtils.isDefinedAndNotEmpty(binary.serializer) ||
-        $commonUtils.isDefinedAndNotEmpty(binary.typeConfigurations) || 
!binary.compactFooter)) {
+    if ($generatorCommon.binaryIsDefined(binary)) {
         var varName = 'binary';
 
         $generatorJava.declareVariable(res, varName, 
'org.apache.ignite.configuration.BinaryConfiguration');
@@ -568,38 +567,85 @@ $generatorJava.clusterBinary = function (cluster, res) {
             $generatorJava.declareVariable(res, arrVar, 
'java.util.Collection', 'java.util.ArrayList', 
'org.apache.ignite.binary.BinaryTypeConfiguration');
 
             _.forEach(binary.typeConfigurations, function (type) {
-                var typeVar = 'typeCfg';
+                // TODO IGNITE-2269 Replace using of separated methods for 
binary type configurations to extended constructors.
+                res.line(arrVar + '.add(' + 
$generatorJava.binaryTypeFunctionName(type.typeName) + '());');
+            });
 
-                $generatorJava.declareVariable(res, typeVar, 
'org.apache.ignite.binary.BinaryTypeConfiguration');
+            res.needEmptyLine = true;
 
-                $generatorJava.property(res, typeVar, type, 'typeName');
+            res.line(varName + '.setTypeConfigurations(' + arrVar + ');');
 
-                if ($commonUtils.isDefinedAndNotEmpty(type.idMapper))
-                    res.line(typeVar + '.setIdMapper(new ' + 
res.importClass(type.idMapper) + '());');
+            res.needEmptyLine = true;
+        }
 
-                if ($commonUtils.isDefinedAndNotEmpty(type.serializer))
-                    res.line(typeVar + '.setSerializer(new ' + 
res.importClass(type.serializer) + '());');
+        $generatorJava.property(res, varName, binary, 'compactFooter', 
undefined, undefined, true);
 
+        res.needEmptyLine = true;
 
-                $generatorJava.property(res, typeVar, type, 'enum', undefined, 
undefined, false);
+        res.line('cfg.setBinaryConfiguration(' + varName + ');');
 
-                res.needEmptyLine = true;
+        res.needEmptyLine = true;
+    }
+
+    return res;
+};
 
-                res.line(arrVar + '.add(' + typeVar + ');');
+// TODO IGNITE-2269 Remove specified methods after implamentation of extended 
constructors.
+// Construct binary type configuration factory method name.
+$generatorJava.binaryTypeFunctionName = function (typeName) {
+    var dotIdx = typeName.lastIndexOf('.');
 
-                res.needEmptyLine = true;
-            });
+    var shortName = dotIdx > 0 ? typeName.substr(dotIdx + 1) : typeName;
 
-            res.line(varName + '.setTypeConfigurations(' + arrVar + ');');
+    return $commonUtils.toJavaName('binaryType', shortName);
+};
 
-            res.needEmptyLine = true;
-        }
+// TODO IGNITE-2269 Remove specified methods after implamentation of extended 
constructors.
+// Generate factory method for specified BinaryTypeConfiguration.
+$generatorJava.binaryTypeConfiguration = function (type, res) {
+    var typeName = type.typeName;
 
-        $generatorJava.property(res, binary, 'compactFooter', undefined, true);
+    res.line('/**');
+    res.line(' * Create binary type configuration for ' + typeName + '.');
+    res.line(' *');
+    res.line(' * @return Configured binary type.');
+    res.line(' */');
+    res.startBlock('private static BinaryTypeConfiguration ' + 
$generatorJava.binaryTypeFunctionName(typeName) + '() {');
 
-        res.line('cfg.setBinaryConfiguration(' + varName + ')');
+    $generatorJava.resetVariables(res);
 
-        res.needEmptyLine = true;
+    var typeVar = 'typeCfg';
+
+    $generatorJava.declareVariable(res, typeVar, 
'org.apache.ignite.binary.BinaryTypeConfiguration');
+
+    $generatorJava.property(res, typeVar, type, 'typeName');
+
+    if ($commonUtils.isDefinedAndNotEmpty(type.idMapper))
+        res.line(typeVar + '.setIdMapper(new ' + 
res.importClass(type.idMapper) + '());');
+
+    if ($commonUtils.isDefinedAndNotEmpty(type.serializer))
+        res.line(typeVar + '.setSerializer(new ' + 
res.importClass(type.serializer) + '());');
+
+    $generatorJava.property(res, typeVar, type, 'enum', undefined, undefined, 
false);
+
+    res.needEmptyLine = true;
+
+    res.line('return ' + typeVar + ';');
+    res.endBlock('}');
+
+    res.needEmptyLine = true;
+};
+
+// TODO IGNITE-2269 Remove specified methods after implamentation of extended 
constructors.
+// Generates binary type configuration factory methods.
+$generatorJava.binaryTypeConfigurations = function (binary, res) {
+    if (!res)
+        res = $generatorCommon.builder();
+
+    if ($commonUtils.isDefined(binary)) {
+        _.forEach(binary.typeConfigurations, function (type) {
+            $generatorJava.binaryTypeConfiguration(type, res);
+        });
     }
 
     return res;
@@ -2205,6 +2251,9 @@ $generatorJava.cluster = function (cluster, pkg, 
javaClass, clientNearCfg) {
 
         $generatorJava.clusterCaches(cluster.caches, cluster.igfss, isSrvCfg, 
res);
 
+        // TODO IGNITE-2269 Remove specified methods after implamentation of 
extended constructors.
+        $generatorJava.binaryTypeConfigurations(cluster.binaryConfiguration, 
res);
+
         res.needEmptyLine = true;
 
         if (clientNearCfg) {
@@ -2270,6 +2319,9 @@ $generatorJava.nodeStartup = function (cluster, pkg, cls, 
cfg, factoryCls, clien
 
     res.startBlock('public static void main(String[] args) throws Exception 
{');
 
+    if (factoryCls)
+        res.importClass(factoryCls);
+
     if (clientNearCfg) {
         res.line(res.importClass('org.apache.ignite.Ignite') + ' ignite = ' +
             res.importClass('org.apache.ignite.Ignition') + '.start(' + cfg + 
');');
@@ -2294,12 +2346,8 @@ $generatorJava.nodeStartup = function (cluster, pkg, 
cls, cfg, factoryCls, clien
             res.needEmptyLine = true;
         }
     }
-    else {
-        if (factoryCls)
-            res.importClass(factoryCls);
-
+    else
         res.line(res.importClass('org.apache.ignite.Ignition') + '.start(' + 
cfg + ');');
-    }
 
     res.endBlock('}');
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/3b2ca7a8/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
----------------------------------------------------------------------
diff --git 
a/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js 
b/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
index 4305736..95d055d 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
@@ -401,8 +401,7 @@ $generatorXml.clusterBinary = function (cluster, res) {
 
     var binary = cluster.binaryConfiguration;
 
-    if (binary && ($commonUtils.isDefinedAndNotEmpty(binary.idMapper) || 
$commonUtils.isDefinedAndNotEmpty(binary.serializer) ||
-        $commonUtils.isDefinedAndNotEmpty(binary.typeConfigurations) || 
!binary.compactFooter)) {
+    if ($generatorCommon.binaryIsDefined(binary)) {
         res.startBlock('<property name="binaryConfiguration">');
         res.startBlock('<bean 
class="org.apache.ignite.configuration.BinaryConfiguration">');
 

Reply via email to