This is an automated email from the ASF dual-hosted git repository.
reuvenlax pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git.
from 997ee3a Merge pull request #5842 from
cclauss/print_is_a_function_in_python3
add 0b353a4 Add schema inference from POJO.
add b2eaf22 Add BYTES type to schema, and POJO inference.
add 5a244e3 Add automatic getter/setter inference from POJOS. *
Recursive POJOs and collection/map fields still not support. * getter/setter
generation still needs to be moved into helper class. * Still missing
optimized Row -> POJO conversion when the Row is a wrapper around a POJO.
add 1df588d Handle setter for ByteBuffer fields. Setter will be called
with a byte[] parameter (as that's what Row.getBytes vends), so make sure we
wrap it before assiging.
add be3f53d Split Row into separate subclass for RowWithStorage and
RowWithGetters. This also allows a fast path for Row -> T conversion for the
case of RowWithGetters.
add 01e3c41 Introduce FieldValueGetterFactory and FieldValueSetterFactory.
add 6cde85f Add support for nested, array, and map types.
add c9a983f Refactor getter-based SchemaProvider into a common base class.
add c7f97a8 Refactor getter/setter conversion utilities into a library.
This cleans up the code, and makes these utilities reusable for other types of
getters (e.g. JavaBean getters).
add 536fe4b Refactor Schema inference from POJOs so much of the code can
be reused for other class types.
add cdea677 Add encoding byte BYTES type.
add f5c0b71 Make FieldValueGetter and FieldValueSetter generic types
again.
add 633bac3 Start adding JavaBean getters and setters.
add dfd72db Make sure that field order is stable, and make tests robust
to unpredictable field order.
add b1aade9 Simplify convertArray.
add 5d0ca72 Address code-review comments.
add 5194e00 Address code-review comments.
add 77f66df Add better validation to isSetter isGetter
new 784f17e Merge pull request #5873: [BEAM-4453] Add schema support for
Java POJOs and Java Beans
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../java/org/apache/beam/sdk/coders/RowCoder.java | 4 +
.../org/apache/beam/sdk/schemas/DefaultSchema.java | 7 +-
.../sdk/schemas/GetterBasedSchemaProvider.java | 146 ++++++
.../apache/beam/sdk/schemas/JavaBeanSchema.java | 53 ++
.../apache/beam/sdk/schemas/JavaFieldSchema.java | 53 ++
.../java/org/apache/beam/sdk/schemas/Schema.java | 19 +-
.../apache/beam/sdk/schemas/SchemaProvider.java | 9 +-
.../beam/sdk/schemas/utils/ByteBuddyUtils.java | 563 +++++++++++++++++++++
.../beam/sdk/schemas/utils/JavaBeanUtils.java | 326 ++++++++++++
.../apache/beam/sdk/schemas/utils/POJOUtils.java | 299 +++++++++++
.../beam/sdk/schemas/utils/ReflectUtils.java | 135 +++++
.../sdk/schemas/utils/StaticSchemaInference.java | 219 ++++++++
.../beam/sdk/schemas/{ => utils}/package-info.java | 5 +-
.../main/java/org/apache/beam/sdk/values/Row.java | 131 +++--
.../org/apache/beam/sdk/values/RowWithGetters.java | 122 +++++
.../RowWithStorage.java} | 43 +-
.../beam/sdk/values/reflect/ByteBuddyUtils.java | 6 +-
.../beam/sdk/values/reflect/FieldValueGetter.java | 7 +-
...erFactory.java => FieldValueGetterFactory.java} | 19 +-
...FieldValueGetter.java => FieldValueSetter.java} | 27 +-
...erFactory.java => FieldValueSetterFactory.java} | 19 +-
.../sdk/values/reflect/GeneratedGetterFactory.java | 2 +-
...tterFactory.java => JavaBeanGetterFactory.java} | 18 +-
...tterFactory.java => JavaBeanSetterFactory.java} | 18 +-
...terFactory.java => PojoValueGetterFactory.java} | 18 +-
...terFactory.java => PojoValueSetterFactory.java} | 18 +-
.../beam/sdk/schemas/JavaBeanSchemaTest.java | 338 +++++++++++++
.../beam/sdk/schemas/JavaFieldSchemaTest.java | 344 +++++++++++++
.../beam/sdk/schemas/SchemaRegistryTest.java | 8 +-
.../beam/sdk/schemas/utils/JavaBeanUtilsTest.java | 220 ++++++++
.../beam/sdk/schemas/utils/POJOUtilsTest.java | 214 ++++++++
.../beam/sdk/schemas/utils/SchemaTestUtils.java | 78 +++
.../beam/sdk/schemas/utils/TestJavaBeans.java | 491 ++++++++++++++++++
.../apache/beam/sdk/schemas/utils/TestPOJOs.java | 268 ++++++++++
.../beam/sdk/transforms/ParDoSchemaTest.java | 38 ++
.../values/reflect/DefaultSchemaFactoryTest.java | 4 +-
.../extensions/sql/impl/utils/CalciteUtils.java | 1 +
.../sdk/extensions/sql/SqlSchemaFactoryTest.java | 7 +-
.../operator/BeamSqlInputRefExpressionTest.java | 2 +-
39 files changed, 4147 insertions(+), 152 deletions(-)
create mode 100644
sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/GetterBasedSchemaProvider.java
create mode 100644
sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/JavaBeanSchema.java
create mode 100644
sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/JavaFieldSchema.java
create mode 100644
sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/utils/ByteBuddyUtils.java
create mode 100644
sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/utils/JavaBeanUtils.java
create mode 100644
sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/utils/POJOUtils.java
create mode 100644
sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/utils/ReflectUtils.java
create mode 100644
sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/utils/StaticSchemaInference.java
copy sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/{ =>
utils}/package-info.java (84%)
create mode 100644
sdks/java/core/src/main/java/org/apache/beam/sdk/values/RowWithGetters.java
copy
sdks/java/core/src/main/java/org/apache/beam/sdk/{coders/StructuralByteArray.java
=> values/RowWithStorage.java} (53%)
copy
sdks/java/core/src/main/java/org/apache/beam/sdk/values/reflect/{GetterFactory.java
=> FieldValueGetterFactory.java} (66%)
copy
sdks/java/core/src/main/java/org/apache/beam/sdk/values/reflect/{FieldValueGetter.java
=> FieldValueSetter.java} (62%)
copy
sdks/java/core/src/main/java/org/apache/beam/sdk/values/reflect/{GetterFactory.java
=> FieldValueSetterFactory.java} (66%)
copy
sdks/java/core/src/main/java/org/apache/beam/sdk/values/reflect/{GetterFactory.java
=> JavaBeanGetterFactory.java} (67%)
copy
sdks/java/core/src/main/java/org/apache/beam/sdk/values/reflect/{GetterFactory.java
=> JavaBeanSetterFactory.java} (67%)
copy
sdks/java/core/src/main/java/org/apache/beam/sdk/values/reflect/{GetterFactory.java
=> PojoValueGetterFactory.java} (68%)
copy
sdks/java/core/src/main/java/org/apache/beam/sdk/values/reflect/{GetterFactory.java
=> PojoValueSetterFactory.java} (68%)
create mode 100644
sdks/java/core/src/test/java/org/apache/beam/sdk/schemas/JavaBeanSchemaTest.java
create mode 100644
sdks/java/core/src/test/java/org/apache/beam/sdk/schemas/JavaFieldSchemaTest.java
create mode 100644
sdks/java/core/src/test/java/org/apache/beam/sdk/schemas/utils/JavaBeanUtilsTest.java
create mode 100644
sdks/java/core/src/test/java/org/apache/beam/sdk/schemas/utils/POJOUtilsTest.java
create mode 100644
sdks/java/core/src/test/java/org/apache/beam/sdk/schemas/utils/SchemaTestUtils.java
create mode 100644
sdks/java/core/src/test/java/org/apache/beam/sdk/schemas/utils/TestJavaBeans.java
create mode 100644
sdks/java/core/src/test/java/org/apache/beam/sdk/schemas/utils/TestPOJOs.java