Skip to content

Commit

Permalink
Support connecting to HiveServer2 with ZooKeeper Service Discovery en…
Browse files Browse the repository at this point in the history
…abled in GraalVM Native Image
  • Loading branch information
linghengqian committed Nov 23, 2024
1 parent 4d7eebf commit 48026d7
Show file tree
Hide file tree
Showing 14 changed files with 2,280 additions and 36 deletions.
11 changes: 11 additions & 0 deletions doc/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@

## v1

### 1.6.0-SNAPSHOT

1. Support connecting to HiveServer2 with ZooKeeper Service Discovery enabled in GraalVM Native Image.

Build from `apache/hive:rel/release-4.0.1`.

```
io.github.linghengqian:hive-server2-jdbc-driver-thin:1.6.0-SNAPSHOT
io.github.linghengqian:hive-server2-jdbc-driver-uber:1.6.0-SNAPSHOT
```

### 1.5.0

1. Bump base HiveServer2 JDBC Driver version to `4.0.1`.
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"resources":{
"includes":[{
"condition":{"typeReachable":"org.apache.calcite.avatica.remote.Driver"},
"pattern":"\\Qorg-apache-calcite-jdbc.properties\\E"
}]},
"bundles":[]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
[
{
"condition":{"typeReachable":"org.apache.zookeeper.ZooKeeper"},
"name":"org.apache.zookeeper.ClientCnxnSocketNIO",
"methods":[{"name":"<init>","parameterTypes":["org.apache.zookeeper.client.ZKClientConfig"] }]
},
{
"condition":{"typeReachable":"org.apache.zookeeper.metrics.impl.MetricsProviderBootstrap"},
"name":"org.apache.zookeeper.metrics.impl.DefaultMetricsProvider",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"condition":{"typeReachable":"org.apache.zookeeper.server.quorum.QuorumPeerConfig"},
"name":"org.apache.zookeeper.metrics.impl.DefaultMetricsProvider"
},
{
"condition":{"typeReachable":"org.apache.zookeeper.server.ServerCnxnFactory"},
"name":"org.apache.zookeeper.server.ConnectionBean",
"queryAllPublicConstructors":true
},
{
"condition":{"typeReachable":"org.apache.zookeeper.server.ServerCnxnFactory"},
"name":"org.apache.zookeeper.server.ConnectionMXBean",
"queryAllPublicMethods":true
},
{
"condition":{"typeReachable":"org.apache.zookeeper.server.ZooKeeperServer"},
"name":"org.apache.zookeeper.server.DataTreeBean",
"queryAllPublicConstructors":true
},
{
"condition":{"typeReachable":"org.apache.zookeeper.server.ZooKeeperServer"},
"name":"org.apache.zookeeper.server.DataTreeMXBean",
"queryAllPublicMethods":true
},
{
"condition":{"typeReachable":"org.apache.zookeeper.server.ServerCnxnFactory"},
"name":"org.apache.zookeeper.server.NIOServerCnxnFactory",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"condition":{"typeReachable":"org.apache.zookeeper.server.ZooKeeperServer"},
"name":"org.apache.zookeeper.server.ZooKeeperServerBean",
"queryAllPublicConstructors":true
},
{
"condition":{"typeReachable":"org.apache.zookeeper.server.ZooKeeperServer"},
"name":"org.apache.zookeeper.server.ZooKeeperServerMXBean",
"queryAllPublicMethods":true
},
{
"condition":{"typeReachable":"org.apache.zookeeper.server.watch.WatchManagerFactory"},
"name":"org.apache.zookeeper.server.watch.WatchManager",
"methods":[{"name":"<init>","parameterTypes":[] }]
}
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
[
{
"condition":{"typeReachable":"org.testcontainers.shaded.com.fasterxml.jackson.databind.util.ArrayBuilders"},
"name":"[Lorg.testcontainers.shaded.com.fasterxml.jackson.databind.deser.BeanDeserializerModifier;"
},
{
"condition":{"typeReachable":"org.testcontainers.jdbc.ContainerDatabaseDriver"},
"name":"org.testcontainers.containers.ClickHouseProvider"
},
{
"condition":{"typeReachable":"org.testcontainers.jdbc.ContainerDatabaseDriver"},
"name":"org.testcontainers.containers.MSSQLServerContainerProvider"
},
{
"condition":{"typeReachable":"org.testcontainers.jdbc.ContainerDatabaseDriver"},
"name":"org.testcontainers.containers.PgVectorContainerProvider"
},
{
"condition":{"typeReachable":"org.testcontainers.jdbc.ContainerDatabaseDriver"},
"name":"org.testcontainers.containers.PostgisContainerProvider"
},
{
"condition":{"typeReachable":"org.testcontainers.jdbc.ContainerDatabaseDriver"},
"name":"org.testcontainers.containers.PostgreSQLContainerProvider"
},
{
"condition":{"typeReachable":"org.testcontainers.jdbc.ContainerDatabaseDriver"},
"name":"org.testcontainers.containers.TimescaleDBContainerProvider"
},
{
"condition":{"typeReachable":"org.testcontainers.DockerClientFactory"},
"name":"org.testcontainers.dockerclient.DockerDesktopClientProviderStrategy"
},
{
"condition":{"typeReachable":"org.testcontainers.DockerClientFactory"},
"name":"org.testcontainers.dockerclient.DockerMachineClientProviderStrategy"
},
{
"condition":{"typeReachable":"org.testcontainers.DockerClientFactory"},
"name":"org.testcontainers.dockerclient.EnvironmentAndSystemPropertyClientProviderStrategy"
},
{
"condition":{"typeReachable":"org.testcontainers.DockerClientFactory"},
"name":"org.testcontainers.dockerclient.NpipeSocketClientProviderStrategy"
},
{
"condition":{"typeReachable":"org.testcontainers.DockerClientFactory"},
"name":"org.testcontainers.dockerclient.RootlessDockerClientProviderStrategy"
},
{
"condition":{"typeReachable":"org.testcontainers.DockerClientFactory"},
"name":"org.testcontainers.dockerclient.TestcontainersHostPropertyClientProviderStrategy"
},
{
"condition":{"typeReachable":"org.testcontainers.DockerClientFactory"},
"name":"org.testcontainers.dockerclient.UnixSocketClientProviderStrategy"
},
{
"condition":{"typeReachable":"org.testcontainers.dockerclient.DockerClientProviderStrategy"},
"name":"org.testcontainers.dockerclient.UnixSocketClientProviderStrategy",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"condition":{"typeReachable":"org.testcontainers.shaded.com.fasterxml.jackson.databind.ext.Java7Support"},
"name":"org.testcontainers.shaded.com.fasterxml.jackson.databind.ext.Java7SupportImpl",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"condition":{"typeReachable":"org.testcontainers.dockerclient.DockerClientProviderStrategy"},
"name":"org.testcontainers.shaded.com.github.dockerjava.core.DockerConfigFile",
"queryAllDeclaredMethods":true,
"queryAllDeclaredConstructors":true
},
{
"condition":{"typeReachable":"org.testcontainers.dockerclient.EnvironmentAndSystemPropertyClientProviderStrategy"},
"name":"org.testcontainers.shaded.com.github.dockerjava.core.DockerConfigFile"
},
{
"condition":{"typeReachable":"org.testcontainers.shaded.com.fasterxml.jackson.databind.ObjectMapper"},
"name":"org.testcontainers.shaded.com.github.dockerjava.core.DockerConfigFile",
"allDeclaredFields":true,
"methods":[{"name":"<init>","parameterTypes":[] }, {"name":"setAuths","parameterTypes":["java.util.Map"] }]
},
{
"condition":{"typeReachable":"org.testcontainers.shaded.com.github.dockerjava.core.DefaultDockerClientConfig$Builder"},
"name":"org.testcontainers.shaded.com.github.dockerjava.core.DockerConfigFile"
},
{
"condition":{"typeReachable":"org.testcontainers.shaded.com.github.dockerjava.core.DockerConfigFile"},
"name":"org.testcontainers.shaded.com.github.dockerjava.core.DockerConfigFile"
},
{
"condition":{"typeReachable":"org.testcontainers.shaded.com.github.dockerjava.core.DefaultInvocationBuilder"},
"name":"org.testcontainers.shaded.com.github.dockerjava.core.command.AbstrAsyncDockerCmd",
"queryAllDeclaredMethods":true,
"allDeclaredFields": true
},
{
"condition":{"typeReachable":"org.testcontainers.shaded.com.github.dockerjava.core.exec.CreateNetworkCmdExec"},
"name":"org.testcontainers.shaded.com.github.dockerjava.core.command.AbstrDockerCmd",
"queryAllDeclaredMethods":true,
"allDeclaredFields": true
},
{
"condition":{"typeReachable":"org.testcontainers.shaded.com.github.dockerjava.core.exec.ExecCreateCmdExec"},
"name":"org.testcontainers.shaded.com.github.dockerjava.core.command.AbstrDockerCmd",
"queryAllDeclaredMethods":true
},
{
"condition":{"typeReachable":"org.testcontainers.shaded.com.github.dockerjava.core.exec.CreateNetworkCmdExec"},
"name":"org.testcontainers.shaded.com.github.dockerjava.core.command.CreateNetworkCmdImpl",
"allDeclaredFields":true,
"queryAllDeclaredMethods":true,
"queryAllDeclaredConstructors":true,
"methods":[{"name":"getAttachable","parameterTypes":[] }, {"name":"getCheckDuplicate","parameterTypes":[] }, {"name":"getDriver","parameterTypes":[] }, {"name":"getEnableIPv6","parameterTypes":[] }, {"name":"getInternal","parameterTypes":[] }, {"name":"getIpam","parameterTypes":[] }, {"name":"getLabels","parameterTypes":[] }, {"name":"getName","parameterTypes":[] }, {"name":"getOptions","parameterTypes":[] }]
},
{
"condition":{"typeReachable":"org.testcontainers.shaded.com.github.dockerjava.core.exec.ExecCreateCmdExec"},
"name":"org.testcontainers.shaded.com.github.dockerjava.core.command.ExecCreateCmdImpl",
"allDeclaredFields":true,
"queryAllDeclaredMethods":true,
"queryAllDeclaredConstructors":true,
"methods":[{"name":"getContainerId","parameterTypes":[] }, {"name":"getEnv","parameterTypes":[] }, {"name":"getPrivileged","parameterTypes":[] }, {"name":"getUser","parameterTypes":[] }, {"name":"getWorkingDir","parameterTypes":[] }]
},
{
"condition":{"typeReachable":"org.testcontainers.shaded.com.github.dockerjava.core.DefaultInvocationBuilder"},
"name":"org.testcontainers.shaded.com.github.dockerjava.core.command.ExecStartCmdImpl",
"allDeclaredFields":true,
"queryAllDeclaredMethods":true,
"queryAllDeclaredConstructors":true
},
{
"condition":{"typeReachable":"org.testcontainers.containers.GenericContainer"},
"name":"org.testcontainers.shaded.org.awaitility.core.ConditionFactory$1",
"allDeclaredMethods": true
},
{
"condition":{"typeReachable":"org.testcontainers.containers.GenericContainer$$Lambda/0x00007f841f23d008"},
"name":"org.testcontainers.shaded.org.awaitility.core.ConditionFactory$1"
},
{
"condition":{"typeReachable":"org.testcontainers.shaded.org.awaitility.core.ConditionFactory"},
"name":"org.testcontainers.shaded.org.awaitility.core.ConditionFactory$1"
},
{
"condition":{"typeReachable":"org.testcontainers.shaded.org.awaitility.core.ConditionFactory$1"},
"name":"org.testcontainers.shaded.org.awaitility.core.ConditionFactory$1"
},
{
"condition":{"typeReachable":"org.testcontainers.shaded.org.hamcrest.TypeSafeMatcher"},
"name":"org.testcontainers.shaded.org.awaitility.core.ConditionFactory$1"
},
{
"condition":{"typeReachable":"org.testcontainers.shaded.org.hamcrest.internal.ReflectiveTypeFinder"},
"name":"org.testcontainers.shaded.org.awaitility.core.ConditionFactory$1"
},
{
"condition":{"typeReachable":"org.testcontainers.shaded.com.fasterxml.jackson.databind.util.ClassUtil"},
"name":"org.testcontainers.shaded.com.github.dockerjava.core.command.CreateContainerCmdImpl",
"allDeclaredMethods": true,
"allDeclaredConstructors": true
},
{
"condition":{"typeReachable":"org.testcontainers.junit.jupiter.Testcontainers"},
"name":"org.testcontainers.junit.jupiter.Testcontainers",
"allPublicMethods": true
},
{
"condition":{"typeReachable":"org.testcontainers.shaded.com.github.dockerjava.core.command.CreateContainerCmdImpl"},
"name":"org.testcontainers.shaded.com.github.dockerjava.core.command.CreateContainerCmdImpl$NetworkingConfig",
"allDeclaredFields": true,
"allDeclaredMethods": true,
"allDeclaredConstructors": true
},
{
"condition":{"typeReachable":"com.github.dockerjava.api.model.Network"},
"name":"com.github.dockerjava.api.model.Network",
"allDeclaredMethods": true
},
{
"condition":{"typeReachable":"com.github.dockerjava.api.model.Network"},
"name":"com.github.dockerjava.api.model.Network$Ipam",
"allDeclaredMethods": true
},
{
"condition":{"typeReachable":"com.github.dockerjava.api.model.Network"},
"name":"com.github.dockerjava.api.model.Network$Ipam$Config",
"allDeclaredMethods": true
},
{
"condition":{"typeReachable":"com.github.dockerjava.api.model.Network"},
"name":"com.github.dockerjava.api.model.Network$ContainerNetworkConfig",
"allDeclaredMethods": true
}
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"resources":{
"includes":[{
"condition":{"typeReachable":"org.testcontainers.jdbc.ContainerDatabaseDriver"},
"pattern":"\\QMETA-INF/services/org.testcontainers.containers.JdbcDatabaseContainerProvider\\E"
}, {
"condition":{"typeReachable":"org.testcontainers.containers.GenericContainer"},
"pattern":"\\QMETA-INF/services/org.testcontainers.core.CreateContainerCmdModifier\\E"
}, {
"condition":{"typeReachable":"org.testcontainers.DockerClientFactory"},
"pattern":"\\QMETA-INF/services/org.testcontainers.dockerclient.DockerClientProviderStrategy\\E"
}, {
"condition":{"typeReachable":"org.testcontainers.shaded.com.google.common.io.Resources"},
"pattern":"\\Qcontainer-license-acceptance.txt\\E"
}, {
"condition":{"typeReachable":"org.testcontainers.containers.wait.strategy.HostPortWaitStrategy"},
"pattern":"\\Qlogback-test.xml\\E"
}, {
"condition":{"typeReachable":"org.testcontainers.utility.ClasspathScanner"},
"pattern":"\\Qtestcontainers.properties\\E"
}, {
"condition":{"typeReachable":"org.testcontainers.utility.ImageNameSubstitutor"},
"pattern":"\\QMETA-INF/services/org.testcontainers.utility.ImageNameSubstitutor\\E"
}, {
"condition":{"typeReachable":"org.testcontainers.shaded.com.github.dockerjava.core.DefaultDockerClientConfig"},
"pattern":"\\Qdocker-java.properties\\E"
}, {
"condition":{"typeReachable":"org.testcontainers.dockerclient.DockerClientProviderStrategy"},
"pattern":"\\QMETA-INF/services/java.net.spi.InetAddressResolverProvider\\E"
}]},
"bundles":[]
}
Loading

0 comments on commit 48026d7

Please sign in to comment.