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 2016/03/31 09:27:43 UTC

[05/14] ignite git commit: IGNITE-2755 Optimize gulp build tasks.

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.babel.js/index.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.babel.js/index.js b/modules/control-center-web/src/main/js/gulpfile.babel.js/index.js
new file mode 100644
index 0000000..f1c2e6a
--- /dev/null
+++ b/modules/control-center-web/src/main/js/gulpfile.babel.js/index.js
@@ -0,0 +1,29 @@
+/*
+ * 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.
+ */
+
+import gulp from 'gulp';
+import requireDir from 'require-dir';
+import sequence from 'gulp-sequence';
+
+// Require all tasks in gulpfile.js/tasks, including subfolders.
+requireDir('./tasks', { recurse: true });
+
+// Default no-arg task.
+gulp.task('default', ['build']);
+
+// Build + watch + connect task.
+gulp.task('watch', (cb) => sequence('build', 'connect', ['bundle:ignite:watch', 'sass:watch', 'jade:watch', 'copy:watch'], cb));

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.babel.js/paths.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.babel.js/paths.js b/modules/control-center-web/src/main/js/gulpfile.babel.js/paths.js
new file mode 100644
index 0000000..738d8f3
--- /dev/null
+++ b/modules/control-center-web/src/main/js/gulpfile.babel.js/paths.js
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+
+import path from 'path';
+
+const root = path.dirname(__dirname);
+
+const srcDir = path.join(root, 'app');
+const destDir = path.join(root, 'build');
+
+const igniteModulesDir = process.env.IGNITE_MODULES ? path.normalize(process.env.IGNITE_MODULES) : path.join(root, 'ignite_modules');
+const igniteModulesTemp = path.join(root, 'ignite_modules_temp');
+
+export {
+    root,
+    srcDir,
+    destDir,
+    igniteModulesDir,
+    igniteModulesTemp
+};

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/build.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/build.js b/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/build.js
new file mode 100644
index 0000000..8396400
--- /dev/null
+++ b/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/build.js
@@ -0,0 +1,21 @@
+/*
+ * 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.
+ */
+
+import gulp from 'gulp';
+import sequence from 'gulp-sequence';
+
+gulp.task('build', (cb) => sequence('clean', 'clean:ignite-modules-temp', 'ignite:modules', ['copy', 'jade', 'sass'], 'bundle', cb));

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/bundle.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/bundle.js b/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/bundle.js
new file mode 100644
index 0000000..cd9cd5f
--- /dev/null
+++ b/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/bundle.js
@@ -0,0 +1,75 @@
+/*
+ * 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.
+ */
+
+import gulp from 'gulp';
+import jspm from 'jspm';
+import util from 'gulp-util';
+import sequence from 'gulp-sequence';
+import htmlReplace from 'gulp-html-replace';
+
+import { srcDir, destDir, igniteModulesTemp } from '../paths';
+
+const paths = [
+    './app/**/*.js',
+    './app/**/*.jade',
+    './app/data/*.json'
+];
+
+const options = {
+    minify: true
+};
+
+gulp.task('bundle', ['eslint', 'bundle:ignite']);
+
+// Package all external dependencies and ignite-console.
+gulp.task('bundle:ignite', (cb) => {
+    if (util.env.debug)
+        delete options.minify;
+
+    if (util.env.debug || util.env.sourcemaps)
+        options.sourceMaps = true;
+
+    if (util.env.debug)
+        return sequence('bundle:ignite:vendors', 'bundle:ignite:app', cb);
+
+    return sequence('bundle:ignite:app-min', 'bundle:ignite:app-min:replace', cb);
+});
+
+gulp.task('bundle:ignite:watch', () =>
+    gulp.watch(paths, ['bundle:ignite:app'])
+);
+
+gulp.task('bundle:ignite:vendors', () =>
+    jspm.bundle(`${srcDir}/index - [${srcDir}/**/*] - [./controllers/**/*] - [./helpers/**/*] - [./public/**/*!css] - [${igniteModulesTemp}/**/*] - [${igniteModulesTemp}/**/*!jade]`, `${destDir}/vendors.js`, options)
+);
+
+gulp.task('bundle:ignite:app', () =>
+    jspm.bundle(`${srcDir}/index - ${destDir}/vendors`, `${destDir}/app.js`, options)
+);
+
+gulp.task('bundle:ignite:app-min', () =>
+    jspm.bundleSFX(`${srcDir}/index`, `${destDir}/app.min.js`, options)
+);
+
+gulp.task('bundle:ignite:app-min:replace', () =>
+    gulp.src('./build/index.html')
+        .pipe(htmlReplace({
+            css: 'app.min.css',
+            js: 'app.min.js'
+        }))
+        .pipe(gulp.dest('./build'))
+);

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/clean.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/clean.js b/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/clean.js
new file mode 100644
index 0000000..4c821e8
--- /dev/null
+++ b/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/clean.js
@@ -0,0 +1,35 @@
+/*
+ * 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.
+ */
+
+import gulp from 'gulp';
+import ignore from 'gulp-ignore';
+import clean from 'gulp-rimraf';
+
+import { destDir, igniteModulesTemp } from '../paths';
+
+// Clean build folder, remove files.
+gulp.task('clean', () =>
+    gulp.src(`${ destDir }/*`, {read: false})
+        .pipe(ignore('jspm_packages'))
+        .pipe(ignore('system.config.js'))
+        .pipe(clean({ force: true }))
+);
+
+gulp.task('clean:ignite-modules-temp', () =>
+    gulp.src(igniteModulesTemp, {read: false})
+        .pipe(clean({ force: true }))
+);

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/connect.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/connect.js b/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/connect.js
new file mode 100644
index 0000000..c7c9607
--- /dev/null
+++ b/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/connect.js
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+import gulp from 'gulp';
+import connect from 'gulp-connect';
+import modrewrite from 'connect-modrewrite';
+
+import { destDir } from '../paths';
+
+// Task run static server to local development.
+gulp.task('connect', () => {
+    connect.server({
+        port: 8090,
+        root: [ destDir ],
+        middleware() {
+            return [modrewrite([
+                '^/api/v1/(.*)$ http://localhost:3000/$1 [P]'
+            ])];
+        },
+        fallback: `${destDir}/index.html`
+    });
+});

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/copy.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/copy.js b/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/copy.js
new file mode 100644
index 0000000..1de54bb
--- /dev/null
+++ b/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/copy.js
@@ -0,0 +1,90 @@
+/*
+ * 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.
+ */
+
+import gulp from 'gulp';
+import util from 'gulp-util';
+import cache from 'gulp-cached';
+import sequence from 'gulp-sequence';
+
+import { destDir, igniteModulesDir, igniteModulesTemp } from '../paths';
+
+const paths = [
+    './app/**/**/*.js',
+    './controllers/*.js',
+    './controllers/**/*.js',
+    './helpers/*.js',
+    './helpers/**/*.js'
+];
+
+const resourcePaths = [
+    './controllers/**/*.json',
+    './public/**/*.png',
+    './public/*.ico'
+];
+
+const igniteModulePaths = [
+    igniteModulesTemp + '/**/main.js',
+    igniteModulesTemp + '/**/module.js',
+    igniteModulesTemp + '/**/app/modules/*.js',
+    igniteModulesTemp + '/**/app/modules/**/*.js',
+    igniteModulesTemp + '/**/controllers/*.js'
+];
+
+const igniteModuleResourcePaths = [
+    igniteModulesDir + '/**/controllers/models/*.json',
+    igniteModulesDir + '/**/images/*.png'
+];
+
+gulp.task('copy', function(cb) {
+    const tasks = ['copy:resource', 'copy:ignite_modules:resource'];
+
+    if (util.env.debug || util.env.sourcemaps) {
+        tasks.push('copy:js');
+
+        tasks.push('copy:ignite_modules:js');
+    }
+
+    return sequence(tasks, cb);
+});
+
+gulp.task('copy:js', () =>
+    gulp.src(paths, {base: './'})
+        .pipe(cache('copy:js'))
+        .pipe(gulp.dest(destDir))
+);
+
+gulp.task('copy:resource', () =>
+    gulp.src(resourcePaths)
+        .pipe(gulp.dest(destDir))
+);
+
+gulp.task('copy:ignite_modules:js', () =>
+    gulp.src(igniteModulePaths)
+        .pipe(cache('copy:ignite_modules:js'))
+        .pipe(gulp.dest(`${destDir}/${igniteModulesTemp}`))
+);
+
+gulp.task('copy:ignite_modules:resource', () =>
+    gulp.src(igniteModuleResourcePaths)
+        .pipe(gulp.dest(`${destDir}/ignite_modules`))
+);
+
+gulp.task('copy:watch', (cb) => {
+    gulp.watch([resourcePaths, igniteModuleResourcePaths], ['copy:resource', 'copy:ignite_modules:resource']);
+
+    gulp.watch([paths, igniteModulePaths], sequence('copy:js', 'copy:ignite_modules:js', cb));
+});

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/eslint.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/eslint.js b/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/eslint.js
new file mode 100644
index 0000000..cb49c64
--- /dev/null
+++ b/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/eslint.js
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+
+import gulp from 'gulp';
+import cache from 'gulp-cached';
+import eslint from 'gulp-eslint';
+import sequence from 'gulp-sequence';
+
+const paths = [
+    './app/**/*.js',
+    './gulpfile.babel.js/**/*.js',
+    './gulpfile.babel.js/*.js'
+];
+
+gulp.task('eslint:node', () =>
+	gulp.src('./serve/**/*.js')
+        .pipe(cache('eslint:node'))
+		.pipe(eslint({envs: ['node']}))
+		.pipe(eslint.format())
+);
+
+gulp.task('eslint:browser', () =>
+	gulp.src(paths)
+        .pipe(cache('eslint:browser'))
+		.pipe(eslint({envs: ['browser']}))
+		.pipe(eslint.format())
+);
+
+gulp.task('eslint', (cb) => sequence('eslint:browser', 'eslint:node', cb));

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/ignite-modules.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/ignite-modules.js b/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/ignite-modules.js
new file mode 100644
index 0000000..2281683
--- /dev/null
+++ b/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/ignite-modules.js
@@ -0,0 +1,61 @@
+/*
+ * 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.
+ */
+
+import gulp from 'gulp';
+import inject from 'gulp-inject';
+import clean from 'gulp-rimraf';
+import sequence from 'gulp-sequence';
+
+import { igniteModulesDir, igniteModulesTemp } from '../paths';
+
+const igniteModulePaths = [
+    igniteModulesDir + '/**/*.js',
+    igniteModulesDir + '/**/*.jade'
+];
+
+gulp.task('ignite:modules', (cb) => sequence('ignite:modules:copy', 'ignite:modules:inject', cb));
+
+gulp.task('ignite:modules:copy', () =>
+    gulp.src(igniteModulePaths)
+        .pipe(gulp.dest(igniteModulesTemp))
+);
+
+gulp.task('ignite:modules:inject', () =>
+    gulp.src(`${igniteModulesTemp}/index.js`)
+        .pipe(inject(gulp.src([`${igniteModulesTemp}/**/main.js`]), {
+            starttag: '/* ignite:modules */',
+            endtag: '/* endignite */',
+            transform: (filePath) => {
+                const igniteModuleName = filePath.replace(/.*ignite_modules_temp\/([^\/]+).*/mgi, '$1');
+
+                // return file contents as string
+                return `import './${igniteModuleName}/main';`;
+            }
+        }))
+        .pipe(inject(gulp.src([`${igniteModulesTemp}/**/main.js`]), {
+            starttag: '/* ignite-console:modules */',
+            endtag: '/* endignite */',
+            transform: (filePath, file, i) => {
+                const igniteModuleName = filePath.replace(/.*ignite_modules_temp\/([^\/]+).*/mgi, '$1');
+
+                // return file contents as string
+                return (i ? ',' : '') + `'ignite-console.${igniteModuleName}'`;
+            }
+        }))
+        .pipe(clean({ force: true }))
+        .pipe(gulp.dest(igniteModulesTemp))
+);

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/jade.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/jade.js b/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/jade.js
new file mode 100644
index 0000000..e203fc4
--- /dev/null
+++ b/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/jade.js
@@ -0,0 +1,54 @@
+/*
+ * 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.
+ */
+
+import gulp from 'gulp';
+import gulpJade from 'gulp-jade';
+import sequence from 'gulp-sequence';
+
+import { igniteModulesDir, destDir } from '../paths';
+
+const paths = [
+    '!./views/error.jade',
+    './views/*.jade',
+    './views/**/*.jade'
+];
+
+const igniteModulePaths = [
+    igniteModulesDir + '/**/view/**/*.jade'
+];
+
+const jadeOptions = {
+    basedir: './'
+};
+
+gulp.task('jade', (cb) => sequence('jade:source', 'jade:ignite_modules', cb));
+
+gulp.task('jade:source', () =>
+    gulp.src(paths)
+        .pipe(gulpJade(jadeOptions))
+        .pipe(gulp.dest('./build'))
+);
+
+gulp.task('jade:ignite_modules', () =>
+    gulp.src(igniteModulePaths)
+        .pipe(gulpJade(jadeOptions))
+        .pipe(gulp.dest(`${destDir}/ignite_modules`))
+);
+
+gulp.task('jade:watch', (cb) =>
+    gulp.watch([igniteModulePaths, paths], () => sequence('jade', 'inject:plugins:html', cb))
+);

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/sass.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/sass.js b/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/sass.js
new file mode 100644
index 0000000..bd671b9
--- /dev/null
+++ b/modules/control-center-web/src/main/js/gulpfile.babel.js/tasks/sass.js
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+
+import gulp from 'gulp';
+import sequence from 'gulp-sequence';
+import sass from 'gulp-sass';
+
+const paths = [
+    './public/stylesheets/style.scss'
+];
+
+gulp.task('sass', () =>
+    gulp.src(paths)
+        .pipe(sass({ outputStyle: 'nested' }).on('error', sass.logError))
+        .pipe(gulp.dest('./public/stylesheets'))
+);
+
+gulp.task('sass:watch', (cb) =>
+    gulp.watch(paths, () => sequence('sass', 'bundle', cb))
+);

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.js/index.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.js/index.js b/modules/control-center-web/src/main/js/gulpfile.js/index.js
deleted file mode 100644
index cf287e5..0000000
--- a/modules/control-center-web/src/main/js/gulpfile.js/index.js
+++ /dev/null
@@ -1,31 +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 gulp = require('gulp');
-var requireDir = require('require-dir');
-var sequence = require('gulp-sequence');
-
-// Require all tasks in gulpfile.js/tasks, including subfolders.
-requireDir('./tasks', { recurse: true });
-
-// Default no-arg task.
-gulp.task('default', ['build']);
-
-// Build + watch + connect task.
-gulp.task('watch', function (cb) {
-    return sequence('build', 'connect', ['bundle:ignite:watch', 'bundle:legacy:watch', 'sass:watch', 'jade:watch', 'copy:watch'])(cb);
-});

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.js/tasks/build.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.js/tasks/build.js b/modules/control-center-web/src/main/js/gulpfile.js/tasks/build.js
deleted file mode 100644
index 195bdf4..0000000
--- a/modules/control-center-web/src/main/js/gulpfile.js/tasks/build.js
+++ /dev/null
@@ -1,23 +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 gulp = require('gulp');
-var sequence = require('gulp-sequence');
-
-gulp.task('build', function(cb) {
-    return sequence('clean', ['copy', 'jade', 'sass'], 'bundle', 'inject:plugins', cb);
-});

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.js/tasks/bundle.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.js/tasks/bundle.js b/modules/control-center-web/src/main/js/gulpfile.js/tasks/bundle.js
deleted file mode 100644
index ce15b34..0000000
--- a/modules/control-center-web/src/main/js/gulpfile.js/tasks/bundle.js
+++ /dev/null
@@ -1,68 +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 gulp = require('gulp');
-var jspm = require('jspm');
-var util = require('gulp-util');
-var concat = require('gulp-concat');
-var sequence = require('gulp-sequence');
-
-var paths = [
-	'./app/**/*.js',
-	'./app/**/*.jade',
-	'./app/data/*.json'
-];
-
-var legacy_paths = [
-	'!./controllers/common-module.js',
-	'./controllers/*.js',
-	'./controllers/**/*.js',
-	'./helpers/generator/*.js',
-	'./helpers/generator/**/*.js'
-];
-
-var options = {
-	minify: true
-};
-
-gulp.task('bundle', ['eslint', 'bundle:ignite', 'bundle:legacy']);
-
-// Package all external dependencies and ignite-console.
-gulp.task('bundle:ignite', function() {
-	if (util.env.debug)
-		delete options.minify;
-
-	if (util.env.debug || util.env.sourcemaps)
-		options.sourceMaps = true;
-
-	return jspm.bundleSFX('app/index', 'build/app.min.js', options);
-});
-
-// Package controllers and generators.
-gulp.task('bundle:legacy', function() {
-	return gulp.src(legacy_paths)
-		.pipe(concat('all.js'))
-		.pipe(gulp.dest('./build'));
-});
-
-gulp.task('bundle:ignite:watch', function() {
-	return gulp.watch(paths, ['bundle:ignite']);
-});
-
-gulp.task('bundle:legacy:watch', function() {
-    return gulp.watch(legacy_paths, ['bundle:legacy']);
-});

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.js/tasks/clean.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.js/tasks/clean.js b/modules/control-center-web/src/main/js/gulpfile.js/tasks/clean.js
deleted file mode 100644
index 86cffae..0000000
--- a/modules/control-center-web/src/main/js/gulpfile.js/tasks/clean.js
+++ /dev/null
@@ -1,24 +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 gulp = require('gulp');
-var clean = require('gulp-rimraf');
-
-// Remove build folder.
-gulp.task('clean', function() {
-    return gulp.src('./build', {read: false}).pipe(clean());
-});

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.js/tasks/connect.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.js/tasks/connect.js b/modules/control-center-web/src/main/js/gulpfile.js/tasks/connect.js
deleted file mode 100644
index d5ee738..0000000
--- a/modules/control-center-web/src/main/js/gulpfile.js/tasks/connect.js
+++ /dev/null
@@ -1,39 +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.
- */
-
-// task run static server to local development
-
-var gulp = require('gulp');
-var connect = require('gulp-connect');
-var modrewrite = require('connect-modrewrite');
-
-var options = {
-    livereload: true,
-	port: 8090,
-	root: './build',
-	middleware: function (connect, opt) {
-		return [modrewrite([
-			'^/api/v1/(.*)$ http://localhost:3000/$1 [P]' 
-		])];
-    },
-    fallback: './build/index.html'
-};
-
-// task run static server to local development
-gulp.task('connect', function() {
-	connect.server(options);
-});

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.js/tasks/copy.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.js/tasks/copy.js b/modules/control-center-web/src/main/js/gulpfile.js/tasks/copy.js
deleted file mode 100644
index 3caa82f..0000000
--- a/modules/control-center-web/src/main/js/gulpfile.js/tasks/copy.js
+++ /dev/null
@@ -1,100 +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 gulp = require('gulp');
-var util = require('gulp-util');
-var sequence = require('gulp-sequence');
-
-var igniteModules = process.env.IGNITE_MODULES || './ignite_modules';
-
-var paths = [
-    './app/**/**/*.js'
-];
-
-var cssPaths = [
-    'jspm_packages/**/nvd3@*/build/nv.d3.css',
-    'jspm_packages/**/angular-tree-control@*/css/*.css',
-    'jspm_packages/**/ag-grid@*/dist/ag-grid.css',
-    'jspm_packages/**/angular-loading@*/angular-loading.css',
-    'jspm_packages/**/angular-motion@*/dist/angular-motion.css'
-];
-
-var legacyPaths = [
-    './controllers/*.js',
-    './controllers/**/*.js',
-    './controllers/**/*.json',
-    './helpers/*.js',
-    './helpers/**/*.js',
-    './public/**/*.png',
-    './public/*.ico'
-];
-
-var igniteModulePaths = [
-    igniteModules + '/**/main.js',
-    igniteModules + '/**/app/modules/*.js',
-    igniteModules + '/**/app/modules/**/*.js',
-    igniteModules + '/**/controllers/*.js',
-    igniteModules + '/**/controllers/models/*.json',
-    igniteModules + '/**/images/*.png'
-];
-
-gulp.task('copy', function(cb) {
-    var tasks = ['copy:legacy', 'copy:font-awesome', 'copy:ui-grid', 'copy:ignite_modules'];
-
-    if (util.env.debug || util.env.sourcemaps) {
-        tasks.push('copy:css');
-
-        tasks.push('copy:base');
-    }
-
-    return sequence(tasks)(cb);
-});
-
-gulp.task('copy:base', function(cb) {
-    return gulp.src(paths, {base: './'}).pipe(gulp.dest('./build'));
-});
-
-gulp.task('copy:legacy', function(cb) {
-    return gulp.src(legacyPaths).pipe(gulp.dest('./build'));
-});
-
-gulp.task('copy:css', function(cb) {
-    return gulp.src(cssPaths, {base: './'}).pipe(gulp.dest('./build'));
-});
-
-gulp.task('copy:font-awesome', function(cb) {
-    return gulp.src('./node_modules/font-awesome/fonts/*', {base: './node_modules/font-awesome'}).pipe(gulp.dest('./build'));
-});
-
-gulp.task('copy:ui-grid', function(cb) {
-    return gulp.src(['jspm_packages/**/*-ui-grid@*/*.woff',
-        'jspm_packages/**/*-ui-grid@*/*.svg',
-        'jspm_packages/**/*-ui-grid@*/*.ttf',
-        'jspm_packages/**/*-ui-grid@*/*.eot'], {base: './'}).pipe(gulp.dest('./build'));
-});
-
-gulp.task('copy:ignite_modules', function(cb) {
-    return gulp.src(igniteModulePaths).pipe(gulp.dest('./build/ignite_modules'));
-});
-
-gulp.task('copy:watch', function(cb) {
-    gulp.watch([legacyPaths, igniteModulePaths], function(glob) {
-        sequence(['copy:base', 'copy:legacy', 'copy:ignite_modules'], 'inject:plugins:js')(cb);
-    });
-
-    gulp.watch(paths, ['copy:base']);
-});

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.js/tasks/eslint.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.js/tasks/eslint.js b/modules/control-center-web/src/main/js/gulpfile.js/tasks/eslint.js
deleted file mode 100644
index cddde1a..0000000
--- a/modules/control-center-web/src/main/js/gulpfile.js/tasks/eslint.js
+++ /dev/null
@@ -1,44 +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 gulp = require('gulp');
-var cache = require('gulp-cached');
-var sequence = require('gulp-sequence');
-
-var eslint = require('gulp-eslint');
-
-var paths = [
-    './app/**/*.js'
-];
-
-gulp.task('eslint:node', function() {
-	return gulp.src('./serve/**/*.js')
-        .pipe(cache('eslint:node'))
-		.pipe(eslint({envs: ['node']}))
-		.pipe(eslint.format());
-});
-
-gulp.task('eslint:browser', function() {
-	return gulp.src(paths)
-        .pipe(cache('eslint:browser'))
-		.pipe(eslint({envs: ['browser']}))
-		.pipe(eslint.format());
-});
-
-gulp.task('eslint', function(cb) {
-	return sequence('eslint:browser', 'eslint:node')(cb);
-});

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.js/tasks/inject-plugins.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.js/tasks/inject-plugins.js b/modules/control-center-web/src/main/js/gulpfile.js/tasks/inject-plugins.js
deleted file mode 100644
index bdac24c..0000000
--- a/modules/control-center-web/src/main/js/gulpfile.js/tasks/inject-plugins.js
+++ /dev/null
@@ -1,70 +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 gulp = require('gulp');
-var inject = require('gulp-inject');
-
-var common_options = {
-    read: false
-};
-
-var html_targets = [
-    './build/index.html'
-];
-
-var js_targets = [
-    './build/common-module.js'
-];
-
-var js_sources = [
-    './build/ignite_modules/**/main.js'
-];
-
-var html_sources = [
-    './build/ignite_modules/**/main.js',
-    './build/ignite_modules/**/app/modules/*.js',
-    './build/ignite_modules/**/app/modules/*.js',
-    './build/ignite_modules/**/app/modules/**/*.js'
-];
-
-gulp.task('inject:plugins:html', function() {
-    gulp.src(html_targets)
-        .pipe(inject(gulp.src(html_sources, common_options), {
-            starttag: '<!-- ignite:plugins-->',
-            endtag: '<!-- endignite-->',
-            transform: function (filePath, file, i, length) {
-                // return file contents as string
-                return '<script src="' + filePath.replace(/\/build(.*)/mgi, '$1') + '"></script>';
-            }
-        }))
-        .pipe(gulp.dest('./build'));
-});
-
-gulp.task('inject:plugins:js', function() {
-    gulp.src(js_targets)
-        .pipe(inject(gulp.src(js_sources, common_options), {
-            starttag: '/* ignite:plugins */',
-            endtag: ' /* endignite */',
-                transform: function (filePath, file, i, length) {
-                // return file contents as string
-                return ", 'ignite-console." + filePath.replace(/.*ignite_modules\/([^\/]+).*/mgi, '$1') + "'";
-            }
-        }))
-        .pipe(gulp.dest('./build'));
-});
-
-gulp.task('inject:plugins', ['inject:plugins:html', 'inject:plugins:js']);

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.js/tasks/jade.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.js/tasks/jade.js b/modules/control-center-web/src/main/js/gulpfile.js/tasks/jade.js
deleted file mode 100644
index 58a9bf5..0000000
--- a/modules/control-center-web/src/main/js/gulpfile.js/tasks/jade.js
+++ /dev/null
@@ -1,56 +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 gulp = require('gulp');
-var gulpJade = require('gulp-jade');
-var sequence = require('gulp-sequence');
-
-var igniteModules = process.env.IGNITE_MODULES || './ignite_modules';
-
-var paths = [
-    '!./views/error.jade',
-    './views/*.jade',
-    './views/**/*.jade'
-];
-
-var igniteModulePaths = [
-    igniteModules + '/**/view/**/*.jade'
-];
-
-var jadeOptions = {
-    basedir: './'
-};
-
-gulp.task('jade', function(cb) {
-    return sequence('jade:source', 'jade:ignite_modules')(cb)
-});
-
-gulp.task('jade:source', function (cb) {
-    return gulp.src(paths).pipe(gulpJade(jadeOptions)).pipe(gulp.dest('./build'));
-});
-
-gulp.task('jade:ignite_modules', function (cb) {
-    return gulp.src(igniteModulePaths)
-        .pipe(gulpJade(jadeOptions))
-        .pipe(gulp.dest('./build/ignite_modules'));
-});
-
-gulp.task('jade:watch', function (cb) {
-    return gulp.watch([igniteModulePaths, paths], function(glob) {
-        sequence('jade', 'inject:plugins:html')(cb)
-    });
-});

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.js/tasks/production.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.js/tasks/production.js b/modules/control-center-web/src/main/js/gulpfile.js/tasks/production.js
deleted file mode 100644
index e682bcd..0000000
--- a/modules/control-center-web/src/main/js/gulpfile.js/tasks/production.js
+++ /dev/null
@@ -1,28 +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 gulp = require('gulp');
-var sequence = require('gulp-sequence');
-var environments = require('gulp-environments');
-
-var production = environments.production;
-
-gulp.task('set-prod', production.task);
-
-gulp.task('production', function(cb) {
-	sequence('set-prod', 'build', cb)
-});

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/gulpfile.js/tasks/sass.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.js/tasks/sass.js b/modules/control-center-web/src/main/js/gulpfile.js/tasks/sass.js
deleted file mode 100644
index d50a91d..0000000
--- a/modules/control-center-web/src/main/js/gulpfile.js/tasks/sass.js
+++ /dev/null
@@ -1,36 +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 gulp = require('gulp');
-var gulpSequence = require('gulp-sequence');
-var sass = require('gulp-sass');
-
-var paths = [
-    './public/stylesheets/style.scss'
-];
-
-gulp.task('sass', function () {
-    return gulp.src(paths)
-        .pipe(sass({ outputStyle: 'nested' }).on('error', sass.logError))
-        .pipe(gulp.dest('./public/stylesheets'));
-});
-
-gulp.task('sass:watch', function (cb) {
-    gulp.watch(paths, function(glob) {
-        gulpSequence('sass', 'bundle')(cb)
-    });
-});

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/helpers/common-utils.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/common-utils.js b/modules/control-center-web/src/main/js/helpers/common-utils.js
index f1d46fa..fb87c07 100644
--- a/modules/control-center-web/src/main/js/helpers/common-utils.js
+++ b/modules/control-center-web/src/main/js/helpers/common-utils.js
@@ -16,7 +16,7 @@
  */
 
 // Entry point for common utils.
-$commonUtils = {};
+const $commonUtils = {};
 
 /**
  * @param v Value to check.
@@ -113,7 +113,4 @@ $commonUtils.randomString = function (len) {
     return res;
 };
 
-// For server side we should export Java code generation entry point.
-if (typeof window === 'undefined') {
-    module.exports = $commonUtils;
-}
+export default $commonUtils;

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/helpers/data-structures.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/data-structures.js b/modules/control-center-web/src/main/js/helpers/data-structures.js
index c106acf..8959531 100644
--- a/modules/control-center-web/src/main/js/helpers/data-structures.js
+++ b/modules/control-center-web/src/main/js/helpers/data-structures.js
@@ -16,7 +16,7 @@
  */
 
 // Entry point for common data structures.
-$dataStructures = {};
+const $dataStructures = {};
 
 // Java build-in primitive.
 $dataStructures.JAVA_BUILD_IN_PRIMITIVES = ['boolean', 'byte', 'double', 'float', 'int', 'long', 'short'];
@@ -81,3 +81,5 @@ $dataStructures.fullClassName = function (clsName) {
 
     return clsName;
 };
+
+export default $dataStructures;

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-common.js b/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
index 227ef81..822be52 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
@@ -16,7 +16,7 @@
  */
 
 // Entry point for common functions for code generation.
-$generatorCommon = {};
+const $generatorCommon = {};
 
 // Add leading zero.
 $generatorCommon.addLeadingZero = function (numberStr, minSize) {
@@ -524,3 +524,5 @@ $generatorCommon.dataForExampleConfigured = function(cluster) {
         return _.find(cache.domains, {demo: true});
     }));
 };
+
+export default $generatorCommon;

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/helpers/generator/generator-docker.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-docker.js b/modules/control-center-web/src/main/js/helpers/generator/generator-docker.js
index 7e9721c..50a9923 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-docker.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-docker.js
@@ -16,7 +16,7 @@
  */
 
 // Docker file generation entry point.
-$generatorDocker = {};
+const $generatorDocker = {};
 
 // Generate from
 $generatorDocker.from = function(cluster, version) {
@@ -50,3 +50,5 @@ $generatorDocker.ignoreFile = function() {
     return 'target\n' +
             'Dockerfile';
 };
+
+export default $generatorDocker;

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
index bcf12ce..98f418a 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
@@ -16,7 +16,7 @@
  */
 
 // Java generation entry point.
-$generatorJava = {};
+const $generatorJava = {};
 
 /**
  * Translate some value to valid java code.
@@ -3142,3 +3142,5 @@ $generatorJava.nodeStartup = function (cluster, pkg, cls, cfg, factoryCls, clien
 
     return 'package ' + pkg + ';\n\n' + res.generateImports() + '\n\n' + res.generateStaticImports() + '\n\n' + res.asString();
 };
+
+export default $generatorJava;

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/helpers/generator/generator-optional.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-optional.js b/modules/control-center-web/src/main/js/helpers/generator/generator-optional.js
index ad0d938..0e23f59 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-optional.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-optional.js
@@ -16,8 +16,10 @@
  */
 
 // Optional content generation entry point.
-$generatorOptional = {};
+const $generatorOptional = {};
 
 $generatorOptional.optionalContent = function (zip, cluster) {
     // No-op.
 };
+
+export default $generatorOptional;

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/helpers/generator/generator-pom.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-pom.js b/modules/control-center-web/src/main/js/helpers/generator/generator-pom.js
index f7bcf92..d653eb1 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-pom.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-pom.js
@@ -16,7 +16,7 @@
  */
 
 // pom.xml generation entry point.
-$generatorPom = {};
+const $generatorPom = {};
 
 $generatorPom.escapeId = function (s) {
     if (typeof(s) !== 'string')
@@ -250,3 +250,5 @@ $generatorPom.pom = function (cluster, igniteVersion, mvnRepositories, res) {
 
     return res;
 };
+
+export default $generatorPom;

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/helpers/generator/generator-properties.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-properties.js b/modules/control-center-web/src/main/js/helpers/generator/generator-properties.js
index cf971da..cedc5a2 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-properties.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-properties.js
@@ -16,7 +16,7 @@
  */
 
 // Properties generation entry point.
-$generatorProperties = {};
+const $generatorProperties = {};
 
 $generatorProperties.jdbcUrlTemplate = function(dialect) {
     switch (dialect) {
@@ -151,3 +151,5 @@ $generatorProperties.generateProperties = function (cluster, res) {
 
     return res;
 };
+
+export default $generatorProperties;

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/helpers/generator/generator-readme.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-readme.js b/modules/control-center-web/src/main/js/helpers/generator/generator-readme.js
index a204bf9..c4e2f81 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-readme.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-readme.js
@@ -16,7 +16,7 @@
  */
 
 // README.txt generation entry point.
-$generatorReadme = {};
+const $generatorReadme = {};
 
 $generatorReadme.generatedBy = function (res) {
     res.line('Content of this folder was generated by Apache Ignite Web Console');
@@ -81,3 +81,5 @@ $generatorReadme.readmeJdbc = function (res) {
 
     return res;
 };
+
+export default $generatorReadme;

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js b/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
index 64c5bd5..e78b116 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
@@ -16,7 +16,7 @@
  */
 
 // XML generation entry point.
-$generatorXml = {};
+const $generatorXml = {};
 
 // Do XML escape.
 $generatorXml.escape = function (s) {
@@ -1757,3 +1757,5 @@ $generatorXml.cluster = function (cluster, clientNearCfg) {
 
     return '';
 };
+
+export default $generatorXml;

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/ignite_modules/index.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/ignite_modules/index.js b/modules/control-center-web/src/main/js/ignite_modules/index.js
new file mode 100644
index 0000000..1f0babb
--- /dev/null
+++ b/modules/control-center-web/src/main/js/ignite_modules/index.js
@@ -0,0 +1,10 @@
+import angular from 'angular';
+
+/* ignite:modules */
+/* endignite */
+
+angular
+.module('ignite-console.modules', [
+    /* ignite-console:modules */
+    /* endignite */
+]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/package.json
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/package.json b/modules/control-center-web/src/main/js/package.json
index a160801..691b933 100644
--- a/modules/control-center-web/src/main/js/package.json
+++ b/modules/control-center-web/src/main/js/package.json
@@ -22,31 +22,15 @@
   },
   "dependencies": {
     "async": "1.5.2",
-    "babel-eslint": "^6.0.0-beta.6",
     "body-parser": "^1.15.0",
     "bootstrap-sass": "^3.3.6",
     "connect-modrewrite": "^0.9.0",
     "connect-mongo": "^1.1.0",
     "cookie-parser": "~1.4.0",
     "debug": "~2.2.0",
-    "ejs": "^2.3.4",
     "express": "~4.13.3",
-    "express-force-ssl": "^0.3.0",
     "express-session": "^1.12.0",
     "fire-up": "^0.4.4",
-    "font-awesome": "^4.4.0",
-    "gulp": "^3.9.0",
-    "gulp-cached": "^1.1.0",
-    "gulp-concat": "^2.6.0",
-    "gulp-connect": "^3.2.0",
-    "gulp-environments": "^0.1.1",
-    "gulp-eslint": "^2.0.0",
-    "gulp-inject": "^4.0.0",
-    "gulp-jade": "^1.1.0",
-    "gulp-rimraf": "^0.2.0",
-    "gulp-sass": "^2.1.0",
-    "gulp-sequence": "^0.4.1",
-    "gulp-util": "^3.0.7",
     "jade": "~1.11.0",
     "jszip": "^2.5.0",
     "lodash": "^4.0.0",
@@ -63,15 +47,36 @@
     "ws": "^0.8.0"
   },
   "devDependencies": {
+    "babel-core": "^6.7.2",
+    "babel-eslint": "^6.0.0-beta.6",
+    "babel-preset-es2015": "^6.6.0",
+    "babel-register": "^6.7.2",
+    "gulp": "^3.9.0",
+    "gulp-cached": "^1.1.0",
+    "gulp-connect": "^3.2.0",
+    "gulp-environments": "^0.1.1",
+    "gulp-eslint": "^2.0.0",
+    "gulp-html-replace": "^1.5.5",
+    "gulp-ignore": "^2.0.1",
+    "gulp-inject": "^4.0.0",
+    "gulp-jade": "^1.1.0",
+    "gulp-rimraf": "^0.2.0",
+    "gulp-sass": "^2.1.0",
+    "gulp-sequence": "^0.4.1",
+    "gulp-util": "^3.0.7",
     "jspm": "^0.16.31",
-    "mocha": "^2.4.5",
-    "morgan": "^1.6.1",
-    "should": "^8.2.2",
+    "mocha": "~2.4.5",
+    "morgan": "~1.6.1",
+    "should": "~8.2.2",
     "supertest": "^1.1.0"
   },
   "jspm": {
+    "directories": {
+      "packages": "build/jspm_packages"
+    },
+    "configFile": "build/system.config.js",
     "dependencies": {
-      "ace": "github:ajaxorg/ace-builds@^1.2.2",
+      "ace": "github:ajaxorg/ace-builds@1.2.3",
       "angular": "github:angular/bower-angular@^1.5.0",
       "angular-animate": "github:angular/bower-angular-animate@^1.5.0",
       "angular-drag-and-drop-lists": "github:marceljuenemann/angular-drag-and-drop-lists@^1.3.0",
@@ -91,7 +96,7 @@
       "bootstrap-carousel": "github:twbs/bootstrap@^3.3.6",
       "css": "github:systemjs/plugin-css@^0.1.20",
       "file-saver": "github:eligrey/FileSaver.js@master",
-      "font-awesome": "npm:font-awesome@^4.4.0",
+      "font-awesome": "npm:font-awesome@4.5.0",
       "jade": "github:johnsoftek/plugin-jade@^0.6.0",
       "jquery": "github:components/jquery@^2.1.4",
       "json": "github:systemjs/plugin-json@^0.1.0",
@@ -165,7 +170,8 @@
           "dist/angular-nvd3": {
             "deps": [
               "d3",
-              "nvd3"
+              "nvd3",
+              "nvd3/build/nv.d3.css!"
             ]
           }
         }
@@ -173,7 +179,7 @@
       "github:components/jquery@2.1.4": {
         "format": "global"
       },
-      "github:ajaxorg/ace-builds@1.2.2": {
+      "github:ajaxorg/ace-builds@1.2.3": {
         "format": "global",
         "main": "theme-chrome",
         "shim": {

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/public/stylesheets/_font-awesome-custom.scss
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/public/stylesheets/_font-awesome-custom.scss b/modules/control-center-web/src/main/js/public/stylesheets/_font-awesome-custom.scss
index 8c041de..6ce9550 100644
--- a/modules/control-center-web/src/main/js/public/stylesheets/_font-awesome-custom.scss
+++ b/modules/control-center-web/src/main/js/public/stylesheets/_font-awesome-custom.scss
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-@import "../../node_modules/font-awesome/scss/variables";
-$fa-font-path: "/fonts";
+@import "../../build/jspm_packages/npm/font-awesome@4.5.0/scss/variables";
+$fa-font-path: "/jspm_packages/npm/font-awesome@4.5.0/fonts";
 
-@import "../../node_modules/font-awesome/scss/mixins";
-@import "../../node_modules/font-awesome/scss/path";
-@import "../../node_modules/font-awesome/scss/core";
-@import "../../node_modules/font-awesome/scss/larger";
-@import "../../node_modules/font-awesome/scss/fixed-width";
-@import "../../node_modules/font-awesome/scss/list";
-@import "../../node_modules/font-awesome/scss/bordered-pulled";
-@import "../../node_modules/font-awesome/scss/animated";
-@import "../../node_modules/font-awesome/scss/rotated-flipped";
-@import "../../node_modules/font-awesome/scss/stacked";
-@import "../../node_modules/font-awesome/scss/icons";
+@import "../../build/jspm_packages/npm/font-awesome@4.5.0/scss/mixins";
+@import "../../build/jspm_packages/npm/font-awesome@4.5.0/scss/path";
+@import "../../build/jspm_packages/npm/font-awesome@4.5.0/scss/core";
+@import "../../build/jspm_packages/npm/font-awesome@4.5.0/scss/larger";
+@import "../../build/jspm_packages/npm/font-awesome@4.5.0/scss/fixed-width";
+@import "../../build/jspm_packages/npm/font-awesome@4.5.0/scss/list";
+@import "../../build/jspm_packages/npm/font-awesome@4.5.0/scss/bordered-pulled";
+@import "../../build/jspm_packages/npm/font-awesome@4.5.0/scss/animated";
+@import "../../build/jspm_packages/npm/font-awesome@4.5.0/scss/rotated-flipped";
+@import "../../build/jspm_packages/npm/font-awesome@4.5.0/scss/stacked";
+@import "../../build/jspm_packages/npm/font-awesome@4.5.0/scss/icons";

http://git-wip-us.apache.org/repos/asf/ignite/blob/2b0ddb51/modules/control-center-web/src/main/js/views/index.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/index.jade b/modules/control-center-web/src/main/js/views/index.jade
index c62fb1b..37c49ad 100644
--- a/modules/control-center-web/src/main/js/views/index.jade
+++ b/modules/control-center-web/src/main/js/views/index.jade
@@ -15,7 +15,7 @@
     limitations under the License.
 
 doctype html
-html(ng-app='ignite-web-console' id='app')
+html(ng-app='ignite-console' id='app' ng-strict-di)
     head
         base(href='/')
         link(rel='shortcut icon' href='favicon.ico')
@@ -30,14 +30,18 @@ html(ng-app='ignite-web-console' id='app')
         meta(name='keywords' content='{{$meta.keywords}}')
         meta(ng-repeat='(key, value) in $meta.properties' name='{{::key}}' content='{{::value}}')
 
-        link(rel='stylesheet', href='/app.min.css')
-
-        script(src='/common-utils.js')
-        script(src='/app.min.js')
-
-        script(src='/common-module.js')
-        script(src='/data-structures.js')
-        script(src='/all.js')
+        // build:css
+        link(rel='stylesheet', href='/vendors.css')
+        link(rel='stylesheet', href='/app.css')
+        // endbuild
+
+        // build:js
+        script(src='jspm_packages/system.js')
+        script(src='system.config.js')
+        script(src='vendors.js')
+        script(src='app.js')
+        script System.import('app/index');
+        // endbuild
 
         // ignite:plugins
         // endignite