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/23 10:41:12 UTC

[41/50] [abbrv] incubator-ignite git commit: # ignite-843 moved

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a335724/modules/web-control-center/nodejs/db.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/db.js b/modules/web-control-center/nodejs/db.js
deleted file mode 100644
index e34272c..0000000
--- a/modules/web-control-center/nodejs/db.js
+++ /dev/null
@@ -1,358 +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 config = require('./helpers/configuration-loader.js');
-
-// Mongoose for mongodb.
-var mongoose = require('mongoose'),
-    Schema = mongoose.Schema,
-    ObjectId = mongoose.Schema.Types.ObjectId,
-    passportLocalMongoose = require('passport-local-mongoose');
-
-// Connect to mongoDB database.
-mongoose.connect(config.get('mongoDB:url'), {server: {poolSize: 4}});
-
-// Define account model.
-var AccountSchema = new Schema({
-    username: String,
-    email: String,
-    lastLogin: Date,
-    admin: Boolean
-});
-
-AccountSchema.plugin(passportLocalMongoose, {usernameField: 'email', limitAttempts: true, lastLoginField: 'lastLogin',
-    usernameLowerCase: true});
-
-AccountSchema.set('toJSON', {
-    transform: function(doc, ret) {
-        return {
-            _id: ret._id,
-            email: ret.email,
-            username: ret.username,
-            admin: ret.admin,
-            lastLogin: ret.lastLogin
-        };
-    }
-});
-
-exports.Account = mongoose.model('Account', AccountSchema);
-
-// Define space model.
-exports.Space = mongoose.model('Space', new Schema({
-    name: String,
-    owner: {type: ObjectId, ref: 'Account'},
-    usedBy: [{
-        permission: {type: String, enum: ['VIEW', 'FULL']},
-        account: {type: ObjectId, ref: 'Account'}
-    }]
-}));
-
-// Define cache type metadata model.
-var CacheTypeMetadataSchema = new Schema({
-    space: {type: ObjectId, ref: 'Space'},
-    name: String,
-    kind: {type: String, enum: ['query', 'store', 'both']},
-    databaseSchema: String,
-    databaseTable: String,
-    keyType: String,
-    valueType: String,
-    keyFields: [{dbName: String, dbType: String, javaName: String, javaType: String}],
-    valueFields: [{dbName: String, dbType: String, javaName: String, javaType: String}],
-    queryFields: [{name: String, className: String}],
-    ascendingFields: [{name: String, className: String}],
-    descendingFields:  [{name: String, className: String}],
-    textFields: [String],
-    groups: [{name: String, fields: [{name: String, className: String, direction: String}]}]
-});
-
-exports.CacheTypeMetadata = mongoose.model('CacheTypeMetadata', CacheTypeMetadataSchema);
-
-// Define cache model.
-var CacheSchema = new Schema({
-    space: {type: ObjectId, ref: 'Space'},
-    name: String,
-    mode: {type: String, enum: ['PARTITIONED', 'REPLICATED', 'LOCAL']},
-    atomicityMode: {type: String, enum: ['ATOMIC', 'TRANSACTIONAL']},
-
-    backups: Number,
-    memoryMode: {type: String, enum: ['ONHEAP_TIERED', 'OFFHEAP_TIERED', 'OFFHEAP_VALUES']},
-    offHeapMaxMemory: Number,
-    startSize: Number,
-    swapEnabled: Boolean,
-
-    evictionPolicy: {
-        kind: {type: String, enum: ['LRU', 'RND', 'FIFO', 'Sorted']},
-        LRU: {
-            batchSize: Number,
-            maxMemorySize: Number,
-            maxSize: Number
-        },
-        RND: {
-            maxSize: Number
-        },
-        FIFO: {
-            batchSize: Number,
-            maxMemorySize: Number,
-            maxSize: Number
-        },
-        SORTED: {
-            batchSize: Number,
-            maxMemorySize: Number,
-            maxSize: Number
-        }
-    },
-
-    rebalanceMode: {type: String, enum: ['SYNC', 'ASYNC', 'NONE']},
-    rebalanceThreadPoolSize: Number,
-    rebalanceBatchSize: Number,
-    rebalanceOrder: Number,
-    rebalanceDelay: Number,
-    rebalanceTimeout: Number,
-    rebalanceThrottle: Number,
-
-    cacheStoreFactory: {
-        kind: {
-            type: String,
-            enum: ['CacheJdbcPojoStoreFactory', 'CacheJdbcBlobStoreFactory', 'CacheHibernateBlobStoreFactory']
-        },
-        CacheJdbcPojoStoreFactory: {
-            dataSourceBean: String,
-            dialect: {
-                type: String,
-                enum: ['Oracle', 'DB2', 'SQLServer', 'MySQL', 'PosgreSQL', 'H2']
-            }
-        },
-        CacheJdbcBlobStoreFactory: {
-            user: String,
-            dataSourceBean: String,
-            initSchema: Boolean,
-            createTableQuery: String,
-            loadQuery: String,
-            insertQuery: String,
-            updateQuery: String,
-            deleteQuery: String
-        },
-        CacheHibernateBlobStoreFactory: {
-            hibernateProperties: [String]
-        }
-    },
-    loadPreviousValue: Boolean,
-    readThrough: Boolean,
-    writeThrough: Boolean,
-
-    writeBehindEnabled: Boolean,
-    writeBehindBatchSize: Number,
-    writeBehindFlushSize: Number,
-    writeBehindFlushFrequency: Number,
-    writeBehindFlushThreadCount: Number,
-
-    invalidate: Boolean,
-    defaultLockTimeout: Number,
-    transactionManagerLookupClassName: String,
-
-    sqlEscapeAll: Boolean,
-    sqlOnheapRowCacheSize: Number,
-    longQueryWarningTimeout: Number,
-    indexedTypes: [{keyClass: String, valueClass: String}],
-    sqlFunctionClasses: [String],
-    statisticsEnabled: Boolean,
-    managementEnabled: Boolean,
-    readFromBackup: Boolean,
-    copyOnRead: Boolean,
-    maxConcurrentAsyncOperations: Number,
-    nearConfiguration: {
-        nearStartSize: Number,
-        nearEvictionPolicy: {
-            kind: {type: String, enum: ['LRU', 'RND', 'FIFO', 'Sorted']},
-            LRU: {
-                batchSize: Number,
-                maxMemorySize: Number,
-                maxSize: Number
-            },
-            RND: {
-                maxSize: Number
-            },
-            FIFO: {
-                batchSize: Number,
-                maxMemorySize: Number,
-                maxSize: Number
-            },
-            SORTED: {
-                batchSize: Number,
-                maxMemorySize: Number,
-                maxSize: Number
-            }
-        }
-    }
-});
-
-exports.Cache = mongoose.model('Cache', CacheSchema);
-
-// Define cluster schema.
-var ClusterSchema = new Schema({
-    space: {type: ObjectId, ref: 'Space'},
-    name: String,
-    discovery: {
-        kind: {type: String, enum: ['Vm', 'Multicast', 'S3', 'Cloud', 'GoogleStorage', 'Jdbc', 'SharedFs']},
-        Vm: {
-            addresses: [String]
-        },
-        Multicast: {
-            multicastGroup: String,
-            multicastPort: Number,
-            responseWaitTime: Number,
-            addressRequestAttempts: Number,
-            localAddress: String
-        },
-        S3: {
-            bucketName: String
-        },
-        Cloud: {
-            credential: String,
-            credentialPath: String,
-            identity: String,
-            provider: String,
-            regions: [String],
-            zones:  [String]
-        },
-        GoogleStorage: {
-            projectName: String,
-            bucketName: String,
-            serviceAccountP12FilePath: String,
-            addrReqAttempts: String
-        },
-        Jdbc: {
-            initSchema: Boolean
-        },
-        SharedFs: {
-            path: String
-        }
-    },
-    atomicConfiguration: {
-        backups: Number,
-        cacheMode: {type: String, enum: ['LOCAL', 'REPLICATED', 'PARTITIONED']},
-        atomicSequenceReserveSize: Number
-    },
-    caches: [{type: ObjectId, ref: 'Cache'}],
-    cacheSanityCheckEnabled: Boolean,
-    clockSyncSamples: Number,
-    clockSyncFrequency: Number,
-    deploymentMode: {type: String, enum: ['PRIVATE', 'ISOLATED', 'SHARED', 'CONTINUOUS']},
-    discoveryStartupDelay: Number,
-    igfsThreadPoolSize: Number,
-    includeEventTypes: [{
-        type: String, enum: ['EVTS_CHECKPOINT', 'EVTS_DEPLOYMENT', 'EVTS_ERROR', 'EVTS_DISCOVERY',
-            'EVTS_JOB_EXECUTION', 'EVTS_TASK_EXECUTION', 'EVTS_CACHE', 'EVTS_CACHE_REBALANCE', 'EVTS_CACHE_LIFECYCLE',
-            'EVTS_CACHE_QUERY', 'EVTS_SWAPSPACE', 'EVTS_IGFS']
-    }],
-    managementThreadPoolSize: Number,
-    marshaller: {
-        kind: {type: String, enum: ['OptimizedMarshaller', 'JdkMarshaller']},
-        OptimizedMarshaller: {
-            poolSize: Number,
-            requireSerializable: Boolean
-        }
-    },
-    marshalLocalJobs: Boolean,
-    marshallerCacheKeepAliveTime: Number,
-    marshallerCacheThreadPoolSize: Number,
-    metricsExpireTime: Number,
-    metricsHistorySize: Number,
-    metricsLogFrequency: Number,
-    metricsUpdateFrequency: Number,
-    networkTimeout: Number,
-    networkSendRetryDelay: Number,
-    networkSendRetryCount: Number,
-    peerClassLoadingEnabled: Boolean,
-    peerClassLoadingLocalClassPathExclude: [String],
-    peerClassLoadingMissedResourcesCacheSize: Number,
-    peerClassLoadingThreadPoolSize: Number,
-    publicThreadPoolSize: Number,
-    segmentCheckFrequency: Number,
-    segmentationPolicy: {type: String, enum: ['RESTART_JVM', 'STOP', 'NOOP']},
-    allSegmentationResolversPassRequired: Boolean,
-    segmentationResolveAttempts: Number,
-    swapSpaceSpi: {
-        kind: {type: String, enum: ['FileSwapSpaceSpi']},
-        FileSwapSpaceSpi: {
-            baseDirectory: String,
-            readStripesNumber: Number,
-            maximumSparsity: Number,
-            maxWriteQueueSize: Number,
-            writeBufferSize: Number
-        }
-    },
-    systemThreadPoolSize: Number,
-    timeServerPortBase: Number,
-    timeServerPortRange: Number,
-    transactionConfiguration: {
-        defaultTxConcurrency: {type: String, enum: ['OPTIMISTIC', 'PESSIMISTIC']},
-        transactionIsolation: {type: String, enum: ['READ_COMMITTED', 'REPEATABLE_READ', 'SERIALIZABLE']},
-        defaultTxTimeout: Number,
-        pessimisticTxLogLinger: Number,
-        pessimisticTxLogSize: Number,
-        txSerializableEnabled: Boolean
-    },
-    waitForSegmentOnStart: Boolean
-});
-
-// Define cluster model.
-exports.Cluster = mongoose.model('Cluster', ClusterSchema);
-
-// Define persistence schema.
-var PersistenceSchema = new Schema({
-    space: {type: ObjectId, ref: 'Space'},
-    name: String,
-    dbType: {type: String, enum: ['oracle', 'db2', 'mssql', 'postgre', 'mysql', 'h2']},
-    dbName: String,
-    host: String,
-    user: String,
-    tables: [{
-        use: Boolean,
-        schemaName: String,
-        tableName: String,
-        keyClass: String,
-        valueClass: String,
-        columns: [{
-            use: Boolean,
-            pk: Boolean,
-            ak: Boolean,
-            notNull: Boolean,
-            dbName: String,
-            dbType: Number,
-            javaName: String,
-            javaType: String
-        }]
-    }]
-});
-
-// Define persistence model.
-exports.Persistence = mongoose.model('Persistence', PersistenceSchema);
-
-exports.upsert = function (model, data, cb) {
-    if (data._id) {
-        var id = data._id;
-
-        delete data._id;
-
-        model.findOneAndUpdate({_id: id}, data, cb);
-    }
-    else
-        new model(data).save(cb);
-};
-
-exports.mongoose = mongoose;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a335724/modules/web-control-center/nodejs/helpers/configuration-loader.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/helpers/configuration-loader.js b/modules/web-control-center/nodejs/helpers/configuration-loader.js
deleted file mode 100644
index 6dbb577..0000000
--- a/modules/web-control-center/nodejs/helpers/configuration-loader.js
+++ /dev/null
@@ -1,22 +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 config = require('nconf');
-
-config.file({'file': 'config/default.json'});
-
-module.exports = config;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a335724/modules/web-control-center/nodejs/helpers/data-structures.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/helpers/data-structures.js b/modules/web-control-center/nodejs/helpers/data-structures.js
deleted file mode 100644
index 2462708..0000000
--- a/modules/web-control-center/nodejs/helpers/data-structures.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;
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a335724/modules/web-control-center/nodejs/package.json
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/package.json b/modules/web-control-center/nodejs/package.json
deleted file mode 100644
index 5e5463c..0000000
--- a/modules/web-control-center/nodejs/package.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
-  "name": "ignite-web-control-center",
-  "version": "1.0.0",
-  "description": "Web application for configuration, monitoring Ignite Cluster",
-  "private": true,
-  "scripts": {
-    "start": "node ./bin/www"
-  },
-  "author": "",
-  "contributors": [
-    {
-      "name": "",
-      "email": ""
-    }
-  ],
-  "license": "Apache-2.0",
-  "keywords": "grid",
-  "homepage": "https://ignite.incubator.apache.org/",
-  "engines": {
-    "node": ">=0.12.4"
-  },
-  "dependencies": {
-    "angular-ui-ace": "^0.2.3",
-    "archiver": "^0.14.4",
-    "body-parser": "~1.12.0",
-    "connect-flash": "^0.1.1",
-    "connect-mongo": "^0.8.1",
-    "cookie-parser": "~1.3.4",
-    "debug": "~2.1.1",
-    "express": "~4.12.2",
-    "express-session": "^1.11.1",
-    "jade": "~1.9.2",
-    "less-middleware": "1.0.x",
-    "lodash": "3.10.0",
-    "mongoose": "^4.0.2",
-    "nconf": "^0.7.1",
-    "passport": "^0.2.1",
-    "passport-local": "^1.0.0",
-    "passport-local-mongoose": "^1.0.0",
-    "pg": "^4.4.0",
-    "serve-favicon": "~2.2.0",
-    "util": "^0.10.3"
-  },
-  "devDependencies": {
-    "morgan": "~1.5.1",
-    "supertest": "^1.0.1",
-    "mocha": "~2.0.1",
-    "should": "~3.1.3"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a335724/modules/web-control-center/nodejs/public/favicon.ico
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/favicon.ico b/modules/web-control-center/nodejs/public/favicon.ico
deleted file mode 100644
index 74ec626..0000000
Binary files a/modules/web-control-center/nodejs/public/favicon.ico and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a335724/modules/web-control-center/nodejs/public/images/docker.png
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/images/docker.png b/modules/web-control-center/nodejs/public/images/docker.png
deleted file mode 100644
index 7ec3aef..0000000
Binary files a/modules/web-control-center/nodejs/public/images/docker.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a335724/modules/web-control-center/nodejs/public/images/java.png
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/images/java.png b/modules/web-control-center/nodejs/public/images/java.png
deleted file mode 100644
index ddb3b8e..0000000
Binary files a/modules/web-control-center/nodejs/public/images/java.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a335724/modules/web-control-center/nodejs/public/images/logo.png
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/images/logo.png b/modules/web-control-center/nodejs/public/images/logo.png
deleted file mode 100644
index c3577c5..0000000
Binary files a/modules/web-control-center/nodejs/public/images/logo.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a335724/modules/web-control-center/nodejs/public/images/xml.png
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/images/xml.png b/modules/web-control-center/nodejs/public/images/xml.png
deleted file mode 100644
index 029065e..0000000
Binary files a/modules/web-control-center/nodejs/public/images/xml.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a335724/modules/web-control-center/nodejs/public/stylesheets/style.less
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/stylesheets/style.less b/modules/web-control-center/nodejs/public/stylesheets/style.less
deleted file mode 100644
index 4900581..0000000
--- a/modules/web-control-center/nodejs/public/stylesheets/style.less
+++ /dev/null
@@ -1,1172 +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.
- */
-
-@logo-path: "https://www.filepicker.io/api/file/QagunjDGRFul2JgNCAli";
-@input-height: 28px;
-@ignite-red: #ec1c24;
-@ignite-block-callout-background: #f3f8f3;
-@ignite-block-callout: #50af51;
-
-hr {
-  margin-top: 20px;
-  margin-bottom: 20px;
-}
-
-.main-header .logo {
-  height: auto;
-}
-
-.main-sidebar {
-  padding-top: 60px;
-}
-
-.navbar-default .navbar-brand, .navbar-default .navbar-brand:hover {
-  position: absolute;
-  width: 100%;
-  left: 0;
-  text-align: center;
-}
-
-.modal-backdrop.am-fade {
-  opacity: .5;
-  transition: opacity .15s linear;
-  &.ng-enter {
-    opacity: 0;
-    &.ng-enter-active {
-      opacity: .5;
-    }
-  }
-  &.ng-leave {
-    opacity: .5;
-    &.ng-leave-active {
-      opacity: 0;
-    }
-  }
-}
-
-.modal.center .modal-dialog {
-  position: fixed;
-  top: 50%;
-  left: 50%;
-  -webkit-transform: translateX(-50%) translateY(-50%);
-  transform: translateX(-50%) translateY(-50%);
-}
-
-.border-left {
-  box-shadow: 1px 0 0 0 #eee inset;
-}
-
-.border-right {
-  box-shadow: 1px 0 0 0 #eee;
-}
-
-.theme-line {
-  background-color: #f9f9f9;
-}
-
-.theme-line header {
-  background-color: #fff;
-}
-
-.theme-line header a.btn {
-  border: 0 none;
-  padding: 10px 25px;
-  background-color: rgba(0, 0, 0, 0.15);
-}
-
-.theme-line header a.btn:hover {
-  background-color: rgba(0, 0, 0, 0.25);
-}
-
-.theme-line header a.btn.btn-link {
-  background: transparent;
-  color: rgba(255, 255, 255, 0.8);
-}
-
-.theme-line header a.btn.btn-link:hover {
-  color: #fff;
-  text-decoration: none;
-}
-
-.theme-line .navbar-nav a {
-  background-color: transparent;
-}
-
-.theme-line .navbar-nav a:hover,
-.theme-line .navbar-nav a:active,
-.theme-line .navbar-nav a:focus {
-  background-color: transparent;
-}
-
-.theme-line .main-links {
-  padding-top: 50px;
-}
-
-.theme-line .main-links h3 {
-  margin-top: 0;
-  font-size: 17px;
-}
-
-.theme-line .main-links .links a {
-  color: #888;
-}
-
-.theme-line .main-links .links a:hover {
-  text-decoration: none;
-}
-
-.theme-line #category-columns,
-.theme-solid #category-columns {
-  margin: 50px 30px 0;
-}
-
-.theme-line #category-columns h4 {
-  text-transform: uppercase;
-  font-weight: 300;
-  color: #999;
-  font-size: 14px;
-}
-
-.theme-line #category-columns ul {
-  list-style: none;
-  padding: 0;
-  margin-bottom: 15px;
-}
-
-.theme-line #category-columns ul li a {
-  padding: 5px 0;
-  display: block;
-  font-size: 16px;
-}
-
-.theme-line #category-columns ul .view-all {
-  font-size: 0.85em;
-}
-
-.theme-line .docs-header {
-  color: #999;
-  overflow: hidden;
-}
-
-.theme-line .docs-header h1 {
-  color: #444;
-  margin-top: 0;
-  font-size: 22px;
-}
-
-.theme-line .btn-primary {
-  border: 0 none;
-  background-color: @ignite-red;
-}
-
-.theme-line .btn-primary:hover {
-  background-color: #950d12;
-}
-
-.theme-line .main-content .nav-horizontal a {
-  box-shadow: 0 0;
-  border: 0 none;
-  background-color: #fff;
-  border-radius: 0;
-  color: #aaa;
-  padding: 6px;
-  margin: 0 14px;
-}
-
-.theme-line .main-content .nav-horizontal a:hover {
-  color: #999;
-  border-bottom: 5px solid #ddd;
-}
-
-.theme-line .main-content .nav-horizontal a.active {
-  border-bottom: 5px solid #888;
-}
-
-.theme-line .navbar-nav, .theme-line .sidebar-nav {
-  ul li > a.active {
-    cursor: default;
-    pointer-events: none;
-  }
-}
-
-.theme-line .sidebar-nav {
-  color: #474a54;
-  padding-bottom: 30px;
-
-  ul {
-    padding: 0;
-    list-style: none;
-    font-size: 14px;
-    margin: 3px 0 0;
-    li {
-      color: #666;
-      line-height: @input-height;
-
-      span.fa-stack {
-        margin-right: 5px;
-        font-size: 12px;
-        height: 26px;
-      }
-
-      a {
-        font-size: 18px;
-        color: #666;
-        position: relative;
-        white-space: nowrap;
-        overflow: hidden;
-        -o-text-overflow: ellipsis;
-        text-overflow: ellipsis;
-      }
-    }
-  }
-}
-
-.theme-line .sidebar-nav ul li a:hover {
-  text-decoration: none;
-}
-
-.theme-line .select,
-.theme-line .typeahead {
-  li a {
-    color: #666;
-    background-color: transparent;
-  }
-
-  li a:hover {
-    color: @ignite-red;
-  }
-
-  .active {
-    background-color: #eee;
-  }
-}
-
-.theme-line .sidebar-nav ul li .subcategory {
-  padding-left: 15px;
-}
-
-.theme-line .sidebar-nav h4 {
-  margin-top: 2em;
-  font-weight: normal;
-  text-transform: uppercase;
-  font-size: 11px;
-  margin-bottom: 10px;
-  color: #bbb;
-}
-
-.theme-line .sidebar-nav h4:first-child {
-  margin-top: 0;
-}
-
-.theme-line .sidebar-nav .ask {
-  width: 100%;
-  text-align: center;
-  padding: 10px;
-}
-
-.theme-line .border-left .sidebar-nav {
-  padding-left: 15px;
-}
-
-.theme-line .suggest {
-  padding: 5px;
-  display: inline-block;
-  font-size: 12px;
-}
-
-.header {
-  padding: 15px;
-}
-
-.header .has-github {
-  padding-right: 136px;
-}
-
-.header h1.navbar-brand {
-  height: 40px;
-  width: 200px;
-  padding: 0;
-  margin: 5px 15px 0 0;
-}
-
-.header h1.navbar-brand a {
-  text-indent: -99999px;
-  background: no-repeat center center;
-  display: block;
-  width: 100%;
-  height: 100%;
-  background-size: contain;
-}
-
-.header .nav.navbar-nav.pull-right {
-  position: relative;
-  right: -30px;
-}
-
-.header .nav.navbar-nav .not-link {
-  padding: 15px;
-  display: inline-block;
-}
-
-.header .nav.navbar-nav .stable,
-.header .nav.navbar-nav .beta,
-.header .nav.navbar-nav .private {
-  font-size: 9px;
-  padding: 3px 5px;
-  display: inline-block;
-  line-height: 8px;
-  border-radius: 3px;
-  margin-left: 6px;
-  color: #fff;
-  top: -2px;
-  position: relative;
-  opacity: 0.6;
-  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
-  filter: alpha(opacity=60);
-}
-
-.header .nav.navbar-nav a:hover > .stable,
-.header .nav.navbar-nav a:hover > .beta,
-.header .nav.navbar-nav a:hover > .private {
-  opacity: 1;
-  -ms-filter: none;
-  filter: none;
-}
-
-.header .nav.navbar-nav .beta {
-  background-color: #59c3d1;
-}
-
-.header .nav.navbar-nav .stable {
-  background-color: #41b841;
-}
-
-.header .nav.navbar-nav .private {
-  background-color: #333;
-}
-
-.theme-line header {
-  border-bottom: 8px solid;
-}
-
-.theme-line header h2 {
-  color: #aaa;
-}
-
-.theme-line header p {
-  color: #666;
-}
-
-.theme-line header {
-  border-bottom-color: @ignite-red;
-}
-
-.theme-line .navbar-nav {
-  color: #888;
-}
-
-.theme-line .navbar-nav a {
-  color: #bbb;
-}
-
-.theme-line header a.btn {
-  background-color: @ignite-red;
-}
-
-.theme-line header a.btn:hover {
-  background-color: #950d12;
-}
-
-.theme-line header .navbar-nav .tt-cursor {
-  background-color: @ignite-red;
-}
-
-.theme-line header .navbar-nav a:hover, .theme-line header .navbar-nav .open > a {
-  color: @ignite-red;
-}
-
-.theme-line .navbar-nav .active a {
-  //font-weight: bold;
-  color: @ignite-red;
-}
-
-.theme-line .navbar-nav .active a:hover {
-  color: #950d12;
-}
-
-.theme-line .main-links .links a:hover {
-  color: @ignite-red;
-}
-
-.theme-line .main-content a {
-  color: #666;
-}
-
-.theme-line .main-content a:hover {
-  color: #950d12;
-}
-
-.theme-line .sidebar-nav ul li a.active:before {
-  background-color: @ignite-red;
-}
-
-.theme-line .sidebar-nav ul li a.active {
-  color: @ignite-red;
-}
-
-.theme-line .sidebar-nav ul li a:hover, .theme-line .sidebar-nav ul li a.active:hover {
-  color: #950d12;
-}
-
-.theme-line .main-content .nav-horizontal a.active {
-  border-color: @ignite-red;
-  color: @ignite-red;
-}
-
-.theme-line .main-content .nav-horizontal a:hover {
-  color: #950d12;
-}
-
-.theme-line .main-content .nav-horizontal a.active:hover {
-  border-color: #950d12;
-}
-
-.theme-line header .navbar-nav a.active, .theme-line #versions-list li a:hover strong, .theme-line #versions-list li a.active .current, .theme-line #versions-list li a:active .current {
-  color: @ignite-red;
-}
-
-.theme-line header .navbar-nav a {
-  font-size: 18px;
-}
-
-.theme-line.body-threes .section-right .threes-nav .btn-default:hover, .theme-line.page-docs.body-threes .section-right .threes-nav .pull-right a:hover {
-  color: @ignite-red;
-  border-color: @ignite-red;
-}
-
-.theme-line .section-right {
-  padding-left: 30px;
-}
-
-.body-overlap .main-content {
-  margin-top: 30px;
-}
-
-.body-box .main-content,
-.body-overlap .main-content {
-  padding: 30px;
-  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
-  background-color: #fff;
-}
-
-body {
-  font-weight: 400;
-  font-family: Roboto Slab, serif;;
-}
-
-h1, h2, h3, h4, h5, h6 {
-  font-weight: 700;
-  font-family: Roboto Slab, serif;
-  margin-bottom: 10px;
-}
-
-.submit-vote.submit-vote-parent.voted a.submit-vote-button, .submit-vote.submit-vote-parent a.submit-vote-button:hover {
-  background-color: @ignite-red;
-}
-
-div.submit-vote.submit-vote-parent.voted a.submit-vote-button:hover {
-  background-color: #950d12;
-}
-
-a, .link .title {
-  color: @ignite-red;
-}
-
-a:hover, .link:hover .title {
-  color: #950d12;
-}
-
-.header h1.navbar-brand a {
-  background-image: url("@{logo-path}");
-}
-
-.header h1.navbar-brand {
-  width: 96px;
-}
-
-.block-edit-parameters {
-  text-align: right;
-  padding-bottom: 5px;
-}
-
-.container-footer {
-  margin-top: 20px;
-}
-
-/* Modal */
-.modal {
-  display: block;
-  overflow: hidden;
-}
-
-.modal .close {
-  position: absolute;
-  top: 10px;
-  right: 10px;
-  float: none;
-}
-
-// Close icon
-.modal-header .close {
-  margin-right: -2px;
-}
-
-.modal .modal-dialog {
-  width: 610px;
-}
-
-.modal .modal-content {
-  border-radius: 0;
-  background-color: #f7f7f7;
-}
-
-.modal .modal-content .modal-header {
-  background-color: #fff;
-  text-align: center;
-  color: #555;
-  padding: 15px;
-  font-family: "myriad-pro", sans-serif;
-}
-
-.modal .modal-content .modal-header h4 {
-  font-family: "myriad-pro", sans-serif;
-  font-size: 22px;
-}
-
-.modal .modal-content .modal-header h4 .fa {
-  display: block;
-  font-size: 41px;
-  color: #ddd;
-  margin-bottom: 5px;
-}
-
-.modal .modal-content .modal-header p {
-  color: #aaa;
-  font-size: 1em;
-  margin: 3px 0 0;
-}
-
-.modal .modal-content .modal-spacer {
-  padding: 10px 10px 0 10px;
-}
-
-.modal .modal-content .modal-footer {
-  margin-top: 0;
-}
-
-.modal-body {
-  padding-top: 15px;
-}
-
-h1.ignite-logo {
-  background-image: url("@{logo-path}");
-}
-
-.block-display-image img {
-  max-width: 100%;
-  max-height: 450px;
-  margin: auto;
-  display: block;
-}
-
-.greedy {
-  min-height: 200px;
-  height: ~"calc(100vh - 290px)";
-}
-
-@media (min-width: 768px) {
-  .navbar-nav > li > a {
-    padding-top: 18px;
-    padding-bottom: 10px;
-  }
-}
-
-.details-row {
-  padding: 0 10px;
-}
-
-.details-row, .settings-row {
-  display: block;
-  margin: 10px 0;
-
-  label.table-header {
-    line-height: @input-height;
-  }
-
-  [class*="col-"] {
-    display: inline-block;
-    vertical-align: middle;
-    float: none;
-
-    padding-left: 0 !important;
-    padding-right: 0 !important;
-  }
-
-  input[type="checkbox"] {
-    line-height: 20px;
-    margin-right: 5px;
-  }
-
-  .checkbox label {
-    line-height: 20px;
-    vertical-align: middle;
-  }
-}
-
-button {
-  margin-right: 5px;
-}
-
-h1,
-h2,
-h3 {
-  user-select: none;
-  font-weight: normal;
-  /* Makes the vertical size of the text the same for all fonts. */
-  line-height: 1;
-}
-
-h3 {
-  color: black;
-  font-size: 1.2em;
-  margin-top: 0;
-  margin-bottom: 1.5em;
-}
-
-table tr:hover {
-  cursor: pointer;
-}
-
-.btn {
-  padding: 3px 6px;
-}
-
-button .caret, .btn .caret {
-  float: right;
-  margin-left: 5px;
-  margin-top: 7px;
-}
-
-.base-control {
-  text-align: left;
-  padding: 3px 3px;
-  height: @input-height;
-}
-
-.form-control:extend(.base-control all) {
-  display: inline-block;
-
-  button {
-    text-align: left;
-  }
-}
-
-.theme-line .panel-heading {
-  padding: 10px 10px;
-  margin: 0;
-
-  h3 {
-    margin-bottom: 0;
-  }
-
-  h3 > a {
-    color: black;
-  }
-}
-
-.theme-line .panel-title {
-  a {
-    color: @ignite-red;
-  }
-
-  h3 {
-    margin-bottom: 20px;
-  }
-}
-
-.theme-line .panel-body {
-  padding: 10px 20px;
-}
-
-.theme-line .main-content a.customize {
-  margin-left: 5px;
-  color: @ignite-red;
-}
-
-.theme-line .panel-collapse {
-  margin: 0;
-}
-
-.theme-line .links table {
-  display: table;
-  table-layout: fixed;
-
-  td {
-    padding-left: 18px;
-  }
-
-  .active a {
-    color: @ignite-red;
-    font-weight: bold;
-  }
-
-  a:hover {
-    color: #950d12;
-  }
-
-  a {
-    color: #666;
-  }
-}
-
-.theme-line table.links-edit:extend(.theme-line .links table all) {
-  margin-top: 5px;
-  margin-bottom: 5px;
-
-  label {
-    line-height: @input-height;
-    color: #666;
-  }
-}
-
-.theme-line table.links-edit-details:extend(.theme-line .links table all) {
-  margin-bottom: 10px;
-
-  label {
-    line-height: @input-height;
-    color: #666;
-  }
-
-  td {
-    padding: 0;
-
-    .input-tip {
-      padding: 0;
-    }
-  }
-}
-
-.theme-line table.admin {
-  tr:hover {
-    cursor: default;
-  }
-
-  thead > tr th.header {
-    padding: 0 0 10px;
-
-    div {
-      padding: 0
-    }
-  }
-
-  margin-bottom: 10px;
-
-  label {
-    line-height: @input-height;
-    color: #666;
-  }
-
-  thead > tr th, td {
-    padding: 10px 10px;
-
-    .input-tip {
-      padding: 0;
-    }
-  }
-
-  tfoot > tr > td {
-    padding: 0;
-
-    .pagination {
-      margin: 10px 0;
-
-      > .active > a {
-        color: @ignite-red;
-        font-weight: bold;
-        border-color: #ddd;
-        background-color: #eee;
-      }
-    }
-  }
-}
-
-.panel-title a {
-  font-size: 14px;
-}
-
-.panel-details {
-  margin-top: 10px;
-
-  padding: 0;
-
-  border-radius: 5px;
-  border: thin dotted lightgrey;
-}
-
-.tooltip.right .tooltip-arrow {
-  border-right-color: @ignite-red;
-}
-
-.tooltip > .tooltip-inner {
-  max-width: 400px;
-  text-align: left;
-  background-color: @ignite-red;
-}
-
-label {
-  font-weight: normal;
-  margin-bottom: 0;
-}
-
-.form-horizontal .checkbox {
-  padding-top: 0;
-}
-
-.input-tip {
-  display: block;
-  overflow: hidden;
-}
-
-.labelField {
-  float: left;
-  margin-right: 5px;
-}
-
-.labelFormField {
-  float: left;
-  line-height: @input-height;
-}
-
-.form-horizontal .form-group {
-  margin: 0;
-}
-
-.form-horizontal .has-feedback .form-control-feedback {
-  right: 0;
-}
-
-.tipField {
-  float: right;
-  line-height: @input-height;
-  margin-left: 5px;
-}
-
-.tipLabel {
-  font-size: 14px;
-  margin-left: 5px;
-}
-
-.fieldSep {
-  float: right;
-  line-height: @input-height;
-  margin: 0 5px;
-}
-
-.fieldButton {
-  float: right;
-  margin-left: 5px;
-  margin-right: 0;
-}
-
-.fa-plus {
-  cursor: pointer;
-}
-
-.fa-remove {
-  color: @ignite-red;
-  cursor: pointer;
-}
-
-.fa-floppy-o {
-  cursor: pointer;
-}
-
-.fa-arrow-up {
-  cursor: pointer;
-}
-
-.fa-arrow-down {
-  cursor: pointer;
-}
-
-label.required:after {
-  color: @ignite-red;
-  content: ' *';
-  display: inline;
-}
-
-.blank {
-  visibility: hidden;
-}
-
-.alert {
-  outline: 0
-}
-
-.alert.bottom, .alert.bottom-left, .alert.bottom-right, .alert.top,
-.alert.top-left, .alert.top-right {
-  position: fixed;
-  z-index: 1050;
-  margin: 20px
-}
-
-.alert.top, .alert.top-left, .alert.top-right {
-  top: 50px
-}
-
-.alert.top {
-  right: 0;
-  left: 0
-}
-
-.alert.top-right {
-  right: 0
-}
-
-.alert.top-right .close {
-  padding-left: 10px
-}
-
-.alert.top-left {
-  left: 0
-}
-
-.alert.top-left .close {
-  padding-right: 10px
-}
-
-.alert.bottom, .alert.bottom-left, .alert.bottom-right {
-  bottom: 0
-}
-
-.alert.bottom {
-  right: 0;
-  left: 0
-}
-
-.alert.bottom-right {
-  right: 0
-}
-
-.alert.bottom-right .close {
-  padding-left: 10px
-}
-
-.alert.bottom-left {
-  left: 0
-}
-
-.alert.bottom-left .close {
-  padding-right: 10px
-}
-
-//  Summary page
-#cfgResult textarea {
-  font-family: monospace;
-  font-size: 12px;
-}
-
-input[type="number"]::-webkit-outer-spin-button,
-input[type="number"]::-webkit-inner-spin-button {
-  -webkit-appearance: none;
-  margin: 0;
-}
-
-input[type="number"] {
-  -moz-appearance: textfield;
-}
-
-input.ng-dirty.ng-invalid, button.ng-dirty.ng-invalid {
-  border-color: @ignite-red;
-
-  :focus {
-    border-color: @ignite-red;
-  }
-}
-
-.form-control-feedback {
-  display: inline-block;
-  color: @ignite-red;
-  right: 18px;
-  line-height: @input-height;
-  pointer-events: initial;
-}
-
-.syntaxhighlighter {
-  padding: 10px 5px;
-  border-radius: 6px;
-}
-
-.theme-line table.links-edit-small-padding:extend(.theme-line .links table all) {
-  label {
-    line-height: @input-height;
-    color: #666;
-  }
-
-  a {
-    line-height: @input-height;
-  }
-
-  input[type="checkbox"] {
-    line-height: 20px;
-    margin-right: 5px;
-  }
-
-  .checkbox label {
-    line-height: 20px;
-    vertical-align: middle;
-  }
-
-  th {
-    text-align: center;
-  }
-
-  td {
-    padding-left: 10px;
-  }
-
-  margin-top: 10px;
-}
-
-.configBox .nav > li > a {
-  padding: 5px 5px;
-}
-
-.viewedUser {
-  position: absolute;
-  width: 100%;
-  left: 0;
-
-  text-align: center;
-
-  margin-top: -15px;
-
-  background-color: #f8d5d8;
-}
-
-a {
-  cursor: pointer;
-}
-
-.st-sort-ascent:after {
-  content: '\25B2';
-}
-
-.st-sort-descent:after {
-  content: '\25BC';
-}
-
-.panel {
-  margin-bottom: 0;
-}
-
-.panel-group {
-  margin-bottom: 0;
-}
-
-.panel-group .panel + .panel {
-  margin-top: 20px;
-}
-
-.margin-top-dflt {
-  margin-top: 10px;
-}
-
-.margin-bottom-dflt {
-  margin-bottom: 10px;
-}
-
-.margin-dflt {
-  margin-top: 10px;
-  margin-bottom: 10px;
-}
-
-.padding-top-dflt {
-  padding-top: 10px;
-}
-
-.padding-bottom-dflt {
-  padding-bottom: 10px;
-}
-
-.padding-dflt {
-  padding-top: 10px;
-  padding-bottom: 10px;
-}
-
-.theme-line .panel-title h3 {
-  margin-top: 20px;
-  margin-bottom: 20px;
-}
-
-.block-callout-parent {
-  background-color: @ignite-block-callout-background;
-  overflow: hidden;
-}
-
-.block-callout {
-  background-color: @ignite-block-callout-background;
-  display: inline-block;
-  vertical-align: top;
-  width: 50%;
-
-  i {
-    padding: 10px 5px 0 10px;
-    color: @ignite-block-callout;
-  }
-
-  ul {
-    padding-left: 20px;
-    margin-bottom: 0;
-  }
-
-  p {
-    padding: 5px 0 10px 20px;
-    margin: 0;
-  }
-
-  label {
-    font-weight: bold;
-    color: @ignite-block-callout;
-  }
-}
-
-.block-callout-border {
-  border-left: 5px solid;
-  border-color: @ignite-block-callout;
-}
-
-.labelHeader {
-  font-weight: bold;
-}
-
-.ace_editor, #ace_document {
-  width: 100%;
-  height: 400px;
-}
-
-

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a335724/modules/web-control-center/nodejs/routes/admin.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/routes/admin.js b/modules/web-control-center/nodejs/routes/admin.js
deleted file mode 100644
index 5af72f7..0000000
--- a/modules/web-control-center/nodejs/routes/admin.js
+++ /dev/null
@@ -1,79 +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 router = require('express').Router();
-var db = require('../db');
-
-router.get('/', function (req, res) {
-    res.render('settings/admin');
-});
-
-/**
- * Get list of user accounts.
- */
-router.post('/list', function (req, res) {
-    db.Account.find({}).sort('username').exec(function (err, users) {
-        if (err)
-            return res.status(500).send(err.message);
-
-        res.json(users);
-    });
-});
-
-router.post('/remove', function (req, res) {
-    var userId = req.body.userId;
-
-    db.Account.findByIdAndRemove(userId, function (err) {
-        if (err)
-            return res.status(500).send(err);
-
-        res.sendStatus(200);
-    });
-});
-
-router.post('/save', function (req, res) {
-    var userId = req.body.userId;
-    var adminFlag = req.body.adminFlag;
-
-    db.Account.findByIdAndUpdate(userId, {admin: adminFlag}, function (err) {
-        if (err)
-            return res.status(500).send(err.message);
-
-        res.sendStatus(200);
-    });
-});
-
-router.get('/become', function (req, res) {
-    var viewedUserId = req.query.viewedUserId;
-
-    if (!viewedUserId) {
-        req.session.viewedUser = null;
-
-        return res.redirect('/admin');
-    }
-
-    db.Account.findById(viewedUserId).exec(function (err, viewedUser) {
-        if (err)
-            return res.sendStatus(404);
-
-        req.session.viewedUser = viewedUser;
-
-        res.redirect('/');
-    })
-});
-
-module.exports = router;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a335724/modules/web-control-center/nodejs/routes/caches.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/routes/caches.js b/modules/web-control-center/nodejs/routes/caches.js
deleted file mode 100644
index 3fefd37..0000000
--- a/modules/web-control-center/nodejs/routes/caches.js
+++ /dev/null
@@ -1,95 +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 router = require('express').Router();
-var db = require('../db');
-
-/* GET caches page. */
-router.get('/', function (req, res) {
-    res.render('configuration/caches');
-});
-
-/**
- * Get spaces and caches accessed for user account.
- *
- * @param req Request.
- * @param res Response.
- */
-router.post('/list', function (req, res) {
-    var user_id = req.currentUserId();
-
-    // Get owned space and all accessed space.
-    db.Space.find({$or: [{owner: user_id}, {usedBy: {$elemMatch: {account: user_id}}}]}, function (err, spaces) {
-        if (err)
-            return res.status(500).send(err.message);
-
-        var space_ids = spaces.map(function (value) {
-            return value._id;
-        });
-
-        // Get all caches for spaces.
-        db.Cache.find({space: {$in: space_ids}}).sort('name').exec(function (err, caches) {
-            if (err)
-                return res.status(500).send(err.message);
-
-            res.json({spaces: spaces, caches: caches});
-        });
-    });
-});
-
-/**
- * Save cache.
- */
-router.post('/save', function (req, res) {
-    if (req.body._id)
-        db.Cache.update({_id: req.body._id}, req.body, {upsert: true}, function (err) {
-            if (err)
-                return res.status(500).send(err.message);
-
-            res.send(req.body._id);
-        });
-    else {
-        db.Cache.findOne({name: req.body.name}, function (err, cache) {
-            if (err)
-                return res.status(500).send(err.message);
-
-            if (cache)
-                return res.status(500).send('Cache with name: "' + cache.name + '" already exist.');
-
-            (new db.Cache(req.body)).save(function (err, cache) {
-                if (err)
-                    return res.status(500).send(err.message);
-
-                res.send(cache._id);
-            });
-        });
-    }
-});
-
-/**
- * Remove cache by ._id.
- */
-router.post('/remove', function (req, res) {
-    db.Cache.remove(req.body, function (err) {
-        if (err)
-            return res.status(500).send(err.message);
-
-        res.sendStatus(200);
-    })
-});
-
-module.exports = router;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a335724/modules/web-control-center/nodejs/routes/clusters.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/routes/clusters.js b/modules/web-control-center/nodejs/routes/clusters.js
deleted file mode 100644
index 182130d..0000000
--- a/modules/web-control-center/nodejs/routes/clusters.js
+++ /dev/null
@@ -1,104 +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 router = require('express').Router();
-var db = require('../db');
-
-/* GET clusters page. */
-router.get('/', function (req, res) {
-    res.render('configuration/clusters');
-});
-
-/**
- * Get spaces and clusters accessed for user account.
- *
- * @param req Request.
- * @param res Response.
- */
-router.post('/list', function (req, res) {
-    var user_id = req.currentUserId();
-
-    // Get owned space and all accessed space.
-    db.Space.find({$or: [{owner: user_id}, {usedBy: {$elemMatch: {account: user_id}}}]}, function (err, spaces) {
-        if (err)
-            return res.status(500).send(err.message);
-
-        var space_ids = spaces.map(function (value) {
-            return value._id;
-        });
-
-        db.Cache.find({space: {$in: space_ids}}, '_id name swapEnabled', function (err, caches) {
-            if (err)
-                return res.status(500).send(err);
-
-            // Get all clusters for spaces.
-            db.Cluster.find({space: {$in: space_ids}}).sort('name').exec(function (err, clusters) {
-                if (err)
-                    return res.status(500).send(err.message);
-
-                var cachesJson = caches.map(function (cache) {
-                    return {value: cache._id, label: cache.name, swapEnabled: cache.swapEnabled};
-                });
-
-                res.json({spaces: spaces, caches: cachesJson, clusters: clusters});
-            });
-        });
-    });
-});
-
-/**
- * Save cluster.
- */
-router.post('/save', function (req, res) {
-    if (req.body._id)
-        db.Cluster.update({_id: req.body._id}, req.body, {upsert: true}, function (err) {
-            if (err)
-                return res.status(500).send(err.message);
-
-            res.send(req.body._id);
-        });
-    else {
-        db.Cluster.findOne({name: req.body.name}, function (err, cluster) {
-            if (err)
-                return res.status(500).send(err.message);
-
-            if (cluster)
-                return res.status(500).send('Cluster with name: "' + cluster.name + '" already exist.');
-
-            (new db.Cluster(req.body)).save(function (err, cluster) {
-                if (err)
-                    return res.status(500).send(err.message);
-
-                res.send(cluster._id);
-            });
-        });
-    }
-});
-
-/**
- * Remove cluster by ._id.
- */
-router.post('/remove', function (req, res) {
-    db.Cluster.remove(req.body, function (err) {
-        if (err)
-            return res.status(500).send(err.message);
-
-        res.sendStatus(200);
-    })
-});
-
-module.exports = router;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a335724/modules/web-control-center/nodejs/routes/generator/common.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/routes/generator/common.js b/modules/web-control-center/nodejs/routes/generator/common.js
deleted file mode 100644
index dcbf156..0000000
--- a/modules/web-control-center/nodejs/routes/generator/common.js
+++ /dev/null
@@ -1,299 +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 _ = require('lodash');
-
-exports.isDefined = function (v) {
-    return !(v === undefined || v === null);
-};
-
-exports.mainComment = mainComment;
-
-function mainComment() {
-    return 'This configuration was generated by Ignite Control Center ('
-        + formatDate(new Date()) + ')';
-}
-
-function addLeadingZero(numberStr, minSize) {
-    if (typeof (numberStr) != 'string')
-        numberStr = '' + numberStr;
-
-    while (numberStr.length < minSize) {
-        numberStr = '0' + numberStr;
-    }
-
-    return numberStr;
-}
-
-exports.formatDate = formatDate;
-
-function formatDate(date) {
-    var dd = addLeadingZero(date.getDate(), 2);
-    var mm = addLeadingZero(date.getMonth() + 1, 2);
-
-    var yyyy = date.getFullYear();
-
-    return mm + '/' + dd + '/' + yyyy + ' ' + addLeadingZero(date.getHours(), 2) + ':' + addLeadingZero(date.getMinutes(), 2);
-}
-
-exports.builder = function () {
-    var res = [];
-
-    res.deep = 0;
-    res.lineStart = true;
-
-    res.append = function (s) {
-        if (this.lineStart) {
-            for (var i = 0; i < this.deep; i++)
-                this.push('    ');
-
-            this.lineStart = false;
-        }
-
-        this.push(s);
-
-        return this;
-    };
-
-    res.line = function (s) {
-        if (s)
-            this.append(s);
-
-        this.push('\n');
-        this.lineStart = true;
-
-        return this;
-    };
-
-    res.startBlock = function (s) {
-        if (s)
-            this.append(s);
-
-        this.push('\n');
-        this.lineStart = true;
-        this.deep++;
-
-        return this;
-    };
-
-    res.endBlock = function (s) {
-        this.deep--;
-
-        if (s)
-            this.append(s);
-
-        this.push('\n');
-        this.lineStart = true;
-
-        return this;
-    };
-
-    res.emptyLineIfNeeded = function () {
-        if (this.needEmptyLine) {
-            this.line();
-
-            this.needEmptyLine = false;
-
-            return true;
-        }
-
-        return false;
-    };
-
-    res.imports = {};
-
-    res.importClass = function (fullClassName) {
-        var dotIdx = fullClassName.lastIndexOf('.');
-
-        var shortName;
-
-        if (dotIdx > 0)
-            shortName = fullClassName.substr(dotIdx + 1);
-        else
-            shortName = fullClassName;
-
-        if (this.imports[shortName]) {
-            if (this.imports[shortName] != fullClassName)
-                throw "Class name conflict: " + this.imports[shortName] + ' and ' + fullClassName;
-        }
-        else {
-            this.imports[shortName] = fullClassName;
-        }
-
-        return shortName;
-    };
-
-    res.generateImports = function () {
-        var res = [];
-
-        for (var clsName in this.imports) {
-            if (this.imports.hasOwnProperty(clsName))
-                res.push('import ' + this.imports[clsName] + ';');
-        }
-
-        return res.join('\n')
-    };
-
-    return res;
-};
-
-function ClassDescriptor(className, fields) {
-    this.className = className;
-    this.fields = fields;
-}
-
-exports.evictionPolicies = {
-    'LRU': new ClassDescriptor('org.apache.ignite.cache.eviction.lru.LruEvictionPolicy',
-        {batchSize: null, maxMemorySize: null, maxSize: null}),
-    'RND': new ClassDescriptor('org.apache.ignite.cache.eviction.random.RandomEvictionPolicy', {maxSize: null}),
-    'FIFO': new ClassDescriptor('org.apache.ignite.cache.eviction.fifo.FifoEvictionPolicy',
-        {batchSize: null, maxMemorySize: null, maxSize: null}),
-    'SORTED': new ClassDescriptor('org.apache.ignite.cache.eviction.sorted.SortedEvictionPolicy',
-        {batchSize: null, maxMemorySize: null, maxSize: null})
-};
-
-exports.marshallers = {
-    OptimizedMarshaller: new ClassDescriptor('org.apache.ignite.marshaller.optimized.OptimizedMarshaller', {
-        poolSize: null,
-        requireSerializable: null
-    }),
-    JdkMarshaller: new ClassDescriptor('org.apache.ignite.marshaller.jdk.JdkMarshaller', {})
-};
-
-exports.knownClasses = {
-    Oracle: new ClassDescriptor('org.apache.ignite.cache.store.jdbc.dialect.OracleDialect', {}),
-    DB2: new ClassDescriptor('org.apache.ignite.cache.store.jdbc.dialect.DB2Dialect', {}),
-    SQLServer: new ClassDescriptor('org.apache.ignite.cache.store.jdbc.dialect.SQLServerDialect', {}),
-    MySQL: new ClassDescriptor('org.apache.ignite.cache.store.jdbc.dialect.MySQLDialect', {}),
-    PostgreSQL: new ClassDescriptor('org.apache.ignite.cache.store.jdbc.dialect.BasicJdbcDialect', {}),
-    H2: new ClassDescriptor('org.apache.ignite.cache.store.jdbc.dialect.H2Dialect', {})
-};
-
-exports.dataSources = {
-    Oracle: 'oracle.jdbc.pool.OracleDataSource',
-    DB2: 'com.ibm.db2.jcc.DB2ConnectionPoolDataSource',
-    SQLServer: 'com.microsoft.sqlserver.jdbc.SQLServerDataSource',
-    MySQL: 'com.mysql.jdbc.jdbc2.optional.MysqlDataSource',
-    PostgreSQL: 'org.postgresql.ds.PGPoolingDataSource',
-    H2: 'org.h2.jdbcx.JdbcDataSource'
-};
-
-exports.storeFactories = {
-    CacheJdbcPojoStoreFactory: new ClassDescriptor('org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory', {
-        dataSourceBean: null,
-        dialect: {type: 'className'}
-    }),
-
-    CacheJdbcBlobStoreFactory: new ClassDescriptor('org.apache.ignite.cache.store.jdbc.CacheJdbcBlobStoreFactory', {
-        user: null,
-        dataSourceBean: null,
-        initSchema: null,
-        createTableQuery: null,
-        loadQuery: null,
-        insertQuery: null,
-        updateQuery: null,
-        deleteQuery: null
-    }),
-
-    CacheHibernateBlobStoreFactory: new ClassDescriptor('org.apache.ignite.cache.store.hibernate.CacheHibernateBlobStoreFactory', {
-        hibernateProperties: {type: 'propertiesAsList', propVarName: 'props'}
-    })
-};
-
-exports.atomicConfiguration = new ClassDescriptor('org.apache.ignite.configuration.AtomicConfiguration', {
-    backups: null,
-    cacheMode: {type: 'enum', enumClass: 'CacheMode'},
-    atomicSequenceReserveSize: null
-});
-
-exports.swapSpaceSpi = new ClassDescriptor('org.apache.ignite.spi.swapspace.file.FileSwapSpaceSpi', {
-    baseDirectory: null,
-    readStripesNumber: null,
-    maximumSparsity: {type: 'float'},
-    maxWriteQueueSize: null,
-    writeBufferSize: null
-});
-
-exports.transactionConfiguration = new ClassDescriptor('org.apache.ignite.configuration.TransactionConfiguration', {
-    defaultTxConcurrency: {type: 'enum', enumClass: 'TransactionConcurrency'},
-    transactionIsolation: {type: 'TransactionIsolation', setterName: 'defaultTxIsolation'},
-    defaultTxTimeout: null,
-    pessimisticTxLogLinger: null,
-    pessimisticTxLogSize: null,
-    txSerializableEnabled: null
-});
-
-exports.hasProperty = function (obj, props) {
-    for (var propName in props) {
-        if (props.hasOwnProperty(propName)) {
-            if (obj[propName])
-                return true;
-        }
-    }
-
-    return false;
-};
-
-/**
- * Convert some name to valid java name.
- *
- * @param name to convert.
- * @returns {string} Valid java name.
- */
-exports.toJavaName = function (name) {
-    var javaName = name.replace(/[^A-Za-z_0-9]+/, '_');
-
-    return javaName.charAt(0).toLocaleUpperCase() + javaName.slice(1);
-};
-
-/**
- * Generate properties file with properties stubs for stores data sources.
- *
- * @param cluster Configuration to process.
- * @returns {string} Generated content.
- */
-exports.generateProperties = function (cluster) {
-    var res = exports.builder();
-
-    var datasources = [];
-
-    if (cluster.caches && cluster.caches.length > 0) {
-        _.forEach(cluster.caches, function (cache) {
-            if (cache.cacheStoreFactory && cache.cacheStoreFactory.kind) {
-                var storeFactory = cache.cacheStoreFactory[cache.cacheStoreFactory.kind];
-
-                if (storeFactory.dialect) {
-                    var beanId = storeFactory.dataSourceBean;
-
-                    if (!_.contains(datasources, beanId)) {
-                        datasources.push(beanId);
-
-                        res.line(beanId + '.jdbc.url=YOUR_JDBC_URL');
-                        res.line(beanId + '.jdbc.username=YOUR_USER_NAME');
-                        res.line(beanId + '.jdbc.password=YOUR_PASSWORD');
-                        res.line();
-                    }
-                }
-            }
-        });
-    }
-
-    if (datasources.length > 0)
-        return '# ' + mainComment() + '\n\n' + res.join();
-
-    return undefined;
-};

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a335724/modules/web-control-center/nodejs/routes/generator/docker.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/routes/generator/docker.js b/modules/web-control-center/nodejs/routes/generator/docker.js
deleted file mode 100644
index 93faf8e..0000000
--- a/modules/web-control-center/nodejs/routes/generator/docker.js
+++ /dev/null
@@ -1,58 +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.
- */
-
-exports.generateClusterConfiguration = function(cluster, os) {
-    if (!os)
-        os = 'debian:8';
-
-    return "" +
-        "# Start from a OS 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";
-};

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a335724/modules/web-control-center/nodejs/routes/generator/java.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/routes/generator/java.js b/modules/web-control-center/nodejs/routes/generator/java.js
deleted file mode 100644
index 31cd2ac..0000000
--- a/modules/web-control-center/nodejs/routes/generator/java.js
+++ /dev/null
@@ -1,626 +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 _ = require('lodash');
-
-var generatorUtils = require("./common");
-
-exports.generateClusterConfiguration = function(cluster, javaClass, clientNearConfiguration) {
-    var res = generatorUtils.builder();
-
-    res.datasourceBeans = [];
-
-    if (javaClass) {
-        res.line('/**');
-        res.line(' * ' + generatorUtils.mainComment());
-        res.line(' */');
-        res.startBlock('public class ConfigurationFactory {');
-        res.line('/**');
-        res.line(' * Configure grid.');
-        res.line(' */');
-        res.startBlock('public IgniteConfiguration createConfiguration() {');
-    }
-    
-    res.importClass('org.apache.ignite.configuration.IgniteConfiguration');
-    
-    res.line('IgniteConfiguration cfg = new IgniteConfiguration();');
-    res.line();
-
-    if (clientNearConfiguration) {
-        res.line('cfg.setClientMode(true);');
-
-        res.line();
-    }
-
-    if (cluster.discovery) {
-        var d = cluster.discovery;
-
-        res.importClass('org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi');
-        res.line('TcpDiscoverySpi discovery = new TcpDiscoverySpi();');
-
-        switch (d.kind) {
-            case 'Multicast':
-                res.importClass('org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder');
-
-                addBeanWithProperties(res, d.Multicast, 'discovery', 'ipFinder', 'ipFinder',
-                    'TcpDiscoveryMulticastIpFinder', {
-                        multicastGroup: null,
-                        multicastPort: null,
-                        responseWaitTime: null,
-                        addressRequestAttempts: null,
-                        localAddress: null
-                    }, true);
-
-                break;
-
-            case 'Vm':
-                res.importClass('org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder');
-
-                addBeanWithProperties(res, d.Vm, 'discovery', 'ipFinder', 'ipFinder', 'TcpDiscoveryVmIpFinder', {
-                        addresses: {type: 'list'}
-                    }, true);
-
-                break;
-
-            case 'S3':
-                res.importClass('org.apache.ignite.spi.discovery.tcp.ipfinder.s3.TcpDiscoveryS3IpFinder');
-
-                if (d.S3)
-                    addBeanWithProperties(res, d.S3, 'discovery', 'ipFinder', 'ipFinder', 'TcpDiscoveryS3IpFinder',
-                        {bucketName: null}, true);
-                else
-                    res.line('discovery.setIpFinder(new TcpDiscoveryS3IpFinder());');
-
-                break;
-
-            case 'Cloud':
-                res.importClass('org.apache.ignite.spi.discovery.tcp.ipfinder.cloud.TcpDiscoveryCloudIpFinder');
-
-                addBeanWithProperties(res, d.Cloud, 'discovery', 'ipFinder', 'ipFinder', 'TcpDiscoveryCloudIpFinder', {
-                        credential: null,
-                        credentialPath: null,
-                        identity: null,
-                        provider: null,
-                        regions: {type: 'list'},
-                        zones: {type: 'list'}
-                    }, true);
-
-                break;
-
-            case 'GoogleStorage':
-                res.importClass('org.apache.ignite.spi.discovery.tcp.ipfinder.gce.TcpDiscoveryGoogleStorageIpFinder');
-
-                addBeanWithProperties(res, d.GoogleStorage, 'discovery', 'ipFinder', 'ipFinder',
-                    'TcpDiscoveryGoogleStorageIpFinder', {
-                        projectName: null,
-                        bucketName: null,
-                        serviceAccountP12FilePath: null
-                    }, true);
-
-                //if (d.GoogleStorage.addrReqAttempts) todo ????
-                //    res.line('<property name="serviceAccountP12FilePath" value="' + escapeAttr(d.GoogleStorage.addrReqAttempts) + '"/>');
-
-                break;
-
-            case 'Jdbc':
-                res.importClass('org.apache.ignite.spi.discovery.tcp.ipfinder.jdbc.TcpDiscoveryJdbcIpFinder');
-                
-                res.line();
-                res.line('TcpDiscoveryJdbcIpFinder ipFinder = new TcpDiscoveryJdbcIpFinder();');
-                res.line('ipFinder.setInitSchema(' + (d.Jdbc.initSchema != null || d.Jdbc.initSchema) + ');');
-                res.line('discovery.setIpFinder(ipFinder);');
-                res.needEmptyLine = true;
-
-                break;
-
-            case 'SharedFs':
-                res.importClass('org.apache.ignite.spi.discovery.tcp.ipfinder.sharedfs.TcpDiscoverySharedFsIpFinder');
-
-                addBeanWithProperties(res, d.SharedFs, 'discovery', 'ipFinder', 'ipFinder',
-                    'TcpDiscoverySharedFsIpFinder', {path: null}, true);
-
-                break;
-
-            default:
-                throw "Unknown discovery kind: " + d.kind;
-        }
-
-        res.emptyLineIfNeeded();
-
-        res.line('cfg.setDiscoverySpi(discovery);');
-
-        res.needEmptyLine = true;
-    }
-
-    if (cluster.caches && cluster.caches.length > 0) {
-        res.emptyLineIfNeeded();
-
-        var names = [];
-
-        for (var i = 0; i < cluster.caches.length; i++) {
-            res.emptyLineIfNeeded();
-
-            var cache = cluster.caches[i];
-
-            var cacheName = 'cache' + generatorUtils.toJavaName(cache.name);
-
-            names.push(cacheName);
-
-            generateCacheConfiguration(cache, cacheName, res);
-
-            res.needEmptyLine = true;
-        }
-
-        res.emptyLineIfNeeded();
-
-        res.append('cfg.setCacheConfiguration(');
-
-        for (i = 0; i < names.length; i++) {
-            if (i > 0)
-                res.append(', ');
-
-            res.append(names[i]);
-        }
-
-        res.line(');');
-
-        res.needEmptyLine = true;
-    }
-
-    addBeanWithProperties(res, cluster.atomicConfiguration, 'cfg', 'atomicConfiguration', 'atomicCfg',
-        generatorUtils.atomicConfiguration.className, generatorUtils.atomicConfiguration.fields);
-
-    res.needEmptyLine = true;
-
-    addProperty(res, cluster, 'cfg', 'networkTimeout');
-    addProperty(res, cluster, 'cfg', 'networkSendRetryDelay');
-    addProperty(res, cluster, 'cfg', 'networkSendRetryCount');
-    addProperty(res, cluster, 'cfg', 'segmentCheckFrequency');
-    addProperty(res, cluster, 'cfg', 'waitForSegmentOnStart');
-    addProperty(res, cluster, 'cfg', 'discoveryStartupDelay');
-
-    res.needEmptyLine = true;
-
-    addProperty(res, cluster, 'cfg', 'deploymentMode', 'DeploymentMode');
-
-    res.needEmptyLine = true;
-
-    if (cluster.includeEventTypes && cluster.includeEventTypes.length > 0) {
-        res.emptyLineIfNeeded();
-        
-        if (cluster.includeEventTypes.length == 1) {
-            res.importClass('org.apache.ignite.events.EventType');
-            
-            res.line('cfg.setIncludeEventTypes(EventType.' + cluster.includeEventTypes[0] + ');');
-        }
-        else {
-            res.append('int[] events = new int[EventType.' + cluster.includeEventTypes[0] + '.length');
-            
-            for (i = 1; i < cluster.includeEventTypes.length; i++) {
-                res.line();
-                
-                res.append('    + EventType.' + cluster.includeEventTypes[i] + '.length');
-            }
-            
-            res.line('];');
-            res.line();
-            res.line('int k = 0;');
-
-            for (i = 0; i < cluster.includeEventTypes.length; i++) {
-                res.line();
-
-                var e = cluster.includeEventTypes[i];
-                
-                res.line('System.arraycopy(EventType.' + e + ', 0, events, k, EventType.' + e + '.length);');
-                res.line('k += EventType.' + e + '.length;');
-            }
-            
-            res.line();
-            res.line('cfg.setIncludeEventTypes(events);');
-        }
-
-        res.needEmptyLine = true;
-    }
-
-    res.needEmptyLine = true;
-
-    var marshaller = cluster.marshaller;
-
-    if (marshaller && marshaller.kind) {
-        var marshallerDesc = generatorUtils.marshallers[marshaller.kind];
-
-        addBeanWithProperties(res, marshaller[marshaller.kind], 'cfg', 'marshaller', 'marshaller',
-            marshallerDesc.className, marshallerDesc.fields, true);
-
-        addBeanWithProperties(res, marshaller[marshaller.kind], 'marshaller', marshallerDesc.className, marshallerDesc.fields, true);
-    }
-
-    addProperty(res, cluster, 'cfg', 'marshalLocalJobs');
-    addProperty(res, cluster, 'cfg', 'marshallerCacheKeepAliveTime');
-    addProperty(res, cluster, 'cfg', 'marshallerCacheThreadPoolSize');
-
-    res.needEmptyLine = true;
-
-    addProperty(res, cluster, 'cfg', 'metricsExpireTime');
-    addProperty(res, cluster, 'cfg', 'metricsHistorySize');
-    addProperty(res, cluster, 'cfg', 'metricsLogFrequency');
-    addProperty(res, cluster, 'cfg', 'metricsUpdateFrequency');
-    res.needEmptyLine = true;
-
-    addProperty(res, cluster, 'cfg', 'peerClassLoadingEnabled');
-    addMultiparamProperty(res, cluster, 'cfg', 'peerClassLoadingLocalClassPathExclude');
-    addProperty(res, cluster, 'cfg', 'peerClassLoadingMissedResourcesCacheSize');
-    addProperty(res, cluster, 'cfg', 'peerClassLoadingThreadPoolSize');
-    res.needEmptyLine = true;
-
-    if (cluster.swapSpaceSpi && cluster.swapSpaceSpi.kind == 'FileSwapSpaceSpi') {
-        addBeanWithProperties(res, cluster.swapSpaceSpi.FileSwapSpaceSpi, 'cfg', 'swapSpaceSpi', 'swapSpi',
-            generatorUtils.swapSpaceSpi.className, generatorUtils.swapSpaceSpi.fields, true);
-
-        res.needEmptyLine = true;
-    }
-
-    addProperty(res, cluster, 'cfg', 'clockSyncSamples');
-    addProperty(res, cluster, 'cfg', 'clockSyncFrequency');
-    addProperty(res, cluster, 'cfg', 'timeServerPortBase');
-    addProperty(res, cluster, 'cfg', 'timeServerPortRange');
-
-    res.needEmptyLine = true;
-
-    addProperty(res, cluster, 'cfg', 'publicThreadPoolSize');
-    addProperty(res, cluster, 'cfg', 'systemThreadPoolSize');
-    addProperty(res, cluster, 'cfg', 'managementThreadPoolSize');
-    addProperty(res, cluster, 'cfg', 'igfsThreadPoolSize');
-
-    res.needEmptyLine = true;
-
-    addBeanWithProperties(res, cluster.transactionConfiguration, 'cfg', 'transactionConfiguration',
-        'transactionConfiguration', generatorUtils.transactionConfiguration.className,
-        generatorUtils.transactionConfiguration.fields);
-
-    res.needEmptyLine = true;
-
-    addProperty(res, cluster, 'cfg', 'cacheSanityCheckEnabled');
-
-    res.needEmptyLine = true;
-
-    if (javaClass) {
-        res.line();
-        res.line('return cfg;');
-        res.endBlock('}');
-        res.endBlock('}');
-        
-        return res.generateImports() + '\n\n' + res.join('')
-    }
-    
-    return res.join('');
-};
-
-function createEvictionPolicy(res, evictionPolicy, varName, propertyName) {
-    if (evictionPolicy && evictionPolicy.kind) {
-        var e = generatorUtils.evictionPolicies[evictionPolicy.kind];
-
-        var obj = evictionPolicy[evictionPolicy.kind.toUpperCase()];
-
-        addBeanWithProperties(res, obj, varName, propertyName, propertyName, e.className, e.fields, true);
-    }
-}
-
-exports.generateCacheConfiguration = generateCacheConfiguration;
-
-/**
- * Generate java code for cache configuration.
- *
- * @param cacheCfg Cache config.
- * @param varName Variable name.
- * @param res Result builder.
- * @returns {*} Append generated java code to builder and return it.
- */
-function generateCacheConfiguration(cacheCfg, varName, res) {
-    if (!res)
-        res = generatorUtils.builder();
-
-    res.emptyLineIfNeeded();
-
-    res.importClass('org.apache.ignite.cache.CacheAtomicityMode');
-    res.importClass('org.apache.ignite.cache.CacheMode');
-    res.importClass('org.apache.ignite.configuration.CacheConfiguration');
-
-    res.line('CacheConfiguration ' + varName + ' = new CacheConfiguration();');
-
-    res.needEmptyLine = true;
-
-    addProperty(res, cacheCfg, varName, 'name');
-    
-    addProperty(res, cacheCfg, varName, 'mode', 'CacheMode', 'cacheMode');
-
-    addProperty(res, cacheCfg, varName, 'atomicityMode', 'CacheAtomicityMode');
-    addProperty(res, cacheCfg, varName, 'backups');
-    addProperty(res, cacheCfg, varName, 'startSize');
-    addProperty(res, cacheCfg, varName, 'readFromBackup');
-
-    res.needEmptyLine = true;
-    
-    addProperty(res, cacheCfg, varName, 'memoryMode', 'CacheMemoryMode');
-    addProperty(res, cacheCfg, varName, 'offHeapMaxMemory');
-    addProperty(res, cacheCfg, varName, 'swapEnabled');
-    addProperty(res, cacheCfg, varName, 'copyOnRead');
-
-    res.needEmptyLine = true;
-
-    createEvictionPolicy(res, cacheCfg.evictionPolicy, varName, 'evictionPolicy');
-
-    if (cacheCfg.nearCacheEnabled) {
-        res.needEmptyLine = true;
-
-        res.importClass('org.apache.ignite.configuration.NearCacheConfiguration');
-
-        addBeanWithProperties(res, cacheCfg.nearConfiguration, varName, 'nearConfiguration', 'nearConfiguration',
-            'NearCacheConfiguration', {nearStartSize: null}, true);
-
-        if (cacheCfg.nearConfiguration && cacheCfg.nearConfiguration.nearEvictionPolicy && cacheCfg.nearConfiguration.nearEvictionPolicy.kind) {
-            createEvictionPolicy(res, cacheCfg.nearConfiguration.nearEvictionPolicy, 'nearConfiguration', 'nearEvictionPolicy');
-        }
-    }
-
-    res.needEmptyLine = true;
-    
-    addProperty(res, cacheCfg, varName, 'sqlEscapeAll');
-    addProperty(res, cacheCfg, varName, 'sqlOnheapRowCacheSize');
-    addProperty(res, cacheCfg, varName, 'longQueryWarningTimeout');
-    
-    if (cacheCfg.indexedTypes && cacheCfg.indexedTypes.length > 0) {
-        res.emptyLineIfNeeded();
-        
-        res.append(varName + '.setIndexedTypes(');
-        
-        for (var i = 0; i < cacheCfg.indexedTypes.length; i++) {
-            if (i > 0)
-                res.append(', ');
-
-            var pair = cacheCfg.indexedTypes[i];
-            
-            res.append(toJavaCode(pair.keyClass, 'class')).append(', ').append(toJavaCode(pair.valueClass, 'class'))
-        }
-        
-        res.line(');');
-    }
-
-    addMultiparamProperty(res, cacheCfg, varName, 'sqlFunctionClasses', 'class');
-    
-    res.needEmptyLine = true;
-
-    addProperty(res, cacheCfg, varName, 'rebalanceMode', 'CacheRebalanceMode');
-    addProperty(res, cacheCfg, varName, 'rebalanceThreadPoolSize');
-    addProperty(res, cacheCfg, varName, 'rebalanceBatchSize');
-    addProperty(res, cacheCfg, varName, 'rebalanceOrder');
-    addProperty(res, cacheCfg, varName, 'rebalanceDelay');
-    addProperty(res, cacheCfg, varName, 'rebalanceTimeout');
-    addProperty(res, cacheCfg, varName, 'rebalanceThrottle');
-
-    res.needEmptyLine = true;
-    
-    if (cacheCfg.cacheStoreFactory && cacheCfg.cacheStoreFactory.kind) {
-        var storeFactory = cacheCfg.cacheStoreFactory[cacheCfg.cacheStoreFactory.kind];
-        var data = generatorUtils.storeFactories[cacheCfg.cacheStoreFactory.kind];
-
-        var sfVarName = 'storeFactory' + generatorUtils.toJavaName(cacheCfg.name);
-        var dsVarName = 'none';
-
-        if (storeFactory.dialect) {
-            var dataSourceBean = storeFactory.dataSourceBean;
-
-            dsVarName = 'dataSource' + generatorUtils.toJavaName(dataSourceBean);
-
-            if (!_.contains(res.datasourceBeans, dataSourceBean)) {
-                res.datasourceBeans.push(dataSourceBean);
-
-                var dataSource = generatorUtils.dataSources[storeFactory.dialect];
-
-                res.line();
-                res.line(dataSource.className + ' ' + dsVarName + ' = new ' + dataSource.className + '();');
-                res.line(dsVarName + '.setURL(_URL_);');
-                res.line(dsVarName + '.setUsername(_User_Name_);');
-                res.line(dsVarName + '.setPassword(_Password_);');
-            }
-        }
-
-        addBeanWithProperties(res, storeFactory, varName, 'cacheStoreFactory', sfVarName, data.className,
-            data.fields, true);
-
-        if (dsVarName != 'none')
-            res.line(sfVarName + '.setDataSource(' + dsVarName + ');');
-    }
-
-    res.needEmptyLine = true;
-
-    addProperty(res, cacheCfg, varName, 'loadPreviousValue');
-    addProperty(res, cacheCfg, varName, 'readThrough');
-    addProperty(res, cacheCfg, varName, 'writeThrough');
-
-    res.needEmptyLine = true;
-    
-    addProperty(res, cacheCfg, varName, 'invalidate');
-    addProperty(res, cacheCfg, varName, 'defaultLockTimeout');
-    addProperty(res, cacheCfg, varName, 'transactionManagerLookupClassName');
-    
-    res.needEmptyLine = true;
-    
-    addProperty(res, cacheCfg, varName, 'writeBehindEnabled');
-    addProperty(res, cacheCfg, varName, 'writeBehindBatchSize');
-    addProperty(res, cacheCfg, varName, 'writeBehindFlushSize');
-    addProperty(res, cacheCfg, varName, 'writeBehindFlushFrequency');
-    addProperty(res, cacheCfg, varName, 'writeBehindFlushThreadCount');
-    
-    res.needEmptyLine = true;
-
-    addProperty(res, cacheCfg, varName, 'statisticsEnabled');
-    addProperty(res, cacheCfg, varName, 'managementEnabled');
-
-    res.needEmptyLine = true;
-
-    addProperty(res, cacheCfg, varName, 'maxConcurrentAsyncOperations');
-    
-    return res;
-}
-
-function toJavaCode(val, type) {
-    if (val == null)
-       return 'null';
-
-    if (type == 'float')
-        return val + 'f';
-    
-    if (type == 'class')
-        return val + '.class';
-    
-    if (type)
-        return type + '.' + val;
-    
-    if (typeof(val) == 'string')
-        return '"' + val.replace('"', '\\"') + '"';
-
-    if (typeof(val) == 'number' || typeof(val) == 'boolean')
-        return '' + val;
-
-    throw "Unknown type: " + typeof(val) + ' (' + val + ')';
-}
-
-function addProperty(res, obj, objVariableName, propName, enumType, setterName) {
-    var val = obj[propName];
-    
-    if (generatorUtils.isDefined(val)) {
-        res.emptyLineIfNeeded();
-
-        res.line(objVariableName + '.' + getSetterName(setterName ? setterName : propName)
-            + '(' + toJavaCode(val, enumType)  + ');');
-    }
-}
-
-function getSetterName(propName) {
-    return 'set' + propName.charAt(0).toLocaleUpperCase() + propName.slice(1);
-}
-
-function addListProperty(res, obj, objVariableName, propName, enumType, setterName) {
-    var val = obj[propName];
-    
-    if (val && val.length > 0) {
-        res.append(objVariableName + '.' + getSetterName(setterName ? setterName : propName) + '(Arrays.asList(');
-
-        for (var i = 0; i < val.length; i++) {
-            if (i > 0)
-                res.append(', ');
-            
-            res.append(toJavaCode(val[i], enumType));
-        }
-        
-        res.line('));');
-    }
-}
-
-function addMultiparamProperty(res, obj, objVariableName, propName, type, setterName) {
-    var val = obj[propName];
-    
-    if (val && val.length > 0) {
-        res.append(objVariableName + '.' + getSetterName(setterName ? setterName : propName) + '(');
-
-        for (var i = 0; i < val.length; i++) {
-            if (i > 0)
-                res.append(', ');
-            
-            res.append(toJavaCode(val[i], type));
-        }
-        
-        res.line(');');
-    }
-}
-
-function addBeanWithProperties(res, bean, objVarName, beanPropName, beanVarName, beanClass, props, createBeanAlthoughNoProps) {
-    if (bean && generatorUtils.hasProperty(bean, props)) {
-        if (!res.emptyLineIfNeeded()) {
-            res.line();
-        }
-        
-        res.line(beanClass + ' ' + beanVarName + ' = new ' + beanClass + '();');
-
-        for (var propName in props) {
-            if (props.hasOwnProperty(propName)) {
-                var descr = props[propName];
-
-                if (descr) {
-                    switch (descr.type) {
-                        case 'list':
-                            addListProperty(res, bean, beanVarName, propName, descr.elementsType, descr.setterName);
-                            break;
-                        
-                        case 'enum':
-                            addProperty(res, bean, beanVarName, propName, descr.enumClass, descr.setterName);
-                            break;
-                        
-                        case 'float':
-                            addProperty(res, bean, beanVarName, propName, 'float', descr.setterName);
-                            break;
-                        
-                        case 'propertiesAsList':
-                            var val = bean[propName];
-                            
-                            if (val && val.length > 0) {
-                                res.line('Properties ' + descr.propVarName + ' = new Properties();');
-                                
-                                for (var i = 0; i < val.length; i++) {
-                                    var nameAndValue = val[i];
-                                    
-                                    var eqIndex = nameAndValue.indexOf('=');
-                                    if (eqIndex >= 0) {
-                                        res.line(descr.propVarName + '.setProperty(' 
-                                            + nameAndValue.substring(0, eqIndex) + ', ' 
-                                            + nameAndValue.substr(eqIndex + 1) + ');');
-                                    }
-
-                                }
-                                
-                                res.line(beanVarName + '.' + getSetterName(propName) + '(' + descr.propVarName + ');');
-                            }
-                            break;
-                        
-                        case 'className':
-                            if (bean[propName]) {
-                                res.line(beanVarName + '.' + getSetterName(propName) + '(new ' + generatorUtils.knownClasses[bean[propName]].className + '());');
-                            }
-
-                            break;
-                        
-                        default:
-                            addProperty(res, bean, beanVarName, propName, null, descr.setterName);
-                    }
-                }
-                else {
-                    addProperty(res, bean, beanVarName, propName);
-                }
-            }
-        }
-        
-        res.line(objVarName + '.' + getSetterName(beanPropName) + '(' + beanVarName + ');');
-        
-        res.needEmptyLine = true;
-    }
-    else if (createBeanAlthoughNoProps) {
-        res.emptyLineIfNeeded();
-        
-        res.line(objVarName + '.' + getSetterName(beanPropName) + '(new ' + beanClass + '());');
-    }
-}