Commit Graph

227 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
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