You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/10/19 14:09:38 UTC
[4/4] ignite git commit: IGNITE-1714 Fixed java and xml code
generation. Fixed load metadata from DB. Reorganized summary ZIP content.
Added pom.xml and README.txt generation.
IGNITE-1714 Fixed java and xml code generation. Fixed load metadata from DB. Reorganized summary ZIP content. Added pom.xml and README.txt generation.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/939473f9
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/939473f9
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/939473f9
Branch: refs/heads/ignite-843-rc1
Commit: 939473f9975d3063b944ecd71e0a829033c9d6af
Parents: bc7a4de
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Mon Oct 19 19:09:30 2015 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Mon Oct 19 19:09:30 2015 +0700
----------------------------------------------------------------------
.../main/js/controllers/metadata-controller.js | 2 +-
.../main/js/routes/generator/generator-java.js | 24 +++-
.../main/js/routes/generator/generator-pom.js | 118 +++++++++++++++++++
.../js/routes/generator/generator-properties.js | 1 +
.../js/routes/generator/generator-readme.js | 55 +++++++++
.../main/js/routes/generator/generator-xml.js | 2 +-
.../src/main/js/routes/summary.js | 18 ++-
7 files changed, 209 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/939473f9/modules/control-center-web/src/main/js/controllers/metadata-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/metadata-controller.js b/modules/control-center-web/src/main/js/controllers/metadata-controller.js
index 2c0cdfa..86eac18 100644
--- a/modules/control-center-web/src/main/js/controllers/metadata-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/metadata-controller.js
@@ -539,7 +539,7 @@ consoleModule.controller('metadataController', [
groups.push(
{name: indexName, fields: _.map(fields, function (fieldName) {
return {
- name: fieldName,
+ name: toJavaName(fieldName),
className: colType(fieldName),
direction: index[fieldName]
};
http://git-wip-us.apache.org/repos/asf/ignite/blob/939473f9/modules/control-center-web/src/main/js/routes/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/generator-java.js b/modules/control-center-web/src/main/js/routes/generator/generator-java.js
index 6bb5b63..90ec69a 100644
--- a/modules/control-center-web/src/main/js/routes/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/routes/generator/generator-java.js
@@ -998,7 +998,7 @@ $generatorJava.metadataQueryFields = function (res, meta, fieldProperty) {
$generatorJava.declareVariable(res, $generatorJava.needNewVariable(res, fieldProperty), fieldProperty, 'java.util.Map', 'java.util.LinkedHashMap', 'java.lang.String', 'java.lang.Class<?>');
_.forEach(fields, function (field) {
- res.line(fieldProperty + '.put("' + field.name.toUpperCase() + '", ' + res.importClass(field.className) + '.class);');
+ res.line(fieldProperty + '.put("' + field.name + '", ' + res.importClass(field.className) + '.class);');
});
res.needEmptyLine = true;
@@ -1532,11 +1532,11 @@ $generatorJava.cluster = function (cluster, javaClass, clientNearCfg) {
res.line('/**');
res.line(' * ' + $generatorCommon.mainComment());
res.line(' */');
- res.startBlock('public class IgniteConfigurationFactory {');
+ res.startBlock('public class ConfigurationFactory {');
res.line('/**');
res.line(' * Configure grid.');
res.line(' */');
- res.startBlock('public IgniteConfiguration createConfiguration() {');
+ res.startBlock('public static IgniteConfiguration createConfiguration() {');
}
$generatorJava.clusterGeneral(cluster, clientNearCfg, res);
@@ -1566,8 +1566,26 @@ $generatorJava.cluster = function (cluster, javaClass, clientNearCfg) {
$generatorJava.clusterSsl(cluster, res);
if (javaClass) {
+ res.importClass('org.apache.ignite.Ignite');
+ res.importClass('org.apache.ignite.IgniteException');
+ res.importClass('org.apache.ignite.Ignition');
+
res.line('return cfg;');
res.endBlock('}');
+
+ res.line('/**');
+ res.line('* Sample usage of ConfigurationFactory.');
+ res.line('*');
+ res.line('* @param args Command line arguments, none required.');
+ res.line('* @throws IgniteException If example execution failed.');
+ res.line('*/');
+
+ res.startBlock('public static void main(String[] args) throws IgniteException {');
+ res.startBlock('try (Ignite ignite = Ignition.start(ConfigurationFactory.createConfiguration())) {');
+ res.line('System.out.println(" Write some code here...");');
+ res.endBlock('}');
+ res.endBlock('}');
+
res.endBlock('}');
return res.generateImports() + '\n\n' + res.asString();
http://git-wip-us.apache.org/repos/asf/ignite/blob/939473f9/modules/control-center-web/src/main/js/routes/generator/generator-pom.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/generator-pom.js b/modules/control-center-web/src/main/js/routes/generator/generator-pom.js
new file mode 100644
index 0000000..fec7288
--- /dev/null
+++ b/modules/control-center-web/src/main/js/routes/generator/generator-pom.js
@@ -0,0 +1,118 @@
+/*
+ * 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.
+ */
+
+// For server side we should load required libraries.
+if (typeof window === 'undefined') {
+ $generatorCommon = require('./generator-common');
+}
+
+// pom.xml generation entry point.
+$generatorPom = {};
+
+/**
+ * Generate pom.xml.
+ *
+ * @param res Resulting output with generated pom.
+ * @param igniteVersion Ignite version for Ignite dependencies.
+ * @returns {string} Generated content.
+ */
+$generatorPom.pom = function (igniteVersion, res) {
+ if (!res)
+ res = $generatorCommon.builder();
+
+ function addProperty(tag, val) {
+ res.line('<' + tag + '>' + val + '</' + tag + '>');
+ }
+
+ function addDependency(groupId, artifactId, version) {
+ res.startBlock('<dependency>');
+ addProperty('groupId', groupId);
+ addProperty('artifactId', artifactId);
+ addProperty('version', version);
+ res.endBlock('</dependency>');
+ }
+
+ function addResource(dir, exclude) {
+ res.startBlock('<resource>');
+ if (dir)
+ addProperty('directory', dir);
+
+ if (exclude) {
+ res.startBlock('<excludes>');
+ addProperty('exclude', exclude);
+ res.endBlock('</excludes>');
+ }
+
+ res.endBlock('</resource>');
+ }
+
+ res.line('<?xml version="1.0" encoding="UTF-8"?>');
+
+ res.needEmptyLine = true;
+
+ res.line('<!-- ' + $generatorCommon.mainComment() + ' -->');
+
+ res.needEmptyLine = true;
+
+ res.startBlock('<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">');
+
+ res.line('<modelVersion>4.0.0</modelVersion>');
+
+ res.needEmptyLine = true;
+
+ addProperty('groupId', 'org.apache.ignite');
+ addProperty('artifactId', 'ignite-generated-model');
+ addProperty('version', igniteVersion);
+
+ res.needEmptyLine = true;
+
+ res.startBlock('<dependencies>');
+ addDependency('org.apache.ignite', 'ignite-core', igniteVersion);
+ addDependency('org.apache.ignite', 'ignite-spring', igniteVersion);
+ addDependency('org.apache.ignite', 'ignite-indexing', igniteVersion);
+ addDependency('org.apache.ignite', 'ignite-rest-http', igniteVersion);
+ res.endBlock('</dependencies>');
+
+ res.needEmptyLine = true;
+
+ res.startBlock('<build>');
+ res.startBlock('<resources>');
+ addResource('src/main/java', '**/*.java');
+ addResource('src/main/resources');
+ res.endBlock('</resources>');
+
+ res.startBlock('<plugins>');
+ res.startBlock('<plugin>');
+ addProperty('artifactId', 'maven-compiler-plugin');
+ addProperty('version', '3.1');
+ res.startBlock('<configuration>');
+ addProperty('source', '1.7');
+ addProperty('target', '1.7');
+ res.endBlock('</configuration>');
+ res.endBlock('</plugin>');
+ res.endBlock('</plugins>');
+ res.endBlock('</build>');
+
+ res.endBlock('</project>');
+
+ return res;
+};
+
+// For server side we should export properties generation entry point.
+if (typeof window === 'undefined') {
+ module.exports = $generatorPom;
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/939473f9/modules/control-center-web/src/main/js/routes/generator/generator-properties.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/generator-properties.js b/modules/control-center-web/src/main/js/routes/generator/generator-properties.js
index fff1447..5a1dafe 100644
--- a/modules/control-center-web/src/main/js/routes/generator/generator-properties.js
+++ b/modules/control-center-web/src/main/js/routes/generator/generator-properties.js
@@ -29,6 +29,7 @@ $generatorProperties = {};
* Generate properties file with properties stubs for stores data sources.
*
* @param cluster Configuration to process.
+ * @param res Resulting output with generated properties.
* @returns {string} Generated content.
*/
$generatorProperties.dataSourcesProperties = function (cluster, res) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/939473f9/modules/control-center-web/src/main/js/routes/generator/generator-readme.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/generator-readme.js b/modules/control-center-web/src/main/js/routes/generator/generator-readme.js
new file mode 100644
index 0000000..d39cf64
--- /dev/null
+++ b/modules/control-center-web/src/main/js/routes/generator/generator-readme.js
@@ -0,0 +1,55 @@
+/*
+ * 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.
+ */
+
+// For server side we should load required libraries.
+if (typeof window === 'undefined') {
+ $generatorCommon = require('./generator-common');
+}
+
+// README.txt generation entry point.
+$generatorReadme = {};
+
+/**
+ * Generate README.txt.
+ *
+ * @param res Resulting output with generated pom.
+ * @returns {string} Generated content.
+ */
+$generatorReadme.readme = function (res) {
+ if (!res)
+ res = $generatorCommon.builder();
+
+ res.line('Content of this folder was generated by Apache Ignite Web Console');
+ res.line('=================================================================');
+
+ res.needEmptyLine = true;
+
+ res.line('Ignite ships with CacheJdbcPojoStore, which is out-of-the-box JDBC');
+ res.line('implementation of the IgniteCacheStore interface, and automatically');
+ res.line('handles all the write-through and read-through logic.');
+
+ res.needEmptyLine = true;
+
+ res.line('You can use generated configuration and POJO classes as part of your application.');
+
+ return res;
+};
+
+// For server side we should export properties generation entry point.
+if (typeof window === 'undefined') {
+ module.exports = $generatorReadme;
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/939473f9/modules/control-center-web/src/main/js/routes/generator/generator-xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/generator-xml.js b/modules/control-center-web/src/main/js/routes/generator/generator-xml.js
index ba578aa..f806ba5 100644
--- a/modules/control-center-web/src/main/js/routes/generator/generator-xml.js
+++ b/modules/control-center-web/src/main/js/routes/generator/generator-xml.js
@@ -880,7 +880,7 @@ $generatorXml.metadataGroups = function (res, meta) {
res.startBlock('<map>');
_.forEach(fields, function (field) {
- res.startBlock('<entry key="' + field.name + '">');
+ res.startBlock('<entry key="' + field.name.toUpperCase() + '">');
res.startBlock('<bean class="org.apache.ignite.lang.IgniteBiTuple">');
res.line('<constructor-arg value="' + $dataStructures.fullClassName(field.className) + '"/>');
http://git-wip-us.apache.org/repos/asf/ignite/blob/939473f9/modules/control-center-web/src/main/js/routes/summary.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/summary.js b/modules/control-center-web/src/main/js/routes/summary.js
index bf728bf..ca2e141 100644
--- a/modules/control-center-web/src/main/js/routes/summary.js
+++ b/modules/control-center-web/src/main/js/routes/summary.js
@@ -23,6 +23,8 @@ var $generatorXml = require('./generator/generator-xml');
var $generatorJava = require('./generator/generator-java');
var $generatorDocker = require('./generator/generator-docker');
var $generatorProperties = require('./generator/generator-properties');
+var $generatorPom = require('./generator/generator-pom');
+var $generatorReadme = require('./generator/generator-readme');
// GET template for summary tabs.
router.get('/summary-tabs', function (req, res) {
@@ -61,11 +63,15 @@ router.post('/download', function (req, res) {
}
if (builder)
- zip.file('secret.properties', builder.asString());
+ zip.file('src/main/resources/secret.properties', builder.asString());
- zip.file(cluster.name + '.xml', $generatorXml.cluster(cluster, clientNearConfiguration));
- zip.file(cluster.name + '.snippet.java', $generatorJava.cluster(cluster, false, clientNearConfiguration));
- zip.file('ConfigurationFactory.java', $generatorJava.cluster(cluster, true, clientNearConfiguration));
+ var srcPath = 'src/main/java/';
+
+ zip.file('config/' + cluster.name + '.xml', $generatorXml.cluster(cluster, clientNearConfiguration));
+ zip.file(srcPath + 'ConfigurationFactory.java', $generatorJava.cluster(cluster, true, clientNearConfiguration));
+ zip.file('pom.xml', $generatorPom.pom('1.5.0').asString());
+
+ zip.file('README.txt', $generatorReadme.readme().asString());
$generatorJava.pojos(cluster.caches, req.body.useConstructor, req.body.includeKeyFields);
@@ -75,9 +81,9 @@ router.post('/download', function (req, res) {
var meta = metadatas[metaIx];
if (meta.keyClass)
- zip.file(meta.keyType.replace(/\./g, '/') + '.java', meta.keyClass);
+ zip.file(srcPath + meta.keyType.replace(/\./g, '/') + '.java', meta.keyClass);
- zip.file(meta.valueType.replace(/\./g, '/') + '.java', meta.valueClass);
+ zip.file(srcPath + meta.valueType.replace(/\./g, '/') + '.java', meta.valueClass);
}
var buffer = zip.generate({type:"nodebuffer"});