ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From k...@apache.org
Subject svn commit: r782238 - in /ant/sandbox/antlibs/compress/trunk: ./ docs/ src/etc/testcases/ src/main/org/apache/ant/js/compressor/
Date Sat, 06 Jun 2009 11:46:06 GMT
Author: kevj
Date: Sat Jun  6 11:46:05 2009
New Revision: 782238

URL: http://svn.apache.org/viewvc?rev=782238&view=rev
Log:
-refactor, convenience classes and initial documentation

Added:
    ant/sandbox/antlibs/compress/trunk/docs/yui.compressor.html   (with props)
    ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/YUICssCompressor.java
  (with props)
    ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/YUIJsCompressor.java
  (with props)
Modified:
    ant/sandbox/antlibs/compress/trunk/README
    ant/sandbox/antlibs/compress/trunk/src/etc/testcases/compress.xml
    ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/YUICompressorTask.java
    ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/antlib.xml

Modified: ant/sandbox/antlibs/compress/trunk/README
URL: http://svn.apache.org/viewvc/ant/sandbox/antlibs/compress/trunk/README?rev=782238&r1=782237&r2=782238&view=diff
==============================================================================
--- ant/sandbox/antlibs/compress/trunk/README (original)
+++ ant/sandbox/antlibs/compress/trunk/README Sat Jun  6 11:46:05 2009
@@ -8,7 +8,11 @@
 <project name="x" basedir="." default="y" xmlns:compress="antlib:org.apache.ant.js.compressor">
 
 # Compressing many javascript files
-<compress:yui.compressor verbose="true" outputPath="${outputPath}" type="js">
+<compress:yui.compressor 
+  		verbose="true" 
+  		outputPath="${outputPath}"
+  		linebreak="80"
+  		type="js">
   <fileset dir="${testscript.dir}">
     <include name="*.js"/>
   </fileset>

Added: ant/sandbox/antlibs/compress/trunk/docs/yui.compressor.html
URL: http://svn.apache.org/viewvc/ant/sandbox/antlibs/compress/trunk/docs/yui.compressor.html?rev=782238&view=auto
==============================================================================
--- ant/sandbox/antlibs/compress/trunk/docs/yui.compressor.html (added)
+++ ant/sandbox/antlibs/compress/trunk/docs/yui.compressor.html Sat Jun  6 11:46:05 2009
@@ -0,0 +1,92 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Yahoo! UI Compressor Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="yui.compressor">Compressor</a></h2>
+<h3>Description</h3>
+<p>Compresses or 'minifies' JavaScript or CSS files using the 
+<a href="http://developer.yahoo.com/yui/compressor/" target="_top">Yahoo! UI Compressor
library</a></p>
+<p><b>Note:</b> This task depends on external libraries not included in
the Ant distribution.</p>
+<h3>Installation</h3>
+<p>Download the <a href="http://developer.yahoo.com/yui/compressor/" target="_top">Yahoo!
UI Compressor distribution</a> 
+and copy the yuicompressor-n.n.n.jar to $ANT_HOME/lib; ~/.ant/lib or the ant $CLASSPATH.
 
+Also take a copy of this antlib and place in the same location.</p>
+<p>Utilise the antlib by referencing it:
+<pre>
+&lt;project name="compress-test" basedir="." 
+         default="all" xmlns:compress="antlib:org.apache.ant.js.compressor"&gt;
+</pre>
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>type</td>
+    <td>The type of files to compress valid options are <code>js</code>
or <code>css</code></td>
+    <td>YES</td>
+  </tr>
+  <tr>
+    <td>charset</td>
+    <td>The character set encoding of the input file</td>
+    <td>NO [defaults to UTF-8 if not specified]</td>
+  </tr>
+  <tr>
+    <td>linebreak</td>
+    <td>The column to break at in the output file</td>
+    <td>NO [defaults to never breaking lines]</td>
+  </tr>
+  <tr>
+    <td>verbose</td>
+    <td>Sets the output of the task to display all warnings while minifying</td>
+    <td>NO [defaults to no]</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select
+sets of files to copy.</p>
+
+<h3>Examples</h3>
+<pre>  
+&lt;compress:yui.compressor 
+  verbose="true" 
+  outputPath="${outputPath}"
+  linebreak="80"
+  type="js"&gt;
+  
+  &lt;fileset dir="${testscript.dir}"&gt;
+    &lt;include name="*.js"/&gt;
+  &lt;/fileset&gt;
+&lt;/compress:yui.compressor&gt;
+</pre>
+<p>Minifies all javascript files found in the fileset.  In the output file lines are
broken after 80 chars.</p>
+</body>
+</html>
\ No newline at end of file

Propchange: ant/sandbox/antlibs/compress/trunk/docs/yui.compressor.html
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: ant/sandbox/antlibs/compress/trunk/src/etc/testcases/compress.xml
URL: http://svn.apache.org/viewvc/ant/sandbox/antlibs/compress/trunk/src/etc/testcases/compress.xml?rev=782238&r1=782237&r2=782238&view=diff
==============================================================================
--- ant/sandbox/antlibs/compress/trunk/src/etc/testcases/compress.xml (original)
+++ ant/sandbox/antlibs/compress/trunk/src/etc/testcases/compress.xml Sat Jun  6 11:46:05
2009
@@ -19,7 +19,6 @@
 <project name="compress-test" basedir="." 
          default="all" xmlns:compress="antlib:org.apache.ant.js.compressor">
 
-  <property name="output" value="test.js"/>
   <property name="outputPath" value="${basedir}/min"/>
   <property name="testscript.dir" value="${basedir}/testscripts"/>
 
@@ -28,14 +27,11 @@
   </target>
 	
   <target name="all" depends="init">
-  	
-  	<compress:yui.compressor verbose="true" output="${output}" mergefiles="true" type="js">
-  	  <fileset dir="${testscript.dir}">
-  	  	<include name="*.js"/>
-  	  </fileset>
-  	</compress:yui.compressor>
-  	
-  	<compress:yui.compressor verbose="true" outputPath="${outputPath}" type="js">
+  	<compress:yui.compressor 
+  		verbose="true" 
+  		outputPath="${outputPath}"
+  		linebreak="80"
+  		type="js">
   	  <fileset dir="${testscript.dir}">
   	  	<include name="*.js"/>
   	  </fileset>
@@ -46,10 +42,23 @@
 	    <include name="*.css"/>
 	  </fileset>
 	</compress:yui.compressor>
+
+  	<!-- specialised tasks -->
+  	<compress:yui.js verbose="false" outputPath="${outputPath}" linebreak="80">
+  		<fileset dir="${testscript.dir}">
+          <include name="*.js"/>
+        </fileset>
+    </compress:yui.js>
+  	
+  	<compress:yui.css verbose="false" outputPath="${outputPath}" linebreak="80">
+  	  <fileset dir="${testscript.dir}">
+  	    <include name="*.css"/>
+  	  </fileset>
+  	</compress:yui.css>
   </target>
 
   <target name="cleanup">
     <delete file="${output}"/>
   	<delete dir="${outputPath}"/>
   </target>
-</project>
+</project>
\ No newline at end of file

Modified: ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/YUICompressorTask.java
URL: http://svn.apache.org/viewvc/ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/YUICompressorTask.java?rev=782238&r1=782237&r2=782238&view=diff
==============================================================================
--- ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/YUICompressorTask.java
(original)
+++ ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/YUICompressorTask.java
Sat Jun  6 11:46:05 2009
@@ -1,19 +1,38 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
 package org.apache.ant.js.compressor;
 
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
 import java.io.Reader;
+import java.io.UnsupportedEncodingException;
 import java.io.Writer;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Task;
-import org.apache.tools.ant.types.Commandline;
 import org.apache.tools.ant.types.FileSet;
 import org.apache.tools.ant.types.ResourceCollection;
 import org.apache.tools.ant.types.resources.FileResource;
@@ -22,8 +41,12 @@
 
 import com.yahoo.platform.yui.compressor.CssCompressor;
 import com.yahoo.platform.yui.compressor.JavaScriptCompressor;
-import com.yahoo.platform.yui.compressor.YUICompressor;
 
+/**
+ * Base task for wrapping the Yahoo! UI compressor library
+ * Requires yui compressor jar in $ANT_HOME/lib; ~/.ant/lib or on CLASSPATH
+ * @author kevj@apache.org
+ */
 public class YUICompressorTask extends Task {
 
 	private boolean verbose;
@@ -33,62 +56,89 @@
 	private boolean preserveSemi;
 	private boolean disableOptimization;
 	private String charset;
-	private String output;
 	private String outputPath;
-	private boolean mergeFiles;
 	private List inputResources = new ArrayList();
-	
+		
 	public void execute() {
 		try {
-			if(mergeFiles) {
-				//TODO
-				//refactor to remove the commandline building
-				Commandline cmd = buildArgs();
-				YUICompressor.main(cmd.getArguments());
-			} else {
-				for(Iterator i = inputResources.iterator(); i.hasNext();) {
-					FileSet fs = (FileSet)i.next();
-					for(Iterator j = fs.iterator(); j.hasNext();) {
-						FileResource f = (FileResource)j.next();
-						if(verbose) {
-							log("Minifying: "+f.getFile().getAbsolutePath());	
-						}
-						//Ensure charset is set
-						if(null == charset || charset.trim() == "") {
-							charset = "UTF-8";
-						}
-						InputStreamReader in = new InputStreamReader(new FileInputStream(f.getFile().getAbsolutePath()),
charset);
-						Writer out;
-						if(null != outputPath && outputPath.trim() != "") {
-							out = new OutputStreamWriter(new FileOutputStream(outputPath + File.separator + f.getFile().getName()));
-						} else {
-							out = new OutputStreamWriter(new FileOutputStream(f.getFile().getAbsolutePath()));
-						}
-						
-						if(null != type && type.trim() != "" && "js".equals(type)) {
-							JavaScriptCompressor c = getJavaScriptCompressor(in);
-							c.compress(out, 
-									(null == getLineBreak() || getLineBreak() == "" ? -1 : Integer.parseInt(getLineBreak())),

-									isNomunge(), 
-									isVerbose(), 
-									isPreserveSemi(), 
-									isDisableOptimization() 
-							);
-						} else if(null != type && type != "" && "css".equals(type)) {
-							CssCompressor c = getCssCompressor(in);
-							c.compress(out, (null == getLineBreak() || getLineBreak() == "" ? -1 : Integer.parseInt(getLineBreak())));
-						}
-						in.close();
-						out.close();
-					}
-			
-				}		
-			}
+			validate();
+			for(Iterator i = inputResources.iterator(); i.hasNext();) {
+				FileSet fs = (FileSet)i.next();
+				for(Iterator j = fs.iterator(); j.hasNext();) {
+					FileResource f = (FileResource)j.next();
+					minify(f);
+				}
+			}		
 		} catch (Exception e) {
-			log("Error occurred processing file "+ e.getMessage());
+			log("Error occurred processing file ");
+			e.printStackTrace();
+		}
+	}
+	
+	private void validate() throws BuildException {
+		if(null == type || "".equals(type)) {
+			throw new BuildException("Type property must be specified <js|css>");
+		}
+		if(null == charset || "".equals(charset)) {
+			setCharset("UTF-8");
+			log("Charset not set; using [UTF-8]");
+		}
+		if(null == lineBreak || "".equals(lineBreak)) {
+			setLineBreak("-1");
+			log("Linebreak position not set; using [-1]");
+		} else if (lineBreak.matches("\\D+")) {
+			throw new BuildException("Linebreak must be an integer");
 		}
 	}
 
+	/**
+	 * @param f the FileResource to compress
+	 * @throws UnsupportedEncodingException
+	 * @throws FileNotFoundException
+	 * @throws IOException
+	 */
+	private void minify(FileResource f) throws UnsupportedEncodingException,
+			FileNotFoundException, IOException {
+
+		Reader in = new InputStreamReader(new FileInputStream(f.getFile().getAbsolutePath()), charset);
+		Writer out = getWriter(f);
+		if(verbose) {
+			log("Minifying: "+f.getFile().getAbsolutePath());	
+		}
+		
+		if("js".equals(getType())) {
+			JavaScriptCompressor c = getJavaScriptCompressor(in);
+			//in case we are overwriting the input file, ensure that it's closed first
+			in.close();
+			in = null;
+			c.compress(out, 
+					Integer.parseInt(getLineBreak()), 
+					isNomunge(), 
+					isVerbose(), 
+					isPreserveSemi(), 
+					isDisableOptimization() 
+			);
+			out.close();
+		} else if("css".equals(getType())) {
+			CssCompressor c = getCssCompressor(in);
+			//in case we are overwriting the input file, ensure that it's closed first
+			in.close();
+			in = null;
+			c.compress(out, Integer.parseInt(getLineBreak()));
+			out.close();
+		}
+	}
+
+	private Writer getWriter(FileResource f) throws IOException {
+		Writer out;
+		out = new OutputStreamWriter(
+				null != getOutputPath() && getOutputPath().trim() != "" ?
+						new FileOutputStream(getOutputPath() + File.separator + f.getFile().getName()) :
+						f.getOutputStream()
+				);
+		return out;
+	}
+	
 	protected JavaScriptCompressor getJavaScriptCompressor(Reader in) throws IOException {
 		
 		JavaScriptCompressor compressor = new JavaScriptCompressor(in, new ErrorReporter() {
@@ -125,51 +175,6 @@
 		return new CssCompressor(in);
 	}
 	
-	protected Commandline buildArgs() {
-		Commandline cmd = new Commandline();
-		if(verbose) {
-			cmd.createArgument().setValue("-v");
-		}
-		if(nomunge) {
-			cmd.createArgument().setValue("--nomunge");
-		}
-		if(preserveSemi) {
-			cmd.createArgument().setValue("--preserve-semi");
-		}
-		if(disableOptimization) {
-			cmd.createArgument().setValue("--disable-optimizations");
-		}
-		if(null != lineBreak && lineBreak.trim() != "") {
-			cmd.createArgument().setValue("--line-break");
-			cmd.createArgument().setValue(lineBreak);
-		}
-		if(null != type && type.trim() != "") {
-			cmd.createArgument().setValue("--type");
-			cmd.createArgument().setValue(type);
-		}
-		if(null != charset && charset.trim() != "") {
-			cmd.createArgument().setValue("--charset");
-			cmd.createArgument().setValue(charset);
-		} 
-		if(null != output && output.trim() != "" && mergeFiles) {
-			cmd.createArgument().setValue("-o");
-			cmd.createArgument().setValue(output);
-		}
-		
-		if(mergeFiles) {
-			for(Iterator i = inputResources.iterator(); i.hasNext();) {
-				FileSet fs = (FileSet)i.next();
-				for(Iterator j = fs.iterator(); j.hasNext();) {
-					FileResource f = (FileResource)j.next();
-					cmd.createArgument().setValue(f.getFile().getAbsolutePath());
-				}
-			
-			}
-		}
-		log("args: "+cmd.describeCommand());
-		return cmd;
-	}
-	
 	public boolean isVerbose() {
 		return verbose;
 	}
@@ -226,14 +231,6 @@
 		this.charset = charset;
 	}
 
-	public String getOutput() {
-		return output;
-	}
-
-	public void setOutput(String output) {
-		this.output = output;
-	}
-	
 	public String getOutputPath() {
 		return outputPath;
 	}
@@ -249,12 +246,4 @@
 	public void add(ResourceCollection res) {
 		inputResources.add(res);
 	}
-
-	public boolean isMergeFiles() {
-		return mergeFiles;
-	}
-
-	public void setMergeFiles(boolean m) {
-		mergeFiles = m;
-	}
-}
+}
\ No newline at end of file

Added: ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/YUICssCompressor.java
URL: http://svn.apache.org/viewvc/ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/YUICssCompressor.java?rev=782238&view=auto
==============================================================================
--- ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/YUICssCompressor.java
(added)
+++ ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/YUICssCompressor.java
Sat Jun  6 11:46:05 2009
@@ -0,0 +1,31 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.ant.js.compressor;
+
+/**
+ * Task for compressing CSS files using the Yahoo! UI compressor
+ * Requires yui compressor jar in $ANT_HOME/lib; ~/.ant/lib or on CLASSPATH
+ * @author kevj@apache.org
+ */
+public class YUICssCompressor extends YUICompressorTask {
+
+	public void execute() {
+		super.setType("css");
+		super.execute();
+	}
+}
\ No newline at end of file

Propchange: ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/YUICssCompressor.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/YUIJsCompressor.java
URL: http://svn.apache.org/viewvc/ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/YUIJsCompressor.java?rev=782238&view=auto
==============================================================================
--- ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/YUIJsCompressor.java
(added)
+++ ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/YUIJsCompressor.java
Sat Jun  6 11:46:05 2009
@@ -0,0 +1,31 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.ant.js.compressor;
+
+/**
+ * Task for compressing JavaScript files using the Yahoo! UI compressor
+ * Requires yui compressor jar in $ANT_HOME/lib; ~/.ant/lib or on CLASSPATH
+ * @author kevj@apache.org
+ */
+public class YUIJsCompressor extends YUICompressorTask {
+
+	public void execute() {
+		super.setType("js");
+		super.execute();
+	}
+}
\ No newline at end of file

Propchange: ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/YUIJsCompressor.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/antlib.xml
URL: http://svn.apache.org/viewvc/ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/antlib.xml?rev=782238&r1=782237&r2=782238&view=diff
==============================================================================
--- ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/antlib.xml (original)
+++ ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/js/compressor/antlib.xml Sat
Jun  6 11:46:05 2009
@@ -1,6 +1,33 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <antlib>
   <taskdef
     name="yui.compressor"
     classname="org.apache.ant.js.compressor.YUICompressorTask"
     />
+    
+  <taskdef
+    name="yui.js"
+    classname="org.apache.ant.js.compressor.YUIJsCompressor"
+    />
+    
+  <taskdef
+    name="yui.css"
+    classname="org.apache.ant.js.compressor.YUICssCompressor"
+    />
 </antlib>
\ No newline at end of file



Mime
View raw message