You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by se...@apache.org on 2015/06/22 18:14:13 UTC

incubator-ignite git commit: # IGNITE-843 Finish implementation of creatin XML configuration.

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-843 39980fe98 -> de85e699f


# IGNITE-843 Finish implementation of creatin XML configuration.


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

Branch: refs/heads/ignite-843
Commit: de85e699fc5fc1af047c7a0615f41270dc887d36
Parents: 39980fe
Author: sevdokimov <se...@jetbrains.com>
Authored: Mon Jun 22 19:14:03 2015 +0300
Committer: sevdokimov <se...@jetbrains.com>
Committed: Mon Jun 22 19:14:03 2015 +0300

----------------------------------------------------------------------
 .../webconfig/nodejs/routes/configGenerator.js  | 221 ++++++++++++++-----
 1 file changed, 171 insertions(+), 50 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/de85e699/modules/webconfig/nodejs/routes/configGenerator.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/routes/configGenerator.js b/modules/webconfig/nodejs/routes/configGenerator.js
index 101d881..36e86db 100644
--- a/modules/webconfig/nodejs/routes/configGenerator.js
+++ b/modules/webconfig/nodejs/routes/configGenerator.js
@@ -72,10 +72,6 @@ function generateJava(cluster) {
     return "java";
 }
 
-function multicast(res, multicast) {
-    
-}
-
 function builder() {
     var res = [];
 
@@ -128,13 +124,90 @@ function builder() {
         return this;
     };
     
+    res.emptyLineIfNeeded = function() {
+        if (this.needEmptyLine) {
+            this.line();
+
+            this.needEmptyLine = false;
+        }
+    };
+    
     return res;
 }
 
+function addProperty(res, obj, propName, newLine) {
+    var val = obj[propName];
+    
+    if (val) {
+        res.emptyLineIfNeeded();
+        
+        res.line('<property name="' + propName + '" value="' + escapeAttr(val) + '"/>');
+    }
+}
+
+function addBeanWithProperties(res, obj, beanPropName, beanClass, props) {
+    var bean = obj[beanPropName];
+
+    if (bean) {
+        var hasProp = false;
+        
+        for (var i = 0; i < props.length; i++) {
+            if (bean[props[i]]) {
+                hasProp = true;
+                
+                break;
+            } 
+        }
+        
+        if (hasProp) {
+            res.emptyLineIfNeeded();
+
+            res.startBlock('<property name="' + beanPropName + '">');
+            res.startBlock('<bean class="' + beanClass + '">');
+
+            for (i = 0; i < props.length; i++) {
+                addProperty(res, bean, props[i]);
+            }
+
+            res.endBlock('</bean>');
+            res.endBlock('</property>');
+        }
+    }
+}
+
+function addListProperty(res, obj, propName) {
+    var val = obj[propName];
+    
+    if (val && val.length > 0) {
+        res.emptyLineIfNeeded();
+        
+        res.startBlock('<property name="' + propName + '">');
+        res.startBlock('<list>');
+        
+        for (var i = 0; i < val.length; i++)
+            res.line('<value>' + escape(val[i]) + '</value>');
+
+        res.endBlock('</list>');
+        res.endBlock('</property>');
+    }
+}
+
+
+
 function escapeAttr(s) {
+    if (typeof(s) != 'string')
+        return s;
+    
     return s.replace(/&/g, '&amp;').replace(/"/g, '&quot;');
 }
 
+function escape(s) {
+    if (typeof(s) != 'string')
+        return s;
+    
+    return s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
+}
+
 function generateXml(cluster) {
     var res = builder();
 
@@ -159,24 +232,13 @@ function generateXml(cluster) {
         
         switch (d.kind) {
             case 'Multicast':
-                var m = d.Multicast;
-                
                 res.startBlock('<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">');
-                
-                if (m.multicastGroup)
-                    res.line('<property name="multicastGroup" value="' + escapeAttr(m.multicastGroup) + '"/>');
-                
-                if (m.multicastPort)
-                    res.line('<property name="multicastPort" value="' + m.multicastPort + '"/>');
-                
-                if (m.responseWaitTime)
-                    res.line('<property name="responseWaitTime" value="' + m.responseWaitTime + '"/>');
-                
-                if (m.addressRequestAttempts)
-                    res.line('<property name="addressRequestAttempts" value="' + m.addressRequestAttempts + '"/>');
-                
-                if (m.localAddress)
-                    res.line('<property name="localAddress" value="' + escapeAttr(m.localAddress) + '"/>');
+
+                addProperty(res, d.Multicast, 'multicastGroup');
+                addProperty(res, d.Multicast, 'multicastPort');
+                addProperty(res, d.Multicast, 'responseWaitTime');
+                addProperty(res, d.Multicast, 'addressRequestAttempts');
+                addProperty(res, d.Multicast, 'localAddress');
                 
                 res.endBlock('</bean>');
                 
@@ -186,15 +248,7 @@ function generateXml(cluster) {
                 if (d.Vm.addresses.length > 0) {
                     res.startBlock('<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">');
 
-                    res.line('<property name="addresses">');
-                    res.line('    <list>');
-
-                    for (var i = 0; i < d.Vm.addresses.length; i++) {
-                        res.line('<value>' + escapeAttr(d.Vm.addresses[i]) + '</value>');
-                    }
-                    
-                    res.line('    </list>');
-                    res.line('</property>');
+                    addListProperty(res, d.Vm, 'addresses');
 
                     res.endBlock('</bean>');
                 }
@@ -217,17 +271,10 @@ function generateXml(cluster) {
             case 'Cloud':
                 res.startBlock('<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.cloud.TcpDiscoveryCloudIpFinder">');
 
-                if (d.Cloud.credential)
-                    res.line('<property name="credential" value="' + escapeAttr(d.Cloud.credential) + '"/>');
-
-                if (d.Cloud.credentialPath)
-                    res.line('<property name="credentialPath" value="' + escapeAttr(d.Cloud.credentialPath) + '"/>');
-
-                if (d.Cloud.identity)
-                    res.line('<property name="identity" value="' + escapeAttr(d.Cloud.identity) + '"/>');
-
-                if (d.Cloud.provider)
-                    res.line('<property name="provider" value="' + escapeAttr(d.Cloud.provider) + '"/>');
+                addProperty(res, d.Cloud, 'credential');
+                addProperty(res, d.Cloud, 'credentialPath');
+                addProperty(res, d.Cloud, 'identity');
+                addProperty(res, d.Cloud, 'provider');
                 
                 res.endBlock('</bean>');
 
@@ -236,14 +283,9 @@ function generateXml(cluster) {
             case 'GoogleStorage':
                 res.startBlock('<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.gce.TcpDiscoveryGoogleStorageIpFinder">');
 
-                if (d.GoogleStorage.projectName)
-                    res.line('<property name="projectName" value="' + escapeAttr(d.GoogleStorage.projectName) + '"/>');
-
-                if (d.GoogleStorage.bucketName)
-                    res.line('<property name="bucketName" value="' + escapeAttr(d.GoogleStorage.bucketName) + '"/>');
-
-                if (d.GoogleStorage.serviceAccountP12FilePath)
-                    res.line('<property name="serviceAccountP12FilePath" value="' + escapeAttr(d.GoogleStorage.serviceAccountP12FilePath) + '"/>');
+                addProperty(res, d.GoogleStorage, 'projectName');
+                addProperty(res, d.GoogleStorage, 'bucketName');
+                addProperty(res, d.GoogleStorage, 'serviceAccountP12FilePath');
 
                 //if (d.GoogleStorage.addrReqAttempts) todo ????
                 //    res.line('<property name="serviceAccountP12FilePath" value="' + escapeAttr(d.GoogleStorage.addrReqAttempts) + '"/>');
@@ -262,7 +304,7 @@ function generateXml(cluster) {
             case 'SharedFs':
                 if (d.SharedFs.initSchema != null) {
                     res.startBlock('<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.sharedfs.TcpDiscoverySharedFsIpFinder">');
-                    res.line('<property name="path" value="' + escapeAttr(d.SharedFs.path) + '"/>');
+                    addProperty(res, d.SharedFs, 'path');
                     res.endBlock('</bean>');
                 }
                 else {
@@ -278,8 +320,87 @@ function generateXml(cluster) {
         res.endBlock('</property>');
         res.endBlock('</bean>');
         res.endBlock('</property>');
+        
+        res.needEmptyLine = true
     }
 
+    addBeanWithProperties(res, cluster, 'atomicConfiguration', 'org.apache.ignite.configuration.AtomicConfiguration',
+        ['backups', 'cacheMode', 'atomicSequenceReserveSize']);
+    res.needEmptyLine = true;
+
+    addProperty(res, cluster, 'clockSyncSamples');
+    addProperty(res, cluster, 'clockSyncFrequency');
+    res.needEmptyLine = true;
+    addListProperty(res, cluster, 'includeEventTypes');
+    res.needEmptyLine = true;
+    addProperty(res, cluster, 'igfsThreadPoolSize');
+    addProperty(res, cluster, 'publicThreadPoolSize');
+    addProperty(res, cluster, 'systemThreadPoolSize');
+    addProperty(res, cluster, 'utilityCachePoolSize');
+    addProperty(res, cluster, 'managementThreadPoolSize');
+    res.needEmptyLine = true;
+    addProperty(res, cluster, 'marshalLocalJobs');
+    res.needEmptyLine = true;
+    addProperty(res, cluster, 'marshCacheKeepAliveTime');
+    addProperty(res, cluster, 'marshCachePoolSize');
+    res.needEmptyLine = true;
+    addProperty(res, cluster, 'cacheSanityCheckEnabled');
+    res.needEmptyLine = true;
+    addProperty(res, cluster, 'metricsExpireTime');
+    addProperty(res, cluster, 'metricsHistorySize');
+    addProperty(res, cluster, 'metricsLogFrequency');
+    addProperty(res, cluster, 'metricsUpdateFrequency');
+    res.needEmptyLine = true;
+    addProperty(res, cluster, 'networkTimeout');
+    addProperty(res, cluster, 'networkSendRetryDelay');
+    addProperty(res, cluster, 'networkSendRetryCount');
+    addProperty(res, cluster, 'discoveryStartupDelay');
+    res.needEmptyLine = true;
+    addProperty(res, cluster, 'deploymentMode');
+    res.needEmptyLine = true;
+    addProperty(res, cluster, 'peerClassLoadingEnabled');
+    addListProperty(res, cluster, 'peerClassLoadingLocalClassPathExclude');
+    addProperty(res, cluster, 'peerClassLoadingMissedResourcesCacheSize');
+    addProperty(res, cluster, 'peerClassLoadingThreadPoolSize');
+    res.needEmptyLine = true;
+    addProperty(res, cluster, 'segmentCheckFrequency');
+    addProperty(res, cluster, 'segmentationPolicy');
+    addProperty(res, cluster, 'allSegmentationResolversPassRequired');
+    addProperty(res, cluster, 'segmentationResolveAttempts');
+    addProperty(res, cluster, 'waitForSegmentOnStart');
+    res.needEmptyLine = true;
+
+    //addBeanWithProperties(res, cluster, 'swapSpaceSpi', 'org.apache.ignite.spi.swapspace.file.FileSwapSpaceSpi',
+    //['baseDirectory', 'readStripesNumber', 'maximumSparsity', 'maxWriteQueueSize', 'writeBufferSize']);
+    //res.emptyLineIfNeeded();
+    
+    if (cluster.swapSpaceSpi) {
+        res.emptyLineIfNeeded();
+
+        res.startBlock('<property name="swapSpaceSpi">');
+        res.startBlock('<bean class="org.apache.ignite.spi.swapspace.file.FileSwapSpaceSpi">');
+
+        addProperty(res, cluster.swapSpaceSpi, 'baseDirectory');
+        addProperty(res, cluster.swapSpaceSpi, 'readStripesNumber');
+        addProperty(res, cluster.swapSpaceSpi, 'maximumSparsity');
+        addProperty(res, cluster.swapSpaceSpi, 'maxWriteQueueSize');
+        addProperty(res, cluster.swapSpaceSpi, 'writeBufferSize');
+
+        res.endBlock('</bean>');
+        res.endBlock('</property>');
+
+        res.needEmptyLine = true;
+    }
+    
+    addBeanWithProperties(res, cluster, 'transactionConfiguration', 'org.apache.ignite.configuration.TransactionConfiguration',
+    ['defaultTxConcurrency', 'transactionIsolation', 'defaultTxTimeout', 'pessimisticTxLogLinger', 
+        'pessimisticTxLogSize', 'txSerializableEnabled']);
+
+    addProperty(res, cluster, 'timeServerPortBase');
+    addProperty(res, cluster, 'timeServerPortRange');
+    res.needEmptyLine = true;
+    addProperty(res, cluster, 'utilityCacheKeepAliveTime');
+    
     res.push('    </bean>\n');
     res.push('</beans>');