You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by nd...@apache.org on 2015/04/24 23:41:14 UTC

phoenix git commit: PHOENIX-1915 QueryServerBasicsIT should bind QS instance to random port

Repository: phoenix
Updated Branches:
  refs/heads/master e35662052 -> 56c713ca3


PHOENIX-1915 QueryServerBasicsIT should bind QS instance to random port


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/56c713ca
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/56c713ca
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/56c713ca

Branch: refs/heads/master
Commit: 56c713ca36e9be9885f5366b6a567a564e9f8db9
Parents: e356620
Author: Nick Dimiduk <nd...@apache.org>
Authored: Fri Apr 24 12:39:29 2015 -0700
Committer: Nick Dimiduk <nd...@apache.org>
Committed: Fri Apr 24 14:28:51 2015 -0700

----------------------------------------------------------------------
 .../phoenix/end2end/QueryServerBasicsIT.java    | 23 ++++---
 .../src/it/resources/log4j.properties           | 63 ++++++++++++++++++++
 .../apache/phoenix/queryserver/server/Main.java | 12 ++--
 3 files changed, 85 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/56c713ca/phoenix-server/src/it/java/org/apache/phoenix/end2end/QueryServerBasicsIT.java
----------------------------------------------------------------------
diff --git a/phoenix-server/src/it/java/org/apache/phoenix/end2end/QueryServerBasicsIT.java b/phoenix-server/src/it/java/org/apache/phoenix/end2end/QueryServerBasicsIT.java
index c3b6115..3b18c4e 100644
--- a/phoenix-server/src/it/java/org/apache/phoenix/end2end/QueryServerBasicsIT.java
+++ b/phoenix-server/src/it/java/org/apache/phoenix/end2end/QueryServerBasicsIT.java
@@ -19,7 +19,9 @@ package org.apache.phoenix.end2end;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.phoenix.queryserver.client.ThinClientUtil;
+import org.apache.phoenix.queryserver.server.Main;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -49,16 +51,19 @@ public class QueryServerBasicsIT extends BaseHBaseManagedTimeIT {
   private static final Log LOG = LogFactory.getLog(QueryServerBasicsIT.class);
 
   private static QueryServerThread AVATICA_SERVER;
+  private static Configuration CONF;
   private static String CONN_STRING;
 
   @BeforeClass
   public static void beforeClass() throws Exception {
+    CONF = getTestClusterConfig();
+    CONF.setInt(Main.QUERY_SERVER_HTTP_PORT_KEY, 0);
     String url = getUrl();
-    AVATICA_SERVER = new QueryServerThread(new String[] { url }, getTestClusterConfig(),
-        QueryServerBasicsIT.class.getName());
+    AVATICA_SERVER = new QueryServerThread(new String[] { url }, CONF,
+            QueryServerBasicsIT.class.getName());
     AVATICA_SERVER.start();
-    final int port = AVATICA_SERVER.getMain().getPort();
     AVATICA_SERVER.getMain().awaitRunning();
+    final int port = AVATICA_SERVER.getMain().getPort();
     LOG.info("Avatica server started on port " + port);
     CONN_STRING = ThinClientUtil.getConnectionUrl("localhost", port);
     LOG.info("JDBC connection string is " + CONN_STRING);
@@ -110,18 +115,20 @@ public class QueryServerBasicsIT extends BaseHBaseManagedTimeIT {
 
   @Test
   public void smokeTest() throws Exception {
+    final String tableName = getClass().getSimpleName().toUpperCase() + System.currentTimeMillis();
     try (final Connection connection = DriverManager.getConnection(CONN_STRING)) {
       assertThat(connection.isClosed(), is(false));
       connection.setAutoCommit(true);
       try (final Statement stmt = connection.createStatement()) {
-        assertFalse(stmt.execute("CREATE TABLE TEST_TABLE("
+        assertFalse(stmt.execute("DROP TABLE IF EXISTS " + tableName));
+        assertFalse(stmt.execute("CREATE TABLE " + tableName + "("
             + "id INTEGER NOT NULL, "
             + "pk varchar(3) NOT NULL "
             + "CONSTRAINT PK_CONSTRAINT PRIMARY KEY (id, pk))"));
         assertEquals(0, stmt.getUpdateCount());
-        assertEquals(1, stmt.executeUpdate("UPSERT INTO TEST_TABLE VALUES(1, 'foo')"));
-        assertEquals(1, stmt.executeUpdate("UPSERT INTO TEST_TABLE VALUES(2, 'bar')"));
-        assertTrue(stmt.execute("SELECT * FROM TEST_TABLE"));
+        assertEquals(1, stmt.executeUpdate("UPSERT INTO " + tableName + " VALUES(1, 'foo')"));
+        assertEquals(1, stmt.executeUpdate("UPSERT INTO " + tableName + " VALUES(2, 'bar')"));
+        assertTrue(stmt.execute("SELECT * FROM " + tableName));
         try (final ResultSet resultSet = stmt.getResultSet()) {
           assertTrue(resultSet.next());
           assertEquals(1, resultSet.getInt(1));
@@ -131,7 +138,7 @@ public class QueryServerBasicsIT extends BaseHBaseManagedTimeIT {
           assertEquals("bar", resultSet.getString(2));
         }
       }
-      final String sql = "SELECT * FROM TEST_TABLE WHERE id = ?";
+      final String sql = "SELECT * FROM " + tableName + " WHERE id = ?";
       try (final PreparedStatement stmt = connection.prepareStatement(sql)) {
         stmt.setInt(1, 1);
         try (ResultSet resultSet = stmt.executeQuery()) {

http://git-wip-us.apache.org/repos/asf/phoenix/blob/56c713ca/phoenix-server/src/it/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/phoenix-server/src/it/resources/log4j.properties b/phoenix-server/src/it/resources/log4j.properties
new file mode 100644
index 0000000..6b1ce50
--- /dev/null
+++ b/phoenix-server/src/it/resources/log4j.properties
@@ -0,0 +1,63 @@
+# 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.
+
+# Define some default values that can be overridden by system properties
+hbase.root.logger=DEBUG,console
+hbase.log.dir=.
+hbase.log.file=hbase.log
+
+# Define the root logger to the system property "hbase.root.logger".
+log4j.rootLogger=${hbase.root.logger}
+
+# Logging Threshold
+log4j.threshhold=ALL
+
+#
+# Daily Rolling File Appender
+#
+log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.DRFA.File=${hbase.log.dir}/${hbase.log.file}
+
+# Rollver at midnight
+log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
+
+# 30-day backup
+#log4j.appender.DRFA.MaxBackupIndex=30
+log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout
+
+# Pattern format: Date LogLevel LoggerName LogMessage
+#log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
+
+# Debugging Pattern format
+log4j.appender.DRFA.layout.ConversionPattern=%d %-5p [%t] %C{2}(%L): %m%n
+
+
+#
+# console
+# Add "console" to rootlogger above if you want to use this
+#
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.target=System.err
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+log4j.appender.console.layout.ConversionPattern=%d %-5p [%t] %C{2}(%L): %m%n
+
+# Custom Logging levels
+
+#log4j.logger.org.apache.hadoop.fs.FSNamesystem=DEBUG
+
+log4j.logger.org.apache.hadoop=WARN
+log4j.logger.org.apache.zookeeper=ERROR
+log4j.logger.org.apache.hadoop.hbase=DEBUG

http://git-wip-us.apache.org/repos/asf/phoenix/blob/56c713ca/phoenix-server/src/main/java/org/apache/phoenix/queryserver/server/Main.java
----------------------------------------------------------------------
diff --git a/phoenix-server/src/main/java/org/apache/phoenix/queryserver/server/Main.java b/phoenix-server/src/main/java/org/apache/phoenix/queryserver/server/Main.java
index 52529d5..b099f91 100644
--- a/phoenix-server/src/main/java/org/apache/phoenix/queryserver/server/Main.java
+++ b/phoenix-server/src/main/java/org/apache/phoenix/queryserver/server/Main.java
@@ -60,7 +60,7 @@ public final class Main extends Configured implements Tool, Runnable {
 
   private final String[] argv;
   private final CountDownLatch runningLatch = new CountDownLatch(1);
-  private int port = DEFAULT_HTTP_PORT;
+  private HttpServer server = null;
   private int retCode = 0;
   private Throwable t = null;
 
@@ -76,11 +76,12 @@ public final class Main extends Configured implements Tool, Runnable {
   }
 
   /**
-   * @return the port number this instance is bound to.
+   * @return the port number this instance is bound to, or {@code -1} if the server is not running.
    */
   @VisibleForTesting
   public int getPort() {
-    return port;
+    if (server == null) return -1;
+    return server.getPort();
   }
 
   /**
@@ -126,12 +127,13 @@ public final class Main extends Configured implements Tool, Runnable {
       }
       Class<? extends PhoenixMetaFactory> factoryClass = getConf().getClass(
           QUERY_SERVER_META_FACTORY_KEY, PhoenixMetaFactoryImpl.class, PhoenixMetaFactory.class);
-      port = getConf().getInt(QUERY_SERVER_HTTP_PORT_KEY, DEFAULT_HTTP_PORT);
+      int port = getConf().getInt(QUERY_SERVER_HTTP_PORT_KEY, DEFAULT_HTTP_PORT);
+      LOG.debug("Listening on port " + port);
       PhoenixMetaFactory factory =
           factoryClass.getDeclaredConstructor(Configuration.class).newInstance(getConf());
       Meta meta = factory.create(Arrays.asList(args));
       Service service = new LocalService(meta);
-      HttpServer server = new HttpServer(port, new AvaticaHandler(service));
+      server = new HttpServer(port, new AvaticaHandler(service));
       server.start();
       runningLatch.countDown();
       server.join();