Towelie
Towelie

Reputation: 11

Failure to Remove H2 Dependency with Apache ignite 2.14.0

With the Apache Ignite 2.13.0 release. They introduced a new beta sql engine to replace the existing h2 sql engine. Unfortunately it still had a dependency on the h2 indexing module. With the 2.14 release it supposedly removed this dependency. Now I am trying to remove the h2 package completely (due to critical code vulnerabilities in the h2 package). Does anyone know how to remove h2 completely from a java built ignite project?

Documentation: https://ignite.apache.org/docs/latest/SQL/sql-calcite

Here is how I am setting my ignite configuration explicitely avoiding the h2 engine

igniteConfiguration.setSqlConfiguration(
                new SqlConfiguration().setQueryEnginesConfiguration(
                        new CalciteQueryEngineConfiguration().setDefault(true)
                )
        );

EDIT:

To resolve our issue we had to remove the dependencies imports for org.apache.ignite:ignite-slf4j:2.14.0 and org.apache.ignite:ignite-spring:2.14.0

Upvotes: 1

Views: 1174

Answers (2)

Andrej Fink
Andrej Fink

Reputation: 390

Big thanks to generous developers from SberTech:

ignite-h2 without CVEs

SRC: https://gitverse.ru/sbertech/ignite-h2

Package repo: https://gitverse.ru/sbertech/-/packages/maven/com.sbt.ignite-ignite-h2/1.0.0?tab=packagesOrg

Upvotes: 0

Igor Belyakov
Igor Belyakov

Reputation: 885

In case you configured only one query engine, which is CalciteQueryEngineConfiguration, then the ignite-indexing dependency can be removed from your project, as a result, you will no longer have the h2 in the list of dependencies.

Here is a dependency section example:

  <dependencies>
    <dependency>
      <groupId>org.apache.ignite</groupId>
      <artifactId>ignite-core</artifactId>
      <version>${ignite.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.ignite</groupId>
      <artifactId>ignite-calcite</artifactId>
      <version>${ignite.version}</version>
    </dependency>
  </dependencies>

You can execute mvn dependency:tree to check the actual list of dependencies.

Also, I should mention that the Calcite-based query engine is currently in beta status.

Upvotes: 2

Related Questions