You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by el...@apache.org on 2017/04/01 20:36:20 UTC

[28/51] [partial] calcite-avatica git commit: [CALCITE-1717] Remove Calcite code and lift avatica

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/pom.xml
----------------------------------------------------------------------
diff --git a/avatica/metrics/pom.xml b/avatica/metrics/pom.xml
deleted file mode 100644
index 4fc32df..0000000
--- a/avatica/metrics/pom.xml
+++ /dev/null
@@ -1,129 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-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.
--->
-<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">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.apache.calcite.avatica</groupId>
-    <artifactId>avatica-parent</artifactId>
-    <version>1.10.0-SNAPSHOT</version>
-  </parent>
-
-  <artifactId>avatica-metrics</artifactId>
-  <packaging>jar</packaging>
-  <name>Apache Calcite Avatica Metrics</name>
-  <description>A library designed to abstract away any required dependency on a metrics library</description>
-
-  <properties>
-    <top.dir>${project.basedir}/..</top.dir>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-core</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.eclipse.m2e</groupId>
-          <artifactId>lifecycle-mapping</artifactId>
-          <version>1.0.0</version>
-          <configuration>
-            <lifecycleMappingMetadata>
-              <pluginExecutions>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-checkstyle-plugin</artifactId>
-                    <versionRange>[2.12.1,)</versionRange>
-                    <goals>
-                      <goal>check</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <ignore />
-                  </action>
-                </pluginExecution>
-              </pluginExecutions>
-            </lifecycleMappingMetadata>
-          </configuration>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <version>${maven-dependency-plugin.version}</version>
-        <!-- configurations do not cascade, so all of the definition from
-             ../pom.xml:build:plugin-management:plugins:plugin must be repeated in child poms -->
-        <executions>
-          <execution>
-            <id>analyze</id>
-            <goals>
-              <goal>analyze-only</goal>
-            </goals>
-            <configuration>
-              <failOnWarning>true</failOnWarning>
-              <!-- ignore "unused but declared" warnings -->
-              <ignoredUnusedDeclaredDependencies>
-                <ignoredUnusedDeclaredDependency>org.slf4j:slf4j-log4j12</ignoredUnusedDeclaredDependency>
-              </ignoredUnusedDeclaredDependencies>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <!-- Parent module has the same plugin and does the work of
-           generating -sources.jar for each project. But without the
-           plugin declared here, IDEs don't know the sources are
-           available. -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-source-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>attach-sources</id>
-            <phase>verify</phase>
-            <goals>
-              <goal>jar-no-fork</goal>
-              <goal>test-jar-no-fork</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Counter.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Counter.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Counter.java
deleted file mode 100644
index 87aec1b..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Counter.java
+++ /dev/null
@@ -1,49 +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.
- */
-package org.apache.calcite.avatica.metrics;
-
-/**
- * A mutable number.
- */
-public interface Counter {
-
-  /**
-   * Increment {@code this} by 1.
-   */
-  void increment();
-
-  /**
-   * Increment {@code this} by {@code n}.
-   *
-   * @param n The amount to increment.
-   */
-  void increment(long n);
-
-  /**
-   * Decrement {@code this} by 1.
-   */
-  void decrement();
-
-  /**
-   * Decrement {@code this} by {@code n}.
-   *
-   * @param n The amount to decrement.
-   */
-  void decrement(long n);
-}
-
-// End Counter.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Gauge.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Gauge.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Gauge.java
deleted file mode 100644
index 6313a9a..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Gauge.java
+++ /dev/null
@@ -1,30 +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.
- */
-package org.apache.calcite.avatica.metrics;
-
-/**
- * A metrics which measures a discrete value.
- *
- * @param <T> The value of the Gauge.
- */
-public interface Gauge<T> extends Metric {
-
-  T getValue();
-
-}
-
-// End Gauge.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Histogram.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Histogram.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Histogram.java
deleted file mode 100644
index 633af78..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Histogram.java
+++ /dev/null
@@ -1,40 +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.
- */
-package org.apache.calcite.avatica.metrics;
-
-/**
- * A metric which measures the distribution of values.
- */
-public interface Histogram extends Metric {
-
-  /**
-   * Adds a new value to the distribution.
-   *
-   * @param value The value to add
-   */
-  void update(int value);
-
-  /**
-   * Adds a new value to the distribution.
-   *
-   * @param value The value to add
-   */
-  void update(long value);
-
-}
-
-// End Histogram.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Meter.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Meter.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Meter.java
deleted file mode 100644
index b27f023..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Meter.java
+++ /dev/null
@@ -1,38 +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.
- */
-package org.apache.calcite.avatica.metrics;
-
-/**
- * A metric which measure the rate at which some operation is invoked.
- */
-public interface Meter extends Metric {
-
-  /**
-   * Records one occurrence.
-   */
-  void mark();
-
-  /**
-   * Records {@code events} occurrences.
-   *
-   * @param events Number of occurrences to record.
-   */
-  void mark(long events);
-
-}
-
-// End Meter.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Metric.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Metric.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Metric.java
deleted file mode 100644
index fe133da..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Metric.java
+++ /dev/null
@@ -1,26 +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.
- */
-package org.apache.calcite.avatica.metrics;
-
-/**
- * Parent interface for all metrics.
- */
-public interface Metric {
-
-}
-
-// End Metric.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/MetricsSystem.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/MetricsSystem.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/MetricsSystem.java
deleted file mode 100644
index 0d1cb4b..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/MetricsSystem.java
+++ /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.
- */
-package org.apache.calcite.avatica.metrics;
-
-/**
- * General purpose factory for creating various metrics. Modeled off of the Dropwizard Metrics API.
- */
-public interface MetricsSystem {
-
-  /**
-   * Get or construct a {@link Timer} used to measure durations and report rates.
-   *
-   * @param name The name of the Timer.
-   * @return An instance of {@link Timer}.
-   */
-  Timer getTimer(String name);
-
-  /**
-   * Get or construct a {@link Histogram} used to measure a distribution of values.
-   *
-   * @param name The name of the Histogram.
-   * @return An instance of {@link Histogram}.
-   */
-  Histogram getHistogram(String name);
-
-  /**
-   * Get or construct a {@link Meter} used to measure durations and report distributions (a
-   * combination of a {@link Timer} and a {@link Histogram}.
-   *
-   * @param name The name of the Meter.
-   * @return An instance of {@link Meter}.
-   */
-  Meter getMeter(String name);
-
-  /**
-   * Get or construct a {@link Counter} used to track a mutable number.
-   *
-   * @param name The name of the Counter
-   * @return An instance of {@link Counter}.
-   */
-  Counter getCounter(String name);
-
-  /**
-   * Register a {@link Gauge}. The Gauge will be invoked at a period defined by the implementation
-   * of {@link MetricsSystem}.
-   *
-   * @param name The name of the Gauge.
-   * @param gauge A callback to compute the current value.
-   */
-  <T> void register(String name, Gauge<T> gauge);
-
-}
-
-// End MetricsSystem.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/MetricsSystemConfiguration.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/MetricsSystemConfiguration.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/MetricsSystemConfiguration.java
deleted file mode 100644
index 99b6e8c..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/MetricsSystemConfiguration.java
+++ /dev/null
@@ -1,33 +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.
- */
-package org.apache.calcite.avatica.metrics;
-
-/**
- * A container used by a {@link MetricsSystemFactory} to create a {@link MetricsSystem}.
- *
- * @param <T> Configuration/State for the {@link MetricsSystem}.
- */
-public interface MetricsSystemConfiguration<T> {
-
-  /**
-   * @return Some state or configuration to create a {@link MetricsSystem}.
-   */
-  T get();
-
-}
-
-// End MetricsSystemConfiguration.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/MetricsSystemFactory.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/MetricsSystemFactory.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/MetricsSystemFactory.java
deleted file mode 100644
index 484b230..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/MetricsSystemFactory.java
+++ /dev/null
@@ -1,32 +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.
- */
-package org.apache.calcite.avatica.metrics;
-
-/**
- * A factory class for creating instances of {@link MetricsSystem}.
- */
-public interface MetricsSystemFactory {
-
-  /**
-   * Creates an instance of a {@link MetricsSystem}.
-   *
-   * @return A new {@link MetricsSystem}.
-   */
-  MetricsSystem create(MetricsSystemConfiguration<?> config);
-}
-
-// End MetricsSystemFactory.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/MetricsSystemLoader.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/MetricsSystemLoader.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/MetricsSystemLoader.java
deleted file mode 100644
index 3a15c5b..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/MetricsSystemLoader.java
+++ /dev/null
@@ -1,87 +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.
- */
-package org.apache.calcite.avatica.metrics;
-
-import org.apache.calcite.avatica.metrics.noop.NoopMetricsSystem;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-import java.util.ServiceLoader;
-
-/**
- * A utility encapsulating use of {@link ServiceLoader} to instantiate a {@link MetricsSystem}.
- */
-public class MetricsSystemLoader {
-  private static final Logger LOG = LoggerFactory.getLogger(MetricsSystemLoader.class);
-  private static final MetricsSystemLoader INSTANCE = new MetricsSystemLoader();
-
-  private MetricsSystemLoader() {}
-
-  /**
-   * Creates a {@link MetricsSystem} instance using the corresponding {@link MetricsSystemFactory}
-   * available to {@link ServiceLoader} on the classpath. If there is not exactly one instance of
-   * a {@link MetricsSystemFactory}, an instance of {@link NoopMetricsSystem} will be returned.
-   *
-   * @param config State to pass to the {@link MetricsSystemFactory}.
-   * @return A {@link MetricsSystem} implementation.
-   */
-  public static MetricsSystem load(MetricsSystemConfiguration<?> config) {
-    return INSTANCE._load(Objects.requireNonNull(config));
-  }
-
-  MetricsSystem _load(MetricsSystemConfiguration<?> config) {
-    List<MetricsSystemFactory> availableFactories = getFactories();
-
-    if (1 == availableFactories.size()) {
-      // One and only one instance -- what we want/expect
-      MetricsSystemFactory factory = availableFactories.get(0);
-      LOG.info("Loaded MetricsSystem {}", factory.getClass());
-      return factory.create(config);
-    } else if (availableFactories.isEmpty()) {
-      // None-provided default to no metrics
-      LOG.info("No metrics implementation available on classpath. Using No-op implementation");
-      return NoopMetricsSystem.getInstance();
-    } else {
-      // Tell the user they're doing something wrong, and choose the first impl.
-      StringBuilder sb = new StringBuilder();
-      for (MetricsSystemFactory factory : availableFactories) {
-        if (sb.length() > 0) {
-          sb.append(", ");
-        }
-        sb.append(factory.getClass());
-      }
-      LOG.warn("Found multiple MetricsSystemFactory implementations: {}."
-          + " Using No-op implementation", sb);
-      return NoopMetricsSystem.getInstance();
-    }
-  }
-
-  List<MetricsSystemFactory> getFactories() {
-    ServiceLoader<MetricsSystemFactory> loader = ServiceLoader.load(MetricsSystemFactory.class);
-    List<MetricsSystemFactory> availableFactories = new ArrayList<>();
-    for (MetricsSystemFactory factory : loader) {
-      availableFactories.add(factory);
-    }
-    return availableFactories;
-  }
-}
-
-// End MetricsSystemLoader.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/PackageMarker.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/PackageMarker.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/PackageMarker.java
deleted file mode 100644
index e627d31..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/PackageMarker.java
+++ /dev/null
@@ -1,37 +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.
- */
-package org.apache.calcite.avatica.metrics;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * This is a dummy annotation that forces javac to produce output for
- * otherwise empty package-info.java.
- *
- * <p>The result is maven-compiler-plugin can properly identify the scope of
- * changed files
- *
- * <p>See more details in
- * <a href="https://jira.codehaus.org/browse/MCOMPILER-205">
- *   maven-compiler-plugin: incremental compilation broken</a>
- */
-@Retention(RetentionPolicy.SOURCE)
-public @interface PackageMarker {
-}
-
-// End PackageMarker.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Timer.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Timer.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Timer.java
deleted file mode 100644
index be792cc..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/Timer.java
+++ /dev/null
@@ -1,37 +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.
- */
-package org.apache.calcite.avatica.metrics;
-
-/**
- * A metric which encompasses a {@link Histogram} and {@link Meter}.
- */
-public interface Timer extends Metric {
-
-  Context start();
-
-  /**
-   * A object that tracks an active timing state.
-   */
-  public interface Context extends AutoCloseable {
-    /**
-     * Stops the timer.
-     */
-    void close();
-  }
-}
-
-// End Timer.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopCounter.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopCounter.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopCounter.java
deleted file mode 100644
index 9ce8476..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopCounter.java
+++ /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.
- */
-package org.apache.calcite.avatica.metrics.noop;
-
-import org.apache.calcite.avatica.metrics.Counter;
-
-/**
- * {@link Counter} implementation which does nothing.
- */
-public class NoopCounter implements Counter {
-
-  @Override public void increment() {}
-
-  @Override public void increment(long n) {}
-
-  @Override public void decrement() {}
-
-  @Override public void decrement(long n) {}
-
-}
-
-// End NoopCounter.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopHistogram.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopHistogram.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopHistogram.java
deleted file mode 100644
index ee056e9..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopHistogram.java
+++ /dev/null
@@ -1,32 +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.
- */
-package org.apache.calcite.avatica.metrics.noop;
-
-import org.apache.calcite.avatica.metrics.Histogram;
-
-/**
- * {@link Histogram} which does nothing.
- */
-public class NoopHistogram implements Histogram {
-
-  @Override public void update(int value) {}
-
-  @Override public void update(long value) {}
-
-}
-
-// End NoopHistogram.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopMeter.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopMeter.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopMeter.java
deleted file mode 100644
index 4ad68c9..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopMeter.java
+++ /dev/null
@@ -1,32 +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.
- */
-package org.apache.calcite.avatica.metrics.noop;
-
-import org.apache.calcite.avatica.metrics.Meter;
-
-/**
- * {@link Meter} which does nothing.
- */
-public class NoopMeter implements Meter {
-
-  @Override public void mark() {}
-
-  @Override public void mark(long events) {}
-
-}
-
-// End NoopMeter.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystem.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystem.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystem.java
deleted file mode 100644
index 12b5af1..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystem.java
+++ /dev/null
@@ -1,69 +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.
- */
-package org.apache.calcite.avatica.metrics.noop;
-
-import org.apache.calcite.avatica.metrics.Counter;
-import org.apache.calcite.avatica.metrics.Gauge;
-import org.apache.calcite.avatica.metrics.Histogram;
-import org.apache.calcite.avatica.metrics.Meter;
-import org.apache.calcite.avatica.metrics.Metric;
-import org.apache.calcite.avatica.metrics.MetricsSystem;
-import org.apache.calcite.avatica.metrics.Timer;
-
-/**
- * {@link MetricsSystem} implementation which does nothing. Returns {@link Metric} implementations
- * which also does nothing (avoiding null instances).
- */
-public class NoopMetricsSystem implements MetricsSystem {
-
-  private static final NoopMetricsSystem NOOP_METRICS = new NoopMetricsSystem();
-
-  private static final Timer TIMER = new NoopTimer();
-  private static final Histogram HISTOGRAM = new NoopHistogram();
-  private static final Meter METER = new NoopMeter();
-  private static final Counter COUNTER = new NoopCounter();
-
-  /**
-   * @return A {@link NoopMetricsSystem} instance.
-   */
-  public static NoopMetricsSystem getInstance() {
-    return NOOP_METRICS;
-  }
-
-  private NoopMetricsSystem() {}
-
-  @Override public Timer getTimer(String name) {
-    return TIMER;
-  }
-
-  @Override public Histogram getHistogram(String name) {
-    return HISTOGRAM;
-  }
-
-  @Override public Meter getMeter(String name) {
-    return METER;
-  }
-
-  @Override public Counter getCounter(String name) {
-    return COUNTER;
-  }
-
-  @Override public <T> void register(String name, Gauge<T> gauge) {}
-
-}
-
-// End NoopMetricsSystem.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemConfiguration.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemConfiguration.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemConfiguration.java
deleted file mode 100644
index 42b3f24..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemConfiguration.java
+++ /dev/null
@@ -1,40 +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.
- */
-package org.apache.calcite.avatica.metrics.noop;
-
-import org.apache.calcite.avatica.metrics.MetricsSystemConfiguration;
-
-/**
- * An empty configuration for the {@link NoopMetricsSystem}.
- */
-public class NoopMetricsSystemConfiguration implements MetricsSystemConfiguration<Void> {
-
-  private static final NoopMetricsSystemConfiguration INSTANCE =
-      new NoopMetricsSystemConfiguration();
-
-  public static NoopMetricsSystemConfiguration getInstance() {
-    return INSTANCE;
-  }
-
-  private NoopMetricsSystemConfiguration() {}
-
-  @Override public Void get() {
-    return null;
-  }
-}
-
-// End NoopMetricsSystemConfiguration.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemFactory.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemFactory.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemFactory.java
deleted file mode 100644
index c15f978..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemFactory.java
+++ /dev/null
@@ -1,35 +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.
- */
-package org.apache.calcite.avatica.metrics.noop;
-
-import org.apache.calcite.avatica.metrics.MetricsSystemConfiguration;
-import org.apache.calcite.avatica.metrics.MetricsSystemFactory;
-
-/**
- * A {@link MetricsSystemFactory} for the {@link NoopMetricsSystem}.
- *
- * No service file is provided for this implementation. It is the fallback implementation if
- * no implementation or more than one implementation is found on the classpath.
- */
-public class NoopMetricsSystemFactory implements MetricsSystemFactory {
-
-  @Override public NoopMetricsSystem create(MetricsSystemConfiguration<?> config) {
-    return NoopMetricsSystem.getInstance();
-  }
-}
-
-// End NoopMetricsSystemFactory.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopTimer.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopTimer.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopTimer.java
deleted file mode 100644
index a45cd63..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopTimer.java
+++ /dev/null
@@ -1,43 +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.
- */
-package org.apache.calcite.avatica.metrics.noop;
-
-import org.apache.calcite.avatica.metrics.Timer;
-import org.apache.calcite.avatica.metrics.Timer.Context;
-
-/**
- * {@link Timer} which does nothing.
- */
-public class NoopTimer implements Timer {
-
-  private static final NoopContext CONTEXT = new NoopContext();
-
-  @Override public NoopContext start() {
-    return CONTEXT;
-  }
-
-  /**
-   * {@link Context} which does nothing.
-   */
-  public static class NoopContext implements Context {
-
-    @Override public void close() {}
-
-  }
-}
-
-// End NoopTimer.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/package-info.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/package-info.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/package-info.java
deleted file mode 100644
index 826a655..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/package-info.java
+++ /dev/null
@@ -1,26 +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.
- */
-
-/**
- * No-operation implementation for the Avatica Metrics framework.
- */
-@PackageMarker
-package org.apache.calcite.avatica.metrics.noop;
-
-import org.apache.calcite.avatica.metrics.PackageMarker;
-
-// End package-info.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/package-info.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/package-info.java b/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/package-info.java
deleted file mode 100644
index efed28c..0000000
--- a/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics/package-info.java
+++ /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.
- */
-
-/**
- * Metrics for the Avatica framework.
- */
-@PackageMarker
-package org.apache.calcite.avatica.metrics;
-
-// End package-info.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/test/java/org/apache/calcite/avatica/metrics/MetricsSystemLoaderTest.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/test/java/org/apache/calcite/avatica/metrics/MetricsSystemLoaderTest.java b/avatica/metrics/src/test/java/org/apache/calcite/avatica/metrics/MetricsSystemLoaderTest.java
deleted file mode 100644
index 1c405ee..0000000
--- a/avatica/metrics/src/test/java/org/apache/calcite/avatica/metrics/MetricsSystemLoaderTest.java
+++ /dev/null
@@ -1,114 +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.
- */
-package org.apache.calcite.avatica.metrics;
-
-import org.apache.calcite.avatica.metrics.noop.NoopMetricsSystem;
-import org.apache.calcite.avatica.metrics.noop.NoopMetricsSystemConfiguration;
-
-import org.junit.Test;
-import org.mockito.Mockito;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-
-/**
- * Test class for {@link MetricsSystemLoader}.
- */
-public class MetricsSystemLoaderTest {
-
-  @Test public void testSingleInstance() {
-    final List<MetricsSystemFactory> factories =
-        Collections.<MetricsSystemFactory>singletonList(new MarkedNoopMetricsSystemFactory());
-    MetricsSystemLoader loader = Mockito.mock(MetricsSystemLoader.class);
-
-    Mockito.when(loader.getFactories()).thenReturn(factories);
-    Mockito.when(loader._load(Mockito.any(MetricsSystemConfiguration.class))).thenCallRealMethod();
-
-    // One MetricsSystemFactory should return the MetricsSystem it creates
-    MetricsSystem system = loader._load(NoopMetricsSystemConfiguration.getInstance());
-    assertEquals(MarkedMetricsSystem.INSTANCE, system);
-  }
-
-  @Test public void testMultipleInstances() {
-    // The type of the factories doesn't matter (we can send duplicates for testing purposes)
-    final List<MetricsSystemFactory> factories =
-        Arrays.<MetricsSystemFactory>asList(new MarkedNoopMetricsSystemFactory(),
-            new MarkedNoopMetricsSystemFactory());
-    MetricsSystemLoader loader = Mockito.mock(MetricsSystemLoader.class);
-
-    Mockito.when(loader.getFactories()).thenReturn(factories);
-    Mockito.when(loader._load(Mockito.any(MetricsSystemConfiguration.class))).thenCallRealMethod();
-
-    // We had two factories loaded, therefore we'll fall back to the NoopMetricsSystem
-    MetricsSystem system = loader._load(NoopMetricsSystemConfiguration.getInstance());
-    assertEquals(NoopMetricsSystem.getInstance(), system);
-  }
-
-  @Test public void testNoInstances() {
-    // The type of the factories doesn't matter (we can send duplicates for testing purposes)
-    final List<MetricsSystemFactory> factories = Collections.emptyList();
-    MetricsSystemLoader loader = Mockito.mock(MetricsSystemLoader.class);
-
-    Mockito.when(loader.getFactories()).thenReturn(factories);
-    Mockito.when(loader._load(Mockito.any(MetricsSystemConfiguration.class))).thenCallRealMethod();
-
-    // We had no factories loaded, therefore we'll fall back to the NoopMetricsSystem
-    MetricsSystem system = loader._load(NoopMetricsSystemConfiguration.getInstance());
-    assertEquals(NoopMetricsSystem.getInstance(), system);
-  }
-
-  /**
-   * A test factory implementation which can return a recognized MetricsSystem implementation.
-   */
-  private static class MarkedNoopMetricsSystemFactory implements MetricsSystemFactory {
-    public MarkedMetricsSystem create(MetricsSystemConfiguration<?> config) {
-      return MarkedMetricsSystem.INSTANCE;
-    }
-  }
-
-  /**
-   * A metrics system implementation that is identifiable for testing.
-   */
-  private static class MarkedMetricsSystem implements MetricsSystem {
-    private static final MarkedMetricsSystem INSTANCE = new MarkedMetricsSystem();
-
-    private MarkedMetricsSystem() {}
-
-    @Override public Timer getTimer(String name) {
-      return null;
-    }
-
-    @Override public Histogram getHistogram(String name) {
-      return null;
-    }
-
-    @Override public Meter getMeter(String name) {
-      return null;
-    }
-
-    @Override public Counter getCounter(String name) {
-      return null;
-    }
-
-    @Override public <T> void register(String name, Gauge<T> gauge) {}
-  }
-}
-
-// End MetricsSystemLoaderTest.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/test/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemFactoryTest.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/test/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemFactoryTest.java b/avatica/metrics/src/test/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemFactoryTest.java
deleted file mode 100644
index 3060b2f..0000000
--- a/avatica/metrics/src/test/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemFactoryTest.java
+++ /dev/null
@@ -1,37 +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.
- */
-package org.apache.calcite.avatica.metrics.noop;
-
-import org.junit.Test;
-
-import static org.junit.Assert.assertTrue;
-
-/**
- * Test class for {@link NoopMetricsSystemFactory}.
- */
-public class NoopMetricsSystemFactoryTest {
-
-  @Test public void testSingleton() {
-    NoopMetricsSystemFactory factory = new NoopMetricsSystemFactory();
-    NoopMetricsSystemConfiguration config = NoopMetricsSystemConfiguration.getInstance();
-    assertTrue("The factory should only return one NoopMetricsSystem instance",
-        factory.create(config) == factory.create(config));
-  }
-
-}
-
-// End NoopMetricsSystemFactoryTest.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/test/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemTest.java
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/test/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemTest.java b/avatica/metrics/src/test/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemTest.java
deleted file mode 100644
index f28d123..0000000
--- a/avatica/metrics/src/test/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemTest.java
+++ /dev/null
@@ -1,73 +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.
- */
-package org.apache.calcite.avatica.metrics.noop;
-
-import org.apache.calcite.avatica.metrics.Counter;
-import org.apache.calcite.avatica.metrics.Gauge;
-import org.apache.calcite.avatica.metrics.Histogram;
-import org.apache.calcite.avatica.metrics.Meter;
-import org.apache.calcite.avatica.metrics.MetricsSystem;
-import org.apache.calcite.avatica.metrics.Timer;
-import org.apache.calcite.avatica.metrics.Timer.Context;
-
-import org.junit.Test;
-
-import static org.junit.Assert.assertTrue;
-
-/**
- * Tests for {@link NoopMetricsSystem}.
- */
-public class NoopMetricsSystemTest {
-
-  @Test public void testNoNulls() {
-    // The NOOP implementation should act as a real implementation, no "nulls" allowed.
-    MetricsSystem metrics = NoopMetricsSystem.getInstance();
-
-    Counter counter = metrics.getCounter("counter");
-    counter.decrement();
-    counter.increment();
-    counter.decrement(1L);
-    counter.increment(1L);
-
-    Histogram histogram = metrics.getHistogram("histogram");
-    histogram.update(1);
-    histogram.update(1L);
-
-    Timer timer = metrics.getTimer("timer");
-    Context context = timer.start();
-    context.close();
-    Context contextTwo = timer.start();
-    assertTrue("Timer's context should be a singleton", context == contextTwo);
-
-    Meter meter = metrics.getMeter("meter");
-    meter.mark();
-    meter.mark(5L);
-
-    metrics.register("gauge", new Gauge<Long>() {
-      @Override public Long getValue() {
-        return 42L;
-      }
-    });
-  }
-
-  @Test public void testSingleton() {
-    assertTrue("Should be a singleton",
-        NoopMetricsSystem.getInstance() == NoopMetricsSystem.getInstance());
-  }
-}
-
-// End NoopMetricsSystemTest.java

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/metrics/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/avatica/metrics/src/test/resources/log4j.properties b/avatica/metrics/src/test/resources/log4j.properties
deleted file mode 100644
index 834e2db..0000000
--- a/avatica/metrics/src/test/resources/log4j.properties
+++ /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.
-
-# Root logger is configured at INFO and is sent to A1
-log4j.rootLogger=INFO, A1
-
-# A1 goes to the console
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
-
-# Set the pattern for each log message
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p - %m%n

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/noop-driver/pom.xml
----------------------------------------------------------------------
diff --git a/avatica/noop-driver/pom.xml b/avatica/noop-driver/pom.xml
deleted file mode 100644
index b15d7a7..0000000
--- a/avatica/noop-driver/pom.xml
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-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.
--->
-<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">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.apache.calcite.avatica</groupId>
-    <artifactId>avatica-parent</artifactId>
-    <version>1.10.0-SNAPSHOT</version>
-  </parent>
-
-  <artifactId>avatica-noop-driver</artifactId>
-  <packaging>jar</packaging>
-  <name>Apache Calcite Avatica Noop Driver</name>
-  <description>A Noop JDBC driver.</description>
-
-  <properties>
-    <top.dir>${project.basedir}/..</top.dir>
-  </properties>
-
-  <build>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.eclipse.m2e</groupId>
-          <artifactId>lifecycle-mapping</artifactId>
-          <version>1.0.0</version>
-          <configuration>
-            <lifecycleMappingMetadata>
-              <pluginExecutions>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-checkstyle-plugin</artifactId>
-                    <versionRange>[2.12.1,)</versionRange>
-                    <goals>
-                      <goal>check</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <ignore />
-                  </action>
-                </pluginExecution>
-              </pluginExecutions>
-            </lifecycleMappingMetadata>
-          </configuration>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-    <plugins>
-      <!-- Parent module has the same plugin and does the work of
-           generating -sources.jar for each project. But without the
-           plugin declared here, IDEs don't know the sources are
-           available. -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-source-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>attach-sources</id>
-            <phase>verify</phase>
-            <goals>
-              <goal>jar-no-fork</goal>
-              <goal>test-jar-no-fork</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-
-      <!-- Produce a tests jar so that avatica-server/pom.xml can reference for suite.
-           TODO: remove after moving over to annotation-based TestSuite definitions. -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jar-plugin</artifactId>
-        <executions>
-          <execution>
-            <goals>
-              <goal>test-jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-        <configuration>
-          <excludes>
-            <exclude>src/main/resources/META-INF/services/java.sql.Driver</exclude>
-          </excludes>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>

http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/noop-driver/src/main/java/org/apache/calcite/avatica/noop/AvaticaNoopConnection.java
----------------------------------------------------------------------
diff --git a/avatica/noop-driver/src/main/java/org/apache/calcite/avatica/noop/AvaticaNoopConnection.java b/avatica/noop-driver/src/main/java/org/apache/calcite/avatica/noop/AvaticaNoopConnection.java
deleted file mode 100644
index 6870717..0000000
--- a/avatica/noop-driver/src/main/java/org/apache/calcite/avatica/noop/AvaticaNoopConnection.java
+++ /dev/null
@@ -1,256 +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.
- */
-package org.apache.calcite.avatica.noop;
-
-import java.sql.Array;
-import java.sql.Blob;
-import java.sql.CallableStatement;
-import java.sql.Clob;
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.NClob;
-import java.sql.PreparedStatement;
-import java.sql.SQLClientInfoException;
-import java.sql.SQLException;
-import java.sql.SQLWarning;
-import java.sql.SQLXML;
-import java.sql.Savepoint;
-import java.sql.Statement;
-import java.sql.Struct;
-import java.util.Collections;
-import java.util.Map;
-import java.util.Properties;
-import java.util.concurrent.Executor;
-
-/**
- * A {@link Connection} implementation which does nothing.
- */
-public class AvaticaNoopConnection implements Connection {
-
-  private static final AvaticaNoopConnection INSTANCE = new AvaticaNoopConnection();
-
-  public static AvaticaNoopConnection getInstance() {
-    return INSTANCE;
-  }
-
-  private AvaticaNoopConnection() {}
-
-  private UnsupportedOperationException unsupported() {
-    return new UnsupportedOperationException("Unsupported");
-  }
-
-  @Override public <T> T unwrap(Class<T> iface) throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public boolean isWrapperFor(Class<?> iface) throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public Statement createStatement() throws SQLException {
-    return AvaticaNoopStatement.getInstance();
-  }
-
-  @Override public PreparedStatement prepareStatement(String sql) throws SQLException {
-    return AvaticaNoopPreparedStatement.getInstance();
-  }
-
-  @Override public CallableStatement prepareCall(String sql) throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public String nativeSQL(String sql) throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public void setAutoCommit(boolean autoCommit) throws SQLException {}
-
-  @Override public boolean getAutoCommit() throws SQLException {
-    return false;
-  }
-
-  @Override public void commit() throws SQLException {}
-
-  @Override public void rollback() throws SQLException {}
-
-  @Override public void close() throws SQLException {}
-
-  @Override public boolean isClosed() throws SQLException {
-    return true;
-  }
-
-  @Override public DatabaseMetaData getMetaData() throws SQLException {
-    return AvaticaNoopDatabaseMetaData.getInstance();
-  }
-
-  @Override public void setReadOnly(boolean readOnly) throws SQLException {}
-
-  @Override public boolean isReadOnly() throws SQLException {
-    return false;
-  }
-
-  @Override public void setCatalog(String catalog) throws SQLException {}
-
-  @Override public String getCatalog() throws SQLException {
-    return null;
-  }
-
-  @Override public void setTransactionIsolation(int level) throws SQLException {}
-
-  @Override public int getTransactionIsolation() throws SQLException {
-    return 0;
-  }
-
-  @Override public SQLWarning getWarnings() throws SQLException {
-    return null;
-  }
-
-  @Override public void clearWarnings() throws SQLException {}
-
-  @Override public Statement createStatement(int resultSetType, int resultSetConcurrency)
-      throws SQLException {
-    return AvaticaNoopStatement.getInstance();
-  }
-
-  @Override public PreparedStatement prepareStatement(String sql, int resultSetType,
-      int resultSetConcurrency) throws SQLException {
-    return AvaticaNoopPreparedStatement.getInstance();
-  }
-
-  @Override public CallableStatement prepareCall(String sql, int resultSetType,
-      int resultSetConcurrency) throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public Map<String, Class<?>> getTypeMap() throws SQLException {
-    return Collections.emptyMap();
-  }
-
-  @Override public void setTypeMap(Map<String, Class<?>> map) throws SQLException {}
-
-  @Override public void setHoldability(int holdability) throws SQLException {}
-
-  @Override public int getHoldability() throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public Savepoint setSavepoint() throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public Savepoint setSavepoint(String name) throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public void rollback(Savepoint savepoint) throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public void releaseSavepoint(Savepoint savepoint) throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public Statement createStatement(int resultSetType, int resultSetConcurrency,
-      int resultSetHoldability) throws SQLException {
-    return AvaticaNoopStatement.getInstance();
-  }
-
-  @Override public PreparedStatement prepareStatement(String sql, int resultSetType,
-      int resultSetConcurrency, int resultSetHoldability) throws SQLException {
-    return AvaticaNoopPreparedStatement.getInstance();
-  }
-
-  @Override public CallableStatement prepareCall(String sql, int resultSetType,
-      int resultSetConcurrency, int resultSetHoldability) throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys)
-      throws SQLException {
-    return AvaticaNoopPreparedStatement.getInstance();
-  }
-
-  @Override public PreparedStatement prepareStatement(String sql, int[] columnIndexes)
-      throws SQLException {
-    return AvaticaNoopPreparedStatement.getInstance();
-  }
-
-  @Override public PreparedStatement prepareStatement(String sql, String[] columnNames)
-      throws SQLException {
-    return AvaticaNoopPreparedStatement.getInstance();
-  }
-
-  @Override public Clob createClob() throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public Blob createBlob() throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public NClob createNClob() throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public SQLXML createSQLXML() throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public boolean isValid(int timeout) throws SQLException {
-    return true;
-  }
-
-  @Override public void setClientInfo(String name, String value) throws SQLClientInfoException {}
-
-  @Override public void setClientInfo(Properties properties) throws SQLClientInfoException {}
-
-  @Override public String getClientInfo(String name) throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public Properties getClientInfo() throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public Array createArrayOf(String typeName, Object[] elements) throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public Struct createStruct(String typeName, Object[] attributes) throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public void setSchema(String schema) throws SQLException {}
-
-  @Override public String getSchema() throws SQLException {
-    return null;
-  }
-
-  @Override public void abort(Executor executor) throws SQLException {
-    throw unsupported();
-  }
-
-  @Override public void setNetworkTimeout(Executor executor, int milliseconds)
-      throws SQLException {}
-
-  @Override public int getNetworkTimeout() throws SQLException {
-    throw unsupported();
-  }
-
-}
-
-// End AvaticaNoopConnection.java