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
