jawr
Latest version : 3.8
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.
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.
Jawr is configured using a simple .properties descriptor, and aside of standard java web applications it can also be used with
Facelets, Grails, Wicket and Spring applications.
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).
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.
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.
The alternatives to using Jawr are:
- 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.
- 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.
- For java projects, use another libray like :
Wro4j
- For grails projects, use another plugin like :
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.
You can download the latest release of Jawr
here. Also, check out the
quick start tutorial to see how easy it is to use Jawr in your project.
And don't forget to check the FAQ - Howto page for tips and troubleshooting.
Features
- Free and open source: Released under an Apache 2.0 license, Jawr can be used free of charge with or
without modifications, for both commercial and noncommercial purposes.
- Easy to setup: 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.
- Lightweight: 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.
- Built-in minification and postprocessing: 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.
Learn more.
- Third party frameworks integration: Jawr can be used with
DWR,
Spring, JSF,
Facelets,
Wicket,
Commons Validator (with Struts),
and Grails.
It can also be easily plugged into your own infrastructure.
There are many more features, check the features list page for a full listing.
Requirements
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.
Announcements
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 change log.
- 22nd August 2016: Version 3.9 released:
This version is containing bug fixes and some new features.
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 smart bundling tutorial for more information.
New features & improvements :
- [JAWR-247] 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 : jar:/less/myStyle.less in your bundle mapping.
- [JAWR-313] 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 tutorial to see how to set up this new feature.
- [JAWR-364] The DWR 3 extension has been updated to use the latest DWR 3.0.1-RELEASE version.
- [JAWR-362] Jawr provides now a JRuby sass compiler for Sass Generator, which is closer to the original version than the Vaadin one.
Please check the Sass Ruby generator documentation for more detail.
- [JAWR-398] The Jawr javascript tag has been updated to add crossorigin attribute.
- [JAWR-404] The Jawr Autoprefixer postprocessor has been upgraded to use the version 6.4.0
- [JAWR-403] The Google closure global postprocessor has been upgraded to use the version v20160713
Fixed issues :
- [JAWR-365] Add more exception info when failing to read resource
- [JAWR-369] Add semicolon between JavaScript files if necessary
- [JAWR-381] Improve performance generation of generated resources (less, sass, ...)
- [JAWR-383] Provide Spring Boot auto-configuration
- [JAWR-388] Convert site documentation from apt to markdown
- [JAWR-389] Use annotation to identify variant post processor
-
Thanks to marrdev, paranoiabla, jmaslac, tsachev, H.Schulz, senorplankton, mayjak, jiri_pejchal for reporting the issues.
Thanks to dtrunk90, janningvygen, donv, jeremysnyder, holmis83, diocerty, davidwebster48 for reporting the issues and providing patches.
- 28th August 2015: Version 3.8 released:
This version is containing bug fixes and some new features.
New features:
-
[JAWR-354] Jawr now provides support for SASS resource (*.scss).
You can now use SASS files in your bundle mapping.
Please check the generator documentation for more detail.
-
[JAWR-353] Jawr now uses less4j engine instead of less-engine.
Please check the generator documentation for more detail.
-
[JAWR-351] Jawr now allows users to enable performance logging for bundle or request handling.
Please check the tutorial for more detail.
-
[JAWR-350] 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.
This means that you can use Nashorn JS engine if you're using Java 8
To define which engine to use, you only need to set the property jawr.js.engine.
For more information, please check the tutorial about how to set the Javascript Engine for more detail.
-
[JAWR-349] To reference webjars resources, you can now use short reference instead of full one.
For example, you can now use : webjars:/css/bootstrap.css instead of webjars:/bootstrap/3.2.0/css/bootstrap.css
For more information, please check the webjars generator documentation for more information.
-
[JAWR-348] 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
For more information, please check the bundle documentation for more detail.
-
[JAWR-342] Jawr allows developers to override comments generation in link renderer
-
[JAWR-340] Jawr allows users to specify if licence information should be kept or not in CSSMinifier.
Please check the CSS minifier documentation for more detail.
-
[JAWR-274] Jawr now support nested composite bundles. You can now define a composite bundle in another composite bundle
For more information, please check the composite bundle documentation for more detail.
-
[JAWR-153] Jawr provides a new postprocessor based on Autoprefixer.
The autoprefixer postprocessor will generate vendor specific prefixes for CSS rules.
Please check the postprocessor documentation for more detail.
Fixed issues :
-
[JAWR-347] Reloading i18n generator does not work
-
[JAWR-345] Closure Compiler doesn't generate gzip bundle content
-
[JAWR-344] JAWR should throw an exception on start up if 'javax.servlet.context.tempdir' is null
-
[JAWR-343] Issue with CoffeeScript generator on Tomcat 8, where the script can't be generated
-
[JAWR-341] CSS import postprocessor doesn't handle properly url declaration boundaries
-
[JAWR-338] Grails taglib doesn't handle properly "jawr.use.random.parameter" property
-
[JAWR-331] Clear RendererContext when DispatchError appears
-
Thanks to tzrlk, michele, ksokol, paranoiabla, dtrunk90, Infeligo, mzz6wh, tveimo for reporting the issues.
Thanks to vakopian, tedliang for reporting the issues and providing patches.
- 23rd May 2015: Version 3.7 released:
This version is containing bug fixes and some new features.
Important note :
The version 3.7 of Jawr requires Java 1.7.
This relase contains the fix for a security issue. It is highly recommended to upgrade to this new version.
New features:
-
The Jawr binary servlet to handle ".cur" and ".woff2" files
-
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.
Fixed issues :
-
Issue #336 fixed: Issue in Less generator when importing resource using absolute URL
-
Issue #335 fixed: Issue with grails plugin in development mode (using run-app command)
-
Issue #334 fixed: Path traversal vulnerability
-
Issue #333 fixed: Default CSS compressor is compressing calc functions incorrectly
-
Issue #332 fixed: Logging Level should be WARN for ResourceNotFound and missing binary extension
-
Issue #328 fixed: Jawr doesn't handle properly exception while retrieving resource using ResourceReader
-
Issue #326 fixed: Licensing issue with UnicodeBOMInputStream
-
Issue #323 fixed: Issue with line ending in generated bundles, which should not be different depending on the platform
-
Issue #321 fixed: Improve execution time of integration tests
-
Issue #320 fixed: With strictMode off and debugMode off image request which are not registered in jawr.properties results in 404
-
Issue #318 fixed: JawrBinaryResourceRequestHandler doesn't handle properly browser disconnection
-
Issue #317 fixed: ResourceReaderHandler doesn't handle properly exception when retrieving stream
-
Issue #311 fixed: Invalid resource path generated for CSS with IE11 in SSL mode
-
Issue #308 fixed: Issue in debug mode for CSS resources where URL reference an HTTP resource
-
Issue #304 fixed: StringIndexOutOfBoundsException occurs when Jawr tries to handle a request without prefix
-
Issue #246 fixed: Issue with bas64 postprocessor with sprite image
-
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.
-
A special thank to janningvygen for his great contribution in this release.
- 06th October 2014: Version 3.6 released:
This version is containing bug fixes and some new features.
Important note :
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 migration guide.
New features:
-
Jawr now support font web font caching (*.ttf, *.eot, *.woff, ...).
The component which was handling the image caching has evolved to support any binary web resources.
You will need to update your web.xml configuration to use the new binary, which now replace the old img type.
Please check the servlet documentation and the migration guide for more info.
-
Jawr provides a new generator to handle webjars resources.
For more information about webjars, please check the folllowing link : webjars site
To reference webjars resources, you'll need to use the new prefix "webjars:".
For example, you could use webjars:/jquery/1.11.1/jquery.js to reference the jquery script associated to the JQuery webjars. (Source site)
Please check the generator documentation for more information.
-
Jawr provides by default a new JS minifier based on UglifyJS.
It is important to note that this Javascript minifier will become the default one in the next release.
Please check the postprocessor documentation for more information.
-
Jawr now support JSON format for the configuration file using net.jawr.web.resource.bundle.factory.util.JsonPropertiesSource for configPropertyResolverClass
in the Jawr Servlet initialisation parameter.
Please check the Jawr servlet documentation for more information.
-
The Spring MVC extension has been renamed to jawr-spring instead of jawr-spring-2.0.x.
Fixed issues :
-
Issue #216 fixed: JsMin is failing with a RegEx trying to process Modernizr
-
Issue #264 fixed: BrowserResolver doesn't recognize IE11, returning NULL
-
Issue #278 fixed: Less generator don't properly handle import directive
-
Issue #280 fixed: Add check in Jawr to handle case where resource type is not properly set
-
Issue #282 fixed: Mime-Type missing for jawr_loader.js
-
Issue #283 fixed: JSMin doesn't handle properly tabulation in strings
-
Issue #284 fixed: The JAWR/smartsprite directory isn't being cleared when JAWR runs again
-
Issue #285 fixed: Uncorrect behavior for unknown browser variants
-
Issue #286 fixed: In CSSImportPostProcessor, external URLs are causing errors
-
Issue #289 fixed: Image URLs are not properly generated when setting jawr.url.contextpath.override and image servlet mapping as empty
-
Issue #291 fixed: Issue in Jawr image tag which appends the jsessionid at the end of the URL
-
Issue #292 fixed: When using the jawr.locale.generator.quoteMsgKey property, only a part of key messages is quoted
-
Issue #293 fixed: Unable to define multiple ResourceBundle in message generator using pipe character
-
Issue #296 fixed: Jawr doesn't handle properly font resources from generated css content like CSS in classpath
-
Issue #299 fixed: Jawr doesn't properly handle URL rewriting in CSS when URL contains the following characters '?' and '#'
-
Issue #300 fixed: Issue with skin generator for image URL rewriting
-
Issue #302 fixed: Issue with generated resources containing dot characters but no extension
-
Issue #303 fixed: Issue in debug mode with Image URL rewriting in CSS provided by generators when servlet mapping is not empty
-
Thanks to tdahmez, ungarida, sudnam, rragan, takacsot, diorcety, shoot_the_moon for reporting the issues.
-
Thanks to M.Cegledi, volt0, kazimir70 for reporting the issues and also provding patches.
- 06th October 2014: Grails plugin 3.6 released:
The grails plugin has been released in the grails central repository.
You'll need at least Grails 2.4.3 to use this version.
Please check the grails plugin documentation for more detail on how to use it.
Fixed issue :
-
Issue #243 fixed: Allow Jawr Grails plugin message generator to retrieve message from others grails plugins
-
Thanks to kevin.mershon for reporting this issue
- 08th May 2014: Version 3.5.2 released:
This version is a minor version containing only a bug fix about sprite generation.
Fixed issue :
-
Issue #279 fixed: Sprite generation doesn't work properly
-
Thanks to shoot_the_moon for reporting the issues.
- 18th April 2014: Grails plugin 3.5.1 released:
The grails plugin has been released in the grails central repository.
Please check the grails plugin documentation for more detail on how to use it.
Fixed issue :
-
Issue #265 fixed: Grails plugin can't be loaded
- 18th April 2014: Version 3.5.1 released:
This version is a minor version containing mainly bug fixes.
New features:
-
Jawr allows the users to define if they want to put quote for the key of their messages in the message generator using a new property jawr.locale.generator.quoteMsgKey. Please check descriptor syntax doc for more detail.
This property is set to true by default. If your message keys are don't have a dash in their name, you can use this option to remive the unnecessary quote.
-
Jawr allows the users to define bundle path prefix for generated URLs. For instance, if the user would like to have a bunch of secured budnle, he would be able to define a prefix for those bundle which will be prepend before the bundle hashcode.
This will allow him to define a filter which will check the access right for the users for example.
The new property jawr.[type].bundle.[name].bundle.prefix has been added to the bundle. Please check descriptor syntax doc for more detail.
Fixed issues :
-
Issue #225 fixed: Bundling Bootstrap CSS file with CSSMinifier causing java.lang.StackOverflowError
-
Issue #239 fixed: Issue with productionURL and dependencies
-
Issue #241 fixed: Issue when using jawr.use.bundle.mapping option with a bundle using a production URL
-
Issue #254 fixed: /jawr_loader.js not serving bundles correct path prefix override when request is secure
-
Issue #255 fixed: Issue with alternateProduction URL on global bundle
-
Issue #258 fixed: Jawr.use.bundle.mapping and productionURL do not work together
-
Issue #259 fixed: Exception during startup when contextPath is empty
-
Issue #260 fixed: Remove log4j dependency in smartsprites global preprocessor
-
Issue #261 fixed: In Production mode, the debugnever bundle property is not properly handled for composite bundle
-
Issue #262 fixed: Sprite generation doesn't work for not generated css content
-
Issue #267 fixed: JAWR cannot process Bootstrap CSS
-
Issue #269 fixed: Javascript i18n message generator doesn't create escaped Unicode characters.
-
Issue #271 fixed: Jawr doesn't handle properly bundle dependencies in Closure compiler arguments
-
Issue #272 fixed: OverrideKey does not work in production mode for composite bundle
-
Issue #273 fixed: ResourceBundleMessagesGenerator does not add quotes around property message keys
The new property jawr.locale.generator.quoteMsgKey has been added allows the user to choose if he would like to put quote or not for the message keys
-
Issue #275 fixed: Exceptions not properly handle in PathNormalizer.extractBundleInfoFromPath(requestedPath)
-
Issue #276 fixed: Custom global post processors not properly registered
-
Issue #277 fixed: LessException not properly handled in LessGenerator (cast issue & nullPointerException)
-
Thanks to Monomachus, dr.piefel, pbusque, sessert, LightningMan, mzz6wh, hweic for reporting the issues.
Thanks to paranoiabla, dmurat, webguy, sbaruzza, diorcety for reporting the issues and also providing patches.
- 06th Januray 2014: Grails plugin 3.5 released:
The grails plugin has been released in the grails central repository.
Please check the grails plugin documentation for more detail on how to use it.
- 01rst January 2014: Version 3.5 released:
This version is a major version. This version requires at least the use of java 6 and servlet API 2.5.
For those, who were using the version 3.3.x, please read the migration guide.
New features:
-
It is now possible to set a custom Javascript ClientSideGenerator using the new jawr.js.clientside.handler.generator.class configuration property. Please check descriptor syntax doc for more detail.
-
It is now possible to set custom link renderer using the following properties jawr.js.bundle.link.renderer.class, jawr.css.bundle.link.renderer.class, jawr.img.bundle.link.renderer.class. Please check descriptor syntax doc for more detail.
-
Jawr adds support to JS compression with Google Compiler. Please check this tutorial for more detail.
-
Jawr adds new jawr.locale.generator.fallbackToSystemLocale property for i18n message resource generator, to use System locale if no locale is found. Please check descriptor syntax doc for more detail.
-
Jawr allows the user to define the use of random parameter in debug mode at application level using jawr.debug.use.random.parameter. Please check descriptor syntax doc for more detail.
-
Jawr adds support for custom generator resolver. Before the 3.5 version, the generator were only available with a mapping prefix (for ex: ""jar:" for classpath generator). Now the users are able to define their own generator resolver.
For those who had defines their custom generator, they will need to update their generator. Please check the migration guide for more info.
-
Jawr provides a built-in LESS Css generator.
You can take a look to the generators documentation for more info.
-
Jawr provides a built-in CoffeeScript generator.
You can take a look to the generators documentation for more info.
-
Jawr allows the user to define prefix to Jawr JMX MBean using jawr.jmx.mbean.prefix property.
This will fix issues, for application which are deployed on different server using the same application context.
Please check descriptor syntax doc for more detail.
-
Jawr allows the user to define a custom cache mechanism using jawr.cache.manager.
Please check descriptor syntax doc for more detail.
-
Jawr adds support for built-in EhCache manager. jawr.cache.manager.
Please check the cache manager documentation for more detail.
-
Jawr allows the user to define the configuration property resolver in the Jawr configurationd files using configPropertyResolverClass in the Jawr servlet definition.
Please check servlet configuration documentation for more detail.
-
Jawr allows the user to define an external base context directory where Jawr will be able to find resources using the jawr.basecontext.directory,
and you can now define what is the priority when searching for resource using the property jawr.basecontext.directory.high.priority.
This allows user to create bundle from resources oustide the war file.
Please check descriptor syntax doc for more detail.
-
Jawr allows the user to define custom implementation of built in Resolvers (LocaleResolver, BrowserTypeResolver, ConnectionTypeResolver, SkinVariantResolver, ) using configuration properties
jawr.locale.resolver, jawr.browser.resolver, jawr.url.connection.type.resolver, jawr.css.skin.resolver
Please check descriptor syntax doc for more detail.
-
Jawr now uses slf4j as logging framework.
For those who are using log4j as loging framework, you must add slf4j-log4j12-xxx.jar in your classpath. Please check the slf4j documentation for more detail.
-
The Jawr javascript tag now support the aysnc and defer attributes. Please check the taglib doc for more detail.
-
The URL of the Jawr facelet taglib has been updated from https://jawr.dev.java.net/jsf/facelets to https://jawr.java.net/jsf/facelets.
-
Unfortunately, we weren't able to include the updated version of the grails plugin in this release. We will try to release it as soon as possible.
So grails users will have to wait to get the 3.5 release.
.
-
jawr.css.image.classpath.use.servlet properties removed. It is replaced by jawr.css.classpath.handle.image.
Fixed issues :
-
Issue #72 fixed: Avoid skipping repeated members of bundles
-
Issue #166 fixed: Generated URL is different for jwr:script and JAWR.loader.script
-
Issue #168 fixed: URL of CSS resources using CSS skin are not properly handled by JAWR.loader
-
Issue #169 fixed: Base64 encoding works only on composite bundle for IE
-
Issue #171 fixed: SmartSpritesResourceHandler does not resolve absolute css-url()s
-
Issue #174 fixed: Media parameter not taking in account in debughandler.js
-
Issue #177 fixed: MessageBundleGenerator doesn't handle properly messages bundle charset
-
Issue #178 fixed: Issue with use.bundling.mapping for preprocessed orphan bundles containing dots in the name
-
Issue #180 fixed: Bundle contents are mangled when using cache feature on high load
-
Issue #183 fixed: Jawr groovy TagLib attributes not properly handle for boolean
-
Issue #187 fixed: Documentation for base64postprocessor contradicts itself
-
Issue #193 fixed: CSSMinifier issue with new CSS 3 "@media" syntax.
-
Issue #195 fixed: Problem in documentation for PostProcessors
-
Issue #196 fixed: JMX refreshConfig() does not re-read jawr.properties
-
Issue #197 fixed: Taglib should honor refreshKey parameter
-
Issue #198 fixed: Memory leak when restarting server due to missing reset of a ThreadLocal
-
Issue #200 fixed: Jawr CSS minifier doesn't handle properly CSS3 selectors like : E[foo$="bar"]
-
Issue #202 fixed: Issue when defining OrphanResourceBundlesMapper basedir as generated path
-
Issue #203 fixed: Issue with generator when using JRockit R27.4.0-xxx
-
Issue #204 fixed: Inappropriate log level in CssSmartSpritesGlobalPreprocessor
-
Issue #206 fixed: Byte-Order-Marks (BOM) in Javascript files corrupt bundle
-
Issue #208 fixed: BundleProcessor doesn't handle properly a web.xml where the servlet-class contains spaces
-
Issue #209 fixed: BundleProcessor doesn't use the jars defined in /WEB-INF/lib in its classloader
-
Issue #210 fixed: In CSSMinifier, when an exception is raised add a log to define which bundle is causing the issue
-
Issue #211 fixed: Make inheritance easier in BundleProcessor
-
Issue #212 fixed: Issue while setting jawr.image.resources to a generated path using directory wildcard
-
Issue #213 fixed: Orphan resources cannot be found if basedir is set to webapp root directory
-
Issue #215 fixed: Issue when using a Servlet API 2.5 with Jawr bundle preprocessor
-
Issue #217 fixed: Issue with character encoding for Grails messages
-
Issue #218 fixed: The values of the jawr.properties file must be trimmed
-
Issue #220 fixed: CSS media queries not correctly minified
-
Issue #221 fixed: Javascript i18n message generator uses a pipe separator, not a comma as mentioned in the documentation
-
Issue #222 fixed: Issue in Wicket integration: Unable to serialize net.jawr.web.resource.bundle.renderer.CSSHTMLBundleLinkRenderer
-
Issue #223 fixed: CacheBusterUrl generation does not support urls with postfixes
-
Issue #224 fixed: Random debug parameter in the URL is not set for the generated resources in debug mode
-
Issue #226 fixed: When using debug override the bundle defines as debugonly and debug never are not properly taken in account
-
Issue #227 fixed: JmxUtils.getMBeanObjectName doesn't handle root context path correctly
-
Issue #230 fixed: Minification of js anonymous function expessions is incorrect
-
Issue #231 fixed: Jawr doesn't handle properly the font URL in CSS.
-
Issue #233 fixed: Issue with base64 postprocessor when the css files are not in the same directory level
-
Issue #245 fixed: Issue with bas64 postprocessor, which didn't work properly. Please check the tutorial on how to set up the bas64 postprocessor.
-
Thanks to julienw, kgo, ghillert, henrik242, sfrancois99, gregkatz, EddiBosh, brienwheeler, omega_ula, dtabuenc, dtrunk90, D_mitar, TimDGSL, jfasrc, smalbegui, bai.ben, deleted_user, pakmans for reporting the issues.
Thanks to das2k_117, sankar_netsoft, ZikFat, nbourdeau, Musikolo, tduffey, nik9000, wwwpol, hay_dave, tgilles, glin, Stephane Landelle, oxc, Chris Kulinski for reporting the issues and also providing patches.
- 15th August 2010: Version 3.3.3 released:
This version contains 2 bug fixes including a major one. It is highly recommended to upgrade to this version.
There was an issue in the hashcode generation, which causes the bundle to be reloaded even if the bundle content didn't change.
This implies some performance penalties.
The hashcode was based on the Java object ID instead of the bundle content.
The consequences are :
- If you restart your application server, for the same application, Jawr could generate different hashcodes for the same bundle.
- If you are using load balancing and run the same application on 2 servers, they could generate different hashcodes for the same bundle.
Fixed issues:
-
Issue #160 fixed: An exception is thrown, when using JMX on an application whose the context path is empty
-
Issue #163 fixed: Issue with bundle hashcode generation which must be based on bundle content
Thanks to Mark W. for reporting the hashcode generation issue.
- 20th July 2010: Version 3.3.2 released:
This version contains only bug fixes.
Fixed issues:
-
Issue #157 fixed: NullPointerException thrown in BrowserResolver when no user agent found in HTTP header
-
Issue #159 fixed: Space in the dependencies configuration lead to omitted dependencies
Thanks to zafo and Trygve Lie for reporting these issues.
- 06/29/2010: Version 3.3.1 released:
This version contains a lot of new features and bug fixes.
New features:
-
One of the big new features of this release is the ability to define variant bundles.
A variant bundle is the generalization of what already exists for the locale aware bundle.
A variant bundle is a bundle which can change depending on some defined criteria.
This means for example that you can define a specific bundle content by browser type. You can define a specific bundle for IE, and for the same bundle sent another content to Firefox, Chrome, Opera...
For more information about the variant bundle, please check the following variant bundle documentation for more detail.
-
One of the feature derived from the use of variant bundle is the support for CSS bundle skin.
Jawr allows you to define CSS bundle, where the skin variant will be sent back to the user depending on the skin
used by the user. The user skin is defined in a cookie.
The good news is that the CSS skin can also be combined with the user locale, which means that Jawr is able to
sent to the user the CSS bundle depending on the user skin and also depending on the user locale.
For more information about how to use the new skin feature, please check the following Jawr skin documentation for more detail.
-
The Jawr CSS tag has been updated to be able to generate title and alternate attributes for CSS bundles.
The Jawr CSS tag has also been updated to be able to generate alternate for CSS skin bundles.
Look for the CSS tag at the tag library doc for extra info.
-
The Jawr skin switcher javascript generator has been created to generate the javascript file for the skin switcher.
You can take a look to the generators documentation for more info.
-
Jawr now supports base64 image encoding.
Jawr is now able to generate base64 encoded image in your CSS bundle using a new postprocessor.
Please check the tutorial on how to use Jawr to generate base64 image in CSS bundle for more detail.
The Jawr image tags have been updated to be able to generate base64 encoded image.
Please check the documentation on the taglib description for more detail.
-
Jawr supports hashcode bundle generator. This means that you can now define your own implementation of the id used to identify the bundle.(Ex: application version based, ...)
For more detail, about how to implement your own hashcode bundle generator, take a look at the documentation about hashcode bundle generator.
-
Jawr provides also an MD5 hashcode bundle generator, which use MD5 to create the bundle hashcode. Take a look at the documentation about hashcode bundle generator.
-
Jawr introduces the strict mode. For earlier version, Jawr didn't take in account the hashcode of the requested bundle.
This means that if a user request a bundle, for which the hashcode is different from the current one, Jawr will sent back the current bundle.
This may be an issue if you are using an application on a clustered environment. If you deploy a new version of your application on one server,
while the other is still up. You can face cases where the user request a page on one server, and try to retrieve the web resource bundles one another.
This may lead to strange behaviors.
To overcome this issue, Jawr introduces the strict mode. In this mode, Jawr will allow you to define how you want to handle such requests by defining your own IllegalBundleRequestHandler.
Jawr also provides a default implementation whch returns a "404" if it receive a such request.
Take a look at the documentation about strict mode and illegal bundle request handler.
Jawr provides just a default implementation, if you want to contribute and share your own implementation with the community,
feel free to create and attach a patch in the issue tracker.
-
Jawr supports composite bundle postprocessors for bundle and for the unitary files.
You can take a look to the postprocessors documentation for more info.
-
Jawr uses now alphabetical ordering for bundle resources by default.
-
Jawr supports media keyword in CSS Import PostProcessor. Please check the CSS import postprocessor documentation for more detail.
-
Jawr introduce a new postprocessor to combine CSS media. Please check the CSS combine media postprocessor documentation for more detail.
Thanks to Gerben Jorna for the implementation of this feature.
Fixed issues:
-
Issue #41 fixed: Add title attribute to style tag
-
Issue #127 fixed: Problem parsing jawr-jsp2x.tld in Resin
-
Issue #132 fixed: CSS image URL not written properly for generators which don't handle CSS images
-
Issue #133 fixed: Issue on Jawr context management for debug mode and JMX in the JawrSpringController
-
Issue #134 fixed: In debug mode, Jawr generates wrong CSS image paths for generated Css resources when using JawrSpringController
-
Issue #139 fixed: Jawr don't handle *.ico files as image files
-
Issue #141 fixed: Issue on Jawr CssMinifier which doesn't handle properly CSS rules with linefeed inside
-
Issue #144 fixed: NPE when using jawr.debug.ie.force.css.bundle=true and ieonly.condition bundle property.
-
Issue #145 fixed: Jawr not compatible with Java 1.4.
-
Issue #146 fixed: ThreadLocal memory leak when reloading application.
-
Issue #151 fixed: The Wicket image tag rendering is not working properly for HTML images
-
Issue #152 fixed: For the image tags in Wicket, Jawr doesn't handle properly the URL generation of generated images
Thanks to eliotsykes, mkkoch, wangg3, Martin Jönsson, jnichols959 and all those who participate through the discusion forum for reporting issues and giving feedbacks.
Thanks also to Gerben Jorna for his implementation of the combine media post processor and for the base implementation of the base64 CSS image postprocessor.
Jawr ant task and maven plugin - Version 1.4 released:
This version contains one new feature and one bug fix.
New feature:
-
For IE6 and IE7 CSS bundles which use the new base64ImageEncoder, the bundle processor generates a placeholder for the web application URL.
Please take a look to the following documentation for more detail.
Fixed issue:
-
Issue #142 fixed: Add support to generate exact path mapping for Jawr bundle processor .
Jawr Grails plugin - Version 3.3.1 released:
We are happy to finally provide to the Grails community the latest Jawr Grails plugin, which is fully compatible with all the new features of the Jawr 3.3.1 version.
We also would like to apologize for the discontinuation of the plugin release.
We are sorry for the inconvenience made to the Grails users, which where not able to use Jawr.
We hope that you will enjoy this new version with all the latest features of Jawr.
The Grails plugin 3.3.1 is available here.
It will be soon available at the grails plugin repository.
New feature:
-
Compatible with Grails version > 1.2.1
-
Fully compatible with Jawr 3.3.1.
Fixed issues:
-
Issue #68 fixed : jawr.config.reload.refreshKey fails on the Grails plugin
-
Issue #130 fixed: In develpment Since Grails 1.2, Jawr can't reference pluing resources
-
Issue #148 fixed: Since grails 1.2, Jawr is not able to generate i18n messages
-
Issue #149 fixed: Since grails 1.2, Jawr is not able to generate i18n messages
The following Jawr sample applications have been updated. You can have a look to them to see how to integrate the latest features :
- basicwebapp
- spring sample
- wicket sample
- grails sample
You can retrieve them from the different modules on the SVN repository : https://svn.java.net/svn/jawr~svn
Important note :
It is important to notice that this version will be the last version which supports Java 1.4.
The next major release will target Java 5.
Thanks to all of you who contributed and provided feedback in the discussion forum.
There still a lot to do. So any contribution is more than welcome.
If you want to be part of the Jawr project, don't hesitate, join us.
- 01rst February 2010: Version 3.2.1 released:
This version contains mainly bug fixes.
New feature:
-
For spring MVC projects, Jawr now allows you to use simultaneously configuration and configLocation properties.
The values found in the configuration file at configLocation will be overrided by the properties defined in configuration.
The configuration property is no more deprecated.
Thanks to sfrancois99 and szeller for their feedbacks.
Please check the documentation on the Spring MVC integration for more detail.
Fixed issues:
-
Issue #81 fixed: jawr.[type].factory.dirmapper.excluded property doesn't work.
-
Issue #113 fixed: In spring MVC, when using only configuration property an exception is thrown.
-
Issue #115 fixed: Css image sprite generation doesn't work for generated CSS resource.
-
Issue #118 fixed: Image Streaming throws exception if the browser closes the stream
-
Issue #123 fixed: Images are not handled property with JawrSpringController.
-
Issue #124 fixed: The property "factory.use.orphans.mapper" is never taken in account. To be compliant with the Jawr properties naming convention,
this property has been renamed to jawr.factory.use.orphans.mapper. Please check descriptor syntax doc for more detail.
-
Issue #125 fixed: In Spring MVC, an exception is thrown when the controller mapping is defined while the Spring servlet mapping is set to "/*".
Thanks to qxo, mahoney266 and Robin Sander for reporting issues.
Jawr ant task and maven plugin - Version 1.3 released:
This version contains only one bug fix.
Fixed issue:
-
Issue #116 fixed: Jawr bundle processing with the maven plugin or ant Task doesn't work with a spring MVC project. Please check the bundle preprocessing documentation for more detail.
Thanks to acklenx for reporting the issue.
- 09th December 2009: Version 3.2 released:
A serious security issue has been found in Jawr when using the property jawr.debug.overrideKey, which allowed a user to access the content of the WEB-INF folder, and any file of your web application
if the user finds the value of the property jawr.debug.overrideKey, which is defined your configuration file.
This issue is fixed in this new version.
We highly recommend you to switch to this new version or at least to remove this property from your configuration file if you want to stay with a previous version.
The recommended way to switch your current session from production to debug, is to use the JMX feature of Jawr. Please check the JMX documentation for more detail.
For those, who have created their own resource generator, we recommend them to look at the security issue section of the generator documentation
New features/ fixed issues:
-
Jawr supports the generation of CSS image sprites. Jawr uses smartsprites for the sprite generation.
Thanks to Stanislaw Osinski, smartsprites creator, for his help on the integration of Jawr with smartsprites.
Please check the tutorial on the image sprite generation with Jawr for more detail.
-
Jawr now provides a new property named dependencies, which allows the user to define the dependencies for a bundle.
Thanks to kgray for the original idea.
Please check the bundle definition document for more detail.
-
Jawr now provides support for Wicket, thanks to a patch submitted by Robert Kopaczewski.
Please check the Wicket integration document for more detail.
-
The generator API has been enhanced. Now you can create image generators, locale aware generators and generators, which support directory mapping.
Please check the advanced generators document for more detail.
-
Jawr provides an new API for global preprocessor. The global preprocessors are executed before the standard resource bundling and post processing.
Please check the global preprocessor document for more detail.
-
Jawr has introduced a new feature to overcome in debug mode the IE limitation, which can only handle 30 stylesheets in one page.
This is particularly usefull for user which have CSS bundles in one page, containing more than 30 stylesheets.
The new property jawr.debug.ie.force.css.bundle has been added for this purpose.
If you set this value to true, in debug mode with an IE browser, Jawr will reference each CSS bundle as a unique CSS resource, instead of referencing all the resources of the bundle.
Please check descriptor syntax doc for more detail.
-
The property jawr.css.image.classpath.use.servlet has been renamed to jawr.css.classpath.handle.image.
So the use of jawr.css.image.classpath.use.servlet in your configuration file is deprecated. Use the property jawr.css.classpath.handle.image instead.
Please check descriptor syntax doc for more detail.
Fixed issues:
-
Issue #98 fixed: Input image tag produces <input type="image" disabled="false"> which disables the button.
-
Issue #105 fixed: css @charset declarations must be filtered out for CSS bundle.
-
Issue #107 fixed: NullPointerException when using JAWR in JSR-168 context.
-
Issue #108 fixed: No check for duplicate rendering of bundles using an alternate production URL.
-
Issue #109 fixed: Unnecessary bundling process for bundle using alternate production URL.
-
Issue #110 fixed: Image content length is set after the response has been sent.
-
Issue #111 fixed: Able to view files under web-inf directory.
-
Issue #112 fixed: jawr.config.reload.interval, jawr.config.reload.refreshKey don't work for Jawr with Spring MVC.
Thanks to rodneyphillips, axelfont, tkaefer and chupa for reporting issues.
- 28th September 2009: Version 3.1.2 released:
This version contains only bug fixes.
Fixed issues:
-
Issue #93 fixed: Localized messages generation only generates default locale when using message generator parameters.
-
Issue #95 fixed: CSS classpath generated resources contain postprocessors data in debug mode.
Thanks to jmundt for reporting localized messages issue.
Jawr ant task and maven plugin - Version 1.1.2 released:
This version contains only one bug fix.
Fixed issue:
-
Issue #96 fixed: Remove entity resolution when using bundle preprocessor.
Thanks to acklenx for reporting the issue.
- 01rst September 2009: Version 3.1.1 released:
This version contains only bug fixes.
Fixed issues:
-
Issue #76 fixed: A Page should render resource bundle only once.
-
Issue #89 fixed: Multiple invocations of a custom generator.
-
Issue #90 fixed: RendererRequestUtils.setRequestDebuggable(...) creates http sessions.
-
Issue #91 fixed: Src of img tag does not support relative path and is incorrect when the requested page is not in the web application root directory.
-
Issue #92 fixed: Jawr trips over Javascript multiline string literals
We would like to thank qxo, jmundt, reardonm, cpo, kape and axelfont for reporting issues and providing patches when possible.
- 10th August 2009: Version 3.1 released:
This version contains mainly bug fixes.
New features/ fixed issues:
-
A new tag have been added to the tag library to generate the URL to an image which is handled by Jawr. Look for the image tags at the tag library doc for extra info.
-
Issue #74 fixed: NoSuchElementException when bundle has no file. The issue occured when a bundle was defined with no mapping.
-
Issue #75 fixed: NullPointerException when using JawrImgServlet and image does not exist.
-
Issue #79 fixed: NullPointerException while requesting a CSS in debug mode if no Jawr image servlet was defined.
-
Issue #88 fixed: Incorrect logging of "The jawr bundle mapping 'jawr-img-mapping.properties' is not found"
We would like to thank sfrancois99, qxo and nordicdevil for reporting issues and providing patches when possible.
- 03rd August 2009: Version 3.0 released:
New features/ fixed issues:
-
Jawr is now able to handle images. This means that all images managed by Jawr will be cached in the browser as the other Javascript and CSS resources.
By default all CSS images will be handled by Jawr if the Jawr image servlet is defined.
Look for the Jawr image handling section in the servlet docs and at jawr.image.resources in the descriptor syntax docs for extra info.
Two new tags have been added to the tag library to handle these images. Look for the image tags at the tag library doc for extra info.
-
Jawr supports now JMX, which means that you will be able to modify at runtime the behaviour of Jawr using a JMX console.
For example, you will be able to pass from production mode to debug mode an entire application or only one session at runtime.
Look at the JMX support doc for extra info.
-
A new "bundle preprocessing" feature has been added in Jawr. This feature is also known as "build time bundle processing".
This feature allows the user to skip the bundling process at server start-up, and use instead the data of preprocessed bundles.
Look at the bundle preprocessing documentation for extra info.
This feature is a new one, it can certainly be improved. So please don't hesitate to give your feedback on the Discussion Forum, on this feature and on Jawr in general.
-
We have also created a maven plugin and an Ant task to integrate the new bundle preprocessing feature in the project build phase.
Look at the Jawr Ant task docs and the Jawr maven plugin docs for extra info.
Thanks to Andreas Andreou for the original idea of the maven plugin.
-
We have also decided to provide a better support to usage of CDN in Jawr.
The new property jawr.url.contextpath.ssl.override allows you to define what the CDN URL to use for HTTPS requests is.
In debug mode, it is now possible to reference the debug resource files deployed on the CDN. To enable this feature, you will have to set to true, the property
jawr.url.contextpath.override.used.in.debug.mode.
Look for these properties in the descriptor syntax docs for extra info.
-
The property jawr.css.imagepath.override which defined the override path for CSS images has been removed.
Now for CSS images, Jawr generates URLs which are relative to the CSS bundle even if the resource is deployed on a CDN.
Look at the jawr.css.imagepath.override section at the bundle preprocessing doc for extra info.
-
For a better support of CDN, Jawr provides resources which can be integrated more easily in CDN. These files are generated using the bundle preprocessing feature.
It even provides a rewrite configuration file for Apache server.
Look at the CDN support section at the bundle preprocessing doc for extra info.
-
Jawr is now able to discover automatically the locales available for message resources.
So the use of the bundle property jawr.js.bundle.[name].locales is no more necessary.
Look for jawr.js.bundle.[name].locales at descriptor syntax doc for extra info.
-
Issue #69 fixed: CSS from jar file fails when using jawr.debug.overrideKey in production, is now fixed.
-
Issue #66 fixed: Add support for @import keyword in CSS is now fixed. You can use the new cssimport post processor to resolve the CSS import. Please take a look at the section CSS Import resolver at postprocessors documentation for more info.
-
Issue #72 fixed: Avoid skipping repeated members of bundles in debug mode which is fixed now.
Before when the same resources was referenced twice in debug mode, the second one was skipped.
-
Issue #73 fixed: java.lang.IndexOutOfBoundsException in CSSMinifier is fixed now.
The issue occured when the CSS file contains a '$' character in a non commented section.
- 31 May 2009: Version 2.8 released:
New features/ fixed issues:
-
While until now it has been possible to load CSS from the classpath, images referenced in them would not be resolved. Now the
Jawr servlet can be used to serve images from the classpath as well, thus enabling fully the ability to serve styles and related
images from jar files. Look for jawr.css.image.classpath.use.servlet at the
servlet docs for extra info.
-
The classpath resource generator now allows to use the jar: prefix to map css (it used to be jar_css: for
css, now the syntax is the same for both js and css files).
-
It is possible to request debug debug mode for a page in production mode. The purpose is to be able to have a javascript
debugging session in a deployed application. The bundle members will be requested separately as if Jawr were in debug mode
easing debug operations without having to redeploy. This is done by adding a special request parameter which is defined in
configuration. Look for jawr.debug.overrideKey at the
debug and production modes documentation for extra info.
-
A new way to force a refresh of all bundles has been added. A secret parameter name is defined in configuration using the key
jawr.config.reload.refreshKey, and whenever a request that matches the Jawr servlet includes it, the configuration
wil be reloaded. Look for jawr.config.reload.refreshKey at the
servlet docs for extra info.
-
Orphans search and auto bundle generation can now be disabled for convenience using a new configuration parameter named
factory.use.orphans.mapper. It is on by default but when set to false orphans will no longer be searched for.
-
Bundles can now be defined with an alternate static URL to use in production mode. This is useful for instance to use publicly
served libraries (e.g. the YUI framework) while still using locally served files in development mode. Details can be found at
at the bundle definition documentation, check out the productionURL param.
-
Issue #60 fixed: Per-file custom postprocessor were not being added to the postprocessing chain. Thanks
to user ebottard for providing a patch to solve the issue.
-
Issue #61 fixed: The URL path rewriting postprocessor for CSS files was corrupting data: scheme image URLs which
is now fixed. Thanks to user Tim Kingman for providing a patch to solve the issue.
-
Issue #63 fixed: The 'jawr.custom.postprocessors.names' property is no longer required. Instead, Jawr will
detect all 'jawr.custom.postprocessors.[name_of_the_postprocessor].class' declarations to define postprocessors.
-
Issue #65 fixed: There was a file leak when using the jawr.config.reload.interval parameter because of a
non closed FileInputStream. Fixed.
-
Issue #67 fixed: It was not possible to use more than one custom postprocessor per chain due to a bug which
is now fixed.
This release includes features and fixes by a new commiter, Ibrahim Chaehoi, who had already submitted patches
for previous releases and decided to join the project. And indeed he has taken it seriously since most of the changes for this version
are his work. Cheers to our new member!
- 13th February 2009: Version 2.7 released:
New features/ fixed issues:
-
EL expressions in tag libraries are now supported on older servlet containers, thanks to a patch
submitted by Ibrahim Chaehoi.
-
The jawr.*.bundle.names property is now deprecated, also thanks to a patch submitted by Ibrahim Chaehoi.
You may remove all jawr.js.bundle.names and jawr.css.bundle.names from your descriptors.
You can still use them if you feel more comfortable that way.
-
Jawr now supports jawr.url.contextpath.override that begin with: //. This is a protocol relative url
structure. It's handy when you are sharing your css and/or js with different domains and protocols.
So these // urls will work relative to http and https.
-
Added jawr.css.imagepath.override property to allow for css url replacement that supports absolute URLs or
really anything you would like prepended to the URL. This is usefull if you are sharing your css
across multiple domains and use background images.
-
Classloading has been improved to better support the 18n messages generator, which failed to load
properties files under certain conditions.
-
Fixed issue 49 (with no jawr.csslinks.flavor setting, style tags are ended with 'null')
-
Fixed issue 56 (incorrect path management in Spring MVC controller )
This release includes code from our new commiter, Matt Ruby. Welcome aboard!. Also, as noted
above, Ibrahim Chaehoi submitted a couple of high quality patches that were included in the
release. Thanks a lot Ibrahim!
- 23rd November 2008: Version 2.6 released:
New features/ fixed issues:
- Spring MVC support added. Jawr now provides a Spring MVC Controller so it can now be fully configured
through Spring's configuration mechanism. See the manual page for details.
- The way LINK tags are rendered can now be configured. Specifically, depending on the content type you choose for your
pages, you may need the link tags to be closed differently, or even not closed at all. By default, tags will be closed as
usual (i.e. with '/>'). But adding a new parameter to the properties configuration will make this behavior change.
Check the taglib documentation and look for 'jawr.csslinks.flavor' for details.
- A new generator has been added. Now CSS resources can be retrieved from the classpath by using the
jar_css prefix.
- [Issue #46] The jawr[css|js].bundle.names property is now augmentable when using ConfigPropertiesAugmenter,
as it should have from the start.
- [Unregistered Issue] Jawr does not close the outputstream nor the output writers handed by the servlet container, since
that's an illegal operation, as was pointed out by user Lance.


public PermissionCollection getPermissions (java.security.ProtectionDomain pd)and ProtectionDomain has a constructor:
public ProtectionDomain (CodeSource cs, PermissionCollection permissions, ClassLoader loader, Principal[] principals)These two APIs provide callers the means to query the Policy for Principal-based Permission entries.
@Deprecated public abstract class Policy extends Object
This is an abstract class for representing the system policy for
Subject-based authorization. A subclass implementation
of this class provides a means to specify a Subject-based
access control Policy
.
A Policy
object can be queried for the set of
Permissions granted to code running as a
Principal
in the following manner:
policy = Policy.getPolicy(); PermissionCollection perms = policy.getPermissions(subject, codeSource);The
Policy
object consults the local policy and returns
and appropriate Permissions
object with the
Permissions granted to the Principals associated with the
provided subject, and granted to the code specified
by the provided codeSource.
A Policy
contains the following information.
Note that this example only represents the syntax for the default
Policy
implementation. Subclass implementations of this class
may implement alternative syntaxes and may retrieve the
Policy
from any source such as files, databases,
or servers.
Each entry in the Policy
is represented as
a grant entry. Each grant entry
specifies a codebase, code signers, and Principals triplet,
as well as the Permissions granted to that triplet.
grant CodeBase ["URL"], Signedby ["signers"], Principal [Principal_Class] "Principal_Name" { Permission Permission_Class ["Target_Name"] [, "Permission_Actions"] [, signedBy "SignerName"]; };The CodeBase and Signedby components of the triplet name/value pairs are optional. If they are not present, then any any codebase will match, and any signer (including unsigned code) will match. For Example,
grant CodeBase "foo.com", Signedby "foo", Principal com.sun.security.auth.SolarisPrincipal "duke" { permission java.io.FilePermission "/home/duke", "read, write"; };This grant entry specifies that code from "foo.com", signed by "foo', and running as a
SolarisPrincipal
with the
name, duke, has one Permission
. This Permission
permits the executing code to read and write files in the directory,
"/home/duke".
To "run" as a particular Principal
,
code invokes the Subject.doAs(subject, ...)
method.
After invoking that method, the code runs as all the Principals
associated with the specified Subject
.
Note that this Policy
(and the Permissions
granted in this Policy
) only become effective
after the call to Subject.doAs
has occurred.
Multiple Principals may be listed within one grant entry.
All the Principals in the grant entry must be associated with
the Subject
provided to Subject.doAs
for that Subject
to be granted the specified Permissions.
grant Principal com.sun.security.auth.SolarisPrincipal "duke", Principal com.sun.security.auth.SolarisNumericUserPrincipal "0" { permission java.io.FilePermission "/home/duke", "read, write"; permission java.net.SocketPermission "duke.com", "connect"; };This entry grants any code running as both "duke" and "0" permission to read and write files in duke's home directory, as well as permission to make socket connections to "duke.com".
Note that non Principal-based grant entries are not permitted
in this Policy
. Therefore, grant entries such as:
grant CodeBase "foo.com", Signedby "foo" { permission java.io.FilePermission "/tmp/scratch", "read, write"; };are rejected. Such permission must be listed in the
java.security.Policy
.
The default Policy
implementation can be changed by
setting the value of the auth.policy.provider
security property to
the fully qualified name of the desired Policy
implementation class.
security properties
| Modifier | Constructor and Description |
|---|---|
protected |
Policy()
Deprecated.
Sole constructor.
|
| Modifier and Type | Method and Description |
|---|---|
abstract PermissionCollection |
getPermissions(Subject subject,
CodeSource cs)
Deprecated.
Retrieve the Permissions granted to the Principals associated with
the specified
CodeSource . |
static Policy |
getPolicy()
Deprecated.
Returns the installed Policy object.
|
abstract void |
refresh()
Deprecated.
Refresh and reload the Policy.
|
static void |
setPolicy(Policy policy)
Deprecated.
Sets the system-wide Policy object.
|
protected Policy()
public static Policy getPolicy()
SecurityManager.checkPermission
with the
AuthPermission("getPolicy")
permission
to ensure the caller has permission to get the Policy object.
null
.SecurityException
- if the current thread does not
have permission to get the Policy object.setPolicy(javax.security.auth.Policy)
public static void setPolicy(Policy policy)
SecurityManager.checkPermission
with the
AuthPermission("setPolicy")
permission to ensure the caller has permission to set the Policy.
policy
- the new system Policy object.SecurityException
- if the current thread does not
have permission to set the Policy.getPolicy()
public abstract PermissionCollection getPermissions(Subject subject, CodeSource cs)
CodeSource
.
subject
- the Subject
whose associated Principals,
in conjunction with the provided
CodeSource
, determines the Permissions
returned by this method. This parameter
may be null
. cs
- the code specified by its CodeSource
that determines, in conjunction with the provided
Subject
, the Permissions
returned by this method. This parameter may be
null
.Subject
and code specified in
the provided subject and cs
parameters.public abstract void refresh()
This method causes this object to refresh/reload its current
Policy. This is implementation-dependent.
For example, if the Policy object is stored in
a file, calling refresh
will cause the file to be re-read.
SecurityException
- if the caller does not have permission
to refresh the Policy. Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2015, Oracle and/or its affiliates. All rights reserved.


| 1 | package fr.sii.ogham.core.service; | |
| 2 | ||
| 3 | import static fr.sii.ogham.core.util.LogUtils.logString; | |
| 4 | ||
| 5 | import java.util.Arrays; | |
| 6 | import java.util.List; | |
| 7 | ||
| 8 | import org.slf4j.Logger; | |
| 9 | import org.slf4j.LoggerFactory; | |
| 10 | ||
| 11 | import fr.sii.ogham.core.exception.MessageNotSentException; | |
| 12 | import fr.sii.ogham.core.exception.MessagingException; | |
| 13 | import fr.sii.ogham.core.message.Message; | |
| 14 | import fr.sii.ogham.core.sender.ConditionalSender; | |
| 15 | ||
| 16 | /** | |
| 17 | * Implementation that will ask each sender if it is able to handle the message. | |
| 18 | * If the sender can, then the service asks the sender to really send the | |
| 19 | * message. | |
| 20 | * | |
| 21 | * If several senders can handle the message, then each sender that is able to | |
| 22 | * handle it will be used. | |
| 23 | * | |
| 24 | * @author Aurélien Baudet | |
| 25 | * @see ConditionalSender | |
| 26 | */ | |
| 27 | public class EverySupportingMessagingService implements MessagingService { | |
| 28 | private static final Logger LOG = LoggerFactory.getLogger(EverySupportingMessagingService.class); | |
| 29 | ||
| 30 | /** | |
| 31 | * The list of senders used to handle messages | |
| 32 | */ | |
| 33 | private List<ConditionalSender> senders; | |
| 34 | ||
| 35 | /** | |
| 36 | * Initialize the service with none, one or several sender implementations. | |
| 37 | * The registration order has no consequence. | |
| 38 | * | |
| 39 | * @param senders | |
| 40 | * the senders to register | |
| 41 | */ | |
| 42 | public EverySupportingMessagingService(ConditionalSender... senders) { | |
| 43 | this(Arrays.asList(senders)); | |
| 44 | } | |
| 45 | ||
| 46 | /** | |
| 47 | * Initialize the service with the provided sender implementations. The | |
| 48 | * registration order has no consequence. | |
| 49 | * | |
| 50 | * @param senders | |
| 51 | * the senders to register | |
| 52 | */ | |
| 53 | public EverySupportingMessagingService(List<ConditionalSender> senders) { | |
| 54 | super(); | |
| 55 | this.senders = senders; | |
| 56 | } | |
| 57 | ||
| 58 | /** | |
| 59 | * Sends the message. The message can be anything with any content and that | |
| 60 | * must be delivered to something or someone. | |
| 61 | * | |
| 62 | * Ask each sender if it is able to handle the message. Each sender that | |
| 63 | * can't handle the message is skipped. Each sender that is able to handle | |
| 64 | * it will be called in order to really send the message. | |
| 65 | * | |
| 66 | * @param message | |
| 67 | * the message to send | |
| 68 | * @throws MessagingException | |
| 69 | * when the message couldn't be sent | |
| 70 | * @throws MessageNotSentException | |
| 71 | * when no sender could handle the message | |
| 72 | */ | |
| 73 | @Override | |
| 74 | public void send(Message message) throws MessagingException { | |
| 75 | LOG.info("Sending message..."); | |
| 76 | LOG.trace("{}", message); | |
| 77 | LOG.debug("Find senders that is able to send the message {}", logString(message)); | |
| 78 | boolean sent = false; | |
| 79 | for (ConditionalSender sender : senders) { | |
| 80 |
1
1. send : negated conditional → RUN_ERROR |
if (sender.supports(message)) { |
| 81 | LOG.debug("Sending message {} using sender {}...", logString(message), sender); | |
| 82 |
1
1. send : removed call to fr/sii/ogham/core/sender/ConditionalSender::send → RUN_ERROR |
sender.send(message); |
| 83 | LOG.debug("Message {} sent using sender {}", logString(message), sender); | |
| 84 | sent = true; | |
| 85 | } else { | |
| 86 | LOG.debug("Sender {} can't handle the message {}", sender, logString(message)); | |
| 87 | } | |
| 88 | } | |
| 89 |
1
1. send : negated conditional → RUN_ERROR |
if(sent) { |
| 90 | LOG.info("Message sent"); | |
| 91 | LOG.trace("{}", message); | |
| 92 | } else { | |
| 93 | throw new MessageNotSentException("No sender available to send the message", message); | |
| 94 | } | |
| 95 | } | |
| 96 | ||
| 97 | /** | |
| 98 | * Register a new sender. The sender is added at the end. | |
| 99 | * | |
| 100 | * @param sender | |
| 101 | * the sender to register | |
| 102 | * @return this instance for fluent chaining | |
| 103 | */ | |
| 104 | public EverySupportingMessagingService addSender(ConditionalSender sender) { | |
| 105 | senders.add(sender); | |
| 106 |
1
1. addSender : replaced return value with null for fr/sii/ogham/core/service/EverySupportingMessagingService::addSender → NO_COVERAGE |
return this; |
| 107 | } | |
| 108 | } | |
Mutations | ||
| 80 |
1.1 |
|
| 82 |
1.1 |
|
| 89 |
1.1 |
|
| 106 |
1.1 |


Lets start by checking the server's status using ajax!
Click the following button to check the status:
Status: Unknown
This time, the ajax will initiate commands on the server side, and wait for the response. When response arrives, it will request the server status (without the users input, aka automatically) and update the text.
What do I mean when I say live updates?
With live updates, the client constantly pings the server for an update. In order to save bandwidth, the content of the message will be minimal when the communication is only status-based (no new information, just some update requests which are denied cause there is nothing new).
Why do we ask for periodic updates: Client to Server, and then get the update from Server to Client, instead of just waiting for a message from the server?
It is due to how the http protocol works. The client doesn't keep the connection with the server after the page finished loading. It disconnects when done, and the server can't initiate a new connection with the client, because of how HTTP protocol is designed, and because of NAT limitations and generaly bad practice by allowing such a thing.
So, what exactly is going to be demonstrated?
Step 3 will show the live status of how many clients are connected to the server, and when was their last KeepAlive signal
Here:


Think. Code. Then think again
writings about the things I do, new findings, casual rants and cool tricks


a downshift powered dropdown library for react vr
Extends Component
Type: object
bassdrop's prop getters are exposed as a parameter to the render prop. For further documentation on downshift, see https://github.com/paypal/downshift.
Type: object
(function)
: prop getter - Sets the root props for the root container and sets suppressRefError=true.
(function)
: prop getter - returns the props to be applied to the VrButton that toggles bassdrop open.
(boolean)
: state - whether or not the selected item is highlighted.
(string)
: state - either the selected value, the highlighted value, or the placeholder prop value.


Quavo Thinks Falcons Should Hire Kaepernick: Get Matt Ryan Outta There
by VladTVTMZ Sports recently caught up with Migos rapper Quavo to ask his thoughts on the Atlanta Falcons having a 3-7 record so far this season, and he offered up some advice on fixing the situation. Quavo stated, "We need to get Matt Ryan out of there! I love Colin [Kaepernick]. He should be on a team...The Atlanta Falcons."
This comes after Kaepernick's highly publicized NFL workout over the weekend in Atlanta. Despite being held in the Falcons' city, no one from the team attended the workout, which was switched from the Falcons' training facility to a local high school. Per ESPN's Adam Schefter, the teams who attended were the Chiefs, Jets, Eagles, Titans, Bills, 49ers, Redskins, and Lions.


Package org.drip.capital.allocation
Economic Risk Capital Entity Allocation
- Author:
- Lakshmi Krishnamurthy
-
Class Summary Class Description CorrelationCategoryBeta CorrelationCategoryBeta exposes the Correlation Category Beta Loading and its Elasticity (FIXED/FLOAT).CorrelationCategoryBetaManager CorrelationCategoryBetaManager holds the Beta Loading Map Scheme for the different Correlation Categories.EntityCapital EntityCapital holds the Capital for each Entity.EntityCapitalAssignmentSetting EntityCapitalAssignmentSetting holds the Correlation Elasticities for the different Capital Components as well as the Entity's Correlation Category.EntityComponentAssignmentScheme EntityComponentAssignmentScheme holds the Indicators for the BETA and the PRO RATA Capital Allocation Schemes.EntityComponentCapital EntityComponentCapital holds the Component Capital for each Entity.EntityComponentCapitalAssignment EntityComponentCapitalAssignment contains the Capital Assignment for each Entity and its Component.EntityComponentCorrelationCategory EntityComponentCorrelationCategory holds the Indicators of different Correlation Categories used under the BETA Capital Allocation Scheme.EntityComponentElasticityAttribution EntityComponentElasticityAttribution holds the Attributions of a single Individual Entity Component into Fixed, Float, and Pro-rata Elasticities.EntityComponentProRataCategory EntityComponentProRataCategory holds the Indicators of different Pro-Rata Categories used under the PRO-RATA Capital Allocation Scheme.EntityElasticityAttribution EntityElasticityAttribution holds the Attributions across all Entity Components into Fixed, Float, and Pro-rata Elasticities.


Git step. It performs a clone from the specified repository.
Note that this step is shorthand for the generic SCM step:
checkout([$class: 'GitSCM', branches: [[name: '*/master']], userRemoteConfigs: [[url: 'http://git-server/user/repository.git']]])The
checkout
step is the preferred step for SCM checkout.
The checkout
step provides significantly more functionality and can be used in many cases where the git
step cannot be used.
For example, the git
step does not support:


Select date for the event
Event type and name
Event image (optional)
File Drag/Drop is not supported for this browser
{{imageUploadError}}
Event description
Author(s)
Enter the available roles in the event
{{sqmUploadError}}
No event image
Event date
Event type
Event name
Event author(s)
Amount of groups
Amount of slots
{{eventDate}} - {{eventTime}}
{{event.eventType}}
{{event.name}}
{{event.createdBy || 'System'}}
{{getTotalGroupAmount() || 0}}
{{getTotalSlotAmount() || 0}}
Event description:
{{event.description}}
{{error}}


Introduction
glasses.png
I worked directly with the doctors, opticians, and sales in order to create marketing materials, flyers, e-mail blasts, and advertising campaigns in order to promote designer brands such as IC Berlin, Rayban, and Tiffany & Co.
Role
Web Design / Digital Marketing Associate / Graphic Designer
The Challenge
"While working at an optometric small business, the website needed content updates and a visual overhaul. I wanted to improve user experience, improve digital marketing, and attract potential new patients."
RESEARCH
I interviewed patients and asked them about their eye appointment, and what could be done better to make a better patient experience. The discussions that I had suggested that patients would like to be more connected digitally online to schedule and remind them of their annual eye appointments for an overall smoother process. I was able to develop a user persona for the ideal individual who would be using Golden Vision Optometry website. The user needs that I’ve gathered are listed below:
Text/e-mail reminders for annual recall and upcoming appointments
Online appointment scheduling and availability
Easier navigation on website
SITE AUDIT
The main user flows (online appointment scheduling + contacts reordering) were hard to navigate and not intuitive.
Information architecture can be improved and navigation items can be put in collapsible menus and subcategories.
Medical informational content with doctors and staff profiles needed to be updated.
The website visually needed to be brought up to trends and standards.
The business website was not SEO optimized with metatags and descriptions.
Mobile viewing and responsive page viewing was non-existent.
REDESIGN GOALS
Usability
Improving the website for mobile and desktop will allow users to find office and medical information more efficiently.
Business
Call to actions for booking appointments will increase, as well as professionalism on the front page.
Branding
Clean and modern visuals branding will attract new patients and make the website more appealing.
Persona
Jennifer Liu.png
Information Architecture
Site Map GVO.png
Style Guide
Style GuideArtboard 1.jpg
User Feedback / Iterations
screencapture-goldenvisionoptometry-2018-11-11-18_42_58.png
In the first iteration, my design thinking was to create strong visual call to actions with the six block display, allowing the patient to reach necessary information about the practice as they scroll down the page. Each section banner of the front page and individual page uses parallax display in order to emulate a one page flow while scrolling through the page, thus bringing attention to important items and easier readability.
I applied heatmapping concepts using Hotjar to find the placement of the main CTA (request an appointment). Through my observations, I found out that many users preferred the left and center of the screen while scanning the screen as opposed to the right side of the screen.
Some difficulties that I encountered during this project was media queries. I had to make the text and images responsive across different screen sizes and mediums, but this was later solved after users informed me.
The blog carousel at the bottom the page had strong activity, and allows the patients to read fun information about the practice, as well as increase SEO visibility by creating new and informative content.
Analysis
This project gave me an opportunity to briefly demonstrate my visual design and branding skills for a small business website. By working directly with patients and doctors, I was able to formulate ideas for user needs and the corresponding user experience solutions. I was able to design and create a website that was visually modern UI using grids, information cards and drop down navigation, thus allowing patients to increase readability for important medical information and increase accessibility to schedule appointments online. In future redesigns, I would improve on my front end development skills and design different types of layouts. Here is a summary of the results achieved:
Developed a social media content plan for optometry and eye care health information.
SEO on Google is ranked consistently on the front page results with an avg. position 20.91.
Instagram / Facebook media growth in followers and social media events.
Google Analytics reported growth in almost 29% activity in the past month.
Online appointment system scheduling implemented improved office efficiency and bookings.
Impression rate of ~3,400 with over 500 unique visitors and a click rate of 2.09% in the month of Sept.


Register status
| Register | Status | Managed by | |
CountryBritish English-language names and descriptive terms for countries |
Beta | View Register View History | |
TerritoryBritish English-language names and descriptive terms for political, administrative and geographical entities that aren’t recognised as countries by the UK |
Beta | View Register View History | |
Local authority engLocal Authorities in England |
Beta | View Register View History | |
Local authority typeTypes of local government organisations in the United Kingdom |
Discovery | View Register View History |


Me, Myself & Irene * * * (out of * * * * )
Directed by Bobby Farrelly, Peter Farrelly. Cast: Jim Carrey, Renee Zellweger, Chris Cooper, Robert Forster, Anthony Anderson, Mongo Brownlee, Jerod Mixon, Michael Bowman, Traylor Howard, Richard Jenkins, Rob Moran. 2000 - 115 minutes Rated R (for violence, profanity, brief nudity, and sexual innuendo). Reviewed by Dustin Putman, July 22, 2000.
Writer-directors Bobby and Peter Farrelly have made a career out of increasingly upping the ante in their big-screen comedy ventures, going for broke with bawdy, salacious humor in order to do one thing, and one thing only: make the audience laugh. Where the Farrelly brothers have also excelled, however, is in their continuous creation of quirky stories and likable characters that they place the outrageousness around, so as to ground the films in at least a modicum of reality. Beginning with their first and, coincidentally, best and funniest picture to date, 1994's "Dumb and Dumber," and followed by 1996's "Kingpin" (their weakest film, but still ambitiously enjoyable) and 1998's funny and raucous, if overrated, smash hit, "There's Something About Mary," their latest endeavor is the utterly satisfying, charming, and predictably rib-tickling "Me, Myself & Irene."
Headlining the fine cast in his first return to a purely comic performance since 1997's "Liar, Liar," Jim Carrey stars as Charlie, a sweet-natured, yet meek and seemingly inconsequential, Rhode Island State Trooper whose marriage to an intelligent blonde (Traylor Howard) ended fifteen years ago when she struck up an unlikely romance with an African American midget limo driver and fellow MENSA member. Charlie is left to take care of his three sons whom he was left with, and who turn out to "have year-round sunburns," but he loves them unconditionally and trudges on with his life.
Switch forward to the present, one day, triggered by yet another case of citizens not taking his profession and authority seriously because of his understated personality, Charlie snaps and temporarily becomes Hank, his crude, despicable alter ego who is able to do the sorts of things Charlie would never do. Diagnosed with Multiple Personality Disorder, Charlie is assigned to escort the beautiful Irene Waters (Renee Zellweger) back to her home state of New York following a wrongful arrest for fraud, granted that he take the medication for his now-fragile condition. Soon, Charlie and Irene are on the lam after they learn they are being stalked by two cops (Chris Cooper, Richard Jenkins) who have been hired by Irene's crooked boyfriend to do away with her. To make matters worse, Charlie loses his medication and, without any control over it, frequently becomes the up-to-no-good Hank, who cares about very little but getting into Irene's pants.
If the plot of "Me, Myself & Irene" sounds slightly unfocused and more than a little implausible, that is okay because what Bobby and Peter Farrelly enjoy doing is creating a basic premise in which to design a line of crass jokes and unrestrained humor that is snappy and funny enough to withhold a two-hour movie. While not as purely comic as, say, "Dumb and Dumber" or "Kingpin," "Me, Myself & Irene" pays close attention to its eccentric three-way relationship between Charlie, Hank, and Irene, and amidst the raucous laughs unearths a genuinely sweet romance.
After two years of focusing on more dramatic work that has rightfully proven his wide acting chops (1998's "The Truman Show," 1999's "Man on the Moon"), Jim Carrey is in top comedic form as the lovable Charlie, as well as the unruly Hank. Acclaimed for his extreme range of facial expressions, Carrey garners many laughs simply from his transformations from himself to his alter ego. Best of all, Carrey is the type of performer who cherishes the audience, and wants nothing more than to entertain everyone; therefore, when even the slightest comic opportunity arises, Carrey runs with it.
A standout in 1996's "Jerry Maguire," followed by an unfortunate appearance in 1999's flat, unconvincing "The Bachelor," Renee Zellweger is her usual winning self as the title character of Irene. Carrey may be the bigger personality of the two, but their quick interplay is the source of what makes "Me, Myself & Irene" work so well, and Zellweger does excellent work as she reacts to Charlie's sweetness and Hank's lewd ways, as well as forms the center for the romance that ultimately forms between Charlie and herself.

A road movie at heart, the film takes up the majority of its running time following Charlie/Hank and Irene traveling and hiding out from the cops, and it is this section that is the most thoroughly satisfying. Only the overly violent climax that is reminiscent of Carrey's self-fighting scene in "Liar, Liar" loses its humorous footing, but promptly recoups in time for the charismatic finale.
With a soundtrack complete with rerecordings of several Steely Dan classics (including my personal favorite, "Do It Again," which plays over the end credits), and a purposefully cheesy occasional narration in the vein of a Disney nature documentary from the 1950s, "Me, Myself & Irene" is one of the more enjoyable and lively motion pictures to come along this summer, and demonstrates how a successful comedy should be carried out.
- Copyright 2000 by Dustin Putman Http://www.young-hollywood.com Http://www.atnzone.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Getting started with QA part 2
One of the things with getting started with qa is basically the fallacy of most QA articles out there.
QA as a field when comparing it to software development as a whole is an additive process, which helps aid in the develop cycle. However, I believe that adding the QA process as a formal process AFTER the development cycle is complete only hinders both the development cycle and the learning experience of a junior developer.
The thing that I have found as a junior web developer as well as my short time as a QA, is that having the mindset of a QA actually HELPS me as a developer.
“Why” you ask?
The first thing to keep in mind is that as a QA, my job was to address not only the clients issues with respect to a piece of software… but to accurately and effectively communicate the problems to the software development team.
Effective Communication is by far THE MOST underrated skill that a developer can gain within their career.
If you are a QA and can use the same language and process of breaking down a problem/bug into it’s constituent parts, YOU are increasing the effectiveness of the team at solving problems.
Not only does communicating well with your team help them in solving the problem, but having the language to actively find out WHERE the problem lies within the debugging tools saves an incredible amount of time for YOUR team to waste as minimal amount of time searching for the problem.
The biggest problem with bugtracking is reproducing the EXACT conditions of the bugs existance.
That might sound like a big pile of BS, but hear me out.
If a user/tester does NOT effectively communicate ALL ESSENTIAL aspects of their testing environment, the amount of time WASTED increases exponentially with every piece of information that was omitted.
Example: Web Development.
- What Browser is the tester using (and limiting to Brand does not help) - As a QA, I want to know EVERYTHING! - the OS, the Version, what Time this was run, what PAGE… Even What BRAND of PC.
- What did you DO to get to that bug?
- Testers should focus ONLY on the ONE ISSUE. I can’t count the number of times where testers will just whine about how “everything is broken”… Look, I don’t get paid to listen to your complaints, I ONLY get paid to find out the bugs and convey that to my team. I don’t want to hear about anything about the bad day you’re having, that’s just not being professional.
Anyways - Rant Over
Here’s a free quick tools you should use when you are doing some QA.
MAC OS X Tools
- QuickTime Movie for Video Screen Capture
- CMD + SHIFT + 4 (to save screen as picture which is usually saved onto your desktop)
Windows Tools
- CamStudio (Video Capture, Pretty decent for Open Source)
- FRAPS (Save Screen without using PrntScreen and Paint)
Takeaway Points:
- Be very explicit in your description/outline of the problem. It helps if you provide a video to SHOW devs how the event occurred, and it helps capturing small bugs that you didn’t notice the first time round.
- Be patient with your testers, they generally won’t know how to express the problem, so if you can train them before hand, that’d be an ideal situation… Otherwise, try to train them during the testing process.
- Be bold in trying to ‘BREAK’ the application as hard as humanly possible.  You never know what sort of unexpected behaviour you might produce unless you’re bold enough to WANT to break the app.
Anyways - Speak soon D


A friend of mine who regularly uses meth to excess on one occasion was offered to get real ice from a dealer.. It cost 500 dollars an eight ball and the friend offered me some when she got it. My experience was an immediate very intense euphoria. At first it seemed like perfect meth (it was obviously not though), it also left no residue in the pipe, which in the meth world is a very good sign. Then I started craving more really bad and of course could not afford to buy my own so could not get any but what started to happen was I started hallucinating crystals of ice everywhere, for days afterwards.
They looked so real that I was trying to actually pick them up. I ended up smoking insanely out of an empty pipe and picking up every crystal I could find and ended up smoking a whole lot of bread crumbs.. About two years later I found a small crystal that had been left over and although I did not get high I was intensely reminded of the intensity and euphoria of the stuff. I am against drug prohibition it is a failure but it is probably lucky the stuff is hard to get. I detest drug abuse but unfortunately some good medicines are illegal because of lies and misconceptions.
It is possible that my reaction to this drug was unique, but if a few hits did this to me I cannot imagine what regular use would do. It was a stimulant but calling it a smart drug is really a stretch. Physiologically it was a very intense stimulant. It did not remind me of MDMA at all. But then my reaction to that was not impressive at all.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


WITNESS LIST
Appropriations Committee
February 14, 2011 - 7:00 AM
(Subcommittee on Articles I, IV,& V)
House Budget Recommendations
For:
Broberg, Steven (Self)
Fenlaw, Mark (Texas Emergency Services Retirement System)
Frost, III, Tom (Self)
Phillips, Kim (Self)
Ray, Jim (Preservation Texas, Inc.)
Russell, Cobie (TX Commission on the Arts)
Teel, David (Texas Travel Industry Association)
Against:
Allison, Jim (County Judges and Commissioners Association of Texas)
Chimene, Grace (Self)
Hagee, Michael (National Museum of the Pacific War)
Little, Morgan (Texas Coalition of Vets Orgs)
Meraz, Gloria (Texas Library Assoc.)
Powers, Marilyn (Self)
Rinn, Martha (Self; Council of Research and Academic Libraries)
Ryan, Richard (Texas Downtown Association)
Todaro, Julie (Self)
On:
Ashley, Natalia (TX Ethics Commission)
Berkowitz, Peter (Self)
Bow, Jonathan (State Office of Risk Management)
Bradley, Harry (Texas State Cemetery)
Burns, Dwight (Texas Public Finance Authority)
Colley, Terry (Texas Historical Commission)
Combs, Susan (Texas Comptroller of Public Accounts)
Durso, Susan (Texas Public Finance Authority)
Gibbs, Gary (TX Commission on the Arts)
Gimson, William (Cancer Prevention and Research Institute of Texas)
Hanson, Christopher (Pension Review Board)
Herndon, Dealey (State Preservation Board)
Keel, Terry (Texas Facilities Commission)
Kline, Robert (Bond Review Board)
Korn, Stanton (Texas Facilities Commission)
Lacy, Michael (TX Facilities Commission)
Latsha, Rob (Bond Review Board)
Lopez, Mary (TX Commission on the Arts)
Mallett, Paul (Commission on State Emergency Communications)
Mansour, James (Cancer Prevention and Research Inst. of TX)
McElhaney, Michael (Texas Ethics Commission)
1
WITNESS LIST
On:
O'Mahoney, TP (Texas Veterans Commission)
Palladino, Thomas (Texas Veterans Commission)
Patterson, Max (TESRS)
Peterson, Pete (Self)
Pickett, Sandra (TSLAC)
Pollard, Kenneth (Texas Buffalo Soldier Association, Friends of Historic Sites)
Ramirez, Jorge (TFC)
Reisman, David (Texas Ethics Commission)
Reissig, Mike (Comptroller's Office)
Richman, Jim (Texas Veterans Commission)
Roberts, Wayne (Pension Review Board)
Rudd, Peggy (Texas State Library & Archives Commission)
Sayers, Scott (Texas State Cemetery)
Seidenberg, Edward (Texas State Library & Archives)
Sneed, John (State Preservation Board)
Stanley, Sharilynn (CSEC)
Torres, Frank (Office of the Firefighters Pension Commission)
Voights, Betty (Capital Area Council of Governments, Tx Asso of Regional Council - Emerg
Communications Committee)
Walker, Sherri (Fire Fighters Pension Commission)
Wolfe, Mark (Texas Historical Commission)
2


Title
Add Reminder Message
Upcoming Tasks
[[${uncompletedTasks.size()}]]
Completed Tasks
[[${completedTasks.size()}]]
// TODO: make bottom margin equals to the margin of the add task form
Reminders
Currently Scheduled
[[${task.timeFormat()}]]
Title: [[${task.title}]]
Message: [[${task.note}]]
Reminders
Already Completed
[[${task.timeFormat()}]]
Title: [[${task.title}]]
Message: [[${task.note}]]


_Connect to a Remote API_
_Select a project to synchornize_
_How often should the project be synchronized_
_API URL_


Nielsen’s top programs for Nov. 4-10
NEW YORK (AP) - Prime-time viewership numbers compiled by Nielsen for Nov. 4-10. Listings include the week’s ranking and viewership.
1. NFL Football: Minnesota at Dallas, NBC, 22.99 million.
2. “NFL Sunday Night Pre-Kick,” NBC, 16.72 million.
TOP STORIES
Supreme Court's DACA case leaves Trump with bad options
New ethics complaint filed against impeachment whistleblower
Bloomberg's joke of a bid says more about present crop of Democrats
3. “NFL Sunday Post-Game,” Fox, 15.71 million.
4. NFL Football: Dallas at N.Y. Giants, ESPN, 14.72 million.
5. NFL Football: L.A. Chargers at Oakland, Fox, 13.85 million.
6. “NCIS,” CBS, 10.89 million.
7. “Little Mermaid Live,” ABC, 9 million.
8. “Football Night in America, Part 3,” NBC, 8.89 million.
9. “Young Sheldon,” CBS, 8.84 million.
10. “FBI,” CBS, 8.55 million.
11. “NFL Thursday Night Pre-Kick,” Fox, 8.27 million.
12. “The Voice” (Tuesday), NBC, 8.16 million.
13. “Chicago Med,” NBC, 8.1 million.
14. “60 Minutes,” CBS, 7.98 million.
15. “The Voice” (Monday), NBC, 7.89 million.
16. “Chicago Fire,” NBC, 7.69 million.
17. “NFL Monday Night Kick-Off,” ESPN, 7.61 million.
18. “Blue Bloods,” CBS, 7.39 million.
19. “Hawaii Five-O,” CBS, 7.13 million.
20. “The Masked Singer,” Fox, 7.12 million.
ABC and ESPN are owned by The Walt Disney Co.; CBS is a division of CBS Corp.; Fox is owned by Fox Corp.; NBC is owned by NBC Universal.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


ValidateTogetherGroups are quite simple - validation of one input in the group causes all members to validate afterwards (the triggering input will validate again also).
Events validated are the same - so, if original input validates default
, entire group
will validate it. If original inputs validates blur
- entrie group will validate blur.
Same goes for any event or pseudo-event combination.
ValidateTogetherGroups has one unique behaviour - when validating as a result of a default
event,
group valiation will happen async. This is done to make sure, that the model has been updated by the time
validation happens. It poses no problem with otherwise synchronous validation of this directive, because
such valiadtion can not be triggerred by VALIDATION_REQUEST angular event, and the one triggered by such event
can never change the viewValue and, as a result, the modelValue.
When a VALIDATION_REQUEST is passing through the scopes of you form, it causes each input to validate and trigger
group validation (i.e. group validation will be triggered by every input in the group through whcih the request passes).
How they react to this can be fine tunned via _validateTogetherGroupsBehaviour
property of the options object.
(That behavious applies to all group validations, not just from VALIDATION_REQUEST, but is most usefull with it).
"onlyTrigger"
- is for inputs that should trigger group validation, but don't participate (original
validation from VALIDATION_REQUEST will still occur).
"afterFirst"
- the default value - input will validate once per VALIDATION_REQUEST.
"afterEach"
- input will validate after each group memeber, through which the VALIDATION_REQUEST passes,
resulting in exponential growth of the amount of validations as the group grows.


rotten > Library > Biographies > Mad Science > Sigmund Freud
Sigmund Freud
- Helped found the Tavistock Institute.
- Masturbation.
- Vagina Dentata.
- Cocaine user.
 My culture, my attainments are German. I considered myself German intellectually, until I noticed the growth of anti-Semitic prejudice in Germany and German Austria. Since that time I prefer to call myself a Jew."
- Freud's books were burned in Germany by 1933. Said Freud: "What progress we are making. In the Middle Ages they would have burned me. Now they are content with burning my books."
- The writing on the wall became more apparent when his daughter, Anna Freud, was interrogated for a full day by the Gestapo. Before Sigmund was allowed to emigrate, he signed a document that stated he had not been mistreated. His postscript, appended to the document, read "I can most highly recommend the Gestapo to everyone."
- Freud left Austria after the Anschluss, to avoid the Nazis, to Paris; and then departed Paris for England. This was accomplished with the assistance of Marie Bonaparte (of the Napoleon Bonapartes). While the Bonaparte Papers are in the custody of the Library of Congress, access has never been granted to their scholarship, at the insistence of the Bonaparte heirs, until 2020.
- His four sisters, who stayed in Vienna, were murdered in concentration camps.
- Committed suicide in 1939, after a long bout with maxillary cancer.
- He was cremated, ashes at Golders Green Crematorium in Golders Green.
- Anna died in 1982.
- Freud's granddaughter Sophie (a doctor in her own right), on Freudian theory: "I think it's such a narcissistic indulgence that I cannot believe in it."
timeline
| 23 Sep 1939 |
Sigmund Freud commits suicide with the help of his personal physician, Max Schur. The good doctor obligingly administered 21mg of morphine -- a lethal dose. |
Pornopolis |
Rotten |
Faces of Death |
Famous Nudes
|


http://action.vday.org/site/R?i=5nbGe-XaRRflvjGwXJF58g
http://action.vday.org/site/R?i=T-Grlb-tRXotM-SOchXJ6Q
http://action.vday.org/site/R?i=iwXePAY7zOvtuMkKLtbUag
http://action.vday.org/site/R?i=_np6pWWhC45pbzLMoZ8J7A
http://action.vday.org/site/R?i=OAefrCUHfmA1v90TTmwaJw
http://action.vday.org/site/R?i=IZl8GSxPYRXa7neY_eLI4w
SAVE THE DATE: 7 February in NYC, Join Us For An Artistic Uprising
Mark your calendars, the REVOLUTION is coming to NYC on 7 February!
In the tradition of our 2001 V-Day event at Madison Square Garden and
our 2008 ten year anniversary event at the Louisiana Superdome,
V-Day/One Billion Rising is once again pushing the edge in a
one-night-only event at the Hammerstein Ballroom, that will bring
together revolutionary poets, singers, dancers and activists!
TICKETS on sale soon at onebillionrising.org
http://action.vday.org/site/R?i=5k62Mfe62wbI6q5Hwr2sGQ
NEW 2014 Holiday V-Card Available
http://action.vday.org/site/R?i=DGxsb_1Em69vVcJosaf_ew
A V-Card supports the worldwide movement to end violence against women
and girls and is the perfect gift for the Holidays!
Make a donation to V-Day on behalf of your friends and loved ones.
V-Day will send a specially designed 2014 holiday V-Card letting them
know of their unique gift.
To send a V-Card on the donate page
http://action.vday.org/site/R?i=SBc-Wjzv3m4W2lhlaTVDLw
, check the box next to “Donate on behalf of a loved one?” labeled
“Yes, I would like to send a V-Day e-card” and fill in the rest of the
information to finish designing your gift.
*December 31st is the last day to make charitable donations in order
to claim them on your 2014 tax return. 88 cents of every dollar you
give goes straight to ending violence against women and girls.
http://action.vday.org/site/R?i=6RbaXzmmgGqhsfwZ1SSLtA
http://action.vday.org/site/R?i=grRtZbaZrTWQjdsVpbLHDg
http://action.vday.org/site/R?i=zdS1Q5uJw26IpfK6ilb8Zg
http://action.vday.org/site/R?i=Q-4-xXhwTC24EgCRIuMgHQ
http://action.vday.org/site/R?i=cOckqTCD96niilx1ONFhew
http://action.vday.org/site/R?i=PakX7-yeWwfwEqcZJ_2OVQ
http://action.vday.org/site/R?i=v05A3DbsZevuq8fefHw32A
http://action.vday.org/site/R?i=GyxOC2rlRJis2Rog3MJYmw
unsubscribe
http://action.vday.org/site/CO?i=FrBNDAunZCXabNxRBF6SLPYkXbFeqXDC&cid=1062
Powered By Blackbaud