KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > packtag > implementation > JsminPackStrategy


1 /**
2  * Project pack:tag >> http://packtag.sf.net
3  *
4  * This software is published under the terms of the LGPL
5  * License version 2.1, a copy of which has been included with this
6  * distribution in the 'lgpl.txt' file.
7  *
8  * Last author: $Author: danielgalan $
9  * Last modified: $Date: 2007/04/22 19:04:25 $
10  * Revision: $Revision: 1.1 $
11  *
12  * $Log: JsminPackStrategy.java,v $
13  * Revision 1.1 2007/04/22 19:04:25 danielgalan
14  * pack.tag moved from subversion to good old CVS
15  *
16  */

17 package net.sf.packtag.implementation;
18
19 import java.io.BufferedInputStream JavaDoc;
20 import java.io.ByteArrayOutputStream JavaDoc;
21 import java.io.InputStream JavaDoc;
22
23 import net.sf.packtag.strategy.PackException;
24 import net.sf.packtag.strategy.PackStrategy;
25
26
27
28
29 /**
30  * Strategy for compressing JavaScript resources with the JSMin algorithm, taken from
31  * Douglas Crockford: http://www.crockford.com
32  *
33  * @author Daniel Galán y Martins
34  * @version $Revision: 1.1 $
35  */

36 public class JsminPackStrategy implements PackStrategy {
37
38     public String JavaDoc pack(InputStream JavaDoc resourceAsStream) throws PackException {
39         BufferedInputStream JavaDoc bis = new BufferedInputStream JavaDoc(resourceAsStream);
40         ByteArrayOutputStream JavaDoc baos = new ByteArrayOutputStream JavaDoc();
41         JSMin min = new JSMin(bis, baos);
42         try {
43             min.jsmin();
44             return new String JavaDoc(baos.toByteArray()).trim();
45         }
46         catch (Exception JavaDoc ex) {
47             throw new PackException("Could not pack resource", ex);
48         }
49     }
50
51 }
52
Popular Tags