-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.html
2298 lines (1724 loc) · 98.8 KB
/
index.html
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
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia at 2018-04-23
| Rendered using Apache Maven Fluido Skin 1.3.1
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="Date-Revision-yyyymmdd" content="20180423" />
<meta http-equiv="Content-Language" content="en" />
<title>Jawr -
More than a Javascript/CSS compressor</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.3.1.min.css" />
<link rel="stylesheet" href="./css/site.css" />
<link rel="stylesheet" href="./css/print.css" media="print" />
<script type="text/javascript" src="./js/apache-maven-fluido-1.3.1.min.js"></script>
<link rel="stylesheet" href="./css/specific.css" /> </head>
<body class="topBarDisabled">
<a href="http://github.com/j-a-w-r/jawr-main-repo">
<img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
src="https://s3.amazonaws.com/github/ribbons/forkme_right_orange_ff7600.png"
alt="Fork me on GitHub">
</a>
<div class="container-fluid">
<div id="banner">
<div class="pull-left">
<div id="bannerLeft">
<h2></h2>
</div>
</div>
<div class="pull-right"> </div>
<div class="clear"><hr/></div>
</div>
<div id="breadcrumbs">
<ul class="breadcrumb">
<li id="publishDate">Last Published: 2018-04-23
<span class="divider">|</span>
</li>
<li id="projectVersion">Version: 3.9
</li>
</ul>
</div>
<div class="row-fluid">
<div id="leftColumn" class="span3">
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">About</li>
<li class="active">
<a href="#"><i class="none"></i>Home</a>
</li>
<li>
<a href="introduction.html" title="Introduction">
<i class="none"></i>
Introduction</a>
</li>
<li>
<a href="features.html" title="Features">
<i class="none"></i>
Features</a>
</li>
<li>
<a href="changes.html" title="Change history">
<i class="none"></i>
Change history</a>
</li>
<li>
<a href="team.html" title="The team">
<i class="none"></i>
The team</a>
</li>
<li class="nav-header">Documentation</li>
<li>
<a href="docs/servlet.html" title="The Jawr servlet">
<i class="none"></i>
The Jawr servlet</a>
</li>
<li>
<a href="docs/descriptor_syntax.html" title="Descriptor syntax">
<i class="none"></i>
Descriptor syntax</a>
</li>
<li>
<a href="docs/custom_bundles.html" title="Bundle definition">
<i class="none"></i>
Bundle definition</a>
</li>
<li>
<a href="docs/source_ordering.html" title="Source order in bundles">
<i class="none"></i>
Source order in bundles</a>
</li>
<li>
<a href="docs/cacheManager.html" title="Cache manager">
<i class="none"></i>
Cache manager</a>
</li>
<li>
<a href="docs/global_preprocessors.html" title="Global preprocessors">
<i class="none"></i>
Global preprocessors</a>
</li>
<li>
<a href="docs/global_postprocessors.html" title="Global postprocessors">
<i class="none"></i>
Global postprocessors</a>
</li>
<li>
<a href="docs/postprocessors.html" title="Postprocessors">
<i class="none"></i>
Postprocessors</a>
</li>
<li>
<a href="docs/generators.html" title="Generators">
<i class="none"></i>
Generators</a>
</li>
<li>
<a href="docs/advanced_generators.html" title="Advanced generators">
<i class="none"></i>
Advanced generators</a>
</li>
<li>
<a href="docs/license_files.html" title="Licenses in resources">
<i class="none"></i>
Licenses in resources</a>
</li>
<li>
<a href="docs/taglibs.html" title="JSP Tag library">
<i class="none"></i>
JSP Tag library</a>
</li>
<li>
<a href="docs/plain_html.html" title="Use in HTML pages">
<i class="none"></i>
Use in HTML pages</a>
</li>
<li>
<a href="docs/modes.html" title="Debug and production modes">
<i class="none"></i>
Debug and production modes</a>
</li>
<li>
<a href="docs/messages_gen.html" title="i18n message generator">
<i class="none"></i>
i18n message generator</a>
</li>
<li>
<a href="docs/variant_bundle.html" title="Variant bundles">
<i class="none"></i>
Variant bundles</a>
</li>
<li>
<a href="docs/illegalBundleRequestHandler.html" title="Jawr strict mode - Illegal bundle request handler">
<i class="none"></i>
Jawr strict mode - Illegal bundle request handler</a>
</li>
<li>
<a href="docs/jmx_support.html" title="JMX Support">
<i class="none"></i>
JMX Support</a>
</li>
<li>
<a href="docs/bundle_preprocessing.html" title="Bundle preprocessing">
<i class="none"></i>
Bundle preprocessing</a>
</li>
<li>
<a href="docs/jawr_maven_plugin.html" title="Jawr Maven plugin">
<i class="none"></i>
Jawr Maven plugin</a>
</li>
<li>
<a href="docs/jawr_ant_task.html" title="Jawr Ant task">
<i class="none"></i>
Jawr Ant task</a>
</li>
<li>
<a href="migrationGuide.html" title="Migration Guide">
<i class="none"></i>
Migration Guide</a>
</li>
<li>
<a href="migrationGitRepo.html" title="Github repository Migration Guide">
<i class="none"></i>
Github repository Migration Guide</a>
</li>
<li class="nav-header">Integration</li>
<li>
<a href="integration/augmenter.html" title="Add Jawr to your framework">
<i class="none"></i>
Add Jawr to your framework</a>
</li>
<li>
<a href="integration/spring.html" title="Spring MVC">
<i class="none"></i>
Spring MVC</a>
</li>
<li>
<a href="integration/facelets.html" title="Facelets Tag library">
<i class="none"></i>
Facelets Tag library</a>
</li>
<li>
<a href="integration/wicket.html" title="Wicket">
<i class="none"></i>
Wicket</a>
</li>
<li>
<a href="integration/grails.html" title="Grails plugin">
<i class="none"></i>
Grails plugin</a>
</li>
<li>
<a href="integration/dwr.html" title="DWR">
<i class="none"></i>
DWR</a>
</li>
<li>
<a href="integration/validator.html" title="Commons Validator - Struts">
<i class="none"></i>
Commons Validator - Struts</a>
</li>
<li class="nav-header">Tutorials</li>
<li>
<a href="tutorials/quickstart.html" title="Quick start">
<i class="none"></i>
Quick start</a>
</li>
<li>
<a href="tutorials/howToUseJawrSmartbundling.html" title="How to use Jawr smart bundling feature">
<i class="none"></i>
How to use Jawr smart bundling feature</a>
</li>
<li>
<a href="tutorials/howToUseJawrToServeImage.html" title="How to use Jawr to serve image resources">
<i class="none"></i>
How to use Jawr to serve image resources</a>
</li>
<li>
<a href="tutorials/howToUseJawrCssSkin.html" title="How to use Jawr to generate CSS skin">
<i class="none"></i>
How to use Jawr to generate CSS skin</a>
</li>
<li>
<a href="tutorials/jawrSpriteImage.html" title="How to generate Image sprites with Jawr">
<i class="none"></i>
How to generate Image sprites with Jawr</a>
</li>
<li>
<a href="tutorials/howToUseJawrToGenerateBase64Image.html" title="How to generate base64 images in CSS with Jawr">
<i class="none"></i>
How to generate base64 images in CSS with Jawr</a>
</li>
<li>
<a href="tutorials/howToUseGoogleClosureCompiler.html" title="How to use Google Closure Compiler with Jawr">
<i class="none"></i>
How to use Google Closure Compiler with Jawr</a>
</li>
<li>
<a href="tutorials/howToSetJsEngine.html" title="How to set Javascript engine in Jawr">
<i class="none"></i>
How to set Javascript engine in Jawr</a>
</li>
<li>
<a href="tutorials/howToEnablePerformanceLogging.html" title="How to set performance logging in Jawr">
<i class="none"></i>
How to set performance logging in Jawr</a>
</li>
<li>
<a href="tutorials/faq_howto.html" title="FAQ-Howto">
<i class="none"></i>
FAQ-Howto</a>
</li>
<li>
<a href="tutorials/libraries.html" title="Using popular libraries">
<i class="none"></i>
Using popular libraries</a>
</li>
<li>
<a href="docs/sampleApplications.html" title="Sample applications">
<i class="none"></i>
Sample applications</a>
</li>
<li class="nav-header">API and sources</li>
<li>
<a href="nonav/apidocs/index.html" title="JavaDocs">
<i class="none"></i>
JavaDocs</a>
</li>
<li>
<a href="nonav/xref/index.html" title="Source XREF">
<i class="none"></i>
Source XREF</a>
</li>
<li class="nav-header">Github repositories</li>
<li>
<a href="https://github.com/j-a-w-r/jawr-main-repo" class="externalLink" title="Jawr main repository">
<i class="none"></i>
Jawr main repository</a>
</li>
<li>
<a href="https://github.com/j-a-w-r/jawr-core" class="externalLink" title="Jawr core repository">
<i class="none"></i>
Jawr core repository</a>
</li>
<li>
<a href="https://github.com/j-a-w-r/jawr-spring" class="externalLink" title="Jawr spring repository">
<i class="none"></i>
Jawr spring repository</a>
</li>
<li>
<a href="https://github.com/j-a-w-r/jawr-wicket" class="externalLink" title="Jawr wicket repository">
<i class="none"></i>
Jawr wicket repository</a>
</li>
<li>
<a href="https://github.com/j-a-w-r/jawr-grails" class="externalLink" title="Jawr grails repository">
<i class="none"></i>
Jawr grails repository</a>
</li>
<li>
<a href="https://github.com/j-a-w-r/jawr-dwr2.x" class="externalLink" title="Jawr dwr2.x repository">
<i class="none"></i>
Jawr dwr2.x repository</a>
</li>
<li>
<a href="https://github.com/j-a-w-r/jawr-dwr3.x" class="externalLink" title="Jawr dwr3.x repository">
<i class="none"></i>
Jawr dwr3.x repository</a>
</li>
<li>
<a href="https://github.com/j-a-w-r/jawr-tools" class="externalLink" title="Jawr tools repository">
<i class="none"></i>
Jawr tools repository</a>
</li>
</ul>
<hr />
<div id="poweredBy">
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
<img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
</a>
</div>
</div>
</div>
<div id="bodyColumn" class="span9" >
<div class="section">
<h2>jawr<a name="jawr"></a></h2>
<img src="./images/index/logo.png" style="border:0 !important" id="mainJawrLogo" alt="Logo" />
<div id="jawrlinks">
<b>Latest version : 3.8</b><br />
<a class="externalLink" href="https://java.net/projects/jawr/downloads/directory/release">
<img src="./images/index/download.png" style="border:0 !important" title="Download the latest version of Jawr" alt="Download" /></a>
<a class="externalLink" href="https://jawr.java.net/tutorials/quickstart.html">
<img src="./images/index/get-started.png" style="border:0 !important" title="Go to the quickstart tutorial and start using Jawr" alt="Get started" /></a>
</div>
<div id="badges">
<!-- FURL -->
<a class="externalLink" href="http://www.furl.net/storeIt.jsp?t=JAWR%20-%20More%20than%20a%20javascript/css%20compressor&u=https://jawr.java.net" target="_blank"><img src="./images/badges/furl.png" border="0" alt="add to furl" /></a>
<!-- DEL.ICIO.US -->
<a class="externalLink" href="http://del.icio.us/post?v=4&noui&jump=close&url=https://jawr.java.net&title=JAWR%20-%20More%20than%20a%20javascript/css%20compressor" target="_blank"><img src="./images/badges/delicious.png" border="0" alt="add to del.icio.us" /></a>
<!-- TECHNORATI -->
<a class="externalLink" href="http://technorati.com/faves?add=https://jawr.java.net" target="_blank"><img src="./images/badges/technorati.png" border="0" alt="add to technorati" /></a>
<!-- BLINKLIST -->
<a class="externalLink" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&Url=https://jawr.java.net&Title=JAWR%20-%20More%20than%20a%20javascript/css%20compressor" target="_blank"><img src="./images/badges/blinklist.png" border="0" alt="add to blinklist" /></a>
<!-- DIGG -->
<a class="externalLink" href="http://digg.com/submit?phase=2&url=https://jawr.java.net&title=JAWR%20-%20More%20than%20a%20javascript/css%20compressor" target="_blank"><img src="./images/badges/digg.png" border="0" alt="add to digg" /></a>
<!-- GOOGLE -->
<a class="externalLink" href="http://www.google.com/bookmarks/mark?op=edit&output=popup&bkmk=https://jawr.java.net&title=JAWR%20-%20More%20than%20a%20javascript/css%20compressor" target="_blank"><img src="./images/badges/google.png" border="0" alt="add to google" /></a>
<!-- STUMBLEUPON -->
<a class="externalLink" href="http://www.stumbleupon.com/submit?url=https://jawr.java.net&title=JAWR%20-%20More%20than%20a%20javascript/css%20compressor" target="_blank"><img src="./images/badges/stumbleupon.png" border="0" alt="add to stumbleupon" /></a>
<!-- YAHOO -->
<a class="externalLink" href="http://myweb.yahoo.com/myresults/bookmarklet?t=JAWR%20-%20More%20than%20a%20javascript/css%20compressor&u=https://jawr.java.net&ei=UTF" target="_blank"><img src="./images/badges/yahoo.png" border="0" alt="add to yahoo" /></a>
</div>
<div id="firstPara">
<p>Jawr is a tunable packaging solution for Javascript and CSS which allows for rapid development of resources in separate module files.
Developers can work with a large set of split javascript files in development mode, then Jawr bundles all together into one or several files
in a configurable way.
<br />By using a tag library, Jawr allows you to use the same, unchanged pages for development and production.
Jawr also minifies and compresses the files, resulting in reduced page load times.
<br />Jawr is configured using a simple .properties descriptor, and aside of standard java web applications it can also be used with
<a class="externalLink" href="https://facelets.java.net/">Facelets</a>, <a class="externalLink" href="http://grails.org/">Grails</a>, <a class="externalLink" href="http://wicket.apache.org/">Wicket</a> and <a class="externalLink" href="http://projects.spring.io/spring-framework/">Spring</a> applications.
</p>
</div>
<img src="./images/index/jawr.png" alt="jawr" />
<p>
It is common knowledge that it is faster to serve one large file rather than two smaller ones, because of increased HTTP negotiation and the fact
that most browsers only keep two connections open to the same host at any given time.
Jawr will reduce the number of requests needed to load a page and the amount of data to transfer to clients, achieving drastic improvement of
loading times. With a simple configuration file, resources can be distributed in bundles to best suit the usage pattern for a site.
Files not added to bundles also benefit from minification and compression (if no bundles are declared, Jawr will work as an easy to configure
resources compressor).
</p>
<p>
A JSP tag library (Facelets also supported) is used to import the resources to pages. In development mode, the tags generate <script> and <style> links for each resource
mapped to a bundle.
In production mode, the tags generate a single link pointing to the bundle file. Thus, there is no need to change code in pages when switching
from development to production mode.
</p>
<p>
There is an increasing trend towards richer client interfaces with complex javascript implementations. Using Jawr will ease the development process
by allowing to distribute modules in separate files without worrying about how the application will be served to clients.
</p>
<p>
The alternatives to using Jawr are:</p>
<ul>
<li>Developing all-in-one script files which conform to the deployment scheme. That is, cram all the modules into a few files. Version control becomes
unmanageable and it is hard to find a component that needs change. As the project grows, the code becomes near to impossible to mantain.
</li>
<li>Use a build script to join and compress the files, which forces developers to build and redeploy the whole application for testing even the
slightest of changes in their code.
</li>
<li>For java projects, use another libray like :
<a class="externalLink" href="https://github.com/wro4j/wro4j">Wro4j</a>
</li>
<li>For grails projects, use another plugin like :
<ul>
<li>
<a class="externalLink" href="https://grails.org/plugin/asset-pipeline">Grails Asset pipeline plugin</a> (For grails application)
</li>
<li>
<a class="externalLink" href="https://grails.org/plugin/wro4j">Wro4j Grails plugin</a>
</li>
</ul>
</li>
</ul>
<p>
Jawr offers the best of both worlds, by combining a powerful bundling-minifying-compressing scheme for optimal service in
production, with a rapid development mode for quick change-save-test cycles.
</p>
<p>
You can download the latest release of Jawr
<a class="externalLink" href="https://java.net/projects/jawr/downloads/directory/release">here</a>. Also, check out the
<a href="./tutorials/quickstart.html">quick start tutorial</a> to see how easy it is to use Jawr in your project.
<br />And don't forget to check the <a href="./tutorials/faq_howto.html">FAQ - Howto page</a> for tips and troubleshooting.
</p>
<div class="section">
<h3>Features<a name="Features"></a></h3>
<ul>
<li> <b>Free and open source</b>: Released under an Apache 2.0 license, Jawr can be used free of charge with or
without modifications, for both commercial and noncommercial purposes.</li>
<li> <b>Easy to setup</b>: All you need to start using Jawr is to declare a couple of servlets in you deployment descriptor, create a simple .properties configuration file,
and use the Jawr tag library to import css and javascript resources to your pages. A complete setup takes a matter of minutes and requires little or no modifications over time. </li>
<li> <b>Lightweight</b>: Bundling and compression is done once at server startup so there is no overhead to requests. Also, a cache component
is available and enabled by default to serve resources directly from memory instead of from the filesystem.</li>
<li> <b>Built-in minification and postprocessing</b>: Jawr includes JSMin and the YUI compressor, both from Yahoo!. A custom minificator for
CSS is also included, although the YUI compressor can be used for CSS too. For each bundle, a customizable postprocessing chain is executed
during startup. Relative URLs in CSS files are rewritten by a postprocessor so they keep working with a different relative path. It is also
easy to create custom postprocessors to perform any modifications to your js and css files at deploy time.
<a href="./docs/postprocessors.html"> Learn more</a>.
</li>
<li><b>Third party frameworks integration</b>: Jawr can be used with
<a href="./integration/dwr.html">DWR</a>,
<a href="./integration/spring.html">Spring</a>, JSF,
<a href="./integration/facelets.html">Facelets</a>,
<a href="./integration/wicket.html">Wicket</a>,
<a href="./integration/validator.html">Commons Validator (with Struts)</a>,
and <a href="./integration/grails.html">Grails.</a>
It can also be easily plugged <a href="./integration/augmenter.html">into your own infrastructure. </a>
</li>
</ul>
<p>There are many more features, check the <a href="./features.html">features list page</a> for a full listing. </p>
</div>
<div class="section">
<h3>Requirements<a name="Requirements"></a></h3>
<p>
You can use Jawr with any compliant Java Servlet 2.5 or higher container implementation (i.e. Tomcat, Jetty, BEA Weblogic etc.), as long as the
virtual machine it runs on is 1.7 or higher. There are no other requirements.
</p>
</div>
<div class="section">
<h3>Announcements<a name="Announcements"></a></h3>
<p>Here are the latest announcements regarding Jawr. You can find older version announcements with all the features that have been
added over time at the <a href="./changes.html">change log.</a> </p>
<ul>
<li> <b>22nd August 2016</b>: Version 3.9 released:<br />
This version is containing bug fixes and some new features.<br />
One of the focus of this new version is to speed up the bundling process, by adding caching feature to generated resources and also by providing "smart bundling" feature which allow Jawr to rebuild bundles only if they've been modified.
Please check the <a href="./tutorials/howToUseJawrSmartBundling.html/">smart bundling tutorial</a> for more information.
<br />
<b>New features & improvements : </b>
<ul>
<li>[<a class="externalLink" href="https://java.net/jira/browse/JAWR-247">JAWR-247</a>] Jawr now allows you to used extension based resources (.less, .coffee, ...) from classpath generators (like classpath, webjars, ...)
This means that you can now adds resources like : <b>jar:/less/myStyle.less</b> in your bundle mapping.
</li>
<li>[<a class="externalLink" href="https://java.net/jira/browse/JAWR-313">JAWR-313</a>] The biggest feature of this new version is the "smart bundling".
This feature is used to speed up bundle generation by detecting which bundle should be processed.
Please check the following <a href="./tutorials/howToUseJawrSmartBundling.html/">tutorial</a> to see how to set up this new feature.
</li>
<li>[<a class="externalLink" href="https://java.net/jira/browse/JAWR-364">JAWR-364</a>] The DWR 3 extension has been updated to use the latest DWR 3.0.1-RELEASE version.
</li>
<li>[<a class="externalLink" href="https://java.net/jira/browse/JAWR-362">JAWR-362</a>] Jawr provides now a JRuby sass compiler for Sass Generator, which is closer to the original version than the Vaadin one.
Please check the <a href="./docs/generators#SASS_Ruby_generator">Sass Ruby generator documentation</a> for more detail.
</li>
<li>[<a class="externalLink" href="https://java.net/jira/browse/JAWR-398">JAWR-398</a>] The Jawr javascript tag has been updated to add <b>crossorigin</b> attribute.
</li>
<li>[<a class="externalLink" href="https://java.net/jira/browse/JAWR-404">JAWR-404</a>] The <a href="./docs/postprocessors.html#Autoprefixer_postprocessor">Jawr Autoprefixer postprocessor</a> has been upgraded to use the version 6.4.0
</li>
<li>[<a class="externalLink" href="https://java.net/jira/browse/JAWR-403">JAWR-403</a>] The <a href="./docs/global_postprocessors.html#Google_Closure_postprocessor">Google closure global postprocessor</a> has been upgraded to use the version v20160713
</li>
</ul>
<b>Fixed issues : </b>
<ul>
<li>[<a class="externalLink" href="https://java.net/jira/browse/JAWR-365">JAWR-365</a>] Add more exception info when failing to read resource
</li>
<li>[<a class="externalLink" href="https://java.net/jira/browse/JAWR-369">JAWR-369</a>] Add semicolon between JavaScript files if necessary
</li>
<li>[<a class="externalLink" href="https://java.net/jira/browse/JAWR-381">JAWR-381</a>] Improve performance generation of generated resources (less, sass, ...)
</li>
<li>[<a class="externalLink" href="https://java.net/jira/browse/JAWR-383">JAWR-383</a>] Provide Spring Boot auto-configuration
</li>
<li>[<a class="externalLink" href="https://java.net/jira/browse/JAWR-388">JAWR-388</a>] Convert site documentation from apt to markdown
</li>
<li>[<a class="externalLink" href="https://java.net/jira/browse/JAWR-389">JAWR-389</a>] Use annotation to identify variant post processor
</li>
</ul>
</li>
<li>
Thanks to marrdev, paranoiabla, jmaslac, tsachev, H.Schulz, senorplankton, mayjak, jiri_pejchal for reporting the issues.<br />
Thanks to dtrunk90, janningvygen, donv, jeremysnyder, holmis83, diocerty, davidwebster48 for reporting the issues and providing patches.
</li>
</ul>
<ul>
<li> <b>28th August 2015</b>: Version 3.8 released:<br />
This version is containing bug fixes and some new features.<br /><br />
<b>New features: </b>
<ul>
<li>
[<a class="externalLink" href="https://java.net/jira/browse/JAWR-354">JAWR-354</a>] Jawr now provides support for SASS resource (*.scss).<br />
You can now use SASS files in your bundle mapping.<br />
Please check the <a href="./docs/generators.html#SASS_generator">generator documentation</a> for more detail.
</li>
<li>
[<a class="externalLink" href="https://java.net/jira/browse/JAWR-353">JAWR-353</a>] Jawr now uses less4j engine instead of less-engine.<br />
Please check the <a href="./docs/generators.html#Less_CSS_generator">generator documentation</a> for more detail.
</li>
<li>
[<a class="externalLink" href="https://java.net/jira/browse/JAWR-351">JAWR-351</a>] Jawr now allows users to enable performance logging for bundle or request handling.<br />
Please check the <a href="./tutorials/howToEnablePerformanceLogging.html">tutorial</a> for more detail.
</li>
<li>
[<a class="externalLink" href="https://java.net/jira/browse/JAWR-350">JAWR-350</a>] Jawr allows you to define which JS script engine, you would like to use for JS based processors or generators like coffee script, uglify or Autoprefixer.<br />
This means that you can use Nashorn JS engine if you're using Java 8<br />
To define which engine to use, you only need to set the property <b>jawr.js.engine</b>.<br />
For more information, please check <a href="./tutorials/howToSetJsEngine.html">the tutorial about how to set the Javascript Engine</a> for more detail.
</li>
<li>
[<a class="externalLink" href="https://java.net/jira/browse/JAWR-349">JAWR-349</a>] To reference webjars resources, you can now use short reference instead of full one.<br />
For example, you can now use : <b>webjars:/css/bootstrap.css</b> instead of <b>webjars:/bootstrap/3.2.0/css/bootstrap.css</b> <br />
For more information, please check the <a href="./docs/generators.html#Webjars_generator">webjars generator documentation</a> for more information.
</li>
<li>
[<a class="externalLink" href="https://java.net/jira/browse/JAWR-348">JAWR-348</a>] Jawr allows you to define external bundles. This is used for resources which are not handle in Jawr in Production or debug mode, but you can still use the Jawr taglib to reference them<br />
For more information, please check <a href="./docs/custom_bundles.html#External_bundles">the bundle documentation</a> for more detail.
</li>
<li>
[<a class="externalLink" href="https://java.net/jira/browse/JAWR-342">JAWR-342</a>] Jawr allows developers to override comments generation in link renderer
</li>
<li>
[<a class="externalLink" href="https://java.net/jira/browse/JAWR-340">JAWR-340</a>] Jawr allows users to specify if licence information should be kept or not in CSSMinifier.<br />
Please check the <a href="./docs/postprocessors.html#CSS_Minificator">CSS minifier documentation</a> for more detail.
</li>
<li>
[<a class="externalLink" href="https://java.net/jira/browse/JAWR-274">JAWR-274</a>] Jawr now support nested composite bundles. You can now define a composite bundle in another composite bundle<br />
For more information, please check <a href="./docs/custom_bundles.html#Composite_bundles">the composite bundle documentation</a> for more detail.
</li>
<li>
[<a class="externalLink" href="https://java.net/jira/browse/JAWR-153">JAWR-153</a>] Jawr provides a new postprocessor based on <a class="externalLink" href="https://github.com/postcss/autoprefixer">Autoprefixer</a>.<br />
The autoprefixer postprocessor will generate vendor specific prefixes for CSS rules.
Please check the <a href="./docs/postprocessors.html#Autoprefixer_postprocessor">postprocessor documentation</a> for more detail.
</li>
</ul>
<b>Fixed issues : </b>
<ul>
<li>
[<a class="externalLink" href="https://java.net/jira/browse/JAWR-347">JAWR-347</a>] Reloading i18n generator does not work<br />
</li>
<li>
[<a class="externalLink" href="https://java.net/jira/browse/JAWR-345">JAWR-345</a>] Closure Compiler doesn't generate gzip bundle content<br />
</li>
<li>
[<a class="externalLink" href="https://java.net/jira/browse/JAWR-344">JAWR-344</a>] JAWR should throw an exception on start up if 'javax.servlet.context.tempdir' is null<br />
</li>
<li>
[<a class="externalLink" href="https://java.net/jira/browse/JAWR-343">JAWR-343</a>] Issue with CoffeeScript generator on Tomcat 8, where the script can't be generated<br />
</li>
<li>
[<a class="externalLink" href="https://java.net/jira/browse/JAWR-341">JAWR-341</a>] CSS import postprocessor doesn't handle properly url declaration boundaries<br />
</li>
<li>
[<a class="externalLink" href="https://java.net/jira/browse/JAWR-338">JAWR-338</a>] Grails taglib doesn't handle properly "jawr.use.random.parameter" property<br />
</li>
<li>
[<a class="externalLink" href="https://java.net/jira/browse/JAWR-331">JAWR-331</a>] Clear RendererContext when DispatchError appears<br />
</li>
</ul>
</li>
<li>
Thanks to tzrlk, michele, ksokol, paranoiabla, dtrunk90, Infeligo, mzz6wh, tveimo for reporting the issues.<br />
Thanks to vakopian, tedliang for reporting the issues and providing patches.
</li>
</ul>
<ul>
<li> <b>23rd May 2015</b>: Version 3.7 released:<br />
This version is containing bug fixes and some new features.<br /><br />
<b>Important note : </b>
The version 3.7 of Jawr requires Java 1.7.<br />
This relase contains the fix for a security issue. It is highly recommended to upgrade to this new version.
<br /><br />
<b>New features: </b>
<ul>
<li>
The Jawr binary servlet to handle ".cur" and ".woff2" files
</li>
<li>
The Jawr servlet allows you to access resources which is not directly handle by Jawr.
For instance, if your Jawr JS servlet is mapped to "*.js" resources, you can access the JS resources, which are not part of the bundles.
</li>
</ul>
<b>Fixed issues : </b>
<ul>
<li>
<b>Issue #336 fixed:</b> Issue in Less generator when importing resource using absolute URL
</li>
<li>
<b>Issue #335 fixed:</b> Issue with grails plugin in development mode (using run-app command)
</li>
<li>
<b>Issue #334 fixed:</b> Path traversal vulnerability
</li>
<li>
<b>Issue #333 fixed:</b> Default CSS compressor is compressing calc functions incorrectly
</li>
<li>
<b>Issue #332 fixed:</b> Logging Level should be WARN for ResourceNotFound and missing binary extension
</li>
<li>
<b>Issue #328 fixed:</b> Jawr doesn't handle properly exception while retrieving resource using ResourceReader
</li>
<li>
<b>Issue #326 fixed:</b> Licensing issue with UnicodeBOMInputStream
</li>
<li>
<b>Issue #323 fixed:</b> Issue with line ending in generated bundles, which should not be different depending on the platform
</li>
<li>
<b>Issue #321 fixed:</b> Improve execution time of integration tests
</li>
<li>
<b>Issue #320 fixed:</b> With strictMode off and debugMode off image request which are not registered in jawr.properties results in 404
</li>
<li>
<b>Issue #318 fixed:</b> JawrBinaryResourceRequestHandler doesn't handle properly browser disconnection
</li>
<li>
<b>Issue #317 fixed:</b> ResourceReaderHandler doesn't handle properly exception when retrieving stream
</li>
<li>
<b>Issue #311 fixed:</b> Invalid resource path generated for CSS with IE11 in SSL mode
</li>
<li>
<b>Issue #308 fixed:</b> Issue in debug mode for CSS resources where URL reference an HTTP resource
</li>
<li>
<b>Issue #304 fixed:</b> StringIndexOutOfBoundsException occurs when Jawr tries to handle a request without prefix
</li>
<li>
<b>Issue #246 fixed:</b> Issue with bas64 postprocessor with sprite image
</li>
</ul>
</li>
<li>
Thanks to shoot_the_moon, damartin, paranoiabla, H.Schulz for reporting the issues.
Thanks to farethewell, janningvygen, frabasic, diocerty for reporting the issues and providing patches.
</li>
<li>
A special thank to janningvygen for his great contribution in this release.
</li>
</ul>
<ul>
<li> <b>06th October 2014</b>: Version 3.6 released:<br />
This version is containing bug fixes and some new features.<br />
<b>Important note : </b>
The version 3.6 of Jawr is not backward compatible. The component handling image resource has evolved.
We've kept the task as easy as possible to migrate from the previous version to this new one.
Please read the <a href="./migrationGuide.html">migration guide</a>.<br /><br />
<b>New features: </b>
<ul>
<li>
Jawr now support font web font caching (*.ttf, *.eot, *.woff, ...).<br />
The component which was handling the image caching has evolved to support any binary web resources.<br />
You will need to update your web.xml configuration to use the new <b>binary</b>, which now replace the old <b>img</b> type.
Please check the <a href="./docs/servlet.html">servlet documentation</a> and the <a href="./migrationGuide.html">migration guide</a> for more info.
</li>
<li>
Jawr provides a new generator to handle <b>webjars</b> resources.
For more information about webjars, please check the folllowing link : <a class="externalLink" href="http://www.webjars.org/">webjars site</a>
To reference webjars resources, you'll need to use the new prefix "webjars:".<br />
For example, you could use <i>webjars:/jquery/1.11.1/jquery.js</i> to reference the jquery script associated to the JQuery webjars. (<a class="externalLink" href="https://github.com/webjars/jquery">Source site</a>)<br />
Please check the <a href="./docs/generators.html#Webjars_generator">generator documentation</a> for more information.
</li>
<li>
Jawr provides by default a new JS minifier based on <a class="externalLink" href="http://lisperator.net/uglifyjs/">UglifyJS</a>.
It is important to note that this Javascript minifier will become the default one in the next release.
Please check the <a href="./docs/postprocessors.html#Uglify">postprocessor documentation</a> for more information.
</li>
<li>
Jawr now support JSON format for the configuration file using <b>net.jawr.web.resource.bundle.factory.util.JsonPropertiesSource</b> for <b>configPropertyResolverClass</b>
in the Jawr Servlet initialisation parameter.
Please check the <a href="./docs/servlet.html#Using_JSON_configuration_source">Jawr servlet documentation</a> for more information.
</li>
<li>
The Spring MVC extension has been renamed to <b>jawr-spring</b> instead of <b>jawr-spring-2.0.x</b>.
</li>
</ul>
<b>Fixed issues : </b>
<ul>
<li>
<b>Issue #216 fixed:</b> JsMin is failing with a RegEx trying to process Modernizr
</li>