-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathfeatures.html
652 lines (438 loc) · 23.2 KB
/
features.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
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia at 2017-04-10
| 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="20170410" />
<meta http-equiv="Content-Language" content="en" />
<title>Jawr -
Jawr :: Features</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>
</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: 2017-04-10
<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>
<a href="index.html" title="Home">
<i class="none"></i>
Home</a>
</li>
<li>
<a href="introduction.html" title="Introduction">
<i class="none"></i>
Introduction</a>
</li>
<li class="active">
<a href="#"><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/illegalBundleRequestHander.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 features<a name="Jawr_features"></a></h2>
<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>Proxy-friendly gzip support</b>: For each bundle there are two URLs that point to a gzipped and a regular version of the resource. Since the URLs
are be generated within a JSP, the request headers are analyzed to decide if the browser will support gzipping and the appropriate URL is written out.
With this system, caching proxies will not be a problem since it works around known Internet Explorer problems with the VARY header.</li>
<li> <b>Caching enforcement</b>: Jawr will try its best to force your clients to cache the resources. If a browser asks if a file changed, a 304 (not modified)
header is sent back with no content. On the other hand, with Jawr you will be 100% sure that new versions of your bundles are downloaded by all
clients. Every URL to your resources will include an automatically generated, content-based prefix that changes automatically whenever a
resource is updated. Once you deploy a new version, the URL to the bundle will change as well so it will be impossible that a client uses an
older, cached version.</li>
<li> <b>Flexible bundling scheme</b>: Choose which files go into which bundle, and in which order. Choose whether you want a bundle minified or not.
Choose whether a bundle will be used only in development mode (for adding things such as console loggers). Create partially minified bundles.
Create bundles which are automatically added within an Internet Explorer conditional comment.
All with a very easy to use configuration system.
<a href="./docs/custom_bundles.html"> Learn more</a>. </li>
<li> <b>CDN compatible</b>: Jawr can be used easily with a CDN for even better response times.</li>
<li> <b>Global bundles</b>: Some bundles such as libraries will be needed anywhere in your site where there is javascript code. Same goes for base CSS
stylesheets. With Jawr, these will be added to pages automatically so you don't need to repeat the same import statement everywhere.</li>
<li> <b>Dynamic pages not required</b>: Jawr can be used in plain HTML pages, so even if your application uses a mix of HTML and JSP (or other template based dynamic
technology), Jawr can be used on every page.
<a href="./docs/plain_html.html"> Learn more</a>. </li>
<li> <b>CoffeeScript</b>: Jawr allows you to use coffeescript resource in your bundle mapping. Jawr will handle the compilation to Javascript.
<a href="./docs/generators.html#CofeeScript_generator"> Learn more</a>. </li>
<li> <b>Less</b>: Jawr allows you to use less resource in your bundle mapping. Jawr will handle the compilation to CSS.
<a href="./docs/generators.html#Less_CSS_generator"> Learn more</a>. </li>
<li> <b>Sass</b>: Jawr allows you to use SASS resource in your bundle mapping. Jawr will handle the compilation to CSS.
<a href="./docs/generators.html#SASS_generator"> Learn more</a>. </li>
<li> <b>CSS skin</b>: Jawr allows you to define skin (theme) for your CSS bundle. This means that the user will get the CSS bundle skin depending on his current skin setting.
<a href="/tutorials/howToUseJawrCssSkin.html"> Learn more</a>. </li>
<li> <b>Sprite generation support</b>: You can define you sprite in your CSS by putting annotations and Jawr will generate the CSS bundles and the image sprites associated.
<a href="./tutorials/jawrSpriteImage.html"> Learn more</a>. </li>
<li> <b>Base64 encoded image support</b>: Jawr allows you to define the image which you want to encode in base64 to minimize the HTTP request. It also support MHTML generation for IE6 and IE7.
<a href="/tutorials/howToUseJawrToGenerateBase64Image.html"> Learn more</a>. </li>
<li> <b>JMX support</b>: You could modify the behaviour of Jawr at runtime using a JMX console. For example, you could pass an entire application from production mode to debug mode,
or modify only one session.
<a href="./docs/jmx_support.html"> Learn more</a>. </li>
<li> <b>Bundle preprocessing</b>: By default, the bundle processing is done at server startup, but you could preprocess your bundles, and use them directly. This will reduce the startup time of your application
because Jawr will skip the bundle processing.
<a href="./docs/bundle_preprocessing.html"> Learn more</a>. </li>
<li> <b>Spring MVC support</b>: Instead of configuring the Jawr servlet, you can tightly integrate it with your Spring MVC application by
adding the provided Jawr Controller to your Spring descriptor.
<a href="./integration/spring.html"> Learn more</a>. </li>
<li> <b>JSF/Facelets support</b>: If you are using JSF with Facelets as the view technology, you can still use Jawr using a specific tag library.
<a href="./integration/facelets.html"> Learn more</a>. </li>
<li> <b>Wicket support</b>: Jawr provides components for JS, CSS and images handled by Jawr.
<a href="./integration/wicket.html"> Learn more</a>. </li>
<li> <b>Grails plugin</b>: Jawr can be used seamlessly in Grails applications, using a provided plugin that includes a GSP tag library.
<a href="./integration/grails.html"> Learn more</a>. </li>
<li> <b>DWR integration</b>: You can use DWR and have Jawr handle the serving of the static and dynamic scripts DWR generates, with the
added feature of being able to bundle them together and with other scripts from your application.
<a href="./integration/dwr.html"> Learn more</a>.</li>
<li> <b>Struts/Commons Validator integration</b>: finally you can minify and compress the validation scripts generated by this framework.
With Jawr you can also bundle the Validator static javascript with other scripts in your application.
<a href="./integration/validator.html"> Learn more</a>.</li>
<li> <b>Library friendly</b>: Open source javascript libraries can be used seamlessly with Jawr. Most of these are modular or have plugins: add the modules or
plugins you need and bundle all together. And, even if you minify them (thus eliminating comments), you can still keep the mandatory licenses in
the bundle. The <a href="../tutorials/quickstart.html">libraries tutorial</a> will show you how to integrate popular js libraries such
as Protoype, JQuery or YUI. </li>
</ul>
</div>
</div>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row-fluid">
<p >Copyright © 2017.
All rights reserved.
</p>
</div>
</div>
</footer>
</body>
</html>