You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ib...@apache.org on 2022/09/07 14:43:47 UTC
[ignite-3] branch main updated: IGNITE-17485: Gradle build support (#1032)
This is an automated email from the ASF dual-hosted git repository.
ibessonov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push:
new c91f39cd80 IGNITE-17485: Gradle build support (#1032)
c91f39cd80 is described below
commit c91f39cd80dfd143e5ac848486366ad6ed124ce5
Author: Mikhail <Po...@users.noreply.github.com>
AuthorDate: Wed Sep 7 17:43:42 2022 +0300
IGNITE-17485: Gradle build support (#1032)
* Added initial gradle project structure.
* Created test fixtures with all shared test classes. (Temporary code duplicate).
* Extracted all dependencies to toml.
* Temporary disabled flaky tests and Windows broken tests. (IGNITE-17601)
---
.gitignore | 12 +-
build.gradle | 87 ++++++++
buildscripts/java-core.gradle | 115 ++++++++++
buildscripts/java-integration-test.gradle | 65 ++++++
.../java-junit5.gradle | 23 +-
.../java-library.gradle | 16 +-
.../java-test-fixtures.gradle | 17 +-
.../publishing-repos.gradle | 22 +-
.../publishing.gradle | 18 +-
.../LICENSE.txt | 16 +-
.../build.gradle | 21 +-
gradle.properties | 16 ++
gradle/libs.versions.toml | 225 ++++++++++++++++++++
gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59821 bytes
gradle/wrapper/gradle-wrapper.properties | 5 +
gradlew | 234 +++++++++++++++++++++
gradlew.bat | 89 ++++++++
.../TestOuterObject.java => affinity/build.gradle} | 34 ++-
.../SchemaObjectBuilder.java => api/build.gradle} | 30 +--
.../build.gradle} | 20 +-
.../build.gradle} | 18 +-
.../build.gradle} | 20 +-
.../build.gradle} | 17 +-
modules/cli/build.gradle | 152 +++++++++++++
.../build.gradle} | 34 +--
modules/client-handler/build.gradle | 48 +++++
modules/client/build.gradle | 53 +++++
.../org/apache/ignite/client/ClientArchTest.java | 20 +-
modules/cluster-management/build.gradle | 65 ++++++
.../RocksDbClusterStateStorageManagerTest.java | 4 +
.../raft/ConcurrentMapClusterStateStorage.java | 0
.../jul/NoOpHandler.java => compute/build.gradle} | 33 +--
.../build.gradle} | 32 ++-
.../build.gradle} | 18 +-
modules/configuration/build.gradle | 60 ++++++
.../configuration/TestConfigurationChanger.java | 0
.../storage/TestConfigurationStorage.java | 0
.../testframework/BasicConfigurationSchema.java | 0
.../testframework/ConfigurationExtension.java | 0
.../testframework/ExtendedConfigurationSchema.java | 0
.../testframework/InjectConfiguration.java | 0
.../InjectRevisionListenerHolder.java | 0
.../validation/TestValidationUtil.java | 0
modules/core/build.gradle | 61 ++++++
.../testframework/BaseIgniteAbstractTest.java | 0
.../internal/testframework/IgniteAbstractTest.java | 0
.../internal/testframework/IgniteTestUtils.java | 0
.../testframework/JunitExtensionTestUtils.java | 0
.../testframework/SystemPropertiesExtension.java | 0
.../testframework/SystemPropertiesList.java | 0
.../testframework/VariableArgumentsProvider.java | 0
.../internal/testframework/VariableSource.java | 0
.../internal/testframework/WithSystemProperty.java | 0
.../internal/testframework/WorkDirectory.java | 0
.../testframework/WorkDirectoryExtension.java | 0
.../internal/testframework/jul/NoOpHandler.java | 0
.../matchers/CompletableFutureMatcher.java | 0
.../testframework/util/DirectExecutor.java | 0
.../build.gradle} | 19 +-
.../build.gradle} | 19 +-
.../build.gradle} | 28 ++-
modules/jacoco-report/build.gradle | 57 +++++
.../build.gradle} | 32 ++-
modules/metastorage-client/build.gradle | 40 ++++
.../build.gradle} | 19 +-
modules/metastorage-server/build.gradle | 38 ++++
.../server/SimpleInMemoryKeyValueStorage.java | 0
.../build.gradle} | 29 ++-
.../build.gradle} | 18 +-
.../build.gradle} | 32 ++-
.../build.gradle} | 32 ++-
modules/network/build.gradle | 71 +++++++
.../TestScaleCubeClusterServiceFactory.java | 0
.../ignite/utils/ClusterServiceTestUtils.java | 0
modules/page-memory/build.gradle | 38 ++++
.../build.gradle} | 24 ++-
.../build.gradle} | 21 +-
modules/raft/build.gradle | 60 ++++++
.../apache/ignite/raft/jraft/core/ItNodeTest.java | 3 +
.../apache/ignite/raft/jraft/test/TestUtils.java | 12 +-
modules/rest-api/build.gradle | 39 ++++
.../jul/NoOpHandler.java => rest/build.gradle} | 33 +--
.../build.gradle} | 19 +-
modules/runner/build.gradle | 94 +++++++++
modules/schema/build.gradle | 51 +++++
.../ignite/internal/schema/SchemaTestUtils.java | 0
.../schema/marshaller/RecordMarshallerTest.java | 0
.../schema/testobjects/TestObjectWithAllTypes.java | 0
.../TestObjectWithNoDefaultConstructor.java | 0
.../TestObjectWithPrivateConstructor.java | 0
.../schema/testobjects/TestOuterObject.java | 0
.../schema/testobjects/TestSimpleObject.java | 0
.../testutils/builder/AbstractIndexBuilder.java | 0
.../testutils/builder/ColumnDefinitionBuilder.java | 0
.../builder/ColumnDefinitionBuilderImpl.java | 0
.../builder/HashIndexDefinitionBuilder.java | 0
.../builder/HashIndexDefinitionBuilderImpl.java | 0
.../builder/PrimaryKeyDefinitionBuilder.java | 0
.../builder/PrimaryKeyDefinitionBuilderImpl.java | 0
.../schema/testutils/builder/SchemaBuilders.java | 0
.../testutils/builder/SchemaObjectBuilder.java | 0
.../builder/SortedIndexDefinitionBuilder.java | 0
.../builder/SortedIndexDefinitionBuilderImpl.java | 0
.../testutils/builder/TableDefinitionBuilder.java | 0
.../builder/TableDefinitionBuilderImpl.java | 0
modules/sql-engine/build.gradle | 138 ++++++++++++
.../sql/engine/exec/rel/ExecutionTest.java | 3 +
.../internal/sql/engine/planner/PlannerTest.java | 3 +
modules/storage-api/build.gradle | 55 +++++
.../storage/AbstractMvPartitionStorageTest.java | 0
.../storage/AbstractMvTableStorageTest.java | 0
.../storage/AbstractPartitionStorageTest.java | 0
.../internal/storage/BaseMvStoragesTest.java | 0
.../TestConcurrentHashMapDataStorageModule.java | 0
.../TestConcurrentHashMapMvPartitionStorage.java | 0
.../chm/TestConcurrentHashMapMvTableStorage.java | 0
.../chm/TestConcurrentHashMapStorageEngine.java | 0
...torageEngineDistributedConfigurationModule.java | 0
...rrentHashMapDataStorageConfigurationSchema.java | 0
.../index/AbstractHashIndexStorageTest.java | 0
.../storage/index/impl/BinaryTupleComparator.java | 0
.../index/impl/BinaryTupleRowSerializer.java | 2 +-
.../internal/storage/index/impl/IndexRowImpl.java | 0
.../storage/index/impl/TestHashIndexStorage.java | 0
.../storage/index/impl/TestSortedIndexStorage.java | 0
modules/storage-page-memory/build.gradle | 47 +++++
modules/storage-rocksdb/build.gradle | 45 ++++
modules/table/build.gradle | 66 ++++++
.../table/ColocationHashCalculationTest.java | 3 +-
.../NoOpHandler.java => transactions/build.gradle} | 33 +--
.../jul/NoOpHandler.java => vault/build.gradle} | 34 +--
.../vault/inmemory/InMemoryVaultService.java | 0
parent/pom.xml | 17 +-
settings.gradle | 111 ++++++++++
134 files changed, 2635 insertions(+), 450 deletions(-)
diff --git a/.gitignore b/.gitignore
index 102454dcb5..2db27b173d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,3 @@
-.idea
-*.iml
target
work
.DS_Store
@@ -9,3 +7,13 @@ work
.project
.settings
+.gradle
+build/
+!gradle/wrapper/gradle-wrapper.jar
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+out/
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000000..cad7582c15
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,87 @@
+/*
+ * 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.
+ */
+
+repositories {
+ mavenLocal()
+ maven {
+ url = uri('https://repository.apache.org/snapshots')
+ }
+
+ maven {
+ url = uri('https://repo.maven.apache.org/maven2/')
+ }
+}
+
+ext {
+ repos = [
+ 'apache-release' : "https://repo.maven.apache.org/maven2/",
+ 'apache-snapshot' : "https://repository.apache.org/snapshots"
+ ]
+}
+
+allprojects {
+ group 'org.apache.ignite'
+ version = "3.0.0-SNAPSHOT"
+
+ tasks.withType(Test) {
+ defaultCharacterEncoding = 'UTF-8'
+
+ jvmArgs += ["--add-opens=java.base/java.lang=ALL-UNNAMED",
+ "--add-opens=java.base/java.lang.invoke=ALL-UNNAMED",
+ "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
+ "--add-opens=java.base/java.io=ALL-UNNAMED",
+ "--add-opens=java.base/java.nio=ALL-UNNAMED",
+ "--add-opens=java.base/java.math=ALL-UNNAMED",
+ "--add-opens=java.base/java.util=ALL-UNNAMED",
+ "--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED",
+ "-Dio.netty.tryReflectionSetAccessible=true",
+ "-Djava.util.logging.config.file=${project.rootDir}/config/java.util.logging.properties"]
+
+ if (project.hasProperty('excludeTest')) {
+ exclude project.property('excludeTest')
+ }
+ }
+
+ tasks.withType(Javadoc) {
+ options.tags = [ "apiNote" ]
+ }
+
+ tasks.withType(JavaCompile) {
+ options.encoding = 'UTF-8'
+ }
+}
+
+subprojects {
+ apply plugin: 'base'
+
+ repositories {
+ mavenLocal()
+ maven {
+ url = uri('https://repository.apache.org/snapshots')
+ mavenContent {
+ snapshotsOnly()
+ }
+ }
+
+ maven {
+ url = uri('https://repo.maven.apache.org/maven2/')
+ mavenContent {
+ releasesOnly()
+ }
+ }
+ }
+}
diff --git a/buildscripts/java-core.gradle b/buildscripts/java-core.gradle
new file mode 100644
index 0000000000..23deac065e
--- /dev/null
+++ b/buildscripts/java-core.gradle
@@ -0,0 +1,115 @@
+/*
+ * 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.
+ */
+
+apply plugin: 'java'
+apply plugin: 'jacoco'
+apply plugin: 'checkstyle'
+apply plugin: 'pmd'
+
+java {
+ sourceCompatibility = JavaVersion.VERSION_11
+ targetCompatibility = JavaVersion.VERSION_11
+ withSourcesJar()
+}
+
+test {
+ finalizedBy(jacocoTestReport)
+}
+
+pmd {
+ ignoreFailures = false
+ consoleOutput = true
+
+ toolVersion = libs.versions.pmdTool.get()
+ ruleSets = []//switch off old rulesets
+}
+
+processResources {
+ filesMatching('**/*.properties') {
+ filter { String line ->
+ line.replace("\${project.version}", project.version)
+ }
+ }
+}
+
+tasks.withType(Pmd) {
+ reports {
+ html {
+ required = true
+ }
+ xml {
+ required = true
+ }
+ }
+}
+
+pmdMain {
+ enabled = false
+ ruleSetFiles = files("$rootDir/check-rules/pmd-rules.xml")
+}
+
+pmdTest {
+ enabled = false
+ ruleSetFiles = files("$rootDir/check-rules/pmd-rules.xml")
+}
+
+
+checkstyle {
+ toolVersion = libs.versions.checkstyleTool.get()
+ ignoreFailures = false
+ showViolations = true
+ maxWarnings = 0
+ configFile = file("$rootDir/check-rules/checkstyle-rules.xml")
+ configProperties.
+ configProperties = [
+ "checkstyle.header.file" : file("$rootDir/check-rules/LICENSE.txt"),
+ "checkstyle.suppressions.file": file("$rootDir/check-rules/checkstyle-suppressions.xml")
+ ]
+}
+
+tasks.withType(Checkstyle) {
+ enabled false
+ reports {
+ html {
+ required = true
+ }
+ xml {
+ required = true
+ }
+ }
+}
+
+jacoco {
+ toolVersion = libs.versions.jacocoTool.get()
+}
+
+jacocoTestReport {
+ reports {
+ html {
+ required = true
+ }
+ xml {
+ required = true
+ }
+ }
+ afterEvaluate {
+ classDirectories.setFrom(files(classDirectories.files.collect {
+ fileTree(dir: it,
+ exclude: ['org/apache/calcite/**/*'])
+ }))
+ }
+}
\ No newline at end of file
diff --git a/buildscripts/java-integration-test.gradle b/buildscripts/java-integration-test.gradle
new file mode 100644
index 0000000000..dfb1908045
--- /dev/null
+++ b/buildscripts/java-integration-test.gradle
@@ -0,0 +1,65 @@
+/*
+ * 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.
+ */
+
+sourceSets {
+ integrationTest {
+ compileClasspath += sourceSets.main.output
+ compileClasspath += sourceSets.test.output
+ runtimeClasspath += sourceSets.main.output
+ runtimeClasspath += sourceSets.test.output
+ if (sourceSets.hasProperty("testFixtures")) {
+ compileClasspath += sourceSets.testFixtures.output
+ runtimeClasspath += sourceSets.testFixtures.output
+ }
+ }
+}
+
+pmdIntegrationTest {
+ ruleSetFiles = files("$rootDir/check-rules/pmd-rules.xml")
+ enabled = false
+}
+
+configurations {
+ integrationTestImplementation.extendsFrom implementation
+ integrationTestRuntimeOnly.extendsFrom runtimeOnly
+ integrationTestApi.extendsFrom api
+}
+
+tasks.register('integrationTest', Test) {
+ description = 'Runs integration tests.'
+ group = 'verification'
+
+ testClassesDirs = sourceSets.integrationTest.output.classesDirs
+ classpath = sourceSets.integrationTest.runtimeClasspath
+}
+
+integrationTest {
+ useJUnitPlatform()
+ maxHeapSize = "16g"
+}
+
+dependencies {
+ integrationTestImplementation libs.junit5.api
+ integrationTestImplementation libs.junit5.impl
+ integrationTestImplementation libs.junit5.params
+ integrationTestImplementation libs.mockito.core
+ integrationTestImplementation libs.mockito.junit
+ integrationTestImplementation libs.mockito.inline
+ integrationTestImplementation libs.hamcrest.core
+ integrationTestImplementation libs.hamcrest.optional
+ integrationTestImplementation libs.hamcrest.path
+}
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/buildscripts/java-junit5.gradle
similarity index 68%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to buildscripts/java-junit5.gradle
index 6d54f754d9..901c25b24c 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/buildscripts/java-junit5.gradle
@@ -15,16 +15,15 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
-
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
-
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
+test {
+ useJUnitPlatform()
+ testLogging {
+ events "passed", "skipped", "failed", "standard_error"
+ }
}
+
+dependencies {
+ testImplementation libs.junit5.impl
+ testImplementation libs.junit5.api
+ testImplementation libs.junit5.params
+}
\ No newline at end of file
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/buildscripts/java-library.gradle
similarity index 67%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to buildscripts/java-library.gradle
index 6d54f754d9..8113ee8b50 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/buildscripts/java-library.gradle
@@ -14,17 +14,5 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-package org.apache.ignite.internal.configuration.testframework;
-
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
-
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
-}
+apply from: "$rootDir/buildscripts/java-core.gradle"
+apply plugin: 'java-library'
\ No newline at end of file
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/buildscripts/java-test-fixtures.gradle
similarity index 68%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to buildscripts/java-test-fixtures.gradle
index 6d54f754d9..6bf0e5f38e 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/buildscripts/java-test-fixtures.gradle
@@ -15,16 +15,9 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
+apply plugin: 'java-test-fixtures'
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
-
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
-}
+pmdTestFixtures {
+ ruleSetFiles = files("$rootDir/check-rules/pmd-rules.xml")
+ enabled = false
+}
\ No newline at end of file
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/buildscripts/publishing-repos.gradle
similarity index 68%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to buildscripts/publishing-repos.gradle
index 6d54f754d9..e954f40b7f 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/buildscripts/publishing-repos.gradle
@@ -15,16 +15,16 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
+apply plugin: 'maven-publish'
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
-
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
+publishing {
+ repositories {
+ maven {
+ credentials {
+ username = project.properties["artifactory_user"]
+ password = project.properties["artifactory_pass"]
+ }
+ url repos[project.version.endsWith("-SNAPSHOT") ? 'apache-snapshot' : 'apache-release']
+ }
+ }
}
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/buildscripts/publishing.gradle
similarity index 68%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to buildscripts/publishing.gradle
index 6d54f754d9..2180457874 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/buildscripts/publishing.gradle
@@ -15,16 +15,12 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
+apply from: "$rootDir/buildscripts/publishing-repos.gradle"
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
-
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
+publishing {
+ publications {
+ maven(MavenPublication) {
+ from components.java
+ }
+ }
}
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/check-rules/LICENSE.txt
similarity index 67%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to check-rules/LICENSE.txt
index 6d54f754d9..f974c9ac4f 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/check-rules/LICENSE.txt
@@ -13,18 +13,4 @@
* 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.ignite.internal.configuration.testframework;
-
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
-
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
-}
+ */
\ No newline at end of file
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/examples/build.gradle
similarity index 68%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to examples/build.gradle
index 6d54f754d9..f17f7c24b6 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/examples/build.gradle
@@ -15,16 +15,15 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
-
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
+dependencies {
+ implementation project(':ignite-runner')
+ implementation project(':ignite-client')
+ implementation project(':ignite-api')
+ testImplementation project(':ignite-core')
+ testImplementation libs.hamcrest.core
}
+
+description = 'ignite-examples'
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000000..86094c8d7a
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,16 @@
+#
+# 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.
+#
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
new file mode 100644
index 0000000000..db380ab318
--- /dev/null
+++ b/gradle/libs.versions.toml
@@ -0,0 +1,225 @@
+#
+# 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.
+#
+
+[versions]
+ivy="2.5.0"
+assertj="3.22.0"
+asm="9.0"
+compileTesting="0.19"
+fliptables="1.1.0"
+jackson="2.13.1"
+jakarta="2.0.0"
+jansi="1.18"
+netty="4.1.70.Final"
+javapoet="1.13.0"
+javax="1.3.2"
+jetbrainsAnnotations="20.1.0"
+jline="3.21.0"
+jmh="1.35"
+junit5="5.8.1"
+jsr305="3.0.2"
+okhttp="4.9.1"
+gson="2.8.9"
+gsonFire="1.8.5"
+threetenbp="1.5.2"
+micronaut="3.5.3"
+micronautPicocli="4.1.0"
+micronautJunit5="3.4.0"
+mockito="4.3.1"
+picocli="4.6.2"
+slf4j="1.7.32"
+spoon="8.4.0-beta-18"
+swagger="2.1.12"
+swaggerLegacy="1.6.4"
+typesafe="1.4.1"
+hamcrest="2.2"
+hamcrestOptional="2.0.0"
+hamcrestPath="1.0.1"
+scalecube="2.6.12"
+calcite="1.30.0"
+value="2.8.8"
+janino="3.1.6"
+avatica="1.20.0"
+jsonpath="2.4.0"
+classgraph="4.8.110"
+javassist="3.28.0-GA"
+geometry="2.2.0"
+checker="3.10.0"
+rocksdb="7.3.1"
+disruptor="3.3.7"
+metrics="4.0.2"
+jctools="3.3.0"
+msgpack="0.8.21"
+caffeine="3.0.4"
+fastutil="8.5.6"
+kryo="4.0.1"
+bytebuddy="1.12.8"
+mockServer="5.13.2"
+archunit="0.23.1"
+testkit="1.8.1"
+openapi="3.2.0"
+
+#Plugins
+rat="0.7.1"
+pmdTool = "6.28.0"
+checkstyleTool = "8.41"
+jacocoTool = "0.8.5"
+
+[plugins]
+openapiGenerator = "org.openapi.generator:5.4.0"
+javacc = "com.intershop.gradle.javacc:4.0.1"
+shadow = "com.github.johnrengelman.shadow:7.1.2"
+cmake = "net.freudasoft.gradle-cmake-plugin:0.0.4"
+
+[libraries]
+assertj-core = { module = "org.assertj:assertj-core", version.ref = "assertj" }
+
+jetbrains-annotations = { module = "org.jetbrains:annotations", version.ref = "jetbrainsAnnotations" }
+
+hamcrest-core = { module = "org.hamcrest:hamcrest", version.ref = "hamcrest" }
+hamcrest-optional = { module = "com.github.npathai:hamcrest-optional", version.ref = "hamcrestOptional" }
+hamcrest-path = { module = "ca.seinesoftware:hamcrest-path", version.ref = "hamcrestPath" }
+
+mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockito" }
+mockito-junit = { module = "org.mockito:mockito-junit-jupiter", version.ref = "mockito" }
+mockito-inline = { module = "org.mockito:mockito-inline", version.ref = "mockito" }
+
+asm-core = { module = "org.ow2.asm:asm", version.ref = "asm" }
+asm-tree = { module = "org.ow2.asm:asm-tree", version.ref = "asm" }
+asm-util = { module = "org.ow2.asm:asm-util", version.ref = "asm" }
+
+fliptables = { module = "com.jakewharton.fliptables:fliptables", version.ref = "fliptables" }
+
+jline-core = { module = "org.jline:jline", version.ref = "jline" }
+jline-console = { module = "org.jline:jline-console", version.ref = "jline" }
+
+#JUnit
+junit5-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit5" }
+junit5-impl = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit5" }
+junit5-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "junit5" }
+junit-testkit = { module = "org.junit.platform:junit-platform-testkit", version.ref = "testkit" }
+
+#Micronaut
+micronaut-inject = { module = "io.micronaut:micronaut-inject", version.ref = "micronaut" }
+micronaut-runtime = { module = "io.micronaut:micronaut-runtime", version.ref = "micronaut" }
+micronaut-validation = { module = "io.micronaut:micronaut-validation", version.ref = "micronaut" }
+micronaut-http-core = { module = "io.micronaut:micronaut-http", version.ref = "micronaut" }
+micronaut-http-server-core = { module = "io.micronaut:micronaut-http-server", version.ref = "micronaut" }
+micronaut-http-client = { module = "io.micronaut:micronaut-http-client", version.ref = "micronaut" }
+micronaut-http-server-netty = { module = "io.micronaut:micronaut-http-server-netty", version.ref = "micronaut" }
+micronaut-openapi = { module = "io.micronaut.openapi:micronaut-openapi", version.ref = "openapi" }
+micronaut-picocli = { module = "io.micronaut.picocli:micronaut-picocli", version.ref = "micronautPicocli" }
+micronaut-junit5 = { module = "io.micronaut.test:micronaut-test-junit5", version.ref = "micronautJunit5" }
+micronaut-test = { module = "io.micronaut.test:micronaut-test-core", version.ref = "micronautJunit5" }
+micronaut-inject-annotation-processor = { module = "io.micronaut:micronaut-inject-java", version.ref = "micronaut" }
+micronaut-validation-annotation-processor = { module = "io.micronaut:micronaut-validation", version.ref = "micronaut" }
+
+picocli-shell-jline3 = { module = "info.picocli:picocli-shell-jline3", version.ref = "picocli" }
+picocli-core = { module = "info.picocli:picocli", version.ref = "picocli" }
+picocli-annotation-processor = { module = "info.picocli:picocli-codegen", version.ref = "picocli" }
+
+jansi-core = { module = "org.fusesource.jansi:jansi", version.ref = "jansi" }
+
+jackson-core = { module = "com.fasterxml.jackson.core:jackson-core", version = "jackson" }
+jackson-databind = { module = "com.fasterxml.jackson.core:jackson-databind", version.ref = "jackson" }
+jackson-annotations = { module = "com.fasterxml.jackson.core:jackson-annotations", version.ref = "jackson" }
+
+apache-ivy = { module = "org.apache.ivy:ivy", version.ref = "ivy" }
+
+typesafe-config = { module = "com.typesafe:config", version.ref = "typesafe" }
+slf4j-jdk14 = { module = "org.slf4j:slf4j-jdk14", version.ref = "slf4j" }
+
+gson-core = { module = "com.google.code.gson:gson", version.ref = "gson" }
+gson-fire = { module = "io.gsonfire:gson-fire", version.ref = "gsonFire" }
+
+jsr305 = { module = "com.google.code.findbugs:jsr305", version.ref = "jsr305" }
+
+okhttp-core = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }
+okhttp-logging = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp" }
+
+threetenbp = { module = "org.threeten:threetenbp", version.ref = "threetenbp" }
+
+swaggerv3-annotations = { module = "io.swagger.core.v3:swagger-annotations", version.ref = "swagger" }
+swagger-legacy-annotations = { module = "io.swagger:swagger-annotations", version.ref = "swaggerLegacy" }
+
+mock-server-netty = { module = "org.mock-server:mockserver-netty", version.ref = "mockServer" }
+mock-server-junit = { module = "org.mock-server:mockserver-junit-jupiter", version.ref = "mockServer" }
+
+msgpack-core = { module = "org.msgpack:msgpack-core", version.ref = "msgpack" }
+msgpack-jackson = { module = "org.msgpack:jackson-dataformat-msgpack", version.ref = "msgpack" }
+
+netty-common = { module = "io.netty:netty-common", version.ref = "netty" }
+netty-buffer = { module = "io.netty:netty-buffer", version.ref = "netty" }
+netty-codec = { module = "io.netty:netty-codec", version.ref = "netty" }
+netty-handler = { module = "io.netty:netty-handler", version.ref = "netty" }
+netty-transport = { module = "io.netty:netty-transport", version.ref = "netty" }
+
+archunit-core = { module = "com.tngtech.archunit:archunit", version.ref = "archunit" }
+archunit-junit5 = { module = "com.tngtech.archunit:archunit-junit5", version.ref = "archunit" }
+
+jmh-core = { module = "org.openjdk.jmh:jmh-core", version.ref = "jmh" }
+jmh-annotation-processor = { module = "org.openjdk.jmh:jmh-generator-annprocess", version.ref = "jmh" }
+
+classgraph = { module = "io.github.classgraph:classgraph", version.ref = "classgraph" }
+
+javapoet = { module = "com.squareup:javapoet", version.ref = "javapoet" }
+
+compileTesting = { module = "com.google.testing.compile:compile-testing", version.ref = "compileTesting" }
+
+spoon-core = { module = "fr.inria.gforge.spoon:spoon-core", version.ref = "spoon" }
+
+fastutil-core = { module = "it.unimi.dsi:fastutil-core", version.ref = "fastutil" }
+
+scalecube-cluster = { module = "io.scalecube:scalecube-cluster", version.ref = "scalecube" }
+
+kryo = { module = "com.esotericsoftware:kryo", version.ref = "kryo" }
+
+bytebuddy = { module = "net.bytebuddy:byte-buddy", version.ref = "bytebuddy" }
+
+disruptor = { module = "com.lmax:disruptor", version.ref = "disruptor" }
+
+rocksdb-jni = { module = "org.rocksdb:rocksdbjni", version.ref = "rocksdb" }
+
+dropwizard-metrics = { module = "io.dropwizard.metrics:metrics-core", version.ref = "metrics" }
+
+jctools-core = { module = "org.jctools:jctools-core", version.ref = "jctools" }
+
+jakarta-annotations = { module = "jakarta.annotation:jakarta.annotation-api", version.ref = "jakarta" }
+jakarta-inject = { module = "jakarta.inject:jakarta.inject-api", version.ref = "jakarta" }
+
+jsonpath-core = { module = "com.jayway.jsonpath:json-path", version.ref = "jsonpath" }
+jsonpath-assert = { module = "com.jayway.jsonpath:json-path-assert", version.ref = "jsonpath" }
+
+javax-annotations = { module = "javax.annotation:javax.annotation-api", version.ref = "javax" }
+
+caffeine = { module = "com.github.ben-manes.caffeine:caffeine", version.ref = "caffeine" }
+
+calcite-core = { module = "org.apache.calcite:calcite-core", version.ref = "calcite" }
+calcite-linq4j = { module = "org.apache.calcite:calcite-linq4j", version.ref = "calcite" }
+calcite-avatica = { module = "org.apache.calcite.avatica:avatica-core", version.ref = "avatica" }
+
+value-annotations = { module = "org.immutables:value-annotations", version.ref = "value" }
+value-annotation-processor = { module = "org.immutables:value", version.ref = "value" }
+
+janino-core = { module = "org.codehaus.janino:janino", version.ref = "janino" }
+janino-compiler = { module = "org.codehaus.janino:commons-compiler", version.ref = "janino" }
+
+javassist = { module = "org.javassist:javassist", version.ref = "javassist" }
+
+esri-geometry = { module = "com.esri.geometry:esri-geometry-api", version.ref = "geometry" }
+
+checker-qual = { module = "org.checkerframework:checker-qual", version.ref = "checker" }
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000..41d9927a4d
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000000..41dfb87909
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
new file mode 100644
index 0000000000..1b6c787337
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,234 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed 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
+#
+# https://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.
+#
+
+##############################################################################
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
+done
+
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
+
+APP_NAME="Gradle"
+APP_BASE_NAME=${0##*/}
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+ echo "$*"
+} >&2
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD=$JAVA_HOME/jre/sh/java
+ else
+ JAVACMD=$JAVA_HOME/bin/java
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD=java
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
+ fi
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
+ done
+fi
+
+# Collect all arguments for the java command;
+# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
+# shell script including quotes and variable substitutions, so put them in
+# double quotes to make sure that they get re-expanded; and
+# * put everything else in single quotes, so that it's not re-expanded.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000000..107acd32c4
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testobjects/TestOuterObject.java b/modules/affinity/build.gradle
similarity index 58%
copy from modules/schema/src/test/java/org/apache/ignite/internal/schema/testobjects/TestOuterObject.java
copy to modules/affinity/build.gradle
index f27ee2d52a..5e802205f0 100644
--- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testobjects/TestOuterObject.java
+++ b/modules/affinity/build.gradle
@@ -15,26 +15,20 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.schema.testobjects;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-/**
- * Test object.
- */
-public class TestOuterObject {
- private long id;
-
- /**
- * Inner class.
- */
- @SuppressWarnings("InnerClassMayBeStatic")
- public class InnerObject {
- private long id1;
- }
+dependencies {
+ implementation project(':ignite-raft')
+ implementation project(':ignite-configuration')
+ implementation project(':ignite-metastorage')
+ implementation project(':ignite-api')
+ implementation project(':ignite-baseline')
+ implementation project(':ignite-core')
+ implementation libs.jetbrains.annotations
- /**
- * Nested class.
- */
- public static class NestedObject {
- private long id2;
- }
+ testImplementation project(':ignite-configuration')
+ testImplementation libs.mockito.core
}
+
+description = 'ignite-affinity'
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java b/modules/api/build.gradle
similarity index 64%
copy from modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java
copy to modules/api/build.gradle
index 31e923d641..f2a3e00ade 100644
--- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java
+++ b/modules/api/build.gradle
@@ -15,26 +15,18 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.schema.testutils.builder;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import java.util.Map;
-/**
- * Builder base interface.
- */
-public interface SchemaObjectBuilder {
- /**
- * Provide hints to a builder.
- *
- * @param hints Hints.
- * @return {@code This} for chaining.
- */
- SchemaObjectBuilder withHints(Map<String, String> hints);
+dependencies {
+ annotationProcessor project(":ignite-configuration-annotation-processor")
+ api project(':ignite-configuration-api')
+ implementation project(':ignite-core')
+ implementation libs.jetbrains.annotations
- /**
- * Builds schema object.
- *
- * @return Built object.
- */
- Object build();
+ testImplementation libs.hamcrest.core
+ testImplementation libs.hamcrest.optional
}
+
+description = 'ignite-api'
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/modules/baseline/build.gradle
similarity index 68%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to modules/baseline/build.gradle
index 6d54f754d9..53fb2752f6 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/modules/baseline/build.gradle
@@ -15,16 +15,14 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
-
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
+dependencies {
+ implementation project(':ignite-network-api')
+ implementation project(':ignite-configuration')
+ implementation project(':ignite-metastorage')
+ implementation project(':ignite-core')
}
+
+description = 'ignite-baseline'
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/modules/binary-tuple/build.gradle
similarity index 68%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to modules/binary-tuple/build.gradle
index 6d54f754d9..369c81b92b 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/modules/binary-tuple/build.gradle
@@ -15,16 +15,14 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
+description = 'ignite-binary-tuple'
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
+dependencies {
+ annotationProcessor project(':ignite-configuration-annotation-processor')
+ implementation project(':ignite-core')
+ implementation libs.jetbrains.annotations
}
+
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/modules/bytecode/build.gradle
similarity index 68%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to modules/bytecode/build.gradle
index 6d54f754d9..8cb6b91b86 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/modules/bytecode/build.gradle
@@ -15,16 +15,14 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
-
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
+dependencies {
+ implementation libs.jetbrains.annotations
+ api libs.asm.core
+ api libs.asm.tree
+ api libs.asm.util
}
+
+description = 'ignite-bytecode'
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/modules/cli-common/build.gradle
similarity index 68%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to modules/cli-common/build.gradle
index 6d54f754d9..ea365df4a5 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/modules/cli-common/build.gradle
@@ -15,16 +15,11 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
-
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
+dependencies {
+ implementation libs.picocli.core
}
+
+description = 'ignite-cli-common'
diff --git a/modules/cli/build.gradle b/modules/cli/build.gradle
new file mode 100644
index 0000000000..ba120657f8
--- /dev/null
+++ b/modules/cli/build.gradle
@@ -0,0 +1,152 @@
+/*
+ * 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.
+ */
+
+import org.openapitools.generator.gradle.plugin.tasks.GenerateTask
+
+plugins {
+ alias(libs.plugins.openapiGenerator)
+ id 'idea'
+ id 'application'
+}
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+apply from: "$rootDir/buildscripts/java-integration-test.gradle"
+
+description = 'ignite-cli'
+
+dependencies {
+ annotationProcessor libs.picocli.annotation.processor
+ annotationProcessor libs.micronaut.inject.annotation.processor
+ annotationProcessor libs.micronaut.validation.annotation.processor
+
+ implementation project(':ignite-cli-common')
+ implementation project(':ignite-core')
+ implementation project(':ignite-api')
+ implementation project(':ignite-client')
+
+ implementation libs.fliptables
+ implementation libs.jline.core
+ implementation libs.jline.console
+ implementation libs.micronaut.inject
+ implementation libs.micronaut.validation
+ implementation libs.micronaut.runtime
+ implementation libs.micronaut.picocli
+ implementation libs.jansi.core
+ implementation libs.picocli.shell.jline3
+ implementation libs.picocli.core
+ implementation libs.jackson.databind
+ implementation libs.apache.ivy
+ implementation libs.typesafe.config
+ implementation libs.slf4j.jdk14
+ implementation libs.gson.core
+ implementation libs.gson.fire
+ implementation libs.jsr305
+ implementation libs.okhttp.core
+ implementation libs.okhttp.logging
+ implementation libs.threetenbp
+ implementation libs.swagger.legacy.annotations
+
+ testAnnotationProcessor libs.picocli.annotation.processor
+ testAnnotationProcessor libs.micronaut.inject.annotation.processor
+ testAnnotationProcessor libs.micronaut.validation.annotation.processor
+
+ testImplementation project(':ignite-runner')
+ testImplementation project(':ignite-schema')
+ testImplementation project(':ignite-core')
+ testImplementation project(':ignite-sql-engine')
+ testImplementation(testFixtures(project(":ignite-core")))
+ testImplementation libs.hamcrest.core
+ testImplementation libs.hamcrest.optional
+ testImplementation libs.mockito.junit
+ testImplementation libs.micronaut.junit5
+ testImplementation libs.micronaut.test
+ testImplementation libs.assertj.core
+ testImplementation libs.mock.server.netty
+ testImplementation libs.mock.server.junit
+
+ integrationTestAnnotationProcessor libs.micronaut.inject.annotation.processor
+ integrationTestImplementation project(':ignite-runner')
+ integrationTestImplementation project(':ignite-schema')
+ integrationTestImplementation project(':ignite-sql-engine')
+ integrationTestImplementation(testFixtures(project(":ignite-core")))
+ integrationTestImplementation(testFixtures(project(":ignite-schema")))
+ integrationTestImplementation libs.mock.server.netty
+ integrationTestImplementation libs.mock.server.junit
+ integrationTestImplementation libs.micronaut.junit5
+ integrationTestImplementation libs.micronaut.test
+ integrationTestImplementation libs.assertj.core
+}
+
+ext.generatedClientDir = layout.buildDirectory.dir("swagger/client")
+
+task copyOpenapiDefinition(type: Copy) {
+ from("$rootDir/modules/rest/openapi")
+ into("$buildDir/customOpenapiDefinition/")
+}
+
+task generateApiClient(type: GenerateTask) {
+ generatorName="java"
+ inputs.dir file("$buildDir/customOpenapiDefinition/")
+ inputSpec="$buildDir/customOpenapiDefinition/openapi.yaml"
+ apiPackage="org.apache.ignite.rest.client.api"
+ invokerPackage="org.apache.ignite.rest.client.invoker"
+ modelPackage="org.apache.ignite.rest.client.model"
+ outputDir = generatedClientDir.get().asFile.toString()
+ generateModelTests=false
+ generateApiTests=false
+ languageSpecificPrimitives=["boolean", "int", "float", "double", "char", "byte", "short", "long"]
+ configOptions = [
+ "openApiNullable": "false",
+ "supportStreaming": "false",
+ "library": "okhttp-gson"
+ ]
+}
+
+generateApiClient.dependsOn copyOpenapiDefinition
+
+task generateAutocompletionScript(type: JavaExec) {
+ classpath = sourceSets.main.runtimeClasspath
+ mainClass.set("picocli.AutoComplete")
+ systemProperty("picocli.autocomplete.systemExitOnError", "")
+ args = ["--force",
+ "--completionScript",
+ "${buildDir}/ignite_completion.sh",
+ "-n",
+ "ignite",
+ "org.apache.ignite.cli.commands.TopLevelCliCommand"]
+}
+
+build.dependsOn generateAutocompletionScript
+
+application {
+ mainClass = 'org.apache.ignite.cli.Main'
+}
+
+idea.module {
+ sourceDirs += generatedClientDir.get().dir('src/main/java').asFile
+ resourceDirs += generatedClientDir.get().dir('src/main/resources').asFile
+ generatedSourceDirs += generatedClientDir.get().dir('src/main/java').asFile
+ resourceDirs += sourceSets.main.output.resourcesDir
+}
+
+compileJava {
+ dependsOn generateApiClient
+ source generatedClientDir.get().dir('src/main/java')
+}
+
+
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java b/modules/client-common/build.gradle
similarity index 52%
copy from modules/core/src/test/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java
copy to modules/client-common/build.gradle
index 48afbfbae8..99e2192335 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java
+++ b/modules/client-common/build.gradle
@@ -15,22 +15,24 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.testframework.jul;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import java.util.logging.Handler;
-import java.util.logging.LogRecord;
+dependencies {
+ implementation project(':ignite-api')
+ implementation project(':ignite-core')
+ implementation libs.msgpack.core
+ implementation libs.msgpack.jackson
+ implementation libs.netty.common
+ implementation libs.netty.buffer
+ implementation libs.netty.codec
-/**
- * Adapter for {@link Handler} with empty implementations of all methods but {@link Handler#publish(LogRecord)}.
- */
-public abstract class NoOpHandler extends Handler {
- @Override
- public void flush() {
- // no-op
- }
-
- @Override
- public void close() throws SecurityException {
- // no-op
- }
+ testImplementation project(':ignite-core')
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation libs.mockito.junit
+ testImplementation libs.hamcrest.core
+ testImplementation libs.jmh.core
+ testImplementation libs.jmh.annotation.processor
}
+
+description = 'ignite-client-common'
diff --git a/modules/client-handler/build.gradle b/modules/client-handler/build.gradle
new file mode 100644
index 0000000000..1b075b7c51
--- /dev/null
+++ b/modules/client-handler/build.gradle
@@ -0,0 +1,48 @@
+/*
+ * 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.
+ */
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+apply from: "$rootDir/buildscripts/java-integration-test.gradle"
+
+dependencies {
+ implementation project(':ignite-client-common')
+ implementation project(':ignite-configuration')
+ implementation project(':ignite-api')
+ implementation project(':ignite-table')
+ implementation project(':ignite-sql-engine')
+ implementation project(':ignite-network')
+ implementation project(':ignite-core')
+ implementation project(':ignite-extended-api')
+ implementation project(':ignite-schema')
+ implementation libs.jetbrains.annotations
+ implementation libs.fastutil.core
+ implementation libs.slf4j.jdk14
+ implementation libs.netty.common
+ implementation libs.netty.buffer
+ implementation libs.netty.codec
+ implementation libs.netty.handler
+ implementation libs.msgpack.core
+ implementation libs.msgpack.jackson
+ testImplementation project(':ignite-configuration')
+ testImplementation libs.mockito.junit
+ testImplementation libs.hamcrest.core
+
+ integrationTestImplementation(testFixtures(project(':ignite-configuration')))
+}
+
+description = 'ignite-client-handler'
diff --git a/modules/client/build.gradle b/modules/client/build.gradle
new file mode 100644
index 0000000000..43f0fe47e6
--- /dev/null
+++ b/modules/client/build.gradle
@@ -0,0 +1,53 @@
+/*
+ * 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.
+ */
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+
+dependencies {
+ implementation project(':ignite-api')
+ implementation project(':ignite-core')
+ api project(':ignite-client-common')
+ implementation project(':ignite-marshaller-common')
+
+ implementation libs.jetbrains.annotations
+ implementation libs.msgpack.core
+ implementation libs.msgpack.jackson
+ implementation libs.netty.common
+ implementation libs.netty.buffer
+ implementation libs.netty.codec
+
+ testImplementation libs.jetbrains.annotations
+ testImplementation project(':ignite-client-handler')
+ testImplementation project(':ignite-configuration')
+ testImplementation project(':ignite-sql-engine')
+ testImplementation project(':ignite-schema')
+ testImplementation project(':ignite-table')
+ testImplementation project(':ignite-network')
+ testImplementation project(':ignite-raft-client')
+ testImplementation project(':ignite-transactions')
+ testImplementation project(':ignite-storage-api')
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation(testFixtures(project(':ignite-configuration')))
+ testImplementation libs.hamcrest.core
+ testImplementation libs.junit5.params
+ testImplementation libs.mockito.junit
+ testImplementation libs.archunit.core
+ testImplementation libs.archunit.junit5
+}
+
+description = 'ignite-client'
diff --git a/modules/client/src/test/java/org/apache/ignite/client/ClientArchTest.java b/modules/client/src/test/java/org/apache/ignite/client/ClientArchTest.java
index 4f5e1e16ad..19f664a3f6 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/ClientArchTest.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/ClientArchTest.java
@@ -25,6 +25,7 @@ import com.tngtech.archunit.junit.LocationProvider;
import com.tngtech.archunit.lang.ArchRule;
import com.tngtech.archunit.lang.syntax.ArchRuleDefinition;
import java.io.IOException;
+import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashSet;
import java.util.Set;
@@ -48,13 +49,9 @@ public class ClientArchTest {
var locations = new HashSet<Location>();
// both target/classes and target/libs defines a runtime scope of this particular module
- locations.add(Location.of(Paths.get("target", "classes")));
+ locations.add(Location.of(directoryFromBuildDir("classes")));
- var libDir = Paths.get("target", "libs").toFile();
-
- if (!libDir.exists()) {
- throw new AssertionError("Expect \"libs\" directory to exist. Try to run 'mvn clean install'");
- }
+ var libDir = directoryFromBuildDir("libs").toFile();
for (var lib : libDir.listFiles()) {
if (!lib.getName().endsWith(".jar")) {
@@ -70,6 +67,17 @@ public class ClientArchTest {
return locations;
}
+
+ private static Path directoryFromBuildDir(String folder) {
+ Path path = Paths.get("target", folder);
+ if (!path.toFile().exists()) {
+ path = Paths.get("build", folder);
+ }
+ if (!path.toFile().exists()) {
+ throw new AssertionError("Expect " + folder + " directory to exist.");
+ }
+ return path;
+ }
}
@ArchTest
diff --git a/modules/cluster-management/build.gradle b/modules/cluster-management/build.gradle
new file mode 100644
index 0000000000..0cf2af3fb4
--- /dev/null
+++ b/modules/cluster-management/build.gradle
@@ -0,0 +1,65 @@
+/*
+ * 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.
+ */
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+apply from: "$rootDir/buildscripts/java-test-fixtures.gradle"
+apply from: "$rootDir/buildscripts/java-integration-test.gradle"
+
+description = 'ignite-cluster-management'
+
+dependencies {
+ annotationProcessor project(":ignite-network-annotation-processor")
+ annotationProcessor libs.micronaut.inject.annotation.processor
+
+ implementation project(':ignite-core')
+ implementation project(':ignite-network')
+ implementation project(':ignite-raft')
+ implementation project(':ignite-raft-client')
+ implementation project(':ignite-vault')
+ implementation project(':ignite-rocksdb-common')
+ implementation project(':ignite-rest-api')
+ implementation libs.jetbrains.annotations
+ implementation libs.micronaut.http.core
+ implementation libs.micronaut.http.server.core
+ implementation libs.fastutil.core
+
+ testImplementation project(':ignite-configuration')
+ testImplementation project(':ignite-core')
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation project(':ignite-network')
+ testImplementation libs.hamcrest.core
+ testImplementation libs.mockito.junit
+ testImplementation libs.classgraph
+ testImplementation libs.slf4j.jdk14
+ testImplementation libs.micronaut.test
+ testImplementation libs.micronaut.http.client
+ testImplementation libs.micronaut.http.server.netty
+
+ testFixturesImplementation project(':ignite-core')
+ testFixturesImplementation libs.jetbrains.annotations
+
+ integrationTestAnnotationProcessor libs.micronaut.inject.annotation.processor
+ integrationTestImplementation(testFixtures(project(':ignite-core')))
+ integrationTestImplementation(testFixtures(project(':ignite-network')))
+ integrationTestImplementation libs.micronaut.junit5
+
+ integrationTestImplementation libs.micronaut.test
+ integrationTestImplementation libs.micronaut.http.client
+ integrationTestImplementation libs.micronaut.http.server.netty
+}
+
diff --git a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorageManagerTest.java b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorageManagerTest.java
index 5b3cf7f4b0..9153ccc674 100644
--- a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorageManagerTest.java
+++ b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorageManagerTest.java
@@ -17,9 +17,13 @@
package org.apache.ignite.internal.cluster.management.raft;
+import org.junit.jupiter.api.condition.DisabledOnOs;
+import org.junit.jupiter.api.condition.OS;
+
/**
* Tests for {@link RaftStorageManager} based on {@link RocksDbClusterStateStorage}.
*/
+@DisabledOnOs(value = OS.WINDOWS, disabledReason = "https://issues.apache.org/jira/browse/IGNITE-17601")
public class RocksDbClusterStateStorageManagerTest extends AbstractClusterStateStorageManagerTest {
@Override
ClusterStateStorage clusterStateStorage() {
diff --git a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/ConcurrentMapClusterStateStorage.java b/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/raft/ConcurrentMapClusterStateStorage.java
similarity index 100%
rename from modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/ConcurrentMapClusterStateStorage.java
rename to modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/raft/ConcurrentMapClusterStateStorage.java
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java b/modules/compute/build.gradle
similarity index 52%
copy from modules/core/src/test/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java
copy to modules/compute/build.gradle
index 48afbfbae8..e304ed2c10 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java
+++ b/modules/compute/build.gradle
@@ -15,22 +15,23 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.testframework.jul;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import java.util.logging.Handler;
-import java.util.logging.LogRecord;
+dependencies {
+ implementation project(':ignite-api')
+ implementation project(':ignite-network')
+ implementation project(':ignite-table')
+ implementation project(':ignite-core')
+ implementation libs.jetbrains.annotations
+ implementation libs.fastutil.core
+ annotationProcessor project(':ignite-network-annotation-processor')
-/**
- * Adapter for {@link Handler} with empty implementations of all methods but {@link Handler#publish(LogRecord)}.
- */
-public abstract class NoOpHandler extends Handler {
- @Override
- public void flush() {
- // no-op
- }
-
- @Override
- public void close() throws SecurityException {
- // no-op
- }
+ testImplementation project(':ignite-core')
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation libs.hamcrest.core
+ testImplementation libs.mockito.core
+ testImplementation libs.mockito.junit
}
+
+description = 'ignite-compute'
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java b/modules/configuration-annotation-processor/build.gradle
similarity index 62%
copy from modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java
copy to modules/configuration-annotation-processor/build.gradle
index 31e923d641..a7f7df2f2e 100644
--- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java
+++ b/modules/configuration-annotation-processor/build.gradle
@@ -15,26 +15,18 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.schema.testutils.builder;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import java.util.Map;
+dependencies {
+ implementation project(':ignite-configuration-api')
+ implementation project(':ignite-core')
+ implementation libs.javapoet
+ implementation libs.jetbrains.annotations
-/**
- * Builder base interface.
- */
-public interface SchemaObjectBuilder {
- /**
- * Provide hints to a builder.
- *
- * @param hints Hints.
- * @return {@code This} for chaining.
- */
- SchemaObjectBuilder withHints(Map<String, String> hints);
-
- /**
- * Builds schema object.
- *
- * @return Built object.
- */
- Object build();
+ testImplementation libs.compileTesting
+ testImplementation libs.hamcrest.core
+ testImplementation libs.spoon.core
}
+
+description = 'ignite-configuration-annotation-processor'
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/modules/configuration-api/build.gradle
similarity index 68%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to modules/configuration-api/build.gradle
index 6d54f754d9..60a7f953c3 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/modules/configuration-api/build.gradle
@@ -15,16 +15,12 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
-
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
+dependencies {
+ implementation project(':ignite-core')
+ implementation libs.jetbrains.annotations
}
+
+description = 'ignite-configuration-api'
diff --git a/modules/configuration/build.gradle b/modules/configuration/build.gradle
new file mode 100644
index 0000000000..147b5b1b8a
--- /dev/null
+++ b/modules/configuration/build.gradle
@@ -0,0 +1,60 @@
+/*
+ * 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.
+ */
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+apply from: "$rootDir/buildscripts/java-test-fixtures.gradle"
+
+description = 'ignite-configuration'
+
+dependencies {
+ api project(':ignite-configuration-api')
+ implementation project(':ignite-bytecode')
+ implementation project(':ignite-api')
+ implementation project(':ignite-rest-api')
+ implementation project(':ignite-core')
+ implementation libs.jetbrains.annotations
+ implementation libs.asm.core
+ implementation libs.micronaut.http.core
+ implementation libs.micronaut.http.server.core
+ implementation libs.typesafe.config
+
+ annotationProcessor project(':ignite-configuration-annotation-processor')
+ annotationProcessor libs.micronaut.inject.annotation.processor
+
+ testAnnotationProcessor project(':ignite-configuration-annotation-processor')
+ testAnnotationProcessor libs.micronaut.inject.annotation.processor
+ testImplementation project(':ignite-core')
+ testImplementation project(':ignite-rest-api')
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation libs.junit5.api
+ testImplementation libs.junit5.params
+ testImplementation libs.hamcrest.core
+ testImplementation libs.mockito.core
+ testImplementation libs.micronaut.test
+ testImplementation libs.micronaut.junit5
+ testImplementation libs.micronaut.http.client
+ testImplementation libs.micronaut.http.server.netty
+
+ testFixturesAnnotationProcessor project(':ignite-configuration-annotation-processor')
+ testFixturesImplementation libs.jetbrains.annotations
+ testFixturesImplementation libs.junit5.api
+ testFixturesImplementation libs.mockito.core
+ testFixturesImplementation libs.typesafe.config
+ testFixturesImplementation libs.hamcrest.core
+}
+
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/TestConfigurationChanger.java b/modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/TestConfigurationChanger.java
similarity index 100%
rename from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/TestConfigurationChanger.java
rename to modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/TestConfigurationChanger.java
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/storage/TestConfigurationStorage.java b/modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/storage/TestConfigurationStorage.java
similarity index 100%
rename from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/storage/TestConfigurationStorage.java
rename to modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/storage/TestConfigurationStorage.java
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
similarity index 100%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/ConfigurationExtension.java b/modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/testframework/ConfigurationExtension.java
similarity index 100%
rename from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/ConfigurationExtension.java
rename to modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/testframework/ConfigurationExtension.java
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/ExtendedConfigurationSchema.java b/modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/testframework/ExtendedConfigurationSchema.java
similarity index 100%
rename from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/ExtendedConfigurationSchema.java
rename to modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/testframework/ExtendedConfigurationSchema.java
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/InjectConfiguration.java b/modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/testframework/InjectConfiguration.java
similarity index 100%
rename from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/InjectConfiguration.java
rename to modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/testframework/InjectConfiguration.java
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/InjectRevisionListenerHolder.java b/modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/testframework/InjectRevisionListenerHolder.java
similarity index 100%
rename from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/InjectRevisionListenerHolder.java
rename to modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/testframework/InjectRevisionListenerHolder.java
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/validation/TestValidationUtil.java b/modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/validation/TestValidationUtil.java
similarity index 100%
rename from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/validation/TestValidationUtil.java
rename to modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/validation/TestValidationUtil.java
diff --git a/modules/core/build.gradle b/modules/core/build.gradle
new file mode 100644
index 0000000000..11e386a8a4
--- /dev/null
+++ b/modules/core/build.gradle
@@ -0,0 +1,61 @@
+/*
+ * 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.
+ */
+
+plugins {
+ alias(libs.plugins.shadow)
+}
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+apply from: "$rootDir/buildscripts/java-test-fixtures.gradle"
+
+description = 'ignite-core'
+
+dependencies {
+ implementation libs.jetbrains.annotations
+ implementation libs.fastutil.core
+ testImplementation libs.hamcrest.core
+ testImplementation libs.junit.testkit
+ testImplementation libs.mockito.core
+ testImplementation libs.mockito.inline
+
+ testFixturesImplementation libs.hamcrest.core
+ testFixturesImplementation libs.mockito.core
+ testFixturesImplementation libs.junit.testkit
+ testFixturesImplementation libs.jetbrains.annotations
+ testFixturesImplementation libs.junit5.api
+ testFixturesImplementation libs.junit5.impl
+ testFixturesImplementation libs.junit5.params
+ testFixturesImplementation libs.mockito.core
+}
+
+test {
+ filter {
+ //Don't run parametrized tests from inner static classes which should not run.
+ excludeTestsMatching "*VariableSourceTest\$*"
+ excludeTestsMatching "*WorkDirectoryExtensionTest\$*"
+ }
+}
+
+shadowJar {
+ archiveAppendix.set('shaded')
+ archiveClassifier.set('')
+
+ minimize()
+
+ relocate('it.unimi.dsi.fastutil', 'it.unimi.dsi.shaded.fastutil')
+}
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/BaseIgniteAbstractTest.java b/modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/BaseIgniteAbstractTest.java
similarity index 100%
rename from modules/core/src/test/java/org/apache/ignite/internal/testframework/BaseIgniteAbstractTest.java
rename to modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/BaseIgniteAbstractTest.java
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/IgniteAbstractTest.java b/modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/IgniteAbstractTest.java
similarity index 100%
rename from modules/core/src/test/java/org/apache/ignite/internal/testframework/IgniteAbstractTest.java
rename to modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/IgniteAbstractTest.java
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/IgniteTestUtils.java b/modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/IgniteTestUtils.java
similarity index 100%
rename from modules/core/src/test/java/org/apache/ignite/internal/testframework/IgniteTestUtils.java
rename to modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/IgniteTestUtils.java
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/JunitExtensionTestUtils.java b/modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/JunitExtensionTestUtils.java
similarity index 100%
rename from modules/core/src/test/java/org/apache/ignite/internal/testframework/JunitExtensionTestUtils.java
rename to modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/JunitExtensionTestUtils.java
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/SystemPropertiesExtension.java b/modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/SystemPropertiesExtension.java
similarity index 100%
rename from modules/core/src/test/java/org/apache/ignite/internal/testframework/SystemPropertiesExtension.java
rename to modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/SystemPropertiesExtension.java
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/SystemPropertiesList.java b/modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/SystemPropertiesList.java
similarity index 100%
rename from modules/core/src/test/java/org/apache/ignite/internal/testframework/SystemPropertiesList.java
rename to modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/SystemPropertiesList.java
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/VariableArgumentsProvider.java b/modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/VariableArgumentsProvider.java
similarity index 100%
rename from modules/core/src/test/java/org/apache/ignite/internal/testframework/VariableArgumentsProvider.java
rename to modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/VariableArgumentsProvider.java
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/VariableSource.java b/modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/VariableSource.java
similarity index 100%
rename from modules/core/src/test/java/org/apache/ignite/internal/testframework/VariableSource.java
rename to modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/VariableSource.java
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/WithSystemProperty.java b/modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/WithSystemProperty.java
similarity index 100%
rename from modules/core/src/test/java/org/apache/ignite/internal/testframework/WithSystemProperty.java
rename to modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/WithSystemProperty.java
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/WorkDirectory.java b/modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/WorkDirectory.java
similarity index 100%
rename from modules/core/src/test/java/org/apache/ignite/internal/testframework/WorkDirectory.java
rename to modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/WorkDirectory.java
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/WorkDirectoryExtension.java b/modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/WorkDirectoryExtension.java
similarity index 100%
rename from modules/core/src/test/java/org/apache/ignite/internal/testframework/WorkDirectoryExtension.java
rename to modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/WorkDirectoryExtension.java
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java b/modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java
similarity index 100%
copy from modules/core/src/test/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java
copy to modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/matchers/CompletableFutureMatcher.java b/modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/matchers/CompletableFutureMatcher.java
similarity index 100%
rename from modules/core/src/test/java/org/apache/ignite/internal/testframework/matchers/CompletableFutureMatcher.java
rename to modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/matchers/CompletableFutureMatcher.java
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/util/DirectExecutor.java b/modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/util/DirectExecutor.java
similarity index 100%
rename from modules/core/src/test/java/org/apache/ignite/internal/testframework/util/DirectExecutor.java
rename to modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/util/DirectExecutor.java
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/modules/extended-api/build.gradle
similarity index 68%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to modules/extended-api/build.gradle
index 6d54f754d9..f81bcf47fc 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/modules/extended-api/build.gradle
@@ -15,16 +15,13 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
-
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
+dependencies {
+ implementation project(':ignite-api')
+ annotationProcessor project(":ignite-configuration-annotation-processor")
+ implementation libs.jetbrains.annotations
}
+
+description = 'ignite-extended-api'
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/modules/file-io/build.gradle
similarity index 68%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to modules/file-io/build.gradle
index 6d54f754d9..659eb15396 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/modules/file-io/build.gradle
@@ -15,16 +15,15 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
+dependencies {
+ implementation project(':ignite-core')
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
+ testImplementation project(':ignite-core')
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation libs.hamcrest.core
}
+
+description = 'ignite-file-io'
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/modules/index/build.gradle
similarity index 54%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to modules/index/build.gradle
index 6d54f754d9..6ba0421ee2 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/modules/index/build.gradle
@@ -15,16 +15,22 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
-
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
+dependencies {
+ implementation project(':ignite-api')
+ implementation project(':ignite-core')
+ implementation project(':ignite-table')
+ implementation project(':ignite-schema')
+ implementation project(':ignite-configuration')
+ implementation project(':ignite-extended-api')
+ implementation libs.jetbrains.annotations
+ testImplementation libs.mockito.core
+ testImplementation libs.mockito.inline
+ testImplementation libs.mockito.junit
+ testImplementation libs.hamcrest.core
+ testImplementation libs.slf4j.jdk14
}
+
+description = 'ignite-index'
diff --git a/modules/jacoco-report/build.gradle b/modules/jacoco-report/build.gradle
new file mode 100644
index 0000000000..78be31ff78
--- /dev/null
+++ b/modules/jacoco-report/build.gradle
@@ -0,0 +1,57 @@
+/*
+ * 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.
+ */
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+
+dependencies {
+ implementation project(':ignite-affinity')
+ implementation project(':ignite-api')
+ implementation project(':ignite-baseline')
+ implementation project(':ignite-bytecode')
+ implementation project(':ignite-compute')
+ implementation project(':ignite-sql-engine')
+ implementation project(':ignite-cli')
+ implementation project(':ignite-cli-common')
+ implementation project(':ignite-configuration')
+ implementation project(':ignite-configuration-api')
+ implementation project(':ignite-core')
+ implementation project(':ignite-metastorage')
+ implementation project(':ignite-metastorage-client')
+ implementation project(':ignite-metastorage-common')
+ implementation project(':ignite-metastorage-server')
+ implementation project(':ignite-network')
+ implementation project(':ignite-network-api')
+ implementation project(':ignite-raft')
+ implementation project(':ignite-raft-client')
+ implementation project(':ignite-rest')
+ implementation project(':ignite-rocksdb-common')
+ implementation project(':ignite-schema')
+ implementation project(':ignite-storage-api')
+ implementation project(':ignite-storage-rocksdb')
+ implementation project(':ignite-table')
+ implementation project(':ignite-vault')
+ implementation project(':ignite-runner')
+ implementation project(':ignite-transactions')
+ implementation project(':ignite-client-common')
+ implementation project(':ignite-client-handler')
+ implementation project(':ignite-client')
+ implementation project(':ignite-marshaller-common')
+ implementation project(':ignite-page-memory')
+}
+
+description = 'ignite-jacoco-report'
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testobjects/TestOuterObject.java b/modules/marshaller-common/build.gradle
similarity index 58%
copy from modules/schema/src/test/java/org/apache/ignite/internal/schema/testobjects/TestOuterObject.java
copy to modules/marshaller-common/build.gradle
index f27ee2d52a..5ccc4abdad 100644
--- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testobjects/TestOuterObject.java
+++ b/modules/marshaller-common/build.gradle
@@ -15,26 +15,20 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.schema.testobjects;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-/**
- * Test object.
- */
-public class TestOuterObject {
- private long id;
+description = 'ignite-marshaller-common'
- /**
- * Inner class.
- */
- @SuppressWarnings("InnerClassMayBeStatic")
- public class InnerObject {
- private long id1;
- }
+dependencies {
+ implementation project(':ignite-core')
+ implementation project(':ignite-api')
+ implementation libs.jetbrains.annotations
- /**
- * Nested class.
- */
- public static class NestedObject {
- private long id2;
- }
+ testImplementation project(':ignite-core')
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation libs.junit5.params
+ testImplementation libs.mockito.junit
+ testImplementation libs.jmh.core
+ testImplementation libs.jmh.annotation.processor
}
diff --git a/modules/metastorage-client/build.gradle b/modules/metastorage-client/build.gradle
new file mode 100644
index 0000000000..710084a00a
--- /dev/null
+++ b/modules/metastorage-client/build.gradle
@@ -0,0 +1,40 @@
+/*
+ * 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.
+ */
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+
+dependencies {
+ implementation project(':ignite-raft-client')
+ implementation project(':ignite-core')
+ implementation project(':ignite-metastorage-common')
+ implementation libs.jetbrains.annotations
+ implementation libs.fastutil.core
+ testImplementation project(':ignite-raft')
+ testImplementation project(':ignite-network')
+ testImplementation project(':ignite-network')
+ testImplementation project(':ignite-metastorage-server')
+ testImplementation project(':ignite-configuration')
+ testImplementation project(':ignite-core')
+ testImplementation project(':ignite-raft')
+ testImplementation libs.mockito.junit
+ testImplementation libs.hamcrest.core
+ testImplementation libs.classgraph
+ testImplementation libs.slf4j.jdk14
+}
+
+description = 'ignite-metastorage-client'
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/modules/metastorage-common/build.gradle
similarity index 68%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to modules/metastorage-common/build.gradle
index 6d54f754d9..7b07bc1b30 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/modules/metastorage-common/build.gradle
@@ -15,16 +15,13 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
-
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
+dependencies {
+ implementation project(':ignite-raft-client')
+ implementation project(':ignite-core')
+ implementation libs.jetbrains.annotations
}
+
+description = 'ignite-metastorage-common'
diff --git a/modules/metastorage-server/build.gradle b/modules/metastorage-server/build.gradle
new file mode 100644
index 0000000000..9dd5a75fad
--- /dev/null
+++ b/modules/metastorage-server/build.gradle
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ */
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+apply from: "$rootDir/buildscripts/java-test-fixtures.gradle"
+
+description = 'ignite-metastorage-server'
+
+dependencies {
+ implementation project(':ignite-core')
+ implementation project(':ignite-metastorage-common')
+ implementation project(':ignite-raft-client')
+ implementation project(':ignite-rocksdb-common')
+ implementation libs.jetbrains.annotations
+
+ testImplementation project(':ignite-core')
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation libs.mockito.core
+
+ testFixturesImplementation project(':ignite-core')
+ testFixturesImplementation project(':ignite-metastorage-common')
+ testFixturesImplementation libs.jetbrains.annotations
+}
diff --git a/modules/metastorage-server/src/test/java/org/apache/ignite/internal/metastorage/server/SimpleInMemoryKeyValueStorage.java b/modules/metastorage-server/src/testFixtures/java/org/apache/ignite/internal/metastorage/server/SimpleInMemoryKeyValueStorage.java
similarity index 100%
rename from modules/metastorage-server/src/test/java/org/apache/ignite/internal/metastorage/server/SimpleInMemoryKeyValueStorage.java
rename to modules/metastorage-server/src/testFixtures/java/org/apache/ignite/internal/metastorage/server/SimpleInMemoryKeyValueStorage.java
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/modules/metastorage/build.gradle
similarity index 51%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to modules/metastorage/build.gradle
index 6d54f754d9..6f27d88bf4 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/modules/metastorage/build.gradle
@@ -15,16 +15,23 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
-
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
+dependencies {
+ implementation project(':ignite-configuration')
+ implementation project(':ignite-cluster-management')
+ implementation project(':ignite-network-api')
+ implementation project(':ignite-raft')
+ implementation project(':ignite-vault')
+ api project(':ignite-metastorage-client')
+ api project(':ignite-metastorage-server')
+ api project(':ignite-metastorage-common')
+ implementation project(':ignite-raft-client')
+ implementation project(':ignite-api')
+ implementation project(':ignite-core')
+ implementation libs.jetbrains.annotations
+ testImplementation libs.mockito.junit
}
+
+description = 'ignite-metastorage'
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/modules/metrics/build.gradle
similarity index 68%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to modules/metrics/build.gradle
index 6d54f754d9..b89b8941e4 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/modules/metrics/build.gradle
@@ -15,16 +15,14 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
+dependencies {
+ implementation project(':ignite-core')
+ implementation libs.jetbrains.annotations
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
+ testImplementation libs.hamcrest.core
}
+
+description = 'ignite-metrics'
\ No newline at end of file
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java b/modules/network-annotation-processor/build.gradle
similarity index 63%
copy from modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java
copy to modules/network-annotation-processor/build.gradle
index 31e923d641..40cb8071e6 100644
--- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java
+++ b/modules/network-annotation-processor/build.gradle
@@ -15,26 +15,18 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.schema.testutils.builder;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import java.util.Map;
+dependencies {
+ implementation project(':ignite-core')
+ implementation project(':ignite-network-api')
+ implementation libs.jetbrains.annotations
+ implementation libs.fastutil.core
+ implementation libs.javapoet
-/**
- * Builder base interface.
- */
-public interface SchemaObjectBuilder {
- /**
- * Provide hints to a builder.
- *
- * @param hints Hints.
- * @return {@code This} for chaining.
- */
- SchemaObjectBuilder withHints(Map<String, String> hints);
-
- /**
- * Builds schema object.
- *
- * @return Built object.
- */
- Object build();
+ testImplementation libs.mockito.core
+ testImplementation libs.compileTesting
}
+
+description = 'ignite-network-annotation-processor'
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java b/modules/network-api/build.gradle
similarity index 63%
copy from modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java
copy to modules/network-api/build.gradle
index 31e923d641..1c83f57066 100644
--- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java
+++ b/modules/network-api/build.gradle
@@ -15,26 +15,18 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.schema.testutils.builder;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import java.util.Map;
+dependencies {
+ api project(':ignite-api')
+ implementation project(':ignite-configuration-api')
+ implementation project(':ignite-core')
+ implementation libs.jetbrains.annotations
+ implementation libs.fastutil.core
-/**
- * Builder base interface.
- */
-public interface SchemaObjectBuilder {
- /**
- * Provide hints to a builder.
- *
- * @param hints Hints.
- * @return {@code This} for chaining.
- */
- SchemaObjectBuilder withHints(Map<String, String> hints);
-
- /**
- * Builds schema object.
- *
- * @return Built object.
- */
- Object build();
+ testImplementation libs.hamcrest.core
+ testImplementation libs.mockito.core
}
+
+description = 'ignite-network-api'
diff --git a/modules/network/build.gradle b/modules/network/build.gradle
new file mode 100644
index 0000000000..2d1ec372dd
--- /dev/null
+++ b/modules/network/build.gradle
@@ -0,0 +1,71 @@
+/*
+ * 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.
+ */
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+apply from: "$rootDir/buildscripts/java-test-fixtures.gradle"
+apply from: "$rootDir/buildscripts/java-integration-test.gradle"
+
+description = 'ignite-network'
+
+dependencies {
+ api project(':ignite-api')
+ api project(':ignite-network-api')
+ implementation project(':ignite-configuration')
+ implementation project(':ignite-core')
+ implementation libs.jetbrains.annotations
+ implementation libs.scalecube.cluster
+ implementation libs.fastutil.core
+ implementation libs.netty.handler
+ implementation libs.netty.transport
+ annotationProcessor project(":ignite-network-annotation-processor")
+ annotationProcessor libs.jmh.annotation.processor
+
+ testAnnotationProcessor project(":ignite-network-annotation-processor")
+ testImplementation project(':ignite-configuration')
+ testImplementation(testFixtures(project(':ignite-configuration')))
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation project(':ignite-core')
+ testImplementation project(':ignite-network-annotation-processor')
+ testImplementation libs.jmh.core
+ testImplementation libs.jmh.annotation.processor
+ testImplementation libs.kryo
+ testImplementation libs.hamcrest.core
+ testImplementation libs.mockito.core
+ testImplementation libs.mockito.junit
+ testImplementation libs.javapoet
+ testImplementation libs.classgraph
+ testImplementation libs.slf4j.jdk14
+ testImplementation libs.bytebuddy
+ testImplementation libs.compileTesting
+
+ testFixturesImplementation project(':ignite-configuration')
+ testFixturesImplementation(testFixtures(project(':ignite-core')))
+ testFixturesImplementation(testFixtures(project(':ignite-configuration')))
+ testFixturesImplementation libs.classgraph
+ testFixturesImplementation libs.scalecube.cluster
+ testFixturesImplementation libs.junit5.api
+
+ integrationTestAnnotationProcessor project(":ignite-network-annotation-processor")
+
+ integrationTestImplementation project(':ignite-network-annotation-processor')
+ integrationTestImplementation(testFixtures(project(':ignite-core')))
+ integrationTestImplementation(testFixtures(project(':ignite-configuration')))
+ integrationTestImplementation libs.compileTesting
+ integrationTestImplementation libs.javapoet
+ integrationTestImplementation libs.classgraph
+}
diff --git a/modules/network/src/integrationTest/java/org/apache/ignite/network/scalecube/TestScaleCubeClusterServiceFactory.java b/modules/network/src/testFixtures/java/org/apache/ignite/network/scalecube/TestScaleCubeClusterServiceFactory.java
similarity index 100%
rename from modules/network/src/integrationTest/java/org/apache/ignite/network/scalecube/TestScaleCubeClusterServiceFactory.java
rename to modules/network/src/testFixtures/java/org/apache/ignite/network/scalecube/TestScaleCubeClusterServiceFactory.java
diff --git a/modules/network/src/integrationTest/java/org/apache/ignite/utils/ClusterServiceTestUtils.java b/modules/network/src/testFixtures/java/org/apache/ignite/utils/ClusterServiceTestUtils.java
similarity index 100%
rename from modules/network/src/integrationTest/java/org/apache/ignite/utils/ClusterServiceTestUtils.java
rename to modules/network/src/testFixtures/java/org/apache/ignite/utils/ClusterServiceTestUtils.java
diff --git a/modules/page-memory/build.gradle b/modules/page-memory/build.gradle
new file mode 100644
index 0000000000..a4a2261379
--- /dev/null
+++ b/modules/page-memory/build.gradle
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ */
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+
+dependencies {
+ implementation project(':ignite-api')
+ implementation project(':ignite-core')
+ implementation project(':ignite-configuration')
+ implementation project(':ignite-file-io')
+ implementation libs.jetbrains.annotations
+ implementation libs.fastutil.core
+ annotationProcessor project(':ignite-configuration-annotation-processor')
+
+ testImplementation project(':ignite-core')
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation project(':ignite-configuration')
+ testImplementation(testFixtures(project(':ignite-configuration')))
+ testImplementation libs.mockito.core
+ testImplementation libs.hamcrest.core
+}
+
+description = 'ignite-page-memory'
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/modules/platforms/build.gradle
similarity index 68%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to modules/platforms/build.gradle
index 6d54f754d9..b89ec7297e 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/modules/platforms/build.gradle
@@ -15,16 +15,20 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
+plugins {
+ alias(libs.plugins.cmake)
+}
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
+task copyNativeLibs(type: Copy) {
+ include "**/*.so"
+ from("$rootDir/modules/platforms/cpp")
+ into("$buildDir/classes/")
+}
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
+cmake {
+ workingFolder=file("$buildDir/cpp")
+ sourceFolder=file("$projectDir/cpp")
+ generator='Unix Makefiles'
+ buildConfig='Release'
+ buildTarget='install'
}
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/modules/raft-client/build.gradle
similarity index 67%
copy from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
copy to modules/raft-client/build.gradle
index 6d54f754d9..c210042f1e 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/modules/raft-client/build.gradle
@@ -15,16 +15,15 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
-
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
+dependencies {
+ implementation project(':ignite-core')
+ implementation project(':ignite-network-api')
+ implementation libs.jetbrains.annotations
+ testImplementation libs.mockito.junit
+ testImplementation libs.mockito.core
}
+
+description = 'ignite-raft-client'
diff --git a/modules/raft/build.gradle b/modules/raft/build.gradle
new file mode 100644
index 0000000000..dfa3f97e49
--- /dev/null
+++ b/modules/raft/build.gradle
@@ -0,0 +1,60 @@
+/*
+ * 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.
+ */
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+apply from: "$rootDir/buildscripts/java-test-fixtures.gradle"
+apply from: "$rootDir/buildscripts/java-integration-test.gradle"
+
+description = 'ignite-raft'
+
+dependencies {
+ implementation project(':ignite-core')
+ implementation project(':ignite-raft-client')
+ implementation project(':ignite-network')
+ implementation libs.jetbrains.annotations
+ implementation libs.fastutil.core
+ implementation libs.disruptor
+ implementation libs.rocksdb.jni
+ implementation libs.dropwizard.metrics
+ implementation libs.jctools.core
+ annotationProcessor project(":ignite-network-annotation-processor")
+ annotationProcessor libs.jmh.annotation.processor
+
+ testAnnotationProcessor project(":ignite-network-annotation-processor")
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation(testFixtures(project(':ignite-network')))
+ testImplementation project(':ignite-configuration')
+ testImplementation project(':ignite-core')
+ testImplementation project(':ignite-network')
+ testImplementation libs.mockito.junit
+ testImplementation libs.mockito.core
+ testImplementation libs.netty.common
+ testImplementation libs.hamcrest.core
+ testImplementation libs.jmh.core
+ testImplementation libs.classgraph
+ testImplementation libs.slf4j.jdk14
+
+ testFixturesImplementation project(':ignite-core')
+ testFixturesImplementation project(':ignite-network')
+ testFixturesImplementation project(':ignite-raft-client')
+ testFixturesImplementation libs.mockito.core
+ testFixturesImplementation libs.junit5.api
+
+ integrationTestImplementation(testFixtures(project(':ignite-core')))
+ integrationTestImplementation(testFixtures(project(':ignite-network')))
+}
diff --git a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItNodeTest.java b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItNodeTest.java
index c9a2492eca..8704c5ae95 100644
--- a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItNodeTest.java
+++ b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItNodeTest.java
@@ -127,6 +127,8 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInfo;
+import org.junit.jupiter.api.condition.DisabledOnOs;
+import org.junit.jupiter.api.condition.OS;
import org.junit.jupiter.api.extension.ExtendWith;
/**
@@ -1824,6 +1826,7 @@ public class ItNodeTest {
}
@Test
+ @DisabledOnOs(value = OS.WINDOWS, disabledReason = "https://issues.apache.org/jira/browse/IGNITE-17601")
public void testSetPeer2() throws Exception {
List<PeerId> peers = TestUtils.generatePeers(3);
diff --git a/modules/raft/src/test/java/org/apache/ignite/raft/jraft/test/TestUtils.java b/modules/raft/src/testFixtures/java/org/apache/ignite/raft/jraft/test/TestUtils.java
similarity index 95%
rename from modules/raft/src/test/java/org/apache/ignite/raft/jraft/test/TestUtils.java
rename to modules/raft/src/testFixtures/java/org/apache/ignite/raft/jraft/test/TestUtils.java
index 3224fc9e4b..c3b2a89014 100644
--- a/modules/raft/src/test/java/org/apache/ignite/raft/jraft/test/TestUtils.java
+++ b/modules/raft/src/testFixtures/java/org/apache/ignite/raft/jraft/test/TestUtils.java
@@ -115,9 +115,9 @@ public class TestUtils {
public static RpcRequests.PingRequest createPingRequest() {
return new RaftMessagesFactory()
- .pingRequest()
- .sendTimestamp(System.currentTimeMillis())
- .build();
+ .pingRequest()
+ .sendTimestamp(System.currentTimeMillis())
+ .build();
}
public static final int INIT_PORT = 5003;
@@ -199,9 +199,9 @@ public class TestUtils {
*/
public static void assertAllJraftThreadsStopped() {
assertTrue(waitForCondition(() -> Thread.getAllStackTraces().keySet().stream().
- noneMatch(t -> t.getName().contains("JRaft")), 5_000),
- Thread.getAllStackTraces().keySet().stream().filter(t -> t.getName().contains("JRaft")).
- sorted(comparing(Thread::getName)).collect(toList()).toString());
+ noneMatch(t -> t.getName().contains("JRaft")), 5_000),
+ Thread.getAllStackTraces().keySet().stream().filter(t -> t.getName().contains("JRaft")).
+ sorted(comparing(Thread::getName)).collect(toList()).toString());
}
/**
diff --git a/modules/rest-api/build.gradle b/modules/rest-api/build.gradle
new file mode 100644
index 0000000000..67877b338d
--- /dev/null
+++ b/modules/rest-api/build.gradle
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+
+dependencies {
+ annotationProcessor libs.micronaut.inject.annotation.processor
+ implementation project(':ignite-api')
+ implementation project(':ignite-core')
+ implementation project(':ignite-configuration-api')
+ implementation libs.jetbrains.annotations
+ implementation libs.jackson.annotations
+ implementation libs.jackson.databind
+ implementation libs.jakarta.annotations
+ implementation libs.jakarta.inject
+ implementation libs.swaggerv3.annotations
+ implementation libs.micronaut.http.core
+ implementation libs.micronaut.http.server.core
+ testImplementation libs.junit5.api
+ testImplementation libs.mockito.core
+ testImplementation libs.junit5.params
+}
+
+description = 'ignite-rest-api'
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java b/modules/rest/build.gradle
similarity index 50%
copy from modules/core/src/test/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java
copy to modules/rest/build.gradle
index 48afbfbae8..740cfd7833 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java
+++ b/modules/rest/build.gradle
@@ -15,22 +15,25 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.testframework.jul;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import java.util.logging.Handler;
-import java.util.logging.LogRecord;
+description = 'ignite-rest'
-/**
- * Adapter for {@link Handler} with empty implementations of all methods but {@link Handler#publish(LogRecord)}.
- */
-public abstract class NoOpHandler extends Handler {
- @Override
- public void flush() {
- // no-op
- }
+dependencies {
+ annotationProcessor project(':ignite-configuration-annotation-processor')
+ annotationProcessor libs.micronaut.inject.annotation.processor
+ annotationProcessor libs.micronaut.openapi
+
+ implementation project(':ignite-api')
+ implementation project(':ignite-rest-api')
+ implementation project(':ignite-core')
+ implementation libs.jetbrains.annotations
+ implementation libs.micronaut.inject
+ implementation libs.micronaut.http.server.netty
+ implementation libs.micronaut.openapi
+ implementation libs.jackson.databind
- @Override
- public void close() throws SecurityException {
- // no-op
- }
+ testImplementation project(':ignite-configuration')
+ testImplementation libs.slf4j.jdk14
}
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java b/modules/rocksdb-common/build.gradle
similarity index 68%
rename from modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
rename to modules/rocksdb-common/build.gradle
index 6d54f754d9..28947c2c01 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/testframework/BasicConfigurationSchema.java
+++ b/modules/rocksdb-common/build.gradle
@@ -15,16 +15,13 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration.testframework;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
-
-/**
- * Configuration schema for {@link ConfigurationExtensionTest#notifications()}.
- */
-@Config
-public class BasicConfigurationSchema {
- @Value(hasDefault = true)
- public int visible = 1;
+dependencies {
+ implementation project(':ignite-core')
+ implementation libs.jetbrains.annotations
+ api libs.rocksdb.jni
}
+
+description = 'ignite-rocksdb-common'
diff --git a/modules/runner/build.gradle b/modules/runner/build.gradle
new file mode 100644
index 0000000000..0ca1598a60
--- /dev/null
+++ b/modules/runner/build.gradle
@@ -0,0 +1,94 @@
+/*
+ * 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.
+ */
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+apply from: "$rootDir/buildscripts/java-integration-test.gradle"
+
+dependencies {
+ annotationProcessor project(':ignite-configuration-annotation-processor')
+ annotationProcessor libs.micronaut.inject.annotation.processor
+
+ implementation project(':ignite-configuration')
+ implementation project(':ignite-rest')
+ implementation project(':ignite-api')
+ implementation project(':ignite-vault')
+ implementation project(':ignite-network')
+ implementation project(':ignite-raft')
+ implementation project(':ignite-metastorage')
+ implementation project(':ignite-baseline')
+ implementation project(':ignite-affinity')
+ implementation project(':ignite-table')
+ implementation project(':ignite-index')
+ implementation project(':ignite-sql-engine')
+ implementation project(':ignite-client-handler')
+ implementation project(':ignite-compute')
+ implementation project(':ignite-storage-rocksdb')
+ implementation project(':ignite-storage-page-memory')
+ implementation project(':ignite-transactions')
+ implementation project(':ignite-schema')
+ implementation project(':ignite-storage-api')
+ implementation project(':ignite-rest-api')
+ implementation project(':ignite-core')
+ implementation project(':ignite-cluster-management')
+ implementation project(':ignite-metrics')
+ implementation libs.jetbrains.annotations
+ implementation libs.micronaut.inject
+ implementation libs.micronaut.validation
+ implementation libs.micronaut.runtime
+ implementation libs.micronaut.picocli
+ implementation libs.picocli.core
+ implementation libs.slf4j.jdk14
+
+ testAnnotationProcessor project(':ignite-configuration-annotation-processor')
+ testImplementation project(':ignite-cluster-management')
+ testImplementation project(':ignite-configuration')
+ testImplementation project(':ignite-core')
+ testImplementation project(':ignite-network')
+ testImplementation project(':ignite-vault')
+ testImplementation project(':ignite-client')
+ testImplementation project(':ignite-metastorage-server')
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation(testFixtures(project(':ignite-configuration')))
+ testImplementation(testFixtures(project(':ignite-vault')))
+ testImplementation(testFixtures(project(':ignite-metastorage-server')))
+ testImplementation libs.hamcrest.core
+ testImplementation libs.hamcrest.optional
+ testImplementation libs.hamcrest.path
+ testImplementation libs.mockito.core
+ testImplementation libs.classgraph
+ testImplementation libs.mockito.junit
+ testImplementation libs.jsonpath.assert
+
+ integrationTestAnnotationProcessor project(':ignite-configuration-annotation-processor')
+ integrationTestImplementation project(':ignite-extended-api')
+ integrationTestImplementation project(':ignite-page-memory')
+ integrationTestImplementation project(':ignite-raft-client')
+ integrationTestImplementation project(':ignite-client')
+ integrationTestImplementation(testFixtures(project(':ignite-core')))
+ integrationTestImplementation(testFixtures(project(':ignite-schema')))
+ integrationTestImplementation(testFixtures(project(':ignite-cluster-management')))
+ integrationTestImplementation(testFixtures(project(':ignite-metastorage-server')))
+ integrationTestImplementation(testFixtures(project(':ignite-network')))
+ integrationTestImplementation(testFixtures(project(':ignite-vault')))
+ integrationTestImplementation libs.rocksdb.jni
+ integrationTestImplementation libs.jsonpath.assert
+ integrationTestImplementation libs.typesafe.config
+
+}
+
+description = 'ignite-runner'
diff --git a/modules/schema/build.gradle b/modules/schema/build.gradle
new file mode 100644
index 0000000000..c60dc06b59
--- /dev/null
+++ b/modules/schema/build.gradle
@@ -0,0 +1,51 @@
+/*
+ * 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.
+ */
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+apply from: "$rootDir/buildscripts/java-test-fixtures.gradle"
+
+description = 'ignite-schema'
+
+dependencies {
+ api project(':ignite-binary-tuple')
+ implementation project(':ignite-api')
+ implementation project(':ignite-bytecode')
+ implementation project(':ignite-core')
+ implementation project(':ignite-configuration')
+ implementation project(':ignite-extended-api')
+ implementation libs.jetbrains.annotations
+
+ testAnnotationProcessor project(':ignite-configuration-annotation-processor')
+ testImplementation project(':ignite-configuration')
+ testImplementation project(':ignite-core')
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation(testFixtures(project(':ignite-configuration')))
+ testImplementation libs.hamcrest.core
+ testImplementation libs.hamcrest.optional
+ testImplementation libs.mockito.core
+ testImplementation libs.jmh.core
+ testImplementation libs.javax.annotations
+
+ testFixturesImplementation project(':ignite-api')
+ testFixturesImplementation project(':ignite-bytecode')
+ testFixturesImplementation(testFixtures(project(':ignite-core')))
+ testFixturesImplementation libs.jetbrains.annotations
+ testFixturesImplementation libs.junit5.api
+ testFixturesImplementation libs.junit5.impl
+ testFixturesImplementation libs.junit5.params
+}
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/SchemaTestUtils.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/SchemaTestUtils.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/SchemaTestUtils.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/SchemaTestUtils.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/marshaller/RecordMarshallerTest.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/marshaller/RecordMarshallerTest.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/marshaller/RecordMarshallerTest.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/marshaller/RecordMarshallerTest.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testobjects/TestObjectWithAllTypes.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testobjects/TestObjectWithAllTypes.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/testobjects/TestObjectWithAllTypes.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testobjects/TestObjectWithAllTypes.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testobjects/TestObjectWithNoDefaultConstructor.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testobjects/TestObjectWithNoDefaultConstructor.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/testobjects/TestObjectWithNoDefaultConstructor.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testobjects/TestObjectWithNoDefaultConstructor.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testobjects/TestObjectWithPrivateConstructor.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testobjects/TestObjectWithPrivateConstructor.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/testobjects/TestObjectWithPrivateConstructor.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testobjects/TestObjectWithPrivateConstructor.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testobjects/TestOuterObject.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testobjects/TestOuterObject.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/testobjects/TestOuterObject.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testobjects/TestOuterObject.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testobjects/TestSimpleObject.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testobjects/TestSimpleObject.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/testobjects/TestSimpleObject.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testobjects/TestSimpleObject.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/AbstractIndexBuilder.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/AbstractIndexBuilder.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/AbstractIndexBuilder.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/AbstractIndexBuilder.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/ColumnDefinitionBuilder.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/ColumnDefinitionBuilder.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/ColumnDefinitionBuilder.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/ColumnDefinitionBuilder.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/ColumnDefinitionBuilderImpl.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/ColumnDefinitionBuilderImpl.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/ColumnDefinitionBuilderImpl.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/ColumnDefinitionBuilderImpl.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/HashIndexDefinitionBuilder.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/HashIndexDefinitionBuilder.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/HashIndexDefinitionBuilder.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/HashIndexDefinitionBuilder.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/HashIndexDefinitionBuilderImpl.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/HashIndexDefinitionBuilderImpl.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/HashIndexDefinitionBuilderImpl.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/HashIndexDefinitionBuilderImpl.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/PrimaryKeyDefinitionBuilder.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/PrimaryKeyDefinitionBuilder.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/PrimaryKeyDefinitionBuilder.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/PrimaryKeyDefinitionBuilder.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/PrimaryKeyDefinitionBuilderImpl.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/PrimaryKeyDefinitionBuilderImpl.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/PrimaryKeyDefinitionBuilderImpl.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/PrimaryKeyDefinitionBuilderImpl.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaBuilders.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/SchemaBuilders.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaBuilders.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/SchemaBuilders.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SortedIndexDefinitionBuilder.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/SortedIndexDefinitionBuilder.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SortedIndexDefinitionBuilder.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/SortedIndexDefinitionBuilder.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SortedIndexDefinitionBuilderImpl.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/SortedIndexDefinitionBuilderImpl.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SortedIndexDefinitionBuilderImpl.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/SortedIndexDefinitionBuilderImpl.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/TableDefinitionBuilder.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/TableDefinitionBuilder.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/TableDefinitionBuilder.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/TableDefinitionBuilder.java
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/TableDefinitionBuilderImpl.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/TableDefinitionBuilderImpl.java
similarity index 100%
rename from modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/TableDefinitionBuilderImpl.java
rename to modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/builder/TableDefinitionBuilderImpl.java
diff --git a/modules/sql-engine/build.gradle b/modules/sql-engine/build.gradle
new file mode 100644
index 0000000000..6555ea514c
--- /dev/null
+++ b/modules/sql-engine/build.gradle
@@ -0,0 +1,138 @@
+/*
+ * 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.
+ */
+
+
+import fmpp.setting.Settings
+
+buildscript {
+ dependencies {
+ classpath group: 'net.sourceforge.fmpp', name: 'fmpp', version: '0.9.16'
+ }
+}
+
+plugins {
+ alias(libs.plugins.javacc)
+ id 'idea'
+}
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+
+description = 'ignite-sql-engine'
+
+configurations {
+ calcite
+}
+
+dependencies {
+ implementation project(':ignite-core')
+ implementation project(':ignite-api')
+ implementation project(':ignite-network')
+ implementation project(':ignite-index')
+ implementation project(':ignite-table')
+ implementation project(':ignite-storage-api')
+ implementation project(':ignite-schema')
+ implementation project(':ignite-transactions')
+ implementation libs.jetbrains.annotations
+ implementation libs.fastutil.core
+ implementation libs.caffeine
+ api libs.calcite.core
+ implementation libs.calcite.linq4j
+ implementation libs.value.annotations
+ implementation libs.janino.compiler
+ implementation libs.janino.core
+ implementation libs.calcite.avatica
+ implementation libs.jackson.core
+ implementation libs.jackson.databind
+ implementation libs.jackson.annotations
+ implementation libs.jsonpath.core
+ implementation libs.classgraph
+ implementation libs.javassist
+ implementation libs.esri.geometry
+ implementation libs.checker.qual
+
+ annotationProcessor project(':ignite-network-annotation-processor')
+ annotationProcessor libs.value.annotation.processor
+
+ testAnnotationProcessor project(':ignite-network-annotation-processor')
+ testAnnotationProcessor libs.value.annotation.processor
+ testImplementation project(':ignite-core')
+ testImplementation project(':ignite-baseline')
+ testImplementation project(':ignite-extended-api')
+ testImplementation project(':ignite-metastorage')
+ testImplementation project(':ignite-raft')
+ testImplementation project(':ignite-raft-client')
+ testImplementation project(':ignite-configuration')
+ testImplementation project(':ignite-storage-api')
+ testImplementation project(':ignite-storage-rocksdb')
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation(testFixtures(project(':ignite-configuration')))
+ testImplementation(testFixtures(project(':ignite-storage-api')))
+ testImplementation libs.mockito.junit
+ testImplementation libs.mockito.core
+ testImplementation libs.mockito.inline
+ testImplementation libs.hamcrest.core
+ testImplementation libs.slf4j.jdk14
+
+ calcite(libs.calcite.core)
+}
+
+task copyFmppResources(type: Copy) {
+ from("$rootDir/modules/sql-engine/src/main/codegen")
+ into("$buildDir/codegen")
+}
+
+task extractParserTemplate(type: Copy) {
+ from({ zipTree(configurations.calcite.files[0]) }) {
+ include 'codegen/templates/Parser.jj'
+ }
+ into("${buildDir}")
+}
+
+task generateFmppSources() {
+ doLast {
+ Settings settings = new Settings(temporaryDir)
+ settings.set("sourceRoot", file("${buildDir}/codegen/templates").absolutePath)
+ settings.set("outputRoot", file("$buildDir/generated-sources/fmpp").absolutePath)
+
+ settings.load(file("${buildDir}/codegen/config.fmpp"))
+ settings.execute()
+ }
+}
+
+
+javacc {
+ configs {
+ template {
+ inputFile = file("${buildDir}/generated-sources/fmpp/javacc/Parser.jj")
+ outputDir = file("${buildDir}/generated-sources/javacc")
+ packageName = 'org.apache.ignite.internal.generated.query.calcite.sql'
+ lookahead = 2
+ staticParam = false
+ }
+ }
+}
+
+extractParserTemplate.dependsOn copyFmppResources
+generateFmppSources.dependsOn extractParserTemplate
+javaccTemplate.dependsOn generateFmppSources
+compileJava.dependsOn javaccTemplate
+
+idea.module {
+ sourceDirs += file("${buildDir}/generated-sources/javacc")
+}
+
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/ExecutionTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/ExecutionTest.java
index d58d10ff5c..81272a84ae 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/ExecutionTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/ExecutionTest.java
@@ -47,6 +47,8 @@ import org.apache.ignite.internal.sql.engine.util.Commons;
import org.apache.ignite.internal.sql.engine.util.TypeUtils;
import org.apache.ignite.internal.testframework.IgniteTestUtils;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.DisabledOnOs;
+import org.junit.jupiter.api.condition.OS;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
@@ -55,6 +57,7 @@ import org.junit.jupiter.params.provider.MethodSource;
* ExecutionTest.
* TODO Documentation https://issues.apache.org/jira/browse/IGNITE-15859
*/
+@DisabledOnOs(value = OS.WINDOWS, disabledReason = "https://issues.apache.org/jira/browse/IGNITE-17601")
public class ExecutionTest extends AbstractExecutionTest {
@Test
public void testSimpleExecution() {
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/PlannerTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/PlannerTest.java
index d864f2abfb..30088c44f5 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/PlannerTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/PlannerTest.java
@@ -65,11 +65,14 @@ import org.apache.ignite.network.ClusterNode;
import org.jetbrains.annotations.Nullable;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.DisabledOnOs;
+import org.junit.jupiter.api.condition.OS;
/**
* PlannerTest.
* TODO Documentation https://issues.apache.org/jira/browse/IGNITE-15859
*/
+@DisabledOnOs(value = OS.WINDOWS, disabledReason = "https://issues.apache.org/jira/browse/IGNITE-17601")
public class PlannerTest extends AbstractPlannerTest {
private static List<String> NODES;
diff --git a/modules/storage-api/build.gradle b/modules/storage-api/build.gradle
new file mode 100644
index 0000000000..94c51ca612
--- /dev/null
+++ b/modules/storage-api/build.gradle
@@ -0,0 +1,55 @@
+/*
+ * 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.
+ */
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+apply from: "$rootDir/buildscripts/java-test-fixtures.gradle"
+
+dependencies {
+ annotationProcessor project(":ignite-configuration-annotation-processor")
+ implementation project(':ignite-api')
+ implementation project(':ignite-schema')
+ implementation project(':ignite-transactions')
+ implementation project(':ignite-configuration')
+ implementation project(":ignite-core")
+ implementation libs.jetbrains.annotations
+
+ testAnnotationProcessor project(":ignite-configuration-annotation-processor")
+ testImplementation project(':ignite-core')
+ testImplementation project(':ignite-configuration')
+ testImplementation project(':ignite-schema')
+ testImplementation(testFixtures(project(':ignite-schema')))
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation(testFixtures(project(':ignite-configuration')))
+ testImplementation libs.hamcrest.core
+ testImplementation libs.mockito.core
+
+ testFixturesAnnotationProcessor project(":ignite-configuration-annotation-processor")
+ testFixturesImplementation project(':ignite-core')
+ testFixturesImplementation(testFixtures(project(':ignite-core')))
+ testFixturesImplementation project(':ignite-configuration')
+ testFixturesImplementation project(':ignite-schema')
+ testFixturesImplementation(testFixtures(project(':ignite-schema')))
+ testFixturesImplementation project(':ignite-transactions')
+ testFixturesImplementation project(':ignite-api')
+ testFixturesImplementation libs.jetbrains.annotations
+ testFixturesImplementation libs.hamcrest.core
+ testFixturesImplementation libs.junit5.api
+ testFixturesImplementation libs.junit5.impl
+}
+
+description = 'ignite-storage-api'
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageTest.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageTest.java
similarity index 100%
rename from modules/storage-api/src/test/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageTest.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageTest.java
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/AbstractMvTableStorageTest.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvTableStorageTest.java
similarity index 100%
rename from modules/storage-api/src/test/java/org/apache/ignite/internal/storage/AbstractMvTableStorageTest.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvTableStorageTest.java
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/AbstractPartitionStorageTest.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractPartitionStorageTest.java
similarity index 100%
rename from modules/storage-api/src/test/java/org/apache/ignite/internal/storage/AbstractPartitionStorageTest.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractPartitionStorageTest.java
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/BaseMvStoragesTest.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/BaseMvStoragesTest.java
similarity index 100%
rename from modules/storage-api/src/test/java/org/apache/ignite/internal/storage/BaseMvStoragesTest.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/BaseMvStoragesTest.java
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapDataStorageModule.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapDataStorageModule.java
similarity index 100%
rename from modules/storage-api/src/test/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapDataStorageModule.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapDataStorageModule.java
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapMvPartitionStorage.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapMvPartitionStorage.java
similarity index 100%
rename from modules/storage-api/src/test/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapMvPartitionStorage.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapMvPartitionStorage.java
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapMvTableStorage.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapMvTableStorage.java
similarity index 100%
rename from modules/storage-api/src/test/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapMvTableStorage.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapMvTableStorage.java
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapStorageEngine.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapStorageEngine.java
similarity index 100%
rename from modules/storage-api/src/test/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapStorageEngine.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapStorageEngine.java
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapStorageEngineDistributedConfigurationModule.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapStorageEngineDistributedConfigurationModule.java
similarity index 100%
rename from modules/storage-api/src/test/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapStorageEngineDistributedConfigurationModule.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapStorageEngineDistributedConfigurationModule.java
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/chm/schema/TestConcurrentHashMapDataStorageConfigurationSchema.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/schema/TestConcurrentHashMapDataStorageConfigurationSchema.java
similarity index 100%
rename from modules/storage-api/src/test/java/org/apache/ignite/internal/storage/chm/schema/TestConcurrentHashMapDataStorageConfigurationSchema.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/schema/TestConcurrentHashMapDataStorageConfigurationSchema.java
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/AbstractHashIndexStorageTest.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/index/AbstractHashIndexStorageTest.java
similarity index 100%
rename from modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/AbstractHashIndexStorageTest.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/index/AbstractHashIndexStorageTest.java
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/impl/BinaryTupleComparator.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/index/impl/BinaryTupleComparator.java
similarity index 100%
rename from modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/impl/BinaryTupleComparator.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/index/impl/BinaryTupleComparator.java
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/impl/BinaryTupleRowSerializer.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/index/impl/BinaryTupleRowSerializer.java
similarity index 98%
rename from modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/impl/BinaryTupleRowSerializer.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/index/impl/BinaryTupleRowSerializer.java
index 708342dbd9..c74e9313e9 100644
--- a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/impl/BinaryTupleRowSerializer.java
+++ b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/index/impl/BinaryTupleRowSerializer.java
@@ -148,7 +148,7 @@ public class BinaryTupleRowSerializer {
* @return Builder for chaining.
*/
private static BinaryTupleBuilder appendValue(BinaryTupleBuilder builder, BinaryTupleSchema schema, Object value) {
- BinaryTupleSchema.Element element = schema.element(builder.elementIndex());
+ Element element = schema.element(builder.elementIndex());
if (value == null) {
if (!element.nullable()) {
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/impl/IndexRowImpl.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/index/impl/IndexRowImpl.java
similarity index 100%
rename from modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/impl/IndexRowImpl.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/index/impl/IndexRowImpl.java
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/impl/TestHashIndexStorage.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/index/impl/TestHashIndexStorage.java
similarity index 100%
rename from modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/impl/TestHashIndexStorage.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/index/impl/TestHashIndexStorage.java
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/impl/TestSortedIndexStorage.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/index/impl/TestSortedIndexStorage.java
similarity index 100%
rename from modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/impl/TestSortedIndexStorage.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/index/impl/TestSortedIndexStorage.java
diff --git a/modules/storage-page-memory/build.gradle b/modules/storage-page-memory/build.gradle
new file mode 100644
index 0000000000..5947f04660
--- /dev/null
+++ b/modules/storage-page-memory/build.gradle
@@ -0,0 +1,47 @@
+/*
+ * 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.
+ */
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+
+dependencies {
+ implementation project(':ignite-storage-api')
+ implementation project(':ignite-page-memory')
+ implementation project(':ignite-schema')
+ implementation project(':ignite-core')
+ implementation project(':ignite-api')
+ implementation project(':ignite-file-io')
+ implementation project(':ignite-configuration')
+ implementation project(':ignite-transactions')
+ implementation libs.jetbrains.annotations
+ annotationProcessor project(':ignite-configuration-annotation-processor')
+
+ testImplementation project(':ignite-core')
+ testImplementation project(':ignite-storage-api')
+ testImplementation project(':ignite-configuration')
+ testImplementation project(':ignite-transactions')
+ testImplementation project(':ignite-storage-api')
+ testImplementation project(':ignite-schema')
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation(testFixtures(project(':ignite-configuration')))
+ testImplementation(testFixtures(project(':ignite-storage-api')))
+ testImplementation libs.hamcrest.core
+ testImplementation libs.junit5.params
+ testImplementation libs.mockito.core
+}
+
+description = 'ignite-storage-page-memory'
diff --git a/modules/storage-rocksdb/build.gradle b/modules/storage-rocksdb/build.gradle
new file mode 100644
index 0000000000..1939de8b21
--- /dev/null
+++ b/modules/storage-rocksdb/build.gradle
@@ -0,0 +1,45 @@
+/*
+ * 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.
+ */
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+
+dependencies {
+ annotationProcessor project(':ignite-configuration-annotation-processor')
+ implementation project(':ignite-storage-api')
+ implementation project(':ignite-rocksdb-common')
+ implementation project(':ignite-schema')
+ implementation project(':ignite-core')
+ implementation project(':ignite-api')
+ implementation project(':ignite-configuration')
+ implementation project(':ignite-transactions')
+ implementation libs.jetbrains.annotations
+
+
+ testAnnotationProcessor project(':ignite-configuration-annotation-processor')
+ testImplementation project(':ignite-core')
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation project(':ignite-configuration')
+ testImplementation(testFixtures(project(':ignite-configuration')))
+ testImplementation project(':ignite-storage-api')
+ testImplementation(testFixtures(project(':ignite-storage-api')))
+ testImplementation project(':ignite-schema')
+ testImplementation libs.hamcrest.core
+ testImplementation libs.mockito.core
+}
+
+description = 'ignite-storage-rocksdb'
diff --git a/modules/table/build.gradle b/modules/table/build.gradle
new file mode 100644
index 0000000000..f46cadb7ed
--- /dev/null
+++ b/modules/table/build.gradle
@@ -0,0 +1,66 @@
+/*
+ * 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.
+ */
+
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+
+dependencies {
+ annotationProcessor project(':ignite-configuration-annotation-processor')
+ annotationProcessor project(':ignite-network-annotation-processor')
+ implementation project(':ignite-api')
+ implementation project(':ignite-schema')
+ implementation project(':ignite-core')
+ implementation project(':ignite-metastorage')
+ implementation project(':ignite-affinity')
+ implementation project(':ignite-baseline')
+ implementation project(':ignite-network-api')
+ implementation project(':ignite-raft')
+ implementation project(':ignite-raft-client')
+ implementation project(':ignite-metastorage-client')
+ implementation project(':ignite-storage-api')
+ implementation project(':ignite-transactions')
+ implementation project(':ignite-configuration')
+ implementation project(':ignite-extended-api')
+ implementation libs.jetbrains.annotations
+ implementation libs.fastutil.core
+
+ testImplementation project(':ignite-configuration')
+ testImplementation project(':ignite-storage-api')
+ testImplementation project(':ignite-storage-page-memory')
+ testImplementation project(':ignite-storage-rocksdb')
+ testImplementation project(':ignite-network')
+ testImplementation project(':ignite-core')
+ testImplementation project(':ignite-raft')
+ testImplementation project(':ignite-schema')
+ testImplementation project(':ignite-page-memory')
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation(testFixtures(project(':ignite-schema')))
+ testImplementation(testFixtures(project(':ignite-configuration')))
+ testImplementation(testFixtures(project(':ignite-storage-api')))
+ testImplementation(testFixtures(project(':ignite-raft')))
+ testImplementation libs.mockito.core
+ testImplementation libs.mockito.inline
+ testImplementation libs.mockito.junit
+ testImplementation libs.hamcrest.core
+ testImplementation libs.hamcrest.optional
+ testImplementation libs.classgraph
+ testImplementation libs.slf4j.jdk14
+ testImplementation libs.jmh.core
+ testImplementation libs.javax.annotations
+}
+
+description = 'ignite-table'
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/ColocationHashCalculationTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/ColocationHashCalculationTest.java
index 784e29f7e0..cd712a9b8d 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/ColocationHashCalculationTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/ColocationHashCalculationTest.java
@@ -28,7 +28,6 @@ import org.apache.ignite.internal.logger.Loggers;
import org.apache.ignite.internal.schema.ByteBufferRow;
import org.apache.ignite.internal.schema.Column;
import org.apache.ignite.internal.schema.NativeType;
-import org.apache.ignite.internal.schema.RowTest;
import org.apache.ignite.internal.schema.SchemaDescriptor;
import org.apache.ignite.internal.schema.SchemaTestUtils;
import org.apache.ignite.internal.schema.marshaller.TupleMarshaller;
@@ -57,7 +56,7 @@ public class ColocationHashCalculationTest {
public void initRandom() {
long seed = System.currentTimeMillis();
- Loggers.forClass(RowTest.class).info("Using seed: " + seed + "L; //");
+ Loggers.forClass(ColocationHashCalculationTest.class).info("Using seed: " + seed + "L; //");
rnd = new Random(seed);
}
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java b/modules/transactions/build.gradle
similarity index 52%
copy from modules/core/src/test/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java
copy to modules/transactions/build.gradle
index 48afbfbae8..a2d02553ed 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java
+++ b/modules/transactions/build.gradle
@@ -15,22 +15,23 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.testframework.jul;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
-import java.util.logging.Handler;
-import java.util.logging.LogRecord;
+dependencies {
+ annotationProcessor project(":ignite-network-annotation-processor")
+ implementation project(':ignite-api')
+ implementation project(':ignite-core')
+ implementation project(':ignite-network-api')
+ implementation project(':ignite-network')
+ implementation project(':ignite-raft-client')
+ implementation libs.jetbrains.annotations
+ implementation libs.fastutil.core
-/**
- * Adapter for {@link Handler} with empty implementations of all methods but {@link Handler#publish(LogRecord)}.
- */
-public abstract class NoOpHandler extends Handler {
- @Override
- public void flush() {
- // no-op
- }
-
- @Override
- public void close() throws SecurityException {
- // no-op
- }
+ testImplementation project(':ignite-core')
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation libs.mockito.junit
+ testImplementation libs.mockito.core
}
+
+description = 'ignite-transactions'
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java b/modules/vault/build.gradle
similarity index 50%
rename from modules/core/src/test/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java
rename to modules/vault/build.gradle
index 48afbfbae8..7f6c8d5689 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/testframework/jul/NoOpHandler.java
+++ b/modules/vault/build.gradle
@@ -15,22 +15,26 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.testframework.jul;
+apply from: "$rootDir/buildscripts/java-library.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+apply from: "$rootDir/buildscripts/java-test-fixtures.gradle"
+apply from: "$rootDir/buildscripts/java-integration-test.gradle"
-import java.util.logging.Handler;
-import java.util.logging.LogRecord;
+dependencies {
+ implementation project(':ignite-core')
+ implementation project(':ignite-rocksdb-common')
+ implementation libs.jetbrains.annotations
+ implementation libs.rocksdb.jni
-/**
- * Adapter for {@link Handler} with empty implementations of all methods but {@link Handler#publish(LogRecord)}.
- */
-public abstract class NoOpHandler extends Handler {
- @Override
- public void flush() {
- // no-op
- }
+ testImplementation project(':ignite-core')
+ testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation libs.hamcrest.core
+
+ testFixturesImplementation project(':ignite-core')
+ testFixturesImplementation libs.jetbrains.annotations
+
+ integrationTestImplementation(testFixtures(project(':ignite-core')))
- @Override
- public void close() throws SecurityException {
- // no-op
- }
}
+
+description = 'ignite-vault'
diff --git a/modules/vault/src/test/java/org/apache/ignite/internal/vault/inmemory/InMemoryVaultService.java b/modules/vault/src/testFixtures/java/org/apache/ignite/internal/vault/inmemory/InMemoryVaultService.java
similarity index 100%
rename from modules/vault/src/test/java/org/apache/ignite/internal/vault/inmemory/InMemoryVaultService.java
rename to modules/vault/src/testFixtures/java/org/apache/ignite/internal/vault/inmemory/InMemoryVaultService.java
diff --git a/parent/pom.xml b/parent/pom.xml
index 272a0df708..12a007a289 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -1424,6 +1424,18 @@
</resources>
</configuration>
</execution>
+ <execution>
+ <id>add-test-fixtures</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>add-test-source</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>src/testFixtures/java</source>
+ </sources>
+ </configuration>
+ </execution>
</executions>
</plugin>
@@ -1521,7 +1533,7 @@
<linkXRef>false</linkXRef>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
- <testSourceDirectories>src/integrationTest/java</testSourceDirectories>
+ <testSourceDirectories>src/integrationTest/java,src/testFixtures/java</testSourceDirectories>
</configuration>
</plugin>
@@ -1591,6 +1603,9 @@
<exclude>**/*.bat</exclude> <!-- Files in bat format -->
<exclude>**/*.ini</exclude> <!-- Files in ini format -->
<exclude>modules/runner/src/integrationTest/sql/**</exclude> <!-- SQL logic tests. -->
+ <exclude>gradle/**</exclude> <!-- Gradle internal -->
+ <exclude>gradlew</exclude> <!-- Gradle internal -->
+ <exclude>gradlew.batc</exclude> <!-- Gradle internal -->
</excludes>
</configuration>
</plugin>
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000000..1dc1ed7f25
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,111 @@
+/*
+ * 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.
+ */
+
+rootProject.name = 'ignite-parent'
+include(':ignite-page-memory')
+include(':ignite-storage-api')
+include(':ignite-network-annotation-processor')
+include(':ignite-client')
+include(':ignite-rocksdb-common')
+include(':ignite-file-io')
+include(':ignite-vault')
+include(':ignite-rest')
+include(':ignite-examples')
+include(':ignite-network')
+include(':ignite-raft-client')
+include(':ignite-configuration-api')
+include(':ignite-cli-common')
+include(':ignite-raft')
+include(':ignite-schema')
+include(':ignite-storage-page-memory')
+include(':ignite-transactions')
+include(':ignite-client-common')
+include(':ignite-network-api')
+include(':ignite-cluster-management')
+include(':ignite-metastorage-client')
+include(':ignite-metastorage-server')
+include(':ignite-cli')
+include(':ignite-table')
+include(':ignite-api')
+include(':ignite-client-handler')
+include(':ignite-metastorage-common')
+include(':ignite-extended-api')
+include(':ignite-sql-engine')
+include(':ignite-marshaller-common')
+include(':ignite-jacoco-report')
+include(':ignite-configuration')
+include(':ignite-core')
+include(':ignite-affinity')
+include(':ignite-bytecode')
+include(':ignite-runner')
+include(':ignite-index')
+include(':ignite-baseline')
+include(':ignite-metastorage')
+include(':ignite-rest-api')
+include(':ignite-storage-rocksdb')
+include(':ignite-configuration-annotation-processor')
+include(':ignite-compute')
+include(':ignite-metrics')
+include(':ignite-binary-tuple')
+include(':platforms')
+
+project(":ignite-examples").projectDir = file('examples')
+project(":ignite-page-memory").projectDir = file('modules/page-memory')
+project(":ignite-storage-api").projectDir = file('modules/storage-api')
+project(":ignite-network-annotation-processor").projectDir = file('modules/network-annotation-processor')
+project(":ignite-client").projectDir = file('modules/client')
+project(":ignite-rocksdb-common").projectDir = file('modules/rocksdb-common')
+project(":ignite-file-io").projectDir = file('modules/file-io')
+project(":ignite-vault").projectDir = file('modules/vault')
+project(":ignite-rest").projectDir = file('modules/rest')
+project(":ignite-network").projectDir = file('modules/network')
+project(":ignite-raft-client").projectDir = file('modules/raft-client')
+project(":ignite-configuration-api").projectDir = file('modules/configuration-api')
+project(":ignite-cli-common").projectDir = file('modules/cli-common')
+project(":ignite-raft").projectDir = file('modules/raft')
+project(":ignite-schema").projectDir = file('modules/schema')
+project(":ignite-storage-page-memory").projectDir = file('modules/storage-page-memory')
+project(":ignite-transactions").projectDir = file('modules/transactions')
+project(":ignite-client-common").projectDir = file('modules/client-common')
+project(":ignite-network-api").projectDir = file('modules/network-api')
+project(":ignite-cluster-management").projectDir = file('modules/cluster-management')
+project(":ignite-metastorage-client").projectDir = file('modules/metastorage-client')
+project(":ignite-metastorage-server").projectDir = file('modules/metastorage-server')
+project(":ignite-cli").projectDir = file('modules/cli')
+project(":ignite-table").projectDir = file('modules/table')
+project(":ignite-api").projectDir = file('modules/api')
+project(":ignite-client-handler").projectDir = file('modules/client-handler')
+project(":ignite-metastorage-common").projectDir = file('modules/metastorage-common')
+project(":ignite-extended-api").projectDir = file('modules/extended-api')
+project(":ignite-sql-engine").projectDir = file('modules/sql-engine')
+project(":ignite-marshaller-common").projectDir = file('modules/marshaller-common')
+project(":ignite-jacoco-report").projectDir = file('modules/jacoco-report')
+project(":ignite-configuration").projectDir = file('modules/configuration')
+project(":ignite-core").projectDir = file('modules/core')
+project(":ignite-affinity").projectDir = file('modules/affinity')
+project(":ignite-bytecode").projectDir = file('modules/bytecode')
+project(":ignite-runner").projectDir = file('modules/runner')
+project(":ignite-index").projectDir = file('modules/index')
+project(":ignite-baseline").projectDir = file('modules/baseline')
+project(":ignite-metastorage").projectDir = file('modules/metastorage')
+project(":ignite-rest-api").projectDir = file('modules/rest-api')
+project(":ignite-storage-rocksdb").projectDir = file('modules/storage-rocksdb')
+project(":ignite-configuration-annotation-processor").projectDir = file('modules/configuration-annotation-processor')
+project(":ignite-compute").projectDir = file('modules/compute')
+project(":ignite-metrics").projectDir = file('modules/metrics')
+project(":ignite-binary-tuple").projectDir = file('modules/binary-tuple')
+project(":platforms").projectDir = file('modules/platforms')