Commit Graph

1253 Commits

Author SHA1 Message Date
John Blum
a605bd9f40 Add a general ResourceDataAccessException, RuntimeException class indicating problems while accessing the data from a target Resource.
Add ResourceReadException extending ResourceDataAccessException to indicate problems while reading from a target Resource.

Add ResourceWriteException extending ResourceDataAccessException to indicate problems while writing to a target Resource.

Resolves gh-92.
2020-07-20 12:03:01 -07:00
John Blum
58a4992905 Move all Resource handling logic and class member constants to the ResourceCapableCacheDataImporterExporter subclass.
Edit Javadoc.

Change access modifier on getApplicationContext() from public to protected.

Resolves gh-92.
2020-07-16 14:48:01 -07:00
John Blum
681fd81ad2 Define new, abstract ResourceCapableCacheDataImporterExporter capable of handling dynamic Resources.
The primary concerns involve resolving Resources for import/export along with reading from and writing to any Resource using the Spring Resource abstraction.

Resolves gh-92.
2020-07-16 14:43:32 -07:00
John Blum
9a77049a76 Add new SpEL PropertyAccessor implementation to handle Spring Environment and EnvironmentCapable objects in safe way. 2020-07-10 14:59:57 -07:00
John Blum
a1ab9226eb Add Adapter class for a Spring Environment to use as a Map. 2020-07-10 14:59:57 -07:00
John Blum
d7f1091754 Add null-safe isReadable(:Resource) and isWritable(:Resource) utility methods.
Resolve gh-92.
2020-07-10 14:59:57 -07:00
John Blum
d21ce7d20a Utilize new enum for Resource prefixes.
Simplify ResourceLoaderResourceResolver.getResourceLoader() to use the new 'initialize' operator.

Resolves gh-92.
2020-07-10 14:59:57 -07:00
John Blum
433d152c98 Add enumeration of supported Resource prefixes (e.g. classpath:).
Additionally, the enum defines operations on the Resource prefixes for convenience.

Resolves gh-92.
2020-07-10 14:59:57 -07:00
John Blum
251f762c2d Add initialize(..) operator to promote initialization safety.
The initialize operator replaces the common initialization safety pattern using an if-then-else or Java's ternary operator to ensure that a collaborator reference has bee properly initialized:

target = target != null ? target : new Target();
2020-07-08 14:19:06 -07:00
John Blum
2da58cc548 Add ResourceLoaderResourceResolver implementation using Spring's ResourceLoader to resolve Resources.
Resolves gh-92.
2020-07-08 14:18:48 -07:00
John Blum
7de8bde27a Define ResourceResolver interface encapsulating the algorithm or strategy for resolving Resources in different contexts.
Resolves gh-92.
2020-07-08 12:33:10 -07:00
John Blum
a1ece3599c Add ResourceNotFoundException as a RuntimeException to indicate that a Resource could not be found at the specified location.
Resolves gh-92.
2020-07-08 12:33:10 -07:00
John Blum
60f748a30d Add UnhandledResourceException as a RuntimeException to indicate that a Resource could not be handled, or processed (e.g. read, written).
Resolves gh-92.
2020-07-08 12:33:10 -07:00
John Blum
703cc43282 Add ResourceUtils abstract utility class containing operations for working with Resource objects and byte arrays.
Resolves gh-92.
2020-07-08 12:33:10 -07:00
John Blum
02f06500fc Add FileResourceWriter implementation to write data to a File-based Resource.
Resolves gh-92.
2020-07-07 11:24:50 -07:00
John Blum
edd0cab1af Add AbstractResourceWriter base class containing operations common to all ResourceWriters.
Resolves gh-92.
2020-07-07 11:23:26 -07:00
John Blum
d2591f7f8c Define ResourceWriter interface for writing data to a resource identified by a Resource handle.
Resolves gh-92.
2020-07-07 11:21:47 -07:00
John Blum
8ed0f24d8b Add ByteArrayResourceReader implementation that reads the data from a Resource (e.g. ClassPathResource) into a byte array.
Resolves gh-92.
2020-07-07 11:20:15 -07:00
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
4947705f1d Upgrade to Spring Boot 2.3.1.RELEASE. 2020-06-16 16:17:48 -07:00
John Blum
1439b7caf5 Edit README to refer to 1.2.8.RELEASE and 1.2.9.BUILD-SNAPSHOT in the 1.2.x release line. 2020-06-16 15:02:35 -07:00
John Blum
d84978082b Edit README to refer to 1.1.8.RELEASE and 1.1.9.BUILD-SNAPSHOT in the 1.1.x release line. 2020-06-16 15:01:54 -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
0375955755 Edit README to refer to the 1.3.0.RELEASE and 1.3.1.BUILD-SNAPSHOT bits. 2020-06-11 01:58:25 -07:00
John Blum
8a5db8e467 Prepare next development iteration.
Upgrade to Spring Framework 5.2.7.RELEEASE.

Upgrade to Spring Boot 2.3.1.BUILD-SNAPSHOT.

Upgrade to Spring Data for Apache Geode & Pivotal GemFire 2.3.1.RELEASE.

Upgrade to Spring Data Release Train Neumann-SR1.

Set version to 1.3.1.BUILD-SNAPSHOT.
2020-06-11 01:29:55 -07:00
John Blum
e17f0aba69 Release 1.3.0.RELEASE. 2020-06-11 01:11:13 -07:00
John Blum
cca94c37f3 Edit changelog and add 1.3.0.RELEASE notes. 2020-06-11 01:03:37 -07:00
John Blum
46737c78b2 Upgrade to Gradle 6.5. 2020-06-11 00:37:03 -07:00
John Blum
f7611fd16d Upgrade to Spring Test for Apache Geode & Pivotal GemFire 0.0.16.RELEASE. 2020-06-11 00:36:10 -07:00
John Blum
5994d6b6a3 Upgrade to FreeFair Lombok Gradle Plugin 5.1.0. 2020-06-10 23:48:29 -07:00
John Blum
97c2f4ab9d Upgrade to Testcontainers 1.14.3. 2020-06-10 23:45:45 -07:00
John Blum
308178ade7 Upgrade to Byte Buddy 1.10.11. 2020-06-10 23:34:33 -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
f6e6a957dc Include PdxFieldNotWritableException, RuntimeException class to indicate a PDX field on a PdxInstance is not modifiable. 2020-06-10 20:01:33 -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
0a3c2bb7ab Refactor from(:PdxInstance) factory method to handle PdxInstanceWrapper arguments.
The from(:PdxInstance) method should not wrap a PdxInstance more than once.

Format source code.
2020-06-10 12:21:35 -07:00
John Blum
450cc58d82 Format source code. 2020-06-10 12:21:35 -07:00
John Blum
139d52918c Add factory method to unwrap a PdxInstanceWrapper returning the underlying, delegate PdxInstance. 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
f83880ea97 Reset ClusterAwareCondition. 2020-06-09 15:20:08 -07:00