Commit Graph

70 Commits

Author SHA1 Message Date
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
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
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
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
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
8447eaad10 Update Copyright to 2020. 2020-02-19 23:04:23 -08:00
John Blum
1969f89492 Add GeodeLoggingApplicationListener registered with Spring Boot to handle backwards compatibility and existing logging configuration expressed with SDG.
User may configure logging using @ClientCacheApplication(logLevel = INFO), or by annotating their Spring application class with @EnableLogging(logLevel = INFO) or using 1 of SDG's logging configuration properties ['spring.data.gemfire.cache.log-level', 'spring.data.gemfire.logging.level'], therefore, SBDG makes a best attempt to honor those logging configuration settings.

Resolves gh-73.
2020-02-14 15:19:14 -08:00
John Blum
f21900d0c8 Cleanup compiler warnings.
Apply wildcard generic type signature to PropertySource object reference in order to avoid the rawtype usage warning.

Annotate ClusterAwareCondition.match(..) and ClusterAwareCondition.getConfiguredConnectionEndpoints(..) with @SuppressWarnings.
2020-02-04 15:53:00 -08:00
John Blum
b45431fd53 Optimize imports. 2020-01-24 21:17:09 -08:00
John Blum
47b3c01bf4 Improve EnableClusterAware configuration logic to identify Region beans of type CacheTypeAwareRegionFactoryBean.
Resolves gh-66.
2019-11-15 18:53:19 -08:00
John Blum
25960adc4d Add auto-configuration support for TLS using SSL when deploying Spring Boot ClientCache applications to PCF using PCC that requires secure Sockets.
The TLS/SSL auto-configuration enables and configures the use of the SSL default context provided by the JRE, which the ClientCache instance uses to obtain the required CERT necessary when creating SSL Sockets between the client and PCC servers.

Resolves gh-61.
2019-10-17 15:50:26 -07:00
John Blum
4eff04c517 Refactor Cluster-aware Conditions to be CloudFoundry Environment-aware.
Resolves gh-56.
2019-09-24 00:34:36 -07:00
John Blum
0da65d79b9 Fix possible NullPointerException when testing and mocking.
Resolves gh-52.
2019-09-20 13:41:55 -07:00
John Blum
0094fd6ea4 Add Environment/System property to control ClusterAwareCondition matching.
Provide static method ClusterAwareConfiguration.ClusterAwareCondition.isAvailable() to assess whether the cluster was available in application components and act accordingly.

Resolves gh-52.
2019-09-20 13:23:43 -07:00
John Blum
6b4827c9b6 Add TypelessAnnotationConfigSupport class extending SDG's o.s.d.g.config.annotation.support.AbstractAnnotationConfigSupport class, which is not based on any configuration-based annotation, but provides a means to utilize the helper methods. 2019-09-20 01:42:40 -07:00
John Blum
ff3ddaf586 Adds support to properly clean up and 'reset' the ClusterAwareConfiguration.ClusterAwareCondition state on ApplicationContext closed events. 2019-09-12 17:40:08 -07:00
John Blum
8e30b4ddd2 Improve CQ Auto-configuration by assessing the availability of a server or cluster first before enabling and auto-configuring CQ functionality.
This added capabilities relies on the new ClusterAwareConditions.

Resolves gh-53.
2019-09-12 14:28:59 -07:00
John Blum
25cf033095 Format source code; Optimize imports. 2019-09-12 01:09:38 -07:00
John Blum
a616bc52e7 Correct 'beanName' variable spelling in Lambda expression of the clientCacheMemberNameConfigurer and peerCacheMemberNameConfigurer bean definitions.
Optimize imports.
2019-09-12 01:09:38 -07:00
John Blum
a8e29f7065 Provide ability to reset Cluster-Aware Configuration Condition state. 2019-09-12 01:09:38 -07:00
John Blum
c1d7424de1 Add @EnableClusterAware annotation configuration support allowing developers to seamlessly switch between local and client/server development environments.
Resolves gh-52.
2019-09-12 01:09:38 -07:00
John Blum
69250d1e30 Add capability to find an optional user by name.
Resolves gh-44.
2019-09-10 12:29:32 -07:00
John Blum
2fc6a28de2 Format source code; Optimize imports. 2019-09-03 14:39:52 -07:00
John Blum
a16018bcb2 Add support for 'locators' and 'remote-locators' properties configuration on Spring Boot, Apache Geode Locator applications when using the @UseLocators annotation. 2019-09-01 10:58:58 -07:00
John Blum
6558e0ee97 Remove all improper uses of the Apache Shiro API and replace with the appropriate core Spring Framework API.
For example, usages of org.apache.shiro.util.Assert and org.apache.shiro.util.StringUtils should be replaced with org.springframework.util.Assert and org.springframework.util.StringUtils, respectively.
2019-08-20 15:00:36 -07:00
John Blum
621982f472 Add functionality to target and extract VCAP environment variable configuration for a specific CloudCache Service Instance in PCF.
Resolves gh-33.
2019-06-28 18:43:27 -07:00
John Blum
6e81c007e6 Add comparable methods to optionally 'find' as well as 'require' a CloudCache Service Instance in PCF.
Resolves gh-33.
2019-06-28 13:03:30 -07:00
John Blum
3047073b52 Edit Javadoc.
Apply Spring @NonNull & @Nullable annotations to the API.
2019-06-12 18:19:55 -07:00
John Blum
82a3887f89 Add RegionConfigurer to enable Inline Caching capabilities using a SD CrudRepository for an application Region. 2019-06-12 18:06:10 -07:00
John Blum
66f75bc898 Optimize imports. 2019-06-12 11:02:59 -07:00
John Blum
7278f2af6e Add RegionConfigurer to register a SD CrudRepository as a Region CacheWriter to write-through to an external data source for Inline Caching. 2019-06-12 11:00:34 -07:00
John Blum
f82bf7380a Add RegionConfigurer to register a SD CrudRepository as a Region CacheLoader to handle cache misses in Inline Caching. 2019-06-12 10:59:23 -07:00
John Blum
8d9d520a75 Change getRepository() access modifier to public. 2019-06-12 10:58:54 -07:00
John Blum
567b231954 Optimize imports.
Format source code.
2019-06-09 18:07:40 -07:00
John Blum
6e0cf8f200 Edit Javadoc. 2019-05-09 19:55:46 -07:00
John Blum
7617fddd78 Add a concrete o.s.g.cache.RepositoryCacheLoader class, which implements org.apache.geode.cache.CacheLoader and uses (delegates to) a Spring Data CrudRepository. 2019-05-09 19:52:09 -07:00
John Blum
c33d75db27 Add a concrete o.s.g.cache.RepositoryCacheWriter class, which implements org.apache.geode.cache.CacheWriter and uses (delegates to) a Spring Data CrudRepository. 2019-05-09 19:51:11 -07:00