You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by am...@apache.org on 2021/08/27 11:15:51 UTC
[ignite-3] 01/02: Move TupleImpl to table module.
This is an automated email from the ASF dual-hosted git repository.
amashenkov pushed a commit to branch ignite-15382
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit 6dd6b4ebb6399070f08633a164cfcbd87cafe133
Author: Andrew Mashenkov <an...@gmail.com>
AuthorDate: Fri Aug 27 14:15:16 2021 +0300
Move TupleImpl to table module.
---
.../main/java/org/apache/ignite/table/Tuple.java | 31 ++++++++++++++++++++--
modules/table/pom.xml | 9 +++++++
.../internal/table/MutableRowTupleAdapter.java | 1 -
.../ignite/internal/table/TupleFactoryImpl.java} | 18 +++++++++++--
.../apache/ignite/internal}/table/TupleImpl.java | 3 ++-
.../org.apache.ignite.table.Tuple$TupleFactory | 1 +
.../TupleMarshallerFixlenOnlyBenchmark.java | 2 +-
.../TupleMarshallerVarlenOnlyBenchmark.java | 2 +-
.../internal/table/MutableRowTupleAdapterTest.java | 1 -
.../org/apache/ignite/table/TupleImplTest.java | 1 +
10 files changed, 60 insertions(+), 9 deletions(-)
diff --git a/modules/api/src/main/java/org/apache/ignite/table/Tuple.java b/modules/api/src/main/java/org/apache/ignite/table/Tuple.java
index 5b82972..a8fedb4 100644
--- a/modules/api/src/main/java/org/apache/ignite/table/Tuple.java
+++ b/modules/api/src/main/java/org/apache/ignite/table/Tuple.java
@@ -22,6 +22,8 @@ import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.BitSet;
+import java.util.ServiceConfigurationError;
+import java.util.ServiceLoader;
import java.util.UUID;
import org.apache.ignite.binary.BinaryObject;
import org.jetbrains.annotations.NotNull;
@@ -32,13 +34,18 @@ import org.jetbrains.annotations.NotNull;
* Provides specialized method for some value-types to avoid boxing/unboxing.
*/
public interface Tuple extends Iterable<Object> {
+ /** Default factory. */
+ static TupleFactory FACTORY = ServiceLoader.load(TupleFactory.class)
+ .findFirst()
+ .orElseThrow(() -> new ServiceConfigurationError("Failed to locate TupleFactory."));
+
/**
* Creates a tuple.
*
* @return Tuple.
*/
static Tuple create() {
- return new TupleImpl();
+ return FACTORY.create();
}
/**
@@ -48,7 +55,7 @@ public interface Tuple extends Iterable<Object> {
* @return Tuple.
*/
static Tuple create(int capacity) {
- return new TupleImpl();
+ return FACTORY.create(capacity);
}
/**
@@ -365,4 +372,24 @@ public interface Tuple extends Iterable<Object> {
* @throws IndexOutOfBoundsException If column with given index doesn't exists.
*/
Instant timestampValue(int columnIndex);
+
+ /**
+ * Tuple factory service interface.
+ */
+ interface TupleFactory {
+ /**
+ * Creates a tuple.
+ *
+ * @return Tuple.
+ */
+ Tuple create();
+
+ /**
+ * Creates a tuple with specified initial capacity.
+ *
+ * @param capacity Initial capacity.
+ * @return Tuple.
+ */
+ Tuple create(int capacity);
+ }
}
diff --git a/modules/table/pom.xml b/modules/table/pom.xml
index d63fa39..55d63b3 100644
--- a/modules/table/pom.xml
+++ b/modules/table/pom.xml
@@ -165,4 +165,13 @@
<scope>test</scope>
</dependency>
</dependencies>
+
+ <build>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </build>
</project>
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/MutableRowTupleAdapter.java b/modules/table/src/main/java/org/apache/ignite/internal/table/MutableRowTupleAdapter.java
index 6c46ca5..d88f461 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/MutableRowTupleAdapter.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/MutableRowTupleAdapter.java
@@ -27,7 +27,6 @@ import java.util.UUID;
import org.apache.ignite.binary.BinaryObject;
import org.apache.ignite.internal.schema.row.Row;
import org.apache.ignite.table.Tuple;
-import org.apache.ignite.table.TupleImpl;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/modules/schema/src/main/java/org/apache/ignite/schema/package-info.java b/modules/table/src/main/java/org/apache/ignite/internal/table/TupleFactoryImpl.java
similarity index 66%
rename from modules/schema/src/main/java/org/apache/ignite/schema/package-info.java
rename to modules/table/src/main/java/org/apache/ignite/internal/table/TupleFactoryImpl.java
index 9e3328b..64f521c 100644
--- a/modules/schema/src/main/java/org/apache/ignite/schema/package-info.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/TupleFactoryImpl.java
@@ -15,7 +15,21 @@
* limitations under the License.
*/
+package org.apache.ignite.internal.table;
+
+import org.apache.ignite.table.Tuple;
+
/**
- * Contains public schema definition helpers.
+ * Tuple factory service implementation.
*/
-package org.apache.ignite.schema;
+public class TupleFactoryImpl implements Tuple.TupleFactory {
+ /** {@inheritDoc} */
+ @Override public Tuple create() {
+ return new TupleImpl();
+ }
+
+ /** {@inheritDoc} */
+ @Override public Tuple create(int capacity) {
+ return new TupleImpl(capacity);
+ }
+}
diff --git a/modules/api/src/main/java/org/apache/ignite/table/TupleImpl.java b/modules/table/src/main/java/org/apache/ignite/internal/table/TupleImpl.java
similarity index 99%
rename from modules/api/src/main/java/org/apache/ignite/table/TupleImpl.java
rename to modules/table/src/main/java/org/apache/ignite/internal/table/TupleImpl.java
index 279dd27..79a92b1 100644
--- a/modules/api/src/main/java/org/apache/ignite/table/TupleImpl.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/TupleImpl.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.table;
+package org.apache.ignite.internal.table;
import java.time.Instant;
import java.time.LocalDate;
@@ -30,6 +30,7 @@ import java.util.Map;
import java.util.Objects;
import java.util.UUID;
import org.apache.ignite.binary.BinaryObject;
+import org.apache.ignite.table.Tuple;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/modules/table/src/main/resources/META-INF/services/org.apache.ignite.table.Tuple$TupleFactory b/modules/table/src/main/resources/META-INF/services/org.apache.ignite.table.Tuple$TupleFactory
new file mode 100644
index 0000000..7a69e2b
--- /dev/null
+++ b/modules/table/src/main/resources/META-INF/services/org.apache.ignite.table.Tuple$TupleFactory
@@ -0,0 +1 @@
+org.apache.ignite.internal.table.TupleFactoryImpl
\ No newline at end of file
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/benchmarks/TupleMarshallerFixlenOnlyBenchmark.java b/modules/table/src/test/java/org/apache/ignite/internal/benchmarks/TupleMarshallerFixlenOnlyBenchmark.java
index 07107cc..1c87ce9 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/benchmarks/TupleMarshallerFixlenOnlyBenchmark.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/benchmarks/TupleMarshallerFixlenOnlyBenchmark.java
@@ -30,7 +30,7 @@ import org.apache.ignite.internal.schema.registry.SchemaRegistryImpl;
import org.apache.ignite.internal.schema.row.Row;
import org.apache.ignite.internal.table.TupleMarshallerImpl;
import org.apache.ignite.table.Tuple;
-import org.apache.ignite.table.TupleImpl;
+import org.apache.ignite.internal.table.TupleImpl;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Fork;
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/benchmarks/TupleMarshallerVarlenOnlyBenchmark.java b/modules/table/src/test/java/org/apache/ignite/internal/benchmarks/TupleMarshallerVarlenOnlyBenchmark.java
index 51dc32f..800a224 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/benchmarks/TupleMarshallerVarlenOnlyBenchmark.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/benchmarks/TupleMarshallerVarlenOnlyBenchmark.java
@@ -31,7 +31,7 @@ import org.apache.ignite.internal.schema.registry.SchemaRegistryImpl;
import org.apache.ignite.internal.schema.row.Row;
import org.apache.ignite.internal.table.TupleMarshallerImpl;
import org.apache.ignite.table.Tuple;
-import org.apache.ignite.table.TupleImpl;
+import org.apache.ignite.internal.table.TupleImpl;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Fork;
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/MutableRowTupleAdapterTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/MutableRowTupleAdapterTest.java
index 9890ea9..f753f44 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/MutableRowTupleAdapterTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/MutableRowTupleAdapterTest.java
@@ -38,7 +38,6 @@ import org.apache.ignite.internal.table.impl.DummySchemaManagerImpl;
import org.apache.ignite.internal.testframework.IgniteTestUtils;
import org.apache.ignite.schema.SchemaMode;
import org.apache.ignite.table.Tuple;
-import org.apache.ignite.table.TupleImpl;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
diff --git a/modules/table/src/test/java/org/apache/ignite/table/TupleImplTest.java b/modules/table/src/test/java/org/apache/ignite/table/TupleImplTest.java
index 9841602..a80342d 100644
--- a/modules/table/src/test/java/org/apache/ignite/table/TupleImplTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/table/TupleImplTest.java
@@ -25,6 +25,7 @@ import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Random;
import java.util.UUID;
+import org.apache.ignite.internal.table.TupleImpl;
import org.apache.ignite.internal.testframework.IgniteTestUtils;
import org.junit.jupiter.api.Test;