You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by an...@apache.org on 2015/07/09 08:02:00 UTC

[3/6] incubator-ignite git commit: # ignite-843 Refactor

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36063e13/modules/web-control-center/nodejs/public/form-models/clusters.json
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/form-models/clusters.json b/modules/web-control-center/nodejs/public/form-models/clusters.json
deleted file mode 100644
index e6be772..0000000
--- a/modules/web-control-center/nodejs/public/form-models/clusters.json
+++ /dev/null
@@ -1,891 +0,0 @@
-{
-  "templateTip": [
-    "Use following template for add cluster:",
-    "<ul>",
-    "  <li>blank - Empty configuration.</li>",
-    "  <li>local - Configuration with static ips discovery and pre-configured list of IP addresses.</li>",
-    "  <li>multicast - Configuration with multicast discovery.</li>",
-    "</ul>"
-  ],
-  "general": [
-    {
-      "label": "Name",
-      "type": "text",
-      "model": "name",
-      "required": true,
-      "placeholder": "Input name"
-    },
-    {
-      "label": "Caches",
-      "type": "dropdown-multiple",
-      "model": "caches",
-      "placeholder": "Choose caches",
-      "items": "caches",
-      "tip": [
-        "Select caches to start in cluster."
-      ],
-      "addLink": {
-        "label": "Add cache(s)",
-        "ref": "/caches"
-      }
-    },
-    {
-      "label": "Discovery",
-      "type": "dropdown-details",
-      "path": "discovery",
-      "model": "kind",
-      "required": true,
-      "placeholder": "Choose discovery",
-      "items": "discoveries",
-      "tip": [
-        "Discovery allows to discover remote nodes in grid."
-      ],
-      "details": {
-        "Vm": {
-          "expanded": true,
-          "fields": [
-            {
-              "type": "table-simple",
-              "path": "discovery.Vm",
-              "model": "addresses",
-              "editIdx": -1,
-              "reordering": true,
-              "ipaddress": true,
-              "placeholder": "IP address:port",
-              "tip": [
-                "Addresses may be represented as follows:",
-                "<ul>",
-                "  <li>IP address (e.g. 127.0.0.1, 9.9.9.9, etc);</li>",
-                "  <li>IP address and port (e.g. 127.0.0.1:47500, 9.9.9.9:47501, etc);</li>",
-                "  <li>IP address and port range (e.g. 127.0.0.1:47500..47510, 9.9.9.9:47501..47504, etc);</li>",
-                "  <li>Hostname (e.g. host1.com, host2, etc);</li>",
-                "  <li>Hostname and port (e.g. host1.com:47500, host2:47502, etc).</li>",
-                "  <li>Hostname and port range (e.g. host1.com:47500..47510, host2:47502..47508, etc).</li>",
-                "</ul>",
-                "If port is 0 or not provided then default port will be used (depends on discovery SPI configuration).",
-                "If port range is provided (e.g. host:port1..port2) the following should be considered:",
-                "<ul>",
-                "  <li>port1 < port2 should be true;</li>",
-                "  <li>Both port1 and port2 should be greater than 0.</li>",
-                "</ul>"
-              ]
-            }
-          ]
-        },
-        "Multicast": {
-          "expanded": false,
-          "fields": [
-            {
-              "label": "IP address",
-              "type": "text",
-              "path": "discovery.Multicast",
-              "model": "multicastGroup",
-              "placeholder": "228.1.2.4",
-              "tip": [
-                "IP address of multicast group."
-              ]
-            },
-            {
-              "label": "Port number",
-              "type": "number",
-              "path": "discovery.Multicast",
-              "model": "multicastPort",
-              "max": 65535,
-              "placeholder": "47400",
-              "tip": [
-                "Port number which multicast messages are sent to."
-              ]
-            },
-            {
-              "label": "Waits for reply",
-              "type": "number",
-              "path": "discovery.Multicast",
-              "model": "responseWaitTime",
-              "placeholder": "500",
-              "tip": [
-                "Time in milliseconds IP finder waits for reply to multicast address request."
-              ]
-            },
-            {
-              "label": "Attempts count",
-              "type": "number",
-              "path": "discovery.Multicast",
-              "model": "addressRequestAttempts",
-              "placeholder": "2",
-              "tip": [
-                "Number of attempts to send multicast address request.",
-                "IP finder re-sends request only in case if no reply for previous request is received."
-              ]
-            },
-            {
-              "label": "Local address",
-              "type": "text",
-              "path": "discovery.Multicast",
-              "model": "localAddress",
-              "tip": [
-                "Local host address used by this IP finder.",
-                "If provided address is non-loopback then multicast socket is bound to this interface.",
-                "If local address is not set or is any local address then IP finder creates multicast sockets for all found non-loopback addresses."
-              ]
-            }
-          ]
-        },
-        "S3": {
-          "expanded": true,
-          "fields": [
-            {
-              "label": "Bucket name",
-              "type": "text",
-              "required": true,
-              "path": "discovery.S3",
-              "model": "bucketName",
-              "placeholder": "",
-              "tip": [
-                "Bucket name for IP finder."
-              ]
-            }
-          ]
-        },
-        "Cloud": {
-          "expanded": true,
-          "fields": [
-            {
-              "label": "Credential",
-              "type": "text",
-              "path": "discovery.Cloud",
-              "model": "credential",
-              "placeholder": "",
-              "tip": [
-                "Credential that is used during authentication on the cloud.",
-                "Depending on a cloud platform it can be a password or access key."
-              ]
-            },
-            {
-              "label": "Path to credential",
-              "type": "text",
-              "path": "discovery.Cloud",
-              "model": "credentialPath",
-              "placeholder": "",
-              "tip": [
-                "Path to a credential that is used during authentication on the cloud.",
-                "Access key or private key should be stored in a plain or PEM file without a passphrase."
-              ]
-            },
-            {
-              "label": "Identity",
-              "type": "text",
-              "required": true,
-              "path": "discovery.Cloud",
-              "model": "identity",
-              "placeholder": "",
-              "tip": [
-                "Identity that is used as a user name during a connection to the cloud.",
-                "Depending on a cloud platform it can be an email address, user name, etc."
-              ]
-            },
-            {
-              "label": "Provider",
-              "type": "text",
-              "required": true,
-              "path": "discovery.Cloud",
-              "model": "provider",
-              "placeholder": "",
-              "tip": [
-                "Cloud provider to use."
-              ]
-            },
-            {
-              "label": "Regions",
-              "type": "table-simple",
-              "path": "discovery.Cloud",
-              "model": "regions",
-              "editIdx": -1,
-              "placeholder": "",
-              "tableTip": [
-                "List of regions where VMs are located.",
-                "If the regions are not set then every region, that a cloud provider has, will be investigated. This could lead to significant performance degradation.",
-                "Note, that some cloud providers, like Google Compute Engine, doesn't have a notion of a region. For such providers a call to this method is redundant."
-              ],
-              "tip": [
-                "Region where VMs are located."
-              ]
-            },
-            {
-              "label": "Zones",
-              "type": "table-simple",
-              "path": "discovery.Cloud",
-              "model": "zones",
-              "editIdx": -1,
-              "placeholder": "",
-              "tableTip": [
-                "List of zones where VMs are located.",
-                "If the zones are not set then every zone from regions, set by {@link #setRegions(Collection)}}, will be taken into account.",
-                "Note, that some cloud providers, like Rackspace, doesn't have a notion of a zone. For such providers a call to this method is redundant."
-              ],
-              "tip": [
-                "Zone where VMs are located."
-              ]
-            }
-          ]
-        },
-        "GoogleStorage": {
-          "expanded": true,
-          "fields": [
-            {
-              "label": "Project name",
-              "type": "text",
-              "required": true,
-              "path": "discovery.GoogleStorage",
-              "model": "projectName",
-              "placeholder": "",
-              "tip": [
-                "Google Cloud Platforms project name.",
-                "Usually this is an auto generated project number (ex. 208709979073) that can be found in 'Overview' section of Google Developer Console."
-              ]
-            },
-            {
-              "label": "Bucket name",
-              "type": "text",
-              "required": true,
-              "path": "discovery.GoogleStorage",
-              "model": "bucketName",
-              "placeholder": "",
-              "tip": [
-                "Google Cloud Storage bucket name.",
-                "If the bucket doesn't exist Ignite will automatically create it.",
-                "However the name must be unique across whole Google Cloud Storage and Service Account Id must be authorized to perform this operation."
-              ]
-            },
-            {
-              "label": "Private key path",
-              "type": "text",
-              "required": true,
-              "path": "discovery.GoogleStorage",
-              "model": "serviceAccountP12FilePath",
-              "placeholder": "",
-              "tip": [
-                "Full path to the private key in PKCS12 format of the Service Account."
-              ]
-            },
-            {
-              "label": "Account id",
-              "type": "text",
-              "required": true,
-              "path": "discovery.GoogleStorage",
-              "model": "accountId",
-              "placeholder": "",
-              "tip": [
-                "Service account ID (typically an e-mail address)."
-              ]
-            }
-          ]
-        },
-        "Jdbc": {
-          "expanded": true,
-          "fields": [
-            {
-              "label": "DB schema should be initialized by Ignite",
-              "type": "check",
-              "path": "discovery.Jdbc",
-              "model": "initSchema",
-              "tip": [
-                "Flag indicating whether DB schema should be initialized by Ignite or was explicitly created by user."
-              ]
-            }
-          ]
-        },
-        "SharedFs": {
-          "expanded": false,
-          "fields": [
-            {
-              "label": "File path",
-              "type": "text",
-              "path": "discovery.SharedFs",
-              "model": "path",
-              "placeholder": "disco/tcp"
-            }
-          ]
-        }
-      }
-    }
-  ],
-  "advanced": [
-    {
-      "label": "Atomic configuration",
-      "tip": [
-        "Configuration for atomic data structures.",
-        "Atomics are distributed across the cluster, essentially enabling performing atomic operations (such as increment-and-get or compare-and-set) with the same globally-visible value."
-      ],
-      "fields": [
-        {
-          "label": "Backups",
-          "type": "number",
-          "path": "atomicConfiguration",
-          "model": "backups",
-          "placeholder": "0",
-          "tip": [
-            "Number of backup nodes."
-          ]
-        },
-        {
-          "label": "Cache mode",
-          "type": "dropdown",
-          "path": "atomicConfiguration",
-          "model": "cacheMode",
-          "placeholder": "PARTITIONED",
-          "items": "cacheModes",
-          "tip": [
-            "Cache modes:",
-            "<ul>",
-            "  <li>Partitioned - in this mode the overall key set will be divided into partitions and all partitions will be split equally between participating nodes.</li>",
-            "  <li>Replicated - in this mode all the keys are distributed to all participating nodes.</li>",
-            "  <li>Local - in this mode caches residing on different grid nodes will not know about each other.</li>",
-            "</ul>"
-          ]
-        },
-        {
-          "label": "Sequence reserve",
-          "type": "number",
-          "path": "atomicConfiguration",
-          "model": "atomicSequenceReserveSize",
-          "placeholder": "1,000",
-          "tip": [
-            "Default number of sequence values reserved for IgniteAtomicSequence instances.",
-            "After a certain number has been reserved, consequent increments of sequence will happen locally, without communication with other nodes, until the next reservation has to be made."
-          ]
-        }
-      ]
-    },
-    {
-      "label": "Communication",
-      "tip": [
-        "Cluster communication network properties."
-      ],
-      "fields": [
-        {
-          "label": "Timeout",
-          "type": "number",
-          "model": "networkTimeout",
-          "placeholder": "5,000",
-          "tip": [
-            "Maximum timeout in milliseconds for network requests."
-          ]
-        },
-        {
-          "label": "Send retry delay",
-          "type": "number",
-          "model": "networkSendRetryDelay",
-          "placeholder": "1,000",
-          "tip": [
-            "Interval in milliseconds between message send retries."
-          ]
-        },
-        {
-          "label": "Send retry count",
-          "type": "number",
-          "model": "networkSendRetryCount",
-          "placeholder": "3",
-          "tip": [
-            "Message send retries count."
-          ]
-        },
-        {
-          "label": "Segment check frequency",
-          "type": "number",
-          "model": "segmentCheckFrequency",
-          "placeholder": "10,000",
-          "tip": [
-            "Network segment check frequency in milliseconds.",
-            "If 0, periodic segment check is disabled and segment is checked only on topology changes (if segmentation resolvers are configured)."
-          ]
-        },
-        {
-          "label": "Wait for segment on start",
-          "type": "check",
-          "model": "waitForSegmentOnStart",
-          "tip": [
-            "Wait for segment on start flag.",
-            "<ul>",
-            "  <li>If enabled, node should wait for correct segment on start.</li>",
-            "  <li>If node detects that segment is incorrect on startup and enabled, node waits until segment becomes correct.</li>",
-            "  <li>If segment is incorrect on startup and disabled, exception is thrown.</li>",
-            "</ul>"
-          ]
-        },
-        {
-          "label": "Discovery startup delay",
-          "type": "number",
-          "model": "discoveryStartupDelay",
-          "placeholder": "600,000",
-          "tip": [
-            "This value is used to expire messages from waiting list whenever node discovery discrepancies happen."
-          ]
-        }
-      ]
-    },
-    {
-      "label": "Deployment",
-      "tip": [
-        "Task and resources deployment in cluster."
-      ],
-      "fields": [
-        {
-          "label": "Mode",
-          "type": "dropdown",
-          "model": "deploymentMode",
-          "placeholder": "SHARED",
-          "items": "deploymentModes",
-          "tip": [
-            "Task classes and resources sharing mode."
-          ]
-        }
-      ]
-    },
-    {
-      "label": "Events",
-      "tip": [
-        " Grid events are used for notification about what happens within the grid."
-      ],
-      "fields": [
-        {
-          "label": "Include type",
-          "type": "dropdown-multiple",
-          "model": "includeEventTypes",
-          "placeholder": "Choose recorded event types",
-          "items": "events",
-          "tip": [
-            "Array of event types, which will be recorded by GridEventStorageManager#record(Event).",
-            "Note, that either the include event types or the exclude event types can be established."
-          ]
-        }
-      ]
-    },
-    {
-      "label": "Marshaller",
-      "tip": [
-        "Marshaller allows to marshal or unmarshal objects in grid.",
-        "It provides serialization/deserialization mechanism for all instances that are sent across networks or are otherwise serialized."
-      ],
-      "fields": [
-        {
-          "label": "Marshaller",
-          "type": "dropdown-details",
-          "path": "marshaller",
-          "model": "kind",
-          "placeholder": "Choose marshaller",
-          "items": "marshallers",
-          "tip": [
-            "Instance of marshaller to use in grid. If not provided, OptimizedMarshaller will be used on Java HotSpot VM, and JdkMarshaller will be used on other VMs."
-          ],
-          "details": {
-            "OptimizedMarshaller": {
-              "expanded": false,
-              "fields": [
-                {
-                  "label": "Streams pool size",
-                  "type": "number",
-                  "path": "marshaller.OptimizedMarshaller",
-                  "model": "poolSize",
-                  "placeholder": "0",
-                  "tip": [
-                    "Specifies size of cached object streams used by marshaller.",
-                    "Object streams are cached for performance reason to avoid costly recreation for every serialization routine.",
-                    "If 0 (default), pool is not used and each thread has its own cached object stream which it keeps reusing.",
-                    "Since each stream has an internal buffer, creating a stream for each thread can lead to high memory consumption if many large messages are marshalled or unmarshalled concurrently.",
-                    "Consider using pool in this case. This will limit number of streams that can be created and, therefore, decrease memory consumption.",
-                    "NOTE: Using streams pool can decrease performance since streams will be shared between different threads which will lead to more frequent context switching."
-                  ]
-                },
-                {
-                  "label": "Require serializable",
-                  "type": "check",
-                  "path": "marshaller.OptimizedMarshaller",
-                  "model": "requireSerializable",
-                  "tip": [
-                    "Whether marshaller should require Serializable interface or not."
-                  ]
-                }
-              ]
-            }
-          }
-        },
-        {
-          "label": "Marshal local jobs",
-          "type": "check",
-          "model": "marshalLocalJobs",
-          "placeholder": "false",
-          "tip": [
-            "If this flag is enabled, jobs mapped to local node will be marshalled as if it was remote node."
-          ]
-        },
-        {
-          "label": "Keep alive time",
-          "type": "number",
-          "model": "marshallerCacheKeepAliveTime",
-          "placeholder": "10,000",
-          "tip": [
-            "Keep alive time of thread pool that is in charge of processing marshaller messages."
-          ]
-        },
-        {
-          "label": "Pool size",
-          "type": "number",
-          "model": "marshallerCacheThreadPoolSize",
-          "placeholder": "max(8, availableProcessors) * 2",
-          "tip": [
-            "Default size of thread pool that is in charge of processing marshaller messages."
-          ]
-        }
-      ]
-    },
-    {
-      "label": "Metrics",
-      "tip": ["Cluster runtime metrics settings."],
-      "fields": [
-        {
-          "label": "Elapsed time",
-          "type": "number",
-          "model": "metricsExpireTime",
-          "placeholder": "Long.MAX_VALUE",
-          "min": 1,
-          "tip": [
-            "Time in milliseconds after which a certain metric value is considered expired."
-          ]
-        },
-        {
-          "label": "History size",
-          "type": "number",
-          "model": "metricsHistorySize",
-          "placeholder": "10,000",
-          "min": 1,
-          "tip": [
-            "Number of metrics kept in history to compute totals and averages."
-          ]
-        },
-        {
-          "label": "Log frequency",
-          "type": "number",
-          "model": "metricsLogFrequency",
-          "placeholder": "60,000",
-          "tip": [
-            "Frequency of metrics log print out. To disable set to 0"
-          ]
-        },
-        {
-          "label": "Update frequency",
-          "type": "number",
-          "model": "metricsUpdateFrequency",
-          "placeholder": "60,000",
-          "tip": [
-            "Job metrics update frequency in milliseconds.",
-            "<ul>",
-            "  <li>If set to -1 job metrics are never updated.</li>",
-            "  <li>If set to 0 job metrics are updated on each job start and finish.</li>",
-            "  <li>Positive value defines the actual update frequency.</li>",
-            "</ul>"
-          ]
-        }
-      ]
-    },
-    {
-      "label": "Peer Class Loading",
-      "tip": ["Cluster peer class loading settings."],
-      "fields": [
-        {
-          "label": "Enable peer class loading",
-          "type": "check",
-          "model": "peerClassLoadingEnabled",
-          "tip": [
-            "Enables/disables peer class loading."
-          ]
-        },
-        {
-          "label": "Local class path exclude",
-          "type": "text",
-          "model": "peerClassLoadingLocalClassPathExclude",
-          "placeholder": "[]",
-          "tip": [
-            "List of packages separated by comma from the system classpath that need to be peer-to-peer loaded from task originating node.",
-            "'*' is supported at the end of the package name which means that all sub-packages and their classes are included like in Java package import clause."
-          ]
-        },
-        {
-          "label": "Missed resources cache size",
-          "type": "number",
-          "model": "peerClassLoadingMissedResourcesCacheSize",
-          "placeholder": "100",
-          "tip": [
-            "If size greater than 0, missed resources will be cached and next resource request ignored.",
-            "If size is 0, then request for the resource will be sent to the remote node every time this resource is requested."
-          ]
-        },
-        {
-          "label": "Pool size",
-          "type": "number",
-          "model": "peerClassLoadingThreadPoolSize",
-          "placeholder": "availableProcessors",
-          "tip": [
-            "Thread pool size to use for peer class loading."
-          ]
-        }
-      ]
-    },
-    {
-      "label": "Swap",
-      "tip": ["Settings for overflow data to disk if it cannot fit in memory."],
-      "fields": [
-        {
-          "label": "Swap space SPI",
-          "type": "dropdown-details",
-          "path": "swapSpaceSpi",
-          "model": "kind",
-          "items": "swapSpaceSpis",
-          "placeholder": "Choose swap SPI",
-          "tip": [
-            "Provides a mechanism in grid for storing data on disk.",
-            "Ignite cache uses swap space to overflow data to disk if it cannot fit in memory."
-          ],
-          "details": {
-            "FileSwapSpaceSpi": {
-              "fields": [
-                {
-                  "label": "Base directory",
-                  "type": "text",
-                  "path": "swapSpaceSpi.FileSwapSpaceSpi",
-                  "model": "baseDirectory",
-                  "placeholder": "swapspace",
-                  "tip": [
-                    "Base directory where to write files."
-                  ]
-                },
-                {
-                  "label": "Read stripe size",
-                  "type": "number",
-                  "path": "swapSpaceSpi.FileSwapSpaceSpi",
-                  "model": "readStripesNumber",
-                  "placeholder": "available CPU cores",
-                  "tip": [
-                    "Read stripe size defines number of file channels to be used concurrently."
-                  ]
-                },
-                {
-                  "label": "Maximum sparsity",
-                  "type": "number",
-                  "path": "swapSpaceSpi.FileSwapSpaceSpi",
-                  "model": "maximumSparsity",
-                  "placeholder": "0.5",
-                  "tip": [
-                    "This property defines maximum acceptable wasted file space to whole file size ratio.",
-                    "When this ratio becomes higher than specified number compacting thread starts working."
-                  ]
-                },
-                {
-                  "label": "Max write queue size",
-                  "type": "number",
-                  "path": "swapSpaceSpi.FileSwapSpaceSpi",
-                  "model": "maxWriteQueueSize",
-                  "placeholder": "1024 * 1024",
-                  "tip": [
-                    "Max write queue size in bytes.",
-                    "If there are more values are waiting for being written to disk then specified size, SPI will block on store operation."
-                  ]
-                },
-                {
-                  "label": "Write buffer size",
-                  "type": "number",
-                  "path": "swapSpaceSpi.FileSwapSpaceSpi",
-                  "model": "writeBufferSize",
-                  "placeholder": "Available CPU cores",
-                  "tip": [
-                    "Write buffer size in bytes.",
-                    "Write to disk occurs only when this buffer is full."
-                  ]
-                }
-              ]
-            }
-          }
-        }
-      ]
-    },
-    {
-      "label": "Time configuration",
-      "tip": ["Time settings for CLOCK write ordering mode."],
-      "fields": [
-        {
-          "label": "Samples size",
-          "type": "number",
-          "model": "clockSyncSamples",
-          "placeholder": "8",
-          "tip": [
-            "Number of samples used to synchronize clocks between different nodes.",
-            "Clock synchronization is used for cache version assignment in CLOCK order mode."
-          ]
-        },
-        {
-          "label": "Frequency",
-          "type": "number",
-          "model": "clockSyncFrequency",
-          "placeholder": "120,000",
-          "tip": [
-            "Frequency at which clock is synchronized between nodes, in milliseconds.",
-            "Clock synchronization is used for cache version assignment in CLOCK order mode."
-          ]
-        },
-        {
-          "label": "Port base",
-          "type": "number",
-          "model": "timeServerPortBase",
-          "max": 65535,
-          "placeholder": "31100",
-          "tip": [
-            "Time server provides clock synchronization between nodes.",
-            "Base UPD port number for grid time server. Time server will be started on one of free ports in range."
-          ]
-        },
-        {
-          "label": "Port range",
-          "type": "number",
-          "model": "timeServerPortRange",
-          "placeholder": "100",
-          "tip": [
-            "Time server port range."
-          ]
-        }
-      ]
-    },
-    {
-      "label": "Thread pools size",
-      "tip": ["Settings for node thread pools."],
-      "fields": [
-        {
-          "label": "Public",
-          "type": "number",
-          "model": "publicThreadPoolSize",
-          "placeholder": "max(8, availableProcessors) * 2",
-          "tip": [
-            "Thread pool that is in charge of processing ComputeJob, GridJobs and user messages sent to node."
-          ]
-        },
-        {
-          "label": "System",
-          "type": "number",
-          "model": "systemThreadPoolSize",
-          "placeholder": "max(8, availableProcessors) * 2",
-          "tip": [
-            "Thread pool that is in charge of processing internal system messages."
-          ]
-        },
-        {
-          "label": "Management",
-          "type": "number",
-          "model": "managementThreadPoolSize",
-          "placeholder": "4",
-          "tip": [
-            "Thread pool that is in charge of processing internal and Visor ComputeJob, GridJobs."
-          ]
-        },
-        {
-          "label": "IGFS",
-          "type": "number",
-          "model": "igfsThreadPoolSize",
-          "placeholder": "availableProcessors",
-          "tip": [
-            "Thread pool that is in charge of processing outgoing IGFS messages."
-          ]
-        }
-      ]
-    },
-    {
-      "label": "Transactions",
-      "tip": ["Settings for transactions."],
-      "fields": [
-        {
-          "label": "Cache concurrency",
-          "type": "dropdown",
-          "path": "transactionConfiguration",
-          "model": "defaultTxConcurrency",
-          "placeholder": "PESSIMISTIC",
-          "items": "transactionConcurrency",
-          "tip": [
-            "Cache transaction concurrency to use when one is not explicitly specified."
-          ]
-        },
-        {
-          "label": "Isolation",
-          "type": "dropdown",
-          "path": "transactionConfiguration",
-          "model": "transactionIsolation",
-          "placeholder": "REPEATABLE_READ",
-          "items": "transactionIsolation",
-          "tip": [
-            "Default transaction isolation."
-          ]
-        },
-        {
-          "label": "Default timeout",
-          "type": "number",
-          "path": "transactionConfiguration",
-          "model": "defaultTxTimeout",
-          "placeholder": "0",
-          "tip": [
-            "Default transaction timeout."
-          ]
-        },
-        {
-          "label": "Pessimistic log cleanup delay",
-          "type": "number",
-          "path": "transactionConfiguration",
-          "model": "pessimisticTxLogLinger",
-          "placeholder": "10,000",
-          "tip": [
-            "Delay, in milliseconds, after which pessimistic recovery entries will be cleaned up for failed node."
-          ]
-        },
-        {
-          "label": "Pessimistic log size",
-          "type": "number",
-          "path": "transactionConfiguration",
-          "model": "pessimisticTxLogSize",
-          "placeholder": "0",
-          "tip": [
-            "Size of pessimistic transactions log stored on node in order to recover transaction commit if originating node has left grid before it has sent all messages to transaction nodes."
-          ]
-        },
-        {
-          "label": "Enable serializable cache transactions",
-          "type": "check",
-          "path": "transactionConfiguration",
-          "model": "txSerializableEnabled",
-          "tip": [
-            "Flag to enable/disable isolation level for cache transactions.",
-            "Serializable level does carry certain overhead and if not used, should be disabled."
-          ]
-        }
-      ]
-    },
-    {
-      "label": "Utility",
-      "tip": ["Settings for utility messages processing."],
-      "fields": [
-        {
-          "label": "Keep alive time",
-          "type": "number",
-          "model": "utilityCacheKeepAliveTime",
-          "placeholder": "10,000",
-          "tip": [
-            "Keep alive time of thread pool that is in charge of processing utility cache messages."
-          ]
-        },
-        {
-          "label": "Pool size",
-          "type": "number",
-          "model": "utilityCachePoolSize",
-          "placeholder": "max(8, availableProcessors) * 2",
-          "tip": [
-            "Thread pool that is in charge of processing utility cache messages."
-          ]
-        }
-      ]
-    }
-  ]
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36063e13/modules/web-control-center/nodejs/public/form-models/persistence.json
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/form-models/persistence.json b/modules/web-control-center/nodejs/public/form-models/persistence.json
deleted file mode 100644
index edf5344..0000000
--- a/modules/web-control-center/nodejs/public/form-models/persistence.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
-  "connection": [
-    {
-      "label": "Name",
-      "type": "text",
-      "model": "name",
-      "required": true
-    },
-    {
-      "label": "Database type",
-      "type": "dropdown",
-      "model": "dbType",
-      "placeholder": "Choose database",
-      "items": "databases",
-      "tip": [
-        "Select database type to connect for loading tables metadata."
-      ]
-    },
-    {
-      "label": "Database name",
-      "type": "text",
-      "model": "dbName",
-      "tip": [
-        "Database name to connect for loading tables metadata."
-      ]
-    },
-    {
-      "label": "Host",
-      "type": "text",
-      "model": "host",
-      "placeholder": "IP address or host",
-      "tip": [
-        "IP address or host name where database server deployed."
-      ]
-    },
-    {
-      "label": "Port",
-      "type": "number",
-      "model": "port",
-      "max": 65535,
-      "placeholder": "",
-      "tip": [
-        "Port number for connecting to database."
-      ]
-    },
-    {
-      "label": "User",
-      "type": "text",
-      "model": "user",
-      "placeholder": "",
-      "tip": [
-        "User name for connecting to database."
-      ]
-    },
-    {
-      "label": "Password",
-      "type": "password",
-      "model": "password",
-      "placeholder": "",
-      "tip": [
-        "Password for connecting to database.",
-        "Note, password would not be saved."
-      ]
-    }
-  ]
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36063e13/modules/web-control-center/nodejs/public/javascripts/bundle.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/javascripts/bundle.js b/modules/web-control-center/nodejs/public/javascripts/bundle.js
deleted file mode 100644
index 840da56..0000000
--- a/modules/web-control-center/nodejs/public/javascripts/bundle.js
+++ /dev/null
@@ -1,18 +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.
- */
-
-// Place here all common utility functions that will be available on each page.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36063e13/modules/web-control-center/nodejs/public/javascripts/controllers/adminController.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/javascripts/controllers/adminController.js b/modules/web-control-center/nodejs/public/javascripts/controllers/adminController.js
deleted file mode 100644
index e0ded83..0000000
--- a/modules/web-control-center/nodejs/public/javascripts/controllers/adminController.js
+++ /dev/null
@@ -1,66 +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.
- */
-
-controlCenterModule.controller('adminController', [
-    '$scope', '$alert', '$http', 'commonFunctions', function ($scope,
-        $alert, $http, commonFunctions) {
-
-        $scope.userList = null;
-
-        function reload() {
-            $http.get('ajax/list')
-                .success(function (data) {
-                    $scope.userList = data;
-                })
-                .error(function (errMsg) {
-                    $alert({title: $scope.errorMessage(errMsg)});
-                });
-        }
-
-        reload();
-
-        $scope.removeUser = function (user) {
-            if (!confirm("You are going to delete user " + user.username + ". Please, confirm it."))
-                return false;
-
-            $http.get('ajax/remove', {params: {userId: user._id}}).success(
-                function (data) {
-                    $scope.alertStr = "User has been removed: " + user.username;
-                    $scope.alertType = 'success';
-
-                    reload();
-                }).error(function (err) {
-                    $scope.alertStr = "Failed to remove user: " + err;
-                });
-
-            return false;
-        };
-        
-        $scope.toggleAdmin = function(user) {
-            if (user.adminChanging)
-                return;
-            
-            user.adminChanging = true;
-
-            $http.get('ajax/setAdmin', {params: {userId: user._id, adminFlag: user.admin}}).success(
-                function (data) {
-                    reload();
-                }).error(function (err) {
-                    $scope.alertStr = "Failed to update user: " + err;
-                });
-        }
-    }]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36063e13/modules/web-control-center/nodejs/public/javascripts/controllers/caches.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/javascripts/controllers/caches.js b/modules/web-control-center/nodejs/public/javascripts/controllers/caches.js
deleted file mode 100644
index 294ff8f..0000000
--- a/modules/web-control-center/nodejs/public/javascripts/controllers/caches.js
+++ /dev/null
@@ -1,253 +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.
- */
-
-controlCenterModule.controller('cachesController', ['$scope', '$alert', '$http', 'commonFunctions', function ($scope, $alert, $http, commonFunctions) {
-        $scope.swapSimpleItems = commonFunctions.swapSimpleItems;
-        $scope.joinTip = commonFunctions.joinTip;
-        $scope.getModel = commonFunctions.getModel;
-        $scope.errorMessage = commonFunctions.errorMessage;
-
-        $scope.atomicities = [
-            {value: 'ATOMIC', label: 'ATOMIC'},
-            {value: 'TRANSACTIONAL', label: 'TRANSACTIONAL'}
-        ];
-
-        $scope.modes = [
-            {value: 'PARTITIONED', label: 'PARTITIONED'},
-            {value: 'REPLICATED', label: 'REPLICATED'},
-            {value: 'LOCAL', label: 'LOCAL'}
-        ];
-
-        $scope.atomicWriteOrderModes = [
-            {value: 'CLOCK', label: 'CLOCK'},
-            {value: 'PRIMARY', label: 'PRIMARY'}
-        ];
-
-        $scope.memoryModes = [
-            {value: 'ONHEAP_TIERED', label: 'ONHEAP_TIERED'},
-            {value: 'OFFHEAP_TIERED', label: 'OFFHEAP_TIERED'},
-            {value: 'OFFHEAP_VALUES', label: 'OFFHEAP_VALUES'}
-        ];
-
-        $scope.evictionPolicies = [
-            {value: 'LRU', label: 'LRU'},
-            {value: 'RND', label: 'Random'},
-            {value: 'FIFO', label: 'FIFO'},
-            {value: 'SORTED', label: 'Sorted'},
-            {value: undefined, label: 'Not set'}
-        ];
-
-        $scope.rebalanceModes = [
-            {value: 'SYNC', label: 'SYNC'},
-            {value: 'ASYNC', label: 'ASYNC'},
-            {value: 'NONE', label: 'NONE'}
-        ];
-
-        $scope.cacheStoreFactories = [
-            {value: 'CacheJdbcPojoStoreFactory', label: 'JDBC POJO store factory'},
-            {value: 'CacheJdbcBlobStoreFactory', label: 'JDBC BLOB store factory'},
-            {value: 'CacheHibernateBlobStoreFactory', label: 'Hibernate BLOB store factory'},
-            {value: undefined, label: 'Not set'}
-        ];
-
-        $scope.cacheStoreJdbcDialects = [
-            {value: 'Oracle', label: 'Oracle'},
-            {value: 'DB2', label: 'IBM DB2'},
-            {value: 'SQLServer', label: 'Microsoft SQL Server'},
-            {value: 'MySQL', label: 'My SQL'},
-            {value: 'PostgreSQL', label: 'Postgre SQL'},
-            {value: 'H2', label: 'H2 database'}
-        ];
-
-        $scope.general = [];
-        $scope.advanced = [];
-
-        $scope.showError = function (msg) {
-            if ($scope.alert)
-                $scope.alert.hide();
-
-            $scope.alert = $alert({title: $scope.errorMessage(msg)});
-        };
-
-        $scope.showInfo = function (msg) {
-            if ($scope.alert)
-                $scope.alert.hide();
-
-            $scope.alert = $alert({
-                type: 'success',
-                title: msg,
-                duration: 2
-            });
-        };
-
-        $http.get('/form-models/caches.json')
-            .success(function (data) {
-                $scope.general = data.general;
-                $scope.advanced = data.advanced;
-            })
-            .error(function (errMsg) {
-                $scope.showError(errMsg);
-            });
-
-        $scope.caches = [];
-
-        // When landing on the page, get caches and show them.
-        $http.post('/configuration/caches/list')
-            .success(function (data) {
-                $scope.spaces = data.spaces;
-                $scope.caches = data.caches;
-
-                var restoredItem = angular.fromJson(sessionStorage.cacheBackupItem);
-
-                if (restoredItem) {
-                    var idx = _.findIndex($scope.caches, function (cache) {
-                        return cache._id == restoredItem._id;
-                    });
-
-                    if (idx >= 0) {
-                        $scope.selectedItem = $scope.caches[idx];
-
-                        $scope.backupItem = restoredItem;
-                    }
-                    else
-                        sessionStorage.removeItem('cacheBackupItem');
-                }
-
-                $scope.$watch('backupItem', function (val) {
-                    if (val)
-                        sessionStorage.cacheBackupItem = angular.toJson(val);
-                }, true);
-            })
-            .error(function (errMsg) {
-                $scope.showError(errMsg);
-            });
-
-        $scope.selectItem = function (item) {
-            $scope.selectedItem = item;
-
-            $scope.backupItem = angular.copy(item);
-        };
-
-        // Add new cache.
-        $scope.createItem = function () {
-            $scope.backupItem = {mode: 'PARTITIONED', atomicityMode: 'ATOMIC', readFromBackup: true};
-            $scope.backupItem.space = $scope.spaces[0]._id;
-        };
-
-        // Save cache in db.
-        $scope.saveItem = function () {
-            var item = $scope.backupItem;
-
-            if (item.cacheStoreFactory && item.cacheStoreFactory.kind && !(item.readThrough || item.writeThrough)) {
-                $scope.showError('Store is configured but read/write through are not enabled!');
-
-                return;
-            }
-
-            if ((item.readThrough || item.writeThrough) && (!item.cacheStoreFactory || !item.cacheStoreFactory.kind)) {
-                $scope.showError('Read / write through are enabled but strore is not configured!');
-
-                return;
-            }
-
-            $http.post('/configuration/caches/save', item)
-                .success(function (_id) {
-                    var idx = _.findIndex($scope.caches, function (cache) {
-                        return cache._id == _id;
-                    });
-
-                    if (idx >= 0)
-                        angular.extend($scope.caches[idx], item);
-                    else {
-                        item._id = _id;
-
-                        $scope.caches.push(item);
-                    }
-
-                    $scope.selectItem(item);
-
-                    $scope.showInfo('Cache "' + item.name + '" saved.');
-                })
-                .error(function (errMsg) {
-                    $scope.showError(errMsg);
-                });
-        };
-
-        $scope.removeItem = function () {
-            var _id = $scope.selectedItem._id;
-
-            $http.post('/configuration/caches/remove', {_id: _id})
-                .success(function () {
-                    var i = _.findIndex($scope.caches, function (cache) {
-                        return cache._id == _id;
-                    });
-
-                    if (i >= 0) {
-                        $scope.caches.splice(i, 1);
-
-                        $scope.selectedItem = undefined;
-                        $scope.backupItem = undefined;
-                    }
-                })
-                .error(function (errMsg) {
-                    $scope.showError(errMsg);
-                });
-        };
-
-        $scope.checkIndexedTypes = function (keyCls, valCls) {
-            if (!keyCls) {
-                $scope.showError('Key class name should be non empty!');
-
-                return false;
-            }
-
-            if (!valCls) {
-                $scope.showError('Value class name should be non empty!');
-
-                return false;
-            }
-
-            return true;
-        };
-
-        $scope.addIndexedTypes = function (keyCls, valCls) {
-            if (!$scope.checkIndexedTypes(keyCls, valCls))
-                return;
-
-            var idxTypes = $scope.backupItem.indexedTypes;
-
-            var newItem = {keyClass: keyCls, valueClass: valCls};
-
-            if (idxTypes)
-                idxTypes.push(newItem);
-            else
-                $scope.backupItem.indexedTypes = [newItem];
-        };
-
-        $scope.saveIndexedType = function (idx, keyCls, valCls) {
-            if (!$scope.checkIndexedTypes(keyCls, valCls))
-                return idx;
-
-            var idxType = $scope.backupItem.indexedTypes[idx];
-
-            idxType.keyClass = keyCls;
-            idxType.valueClass = valCls;
-
-            return -1;
-        };
-    }]
-);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36063e13/modules/web-control-center/nodejs/public/javascripts/controllers/clusters.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/javascripts/controllers/clusters.js b/modules/web-control-center/nodejs/public/javascripts/controllers/clusters.js
deleted file mode 100644
index 431ca54..0000000
--- a/modules/web-control-center/nodejs/public/javascripts/controllers/clusters.js
+++ /dev/null
@@ -1,218 +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.
- */
-
-controlCenterModule.controller('clustersController', ['$scope', '$alert', '$http', 'commonFunctions', function ($scope, $alert, $http, commonFunctions) {
-        $scope.swapSimpleItems = commonFunctions.swapSimpleItems;
-        $scope.joinTip = commonFunctions.joinTip;
-        $scope.getModel = commonFunctions.getModel;
-        $scope.errorMessage = commonFunctions.errorMessage;
-        $scope.console = console;
-
-        $scope.templates = [
-            {value: {discovery: {Vm: {addresses: ['127.0.0.1:47500..47510']}}}, label: 'none'},
-            {value: {discovery: {kind: 'Vm', Vm: {addresses: ['127.0.0.1:47500..47510']}}}, label: 'local'},
-            {value: {discovery: {kind: 'Multicast', Vm: {addresses: ['127.0.0.1:47500..47510']}, Multicast: {}}}, label: 'multicast'}
-        ];
-
-        $scope.discoveries = [
-            {value: 'Vm', label: 'static IPs'},
-            {value: 'Multicast', label: 'multicast'},
-            {value: 'S3', label: 'AWS S3'},
-            {value: 'Cloud', label: 'apache jclouds'},
-            {value: 'GoogleStorage', label: 'google cloud storage'},
-            {value: 'Jdbc', label: 'JDBC'},
-            {value: 'SharedFs', label: 'shared filesystem'}
-        ];
-
-        $scope.swapSpaceSpis = [
-            {value: 'FileSwapSpaceSpi', label: 'File-based swap'},
-            {value: undefined, label: 'Not set'}
-        ];
-
-        $scope.events = [];
-
-        for (var eventGroupName in eventGroups) {
-            if (eventGroups.hasOwnProperty(eventGroupName)) {
-                $scope.events.push({value: eventGroupName, label: eventGroupName});
-            }
-        }
-
-        $scope.cacheModes = [
-            {value: 'LOCAL', label: 'LOCAL'},
-            {value: 'REPLICATED', label: 'REPLICATED'},
-            {value: 'PARTITIONED', label: 'PARTITIONED'}
-        ];
-
-        $scope.deploymentModes = [
-            {value: 'PRIVATE', label: 'PRIVATE'},
-            {value: 'ISOLATED', label: 'ISOLATED'},
-            {value: 'SHARED', label: 'SHARED'},
-            {value: 'CONTINUOUS', label: 'CONTINUOUS'}
-        ];
-
-        $scope.transactionConcurrency = [
-            {value: 'OPTIMISTIC', label: 'OPTIMISTIC'},
-            {value: 'PESSIMISTIC', label: 'PESSIMISTIC'}
-        ];
-
-        $scope.transactionIsolation = [
-            {value: 'READ_COMMITTED', label: 'READ_COMMITTED'},
-            {value: 'REPEATABLE_READ', label: 'REPEATABLE_READ'},
-            {value: 'SERIALIZABLE', label: 'SERIALIZABLE'}
-        ];
-
-        $scope.segmentationPolicy = [
-            {value: 'RESTART_JVM', label: 'RESTART_JVM'},
-            {value: 'STOP', label: 'STOP'},
-            {value: 'NOOP', label: 'NOOP'}
-        ];
-
-        $scope.marshallers = [
-            {value: 'JdkMarshaller', label: 'JdkMarshaller'},
-            {value: 'OptimizedMarshaller', label: 'OptimizedMarshaller'}
-        ];
-
-        $scope.clusters = [];
-
-        $http.get('/form-models/clusters.json')
-            .success(function (data) {
-                $scope.templateTip = data.templateTip;
-
-                $scope.general = data.general;
-                $scope.advanced = data.advanced;
-            })
-            .error(function (errMsg) {
-                $alert({title: $scope.errorMessage(errMsg)});
-            });
-
-        // When landing on the page, get clusters and show them.
-        $http.post('/configuration/clusters/list')
-            .success(function (data) {
-                $scope.caches = data.caches;
-                $scope.spaces = data.spaces;
-                $scope.clusters = data.clusters;
-
-                var restoredItem = angular.fromJson(sessionStorage.clusterBackupItem);
-
-                if (restoredItem) {
-                    var idx = _.findIndex($scope.clusters, function (cluster) {
-                        return cluster._id == restoredItem._id;
-                    });
-
-                    if (idx >= 0) {
-                        $scope.selectedItem = $scope.clusters[idx];
-
-                        $scope.backupItem = restoredItem;
-                    }
-                    else
-                        sessionStorage.removeItem('clusterBackupItem');
-                }
-
-                $scope.$watch('backupItem', function (val) {
-                    if (val)
-                        sessionStorage.clusterBackupItem = angular.toJson(val);
-                }, true);
-            })
-            .error(function (errMsg) {
-                $alert({title: $scope.errorMessage(errMsg)});
-            });
-
-        $scope.selectItem = function (item) {
-            $scope.selectedItem = item;
-
-            $scope.backupItem = angular.copy(item);
-        };
-
-        // Add new cluster.
-        $scope.createItem = function () {
-            $scope.backupItem = angular.copy($scope.create.template);
-
-            $scope.backupItem.space = $scope.spaces[0]._id;
-        };
-
-        // Save cluster in db.
-        $scope.saveItem = function () {
-            var item = $scope.backupItem;
-
-            if (!item.swapSpaceSpi || !item.swapSpaceSpi.kind) {
-                for (var cacheId in item.caches) {
-                    var idx = _.findIndex($scope.caches, function (cache) {
-                        return cache._id == cacheId.value;
-                    });
-
-                    if (idx >= 0) {
-                        var cache = $scope.caches[idx];
-
-                        if (cache.swapEnabled) {
-                            $alert({title: 'Swap space SPI is not configured, but cache "' + cache.label + '" configured to use swap!'});
-
-                            return;
-                        }
-                    }
-                }
-            }
-
-            $http.post('/configuration/clusters/save', item)
-                .success(function (_id) {
-                    var idx = _.findIndex($scope.clusters, function (cluster) {
-                        return cluster._id == _id;
-                    });
-
-                    if (idx >= 0)
-                        angular.extend($scope.clusters[idx], item);
-                    else {
-                        item._id = _id;
-
-                        $scope.clusters.push(item);
-                    }
-
-                    $scope.selectItem(item);
-
-                    $alert({
-                        type: 'success',
-                        title: 'Cluster "' + item.name + '" saved.',
-                        duration: 2,
-                        container: '#save-btn'
-                    });
-                })
-                .error(function (errMsg) {
-                    $alert({title: $scope.errorMessage(errMsg)});
-                });
-        };
-
-        $scope.removeItem = function () {
-            var _id = $scope.selectedItem._id;
-
-            $http.post('/configuration/clusters/remove', {_id: _id})
-                .success(function () {
-                    var i = _.findIndex($scope.clusters, function (cluster) {
-                        return cluster._id == _id;
-                    });
-
-                    if (i >= 0) {
-                        $scope.clusters.splice(i, 1);
-
-                        $scope.selectedItem = undefined;
-                        $scope.backupItem = undefined;
-                    }
-                })
-                .error(function (errMsg) {
-                    $alert({title: $scope.errorMessage(errMsg)});
-                });
-        };
-    }]
-);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36063e13/modules/web-control-center/nodejs/public/javascripts/controllers/common.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/javascripts/controllers/common.js b/modules/web-control-center/nodejs/public/javascripts/controllers/common.js
deleted file mode 100644
index 228181a..0000000
--- a/modules/web-control-center/nodejs/public/javascripts/controllers/common.js
+++ /dev/null
@@ -1,191 +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.
- */
-
-var controlCenterModule = angular.module('ignite-web-control-center', ['smart-table', 'mgcrea.ngStrap', 'ngSanitize']);
-
-controlCenterModule.service('commonFunctions', function () {
-    return {
-        getModel: function (obj, path) {
-            if (!path)
-                return obj;
-
-            path = path.replace(/\[(\w+)\]/g, '.$1'); // convert indexes to properties
-            path = path.replace(/^\./, '');           // strip a leading dot
-
-            var segs = path.split('.');
-            var root = obj;
-
-            while (segs.length > 0) {
-                var pathStep = segs.shift();
-
-                if (typeof root[pathStep] === 'undefined')
-                    root[pathStep] = {};
-
-                root = root[pathStep];
-            }
-
-            return root;
-        },
-        swapSimpleItems: function (a, ix1, ix2) {
-            var tmp = a[ix1];
-
-            a[ix1] = a[ix2];
-            a[ix2] = tmp;
-        },
-        joinTip: function (arr) {
-            if (!arr) {
-                return arr;
-            }
-
-            var lines = arr.map(function (line) {
-                var rtrimmed = line.replace(/\s+$/g, '');
-
-                if (rtrimmed.indexOf('>', this.length - 1) == -1) {
-                    rtrimmed = rtrimmed + '<br/>';
-                }
-
-                return rtrimmed;
-            });
-
-            return lines.join("");
-        },
-        errorMessage: function (errMsg) {
-            return errMsg ? errMsg : 'Internal server error.';
-        }
-    }
-});
-
-controlCenterModule.config(function ($tooltipProvider) {
-    angular.extend($tooltipProvider.defaults, {
-        container: 'body',
-        placement: 'right',
-        html: 'true',
-        trigger: 'click hover'
-    });
-});
-
-controlCenterModule.config(function ($selectProvider) {
-    angular.extend($selectProvider.defaults, {
-        maxLength: '1',
-        allText: 'Select All',
-        noneText: 'Clear All',
-        template: '/select'
-    });
-});
-
-// Alert settings
-controlCenterModule.config(function ($alertProvider) {
-    angular.extend($alertProvider.defaults, {
-        container: 'body',
-        placement: 'top-right',
-        duration: '5',
-        type: 'danger'
-    });
-});
-
-// Decode name using map(value, label).
-controlCenterModule.filter('displayValue', function () {
-    return function (v, m, dflt) {
-        var i = _.findIndex(m, function (item) {
-            return item.value == v;
-        });
-
-        if (i >= 0) {
-            return m[i].label;
-        }
-
-        if (dflt) {
-            return dflt;
-        }
-
-        return 'Unknown value';
-    }
-});
-
-/**
- * Replaces all occurrences of {@code org.apache.ignite.} with {@code o.a.i.},
- * {@code org.apache.ignite.internal.} with {@code o.a.i.i.},
- * {@code org.apache.ignite.internal.visor.} with {@code o.a.i.i.v.} and
- * {@code org.apache.ignite.scalar.} with {@code o.a.i.s.}.
- *
- * @param s String to replace in.
- * @return Replaces string.
- */
-controlCenterModule.filter('compact', function () {
-    return function (s) {
-        return s.replace("org.apache.ignite.internal.visor.", "o.a.i.i.v.").
-            replace("org.apache.ignite.internal.", "o.a.i.i.").
-            replace("org.apache.ignite.scalar.", "o.a.i.s.").
-            replace("org.apache.ignite.", "o.a.i.");
-    }
-});
-
-controlCenterModule.directive('ipaddress', function () {
-    const ip = '(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])';
-    const port = '([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])';
-    const portRange = '(:' + port + '(..' + port + ')?)?';
-    const host = '(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])';
-
-    return {
-        require: 'ngModel',
-        link: function (scope, elem, attrs, ctrl) {
-            ctrl.$validators.ipaddress = function (modelValue, viewValue) {
-                if (ctrl.$isEmpty(modelValue) || !attrs['ipaddress'])
-                    return true;
-
-                return viewValue.match(new RegExp('(^' + ip + portRange + '$)|(^' + host + portRange + '$)')) != null;
-            }
-        }
-    }
-});
-
-controlCenterModule.controller('activeLink', [
-    '$scope', function ($scope) {
-        $scope.isActive = function (path) {
-            return window.location.pathname.substr(0, path.length) == path;
-        };
-    }]);
-
-controlCenterModule.controller('auth', [
-    '$scope', '$modal', '$alert', '$http', '$window', 'commonFunctions',
-    function ($scope, $modal, $alert, $http, $window, commonFunctions) {
-        $scope.errorMessage = commonFunctions.errorMessage;
-
-        $scope.action = 'login';
-
-        $scope.valid = false;
-
-        // Pre-fetch an external template populated with a custom scope
-        var authModal = $modal({scope: $scope, template: '/login', show: false});
-
-        $scope.login = function () {
-            // Show when some event occurs (use $promise property to ensure the template has been loaded)
-            authModal.$promise.then(authModal.show);
-        };
-
-        $scope.auth = function (action, user_info) {
-            $http.post('/' + action, user_info)
-                .success(function (data) {
-                    authModal.hide();
-
-                    $window.location = '/configuration/clusters';
-                })
-                .error(function (data) {
-                    $alert({placement: 'top', container: '#errors-container', title: $scope.errorMessage(data)});
-                });
-        };
-    }]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36063e13/modules/web-control-center/nodejs/public/javascripts/controllers/persistences.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/javascripts/controllers/persistences.js b/modules/web-control-center/nodejs/public/javascripts/controllers/persistences.js
deleted file mode 100644
index 645a193..0000000
--- a/modules/web-control-center/nodejs/public/javascripts/controllers/persistences.js
+++ /dev/null
@@ -1,212 +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.
- */
-
-controlCenterModule.controller('persistenceController', ['$scope', '$alert', '$http', 'commonFunctions', function ($scope, $alert, $http, commonFunctions) {
-        $scope.joinTip = commonFunctions.joinTip;
-        $scope.getModel = commonFunctions.getModel;
-        $scope.errorMessage = commonFunctions.errorMessage;
-
-        $scope.databases = [
-            {value: 'oracle', label: 'Oracle database'},
-            {value: 'db2', label: 'IBM DB2'},
-            {value: 'mssql', label: 'MS SQL Server'},
-            {value: 'postgre', label: 'PostgreSQL'},
-            {value: 'mysql', label: 'MySQL'},
-            {value: 'h2', label: 'H2 database'}
-        ];
-
-        $scope.connection = [];
-
-        $http.get('/form-models/persistence.json')
-            .success(function (data) {
-                $scope.connection = data.connection;
-            })
-            .error(function (errMsg) {
-                $alert({title: $scope.errorMessage(errMsg)});
-            });
-
-        $scope.persistences = [];
-
-        // When landing on the page, get persistences and show them.
-        $http.post('/configuration/persistences/list')
-            .success(function (data) {
-                $scope.spaces = data.spaces;
-                $scope.persistences = data.persistences;
-
-                var restoredItem = angular.fromJson(sessionStorage.persistenceBackupItem);
-
-                if (restoredItem) {
-                    var idx = _.findIndex($scope.persistences, function (persistence) {
-                        return persistence._id == restoredItem._id;
-                    });
-
-                    if (idx >= 0) {
-                        $scope.selectedItem = $scope.persistences[idx];
-
-                        $scope.backupItem = restoredItem;
-                    }
-                    else
-                        sessionStorage.removeItem('persistenceBackupItem');
-                }
-
-                $scope.$watch('backupItem', function (val) {
-                    if (val)
-                        sessionStorage.persistenceBackupItem = angular.toJson(val);
-                }, true);
-            })
-            .error(function (errMsg) {
-                $alert({title: $scope.errorMessage(errMsg)});
-            });
-
-        $scope.selectItem = function (item) {
-            $scope.selectedItem = item;
-            $scope.backupItem = angular.copy(item);
-        };
-
-        // Add new persistence.
-        $scope.createItem = function () {
-            $scope.backupItem = {database: 'oracle'};
-            $scope.backupItem.space = $scope.spaces[0]._id;
-        };
-
-        // Save persistence in db.
-        $scope.saveItem = function () {
-            var item = $scope.backupItem;
-
-            $http.post('/configuration/persistences/save', item)
-                .success(function (_id) {
-                    var i = _.findIndex($scope.persistences, function (persistence) {
-                        return persistence._id == _id;
-                    });
-
-                    if (i >= 0)
-                        angular.extend($scope.persistences[i], item);
-                    else {
-                        item._id = _id;
-
-                        $scope.persistences.push(item);
-                    }
-
-                    $scope.selectItem(item);
-                })
-                .error(function (errMsg) {
-                    $alert({title: $scope.errorMessage(errMsg)});
-                });
-        };
-
-        $scope.removeItem = function () {
-            var _id = $scope.selectedItem._id;
-
-            $http.post('/configuration/persistences/remove', {_id: _id})
-                .success(function () {
-                    var i = _.findIndex($scope.persistences, function (persistence) {
-                        return persistence._id == _id;
-                    });
-
-                    if (i >= 0) {
-                        $scope.persistences.splice(i, 1);
-
-                        $scope.selectedItem = undefined;
-                        $scope.backupItem = undefined;
-                    }
-                })
-                .error(function (errMsg) {
-                    $alert({title: $scope.errorMessage(errMsg)});
-                });
-        };
-
-        $scope.data = {
-            curTableIdx: -1,
-            curFieldIdx: -1,
-            curKeyClass: '',
-            curValueClass: '',
-            curJavaName: '',
-            curJavaType: '',
-            tables: [
-                {schemaName: 'Schema1', use: true},
-                {schemaName: 'Schema1', use: true, tableName: 'Table1', keyClass: 'KeyClass1', valueClass: 'ValueClass1',
-                    fields: [
-                        {use: true, key: true, ak: true, dbName: 'name1', dbType: 'dbType1', javaName: 'javaName1', javaType: 'javaType1'},
-                        {use: true, key: false, ak: false, dbName: 'name2', dbType: 'dbType2', javaName: 'javaName2', javaType: 'javaType2'},
-                        {use: false, key: false, ak: false, dbName: 'name3', dbType: 'dbType3', javaName: 'javaName3', javaType: 'javaType3'}
-                    ]
-                },
-                {schemaName: 'Schema2 with very long name', use: false},
-                {schemaName: 'Schema2', use: false, tableName: 'Table2', keyClass: 'KeyClass2', valueClass: 'ValueClass2',
-                    fields: [
-                        {use: true, key: true, ak: true, dbName: 'name4', dbType: 'dbType4', javaName: 'javaName4', javaType: 'javaType4'},
-                        {use: true, key: false, ak: false, dbName: 'name5', dbType: 'dbType5', javaName: 'javaName5', javaType: 'javaType5'},
-                        {use: false, key: false, ak: false, dbName: 'name6', dbType: 'dbType6', javaName: 'javaName6', javaType: 'javaType6'}
-                    ]},
-                {schemaName: 'Schema2', use: false, tableName: 'Table3', keyClass: 'KeyClass3', valueClass: 'ValueClass3',
-                    fields: [
-                        {use: true, key: true, ak: true, dbName: 'name7', dbType: 'dbType7', javaName: 'javaName7', javaType: 'javaType7'},
-                        {use: true, key: false, ak: false, dbName: 'name8', dbType: 'dbType8', javaName: 'javaName8', javaType: 'javaType8'},
-                        {use: false, key: false, ak: false, dbName: 'name9', dbType: 'dbType9', javaName: 'javaName9', javaType: 'javaType9'},
-                        {use: false, key: false, ak: false, dbName: 'name10', dbType: 'dbType10', javaName: 'javaName10', javaType: 'javaType10'},
-                        {use: false, key: false, ak: false, dbName: 'name11', dbType: 'dbType11', javaName: 'javaName11', javaType: 'javaType11'},
-                        {use: false, key: false, ak: false, dbName: 'name12', dbType: 'dbType12', javaName: 'javaName12', javaType: 'javaType12'}
-                    ]}]
-        };
-
-        $scope.selectSchema = function (idx) {
-            var data = $scope.data;
-            var tables = data.tables;
-            var schemaName = tables[idx].schemaName;
-            var use = tables[idx].use;
-
-            for (var i = idx + 1; i < tables.length; i++) {
-                var item = tables[i];
-
-                if (item.schemaName == schemaName && item.tableName)
-                    item.use = use;
-                else
-                    break;
-            }
-
-            data.curTableIdx = -1;
-            data.curFieldIdx = -1;
-        };
-
-        $scope.selectTable = function (idx) {
-            var data = $scope.data;
-
-            data.curTableIdx = idx;
-            data.curFieldIdx = -1;
-
-            if (idx >= 0) {
-                var tbl = data.tables[idx];
-
-                data.curKeyClass = tbl.keyClass;
-                data.curValueClass = tbl.valueClass;
-            }
-        };
-
-        $scope.selectField = function (idx) {
-            var data = $scope.data;
-
-            data.curFieldIdx = idx;
-
-            if (idx >= 0) {
-                var fld = data.tables[data.curTableIdx].fields[idx];
-
-                data.curJavaName = fld.javaName;
-                data.curJavaType = fld.javaType;
-            }
-        };
-    }]
-);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36063e13/modules/web-control-center/nodejs/public/javascripts/controllers/summary.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/javascripts/controllers/summary.js b/modules/web-control-center/nodejs/public/javascripts/controllers/summary.js
deleted file mode 100644
index 031807f..0000000
--- a/modules/web-control-center/nodejs/public/javascripts/controllers/summary.js
+++ /dev/null
@@ -1,167 +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.
- */
-
-controlCenterModule.controller('summaryController', ['$scope', '$http', function ($scope, $http) {
-    $scope.generateJavaItems = [
-        { label: 'snippet',value: false},
-        { label: 'factory class',value: true}
-    ];
-
-    $scope.generateJavaClass = false;
-
-    $scope.javaData = undefined;
-    $scope.xmlData = undefined;
-    $scope.dockerData = undefined;
-
-    $http.post('/configuration/clusters/list').success(function (data) {
-        $scope.caches = data.caches;
-        $scope.spaces = data.spaces;
-        $scope.clusters = data.clusters;
-    });
-
-    $scope.selectItem = function (item) {
-        $scope.selectedItem = item;
-
-        $scope.generateConfig()
-    };
-
-    $scope.generateConfig = function() {
-        var lang = $scope.cfgLang;
-
-        if (lang == 'docker') {
-            $("<pre class='brush:plain' />").text($scope.dockerFile()).appendTo($('#dockerResultDiv').empty());
-
-            return;
-        }
-
-        var cluster = $scope.selectedItem;
-        
-        if (!cluster)
-            return;
-        
-        $scope.loading = true;
-
-        $http.post('/configuration/summary/generator', {_id: cluster._id, lang: lang, generateJavaClass: $scope.generateJavaClass})
-            .success(
-            function (data) {
-                if (lang == 'java') {
-                    $scope.javaData = data;
-
-                    $("<pre class='brush:java' />").text(data).appendTo($('#javaResultDiv').empty());
-                }
-                else if (lang == 'xml') {
-                    $scope.xmlData = data;
-
-                    $("<pre class='brush:xml' />").text(data).appendTo($('#xmlResultDiv').empty());
-                }
-
-                SyntaxHighlighter.highlight();
-
-                $scope.loading = false;
-            }).error(function (data) {
-                $scope.generateError = "Failed to generate config: " + data;
-
-                $scope.loading = false;
-            });
-    };
-
-    $scope.cfgLang = 'xml';
-
-    $scope.$watch('cfgLang', $scope.generateConfig);
-    $scope.$watch('generateJavaClass', $scope.generateConfig);
-
-    $scope.dockerArg = {};
-
-    $scope.download = function(text, fileName) {
-        if (text.length == 0)
-            return;
-        
-        var file = document.createElement('a');
-        file.setAttribute('href', 'data:application/octet-stream;charset=utf-8,' + encodeURIComponent(text));
-        file.setAttribute('download', fileName);
-
-        file.style.display = 'none';
-        document.body.appendChild(file);
-
-        file.click();
-
-        document.body.removeChild(file);
-    };
-
-    $scope.downloadJava = function() {
-        $scope.download($scope.javaData,
-            $scope.generateJavaClass ? 'ConfigurationFactory.java' : $scope.selectedItem.name + '.snipplet.txt');
-    };
-
-    $scope.downloadDocker = function() {
-        $scope.download($scope.dockerFile(), 'Dockerfile');
-    };
-
-    $scope.oss = ['debian:8', 'ubuntu:14.10'];
-    
-    $scope.dockerFile = function() {
-        if (!$scope.selectedItem || !$scope.dockerArg) {
-            return '';
-        }
-        
-        var os = $scope.dockerArg.os;
-        if (!os) {
-            os = 'debian:8'
-        }
-
-        return "" +
-            "# Start from a Debian image.\n"+
-            "FROM " + os + "\n"+
-            "\n"+
-            "# Install tools.\n"+
-            "RUN apt-get update && apt-get install -y --fix-missing \\\n"+
-            "  wget \\\n"+
-            "  dstat \\\n"+
-            "  maven \\\n"+
-            "  git\n"+
-            "\n"+
-            "# Install Oracle JDK.\n"+
-            "RUN mkdir /opt/jdk\n"+
-            "\n"+
-            "RUN wget --header \"Cookie: oraclelicense=accept-securebackup-cookie\" \\\n"+
-            "  http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz\n"+
-            "\n"+
-            "RUN tar -zxf jdk-7u79-linux-x64.tar.gz -C /opt/jdk\n"+
-            "\n"+
-            "RUN rm jdk-7u79-linux-x64.tar.gz\n"+
-            "\n"+
-            "RUN update-alternatives --install /usr/bin/java java /opt/jdk/jdk1.7.0_79/bin/java 100\n"+
-            "\n"+
-            "RUN update-alternatives --install /usr/bin/javac javac /opt/jdk/jdk1.7.0_79/bin/javac 100\n"+
-            "\n"+
-            "# Sets java variables.\n"+
-            "ENV JAVA_HOME /opt/jdk/jdk1.7.0_79/\n"+
-            "\n"+
-            "# Create working directory\n"+
-            "WORKDIR /home\n"+
-            "\n"+
-            "RUN wget -O ignite.zip http://tiny.cc/updater/download_ignite.php && unzip ignite.zip && rm ignite.zip\n"+
-            "\n"+
-            "COPY *.xml /tmp/\n"+
-            "\n"+
-            "RUN mv /tmp/*.xml /home/$(ls)/config";
-    };
-
-    $scope.$watch('dockerArg.os', function() {
-        $("<pre class='brush:plain' />").text($scope.dockerFile()).appendTo($('#dockerResultDiv').empty());
-    });
-}]);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36063e13/modules/web-control-center/nodejs/public/javascripts/dataStructures.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/javascripts/dataStructures.js b/modules/web-control-center/nodejs/public/javascripts/dataStructures.js
deleted file mode 100644
index 2462708..0000000
--- a/modules/web-control-center/nodejs/public/javascripts/dataStructures.js
+++ /dev/null
@@ -1,84 +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.
- */
-
-eventGroups = {
-    EVTS_CHECKPOINT: ['EVT_CHECKPOINT_SAVED', 'EVT_CHECKPOINT_LOADED', 'EVT_CHECKPOINT_REMOVED'],
-    EVTS_DEPLOYMENT: ['EVT_CLASS_DEPLOYED', 'EVT_CLASS_UNDEPLOYED', 'EVT_CLASS_DEPLOY_FAILED', 'EVT_TASK_DEPLOYED',
-        'EVT_TASK_UNDEPLOYED', 'EVT_TASK_DEPLOY_FAILED'],
-    EVTS_ERROR: ['EVT_JOB_TIMEDOUT', 'EVT_JOB_FAILED', 'EVT_JOB_FAILED_OVER', 'EVT_JOB_REJECTED', 'EVT_JOB_CANCELLED',
-        'EVT_TASK_TIMEDOUT', 'EVT_TASK_FAILED', 'EVT_CLASS_DEPLOY_FAILED', 'EVT_TASK_DEPLOY_FAILED',
-        'EVT_TASK_DEPLOYED', 'EVT_TASK_UNDEPLOYED', 'EVT_CACHE_REBALANCE_STARTED', 'EVT_CACHE_REBALANCE_STOPPED'],
-    EVTS_DISCOVERY: ['EVT_NODE_JOINED', 'EVT_NODE_LEFT', 'EVT_NODE_FAILED', 'EVT_NODE_SEGMENTED',
-        'EVT_CLIENT_NODE_DISCONNECTED', 'EVT_CLIENT_NODE_RECONNECTED'],
-    EVTS_JOB_EXECUTION: ['EVT_JOB_MAPPED', 'EVT_JOB_RESULTED', 'EVT_JOB_FAILED_OVER', 'EVT_JOB_STARTED',
-        'EVT_JOB_FINISHED', 'EVT_JOB_TIMEDOUT', 'EVT_JOB_REJECTED', 'EVT_JOB_FAILED', 'EVT_JOB_QUEUED',
-        'EVT_JOB_CANCELLED'],
-    EVTS_TASK_EXECUTION: ['EVT_TASK_STARTED', 'EVT_TASK_FINISHED', 'EVT_TASK_FAILED', 'EVT_TASK_TIMEDOUT',
-        'EVT_TASK_SESSION_ATTR_SET', 'EVT_TASK_REDUCED'],
-    EVTS_CACHE: ['EVT_CACHE_ENTRY_CREATED', 'EVT_CACHE_ENTRY_DESTROYED', 'EVT_CACHE_OBJECT_PUT',
-        'EVT_CACHE_OBJECT_READ', 'EVT_CACHE_OBJECT_REMOVED', 'EVT_CACHE_OBJECT_LOCKED', 'EVT_CACHE_OBJECT_UNLOCKED',
-        'EVT_CACHE_OBJECT_SWAPPED', 'EVT_CACHE_OBJECT_UNSWAPPED', 'EVT_CACHE_OBJECT_EXPIRED'],
-    EVTS_CACHE_REBALANCE: ['EVT_CACHE_REBALANCE_STARTED', 'EVT_CACHE_REBALANCE_STOPPED',
-        'EVT_CACHE_REBALANCE_PART_LOADED', 'EVT_CACHE_REBALANCE_PART_UNLOADED', 'EVT_CACHE_REBALANCE_OBJECT_LOADED',
-        'EVT_CACHE_REBALANCE_OBJECT_UNLOADED', 'EVT_CACHE_REBALANCE_PART_DATA_LOST'],
-    EVTS_CACHE_LIFECYCLE: ['EVT_CACHE_STARTED', 'EVT_CACHE_STOPPED', 'EVT_CACHE_NODES_LEFT'],
-    EVTS_CACHE_QUERY: ['EVT_CACHE_QUERY_EXECUTED', 'EVT_CACHE_QUERY_OBJECT_READ'],
-    EVTS_SWAPSPACE: ['EVT_SWAP_SPACE_CLEARED', 'EVT_SWAP_SPACE_DATA_REMOVED', 'EVT_SWAP_SPACE_DATA_READ',
-        'EVT_SWAP_SPACE_DATA_STORED', 'EVT_SWAP_SPACE_DATA_EVICTED'],
-    EVTS_IGFS: ['EVT_IGFS_FILE_CREATED', 'EVT_IGFS_FILE_RENAMED', 'EVT_IGFS_FILE_DELETED', 'EVT_IGFS_FILE_OPENED_READ',
-        'EVT_IGFS_FILE_OPENED_WRITE', 'EVT_IGFS_FILE_CLOSED_WRITE', 'EVT_IGFS_FILE_CLOSED_READ', 'EVT_IGFS_FILE_PURGED',
-        'EVT_IGFS_META_UPDATED', 'EVT_IGFS_DIR_CREATED', 'EVT_IGFS_DIR_RENAMED', 'EVT_IGFS_DIR_DELETED']
-};
-
-jdbcTypes = {
-    BIT: {value: "BIT", code: -7, label: "BIT"},
-    TINYINT: {value: "TINYINT", code: -6, label: "TINYINT"},
-    SMALLINT: {value: "SMALLINT", code: 5, label: "SMALLINT"},
-    INTEGER: {value: "INTEGER", code: 4, label: "INTEGER"},
-    BIGINT: {value: "BIGINT", code: -5, label: "BIGINT"},
-    FLOAT: {value: "FLOAT", code: 6, label: "FLOAT"},
-    REAL: {value: "REAL", code: 7, label: "REAL"},
-    DOUBLE: {value: "DOUBLE", code: 8, label: "DOUBLE"},
-    NUMERIC: {value: "NUMERIC", code: 2, label: "NUMERIC"},
-    DECIMAL: {value: "DECIMAL", code: 3, label: "DECIMAL"},
-    CHAR: {value: "CHAR", code: 1, label: "CHAR"},
-    VARCHAR: {value: "VARCHAR", code: 12, label: "VARCHAR"},
-    DATE: {value: "DATE", code: 91, label: "DATE"},
-    TIME: {value: "TIME", code: 92, label: "TIME"},
-    TIMESTAMP: {value: "TIMESTAMP", code: 93, label: "TIMESTAMP"},
-    BINARY: {value: "BINARY", code: -2, label: "BINARY"}
-};
-
-javaTypes = {
-    INTEGER: {value: "java.lang.Integer", label: "Integer"},
-    LONG: {value: "java.lang.Long", label: "Long"},
-    BIGDECIMAL: {value: "java.math.BigDecimal", label: "BigDecimal"},
-    FLOAT: {value: "java.lang.Float", label: "Float"},
-    DOUBLE: {value: "java.lang.Double", label: "Double"},
-    STRING: {value: "java.lang.String", label: "String"},
-    BOOLEAN: {value: "java.lang.Boolean", label: "Boolean"},
-    BYTE_ARRAY: {value: "byte[]", label: "byte[]"},
-    DATE: {value: "java.sql.Date", label: "Date"},
-    TIME: {value: "java.sql.Time", label: "Time"},
-    TIMESTAMP: {value: "java.sql.Timestamp", label: "Timestamp"}
-};
-
-if (typeof window === 'undefined') {
-    exports.eventGroups = eventGroups;
-    exports.jdbcTypes = jdbcTypes;
-    exports.javaTypes = javaTypes;
-}