John Blum
2b05bc5919
Add AbstractResourceReader base class defining operations common to all ResourceReaders.
...
Resolves gh-92.
2020-07-07 11:18:33 -07:00
John Blum
2437b0247e
Define ResourceReader interface for reading data from a resource identified by a Resource handle.
...
Ressolves gh-92.
2020-07-07 11:16:36 -07:00
John Blum
01696b15af
Refactor and polish JSON and base cache data import/export support.
2020-06-25 17:02:56 -07:00
John Blum
ad83eef6f3
Edit changelog and include 1.2.8.RELEASE notes.
2020-06-16 15:00:52 -07:00
John Blum
59f749ab90
Edit changelog and include 1.1.8.RELEASE notes.
2020-06-16 14:59:40 -07:00
John Blum
cca94c37f3
Edit changelog and add 1.3.0.RELEASE notes.
2020-06-11 01:03:37 -07:00
John Blum
5994d6b6a3
Upgrade to FreeFair Lombok Gradle Plugin 5.1.0.
2020-06-10 23:48:29 -07:00
John Blum
5318782bfb
Fix bug to handle cache data import into client LOCAL Regions when no PDX type registry exists.
...
Resolves gh-91.
2020-06-10 23:16:11 -07:00
John Blum
98ee687a78
Include JacksonJsonToObjectConverter, Spring Converter implementation to convert/map JSON to a POJO using Jackson's ObjectMapper.
2020-06-10 22:24:50 -07:00
John Blum
dd439fe300
Include ObjectPdxInstanceAdapter class to adapt a regular Object (POJO) as an instance of PdxInstance.
2020-06-10 20:03:02 -07:00
John Blum
91a10a8ca1
Move PdxInstance identifier/identity resolution logic from JsonCacheDataImporterExporter to PdxInstanceWrapper.
2020-06-10 12:39:21 -07:00
John Blum
450cc58d82
Format source code.
2020-06-10 12:21:35 -07:00
John Blum
e8a8486f33
Edit Javadoc.
2020-06-10 12:21:35 -07:00
John Blum
a0b4f60c77
Define Spring Converter interface extension to convert from JSON into an Object array (array of POJOs).
2020-06-10 12:21:35 -07:00
John Blum
2b2e03a764
Define Spring Converter interface extension to convert from JSON into an Object (POJO).
2020-06-10 12:21:35 -07:00
John Blum
db0a00e452
Rename toPdxArray(:byte[]) to toPdx(:byte[]).
2020-06-10 12:21:35 -07:00
John Blum
e05c627e13
Refactor toJson(:Region) to serialize the values from the Region using the AbstractObjectArrayToJsonConverter class and CacheUtils.collectValues(:Region) method.
2020-06-10 12:21:35 -07:00
John Blum
53dda1265b
Remove unused and unnecessary code.
2020-06-09 20:47:04 -07:00
John Blum
895378be70
Add Spring Lifecycle-aware CacheDataImporterExporter implementation.
...
Resolves gh-90.
2020-06-09 14:10:04 -07:00
John Blum
cb291c844e
Enable JSON data formatting on export.
...
Resolves gh-89.
2020-06-09 14:09:57 -07:00
John Blum
b07ca31e51
Add file system appropriate file path separator to Resource location on export.
2020-06-08 15:16:28 -07:00
John Blum
8aea5ce76d
Edit changelog and include release notes from the 1.2.7.RELEASE.
2020-05-22 14:11:39 -07:00
John Blum
9d2e1c2617
Edit changelog and include release notes from the 1.1.7.RELEASE.
2020-05-22 14:10:35 -07:00
John Blum
dcfb7eb186
Add configuration property to enable/disable data imports.
2020-05-14 22:32:31 -07:00
John Blum
9e2baf987a
Remove unnecessary @SuppressWarnings annotation declarations.
2020-05-14 19:09:59 -07:00
John Blum
51d64082fa
Edit changelog and add 1.3.0.RC1 release notes.
2020-05-13 23:04:16 -07:00
John Blum
e3efabe476
Changes 'apache-geode-extensions' dependency from 'optional' to 'compile'.
2020-05-13 00:28:56 -07:00
John Blum
ae39191563
Fix invalid Javadoc tags.
2020-05-13 00:21:47 -07:00
John Blum
a63d792898
Add getAtIdentifier(:PdxInstance) method and strategy for resolving ids from PdxInstances.
...
Add postProcess(:PdxInstance) method to allow subclasses to override the method in order to post process the PdxInstance(s) generated from JSON.
Edit Javadoc.
Rename getIdField(:PdxInstance) to getId(:PdxInstance).
Resolves gh-67.
2020-05-13 00:13:26 -07:00
John Blum
2536585de9
Edit Javadoc.
...
Resolves gh-67.
2020-05-12 22:06:07 -07:00
John Blum
fa9b2e1ae6
Fix infinite recursion bug leading to a StackOverflowError.
...
Renamed the convertObjectToJson(:Object) method in the JSONFormatterPdxToJsonConverter class to convertPojoToJson(:Object).
Resolves gh-67.
2020-05-12 22:01:22 -07:00
John Blum
8fe13e01fb
Add descriptive convertJsonToPdx(..) conversion method.
...
Add protected jsonFormatterFromJson(..) method to encapsulate the invocation of the JSONFormatter.fromJSON(..) method.
Add wrap(:PdxInstance) method to wrap the PdxInstance generated from JSON in a new instance of PdxInstanceWrapper.
Resolves gh-67.
2020-05-12 19:41:06 -07:00
John Blum
eba12bad17
Configure Jackson ObjectMapper to find and register additional modules declared on the application's classpath.
...
Resolves gh-67.
2020-05-12 19:23:20 -07:00
John Blum
cc257f5ef9
Edit Javadoc.
...
Resolves gh-67.
2020-05-12 19:05:37 -07:00
John Blum
22b01985b7
Add Integration Tests for JsonCacheDataImporterExporter asserting the functionality in a client/server topology with a ClientCache.
...
Resolves gh-67.
2020-05-11 00:04:43 -07:00
John Blum
b1ec1dbab2
Delegate all cach instance operations to org.springframework.geode.util.CacheUtils.
2020-05-11 00:02:41 -07:00
John Blum
f40685fb4e
Refactor JSONFormatterPdxToJsonConverter to handle missing type metadata in both PdxInstances and in JSON, which is required to reconstitute the Object.
...
Resolves gh-67.
2020-05-10 13:23:47 -07:00
John Blum
30a84eefdd
Add additional Integration Tests for JsonCacheDataImporterExporter class.
...
Added add test cases covering:
* exportImportWithRegionContainingMixOfObjectsAndPdxInstances
* geodeJsonFormatterCannotHandleTypedJsonObjects
* geodeJsonFormatterCannotRememberPdxInstanceClass
Edit Javadoc.
Resolves gh-67.
2020-05-10 00:26:59 -07:00
John Blum
596ea093ba
Add null-safe asType(:Object, :Class) method to cast the given source Object into an instance of the given Class type.
2020-05-09 21:07:05 -07:00
John Blum
9dbd290322
Add Integration Tests for JsonCacheDataImporterExporter.
...
Resolves gh-67.
2020-05-08 01:45:05 -07:00
John Blum
a855787b66
Include Jackson JSON serializers for BigDecimals and BigIntegers as well as generating typeless Collection JSON.
...
Resolves gh-67.
2020-05-08 01:44:39 -07:00
John Blum
33458ab4be
Refactor POS PurchaseOrder application domain model class to include an identifyAs(:Long) builder method to set the ID of a PurchaseOrder instance.
...
Annotate the PurchaseOrder class with Jackson's JsonTypeInfo annotation.
Include statically defined Array and Map instance members for test purposes.
2020-05-08 01:42:56 -07:00
John Blum
4d7becad79
Simplify ObjectMapper configuration.
...
Remove activation of default typing configuration.
Change target Class type for ObjectTypeMetadataMixin (Mixin) to the (converted) source object's Class type.
Remove unnecessary SimpleModule registration including the addition of the custom BigDecimalSerializer, BigIntegerSerializer and TypelessCollectionSerializer objects.
Resolves gh-67.
2020-05-08 01:29:26 -07:00
John Blum
8418082a00
Remove unnecessary ObjectMapper configuration used specifically for deserialization.
...
Clearly, this configuration is 'unnecessary' because the ObjectMapper is used to serialize Objects to JSON in this converter.
Removes Mixin that virtually annotated application domain model object types with @JsonIgnoreProperties for unknown/unmapped properties.
Removes configuration to accept case insensitive Enum (String) values.
Resolves gh-67.
2020-05-08 00:54:41 -07:00
John Blum
a3faf2584a
Configure the ObjectMapper used to convert (serialize) Objects to JSON with Jackson.
...
Activates default typing using a property.
Adds Mixin to virtually annotate application domain model object types with @JsonTypeInfo.
Adds Mixin to virtually annotate application domain model object types with @JsonIgnoreProperties for unknown/unmapped properties.
Configures JsonGenerator to write BigDecimal values as a plain String.
Configures ObjectMapper to accept case insensitive Enum (String) values.
Configures ObjectMapper to sort properties alphabetically in JSON.
Registers SimpleModule with customer JsonSerializers for java.math.BigDecimal and java.math.BigInteger as well as to render typeless Collections.
Resolves gh-67.
2020-05-08 00:54:41 -07:00
John Blum
2627cf7a90
Change ObjectToJsonConverter implementation from JacksonObjectToJsonConverter to JSONFormatterPdxToJsonConverter.
...
Note that JSONFormatterPdxToJsonConverter extends JacksonObjectToJsonConverter and adds the capability to convert (serialize) PDX to JSON in addition to Objects.
Resolves gh-67.
2020-05-07 22:16:51 -07:00
John Blum
5b5e2e5db8
Add abstract base class implementing the ObjectArrayToJsonConverter interface to encapsulate operation common to all implementations.
...
The abstract base class provides convert methods to convert arrays, Iterables and Map.values(). Additionally it contains support to configure the ObjectToJsonConverter used to convert individual Objects into JSON.
Resolves gh-67.
2020-05-07 21:26:18 -07:00
John Blum
72443e95af
Add ObjectArrayToJsonConverter interface specifying a contract to convert an array of Objects to JSON.
...
Resolves gh-67.
2020-05-07 21:24:09 -07:00
John Blum
9232180643
Add JsonToPdxConverter interface implementation converting JSON to PDX backed by Apache Geode's o.a.g.pdx.JSONFormatter class and Jackson's ObjectMapper.
...
Resolves gh-67.
2020-05-06 13:27:49 -07:00
John Blum
7f9b36ec18
Adds ObjectToJsonConverter interface implementation using Jackson to convert an Object to JSON.
...
Resolves gh-67.
2020-05-06 12:20:52 -07:00