From dev-return-99703-apmail-cocoon-dev-archive=cocoon.apache.org@cocoon.apache.org Mon Jul 14 05:50:27 2008 Return-Path: Delivered-To: apmail-cocoon-dev-archive@www.apache.org Received: (qmail 74258 invoked from network); 14 Jul 2008 05:50:24 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 14 Jul 2008 05:50:24 -0000 Received: (qmail 32572 invoked by uid 500); 14 Jul 2008 05:50:23 -0000 Delivered-To: apmail-cocoon-dev-archive@cocoon.apache.org Received: (qmail 32505 invoked by uid 500); 14 Jul 2008 05:50:23 -0000 Mailing-List: contact dev-help@cocoon.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@cocoon.apache.org List-Id: Delivered-To: mailing list dev@cocoon.apache.org Received: (qmail 32494 invoked by uid 99); 14 Jul 2008 05:50:23 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 13 Jul 2008 22:50:23 -0700 X-ASF-Spam-Status: No, hits=1.2 required=10.0 tests=SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [88.198.46.98] (HELO indoqa.com) (88.198.46.98) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Jul 2008 05:49:28 +0000 Received: from [192.168.0.193] (chello062178239020.5.15.vie.surfer.at [62.178.239.20]) by indoqa.com (Postfix) with ESMTP id B41AF254154 for ; Mon, 14 Jul 2008 07:49:50 +0200 (CEST) Message-ID: <487AE8B8.40504@apache.org> Date: Mon, 14 Jul 2008 07:48:40 +0200 From: =?ISO-8859-1?Q?Reinhard_P=F6tz?= User-Agent: Thunderbird 2.0.0.14 (Windows/20080421) MIME-Version: 1.0 To: dev@cocoon.apache.org Subject: Re: Proposal - JS Reader References: <487831E8.7060805@tt.com.au> <487A0AED.8040903@apache.org> <487A7920.8090701@tt.com.au> In-Reply-To: <487A7920.8090701@tt.com.au> X-Enigmail-Version: 0.95.6 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Virus-Checked: Checked by ClamAV on apache.org Kamal Bhatt wrote: > Reinhard Pötz wrote: >> Kamal wrote: >>> Hi, >>> It occured to me that Cocoon could probably benefit from a Javascript >>> Reader. This JS Reader would do what a normal resource reader would, >>> unless the user specifies a compression-method parameter. If the >>> compression method is supported, then the JS will be compressed. >>> Right now, I think we can only use JSMin[1] or Package[4], as Dojo >>> ShrinkSafe[2] and YUI compressor [3] rely on custom version of Rhino. >>> Packer [4] is written in plain old javascript. JSMin and Packer are >>> open source, but it is not distributed on any Maven repositories that >>> I can see, so we would need to include them in source. >> >> Have you had a look at >> http://alchim.sourceforge.net/yuicompressor-maven-plugin/overview.html? >> This plugin could be used as part of the build process. Then you could >> use the uncompressed Javascript files for development and then when >> the module is packaged, the Javascript and CSS files could be compressed. >> >> And, AFAICS, this plugin uses standard Rhino (1.6R7). See >> http://repo1.maven.org/maven2/net/sf/alchim/yuicompressor-maven-plugin/0.7.1/yuicompressor-maven-plugin-0.7.1.pom >> > Hmmm... Don't know how they did that. I will look into it. >> >>> This would be useful for the (very large) JS dependencies in CForms >>> (though, it could be argued that we should be bundling the already >>> compressed version of Dojo and the other Cocoon JS files). >>> >>> I, personally, would find something like this really useful as we >>> have lots of code that we like to keep uncompressed for development, >>> but compress at runtime. >>> >>> What does everyone think? I don't mind coding this up (using just >>> JSMin). >> >> I'm not sure if it is really good idea to compress Javascript files at >> runtime. > > I guess that depends (in part) on whether people generate javascript at > run time. If so, then it would be useful to create this reader. > >> >> If you write the plugin, it would also be possible to reuse the >> yuicompressor-maven-plugin but not as Maven plugin but as a normal >> dependency. By doing it this way you wouldn't have to pull in any >> third-party code into our code base. > > I don't follow this, can you elaborate? A Maven plugin is just a JAR file that can be used as a normal dependency. The yuicompressor-maven-plugin already contains com.yahoo.platform.yui.compressor classes that can be used this way: net.sf.alchim yuicompressor-maven-plugin 0.7.1 Provided that it's legally correct for an Apache project to depend on this code (needs to be checked before somebody starts to code!!!), this looks to be the simplest way to use a Javascript/CSS compressor. -- Reinhard Pötz Managing Director, {Indoqa} GmbH http://www.indoqa.com/en/people/reinhard.poetz/ Member of the Apache Software Foundation Apache Cocoon Committer, PMC member reinhard@apache.org ________________________________________________________________________