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/08/21 10:32:02 UTC
incubator-ignite git commit: IGNITE-843 Implemented test drive for
metadata.
Repository: incubator-ignite
Updated Branches:
refs/heads/ignite-843 b88a5a850 -> bc9c86073
IGNITE-843 Implemented test drive for metadata.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/bc9c8607
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/bc9c8607
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/bc9c8607
Branch: refs/heads/ignite-843
Commit: bc9c86073ab97224be52f713149ce7797f40c144
Parents: b88a5a8
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Fri Aug 21 15:31:59 2015 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Fri Aug 21 15:31:59 2015 +0700
----------------------------------------------------------------------
modules/control-center-agent/pom.xml | 6 ++
.../apache/ignite/agent/AgentConfiguration.java | 38 +++++++++-
.../org/apache/ignite/agent/AgentLauncher.java | 7 ++
.../agent/testdrive/AgentMetadataTestDrive.java | 75 ++++++++++++++++++++
.../agent/testdrive/AgentSqlTestDrive.java | 15 ++++
5 files changed, 139 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/bc9c8607/modules/control-center-agent/pom.xml
----------------------------------------------------------------------
diff --git a/modules/control-center-agent/pom.xml b/modules/control-center-agent/pom.xml
index 2f24f22..2d5123e 100644
--- a/modules/control-center-agent/pom.xml
+++ b/modules/control-center-agent/pom.xml
@@ -67,6 +67,12 @@
<artifactId>httpclient</artifactId>
<version>4.5</version>
</dependency>
+
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <version>1.4.188</version>
+ </dependency>
</dependencies>
<build>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/bc9c8607/modules/control-center-agent/src/main/java/org/apache/ignite/agent/AgentConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/control-center-agent/src/main/java/org/apache/ignite/agent/AgentConfiguration.java b/modules/control-center-agent/src/main/java/org/apache/ignite/agent/AgentConfiguration.java
index 911ebd1..ae74e38 100644
--- a/modules/control-center-agent/src/main/java/org/apache/ignite/agent/AgentConfiguration.java
+++ b/modules/control-center-agent/src/main/java/org/apache/ignite/agent/AgentConfiguration.java
@@ -61,12 +61,12 @@ public class AgentConfiguration {
private String driversFolder;
/** */
- @Parameter(names = { "-tm", "--test-metadata" },
+ @Parameter(names = { "-tm", "--test-drive-metadata" },
description = "Start H2 database with sample tables in same process.")
private boolean meta;
/** */
- @Parameter(names = { "-ts", "--test-sql" },
+ @Parameter(names = { "-ts", "--test-drive-sql" },
description = "Create cache and populate it with sample data for use in query.")
private boolean sql;
@@ -159,6 +159,34 @@ public class AgentConfiguration {
}
/**
+ * @return {@code true} If metadata test drive should be started.
+ */
+ public boolean isTestDriveMeta() {
+ return meta;
+ }
+
+ /**
+ * @param meta Set to {@code true} if metadata test drive should be started.
+ */
+ public void setTestDriveMeta(boolean meta) {
+ this.meta = meta;
+ }
+
+ /**
+ * @return {@code true} If SQL test drive should be started.
+ */
+ public boolean isTestDriveSql() {
+ return sql;
+ }
+
+ /**
+ * @param sql Set to {@code true} if SQL test drive should be started.
+ */
+ public void setTestDriveSql(boolean sql) {
+ this.sql = sql;
+ }
+
+ /**
* @param cfgUrl URL.
*/
public void load(URL cfgUrl) throws IOException {
@@ -218,6 +246,12 @@ public class AgentConfiguration {
if (cmd.getDriversFolder() != null)
setDriversFolder(cmd.getDriversFolder());
+
+ if (cmd.isTestDriveMeta())
+ setTestDriveMeta(true);
+
+ if (cmd.isTestDriveSql())
+ setTestDriveSql(true);
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/bc9c8607/modules/control-center-agent/src/main/java/org/apache/ignite/agent/AgentLauncher.java
----------------------------------------------------------------------
diff --git a/modules/control-center-agent/src/main/java/org/apache/ignite/agent/AgentLauncher.java b/modules/control-center-agent/src/main/java/org/apache/ignite/agent/AgentLauncher.java
index a3afea2..163c4c0 100644
--- a/modules/control-center-agent/src/main/java/org/apache/ignite/agent/AgentLauncher.java
+++ b/modules/control-center-agent/src/main/java/org/apache/ignite/agent/AgentLauncher.java
@@ -19,6 +19,7 @@ package org.apache.ignite.agent;
import com.beust.jcommander.*;
import org.apache.ignite.agent.handlers.*;
+import org.apache.ignite.agent.testdrive.*;
import org.eclipse.jetty.util.ssl.*;
import org.eclipse.jetty.websocket.client.*;
@@ -76,6 +77,12 @@ public class AgentLauncher {
cfg.setPassword(new String(System.console().readPassword()));
}
+ if (cfg.isTestDriveMeta())
+ AgentMetadataTestDrive.testDrive();
+
+ if (cfg.isTestDriveSql())
+ AgentSqlTestDrive.testDrive();
+
RestExecutor restExecutor = new RestExecutor(cfg);
restExecutor.start();
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/bc9c8607/modules/control-center-agent/src/main/java/org/apache/ignite/agent/testdrive/AgentMetadataTestDrive.java
----------------------------------------------------------------------
diff --git a/modules/control-center-agent/src/main/java/org/apache/ignite/agent/testdrive/AgentMetadataTestDrive.java b/modules/control-center-agent/src/main/java/org/apache/ignite/agent/testdrive/AgentMetadataTestDrive.java
new file mode 100644
index 0000000..6c75417
--- /dev/null
+++ b/modules/control-center-agent/src/main/java/org/apache/ignite/agent/testdrive/AgentMetadataTestDrive.java
@@ -0,0 +1,75 @@
+package org.apache.ignite.agent.testdrive;
+
+import org.h2.tools.*;
+
+import java.sql.*;
+import java.util.logging.*;
+
+/**
+ * Test drive for metadata load from database.
+ *
+ * H2 database will be started and several tables will be created.
+ */
+public class AgentMetadataTestDrive {
+ /** */
+ private static final Logger log = Logger.getLogger(AgentMetadataTestDrive.class.getName());
+
+ /**
+ * Execute query.
+ *
+ * @param conn Connection to database.
+ * @param qry Statement to execute.
+ */
+ private static void query(Connection conn, String qry) throws SQLException {
+ try (PreparedStatement ps = conn.prepareStatement(qry)) {
+ ps.executeUpdate();
+ }
+ }
+
+ /**
+ * Start H2 database and populate it with several tables.
+ */
+ public static void testDrive() {
+ log.log(Level.INFO, "Starting in-memory H2 database for metadata test drive...");
+
+ try {
+ Connection conn = DriverManager.getConnection("jdbc:h2:mem:test-driver-db;DB_CLOSE_DELAY=-1", "sa", "");
+
+ query(conn, "CREATE TABLE COUNTRY(ID INTEGER NOT NULL PRIMARY KEY, COUNTRY_NAME VARCHAR(100))");
+ log.log(Level.INFO, "Table COUNTRY created.");
+
+ query(conn, "CREATE TABLE DEPARTMENT(" +
+ " DEPARTMENT_ID INTEGER NOT NULL PRIMARY KEY," +
+ " DEPARTMENT_NAME VARCHAR(50) NOT NULL," +
+ " COUNTRY_ID INTEGER," +
+ " MANAGER_ID INTEGER)");
+ log.log(Level.INFO, "Table DEPARTMENT created.");
+
+ query(conn, "CREATE TABLE EMPLOYEE(" +
+ " EMPLOYEE_ID INTEGER NOT NULL PRIMARY KEY," +
+ " FIRST_NAME VARCHAR(20) NOT NULL," +
+ " LAST_NAME VARCHAR(30) NOT NULL," +
+ " EMAIL VARCHAR(25) NOT NULL," +
+ " PHONE_NUMBER VARCHAR(20)," +
+ " HIRE_DATE DATE NOT NULL," +
+ " JOB VARCHAR(50) NOT NULL," +
+ " SALARY DOUBLE," +
+ " MANAGER_ID INTEGER," +
+ " DEPARTMENT_ID INTEGER)");
+ log.log(Level.INFO, "Table EMPLOYEE created.");
+
+ query(conn, "CREATE INDEX EMP_SALARY_A ON EMPLOYEE(SALARY ASC)");
+ query(conn, "CREATE INDEX EMP_SALARY_B ON EMPLOYEE(SALARY DESC)");
+ query(conn, "CREATE INDEX EMP_NAMES ON EMPLOYEE(FIRST_NAME ASC, LAST_NAME ASC)");
+ log.log(Level.INFO, "Indexes for table EMPLOYEE created.");
+
+ conn.close();
+
+ Server.createTcpServer("-tcpDaemon").start();
+
+ log.log(Level.INFO, "TcpServer stared.");
+ } catch (SQLException e) {
+ log.log(Level.SEVERE, "Failed to start test drive for metadata!", e);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/bc9c8607/modules/control-center-agent/src/main/java/org/apache/ignite/agent/testdrive/AgentSqlTestDrive.java
----------------------------------------------------------------------
diff --git a/modules/control-center-agent/src/main/java/org/apache/ignite/agent/testdrive/AgentSqlTestDrive.java b/modules/control-center-agent/src/main/java/org/apache/ignite/agent/testdrive/AgentSqlTestDrive.java
new file mode 100644
index 0000000..9c5c7e5
--- /dev/null
+++ b/modules/control-center-agent/src/main/java/org/apache/ignite/agent/testdrive/AgentSqlTestDrive.java
@@ -0,0 +1,15 @@
+package org.apache.ignite.agent.testdrive;
+
+/**
+ * Test drive for SQL.
+ *
+ * Cache will be created and populated with data to query.
+ */
+public class AgentSqlTestDrive {
+ /**
+ * TODO IGNITE-843
+ */
+ public static void testDrive() {
+
+ }
+}