<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Home</title><link>https://sourceforge.net/p/effy/wiki/Home/</link><description>Recent changes to Home</description><atom:link href="https://sourceforge.net/p/effy/wiki/Home/feed" rel="self"/><language>en</language><lastBuildDate>Sat, 14 Feb 2015 05:37:01 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/effy/wiki/Home/feed" rel="self" type="application/rss+xml"/><item><title>Home modified by Anil Verma</title><link>https://sourceforge.net/p/effy/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v7
+++ v8
@@ -78,5 +78,25 @@
 ## File IO APIs
 ### TODO

+## Freemarker APIs
+### Processing a freemarker String
+If you have a string input with freemarker syntax and you want to process it, please see the below example for implementation
+&lt;tt&gt;
+HashMap root = new HashMap();
+HashMap employeeMap = new HashMap();
+employeeMap.put("name", "John Mayer");
+employeeMap.put("id", 23);
+employeeMap.put("manager", "Scott Johnson");
+employeeMap.put("designation", "Director of Engineering");
+employeeMap.put("yearsOfExp", 15);     
+root.put("employee",employeeMap);
+String template = "Hi Mr. ${employee.name}, your id is ${employee.id} and your current manager is ${employee.manager}";        
+String output = FTLTemplateEngine.INSTANCE.process(template, root);
+&lt;/tt&gt;
+This would give the following output.
+&lt;blockquote&gt;
+Hi Mr. John Mayer, your id is 23 and your current manager is Scott Johnson
+&lt;/blockquote&gt;
+
 ## Further Reading
 We maintain the javadoc actively 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anil Verma</dc:creator><pubDate>Sat, 14 Feb 2015 05:37:01 -0000</pubDate><guid>https://sourceforge.net444ae984d53c38bb2012922e10b0cbc800ae87c5</guid></item><item><title>Home modified by Anil Verma</title><link>https://sourceforge.net/p/effy/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v6
+++ v7
@@ -14,7 +14,7 @@
 For now just download the latest jar [Effy.jar](https://sourceforge.net/projects/effy/files/latest/download?source=files) at the moment, add it to your project in Eclipse/Idea and start coding.

 ## Release Info
-Latest stable release version is [effy1.2.jar](https://sourceforge.net/projects/effy/files/latest/download?source=files)
+Latest stable release version is [effy1.3.jar](https://sourceforge.net/projects/effy/files/latest/download?source=files)
 Latest source code is available at this [repository](https://bitbucket.org/anilpank/effy)
 Latest javadoc is available here at [Effy JavaDoc](http://anilpank.bitbucket.org/)

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anil Verma</dc:creator><pubDate>Fri, 13 Feb 2015 18:26:59 -0000</pubDate><guid>https://sourceforge.netbbdf2bef3b505b2dfedab0166232bfd9201eaf0d</guid></item><item><title>Home modified by Anil Verma</title><link>https://sourceforge.net/p/effy/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v5
+++ v6
@@ -14,7 +14,7 @@
 For now just download the latest jar [Effy.jar](https://sourceforge.net/projects/effy/files/latest/download?source=files) at the moment, add it to your project in Eclipse/Idea and start coding.

 ## Release Info
-Latest stable release version is [effy1.2.jar] (https://sourceforge.net/projects/effy/files/latest/download?source=files)
+Latest stable release version is [effy1.2.jar](https://sourceforge.net/projects/effy/files/latest/download?source=files)
 Latest source code is available at this [repository](https://bitbucket.org/anilpank/effy)
 Latest javadoc is available here at [Effy JavaDoc](http://anilpank.bitbucket.org/)

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anil Verma</dc:creator><pubDate>Fri, 13 Feb 2015 13:44:36 -0000</pubDate><guid>https://sourceforge.netaf51abce1d2715c3ab899dd450196515b6758e32</guid></item><item><title>Home modified by Anil Verma</title><link>https://sourceforge.net/p/effy/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -11,10 +11,10 @@
 Creating better technology the open source way. Effy is and will always be open source for usage.

 ## How to use
-For now just download the latest jar (effy1.2.jar) at the moment, add it to your project in Eclipse/Idea and start coding.
+For now just download the latest jar [Effy.jar](https://sourceforge.net/projects/effy/files/latest/download?source=files) at the moment, add it to your project in Eclipse/Idea and start coding.

 ## Release Info
-Latest stable release version is effy1.2.jar
+Latest stable release version is [effy1.2.jar] (https://sourceforge.net/projects/effy/files/latest/download?source=files)
 Latest source code is available at this [repository](https://bitbucket.org/anilpank/effy)
 Latest javadoc is available here at [Effy JavaDoc](http://anilpank.bitbucket.org/)

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anil Verma</dc:creator><pubDate>Fri, 13 Feb 2015 13:43:25 -0000</pubDate><guid>https://sourceforge.neta42ba69d72445764b3af8991554647b835bfec5c</guid></item><item><title>Home modified by Anil Verma</title><link>https://sourceforge.net/p/effy/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -10,8 +10,14 @@
 ## Mission Statement
 Creating better technology the open source way. Effy is and will always be open source for usage.

-# How to use
+## How to use
 For now just download the latest jar (effy1.2.jar) at the moment, add it to your project in Eclipse/Idea and start coding.
+
+## Release Info
+Latest stable release version is effy1.2.jar
+Latest source code is available at this [repository](https://bitbucket.org/anilpank/effy)
+Latest javadoc is available here at [Effy JavaDoc](http://anilpank.bitbucket.org/)
+
 ## File Compression APIs
 ### Unzipping a zip file
 You can Unzip the file and write all it's contents and files.
@@ -69,4 +75,8 @@
 

-## File IO APIs TODO
+## File IO APIs
+### TODO
+
+## Further Reading
+We maintain the javadoc actively 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anil Verma</dc:creator><pubDate>Fri, 13 Feb 2015 13:40:13 -0000</pubDate><guid>https://sourceforge.net478abbb7bfc3456b8017c4b616b05a00c8293a6c</guid></item><item><title>Home modified by Anil Verma</title><link>https://sourceforge.net/p/effy/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -1 +1,72 @@
-Effy is a high level File IO API for reading and writing files in Java. For details on the API/documentation please visit http://anilpank.bitbucket.org/
+Effy
+====
+
+[TOC]
+
+# About the developer
+I am Anil, software development manager at [Serus](http://www.serus.com/), we create SAAS applications for supply chain domain. You can find me on [LinkedIn](http://in.linkedin.com/in/aniliitk). I keep coding day in and day out. During office timings,  I code for my company, and during after hours I work on open source projects. I have around 11 private repositories and 3 public repositories. 
+## Why another IO Utility java library
+There are couple of really good libraries in this field (Apache IOUtils comes to mind). But off late while doing a lot of development, I have always had to make choice between the right way of doing things and the faster way of doing things. Often due to initial time constraints, the faster way would win. But after some time I would have to revisit and then redo the things the right way. This was the motivation behind creating Effy (for those wondering about the name, Effy is a short form of Efficient). So you could use Effy API methods without worrying about the performance.
+## Mission Statement
+Creating better technology the open source way. Effy is and will always be open source for usage.
+
+# How to use
+For now just download the latest jar (effy1.2.jar) at the moment, add it to your project in Eclipse/Idea and start coding.
+## File Compression APIs
+### Unzipping a zip file
+You can Unzip the file and write all it's contents and files.
+&lt;tt&gt;
+ZipUtils zipUtil = new ZipUtils();
+zipUtil.unzip("C:/anil/misc/temp/anikl.zip");
+&lt;/tt&gt;
+
+### Compress file into zip with highest compression.
+If the need is to create smallest zip file for a give file, please use the below implementation. This will compress file myFile.xlsx and write it to to the below temp folder. 
+&lt;tt&gt;
+ZipUtils zipUtil = new ZipUtils();
+zipUtil .zipHighCompression("C:/misc/myFile.xlsx", "C:/anil/misc/temp/");
+&lt;/tt&gt;
+
+### Compress directory contents to a zip file.
+If you want to compress directory contents into a zip file, use below implementation. Please note that this method ignores any sub-directory present in the directory.
+In below implementation, all the files present in logs folder are compressed and zip file log.zip is created.
+&lt;tt&gt;
+ZipUtils zipUtil = new ZipUtils();
+zipUtil .zipAllFilesInDir("C:/misc/logs", "C:/anil/misc/temp/log.zip");
+&lt;/tt&gt;
+
+### Compress files to GZIP format
+There are scenarios when you do not want a zip format generated but are on the look out for GZIP (.gz) file generation. 
+The below implementation will take the file myFile.xlsx, compress it into gz format and write it in temp folder.
+&lt;tt&gt;
+ZipUtils zipUtil = new ZipUtils();
+zipUtil.compressToGZip("C:/misc/myFile.xlsx", "C:/anil/misc/temp/");
+&lt;/tt&gt;
+
+### Compress file to XZ format
+XZ compression is based on LZMA2 algorithm. From trying out various formats, we found that XZ format gives maximum compression.
+So if you want maximum compression (and not bothered about format), use this method.
+&lt;tt&gt;
+ZipUtils zipUtil = new ZipUtils();
+zipUtil.compressToXZ("C:/anil/misc/temp/myFile.xlsx", "C:/anil/misc/temp/myFile.xlsx.xz");
+&lt;/tt&gt;
+
+### Archive multiple files into tar and then gZIP
+Archives list of inputFiles into a tar and then gzips it into tar.gz
+&lt;tt&gt;
+ZipUtils zipUtil = new ZipUtils();
+File directory = new File("C:/anil/misc/temp/");
+File []files = directory.listFiles();
+List&amp;lt;File&amp;gt;fileList = Arrays.asList(files);
+zipUtil.createTarAndThenGZip(fileList, "C:/logs/" + fileList.get(0).getName() + ".tar.gz");        
+&lt;/tt&gt;
+
+### Unzip the zipped file
+This will unzip a zipped(compressed) file and write all it's contents.
+&lt;tt&gt;
+ZipUtils zipUtil = new ZipUtils();
+zipUtil.unzip("C:/temp/anikl.zip");
+&lt;/tt&gt;
+
+
+## File IO APIs TODO
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anil Verma</dc:creator><pubDate>Fri, 13 Feb 2015 11:24:49 -0000</pubDate><guid>https://sourceforge.netcc07ed716b75aae583062473ce1c9cb37d8a30cd</guid></item><item><title>Discussion for Home page</title><link>https://sourceforge.net/p/effy/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I released effy1.1.jar. Added support for zipping (creating ZIP as well as GZ formats).&lt;br /&gt;
Always download the latest version of the jar available. &lt;br /&gt;
The API is available at &lt;a href="http://anilpank.bitbucket.org/." rel="nofollow"&gt;http://anilpank.bitbucket.org/.&lt;/a&gt;&lt;br /&gt;
For any support please reach out to me at twitter @anilpank or email&lt;br /&gt;
anil.iitk@gmail.com&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anil Verma</dc:creator><pubDate>Sat, 07 Feb 2015 00:22:23 -0000</pubDate><guid>https://sourceforge.netf7c0099604058d7ccb1d3c2f2c16720a77dff6d0</guid></item><item><title>Home modified by Anil Verma</title><link>https://sourceforge.net/p/effy/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,8 +1 @@
-Welcome to your wiki!
-
-This is the default page, edit it as you see fit. To add a new page simply reference it within brackets, e.g.: [SamplePage].
-
-The wiki uses [Markdown](/p/effy/wiki/markdown_syntax/) syntax.
-
-[[members limit=20]]
-[[download_button]]
+Effy is a high level File IO API for reading and writing files in Java. For details on the API/documentation please visit http://anilpank.bitbucket.org/
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anil Verma</dc:creator><pubDate>Thu, 05 Feb 2015 15:42:50 -0000</pubDate><guid>https://sourceforge.neta854081cf704d59969ced19846a5311f932b22af</guid></item><item><title>Discussion for Home page</title><link>https://sourceforge.net/p/effy/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Effy is a high level File IO API for reading and writing files in Java. For details on the API/documentation please visit &lt;a href="http://anilpank.bitbucket.org" rel="nofollow"&gt;http://anilpank.bitbucket.org/&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anil Verma</dc:creator><pubDate>Thu, 05 Feb 2015 15:42:05 -0000</pubDate><guid>https://sourceforge.net79dff697fcd5c9fa3965cd442c7ff4ca266d91cc</guid></item><item><title>Home modified by Anil Verma</title><link>https://sourceforge.net/p/effy/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Welcome to your wiki!&lt;/p&gt;
&lt;p&gt;This is the default page, edit it as you see fit. To add a new page simply reference it within brackets, e.g.: &lt;span&gt;[SamplePage]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;The wiki uses &lt;a class="" href="/p/effy/wiki/markdown_syntax"&gt;Markdown&lt;/a&gt; syntax.&lt;/p&gt;
&lt;p&gt;&lt;h6&gt;Project Members:&lt;/h6&gt;
&lt;ul class="md-users-list"&gt;
&lt;li&gt;&lt;a href="/u/anilrismus"&gt;Anil Verma&lt;/a&gt; (admin)&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;&lt;span class="download-button-54d38c58ea406b48877f8781" style="margin-bottom: 1em; display: block;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anil Verma</dc:creator><pubDate>Thu, 05 Feb 2015 15:29:28 -0000</pubDate><guid>https://sourceforge.net599581ddb5d00cc238b251b79c440469939b06e5</guid></item></channel></rss>