@@ -419,7 +419,7 @@ public void shouldSetFieldMappingProperties() throws JSONException {
419
419
}
420
420
421
421
@ Test // DATAES-148, #1767
422
- void shouldWriteDynamicMappingSettings () throws JSONException {
422
+ void shouldWriteDynamicMappingFromAnnotation () throws JSONException {
423
423
424
424
String expected = "{\n " + //
425
425
" \" dynamic\" : \" false\" ,\n " + //
@@ -451,7 +451,65 @@ void shouldWriteDynamicMappingSettings() throws JSONException {
451
451
" }\n " + //
452
452
"}" ; //
453
453
454
- String mapping = getMappingBuilder ().buildPropertyMapping (ConfigureDynamicMappingEntity .class );
454
+ String mapping = getMappingBuilder ().buildPropertyMapping (DynamicMappingAnnotationEntity .class );
455
+
456
+ assertEquals (expected , mapping , true );
457
+ }
458
+
459
+ @ Test // #1871
460
+ void shouldWriteDynamicMapping () throws JSONException {
461
+
462
+ String expected = "{\n " //
463
+ + " \" dynamic\" : \" false\" ,\n " //
464
+ + " \" properties\" : {\n " //
465
+ + " \" _class\" : {\n " //
466
+ + " \" type\" : \" keyword\" ,\n " //
467
+ + " \" index\" : false,\n " //
468
+ + " \" doc_values\" : false\n " //
469
+ + " },\n " //
470
+ + " \" objectInherit\" : {\n " //
471
+ + " \" type\" : \" object\" \n " //
472
+ + " },\n " //
473
+ + " \" objectFalse\" : {\n " //
474
+ + " \" dynamic\" : \" false\" ,\n " //
475
+ + " \" type\" : \" object\" \n " //
476
+ + " },\n " //
477
+ + " \" objectTrue\" : {\n " //
478
+ + " \" dynamic\" : \" true\" ,\n " //
479
+ + " \" type\" : \" object\" \n " //
480
+ + " },\n " //
481
+ + " \" objectStrict\" : {\n " //
482
+ + " \" dynamic\" : \" strict\" ,\n " //
483
+ + " \" type\" : \" object\" \n " //
484
+ + " },\n " //
485
+ + " \" objectRuntime\" : {\n " //
486
+ + " \" dynamic\" : \" runtime\" ,\n " //
487
+ + " \" type\" : \" object\" \n " //
488
+ + " },\n " //
489
+ + " \" nestedObjectInherit\" : {\n " //
490
+ + " \" type\" : \" nested\" \n " //
491
+ + " },\n " //
492
+ + " \" nestedObjectFalse\" : {\n " //
493
+ + " \" dynamic\" : \" false\" ,\n " //
494
+ + " \" type\" : \" nested\" \n " //
495
+ + " },\n " //
496
+ + " \" nestedObjectTrue\" : {\n " //
497
+ + " \" dynamic\" : \" true\" ,\n " //
498
+ + " \" type\" : \" nested\" \n " //
499
+ + " },\n " //
500
+ + " \" nestedObjectStrict\" : {\n " //
501
+ + " \" dynamic\" : \" strict\" ,\n " //
502
+ + " \" type\" : \" nested\" \n " //
503
+ + " },\n " //
504
+ + " \" nestedObjectRuntime\" : {\n " //
505
+ + " \" dynamic\" : \" runtime\" ,\n " //
506
+ + " \" type\" : \" nested\" \n " //
507
+ + " }\n " //
508
+ + " }\n " //
509
+ + "}\n " //
510
+ + "" ;
511
+
512
+ String mapping = getMappingBuilder ().buildPropertyMapping (DynamicMappingEntity .class );
455
513
456
514
assertEquals (expected , mapping , true );
457
515
}
@@ -865,7 +923,8 @@ void shouldWriteRuntimeFields() throws JSONException {
865
923
" \" day_of_week\" : {\n " + //
866
924
" \" type\" : \" keyword\" ,\n " + //
867
925
" \" script\" : {\n " + //
868
- " \" source\" : \" emit(doc['@timestamp'].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ROOT))\" \n " + //
926
+ " \" source\" : \" emit(doc['@timestamp'].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ROOT))\" \n "
927
+ + //
869
928
" }\n " + //
870
929
" }\n " + //
871
930
" },\n " + //
@@ -1441,7 +1500,7 @@ static class FieldMappingParameters {
1441
1500
1442
1501
@ Document (indexName = "test-index-configure-dynamic-mapping" )
1443
1502
@ DynamicMapping (DynamicMappingValue .False )
1444
- static class ConfigureDynamicMappingEntity {
1503
+ static class DynamicMappingAnnotationEntity {
1445
1504
1446
1505
@ Nullable @ DynamicMapping (DynamicMappingValue .Strict ) @ Field (type = FieldType .Object ) private Author author ;
1447
1506
@ Nullable @ DynamicMapping (DynamicMappingValue .False ) @ Field (
@@ -1459,6 +1518,32 @@ public void setAuthor(Author author) {
1459
1518
}
1460
1519
}
1461
1520
1521
+ @ Document (indexName = "test-index-configure-dynamic-mapping" , dynamic = Dynamic .FALSE )
1522
+ static class DynamicMappingEntity {
1523
+
1524
+ @ Nullable @ Field (type = FieldType .Object ) //
1525
+ private Map <String , Object > objectInherit ;
1526
+ @ Nullable @ Field (type = FieldType .Object , dynamic = Dynamic .FALSE ) //
1527
+ private Map <String , Object > objectFalse ;
1528
+ @ Nullable @ Field (type = FieldType .Object , dynamic = Dynamic .TRUE ) //
1529
+ private Map <String , Object > objectTrue ;
1530
+ @ Nullable @ Field (type = FieldType .Object , dynamic = Dynamic .STRICT ) //
1531
+ private Map <String , Object > objectStrict ;
1532
+ @ Nullable @ Field (type = FieldType .Object , dynamic = Dynamic .RUNTIME ) //
1533
+ private Map <String , Object > objectRuntime ;
1534
+ @ Nullable @ Field (type = FieldType .Nested ) //
1535
+ private List <Map <String , Object >> nestedObjectInherit ;
1536
+ @ Nullable @ Field (type = FieldType .Nested , dynamic = Dynamic .FALSE ) //
1537
+ private List <Map <String , Object >> nestedObjectFalse ;
1538
+ @ Nullable @ Field (type = FieldType .Nested , dynamic = Dynamic .TRUE ) //
1539
+ private List <Map <String , Object >> nestedObjectTrue ;
1540
+ @ Nullable @ Field (type = FieldType .Nested , dynamic = Dynamic .STRICT ) //
1541
+ private List <Map <String , Object >> nestedObjectStrict ;
1542
+ @ Nullable @ Field (type = FieldType .Nested , dynamic = Dynamic .RUNTIME ) //
1543
+ private List <Map <String , Object >> nestedObjectRuntime ;
1544
+
1545
+ }
1546
+
1462
1547
static class ValueObject {
1463
1548
private final String value ;
1464
1549
0 commit comments