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
John Blum
e76100af47
Add ObjetToJsonConverter interface implementation to convert an Object or PDX to JSON using Apache Geode's o.a.g.pdx.JSONFormatter class.
...
This converter extends (is backed by) the JacksonObjectToJsonConverter implementation to fallback on Jackson's ObjectMapper if the Object to convert is not a o.a.g.pdx.PdxInstance.
Resolves gh-67.
2020-05-06 11:45:47 -07:00
John Blum
cb3141f0b7
Add JsonToPdxConverter interface implementation to convert JSON to PDX using Apache Geode's o.a.g.pdx.JSONFormatter class.
...
Resolves gh-67.
2020-05-06 11:42:06 -07:00
John Blum
9f97a8313d
Add conditional logic to handle beans of type ResolvableRegionFactoryBean.
...
Resolves gh-67.
2020-05-06 11:07:52 -07:00
John Blum
8aed3f95cd
Add JSON examples for Integration Tests.
...
Resolves gh-67.
2020-05-06 00:45:06 -07:00
John Blum
68e7b54c90
Refactor importInto(:Region) to parse and convert JSON containing multiple objects into an array of PdxInstances each stored in the Region.
...
Edit Javadoc.
Resolves gh-67.
2020-05-06 00:43:03 -07:00
John Blum
e67c383de8
Add JsonToPdxArrayConverter interface and Spring Converter extension specifying a contract to convert JSON into PDX, as an array of PdxInstance objects.
...
Resolves gh-69.
2020-05-06 00:37:31 -07:00
John Blum
bbef166670
Edit Javadoc.
...
Resolves gh-67.
2020-05-06 00:13:17 -07:00
John Blum
8cf6a8b410
Add configurable Product.category as an enumerated type.
2020-05-05 13:40:03 -07:00
John Blum
3f05015b2f
Refactor example POS application model classes to be conducive to Jackson's ObjectMapper configuration imposed by GemFire/Geode PDX framework and JSONFormatter class.
2020-05-05 13:15:24 -07:00
John Blum
c3b697e759
Complete base implementation of the JSON CacheDataImporterExporter.
...
Resolves gh-67.
2020-05-05 11:14:04 -07:00
John Blum
ec20642cc1
Add ObjectToJsonConverter interface specifying a contract for converting an Object to JSON.
...
Resolves gh-67.
2020-05-05 11:14:04 -07:00
John Blum
8cb59be29c
Add JsonToPdxConverter interface specifying a contract to convert JSON to PDX.
...
The JSON may be expressed as a byte[] or a String.
Resolves gh-67.
2020-05-05 11:14:04 -07:00
John Blum
98c976fe6c
Add example application model classes for a PurchaseOrder in a Point-of-Sale (POS) system.
2020-05-05 11:14:04 -07:00
John Blum
a0ead741ab
Add implementation of CacheDataImporter/Exporter to import/export JSON sourced data.
...
Resolves gh-67.
2020-05-05 11:14:04 -07:00
John Blum
074fd7f1ed
Add java.util.function.Predicate on Region to filter Regions on data import/export.
...
Add protected getLogger() method returning a SLF4J Logger to log messages and events during data import/export operations.
Format source code.
Resolves gh-67.
2020-05-05 11:14:04 -07:00
John Blum
1b44a80830
Add abstract base class implementation of the CacheDataImporterExporter interface to correctly manage data exports and imports based on application and Environment (context) configuration.
...
Resolves gh-67.
2020-05-05 11:14:04 -07:00
John Blum
76ef0e7062
Introduce CacheDataImporterExporter interface extending the CacheDataImporter and CacheDataExporter interfaces.
...
Resolves gh-67.
2020-05-05 11:14:04 -07:00
John Blum
1a19c228be
Introduce new CacheDataImporter and CacheDataExporter interfaces to import and export data into and out from a GemFire/Geode cache on startup.
...
These new interfaces and APIs are intended to be used in SBDG's auto-configuration when the Spring Boot app using Apache Geode starts up in order to load or save data.
Resolves gh-67.
2020-05-05 11:14:04 -07:00
John Blum
46722ea9c4
Add ApplicationContextMembershipListener implementation and extension of MembershipListenerAdapter to adapt the Spring ApplicationContext to handle peer member departed and joined membership events.
2020-04-27 15:16:42 -07:00
John Blum
b1e9a30e10
Override ApplicationContext prepareRefresh() and onRefresh() methods.
...
Add option to copy configuration from the pre-refresh BeanFactory to the post-refresh BeanFactory instance.
Apply appropriate Spring @NonNull and @Nullable annotations.
Edit Javadoc.
2020-04-27 14:18:45 -07:00
John Blum
2deb202c21
Add new AbstractContextLoader implementation and extension to the Spring TestContext Framework to configure and bootstrap the RefreshableAnnotationConfigApplicationContext used in Spring based tests.
2020-04-27 14:18:45 -07:00
John Blum
e8ddc1f744
Introduce new Spring ApplicationContext implementation and extension that is Refreshable and can be configured with Annotations.
2020-04-27 14:18:45 -07:00
John Blum
cd85bc9112
Add SLF4J, Logback configuration file to configure the log levels for Apache Geode and Spring Framework in Integration Tests.
2020-04-24 15:50:36 -07:00
John Blum
c19609ec33
Edit changelog and add 1.3.0.M4 release notes.
2020-04-19 21:19:25 -07:00
John Blum
603e23f199
Edit changelog and add 1.2.6.RELEASE notes.
2020-03-27 14:25:17 -07:00
John Blum
069ad68016
Add Unit Test demonstrating how to use Mock objects with Spring's Cache Abstraction in a @Cacheable @Service component/bean.
2020-03-20 14:01:28 -07:00
John Blum
2282e94762
Edit changelog and add 1.3.0.M3 release notes.
2020-03-20 02:52:26 -07:00
John Blum
d90dbf6f7a
Use wildcard generic type signature in declaration of the 'VCAP_REQUIRED_PROPERTIES_PREDICATE' Predicate of a parameterized PropertySource type.
...
Remove unnecessary @SuppressWarnings('all') annotation from iterator() method.
2020-03-18 20:23:04 -07:00
John Blum
9054f641c5
Add 1.2.5.RELEASE notes to the changelog.
2020-03-04 02:42:12 +01:00
John Blum
8de9e0c625
Add 1.1.6.RELEASE notes to the changelog.
2020-03-04 02:41:31 +01:00
John Blum
5e4f520fb9
Fix typo in changelog.
2020-03-03 22:21:09 +01:00
John Blum
2f4c8055b4
Fix SDG version in SBDG 1.3.0.M2 release notes.
...
SDG version in SBDG 1.3.0.M2 should be 2.3.0.M3 and not 2.3.0.M2.
2020-02-24 14:25:33 -08:00
John Blum
c2fd7f2e52
Edit changelog and add 1.3.0.M2 release notes.
2020-02-22 23:55:10 -08:00
John Blum
8447eaad10
Update Copyright to 2020.
2020-02-19 23:04:23 -08:00