-
Notifications
You must be signed in to change notification settings - Fork 3
/
changes.xml
865 lines (790 loc) · 44.2 KB
/
changes.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
<?xml version="1.0" encoding="UTF-8"?>
<!--
#%L
wcm.io
%%
Copyright (C) 2014 wcm.io
%%
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
#L%
-->
<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/changes/1.0.0"
xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/plugins/maven-changes-plugin/xsd/changes-1.0.0.xsd">
<body>
<release version="2.3.0" date="not released">
<action type="add" dev="sseifert" issue="69">
Add new GraniteUI validator 'wcmio.handler.media.mediaFormat' which can be set on Media Handler File Upload or Path Field components to hook the media format validation into the GraniteUI dialog validation.
</action>
<action type="update" dev="sseifert" issue="71">
Dynamic Media with Open API: Use remote metadata call to validate and get metadata for local assets as well.
</action>
<action type="update" dev="sseifert" issue="73">
Dynamic Media with Open API: Optional IMS Authentication for metadata requests to get full asset metadata.
</action>
<action type="fix" dev="sseifert" issue="72">
Dynamic Media with OpenAPI: Respect Image Dimension from SVG asset metadata.
</action>
<action type="fix" dev="sseifert" issue="74">
GraniteUI validator: Use data-foundation-validation instead of data-validation HTML attribute, the latter is deprecated.
</action>
</release>
<release version="2.2.2" date="2024-09-16">
<action type="update" dev="sseifert" issue="67">
Dynamic Media with Open API: Correctly calculate rendition width/height based on requested dimension or original dimension.
</action>
<action type="update" dev="sseifert" issue="66"><![CDATA[
Respect Asset Compute Rendition Metadata provided by AEMaaCS: If rendition dimension is available at <code><rendition>/jcr:content/metadata</code>,
don't generate additional metadata by Media Handler and read it directly from there instead.
]]></action>
</release>
<release version="2.2.0" date="2024-08-26">
<action type="update" dev="cnagel" issue="62">
Web-Optimized Image Delivery: Use relative (percentage) parameters for cropping instead of absolute parameters. This should create more reliable renditions esp. for original images in low resolution.
You can switch back to the old behavior by setting "Crop Option" to ABSOLUTE_PARAMETERS in the "wcm.io Media Handler Web-Optimized Image Delivery Support" OSGi configuration.
</action>
<action type="update" dev="sseifert" issue="61">
Dynamic Media with OpenAPI: Use static cropping (center cropping) if named smart cropping based on Image Profile define in AEM is not available.
</action>
<action type="update" dev="sseifert" issue="61">
Dynamic Media with OpenAPI: Provide max. width/height in UriTemplate if source image dimension is available in metadata.
</action>
<action type="update" dev="sseifert" issue="64"><![CDATA[
Dynamic Media with OpenAPI: Do not enable support for remote assets by default. Since general availability the related configuration services not longer protected by a feature flag, so the feature has to be enabled explicitly via OSGi configuration.<br/>
<b>Breaking change:</b> You can enable support for remote assets by setting "Remote Assets" to true in the "wcm.io Media Handler Dynamic Media with OpenAPI Support" OSGi configuration.
]]></action>
<action type="update" dev="sseifert" issue="65"><![CDATA[
Dynamic Media: Control image quality for lossy output image for each media request by appending "qlt" URL parameter, defaulting to the default image quality configured in the media handler configuration class.<br/>
<b>Breaking change:</b> You can disable this behavior by setting "Set Image Quality" to false in the "wcm.io Media Handler Dynamic Media Support" OSGi configuration. If disabled, the default image quality setting configured in Dynamic Media is used for all images.
]]></action>
<action type="update" dev="sseifert">
Eliminate dependency to Commons Lang 2.
</action>
</release>
<release version="2.1.0" date="2024-07-08">
<action type="add" dev="sseifert" issue="52">
Dynamic Media with OpenAPI: Support Dynamic Media with OpenAPI also for local assets.
</action>
<action type="update" dev="sseifert" issue="56">
Dynamic Media with OpenAPI: Download original binary when resolving media with download flag.
</action>
<action type="update" dev="sseifert" issue="54">
Dynamic Media with OpenAPI: Remove experimental URL parameters from default configuration.
</action>
<action type="update" dev="sseifert" issue="55">
Dynamic Media with OpenAPI: Remove experimental HTTP header for metadata request from default configuration.
</action>
<action type="update" dev="sseifert" issue="58">
Dynamic Media with OpenAPI: Prefer named smart crops over auto-cropped smart renditions.
</action>
<action type="update" dev="sseifert" issue="59">
Dynamic Media with OpenAPI: Enable metadata service by default.
</action>
<action type="update" dev="sseifert" issue="60">
Dynamic Media with OpenAPI: Support setting "Content Disposition Header" to attachment for binary URLs
</action>
<action type="update" dev="sseifert" issue="53">
Improve trace logging: Make log messages involving value maps and resource/page objects more compact and better readable.
</action>
</release>
<release version="2.0.8" date="2024-05-22">
<action type="update" dev="sseifert" issue="51">
Dynamic Media Support: Append fmt=png-alpha for PNG assets to ensure that the alpha channel is preserved in the Dynamic Media rendition.
</action>
</release>
<release version="2.0.6" date="2024-04-25">
<action type="fix" dev="sseifert" issue="50">
MediaFileServlet: Use Content-Security-Policy instead of Content-Disposition header to prevent XSS attacks in SVG files.
Make this behavior configurable via OSGi configuration, as it may prevent special use cases e.g. SVGs animatd via JavaScript.
</action>
</release>
<release version="2.0.4" date="2024-04-17">
<action type="fix" dev="sseifert" issue="49">
Fix failing to resolve media when enforceVirtualRenditions is enabled and auto cropping is used at the same time.
</action>
</release>
<release version="2.0.2" date="2024-03-13">
<action type="update" dev="sseifert" issue="44">
Dynamic Media with OpenAPI: Support non-image assets and SVG assets.
</action>
<action type="update" dev="sseifert" issue="45">
Dynamic Media with OpenAPI: Use latest NextGen Dynamic Media Asset URLs and make them configurable via OSGi config.
</action>
<action type="update" dev="sseifert" issue="47">
Dynamic Media with OpenAPI: Replace fileupload default pick/remote trigger with customized one to display the customized asset selector dialog.
</action>
<action type="update" dev="sseifert" issue="48">
Dynamic Media with OpenAPI: Optionally fetch metadata of NGDM asset reference to check for validity and maximum possible resolution.
</action>
</release>
<release version="2.0.0" date="2024-01-26">
<action type="update" dev="sseifert"><![CDATA[
Version 2.0.0 contains minor breaking API changes, see <a href=https://wcm-io.atlassian.net/wiki/x/AYBxsw">Migrate from wcm.io Handler 1.x to 2.x</a> for details.
]]></action>
<action type="add" dev="sseifert" issue="30"><![CDATA[
Add support for Web-Optimized Image Delivery (part of Dynamic Media with OpenAPI) - rendering asset renditions from AEM Sites instance on the edge.<br/>
<b>This feature is active by default on AEMaaCS cloud instances, can be disabled via OSGi configuration</b>.
]]></action>
<action type="add" dev="sseifert" issue="38">
Add support for Dynamic Media with OpenAPI (also known as Next Generation Dynamic Media) remote assets. This is a first experimental support and will be finalized in release 2.0.2.
</action>
<action type="add" dev="sseifert" issue="33">
Allow to set image quality per media request.
</action>
<action type="remove" dev="sseifert" issue="27">
Remove deprecated functionality.
</action>
<action type="update" dev="sseifert" issue="31"><![CDATA[
<b>Change in default behavior of AEM-generated renditions</b>:<br/>
By default, all AEM-generated renditions (starting with <code>cq5dam.</code>/<code>cqdam.</code> prefix) are no longer considered when resolving media requests, except video renditions (starting with <code>cq5dam.video.</code> prefix).<br/>
In Media Handler 1.x web renditions (starting with <code>cq5dam.web.</code> prefix) and all other renditions except thumbnails (starting with <code>cq5dam.thumbnail.</code> prefix) were processed.<br/>
The <code>MediaHandlerConfig</code> contains a new method <code>getIncludeAssetAemRenditionsByDefault</code> that controls this behavior and allows to switch to the previous setting.
]]></action>
<action type="update" dev="sseifert" issue="34"><![CDATA[
<b>MediaHandlerConfig: Change default image quality for lossy compression image (e.g. JPG) to 85%.</b> In previous versions this was 98%. You can change the default value in the MediaHandlerConfig.
]]></action>
<action type="update" dev="sseifert" issue="3">
MediaFileServlet: Force Content-Disposition=attachment header for SVG files served by MediaFileServlet. Also ensure URLs to SVG images are always handled by MediaFileServlet.
</action>
<action type="update" dev="sseifert">
Explicitly define folder type for JSON files with "nt:unstructured" as root node to circumvent SLING-12197.
</action>
<action type="update" dev="sseifert">
Switch to AEM 6.5.17 as minimum version.
</action>
</release>
<release version="1.16.0" date="2023-12-18">
<action type="add" dev="sseifert" issue="14">
MediaHandlerConfig: Make list of allowed IPE editor types configurable (defaults to "image").
</action>
<action type="update" dev="sseifert" issue="26">
DefaultMediaFormatListProvider, MediaFormatValidateServlet: Eliminate usage of org.apache.sling.commons.json.
</action>
</release>
<release version="1.15.8" date="2023-09-08">
<action type="update" dev="joerghoh" issue="22">
DAM Renditions: Read width/height of rendition lazy, as this can be expensive when not configured properly or Asset metadata is missing for other reasons.
</action>
<action type="update" dev="sseifert" issue="23">
MediaComponentPropertyResolver: Add option to resolve properties directly from a value map.
</action>
</release>
<release version="1.15.6" date="2023-04-19">
<action type="update" dev="sseifert" issue="19">
Eliminate dependency to Guava. Embed Caffeine as replacement for Guava Cache.
</action>
</release>
<release version="1.15.4" date="2023-02-24">
<action type="update" dev="sseifert">
Switch to Java 11 as minimum version.
</action>
<action type="update" dev="sseifert">
Reduce dependency to Guava.
</action>
<action type="fix" dev="sseifert">
Sling-Initial-Content: Register non-standard JCR namespaces for conversion with cp2fm into enhanced DocView files.
</action>
</release>
<release version="1.15.2" date="2022-12-15">
<action type="update" dev="sseifert" issue="18">
MediaHandler: Build HTML element markup on-demand based on the current status of media when the element is requested. This allows to react on results of media post processors, and avoids building the element if not required.
</action>
<action type="fix" dev="amey-tripathi" issue="17">
File Upload Granite UI component: Fix "Clear Transformation" button when namePrefix with sub-node is used.
</action>
</release>
<release version="1.15.0" date="2022-11-17">
<action type="add" dev="sseifert" issue="9">
Add Rendition.getUriTemplate method to build URI templates for getting scaled or auto-cropped renditions of an asset with the restrictions of the rendition e.g. aspect ratio.
</action>
<action type="update" dev="sseifert" issue="16">
File Upload Granite UI Widget: Allow video/mpeg and video/quicktime by default and support updating thumbnails.
</action>
<action type="fix" dev="sseifert" issue="15">
Dynamic Media Support: Fix smart-cropping rendition validation in case unconstrained media formats are used (without exact size, e.g. only minimum width) and the original image ratio excaclty matches the requested ratio.
</action>
</release>
<release version="1.14.18" date="2022-11-09">
<action type="update" dev="sseifert" issue="13">
Dynamic Media Support: Make Smart Crop rendition validation configurable (default: enabled).
</action>
<action type="fix" dev="sseifert" issue="12">
Dynamic Media Support: Apply fail-safe approach when normalized width/height provided by Dynamic Media for smart cropping are not matching the defined aspect ratio.
</action>
</release>
<release version="1.14.16" date="2022-10-22">
<action type="update" dev="sseifert" issue="10">
DAM Media Source: Use cropping dimension based on original rendition internally. Re-calculate webenabled rendition-based cropping coordinates when loading them from repository before starting the media processing, and not only when doing the actual cropping.
</action>
<action type="fix" dev="sseifert" issue="9">
Dynamic Media Support: Fix smart-cropping rendition validation in case unconstrained media formats are used (without exact size, e.g. only minimum width).
</action>
</release>
<release version="1.14.14" date="2022-10-20">
<action type="fix" dev="sseifert">
Dynamic Media Support: Ensure smart-cropped renditions fulfill minimum size requirements.
</action>
</release>
<release version="1.14.12" date="2022-10-10">
<action type="update" dev="sseifert">
Dynamic Media Support: Do not rely on Dynamic Media feature flag to detect DM capability on publish instances. In "AUTO" mode only the availability of DM metadata on a given asset is checked.
</action>
</release>
<release version="1.14.10" date="2022-09-27">
<action type="update" dev="sseifert">
Dynamic Media Support: Introduce OSGi configuration parameter dmCapabilityDetection to switch from auto-detection to enable or disable Dynamic Media capability via configuration.
</action>
</release>
<release version="1.14.8" date="2022-09-20">
<action type="fix" dev="sseifert">
Dynamic Media Support: Make use of smart-cropped image rendition also in the case if the original image has same ratio as the requested ratio.
</action>
</release>
<release version="1.14.6" date="2022-09-02">
<action type="fix" dev="sseifert"><![CDATA[
Dynamic Media Support: Apply Site URL detection with <code><auto></code> when building Dynamic Media URLs in author instance.
]]></action>
</release>
<release version="1.14.4" date="2022-06-16">
<action type="update" dev="sseifert">
Switch to AEM 6.5.7 as minimum version.
</action>
<action type="fix" dev="sseifert">
Ignore non-original renditions for dynamic media assets - they are not supported and should not be considered as candidates when resolving media.
</action>
</release>
<release version="1.14.2" date="2022-04-07">
<action type="fix" dev="cnagel" issue="WHAN-51">
Autocropped DAM renditions should not have fallback flag.
</action>
</release>
<release version="1.14.0" date="2022-03-14">
<action type="add" dev="sseifert">
Enable media handler pre- and post-processor by setting media as invalid via a MediaInvalidReason.CUSTOM accompanied with a custom message.
</action>
<action type="update" dev="sseifert">
Switch to AEM 6.5 as minimum version.
</action>
</release>
<release version="1.13.8" date="2021-11-19">
<action type="update" dev="sseifert">
Improve debug/trace logging on media processing (categories io.wcm.handler.media and io.wcm.handler.mediasource).
</action>
<action type="update" dev="sseifert">
Dynamic Media Support: Even if the option to disable the automatic fallback to AEM-based rendering of renditions is switched on, it should take place if DM is explicitely disabled via MediaArgs.
</action>
</release>
<release version="1.13.6" date="2021-11-08">
<action type="update" dev="sseifert">
FileUpload/PathField GraniteUI component: Pass through "granite:class" and "granite:data" properties to path field widget to allow to apply show/hide logic to both of them.
</action>
<action type="fix" dev="sseifert">
DamAsset: Avoid calling getMetadata() which may try to get metadata from asset binary wherever possible and use getMetadataValueFromJcr instead.
</action>
</release>
<release version="1.13.4" date="2021-10-28">
<action type="update" dev="sseifert">
Eliminate usage of deprecated SlingSettingsService. Use wcm.io InstanceTypeService instead.
</action>
</release>
<release version="1.13.2" date="2021-08-31">
<action type="update" dev="sseifert">
FileUpload/PathField GraniteUI component: Support namePrefix property to allow all properties to be stored in different resource.
</action>
<action type="update" dev="sseifert">
ImageMapParser: Support returning actual link object form link handler for ImageMap results.
</action>
<action type="update" dev="sseifert">
Dynamic Media Support: Add configuration option to disable the automatic fallback to AEM-based rendering of renditions (via Media Handler) if Dynamic Media is enabled, but the asset has not the appropriate Dynamic Media metadata.
</action>
</release>
<release version="1.13.0" date="2021-06-27">
<action type="add" dev="sseifert">
MediaHandlerConfig: Introduce enforceVirtualRenditions flag to enforce that all renditions are served as virtual renditions.
</action>
<action type="add" dev="sseifert">
MediaBuilder/MediaArgs: Introduce enforceOutputFileExtension to enforce generating the renditions in a given output file format (PNG or JPEG), regardless of the format of the original image.
</action>
<action type="add" dev="sseifert">
Add support for properties "isDecorative"/"mediaIsDecorative" - if set to true, alt. text of image is explicitly set to empty string.
</action>
<action type="add" dev="sseifert">
Add support for properties "altValueFromDAM"/"mediaForceAltValueFromAsset". If set to true, it is forced to use the alt. text from asset description (otherwise it's the fallback behavior).
</action>
<action type="update" dev="sseifert"><![CDATA[
<strong>Change default behavior of alt text lookup from DAM</strong>: Use asset description if available, fallback to asset title if no description is set.
]]></action>
</release>
<release version="1.12.6" date="2021-06-15">
<action type="fix" dev="sseifert" issue="WHAN-48">
FileUpload GraniteUI component: Proplery support "required" state also for embedded pathfield component.
</action>
</release>
<release version="1.12.4" date="2021-05-19">
<action type="fix" dev="sseifert">
Dynamic media: Fix resolving of image profiles if asset folders do not have jcr:content child nodes (e.g. because folder itself is not published).
</action>
</release>
<release version="1.12.2" date="2021-05-05">
<action type="update" dev="bkalbitz">
Register authoring clientlib also to category 'cq.siteadmin.admin.properties' so it's also loaded in page properties dialog.
</action>
<action type="update" dev="sseifert">
In case of manual cropping and request for multiple non-mandatory media formats, prefer renditions based on the media format selected for manual cropping over "fallback" renditions based on the other media formats.
</action>
<action type="fix" dev="sseifert" issue="WHAN-46">
DefaultRenditionHandler: Media requests with responsive image handling but with a media format without ratio or width/height restrictions should be detected as "size-matching request".
</action>
<action type="fix" dev="sseifert" issue="WHAN-45">
DefaultRenditionHandler: break after detecting any matching file extension.
</action>
</release>
<release version="1.12.0" date="2021-04-23">
<action type="add" dev="sseifert">
Add new media format property "minWidthHeight" which accepts image with either width or height (whatever is the longest edge) matching the configured min. value.
</action>
<action type="update" dev="sseifert">
Dynamic media: Use smart cropping profiles for all renditions with the same ratio, not only when the exact resolution matches.
</action>
<action type="fix" dev="sseifert">
Dynamic media: Use "%20" instead of "+" for encoding spaces in dynamic media URLs.
</action>
</release>
<release version="1.11.6" date="2021-04-19">
<action type="update" dev="sseifert">
Dynamic media: Use production dynamic media host name when author preview mode is active, but an URL mode forces to generate a publish URL.
</action>
<action type="update" dev="sseifert">
Dynamic media: Add .download_attachment suffix to static content URLs to be serviced with Content-Disposition: attachment header (via custom ruleset).
</action>
</release>
<release version="1.11.4" date="2021-04-15">
<action type="update" dev="sseifert">
Dynamic media: Add OSGi configuration to enable/disable dynamic media support, activate author preview mode and allow to configure image size limits.
</action>
<action type="update" dev="sseifert">
Dynamic media: Serve non-image or SVG/GIF images as static content via dynamic media (except if a content-disposition header is expected).
</action>
<action type="update" dev="fix">
Dynamic media: URL-encode dynamic media file names.
</action>
</release>
<release version="1.11.2" date="2021-03-25">
<action type="update" dev="sseifert" issue="WTOOL-72">
Add sling-initial-content-transform-maven-plugin to alternatively allow to deploy OSGi bundle and content as content package separately in AEMaaCS.
</action>
</release>
<release version="1.11.0" date="2021-03-17">
<action type="add" dev="sseifert">
Add Media.getUriTemplate method to build URI templates for getting scaled or auto-cropped renditions of an asset.
</action>
<action type="fix" dev="sseifert">
Ensure that calculating crop dimension for very big images does not lead to over-sized width/height values due to rounding errors.
</action>
</release>
<release version="1.10.0" date="2021-01-17">
<action type="add" dev="sseifert"><![CDATA[
Add support for dynamic media, see <a href="https://wcm.io/handler/media/dynamic-media.html">Dynamic Media documentation</a>.
]]></action>
<action type="add" dev="sseifert">
Add "wcm.io Media Handler Inline Image Author Preview Servlet" OSGi factory configuration to support preview images in edit dialogs on author instances for components with inline media.
</action>
<action type="update" dev="sseifert">
Switch to AEM 6.4 as minimum version.
</action>
<action type="update" dev="sseifert">
Switch to individual OSGi artifacts with compile dependency instead of osgi.core and osgi.cmpn with provided dependency.
</action>
<action type="update" dev="sseifert">
Rendition metadata: Add subservice identifier 'dam-rendition-metadata' to allow explicit service user mapping.
</action>
<action type="fix" dev="sseifert" issue="WHAN-42">
File Upload Coral UI component: Show configured DAM root folder when clicking on "Pick" action link.
</action>
<action type="fix" dev="sseifert">
File Upload Coral UI component: Fix styling of "Clear Transformation" button in AEM Cloud authoring environment.
</action>
</release>
<release version="1.9.6" date="2020-11-06">
<action type="fix" dev="mrozati">
Media Handler: When optional media formats don't match any rendition, try to resolve their responsive child formats.
</action>
<action type="fix" dev="mrozati">
SimpleImageMediaMarkupBuilder: fix NPE.
</action>
</release>
<release version="1.9.4" date="2020-08-26">
<action type="update">
When resolving media renditions with cropping parameters set, match the given media formats against the cropped renditions and uncropped renditions as well (it was the same behavior in earlier implementations). Thus it's more likely to get a fitting, valid result.
</action>
</release>
<release version="1.9.2" date="2020-06-28">
<action type="update">
Add Jackson annotations to Media class and related interfaces to allow a convenient serialization with Sling Models Exporter.
</action>
</release>
<release version="1.9.0" date="2020-03-20">
<action type="add" dev="mceruti">
MediaHandler: Adds MediaHandler.get(String, Resource) that allows building a media from it's path while still looking up policy/component level settings from the given context resource, like it is done when building a media using MediaHandler.get(Resource). Requires the ComponentPropertyResolverFactory to work and be <![CDATA[<a href="https://wcm.io/wcm/commons/configuration.html">configured</a>]]> properly.
</action>
<action type="add" dev="mrozati" issue="WHAN-33"><![CDATA[
ResourceMedia: Add support for setting responsive image sizes via HTL. This can be either <code>imageSizes</code> and <code>widthOptions</code> (width + required flag), or <code>pictureSourceMediaFormat</code>, <code>pictureSourceMedia</code> and <code>pictureSourceWidths</code>.
]]></action>
<action type="add" dev="mrozati" issue="WHAN-36">
ResourceMedia: Support setting custom MediaArgs properties via HTL.
</action>
<action type="add" dev="mrozati" issue="WHAN-37">
ResourceMedia: Support settting autoCrop mode via HTL.
</action>
<action type="update" dev="mrozati" issue="WHAN-34">
Support responsive images with multiple media formats and image widths.
</action>
<action type="fix" dev="bkalbitz" issue="WHAN-35">
Avoid duplicated storing for fileReference in File Upload component.
</action>
<action type="fix" dev="mceruti">
mediaPlaceholder.html: Translate the component's jcr:title so the component's translated title is displayed.
</action>
</release>
<release version="1.8.2" date="2020-01-30">
<action type="update" dev="sseifert">
Detect media dimensions for original renditions for non-image binaries (from asset metadata).
</action>
<action type="update" dev="sseifert">
Make use of ComponentPropertyResolverFactory to ensure component properties can be read properly on publish instances.
</action>
<action type="update" dev="sseifert" issue="WHAN-32">
DamVideoMediaMarkupBuilder: Use new default video profile names format_aac and format_ogg to support AEM 6.4+.
</action>
<action type="remove" dev="sseifert">
DamVideoMediaMarkupBuilder: Do not generate flash player as fallback.
</action>
</release>
<release version="1.8.0" date="2020-01-09">
<action type="update" dev="sseifert">
Switch to AEM 6.3 as minimum version.
</action>
<action type="fix" dev="sseifert">
AssetRendition: Use getMetadataValueFromJcr instead of getMetadataValue.
</action>
<action type="fix" dev="sseifert">
Rendition metadata: Fix generation of rendition metadata for SVG assets in AEM 6.4 and below.
</action>
<action type="fix" dev="mrozati">
MediaNameConstants: Fix typo in wcmio:mediaRepsonsive* node names (still support old node names for backward compatibility).
</action>
</release>
<release version="1.7.2" date="2019-09-10">
<action type="update" dev="sseifert" issue="WHAN-25">
Granite UI components for file upload and path field: Support "appendPath" parameter.
</action>
<action type="update" dev="sseifert" issue="WHAN-27">
Add i18n translations for Granite UI dialog snippets.
</action>
</release>
<release version="1.7.0" date="2019-08-23">
<action type="add">See <![CDATA[<a href="https://wcm-io.atlassian.net/wiki/x/AYCKS">What's new in Media Handler 1.7.0 and Link Handler 1.3.0</a>]]> for an overview of the new features.</action>
<action type="add" dev="sseifert">
Support TIFF images in media handler (with conversion to JPEG for displaying in browser).
</action>
<action type="add" dev="sseifert">
Support SVG vector images in media handler (without transformation support).
</action>
<action type="add" dev="sseifert">
Add Granite UI components: Media Formats Select field and Media Formats data source.
</action>
<action type="add" dev="sseifert">
Granite UI fileupload component: Add "Clear transformation" link to clear transformations without clearing the selected image.
</action>
<action type="add" dev="sseifert">
Add MediaHandler.invalid() method.
</action>
<action type="add" dev="sseifert">
Add support for image maps produced by AEM image editor.
</action>
<action type="add" dev="sseifert">
Add Granite UI dialog snippets for media format selection and responsive image settings.
</action>
<action type="add" dev="sseifert">
Support resolving media handler-related component properties from content policies and component properties.
This includes media formats, auto cropping and responsive image settings.
</action>
<action type="update" dev="sseifert" issue="WHAN-24">
Allow to specify "sizes" attribute for picture sources.
</action>
<action type="update" dev="sseifert">
PathField and FileUpload Granite UI components: Support expression language for properties 'mediaFormats', 'mediaFormatsMandatory', 'mediaCropAuto', 'allowUpload'.
</action>
<action type="update" dev="sseifert">
Inline Media Resource: Support rotation and auto-cropping.
</action>
<action type="update" dev="sseifert">
Media placeholder: Support additional classAppend parameter.
</action>
<action type="update" dev="sseifert">
Auto-generated IPE cropping ratios: Provide ratios from all image media formats if no media format defined for a media request.
</action>
<action type="update" dev="sseifert">
Rendition metadata: Also create rendition metadata for SVG original rendition, as AEM itself is not storing width/height in the asset metadata for SVG.
</action>
<action type="fix" dev="sseifert">
Media handler download media format validation: Accept any files as download when no download media format is defined in the project and no media format is given for resolution.
</action>
<action type="fix" dev="sseifert">
Media format validation from GraniteUI components: Fix encoding problem when asset paths contains special chars.
</action>
</release>
<release version="1.6.0" date="2019-07-22">
<action type="add" dev="sseifert"><![CDATA[
Add workflow process implementation to generate rendition metadata. See <a href="https://wcm-io.atlassian.net/wiki/x/AQDrRw">How-to article</a>.
]]></action>
<action type="update" dev="sseifert">
Rendition metadata generation: Store timestamp for rendition metadata, and re-generate it only if rendition was updated more recently.
</action>
<action type="update" dev="sseifert">
Rendition metadata generation: Do not remove metadata for existing renditions (e.g. if listener events are processed with delays).
</action>
<action type="update" dev="sseifert">
Rendition metadata generation: Synchronize writing asset metadata per asset path to avoid threading conflicts.
</action>
</release>
<release version="1.5.2" date="2019-06-06">
<action type="update" dev="sseifert" issue="WHAN-23">
MediaBuilder: Allow media formats without ratios for picture sources.
</action>
</release>
<release version="1.5.0" date="2019-05-20">
<action type="add" dev="sseifert">
Allow to define a mix of mandatory and non-mandatory media formats.
</action>
<action type="add" dev="sseifert">
Allow to define mandatory and non-mandatory widths for responsive image handling with image sizes or picture source sets.
</action>
<action type="update" dev="sseifert">
Allow media formats without ratio for auto-generated IPE cropping ratios (free-hand cropping).
</action>
<action type="update" dev="sseifert">
Allow responsive image handling based in "imageSizes" also for media formats without ratio.
</action>
<action type="update" dev="sseifert">
Prefer original renditions above other renditions when creating virtual renditions on-the-fly.
</action>
<action type="update" dev="sseifert">
Allow to set default DAM root path for Granite UI components in Media Handler configuration.
</action>
<action type="fix" dev="sseifert">
Fix potential NPE in GraniteUI components when current content resource cannot be detected.
</action>
</release>
<release version="1.4.0" date="2019-04-05">
<action type="add" dev="sseifert">
Add switch in media handler config and media args to include or exclude AEM-generated web renditions in media handling (default: included).
</action>
<action type="add" dev="sseifert">
Create AssetRendition class to get dimensions and other information for asset renditions.
</action>
<action type="fix" dev="sseifert">
Granite UI components: Allow to remove auto-generated field description by setting it to an empty string.
</action>
</release>
<release version="1.3.0" date="2019-03-15">
<action type="add" dev="sseifert">
Add responsive image handling support using image sizes and picture sources to media handler and SimpleImageMediaMarkupBuilder.
</action>
<action type="update" dev="sseifert">
Deprecate non-HTML standard way of responsive image handling using ResponsiveMediaFormatsBuilder and ResponsiveImageMediaMarkupBuilder.
</action>
<action type="update" dev="sseifert">
Use wcm.io WCM Granite UI Extension path fields.
</action>
<action type="fix" dev="sseifert">
Do not apply auto-cropping when manual cropping parameters are present, that lead to a mismatch with the requested media format.
</action>
</release>
<release version="1.2.0" date="2019-02-22">
<action type="add">See <![CDATA[<a href="https://wcm-io.atlassian.net/wiki/x/AYCHOQ">What's new in wcm.io Media Handler 1.2</a>]]> for an overview of this release.</action>
<action type="add" dev="sseifert">
Add support for (optional) auto-cropping of DAM assets when no matching rendition exists.
</action>
<action type="add" dev="sseifert">
Automatic customization of image in-place edititing crop ratios to ratios from configured media formats.
</action>
<action type="add" dev="sseifert">
Add Media Handler-aware File Upload and Path Field Granite UI widgets.
</action>
<action type="add" dev="sseifert">
Add Media Handler-aware placeholder HTL template.
</action>
<action type="add" dev="sseifert">
Add support for component properties for media formats and auto cropping.
</action>
<action type="update" dev="sseifert">
MediaHandler: Fallback to first media source defined if no matching media source is found.
</action>
<action type="update" dev="sseifert">
MediaFormat: Allow to specify ratio with/height as double, and try to guess nice humban-readable ratio display string.
</action>
<action type="update" dev="sseifert">
Switch to AEM 6.2 as minimum version.
</action>
<action type="fix" dev="sseifert">
Avoid NPE when cropping an asset without a web rendition.
</action>
</release>
<release version="1.1.0" date="2019-01-29">
<action type="add" dev="sseifert">
Add support for image rotation.
</action>
<action type="add" dev="sseifert">
Allow to configure "Adobe standard" property/node names for media reference, cropping, rotation, alt. text and inline media node name via MediaHandlerConfig.
</action>
<action type="add" dev="sseifert">
ResourceMedia: Add optional parameters for refProperty, cropProperty and rotationProperty.
</action>
<action type="add" dev="sseifert">
Add Rendition.getRatio() method.
</action>
<action type="update" dev="sseifert">
Use original rendition for generating the cropped images instead of the web rendition.
</action>
<action type="update" dev="sseifert">
Deprecate flash rendition support.
</action>
<action type="fix" dev="sseifert">
DamMediaSource: If a "media" drop target already exists make use of it instead off adding a new one which breaks in-place edit mode.
</action>
<action type="fix" dev="sseifert">
ResourceMedia: Add css class using MediaBuilder instead of adding it directly to the DOM element.
</action>
</release>
<release version="1.0.10" date="2018-08-27">
<action type="update" dev="sseifert">
Add Jetbrains NotNull/Nullable annotations to API.
</action>
</release>
<release version="1.0.8" date="2018-03-14">
<action type="update" dev="amuthmann">
Add AssetRenditionContentDispositionFilter to apply 'Dam Safe Binary' content disposition filter logic also to asset rendition's paths.
</action>
<action type="fix" dev="sseifert">
Use deep URL to reference 'original' rendition instead of asset URL (revert change from release 1.0.6).
</action>
</release>
<release version="1.0.6" date="2018-02-22">
<action type="fix" dev="sseifert">
Use asset URL instead of reference to rendition for 'original' rendition.
</action>
</release>
<release version="1.0.4" date="2017-09-12">
<action type="update" dev="mrozati" issue="WHAN-21">
MediaBuilder: can set MediaArgs "includeThumbnailAssets", "dragDropSupport" and "property".
</action>
</release>
<release version="1.0.2" date="2017-08-29">
<action type="fix" dev="sseifert" issue="WHAN-20">
DefaultRenditionHandler: Fix issue with width/height calculation.
</action>
</release>
<release version="1.0.0" date="2017-04-04">
<action type="update" dev="sseifert">
Switch to AEM 6.1 and Java 8 as minimum versions.
</action>
<action type="update" dev="sseifert">
Switched SPI to OSGi services based on wcm.io Sling Commons Context-Aware Services MediaHandlerConfig, MediaFormatProvider.
Use SPI abstract class instead of interface + abstract helper implementation for MediaHandlerConfig, MediaFormatProvider, MediaSource.
</action>
<action type="update" dev="sseifert">
MediaHandlerConfig: Remove method "getDownloadMediaFormats()" - downloadable media formats are now detected by setting the "donload" flag on the media format definitions.
</action>
<action type="update" dev="sseifert">
MediaFormat: Remove application id, add new flag "download" to mark media formats as download formats which can be linked upon.
</action>
<action type="update" dev="sseifert">
MediaArgs/MediaBuilder: Rename "forceDownload" to "contentDispositionAttachment", add new "download" option.
</action>
</release>
<release version="0.10.4" date="2017-03-23">
<action type="update" dev="sseifert">
Make dependencies to wcm.io Config provided.
</action>
</release>
<release version="0.10.2" date="2016-04-29">
<action type="update" dev="sseifert">
Relax package version dependency for com.day.cq.commons to support AEM60, AEM61 and AEM62.
</action>
</release>
<release version="0.10.0" date="2016-02-16">
<action type="add" dev="sseifert">
Add ResourceMedia sling model for UI views.
</action>
<action type="fix" dev="bdang" issue="WHAN-14">
Make the extensions array of an existing MediaFormat unmodifiable.
</action>
<action type="update" dev="sseifert">
Set AEM API and OSGi dependencies to provided scope.
</action>
<action type="fix" dev="sseifert">
MediaArgs: interpret empty array for varargs parameter as null array.
</action>
<action type="update" dev="sseifert">
MediaHandler: Introduce new INVALID_MEDIA_FORMAT media invalid reason which is returned when invalid media format names are given.
</action>
</release>
<release version="0.9.0" date="2015-09-09">
<action type="add" dev="sseifert" issue="WHAN-13">
Optional included AEM-generated asset thumbnails for media handling.
</action>
</release>
<release version="0.8.0" date="2015-08-21">
<action type="add" dev="sseifert">
Add getMimeType() method to rendition interface.
</action>
</release>
<release version="0.7.2" date="2015-04-23">
<action type="fix" dev="sseifert">
Allow MediaHandler to be used outside a Page context (e.g. adapting from a DAM asset resource).
</action>
<action type="fix" dev="sseifert">
Do not return rendition file size for virtual renditions (it's wrong to return the DAM rendition size, and too costly to calculate the real size).
</action>
</release>
<release version="0.7.0" date="2015-04-17">
<action type="add" dev="sseifert" issue="WCMIO-68">
Add Responsive Image Media Markup Builder.
</action>
</release>
<release version="0.6.2" date="2015-01-30">
<action type="fix" dev="sseifert" issue="WCMIO-40">
Avoid NPE if original rendition is not present.
</action>
<action type="update" dev="isechyn" issue="WCMIO-44">
CropRenditionHandler should consider the biggest web enabled rendition
</action>
</release>
<release version="0.6.0" date="2015-01-12">
<action type="update" dev="sseifert" issue="WCMIO-39">
Drop Target Area definition in DamMediaSource should provide more control for activation and deactivation on the component level.
</action>
<action type="update" dev="isechyn" issue="WCMIO-40">
CropRenditionHandler should prefer the virtual crop rendition but still consider other renditions for media resolving.
</action>
</release>
<release version="0.5.0" date="2014-11-05">
<action type="add" dev="sseifert">
Initial release.
</action>
</release>
<release version="0.1.0" date="2014-10-02">
<action type="add" dev="sseifert">
Preliminary release.
</action>
</release>
</body>
</document>