Commit Graph

1102 Commits

Author SHA1 Message Date
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
fe6e14bb2e Upgrade to Spring Boot 2.3.0.RC1. 2020-05-05 11:01:13 -07:00
John Blum
cac192ddc8 Upgrade to Spring Framework 5.2.6.RELEASE. 2020-05-05 11:00:45 -07:00
John Blum
293eebb676 Add Spring Boot application class configuring and bootstrapping an Apache Geode (or Pivotal GemFire) ClientCache instance for documentation purposes. 2020-05-05 10:56:56 -07:00
John Blum
0053484007 Add optional 'spring-geode-starter-logging' dependency. 2020-04-29 20:55:21 -07:00
John Blum
08bb53f792 Add Smoke Tests asserting the proper behavior of a properly configured Spring ApplicationContext in the case of forced-disconnect / auto-reconnect events in a GemFire/Geode DistributedSystem (cluster). 2020-04-27 15:22:54 -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
0950ba7d9f Reorganize assertions in GeodeAssertions alphabetically. 2020-04-27 14:39:27 -07:00
John Blum
ed0989cce0 Refactor MembershipListenerAdapter away from using java.util.function.Consumer implementations to delegate the processing of membership event towards using the new MembershipEvent types along with overloaded membership event handler methods.
Move MembershipListenerAdapter from org.springframework.geode.distributed to org.springframework.geode.distributed.event.

Edit Javadoc.
2020-04-27 14:35:21 -07:00
John Blum
f134c06390 Introduce the QuorumLostEvent class extending MembershipEvent to signal that a quorum of peer members was lost in the event of a split brain or network partition. 2020-04-27 14:31:36 -07:00
John Blum
6cff7a3da0 Introduce the MemberSuspectEvent class extends MembershipEvent to signal when a peer member of the distributd system (cluster) becomes suspect.
A peer member of the distributed system (cluster) becomse suspect when it is no longer responsive to other peer members in the cluster.
2020-04-27 14:29:54 -07:00
John Blum
dad1459c44 Introduce the MemberJoinedEvent class extending MembershipEvent to signal when a new member joins the distributed system (cluster) as a peer. 2020-04-27 14:28:41 -07:00
John Blum
0f1dbc175d Introduce the MemberDepartedEvent class extending MembershipEvent to signal when a peer member departs from the distributed system (cluster). 2020-04-27 14:27:45 -07:00
John Blum
afb853646f Introduce the abstract MembershipEvent class to encapsulate the details of a membership event (e.g. memberJoined event) as defined by the o.a.g.distributed.internal.MembershipListener interface. 2020-04-27 14:25:27 -07:00
John Blum
929b2e49e5 Add MembershipListenerAdaper class implementing and adapting the o.a.g.distributed.internal.MembershipListener interface.
The internal Apache Geode API MembershipListener interface is useful for receiving notification in the event a peer cache member is disconnected (forced disconnected) and then auto-reconnected to the cluster.
2020-04-27 14:18:45 -07:00
John Blum
3770ff4569 Introduce TupleConsumer interface extending and implementing the java.util.function.Consumer interface accepting a variable number of arguments reprented by InvocationArguments. 2020-04-27 14:18:45 -07:00
John Blum
7ab6cc25b8 Introduce TriConsumer interface modeled after the java.util.function.Consumer interface that accepts 3 arguments. 2020-04-27 14:18:45 -07:00
John Blum
6f0b2ecf84 Introduce InvocationArguments type to capture the arguments passed to a method invocation's parameters. 2020-04-27 14:18:45 -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
d5a9883258 Add optional 'apache-geode-extensions' dependency. 2020-04-24 15:49:56 -07:00
John Blum
d0fb0b3485 Add optional 'org.springframework:spring-test' dependency. 2020-04-24 15:48:47 -07:00
John Blum
ee4026ae4f Downgrade to Spring Boot 2.3.0.M4 (from 2.3 build snapshots).
Currently, the Spring Boot 2.3.0.BUILD-SNAPSHOTS are unresolvable due to a maven-metadate.xml file problem involving file timestamps that Gradle cannot resolve (unlike Maven)! #sigh
2020-04-21 14:39:14 -07:00
John Blum
f2f502e288 Fix misspelling. 2020-04-20 21:18:11 -07:00
John Blum
453092c247 Update README to refer to the 1.3.0.M4 release version and documentation. 2020-04-19 22:20:46 -07:00
John Blum
c88659fc6e Prepare next development iteration.
Set Spring Framework version to 5.2.6.BUILD-SNAPSHOT.

Set Spring Boot version to 2.3.0.BUILD-SNAPSHOT.

Set Spring Data for Apache Geode & Pivotal GemFire version to 2.3.0.BUILD-SNAPSHOT.

Set Spring Data Release Train version to Neumann-BUILD-SNAPSHOT.

Set Spring Session for Apache Geode & Pivotal GemFire version to 2.3.0.BUILD-SNAPSHOT.

Set Spring Session BOM version to Dragonfruit-BUILD-SNAPSHOT.

Set Spring Test for Apache Geode & Pivotal GemFire version to 0.0.15.BUILD-SNAPSHOT.

Set version to 1.3.0.BUILD-SNAPSHOT.
2020-04-19 22:07:11 -07:00
John Blum
6ce2bba2ec Release 1.3.0.M4. 2020-04-19 21:22:26 -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
f7527e2fe3 Upgrade to Testcontainers 1.14.0. 2020-04-19 21:08:34 -07:00
John Blum
3e4e39a967 Upgrade to Spring Session for Apache Geode & Pivotal GemFire 2.3.0.RC2. 2020-04-19 20:57:09 -07:00
John Blum
6c394bf365 Upgrade to Byte Buddy 1.10.9. 2020-04-19 20:56:15 -07:00
John Blum
ff9594e26d Correct grammar, spelling and verbiage in the Multi-Site Caching Guide.
Resolves gh-80.
2020-04-19 20:46:00 -07:00
John Blum
01e0f2f5f0 Clean up all HTTP URLS; replace with HTTPS.
Resolves gh-80.
2020-04-19 17:01:27 -07:00
John Blum
efcfcb0952 Add Guide for the Multi-Site Caching Sample.
Resolves gh-80.
2020-04-19 16:58:08 -07:00
John Blum
e4194d400b Add additional Asciidoc tags to capture the entire WAN Gateway configuration for documentation (guide) purposes.
Resolves gh-80.
2020-04-19 16:57:31 -07:00
John Blum
1173803b4f Add Asciidoc tags to the Multi-Site Caching example source code for documentation (guide) purposes.
Resolves gh-80.
2020-04-17 12:47:08 -07:00
John Blum
8b1d862fb5 Improve Multi-Site (WAN) Caching Sample Integration Tests resiliency.
Include an additional Spring @Configuration class exclusively for testing that registers a Geode CacheListener to wait for the cache Region EntryEvent to occur.  When the ClientCache Registers Interest (all keys) and receives the cache Region (CustomersByName) EntryEvent, then it signifies the WAN Gateways (Sender and Receiver) has replicated the Region EntryEvent between disparate sites.  Client 1 creates the Region EntryEvent that Client 2 expects to see in its cache.

Resolves gh-80.
2020-04-17 12:46:36 -07:00
John Blum
138a8c961d Remove unnecessary @ClientCacheApplication annotation declaration from GeodeClientConfiguration class.
SBDG auto-configures a ClientCache instance by default!

Annotate the GeodeClientConfiguration class with @Configuration.

Resolves gh-80.
2020-04-17 12:46:36 -07:00
John Blum
c90da4a29c Delete unnecessary project CODE_OF_CONDUCT.adoc file. 2020-04-16 10:09:55 -07:00