You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by vl...@apache.org on 2018/09/24 21:38:18 UTC
calcite git commit: [CALCITE-2458] Add Kotlin as a test dependency
Repository: calcite
Updated Branches:
refs/heads/master 6770e2b21 -> 55d86646f
[CALCITE-2458] Add Kotlin as a test dependency
Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/55d86646
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/55d86646
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/55d86646
Branch: refs/heads/master
Commit: 55d86646fe598d215bd53dbeac2bbbf32a9506f9
Parents: 6770e2b
Author: Vladimir Sitnikov <si...@gmail.com>
Authored: Thu Aug 9 22:20:38 2018 +0300
Committer: Vladimir Sitnikov <si...@gmail.com>
Committed: Tue Sep 25 00:21:48 2018 +0300
----------------------------------------------------------------------
core/pom.xml | 50 ++++++++++++++++
.../org/apache/calcite/test/CalciteSuite.java | 2 +
.../kotlin/org/apache/calcite/TestKtTest.kt | 13 ++++
pom.xml | 63 ++++++++++++++++++++
4 files changed, 128 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/calcite/blob/55d86646/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 3410e37..86c384d 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -106,6 +106,21 @@ limitations under the License.
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-stdlib</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-test</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-test-junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>test</scope>
@@ -211,8 +226,43 @@ limitations under the License.
</executions>
</plugin>
<plugin>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
+ <!-- http://kotlinlang.org/docs/reference/using-maven.html#compiling-kotlin-and-java-sources
+ Ensure kotlin-compile comes before maven-compiler-plugin, so Kotlin files
+ can be used in Java code (this especially important so CalciteSuite.java
+ can include Kotlin tests as well)
+ -->
+ <executions>
+ <!-- Replacing default-compile as it is treated specially by maven -->
+ <execution>
+ <id>default-compile</id>
+ <phase>none</phase>
+ </execution>
+ <!-- Replacing default-testCompile as it is treated specially by maven -->
+ <execution>
+ <id>default-testCompile</id>
+ <phase>none</phase>
+ </execution>
+ <execution>
+ <id>java-compile</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>java-test-compile</id>
+ <phase>test-compile</phase>
+ <goals>
+ <goal>testCompile</goal>
+ </goals>
+ </execution>
+ </executions>
<configuration>
<source>8</source>
<target>8</target>
http://git-wip-us.apache.org/repos/asf/calcite/blob/55d86646/core/src/test/java/org/apache/calcite/test/CalciteSuite.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/CalciteSuite.java b/core/src/test/java/org/apache/calcite/test/CalciteSuite.java
index 2c16620..27c7b1b 100644
--- a/core/src/test/java/org/apache/calcite/test/CalciteSuite.java
+++ b/core/src/test/java/org/apache/calcite/test/CalciteSuite.java
@@ -16,6 +16,7 @@
*/
package org.apache.calcite.test;
+import org.apache.calcite.TestKtTest;
import org.apache.calcite.adapter.clone.ArrayTableTest;
import org.apache.calcite.jdbc.CalciteRemoteDriverTest;
import org.apache.calcite.plan.RelOptPlanReaderTest;
@@ -81,6 +82,7 @@ import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({
// very fast tests (under 0.1s)
+ TestKtTest.class,
ArrayTableTest.class,
BitSetsTest.class,
ImmutableBitSetTest.class,
http://git-wip-us.apache.org/repos/asf/calcite/blob/55d86646/core/src/test/kotlin/org/apache/calcite/TestKtTest.kt
----------------------------------------------------------------------
diff --git a/core/src/test/kotlin/org/apache/calcite/TestKtTest.kt b/core/src/test/kotlin/org/apache/calcite/TestKtTest.kt
new file mode 100644
index 0000000..7d8e4fa
--- /dev/null
+++ b/core/src/test/kotlin/org/apache/calcite/TestKtTest.kt
@@ -0,0 +1,13 @@
+package org.apache.calcite
+
+import org.junit.Test
+import kotlin.test.assertEquals
+import kotlin.test.junit.JUnitAsserter
+
+class TestKtTest {
+ @Test
+ fun `a test to verify how Kotlin test passes in CI`() {
+ JUnitAsserter.hashCode() // make maven-dependency-plugin happy
+ assertEquals("Hello, world", "Hello, world", message = "42")
+ }
+}
http://git-wip-us.apache.org/repos/asf/calcite/blob/55d86646/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 3ab3658..3e3e249 100644
--- a/pom.xml
+++ b/pom.xml
@@ -106,6 +106,7 @@ limitations under the License.
<jmh.version>1.12</jmh.version>
<jsoup.version>1.11.3</jsoup.version>
<junit.version>4.12</junit.version>
+ <kotlin.version>1.2.71</kotlin.version>
<checkstyle.version>7.8.2</checkstyle.version>
<maven-checkstyle-plugin.version>3.0.0</maven-checkstyle-plugin.version>
<maven-dependency-plugin.version>3.1.1</maven-dependency-plugin.version>
@@ -249,6 +250,30 @@ limitations under the License.
<version>${cassandra.version}</version>
</dependency>
<dependency>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-stdlib</artifactId>
+ <version>${kotlin.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-stdlib-jdk8</artifactId>
+ <version>${kotlin.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-test</artifactId>
+ <version>${kotlin.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-test-junit</artifactId>
+ <version>${kotlin.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>com.esri.geometry</groupId>
<artifactId>esri-geometry-api</artifactId>
<version>${esri-geometry-api.version}</version>
@@ -980,6 +1005,44 @@ limitations under the License.
<artifactId>git-commit-id-plugin</artifactId>
<version>${git-commit-id-plugin.version}</version>
</plugin>
+ <plugin>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-maven-plugin</artifactId>
+ <version>${kotlin.version}</version>
+ <executions>
+ <!-- Kotlin is supposed to be used in test code only for now,
+ that is why compile execution is commented. -->
+ <!--<execution>
+ <id>compile</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ <configuration>
+ <sourceDirs>
+ <sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
+ <sourceDir>${project.basedir}/src/main/java</sourceDir>
+ </sourceDirs>
+ </configuration>
+ </execution>-->
+ <execution>
+ <id>test-compile</id>
+ <phase>test-compile</phase>
+ <goals>
+ <goal>test-compile</goal>
+ </goals>
+ <configuration>
+ <sourceDirs>
+ <sourceDir>${project.basedir}/src/test/kotlin</sourceDir>
+ <sourceDir>${project.basedir}/src/test/java</sourceDir>
+ </sourceDirs>
+ </configuration>
+ </execution>
+ </executions>
+ <configuration>
+ <jvmTarget>1.8</jvmTarget>
+ </configuration>
+ </plugin>
</plugins>
</pluginManagement>
</build>