Skip to content

Commit cb291c8

Browse files
committed
Enable JSON data formatting on export.
Resolves gh-89.
1 parent 288b6bb commit cb291c8

File tree

5 files changed

+15
-9
lines changed

5 files changed

+15
-9
lines changed

spring-geode/src/main/java/org/springframework/geode/data/json/JsonCacheDataImporterExporter.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,11 @@ public class JsonCacheDataImporterExporter extends AbstractCacheDataImporterExpo
9696
protected static final String NO_FIELD_NAME = "";
9797
protected static final String RESOURCE_NAME_PATTERN = "data-%s.json";
9898

99-
private JsonToPdxConverter toPdxConverter = newJsonToPdxConverter();
99+
private JsonToPdxConverter jsonToPdxConverter = newJsonToPdxConverter();
100100

101-
private JsonToPdxArrayConverter toPdxArrayConverter = newJsonToPdxArrayConverter();
101+
private JsonToPdxArrayConverter jsonToPdxArrayConverter = newJsonToPdxArrayConverter();
102102

103-
private ObjectToJsonConverter toJsonConverter = newObjectToJsonConverter();
103+
private ObjectToJsonConverter objectToJsonConverter = newObjectToJsonConverter();
104104

105105
// TODO configure via an SPI
106106
private @NonNull JsonToPdxConverter newJsonToPdxConverter() {
@@ -124,7 +124,7 @@ public class JsonCacheDataImporterExporter extends AbstractCacheDataImporterExpo
124124
* @see org.springframework.geode.data.json.converter.JsonToPdxConverter
125125
*/
126126
protected @NonNull JsonToPdxConverter getJsonToPdxConverter() {
127-
return this.toPdxConverter;
127+
return this.jsonToPdxConverter;
128128
}
129129

130130
/**
@@ -134,7 +134,7 @@ public class JsonCacheDataImporterExporter extends AbstractCacheDataImporterExpo
134134
* @see org.springframework.geode.data.json.converter.JsonToPdxArrayConverter
135135
*/
136136
protected @NonNull JsonToPdxArrayConverter getJsonToPdxArrayConverter() {
137-
return this.toPdxArrayConverter;
137+
return this.jsonToPdxArrayConverter;
138138
}
139139

140140
/**
@@ -144,7 +144,7 @@ public class JsonCacheDataImporterExporter extends AbstractCacheDataImporterExpo
144144
* @see org.springframework.geode.data.json.converter.ObjectToJsonConverter
145145
*/
146146
protected @NonNull ObjectToJsonConverter getObjectToJsonConverter() {
147-
return this.toJsonConverter;
147+
return this.objectToJsonConverter;
148148
}
149149

150150
/**

spring-geode/src/main/java/org/springframework/geode/data/json/converter/support/JacksonObjectToJsonConverter.java

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.fasterxml.jackson.core.JsonProcessingException;
2121
import com.fasterxml.jackson.databind.MapperFeature;
2222
import com.fasterxml.jackson.databind.ObjectMapper;
23+
import com.fasterxml.jackson.databind.SerializationFeature;
2324

2425
import org.springframework.core.convert.ConversionFailedException;
2526
import org.springframework.core.convert.TypeDescriptor;
@@ -103,6 +104,7 @@ public class JacksonObjectToJsonConverter implements ObjectToJsonConverter {
103104
.addMixIn(target.getClass(), ObjectTypeMetadataMixin.class)
104105
.configure(JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN, true)
105106
.configure(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY, true)
107+
.configure(SerializationFeature.INDENT_OUTPUT, true)
106108
.findAndRegisterModules();
107109
}
108110

spring-geode/src/test/java/org/springframework/geode/data/json/JsonCacheDataImporterExporterIntegrationTests.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -366,9 +366,9 @@ public void exportFromExampleRegionToJson() {
366366

367367
closeApplicationContext();
368368

369-
String actualJson = writer.toString();
369+
String actualJson = StringUtils.trimAllWhitespace(writer.toString());
370370

371-
String expectedJson = String.format("[{\"@type\":\"%s\",\"id\":42,\"name\":\"Play Doe\"}]",
371+
String expectedJson = String.format("[{\"@type\":\"%s\",\"id\":42,\"name\":\"PlayDoe\"}]",
372372
playDoe.getClass().getName());
373373

374374
assertThat(actualJson).isEqualTo(expectedJson);

spring-geode/src/test/java/org/springframework/geode/data/json/converter/support/JSONFormatterPdxToJsonConverterUnitTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ public void decorateJson() throws JsonProcessingException {
281281
public void decorateJsonForReal() {
282282

283283
String json = "{ \"name\": \"Jon Doe\" }";
284-
String expectedJson = String.format("{\"name\":\"Jon Doe\",\"%s\":\"%s\"}",
284+
String expectedJson = String.format("{\n \"name\" : \"Jon Doe\",\n \"%s\" : \"%s\"\n}",
285285
JSONFormatterPdxToJsonConverter.AT_TYPE_METADATA_PROPERTY_NAME, Customer.class.getName());
286286

287287
PdxInstance mockPdxInstance = mock(PdxInstance.class);

spring-geode/src/test/java/org/springframework/geode/data/json/converter/support/JacksonObjectToJsonConverterUnitTests.java

+4
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import com.fasterxml.jackson.core.JsonProcessingException;
3434
import com.fasterxml.jackson.databind.MapperFeature;
3535
import com.fasterxml.jackson.databind.ObjectMapper;
36+
import com.fasterxml.jackson.databind.SerializationFeature;
3637

3738
import org.junit.Test;
3839

@@ -150,6 +151,7 @@ public void newObjectMapperIsConfiguredCorrectly() {
150151
doReturn(mockObjectMapper).when(mockObjectMapper).addMixIn(any(), any());
151152
doReturn(mockObjectMapper).when(mockObjectMapper).configure(any(JsonGenerator.Feature.class), anyBoolean());
152153
doReturn(mockObjectMapper).when(mockObjectMapper).configure(any(MapperFeature.class), anyBoolean());
154+
doReturn(mockObjectMapper).when(mockObjectMapper).configure(any(SerializationFeature.class), anyBoolean());
153155
doReturn(mockObjectMapper).when(mockObjectMapper).findAndRegisterModules();
154156

155157
ObjectMapper objectMapper = converter.newObjectMapper(target);
@@ -164,6 +166,8 @@ public void newObjectMapperIsConfiguredCorrectly() {
164166
.configure(eq(JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN), eq(true));
165167
verify(mockObjectMapper, times(1))
166168
.configure(eq(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY), eq(true));
169+
verify(mockObjectMapper, times(1))
170+
.configure(eq(SerializationFeature.INDENT_OUTPUT), eq(true));
167171
verify(mockObjectMapper, times(1)).findAndRegisterModules();
168172
verifyNoMoreInteractions(mockObjectMapper);
169173
}

0 commit comments

Comments
 (0)