You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by yz...@apache.org on 2017/10/13 17:42:56 UTC
[11/50] [abbrv] ignite git commit: IGNITE-6435 Web Console: Added
version to footer. (cherry picked from commit 3c75184)
IGNITE-6435 Web Console: Added version to footer.
(cherry picked from commit 3c75184)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/4e38b792
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/4e38b792
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/4e38b792
Branch: refs/heads/ignite-2.1.5-p1
Commit: 4e38b792517ff182391b78821937db57353a7388
Parents: 668e29f
Author: Dmitriy Shabalin <ds...@gridgain.com>
Authored: Wed Sep 20 19:00:09 2017 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Wed Sep 20 19:01:58 2017 +0700
----------------------------------------------------------------------
modules/web-console/frontend/app/app.js | 2 +
.../app/components/version-picker/index.js | 2 +-
.../app/modules/branding/branding.module.js | 4 +-
.../app/modules/branding/branding.provider.js | 111 ------------
.../app/modules/branding/branding.service.js | 47 +++++
.../modules/configuration/Version.service.js | 169 ------------------
.../configuration/configuration.module.js | 4 -
.../generator/ConfigurationGenerator.js | 2 +-
.../configuration/generator/Maven.service.js | 2 +-
.../frontend/app/services/Version.service.js | 171 +++++++++++++++++++
.../frontend/app/services/Version.spec.js | 106 ++++++++++++
.../web-console/frontend/app/services/index.js | 23 +++
.../frontend/test/unit/Version.test.js | 106 ------------
13 files changed, 354 insertions(+), 395 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/4e38b792/modules/web-console/frontend/app/app.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/app.js b/modules/web-console/frontend/app/app.js
index f072fc5..f2ee8ef 100644
--- a/modules/web-console/frontend/app/app.js
+++ b/modules/web-console/frontend/app/app.js
@@ -128,6 +128,7 @@ import gridItemSelected from './components/grid-item-selected';
import bsSelectMenu from './components/bs-select-menu';
import protectFromBsSelectRender from './components/protect-from-bs-select-render';
import uiGridHovering from './components/ui-grid-hovering';
+import igniteServices from './services';
// Inject external modules.
import IgniteModules from 'IgniteModules/index';
@@ -188,6 +189,7 @@ angular.module('ignite-console', [
webConsoleHeader.name,
webConsoleFooter.name,
igniteIcon.name,
+ igniteServices.name,
versionPicker.name,
userNotifications.name,
pageConfigure.name,
http://git-wip-us.apache.org/repos/asf/ignite/blob/4e38b792/modules/web-console/frontend/app/components/version-picker/index.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/version-picker/index.js b/modules/web-console/frontend/app/components/version-picker/index.js
index f58753e..04ff903 100644
--- a/modules/web-console/frontend/app/components/version-picker/index.js
+++ b/modules/web-console/frontend/app/components/version-picker/index.js
@@ -20,6 +20,6 @@ import component from './component';
export default angular
.module('ignite-console.version-picker', [
- 'ignite-console.configuration'
+ 'ignite-console.services'
])
.component('versionPicker', component);
http://git-wip-us.apache.org/repos/asf/ignite/blob/4e38b792/modules/web-console/frontend/app/modules/branding/branding.module.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/branding/branding.module.js b/modules/web-console/frontend/app/modules/branding/branding.module.js
index 9c4a5e5..2313728 100644
--- a/modules/web-console/frontend/app/modules/branding/branding.module.js
+++ b/modules/web-console/frontend/app/modules/branding/branding.module.js
@@ -17,7 +17,7 @@
import angular from 'angular';
-import IgniteBranding from './branding.provider';
+import IgniteBranding from './branding.service';
import igniteHeaderLogo from './header-logo.directive';
import igniteHeaderTitle from './header-title.directive';
@@ -30,7 +30,7 @@ angular
.module('ignite-console.branding', [
'tf.metatags'
])
-.provider(...IgniteBranding)
+.service('IgniteBranding', IgniteBranding)
.config(['tfMetaTagsProvider', (tfMetaTagsProvider) => {
tfMetaTagsProvider.setDefaults({
title: 'Apache Ignite - Management Tool and Configuration Wizard',
http://git-wip-us.apache.org/repos/asf/ignite/blob/4e38b792/modules/web-console/frontend/app/modules/branding/branding.provider.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/branding/branding.provider.js b/modules/web-console/frontend/app/modules/branding/branding.provider.js
deleted file mode 100644
index 280325e..0000000
--- a/modules/web-console/frontend/app/modules/branding/branding.provider.js
+++ /dev/null
@@ -1,111 +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.
- */
-
-export default ['IgniteBranding', [function() {
- let titleSuffix = ' – Apache Ignite Web Console';
-
- let headerLogo = '/images/ignite-logo.svg';
-
- let headerText = 'Management console for Apache Ignite';
-
- let showIgniteLogo = false;
-
- let footerHtml = [
- '<p>Apache Ignite Web Console</p>',
- '<p>© 2017 The Apache Software Foundation.</p>',
- '<p>Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are trademarks of The Apache Software Foundation.</p>'
- ];
-
- let termsState;
-
- let featuresHtml = [
- '<p>Web Console is an interactive management tool which allows to:</p>',
- '<ul>',
- ' <li>Create and download cluster configurations</li>',
- ' <li>Automatically import domain model from any RDBMS</li>',
- ' <li>Connect to cluster and run SQL analytics on it</li>',
- '</ul>'
- ];
-
- /**
- * Change title suffix.
- *
- * @param {String} suffix.
- */
- this.titleSuffix = (suffix) => {
- titleSuffix = suffix;
- };
-
- /**
- * Change logo in header.
- *
- * @param {String} url Logo path.
- */
- this.headerLogo = (url) => {
- headerLogo = url;
-
- showIgniteLogo = true;
- };
-
- /**
- * Change text in header.
- *
- * @param {String} text Header text.
- */
- this.headerText = (text) => {
- headerText = text;
- };
-
- /**
- * Change text in features.
- *
- * @param {Array.<String>} rows Features text.
- */
- this.featuresHtml = (rows) => {
- featuresHtml = rows;
- };
-
- /**
- * Change text in footer.
- *
- * @param {Array.<String>} rows Footer text.
- */
- this.footerHtml = (rows) => {
- footerHtml = rows;
- };
-
- /**
- * Set terms and conditions stage.
- *
- * @param {String} state
- */
- this.termsState = (state) => {
- termsState = state;
- };
-
- this.$get = [() => {
- return {
- titleSuffix,
- headerLogo,
- headerText,
- featuresHtml: featuresHtml.join('\n'),
- footerHtml: footerHtml.join('\n'),
- showIgniteLogo,
- termsState
- };
- }];
-}]];
http://git-wip-us.apache.org/repos/asf/ignite/blob/4e38b792/modules/web-console/frontend/app/modules/branding/branding.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/branding/branding.service.js b/modules/web-console/frontend/app/modules/branding/branding.service.js
new file mode 100644
index 0000000..46bc358
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/branding/branding.service.js
@@ -0,0 +1,47 @@
+/*
+ * 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.
+ */
+
+export default class {
+ static $inject = ['IgniteVersion'];
+
+ constructor(Version) {
+ this.titleSuffix = ' – Apache Ignite Web Console';
+
+ this.headerLogo = '/images/ignite-logo.svg';
+
+ this.headerText = 'Management console for Apache Ignite';
+
+ this.showIgniteLogo = false;
+
+ this.footerHtml = [
+ `<p>Apache Ignite Web Console (${Version.webConsole})</p>`,
+ '<p>© 2017 The Apache Software Foundation.</p>',
+ '<p>Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are trademarks of The Apache Software Foundation.</p>'
+ ].join('\n');
+
+ this.termsState = null;
+
+ this.featuresHtml = [
+ '<p>Web Console is an interactive management tool which allows to:</p>',
+ '<ul>',
+ ' <li>Create and download cluster configurations</li>',
+ ' <li>Automatically import domain model from any RDBMS</li>',
+ ' <li>Connect to cluster and run SQL analytics on it</li>',
+ '</ul>'
+ ].join('\n');
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/4e38b792/modules/web-console/frontend/app/modules/configuration/Version.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/Version.service.js b/modules/web-console/frontend/app/modules/configuration/Version.service.js
deleted file mode 100644
index 210b34a..0000000
--- a/modules/web-console/frontend/app/modules/configuration/Version.service.js
+++ /dev/null
@@ -1,169 +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.
- */
-
-import { BehaviorSubject } from 'rxjs/BehaviorSubject';
-
-/**
- * Utility service for version parsing and comparing
- */
-const VERSION_MATCHER = /(\d+)\.(\d+)\.(\d+)([-.]([^0123456789][^-]+)(-SNAPSHOT)?)?(-(\d+))?(-([\da-f]+))?/i;
-
-/**
- * Tries to parse product version from it's string representation.
- *
- * @param {String} ver - String representation of version.
- * @returns {{major: Number, minor: Number, maintenance: Number, stage: String, revTs: Number, revHash: String}} - Object that contains product version fields.
- */
-const parse = (ver) => {
- // Development or built from source ZIP.
- ver = ver.replace(/(-DEV|-n\/a)$/i, '');
-
- const [, major, minor, maintenance, stage, ...chunks] = ver.match(VERSION_MATCHER);
-
- return {
- major: parseInt(major, 10),
- minor: parseInt(minor, 10),
- maintenance: parseInt(maintenance, 10),
- stage: (stage || '').substring(1),
- revTs: chunks[2] ? parseInt(chunks[3], 10) : 0,
- revHash: chunks[4] ? chunks[5] : null
- };
-};
-
-const numberComparator = (a, b) => a > b ? 1 : a < b ? -1 : 0;
-
-/**
- * Compare to version.
- * @param a {Object} first compared version.
- * @param b {Object} second compared version.
- * @returns {Number} 1 if a > b, 0 if versions equals, -1 if a < b
- */
-const compare = (a, b) => {
- let res = numberComparator(a.major, b.major);
-
- if (res !== 0)
- return res;
-
- res = numberComparator(a.minor, b.minor);
-
- if (res !== 0)
- return res;
-
- res = numberComparator(a.maintenance, b.maintenance);
-
- if (res !== 0)
- return res;
-
- return numberComparator(a.stage, b.stage);
-};
-
-export default class IgniteVersion {
- constructor() {
- this.supportedVersions = [
- {
- label: 'Ignite 2.1',
- ignite: '2.1.0'
- },
- {
- label: 'Ignite 2.0',
- ignite: '2.0.0'
- },
- {
- label: 'Ignite 1.x',
- ignite: '1.9.0'
- }
- ];
-
- /** Current product version. */
- let current = _.head(this.supportedVersions);
-
- try {
- const ignite = localStorage.configurationVersion;
-
- const restored = _.find(this.supportedVersions, {ignite});
-
- if (restored)
- current = restored;
- }
- catch (ignored) {
- // No-op.
- }
-
- this.currentSbj = new BehaviorSubject(current);
-
- this.currentSbj.subscribe({
- next: (ver) => {
- try {
- localStorage.setItem('configurationVersion', ver.ignite);
- }
- catch (ignored) {
- // No-op.
- }
- }
- });
- }
-
- /**
- * @return {String} Current Ignite version.
- */
- get current() {
- return this.currentSbj.getValue().ignite;
- }
-
- /**
- * Check if version in range.
- *
- * @param {String} target Target version.
- * @param {String | Array.<String>} ranges Version ranges to compare with.
- * @returns {Boolean} `True` if version is equal or greater than specified range.
- */
- since(target, ...ranges) {
- const targetVer = parse(target);
-
- return !!_.find(ranges, (range) => {
- if (_.isArray(range)) {
- const [after, before] = range;
-
- return compare(targetVer, parse(after)) >= 0 &&
- (_.isNil(before) || compare(targetVer, parse(before)) < 0);
- }
-
- return compare(targetVer, parse(range)) >= 0;
- });
- }
-
- /**
- * Check whether version before than specified version.
- *
- * @param {String} target Target version.
- * @param {String} ranges Version ranges to compare with.
- * @return {Boolean} `True` if version before than specified version.
- */
- before(target, ...ranges) {
- return !this.since(target, ...ranges);
- }
-
- /**
- * Check if current version in specified range.
- *
- * @param {String|Array.<String>} ranges Version ranges to compare with.
- * @returns {Boolean} `True` if configuration version is equal or greater than specified range.
- */
- available(...ranges) {
- return this.since(this.current, ...ranges);
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/4e38b792/modules/web-console/frontend/app/modules/configuration/configuration.module.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/configuration.module.js b/modules/web-console/frontend/app/modules/configuration/configuration.module.js
index 54c6bf1..a350871 100644
--- a/modules/web-console/frontend/app/modules/configuration/configuration.module.js
+++ b/modules/web-console/frontend/app/modules/configuration/configuration.module.js
@@ -17,9 +17,6 @@
import angular from 'angular';
-
-import IgniteVersion from './Version.service';
-
import IgniteClusterDefaults from './generator/defaults/Cluster.service';
import IgniteClusterPlatformDefaults from './generator/defaults/Cluster.platform.service';
import IgniteCacheDefaults from './generator/defaults/Cache.service';
@@ -50,7 +47,6 @@ angular
.service('SpringTransformer', () => IgniteSpringTransformer)
.service('JavaTransformer', () => IgniteJavaTransformer)
.service('IgniteSharpTransformer', SharpTransformer)
-.service('IgniteVersion', IgniteVersion)
.service('IgniteEventGroups', IgniteEventGroups)
.service('IgniteClusterDefaults', IgniteClusterDefaults)
.service('IgniteClusterPlatformDefaults', IgniteClusterPlatformDefaults)
http://git-wip-us.apache.org/repos/asf/ignite/blob/4e38b792/modules/web-console/frontend/app/modules/configuration/generator/ConfigurationGenerator.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/generator/ConfigurationGenerator.js b/modules/web-console/frontend/app/modules/configuration/generator/ConfigurationGenerator.js
index 428a8d0..9d7887a 100644
--- a/modules/web-console/frontend/app/modules/configuration/generator/ConfigurationGenerator.js
+++ b/modules/web-console/frontend/app/modules/configuration/generator/ConfigurationGenerator.js
@@ -25,7 +25,7 @@ import IgniteCacheDefaults from './defaults/Cache.service';
import IgniteIGFSDefaults from './defaults/IGFS.service';
import JavaTypes from '../../../services/JavaTypes.service';
-import VersionService from 'app/modules/configuration/Version.service';
+import VersionService from 'app/services/Version.service';
const clusterDflts = new IgniteClusterDefaults();
const cacheDflts = new IgniteCacheDefaults();
http://git-wip-us.apache.org/repos/asf/ignite/blob/4e38b792/modules/web-console/frontend/app/modules/configuration/generator/Maven.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/generator/Maven.service.js b/modules/web-console/frontend/app/modules/configuration/generator/Maven.service.js
index 9bf0a34..a145f2e 100644
--- a/modules/web-console/frontend/app/modules/configuration/generator/Maven.service.js
+++ b/modules/web-console/frontend/app/modules/configuration/generator/Maven.service.js
@@ -16,7 +16,7 @@
*/
import StringBuilder from './StringBuilder';
-import VersionService from 'app/modules/configuration/Version.service';
+import VersionService from 'app/services/Version.service';
const versionService = new VersionService();
http://git-wip-us.apache.org/repos/asf/ignite/blob/4e38b792/modules/web-console/frontend/app/services/Version.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/services/Version.service.js b/modules/web-console/frontend/app/services/Version.service.js
new file mode 100644
index 0000000..8ae23d3
--- /dev/null
+++ b/modules/web-console/frontend/app/services/Version.service.js
@@ -0,0 +1,171 @@
+/*
+ * 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 { BehaviorSubject } from 'rxjs/BehaviorSubject';
+
+/**
+ * Utility service for version parsing and comparing
+ */
+const VERSION_MATCHER = /(\d+)\.(\d+)\.(\d+)([-.]([^0123456789][^-]+)(-SNAPSHOT)?)?(-(\d+))?(-([\da-f]+))?/i;
+
+/**
+ * Tries to parse product version from it's string representation.
+ *
+ * @param {String} ver - String representation of version.
+ * @returns {{major: Number, minor: Number, maintenance: Number, stage: String, revTs: Number, revHash: String}} - Object that contains product version fields.
+ */
+const parse = (ver) => {
+ // Development or built from source ZIP.
+ ver = ver.replace(/(-DEV|-n\/a)$/i, '');
+
+ const [, major, minor, maintenance, stage, ...chunks] = ver.match(VERSION_MATCHER);
+
+ return {
+ major: parseInt(major, 10),
+ minor: parseInt(minor, 10),
+ maintenance: parseInt(maintenance, 10),
+ stage: (stage || '').substring(1),
+ revTs: chunks[2] ? parseInt(chunks[3], 10) : 0,
+ revHash: chunks[4] ? chunks[5] : null
+ };
+};
+
+const numberComparator = (a, b) => a > b ? 1 : a < b ? -1 : 0;
+
+/**
+ * Compare to version.
+ * @param a {Object} first compared version.
+ * @param b {Object} second compared version.
+ * @returns {Number} 1 if a > b, 0 if versions equals, -1 if a < b
+ */
+const compare = (a, b) => {
+ let res = numberComparator(a.major, b.major);
+
+ if (res !== 0)
+ return res;
+
+ res = numberComparator(a.minor, b.minor);
+
+ if (res !== 0)
+ return res;
+
+ res = numberComparator(a.maintenance, b.maintenance);
+
+ if (res !== 0)
+ return res;
+
+ return numberComparator(a.stage, b.stage);
+};
+
+export default class IgniteVersion {
+ constructor() {
+ this.webConsole = '2.1.0';
+
+ this.supportedVersions = [
+ {
+ label: 'Ignite 2.1',
+ ignite: '2.1.0'
+ },
+ {
+ label: 'Ignite 2.0',
+ ignite: '2.0.0'
+ },
+ {
+ label: 'Ignite 1.x',
+ ignite: '1.9.0'
+ }
+ ];
+
+ /** Current product version. */
+ let current = _.head(this.supportedVersions);
+
+ try {
+ const ignite = localStorage.configurationVersion;
+
+ const restored = _.find(this.supportedVersions, {ignite});
+
+ if (restored)
+ current = restored;
+ }
+ catch (ignored) {
+ // No-op.
+ }
+
+ this.currentSbj = new BehaviorSubject(current);
+
+ this.currentSbj.subscribe({
+ next: (ver) => {
+ try {
+ localStorage.setItem('configurationVersion', ver.ignite);
+ }
+ catch (ignored) {
+ // No-op.
+ }
+ }
+ });
+ }
+
+ /**
+ * @return {String} Current Ignite version.
+ */
+ get current() {
+ return this.currentSbj.getValue().ignite;
+ }
+
+ /**
+ * Check if version in range.
+ *
+ * @param {String} target Target version.
+ * @param {String | Array.<String>} ranges Version ranges to compare with.
+ * @returns {Boolean} `True` if version is equal or greater than specified range.
+ */
+ since(target, ...ranges) {
+ const targetVer = parse(target);
+
+ return !!_.find(ranges, (range) => {
+ if (_.isArray(range)) {
+ const [after, before] = range;
+
+ return compare(targetVer, parse(after)) >= 0 &&
+ (_.isNil(before) || compare(targetVer, parse(before)) < 0);
+ }
+
+ return compare(targetVer, parse(range)) >= 0;
+ });
+ }
+
+ /**
+ * Check whether version before than specified version.
+ *
+ * @param {String} target Target version.
+ * @param {String} ranges Version ranges to compare with.
+ * @return {Boolean} `True` if version before than specified version.
+ */
+ before(target, ...ranges) {
+ return !this.since(target, ...ranges);
+ }
+
+ /**
+ * Check if current version in specified range.
+ *
+ * @param {String|Array.<String>} ranges Version ranges to compare with.
+ * @returns {Boolean} `True` if configuration version is equal or greater than specified range.
+ */
+ available(...ranges) {
+ return this.since(this.current, ...ranges);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/4e38b792/modules/web-console/frontend/app/services/Version.spec.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/services/Version.spec.js b/modules/web-console/frontend/app/services/Version.spec.js
new file mode 100644
index 0000000..12e769c
--- /dev/null
+++ b/modules/web-console/frontend/app/services/Version.spec.js
@@ -0,0 +1,106 @@
+/*
+ * 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 VersionService from './Version.service';
+
+const INSTANCE = new VersionService();
+
+import { suite, test } from 'mocha';
+import { assert } from 'chai';
+
+suite('VersionServiceTestsSuite', () => {
+ test.skip('Parse 1.7.0-SNAPSHOT', () => {
+ const version = INSTANCE.parse('1.7.0-SNAPSHOT');
+ assert.equal(version.major, 1);
+ assert.equal(version.minor, 7);
+ assert.equal(version.maintenance, 0);
+ assert.equal(version.stage, 'SNAPSHOT');
+ assert.equal(version.revTs, 0);
+ assert.isNull(version.revHash);
+ });
+
+ test.skip('Parse strip -DEV 1.7.0-DEV', () => {
+ const version = INSTANCE.parse('1.7.0-DEV');
+ assert.equal(version.major, 1);
+ assert.equal(version.minor, 7);
+ assert.equal(version.maintenance, 0);
+ assert.equal(version.stage, '');
+ });
+
+ test.skip('Parse strip -n/a 1.7.0-n/a', () => {
+ const version = INSTANCE.parse('1.7.0-n/a');
+ assert.equal(version.major, 1);
+ assert.equal(version.minor, 7);
+ assert.equal(version.maintenance, 0);
+ assert.equal(version.stage, '');
+ });
+
+ test.skip('Check patch version', () => {
+ assert.equal(INSTANCE.compare(INSTANCE.parse('1.7.2'), INSTANCE.parse('1.7.1')), 1);
+ });
+
+ test.skip('Check minor version', () => {
+ assert.equal(INSTANCE.compare(INSTANCE.parse('1.8.1'), INSTANCE.parse('1.7.1')), 1);
+ });
+
+ test.skip('Check major version', () => {
+ assert.equal(INSTANCE.compare(INSTANCE.parse('2.7.1'), INSTANCE.parse('1.7.1')), 1);
+ });
+
+ test.skip('Version a > b', () => {
+ assert.equal(INSTANCE.compare(INSTANCE.parse('1.7.0'), INSTANCE.parse('1.5.0')), 1);
+ });
+
+ test.skip('Version a = b', () => {
+ assert.equal(INSTANCE.compare(INSTANCE.parse('1.0.0'), INSTANCE.parse('1.0.0')), 0);
+ assert.equal(INSTANCE.compare(INSTANCE.parse('1.2.0'), INSTANCE.parse('1.2.0')), 0);
+ assert.equal(INSTANCE.compare(INSTANCE.parse('1.2.3'), INSTANCE.parse('1.2.3')), 0);
+
+ assert.equal(INSTANCE.compare(INSTANCE.parse('1.0.0-1'), INSTANCE.parse('1.0.0-1')), 0);
+ assert.equal(INSTANCE.compare(INSTANCE.parse('1.2.0-1'), INSTANCE.parse('1.2.0-1')), 0);
+ assert.equal(INSTANCE.compare(INSTANCE.parse('1.2.3-1'), INSTANCE.parse('1.2.3-1')), 0);
+ });
+
+ test.skip('Version a < b', () => {
+ assert.equal(INSTANCE.compare(INSTANCE.parse('1.5.1'), INSTANCE.parse('1.5.2')), -1);
+ });
+
+ test('Check since call', () => {
+ assert.equal(INSTANCE.since('1.5.0', '1.5.0'), true);
+ assert.equal(INSTANCE.since('1.6.0', '1.5.0'), true);
+ assert.equal(INSTANCE.since('1.5.4', ['1.5.5', '1.6.0'], ['1.6.2']), false);
+ assert.equal(INSTANCE.since('1.5.5', ['1.5.5', '1.6.0'], ['1.6.2']), true);
+ assert.equal(INSTANCE.since('1.5.11', ['1.5.5', '1.6.0'], ['1.6.2']), true);
+ assert.equal(INSTANCE.since('1.6.0', ['1.5.5', '1.6.0'], ['1.6.2']), false);
+ assert.equal(INSTANCE.since('1.6.1', ['1.5.5', '1.6.0'], '1.6.2'), false);
+ assert.equal(INSTANCE.since('1.6.2', ['1.5.5', '1.6.0'], ['1.6.2']), true);
+ assert.equal(INSTANCE.since('1.6.3', ['1.5.5', '1.6.0'], '1.6.2'), true);
+ });
+
+ test('Check wrong since call', () => {
+ assert.equal(INSTANCE.since('1.3.0', '1.5.0'), false);
+ });
+
+ test('Check before call', () => {
+ assert.equal(INSTANCE.before('1.5.0', '1.5.0'), false);
+ assert.equal(INSTANCE.before('1.5.0', '1.6.0'), true);
+ });
+
+ test('Check wrong before call', () => {
+ assert.equal(INSTANCE.before('1.5.0', '1.3.0'), false);
+ });
+});
http://git-wip-us.apache.org/repos/asf/ignite/blob/4e38b792/modules/web-console/frontend/app/services/index.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/services/index.js b/modules/web-console/frontend/app/services/index.js
new file mode 100644
index 0000000..49e7632
--- /dev/null
+++ b/modules/web-console/frontend/app/services/index.js
@@ -0,0 +1,23 @@
+/*
+ * 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 angular from 'angular';
+import IgniteVersion from './Version.service';
+
+export default angular
+ .module('ignite-console.services', [])
+ .service('IgniteVersion', IgniteVersion);
http://git-wip-us.apache.org/repos/asf/ignite/blob/4e38b792/modules/web-console/frontend/test/unit/Version.test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/unit/Version.test.js b/modules/web-console/frontend/test/unit/Version.test.js
deleted file mode 100644
index b0ca3d9..0000000
--- a/modules/web-console/frontend/test/unit/Version.test.js
+++ /dev/null
@@ -1,106 +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.
- */
-
-import VersionService from '../../app/modules/configuration/Version.service';
-
-const INSTANCE = new VersionService();
-
-import { suite, test } from 'mocha';
-import { assert } from 'chai';
-
-suite('VersionServiceTestsSuite', () => {
- test.skip('Parse 1.7.0-SNAPSHOT', () => {
- const version = INSTANCE.parse('1.7.0-SNAPSHOT');
- assert.equal(version.major, 1);
- assert.equal(version.minor, 7);
- assert.equal(version.maintenance, 0);
- assert.equal(version.stage, 'SNAPSHOT');
- assert.equal(version.revTs, 0);
- assert.isNull(version.revHash);
- });
-
- test.skip('Parse strip -DEV 1.7.0-DEV', () => {
- const version = INSTANCE.parse('1.7.0-DEV');
- assert.equal(version.major, 1);
- assert.equal(version.minor, 7);
- assert.equal(version.maintenance, 0);
- assert.equal(version.stage, '');
- });
-
- test.skip('Parse strip -n/a 1.7.0-n/a', () => {
- const version = INSTANCE.parse('1.7.0-n/a');
- assert.equal(version.major, 1);
- assert.equal(version.minor, 7);
- assert.equal(version.maintenance, 0);
- assert.equal(version.stage, '');
- });
-
- test.skip('Check patch version', () => {
- assert.equal(INSTANCE.compare(INSTANCE.parse('1.7.2'), INSTANCE.parse('1.7.1')), 1);
- });
-
- test.skip('Check minor version', () => {
- assert.equal(INSTANCE.compare(INSTANCE.parse('1.8.1'), INSTANCE.parse('1.7.1')), 1);
- });
-
- test.skip('Check major version', () => {
- assert.equal(INSTANCE.compare(INSTANCE.parse('2.7.1'), INSTANCE.parse('1.7.1')), 1);
- });
-
- test.skip('Version a > b', () => {
- assert.equal(INSTANCE.compare(INSTANCE.parse('1.7.0'), INSTANCE.parse('1.5.0')), 1);
- });
-
- test.skip('Version a = b', () => {
- assert.equal(INSTANCE.compare(INSTANCE.parse('1.0.0'), INSTANCE.parse('1.0.0')), 0);
- assert.equal(INSTANCE.compare(INSTANCE.parse('1.2.0'), INSTANCE.parse('1.2.0')), 0);
- assert.equal(INSTANCE.compare(INSTANCE.parse('1.2.3'), INSTANCE.parse('1.2.3')), 0);
-
- assert.equal(INSTANCE.compare(INSTANCE.parse('1.0.0-1'), INSTANCE.parse('1.0.0-1')), 0);
- assert.equal(INSTANCE.compare(INSTANCE.parse('1.2.0-1'), INSTANCE.parse('1.2.0-1')), 0);
- assert.equal(INSTANCE.compare(INSTANCE.parse('1.2.3-1'), INSTANCE.parse('1.2.3-1')), 0);
- });
-
- test.skip('Version a < b', () => {
- assert.equal(INSTANCE.compare(INSTANCE.parse('1.5.1'), INSTANCE.parse('1.5.2')), -1);
- });
-
- test('Check since call', () => {
- assert.equal(INSTANCE.since('1.5.0', '1.5.0'), true);
- assert.equal(INSTANCE.since('1.6.0', '1.5.0'), true);
- assert.equal(INSTANCE.since('1.5.4', ['1.5.5', '1.6.0'], ['1.6.2']), false);
- assert.equal(INSTANCE.since('1.5.5', ['1.5.5', '1.6.0'], ['1.6.2']), true);
- assert.equal(INSTANCE.since('1.5.11', ['1.5.5', '1.6.0'], ['1.6.2']), true);
- assert.equal(INSTANCE.since('1.6.0', ['1.5.5', '1.6.0'], ['1.6.2']), false);
- assert.equal(INSTANCE.since('1.6.1', ['1.5.5', '1.6.0'], '1.6.2'), false);
- assert.equal(INSTANCE.since('1.6.2', ['1.5.5', '1.6.0'], ['1.6.2']), true);
- assert.equal(INSTANCE.since('1.6.3', ['1.5.5', '1.6.0'], '1.6.2'), true);
- });
-
- test('Check wrong since call', () => {
- assert.equal(INSTANCE.since('1.3.0', '1.5.0'), false);
- });
-
- test('Check before call', () => {
- assert.equal(INSTANCE.before('1.5.0', '1.5.0'), false);
- assert.equal(INSTANCE.before('1.5.0', '1.6.0'), true);
- });
-
- test('Check wrong before call', () => {
- assert.equal(INSTANCE.before('1.5.0', '1.3.0'), false);
- });
-});