Sunday, June 26, 2011

Find in which jar a class is defined!!

Useful when you have to deal with ClassNotFoundException. The command looks for all jar in the current directory and any sub-directory, and checks if the jar contains the specified class. The command lists all matching jars.

find -name "*.jar" -exec grep "CLASSNAME" {} \;
find -name "*.jar" -exec grep "org/junit/runners/Parameterized.class" {} \;

Save/Load public/private SSL keys!

Save/Load or.. Write/Read or.. Store/Retrieve Private Key/Public Key to/from disk/file.. !!

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;

import org.apache.log4j.Logger;

import com.mt.classification.InterfaceAudience;
import com.mt.classification.InterfaceStability;

/**
 * TODO Description go here.
 *
 * @author Varra
 * @version 1.0
 *
 */
@InterfaceAudience.Public
@InterfaceStability.Evolving
public class SSLKeyFinder
{
   
    /** The logger to log the debugging messages as application runs. */
    private static final Logger logger = Logger.getLogger(SSLKeyFinder.class);
   
    /**
     * The main method.
     *
     * @param args
     *            the arguments
     */
    public static void main(String args[])
    {
        final SSLKeyFinder keyFinder = new SSLKeyFinder();
        try
        {
            final String path = "C:\\Documents and Settings\\george\\My Documents\\workspaces\\gsoc09\\playground\\tmp";
            final KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA");
            keyGen.initialize(1024);
            final KeyPair generatedKeyPair = keyGen.genKeyPair();
            logger.info("Generated Key Pair");
            keyFinder.dumpKeyPair(generatedKeyPair);
            keyFinder.SaveKeyPair(path, generatedKeyPair);
            final KeyPair loadedKeyPair = keyFinder.LoadKeyPair(path, "DSA");
            logger.info("Loaded Key Pair");
            keyFinder.dumpKeyPair(loadedKeyPair);
        }
        catch (Exception e)
        {
            e.printStackTrace();
            return;
        }
    }
   
    /**
     * Dump key pair.
     *
     * @param keyPair
     *            the key pair
     */
    private void dumpKeyPair(KeyPair keyPair)
    {
        final PublicKey pub = keyPair.getPublic();
        logger.info("Public Key: " + getHexString(pub.getEncoded()));
        final PrivateKey priv = keyPair.getPrivate();
        logger.info("Private Key: " + getHexString(priv.getEncoded()));
    }
   
    /**
     * Gets the hex string.
     *
     * @param b
     *            the b
     * @return the hex string
     */
    private String getHexString(byte[] b)
    {
        String result = "";
        for (int i = 0; i < b.length; i++)
        {
            result += Integer.toString((b[i] & 0xff) + 0x100, 16).substring(1);
        }
        return result;
    }
   
    /**
     * Save key pair.
     *
     * @param path
     *            the path
     * @param keyPair
     *            the key pair
     * @throws IOException
     *             Signals that an I/O exception has occurred.
     */
    public void SaveKeyPair(String path, KeyPair keyPair) throws IOException
    {
        final PrivateKey privateKey = keyPair.getPrivate();
        final PublicKey publicKey = keyPair.getPublic();
        // Store Public Key.
        final X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(publicKey.getEncoded());
        FileOutputStream fos = new FileOutputStream(path + "/public.key");
        fos.write(x509EncodedKeySpec.getEncoded());
        fos.close();
        // Store Private Key.
        final PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(privateKey.getEncoded());
        fos = new FileOutputStream(path + "/private.key");
        fos.write(pkcs8EncodedKeySpec.getEncoded());
        fos.close();
    }
   
    /**
     * Loads the key pair.
     *
     * @param path
     *            the path
     * @param algorithm
     *            the algorithm
     * @return the key pair
     * @throws IOException
     *             Signals that an I/O exception has occurred.
     * @throws NoSuchAlgorithmException
     *             the no such algorithm exception
     * @throws InvalidKeySpecException
     *             the invalid key spec exception
     */
    public KeyPair LoadKeyPair(String path, String algorithm) throws IOException, NoSuchAlgorithmException,
            InvalidKeySpecException
    {
        // Read Public Key.
        final File filePublicKey = new File(path + "/public.key");
        FileInputStream fis = new FileInputStream(path + "/public.key");
        final byte[] encodedPublicKey = new byte[(int) filePublicKey.length()];
        fis.read(encodedPublicKey);
        fis.close();
        // Read Private Key.
        final File filePrivateKey = new File(path + "/private.key");
        fis = new FileInputStream(path + "/private.key");
        final byte[] encodedPrivateKey = new byte[(int) filePrivateKey.length()];
        fis.read(encodedPrivateKey);
        fis.close();
        // Generate KeyPair.
        final KeyFactory keyFactory = KeyFactory.getInstance(algorithm);
        final X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(encodedPublicKey);
        final PublicKey publicKey = keyFactory.generatePublic(publicKeySpec);
        final PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(encodedPrivateKey);
        final PrivateKey privateKey = keyFactory.generatePrivate(privateKeySpec);
       
        return new KeyPair(publicKey, privateKey);
    }
}

Checking leap Year in java ..!

The cool logic to decide whether the given year is a leap year or not .. !!

/**
     * Checks if the given year is a leap year.
     *
     * @param year
     *            the year
     * @return true, if is leap year
     */
    public boolean isLeapYear(final int year)
    {
        boolean isLeapYear = true; // Optimist
        final int divideByFour = year % 4;
        final int divideBy100 = year % 100;
        final int divideBy400 = year % 400;
        if (divideBy400 == 0)
        {
            isLeapYear = true;
        }
        else if (divideBy100 == 0)
        {
            isLeapYear = false;
        }
        else if (divideByFour == 0)
        {
            isLeapYear = true;
        }
        else
        {
            isLeapYear = false;
        }
       
        return isLeapYear;
    }

Java Map Sorter Method Based on Map Values and Comparator!

/**
     * A helper method that sorts the map sent, based on sorting its values
     * using the comparator passed with it
     *
     * @param input
     *            The map to be sorted
     * @param comparator
     *            the comparator to be used to sort the map values
     *
     * @return A new Sorted HashMap that holds the values
     *
     * @author Varra
     * @version 0.4.2
     */
    public static <T, E> Map<T, E> sortMap(final Map<T, E> input, Comparator<E> comparator)
    {
        final Map<T, E> tempMap = new HashMap<T, E>();
        for (T wsState : input.keySet())
        {
            tempMap.put(wsState, input.get(wsState));
        }
        final List<T> mapKeys = new ArrayList<T>(tempMap.keySet());
        final List<E> mapValues = new ArrayList<E>(tempMap.values());
        // Resultant map
        final HashMap<T, E> sortedMap = new LinkedHashMap<T, E>();
        final List<E> sortedList = new ArrayList<E>(mapValues);
        Collections.sort(sortedList, comparator);
        for (int i = 0; i < sortedList.size(); i++)
        {
            sortedMap.put(mapKeys.get(mapValues.indexOf(sortedList.get(i))), (E) sortedList.get(i));
        }
        return sortedMap;
    }

JDBC MySQL quick start !

public static void main(String[] args) throws SQLException
{
    try
    {
        Class.forName("com.mysql.jdbc.Driver");
    }
    catch (ClassNotFoundException ex)
    {
        Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
    }
    Connection con = null;
    Statement stmt = null;
    ResultSet rs = null;
    con = DriverManager.getConnection("jdbc:mysql://desktop:3306/employees", "sukanta", "sukanta");
    stmt = con.createStatement();
    ResultSet result = stmt.executeQuery("SELECT * FROM table1");
    while (result.next())
        System.out.println(result.getString(1) + " " + result.getString(2));
    result.close();
    con.close();
}

Axis call over SSL ..!

  System.setProperty("javax.net.debug", "ssl");
  System.setProperty("javax.net.ssl.trustStore", RUTA_TRUSTSTORE);
  System.setProperty("javax.net.ssl.trustStorePassword", PASS_TRUSTSTORE);
  System.setProperty("javax.net.ssl.keyStoreType", KEYSTORE_TYPE);
 
  org.apache.axis.client.Service service = new Service();
  org.apache.axis.client.Call call = (Call) service.createCall();
  call.setTargetEndpointAddress(new java.net.URL(ENDPOINT));
  call.setOperationName(OPERATION_NAME);
  String ret = (String) call.invoke(new Object[] { PARAMETER });

Send SMS vis SMS Gateway using Java!

See this for details and signup: http://www.smsmatrix.com/?sms-gateway

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;

/**
 * The Class MailReader.
 *
 * @author Varra
 * @version 1.0
 */
public final class MailReader
{
   
    /**
     * The main method.
     *
     * @param args
     *            the arguments
     */
    public static void main(String[] args)
    {
        try
        {
            String MATRIXURL = "http://www.smsmatrix.com/matrix";
            String PHONE = "9551231331";
            String USERNAME = "v.rajareddy@hotmail.com";
            String PASSWORD = "prathap";
            String TXT = "This is a test, pls ignore";
           
            String q = "username=" + URLEncoder.encode(USERNAME, "UTF-8");
            q += "&" + "password=" + URLEncoder.encode(PASSWORD, "UTF-8");
            q += "&" + "phone=" + PHONE;
            q += "&" + "txt=" + URLEncoder.encode(TXT, "UTF-8");
           
            URL url = new URL(MATRIXURL);
            URLConnection conn = url.openConnection();
            conn.setDoOutput(true);
            OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
            wr.write(q);
            wr.flush();
           
            BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            System.out.println("Matrix API Response :");
            while ((line = rd.readLine()) != null)
            {
                System.out.println(line);
            }
            wr.close();
            rd.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

Parse Data from Gmail Using JavaMail API and IMAP !

This is a basic routine for connecting to the Gmail servers using the JavaMail API over the IMAP protocol and parsing data from those e-mails.

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Locale;
import java.util.Properties;

import javax.mail.Address;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.internet.MimeMessage;

/**
 * The Class MailReader.
 *
 * @author Varra
 * @version 1.0
 */
public final class MailReader
{
   
    /**
     * The main method.
     *
     * @param args
     *            the arguments
     */
    public static void main(String[] args)
    {
       
        String host = "imap.gmail.com";
        String username = "myusername";
        String password = "mypassword";
       
        SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
       
        Properties props = System.getProperties();
        props.setProperty("mail.store.protocol", "imaps");
       
        BufferedWriter myWriter = null;
        try
        {
            myWriter = new BufferedWriter(new FileWriter(
                    "/home/diggler/Desktop/groovy_testing/BigBendHotSprings/BBHSHelpers.csv"));
            myWriter.write("\"Sent Date\",\"Subject\",\"From\",\"E-Mail\",\"Phone Number\",\"Skills & Interests\",\"Comments\"\n");
        }
        catch (IOException myIOE)
        {
            myIOE.printStackTrace();
        }
       
        try
        {
           
            Session mySession = Session.getDefaultInstance(props, null);
            Store myStore = mySession.getStore("imaps");
            myStore.connect(host, username, password);
           
            System.out.println(myStore);
           
            Folder inbox = myStore.getFolder("BBHS Helpers");
            inbox.open(Folder.READ_ONLY);
            Message messages[] = inbox.getMessages();
            System.out.println(messages.length);
           
            for (Message message : messages)
            {
                Address addys[] = message.getReplyTo();
                for (Address addy : addys)
                {
                    // System.out.println( addy.toString() );
                    if (addy.toString().trim().equals("alchemiculture <alchemiculture@culligan.dreamhost.com>"))
                    {
                        if (message.getSubject().startsWith("BigBendHotSprings.org Message from"))
                        {
                            String messageSubject = message.getSubject();
                            String sentDate = myFormatter.format(message.getSentDate());
                            MimeMessage myMimeMessage = (MimeMessage) message;
                            try
                            {
                                // System.out.println( messageSubject );
                                // System.out.println( sentDate );
                                String messageContent = (String) myMimeMessage.getContent();
                                String messageContentLines[] = messageContent.split("\n");
                                String from = "";
                                String eMail = "";
                                String phoneNumber = "";
                                for (String line : messageContentLines)
                                {
                                    if (line.startsWith("From:"))
                                    {
                                        from = line.split(":")[1].trim();
                                    }
                                    if (line.startsWith("Email:"))
                                    {
                                        eMail = line.split(":")[1].trim();
                                    }
                                    if (line.startsWith("Phone:"))
                                    {
                                        phoneNumber = line.split(":")[1].trim();
                                    }
                                }
                                String messageContentSplits[] = messageContent.split("Skills and Interests:");
                                String messageContentSplitsII[] = messageContentSplits[1].split("Comments:");
                                String skillsAndInterests = messageContentSplitsII[0].trim();
                                skillsAndInterests = skillsAndInterests.replaceAll("\n", "");
                                skillsAndInterests = skillsAndInterests.replaceAll("\"", "");
                                skillsAndInterests = skillsAndInterests.replaceAll(",", "");
                                String comments = messageContentSplitsII[1].trim();
                                comments = comments.replaceAll("\n", "");
                                comments = comments.replaceAll("\"", "");
                                comments = comments.replaceAll(",", "");
                               
                                // System.out.println( skillsAndInterests );
                                // System.out.println( comments );
                               
                                myWriter.write("\"" + sentDate + "\",\"" + messageSubject + "\",\"" + from + "\",\""
                                        + eMail + "\",\"" + phoneNumber + "\",\"" + skillsAndInterests + "\",\""
                                        + comments + "\"\n");
                               
                            }
                            catch (IOException myIOE)
                            {
                                myIOE.printStackTrace();
                            }
                        }
                    }
                }
            }
           
        }
        catch (NoSuchProviderException e)
        {
            e.printStackTrace();
        }
        catch (MessagingException e)
        {
            e.printStackTrace();
        }
       
        try
        {
            myWriter.close();
        }
        catch (IOException myIOE)
        {
            myIOE.printStackTrace();
        }
       
    }
}

Read User Input with Scanner Class in Java!

This snippet will allow you to read user's input when they write in the console. This method uses the Scanner class, which is my favorite way of doing instead of using the Buffered Reader, with the Scanner, you can also read from a file.

It is very easy and elegent too ..!!


import java.util.Scanner;

/**
 * The Class ReadUserInput.
 *
 * @author Varra
 * @version 1.0
 */
public class ReadUserInput
{
   
    /**
     * The main method.
     *
     * @param args
     *            the arguments
     */
    public static void main(String[] args)
    {
       
        Scanner sc = new Scanner(System.in); // Creates the scanner and tells it
        // to read from the keyboard(System.in)
       
        System.out.println("Enter your name.");
        final String name = sc.nextLine(); // Sets name equal to user's input
        // if you just call the "next" method, the Scanner will read up to the
        // first space.
        System.out.println("Hello " + name);// Greets the user
       
    }
   
}

Printing GC frequency in Java using awk.!

Parse Java stdout (or .out log) and print GC frequency per minute.
Assumes following JVM flags are set
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbose:gc

 #! /usr/bin/awk -f
 
 # Awk script to parse Java .out log and print GC frequency per minute
 #
 # Assumes following JVM flags are set:
 # -XX:+PrintGCDetails
 # -XX:+PrintGCTimeStamps
 # -verbose:gc
 
BEGIN {print "t,count"}

/\[GC:/
{
     split($7, a, ":");
     t=a[1]":"a[2];
     freq[t]++ ;
     if (start[1] == null)
     {
         start[1] = a[1];
         start[2] = a[2];
     }
     end[1] = a[1];
     end[2] = a[2];
}

END
{
     for (hour = start[1]; hour <= end[1]; hour++)
     {
          for (minute = 0; minute <= 59; minute++)
          {
               t = sprintf("%02d:%02d", hour, minute);
               if (freq[t] == null)
               {
                       printf "%s,%d\n", t, 0;
               }
               else
               {
                       printf "%s,%d\n", t, freq[t];
               }
          }
     }
}

PID of Java Process From Same Process Without Using Exec ..!

Yes, we can do it with out doing Exec operation, It is possible thru JMX.
This is especially useful to have appear in logs. While it is totally up to the JVM implementation what to return for the name, most seem to return a numeric process identifier.


final String pid = ManagementFactory.getRuntimeMXBean().getName();
log.info("Application is started with pid: " + pid);

Cheers,
Varra

Caching with ECache

download Ehcache (www.http://ehcache.org/) from website, unzip it and use ehcache.xml inside root folder

import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheException;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;

/**
 * The Class ClipBoard.
 *
 * @author Varra
 * @version 1.0
 */
public class ClipBoard
{
   
    /** The cache. */
    static Cache cache = null;
    static
    {
        CacheManager cacheManager = null;
        try
        {
            cacheManager = CacheManager
                    .create("C:/Users/varra/Desktop/MPPSources/MeiboPeoplePack/Packaging/Tools/Meibo/Studio/ehcache.xml");
        }
        catch (CacheException e)
        {
            e.printStackTrace();
        }
        cache = cacheManager.getCache("sampleCache1");
    }
   
    /**
     * The main method.
     *
     * @param args
     *            the arguments
     * @throws IllegalStateException
     *             the illegal state exception
     * @throws CacheException
     *             the cache exception
     */
    public static void main(String[] args) throws IllegalStateException, CacheException
    {
        String result = doit("a");
        System.out.println(result);
        result = doit("a");
        System.out.println(result);
    }
   
    /**
     * Doit.
     *
     * @param key
     *            the key
     * @return the string
     * @throws IllegalStateException
     *             the illegal state exception
     * @throws CacheException
     *             the cache exception
     */
    public static String doit(String key) throws IllegalStateException, CacheException
    {
        String result;
        // get an element from cache by key
        Element e = cache.get(key);
        if (e != null)
        {
            result = (String) e.getValue();
            System.out.println("retrieved " + result + " from cache ");
        }
        else
        {
            result = "new value";
            cache.put(new Element(key, result));
        }
        return result;
    }
}

Create Zip file in memory !

I find myself writing and rewriting this piece of code whenever I want to zip a set of files (in memory) and return the zipped file back as an object in memory. I often use this when the user requests a download of multiple reports and the deployment environment doesn't allow for disk access.

I thought I'd post it here so that I could copy-paste it the next time I need it :) If you've stumbled upon this page, you're free to use the code below too!


private static byte[] createZip(Map files) throws IOException
    {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        ZipOutputStream zipfile = new ZipOutputStream(bos);
        Iterator i = files.keySet().iterator();
        String fileName = null;
        ZipEntry zipentry = null;
        while (i.hasNext())
        {
            fileName = (String) i.next();
            zipentry = new ZipEntry(fileName);
            zipfile.putNextEntry(zipentry);
            zipfile.write((byte[]) files.get(fileName));
        }
        zipfile.close();


        return bos.toByteArray();
    }

Copy, Cut and Paste in Java!


import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.ClipboardOwner;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;

/**
 * The Class ClipBoard.
 *
 * @author Varra
 * @version 1.0
 */
public class ClipBoard extends JFrame implements ClipboardOwner, ActionListener
{
   
    /** The Constant serialVersionUID. */
    private static final long serialVersionUID = 1L;
   
    /** The dst text. */
    JTextArea srcText, dstText;
   
    /** The paste button. */
    JButton copyButton, pasteButton;
   
    /** The clipboard. */
    Clipboard clipboard = getToolkit().getSystemClipboard();
   
    /**
     * Instantiates a new clip board.
     */
    public ClipBoard()
    {
        super("Clipboard Test");
        GridBagLayout gridbag = new GridBagLayout();
        GridBagConstraints c = new GridBagConstraints();
        setLayout(gridbag);
        srcText = new JTextArea(8, 32);
        c.gridwidth = 2;
        c.anchor = GridBagConstraints.CENTER;
        gridbag.setConstraints(srcText, c);
        add(srcText);
        copyButton = new JButton("Copy Above");
        copyButton.setActionCommand("copy");
        copyButton.addActionListener(this);
        c.gridy = 1;
        c.gridwidth = 1;
        gridbag.setConstraints(copyButton, c);
        add(copyButton);
        pasteButton = new JButton("Paste Below");
        pasteButton.setActionCommand("paste");
        pasteButton.addActionListener(this);
        pasteButton.setEnabled(false);
        c.gridx = 1;
        gridbag.setConstraints(pasteButton, c);
        add(pasteButton);
        dstText = new JTextArea(8, 32);
        c.gridx = 0;
        c.gridy = 2;
        c.gridwidth = 2;
        gridbag.setConstraints(dstText, c);
        add(dstText);
        pack();
    }
   
    /*
     * (non-Javadoc)
     *
     * @see
     * java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
     */
    public void actionPerformed(ActionEvent evt)
    {
        String cmd = evt.getActionCommand();
        if (cmd.equals("copy"))
        {
            // Implement Copy operation
            String srcData = srcText.getText();
            if (srcData != null)
            {
                StringSelection contents = new StringSelection(srcData);
                clipboard.setContents(contents, this);
                pasteButton.setEnabled(true);
            }
        }
        else if (cmd.equals("paste"))
        {
            // Implement Paste operation
            Transferable content = clipboard.getContents(this);
            if (content != null)
            {
                try
                {
                    String dstData = (String) content.getTransferData(DataFlavor.stringFlavor);
                    dstText.append(dstData);
                }
                catch (Exception e)
                {
                    System.out.println("Couldn't get contents in format: "
                            + DataFlavor.stringFlavor.getHumanPresentableName());
                }
            }
        }
    }
   
    /*
     * (non-Javadoc)
     *
     * @see
     * java.awt.datatransfer.ClipboardOwner#lostOwnership(java.awt.datatransfer
     * .Clipboard, java.awt.datatransfer.Transferable)
     */
    public void lostOwnership(Clipboard clipboard, Transferable contents)
    {
        System.out.println("Clipboard contents replaced");
    }
   
    /**
     * The main method.
     *
     * @param args
     *            the arguments
     */
    public static void main(String[] args)
    {
        ClipBoard test = new ClipBoard();
        test.setVisible(true);
    }
}

Simple tail Program!

A simple testing assertion which looks up for a line within a file until a pre defined time frame ends.

package com;

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Date;

import org.apache.log4j.Logger;

/**
 *
 * TODO Description go here.
 *
 * @author Varra
 * @version 1.0
 *
 */
public class TailAssertor
{
   
    private static final long sec = 1000L;
   
    private static final Logger log = Logger.getLogger(TailAssertor.class);
   
    private static long sampleInterval = 5000;
   
    /**
     * Asserts a new line with tail.
     *
     * @param logfile
     * @param expectedLine
     * @param durationInSec
     */
    public static void assertNewLinesWithTail(final File logfile, final String expectedLine, int durationInSec)
    {
        long filePointer = logfile.length();// The file pointer keeps track of
                                            // where we are in the file
        RandomAccessFile file = null;
        try
        {
            file = new RandomAccessFile(logfile, "r");
            for (final Date startTime = new Date(); new Date().getTime() - startTime.getTime() < durationInSec * sec;)
            {
                long fileLength = logfile.length();
                if (fileLength < filePointer)
                {
                    // file has been cleared
                    file = new RandomAccessFile(logfile, "r");
                    filePointer = 0;
                }
                if (fileLength > filePointer)
                {
                    file.seek(filePointer);// There is new data to read
                    for (String line = file.readLine(); line != null;)
                    {
                        if (line.contains(expectedLine))
                        {
                            return;
                        }
                        line = file.readLine();
                    }
                    filePointer = file.getFilePointer();
                }
                Thread.sleep(sampleInterval);// Sleep for the specified interval
            }
        }
        catch (Exception e)
        {
            log.error(e);
        }
        finally
        {
            closeFile(file);
        }
        throw new AssertionError("the requested line wasn't found within the required time frame!");
    }
   
    /**
     * CLoses the file.
     *
     * @param file
     */
    private static void closeFile(RandomAccessFile file)
    {
        if (file != null)
        {
            try
            {
                file.close();
            }
            catch (IOException e)
            {
                log.error(e);
            }
        }
    }
}

Java heap and stack size increase!

java -Xss32768k -Xms128M -Xmx512M -jar myfile.jar

Hibernate XML Configuration file in java !

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.HSQLDialect</property>

        <!-- Database connection settings -->
        <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
        <property name="connection.url">jdbc:hsqldb:data/music</property>
        <property name="connection.username">sa</property>
        <property name="connection.password"></property>
        <property name="connection.shutdown">true</property>

        <!-- JDBC connection pool (use the built-in one) -->
        <property name="connection.pool_size">1</property>

        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>

        <!-- Disable the second-level cache -->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

        <!-- disable batching so HSQLDB will propagate errors correctly. -->
        <property name="jdbc.batch_size">0</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>

        <!-- List all the mapping documents we're using -->
        <mapping resource="com/oreilly/hh/data/Track.hbm.xml" />
    </session-factory>
</hibernate-configuration>

Loading a text file resource from classpath in Java !

final URL resource = this.getClass().getClassLoader().getResource(path);
final List<String> lines=IOUtils.readLines((InputStream)resource.getContent());

Set Linux environment variables JAVA_HOME & PATH globally using /etc/profile !

    export JAVA_HOME=/usr/lib/jvm/default-java/jre
    export PATH=$JAVA_HOME/bin:$PATH

Java Proxy settings..!

Simple way to configure the JVM to use the proxy in the network

System.getProperties().put( "http.proxyHost", "10.0.0.1" );
System.getProperties().put( "http.proxyPort", "3128" );

TimeZone Enum in Java .!


import java.util.TimeZone;
/**
 *
 * This is simply all the available TimeZones from java.util.TimeZone as type
 * safe enum.
 *
 * @author Varra
 * @version 1.0
 *
 */
public enum TimeZoneEnum
{
   
    DEFAULT(TimeZone.getDefault()),
   
    // default JDK 1.4.2 time zones
    ACT(TimeZone.getTimeZone("ACT")),
    AET(TimeZone.getTimeZone("AET")),
    AFRICA_ABIDJAN(TimeZone.getTimeZone("Africa/Abidjan")),
    AFRICA_ACCRA(TimeZone.getTimeZone("Africa/Accra")),
    AFRICA_ADDIS_ABABA(TimeZone.getTimeZone("Africa/Addis_Ababa")),
    AFRICA_ALGIERS(TimeZone.getTimeZone("Africa/Algiers")),
    AFRICA_ASMERA(TimeZone.getTimeZone("Africa/Asmera")),
    AFRICA_BAMAKO(TimeZone.getTimeZone("Africa/Bamako")),
    AFRICA_BANGUI(TimeZone.getTimeZone("Africa/Bangui")),
    AFRICA_BANJUL(TimeZone.getTimeZone("Africa/Banjul")),
    AFRICA_BISSAU(TimeZone.getTimeZone("Africa/Bissau")),
    AFRICA_BLANTYRE(TimeZone.getTimeZone("Africa/Blantyre")),
    AFRICA_BRAZZAVILLE(TimeZone.getTimeZone("Africa/Brazzaville")),
    AFRICA_BUJUMBURA(TimeZone.getTimeZone("Africa/Bujumbura")),
    AFRICA_CAIRO(TimeZone.getTimeZone("Africa/Cairo")),
    AFRICA_CASABLANCA(TimeZone.getTimeZone("Africa/Casablanca")),
    AFRICA_CEUTA(TimeZone.getTimeZone("Africa/Ceuta")),
    AFRICA_CONAKRY(TimeZone.getTimeZone("Africa/Conakry")),
    AFRICA_DAKAR(TimeZone.getTimeZone("Africa/Dakar")),
    AFRICA_DAR_ES_SALAAM(TimeZone.getTimeZone("Africa/Dar_es_Salaam")),
    AFRICA_DJIBOUTI(TimeZone.getTimeZone("Africa/Djibouti")),
    AFRICA_DOUALA(TimeZone.getTimeZone("Africa/Douala")),
    AFRICA_EL_AAIUN(TimeZone.getTimeZone("Africa/El_Aaiun")),
    AFRICA_FREETOWN(TimeZone.getTimeZone("Africa/Freetown")),
    AFRICA_GABORONE(TimeZone.getTimeZone("Africa/Gaborone")),
    AFRICA_HARARE(TimeZone.getTimeZone("Africa/Harare")),
    AFRICA_JOHANNESBURG(TimeZone.getTimeZone("Africa/Johannesburg")),
    AFRICA_KAMPALA(TimeZone.getTimeZone("Africa/Kampala")),
    AFRICA_KHARTOUM(TimeZone.getTimeZone("Africa/Khartoum")),
    AFRICA_KIGALI(TimeZone.getTimeZone("Africa/Kigali")),
    AFRICA_KINSHASA(TimeZone.getTimeZone("Africa/Kinshasa")),
    AFRICA_LAGOS(TimeZone.getTimeZone("Africa/Lagos")),
    AFRICA_LIBREVILLE(TimeZone.getTimeZone("Africa/Libreville")),
    AFRICA_LOME(TimeZone.getTimeZone("Africa/Lome")),
    AFRICA_LUANDA(TimeZone.getTimeZone("Africa/Luanda")),
    AFRICA_LUBUMBASHI(TimeZone.getTimeZone("Africa/Lubumbashi")),
    AFRICA_LUSAKA(TimeZone.getTimeZone("Africa/Lusaka")),
    AFRICA_MALABO(TimeZone.getTimeZone("Africa/Malabo")),
    AFRICA_MAPUTO(TimeZone.getTimeZone("Africa/Maputo")),
    AFRICA_MASERU(TimeZone.getTimeZone("Africa/Maseru")),
    AFRICA_MBABANE(TimeZone.getTimeZone("Africa/Mbabane")),
    AFRICA_MOGADISHU(TimeZone.getTimeZone("Africa/Mogadishu")),
    AFRICA_MONROVIA(TimeZone.getTimeZone("Africa/Monrovia")),
    AFRICA_NAIROBI(TimeZone.getTimeZone("Africa/Nairobi")),
    AFRICA_NDJAMENA(TimeZone.getTimeZone("Africa/Ndjamena")),
    AFRICA_NIAMEY(TimeZone.getTimeZone("Africa/Niamey")),
    AFRICA_NOUAKCHOTT(TimeZone.getTimeZone("Africa/Nouakchott")),
    AFRICA_OUAGADOUGOU(TimeZone.getTimeZone("Africa/Ouagadougou")),
    AFRICA_PORTO_NOVO(TimeZone.getTimeZone("Africa/Porto-Novo")),
    AFRICA_SAO_TOME(TimeZone.getTimeZone("Africa/Sao_Tome")),
    AFRICA_TIMBUKTU(TimeZone.getTimeZone("Africa/Timbuktu")),
    AFRICA_TRIPOLI(TimeZone.getTimeZone("Africa/Tripoli")),
    AFRICA_TUNIS(TimeZone.getTimeZone("Africa/Tunis")),
    AFRICA_WINDHOEK(TimeZone.getTimeZone("Africa/Windhoek")),
    AGT(TimeZone.getTimeZone("AGT")),
    AMERICA_ADAK(TimeZone.getTimeZone("America/Adak")),
    AMERICA_ANCHORAGE(TimeZone.getTimeZone("America/Anchorage")),
    AMERICA_ANGUILLA(TimeZone.getTimeZone("America/Anguilla")),
    AMERICA_ANTIGUA(TimeZone.getTimeZone("America/Antigua")),
    AMERICA_ARAGUAINA(TimeZone.getTimeZone("America/Araguaina")),
    AMERICA_ARUBA(TimeZone.getTimeZone("America/Aruba")),
    AMERICA_ASUNCION(TimeZone.getTimeZone("America/Asuncion")),
    AMERICA_ATKA(TimeZone.getTimeZone("America/Atka")),
    AMERICA_BARBADOS(TimeZone.getTimeZone("America/Barbados")),
    AMERICA_BELEM(TimeZone.getTimeZone("America/Belem")),
    AMERICA_BELIZE(TimeZone.getTimeZone("America/Belize")),
    AMERICA_BOA_VISTA(TimeZone.getTimeZone("America/Boa_Vista")),
    AMERICA_BOGOTA(TimeZone.getTimeZone("America/Bogota")),
    AMERICA_BOISE(TimeZone.getTimeZone("America/Boise")),
    AMERICA_BUENOS_AIRES(TimeZone.getTimeZone("America/Buenos_Aires")),
    AMERICA_CAMBRIDGE_BAY(TimeZone.getTimeZone("America/Cambridge_Bay")),
    AMERICA_CANCUN(TimeZone.getTimeZone("America/Cancun")),
    AMERICA_CARACAS(TimeZone.getTimeZone("America/Caracas")),
    AMERICA_CATAMARCA(TimeZone.getTimeZone("America/Catamarca")),
    AMERICA_CAYENNE(TimeZone.getTimeZone("America/Cayenne")),
    AMERICA_CAYMAN(TimeZone.getTimeZone("America/Cayman")),
    AMERICA_CHICAGO(TimeZone.getTimeZone("America/Chicago")),
    AMERICA_CHIHUAHUA(TimeZone.getTimeZone("America/Chihuahua")),
    AMERICA_CORDOBA(TimeZone.getTimeZone("America/Cordoba")),
    AMERICA_COSTA_RICA(TimeZone.getTimeZone("America/Costa_Rica")),
    AMERICA_CUIABA(TimeZone.getTimeZone("America/Cuiaba")),
    AMERICA_CURACAO(TimeZone.getTimeZone("America/Curacao")),
    AMERICA_DANMARKSHAVN(TimeZone.getTimeZone("America/Danmarkshavn")),
    AMERICA_DAWSON(TimeZone.getTimeZone("America/Dawson")),
    AMERICA_DAWSON_CREEK(TimeZone.getTimeZone("America/Dawson_Creek")),
    AMERICA_DENVER(TimeZone.getTimeZone("America/Denver")),
    AMERICA_DETROIT(TimeZone.getTimeZone("America/Detroit")),
    AMERICA_DOMINICA(TimeZone.getTimeZone("America/Dominica")),
    AMERICA_EDMONTON(TimeZone.getTimeZone("America/Edmonton")),
    AMERICA_EIRUNEPE(TimeZone.getTimeZone("America/Eirunepe")),
    AMERICA_EL_SALVADOR(TimeZone.getTimeZone("America/El_Salvador")),
    AMERICA_ENSENADA(TimeZone.getTimeZone("America/Ensenada")),
    AMERICA_FORT_WAYNE(TimeZone.getTimeZone("America/Fort_Wayne")),
    AMERICA_FORTALEZA(TimeZone.getTimeZone("America/Fortaleza")),
    AMERICA_GLACE_BAY(TimeZone.getTimeZone("America/Glace_Bay")),
    AMERICA_GODTHAB(TimeZone.getTimeZone("America/Godthab")),
    AMERICA_GOOSE_BAY(TimeZone.getTimeZone("America/Goose_Bay")),
    AMERICA_GRAND_TURK(TimeZone.getTimeZone("America/Grand_Turk")),
    AMERICA_GRENADA(TimeZone.getTimeZone("America/Grenada")),
    AMERICA_GUADELOUPE(TimeZone.getTimeZone("America/Guadeloupe")),
    AMERICA_GUATEMALA(TimeZone.getTimeZone("America/Guatemala")),
    AMERICA_GUAYAQUIL(TimeZone.getTimeZone("America/Guayaquil")),
    AMERICA_GUYANA(TimeZone.getTimeZone("America/Guyana")),
    AMERICA_HALIFAX(TimeZone.getTimeZone("America/Halifax")),
    AMERICA_HAVANA(TimeZone.getTimeZone("America/Havana")),
    AMERICA_HERMOSILLO(TimeZone.getTimeZone("America/Hermosillo")),
    AMERICA_INDIANA_INDIANAPOLIS(TimeZone.getTimeZone("America/Indiana/Indianapolis")),
    AMERICA_INDIANA_KNOX(TimeZone.getTimeZone("America/Indiana/Knox")),
    AMERICA_INDIANA_MARENGO(TimeZone.getTimeZone("America/Indiana/Marengo")),
    AMERICA_INDIANA_VEVAY(TimeZone.getTimeZone("America/Indiana/Vevay")),
    AMERICA_INDIANAPOLIS(TimeZone.getTimeZone("America/Indianapolis")),
    AMERICA_INUVIK(TimeZone.getTimeZone("America/Inuvik")),
    AMERICA_IQALUIT(TimeZone.getTimeZone("America/Iqaluit")),
    AMERICA_JAMAICA(TimeZone.getTimeZone("America/Jamaica")),
    AMERICA_JUJUY(TimeZone.getTimeZone("America/Jujuy")),
    AMERICA_JUNEAU(TimeZone.getTimeZone("America/Juneau")),
    AMERICA_KENTUCKY_LOUISVILLE(TimeZone.getTimeZone("America/Kentucky/Louisville")),
    AMERICA_KENTUCKY_MONTICELLO(TimeZone.getTimeZone("America/Kentucky/Monticello")),
    AMERICA_KNOX_IN(TimeZone.getTimeZone("America/Knox_IN")),
    AMERICA_LA_PAZ(TimeZone.getTimeZone("America/La_Paz")),
    AMERICA_LIMA(TimeZone.getTimeZone("America/Lima")),
    AMERICA_LOS_ANGELES(TimeZone.getTimeZone("America/Los_Angeles")),
    AMERICA_LOUISVILLE(TimeZone.getTimeZone("America/Louisville")),
    AMERICA_MACEIO(TimeZone.getTimeZone("America/Maceio")),
    AMERICA_MANAGUA(TimeZone.getTimeZone("America/Managua")),
    AMERICA_MANAUS(TimeZone.getTimeZone("America/Manaus")),
    AMERICA_MARTINIQUE(TimeZone.getTimeZone("America/Martinique")),
    AMERICA_MAZATLAN(TimeZone.getTimeZone("America/Mazatlan")),
    AMERICA_MENDOZA(TimeZone.getTimeZone("America/Mendoza")),
    AMERICA_MENOMINEE(TimeZone.getTimeZone("America/Menominee")),
    AMERICA_MERIDA(TimeZone.getTimeZone("America/Merida")),
    AMERICA_MEXICO_CITY(TimeZone.getTimeZone("America/Mexico_City")),
    AMERICA_MIQUELON(TimeZone.getTimeZone("America/Miquelon")),
    AMERICA_MONTERREY(TimeZone.getTimeZone("America/Monterrey")),
    AMERICA_MONTEVIDEO(TimeZone.getTimeZone("America/Montevideo")),
    AMERICA_MONTREAL(TimeZone.getTimeZone("America/Montreal")),
    AMERICA_MONTSERRAT(TimeZone.getTimeZone("America/Montserrat")),
    AMERICA_NASSAU(TimeZone.getTimeZone("America/Nassau")),
    AMERICA_NEW_YORK(TimeZone.getTimeZone("America/New_York")),
    AMERICA_NIPIGON(TimeZone.getTimeZone("America/Nipigon")),
    AMERICA_NOME(TimeZone.getTimeZone("America/Nome")),
    AMERICA_NORONHA(TimeZone.getTimeZone("America/Noronha")),
    AMERICA_NORTH_DAKOTA_CENTER(TimeZone.getTimeZone("America/North_Dakota/Center")),
    AMERICA_PANAMA(TimeZone.getTimeZone("America/Panama")),
    AMERICA_PANGNIRTUNG(TimeZone.getTimeZone("America/Pangnirtung")),
    AMERICA_PARAMARIBO(TimeZone.getTimeZone("America/Paramaribo")),
    AMERICA_PHOENIX(TimeZone.getTimeZone("America/Phoenix")),
    AMERICA_PORT_AU_PRINCE(TimeZone.getTimeZone("America/Port-au-Prince")),
    AMERICA_PORT_OF_SPAIN(TimeZone.getTimeZone("America/Port_of_Spain")),
    AMERICA_PORTO_ACRE(TimeZone.getTimeZone("America/Porto_Acre")),
    AMERICA_PORTO_VELHO(TimeZone.getTimeZone("America/Porto_Velho")),
    AMERICA_PUERTO_RICO(TimeZone.getTimeZone("America/Puerto_Rico")),
    AMERICA_RAINY_RIVER(TimeZone.getTimeZone("America/Rainy_River")),
    AMERICA_RANKIN_INLET(TimeZone.getTimeZone("America/Rankin_Inlet")),
    AMERICA_RECIFE(TimeZone.getTimeZone("America/Recife")),
    AMERICA_REGINA(TimeZone.getTimeZone("America/Regina")),
    AMERICA_RIO_BRANCO(TimeZone.getTimeZone("America/Rio_Branco")),
    AMERICA_ROSARIO(TimeZone.getTimeZone("America/Rosario")),
    AMERICA_SANTIAGO(TimeZone.getTimeZone("America/Santiago")),
    AMERICA_SANTO_DOMINGO(TimeZone.getTimeZone("America/Santo_Domingo")),
    AMERICA_SAO_PAULO(TimeZone.getTimeZone("America/Sao_Paulo")),
    AMERICA_SCORESBYSUND(TimeZone.getTimeZone("America/Scoresbysund")),
    AMERICA_SHIPROCK(TimeZone.getTimeZone("America/Shiprock")),
    AMERICA_ST_JOHNS(TimeZone.getTimeZone("America/St_Johns")),
    AMERICA_ST_KITTS(TimeZone.getTimeZone("America/St_Kitts")),
    AMERICA_ST_LUCIA(TimeZone.getTimeZone("America/St_Lucia")),
    AMERICA_ST_THOMAS(TimeZone.getTimeZone("America/St_Thomas")),
    AMERICA_ST_VINCENT(TimeZone.getTimeZone("America/St_Vincent")),
    AMERICA_SWIFT_CURRENT(TimeZone.getTimeZone("America/Swift_Current")),
    AMERICA_TEGUCIGALPA(TimeZone.getTimeZone("America/Tegucigalpa")),
    AMERICA_THULE(TimeZone.getTimeZone("America/Thule")),
    AMERICA_THUNDER_BAY(TimeZone.getTimeZone("America/Thunder_Bay")),
    AMERICA_TIJUANA(TimeZone.getTimeZone("America/Tijuana")),
    AMERICA_TORTOLA(TimeZone.getTimeZone("America/Tortola")),
    AMERICA_VANCOUVER(TimeZone.getTimeZone("America/Vancouver")),
    AMERICA_VIRGIN(TimeZone.getTimeZone("America/Virgin")),
    AMERICA_WHITEHORSE(TimeZone.getTimeZone("America/Whitehorse")),
    AMERICA_WINNIPEG(TimeZone.getTimeZone("America/Winnipeg")),
    AMERICA_YAKUTAT(TimeZone.getTimeZone("America/Yakutat")),
    AMERICA_YELLOWKNIFE(TimeZone.getTimeZone("America/Yellowknife")),
    ANTARCTICA_CASEY(TimeZone.getTimeZone("Antarctica/Casey")),
    ANTARCTICA_DAVIS(TimeZone.getTimeZone("Antarctica/Davis")),
    ANTARCTICA_DUMONTDURVILLE(TimeZone.getTimeZone("Antarctica/DumontDUrville")),
    ANTARCTICA_MAWSON(TimeZone.getTimeZone("Antarctica/Mawson")),
    ANTARCTICA_MCMURDO(TimeZone.getTimeZone("Antarctica/McMurdo")),
    ANTARCTICA_PALMER(TimeZone.getTimeZone("Antarctica/Palmer")),
    ANTARCTICA_ROTHERA(TimeZone.getTimeZone("Antarctica/Rothera")),
    ANTARCTICA_SOUTH_POLE(TimeZone.getTimeZone("Antarctica/South_Pole")),
    ANTARCTICA_SYOWA(TimeZone.getTimeZone("Antarctica/Syowa")),
    ANTARCTICA_VOSTOK(TimeZone.getTimeZone("Antarctica/Vostok")),
    ARCTIC_LONGYEARBYEN(TimeZone.getTimeZone("Arctic/Longyearbyen")),
    ART(TimeZone.getTimeZone("ART")),
    ASIA_ADEN(TimeZone.getTimeZone("Asia/Aden")),
    ASIA_ALMATY(TimeZone.getTimeZone("Asia/Almaty")),
    ASIA_AMMAN(TimeZone.getTimeZone("Asia/Amman")),
    ASIA_ANADYR(TimeZone.getTimeZone("Asia/Anadyr")),
    ASIA_AQTAU(TimeZone.getTimeZone("Asia/Aqtau")),
    ASIA_AQTOBE(TimeZone.getTimeZone("Asia/Aqtobe")),
    ASIA_ASHGABAT(TimeZone.getTimeZone("Asia/Ashgabat")),
    ASIA_ASHKHABAD(TimeZone.getTimeZone("Asia/Ashkhabad")),
    ASIA_BAGHDAD(TimeZone.getTimeZone("Asia/Baghdad")),
    ASIA_BAHRAIN(TimeZone.getTimeZone("Asia/Bahrain")),
    ASIA_BAKU(TimeZone.getTimeZone("Asia/Baku")),
    ASIA_BANGKOK(TimeZone.getTimeZone("Asia/Bangkok")),
    ASIA_BEIRUT(TimeZone.getTimeZone("Asia/Beirut")),
    ASIA_BISHKEK(TimeZone.getTimeZone("Asia/Bishkek")),
    ASIA_BRUNEI(TimeZone.getTimeZone("Asia/Brunei")),
    ASIA_CALCUTTA(TimeZone.getTimeZone("Asia/Calcutta")),
    ASIA_CHOIBALSAN(TimeZone.getTimeZone("Asia/Choibalsan")),
    ASIA_CHONGQING(TimeZone.getTimeZone("Asia/Chongqing")),
    ASIA_CHUNGKING(TimeZone.getTimeZone("Asia/Chungking")),
    ASIA_COLOMBO(TimeZone.getTimeZone("Asia/Colombo")),
    ASIA_DACCA(TimeZone.getTimeZone("Asia/Dacca")),
    ASIA_DAMASCUS(TimeZone.getTimeZone("Asia/Damascus")),
    ASIA_DHAKA(TimeZone.getTimeZone("Asia/Dhaka")),
    ASIA_DILI(TimeZone.getTimeZone("Asia/Dili")),
    ASIA_DUBAI(TimeZone.getTimeZone("Asia/Dubai")),
    ASIA_DUSHANBE(TimeZone.getTimeZone("Asia/Dushanbe")),
    ASIA_GAZA(TimeZone.getTimeZone("Asia/Gaza")),
    ASIA_HARBIN(TimeZone.getTimeZone("Asia/Harbin")),
    ASIA_HONG_KONG(TimeZone.getTimeZone("Asia/Hong_Kong")),
    ASIA_HOVD(TimeZone.getTimeZone("Asia/Hovd")),
    ASIA_IRKUTSK(TimeZone.getTimeZone("Asia/Irkutsk")),
    ASIA_ISTANBUL(TimeZone.getTimeZone("Asia/Istanbul")),
    ASIA_JAKARTA(TimeZone.getTimeZone("Asia/Jakarta")),
    ASIA_JAYAPURA(TimeZone.getTimeZone("Asia/Jayapura")),
    ASIA_JERUSALEM(TimeZone.getTimeZone("Asia/Jerusalem")),
    ASIA_KABUL(TimeZone.getTimeZone("Asia/Kabul")),
    ASIA_KAMCHATKA(TimeZone.getTimeZone("Asia/Kamchatka")),
    ASIA_KARACHI(TimeZone.getTimeZone("Asia/Karachi")),
    ASIA_KASHGAR(TimeZone.getTimeZone("Asia/Kashgar")),
    ASIA_KATMANDU(TimeZone.getTimeZone("Asia/Katmandu")),
    ASIA_KRASNOYARSK(TimeZone.getTimeZone("Asia/Krasnoyarsk")),
    ASIA_KUALA_LUMPUR(TimeZone.getTimeZone("Asia/Kuala_Lumpur")),
    ASIA_KUCHING(TimeZone.getTimeZone("Asia/Kuching")),
    ASIA_KUWAIT(TimeZone.getTimeZone("Asia/Kuwait")),
    ASIA_MACAO(TimeZone.getTimeZone("Asia/Macao")),
    ASIA_MACAU(TimeZone.getTimeZone("Asia/Macau")),
    ASIA_MAGADAN(TimeZone.getTimeZone("Asia/Magadan")),
    ASIA_MAKASSAR(TimeZone.getTimeZone("Asia/Makassar")),
    ASIA_MANILA(TimeZone.getTimeZone("Asia/Manila")),
    ASIA_MUSCAT(TimeZone.getTimeZone("Asia/Muscat")),
    ASIA_NICOSIA(TimeZone.getTimeZone("Asia/Nicosia")),
    ASIA_NOVOSIBIRSK(TimeZone.getTimeZone("Asia/Novosibirsk")),
    ASIA_OMSK(TimeZone.getTimeZone("Asia/Omsk")),
    ASIA_ORAL(TimeZone.getTimeZone("Asia/Oral")),
    ASIA_PHNOM_PENH(TimeZone.getTimeZone("Asia/Phnom_Penh")),
    ASIA_PONTIANAK(TimeZone.getTimeZone("Asia/Pontianak")),
    ASIA_PYONGYANG(TimeZone.getTimeZone("Asia/Pyongyang")),
    ASIA_QATAR(TimeZone.getTimeZone("Asia/Qatar")),
    ASIA_QYZYLORDA(TimeZone.getTimeZone("Asia/Qyzylorda")),
    ASIA_RANGOON(TimeZone.getTimeZone("Asia/Rangoon")),
    ASIA_RIYADH(TimeZone.getTimeZone("Asia/Riyadh")),
    ASIA_RIYADH87(TimeZone.getTimeZone("Asia/Riyadh87")),
    ASIA_RIYADH88(TimeZone.getTimeZone("Asia/Riyadh88")),
    ASIA_RIYADH89(TimeZone.getTimeZone("Asia/Riyadh89")),
    ASIA_SAIGON(TimeZone.getTimeZone("Asia/Saigon")),
    ASIA_SAKHALIN(TimeZone.getTimeZone("Asia/Sakhalin")),
    ASIA_SAMARKAND(TimeZone.getTimeZone("Asia/Samarkand")),
    ASIA_SEOUL(TimeZone.getTimeZone("Asia/Seoul")),
    ASIA_SHANGHAI(TimeZone.getTimeZone("Asia/Shanghai")),
    ASIA_SINGAPORE(TimeZone.getTimeZone("Asia/Singapore")),
    ASIA_TAIPEI(TimeZone.getTimeZone("Asia/Taipei")),
    ASIA_TASHKENT(TimeZone.getTimeZone("Asia/Tashkent")),
    ASIA_TBILISI(TimeZone.getTimeZone("Asia/Tbilisi")),
    ASIA_TEHRAN(TimeZone.getTimeZone("Asia/Tehran")),
    ASIA_TEL_AVIV(TimeZone.getTimeZone("Asia/Tel_Aviv")),
    ASIA_THIMBU(TimeZone.getTimeZone("Asia/Thimbu")),
    ASIA_THIMPHU(TimeZone.getTimeZone("Asia/Thimphu")),
    ASIA_TOKYO(TimeZone.getTimeZone("Asia/Tokyo")),
    ASIA_UJUNG_PANDANG(TimeZone.getTimeZone("Asia/Ujung_Pandang")),
    ASIA_ULAANBAATAR(TimeZone.getTimeZone("Asia/Ulaanbaatar")),
    ASIA_ULAN_BATOR(TimeZone.getTimeZone("Asia/Ulan_Bator")),
    ASIA_URUMQI(TimeZone.getTimeZone("Asia/Urumqi")),
    ASIA_VIENTIANE(TimeZone.getTimeZone("Asia/Vientiane")),
    ASIA_VLADIVOSTOK(TimeZone.getTimeZone("Asia/Vladivostok")),
    ASIA_YAKUTSK(TimeZone.getTimeZone("Asia/Yakutsk")),
    ASIA_YEKATERINBURG(TimeZone.getTimeZone("Asia/Yekaterinburg")),
    ASIA_YEREVAN(TimeZone.getTimeZone("Asia/Yerevan")),
    AST(TimeZone.getTimeZone("AST")),
    ATLANTIC_AZORES(TimeZone.getTimeZone("Atlantic/Azores")),
    ATLANTIC_BERMUDA(TimeZone.getTimeZone("Atlantic/Bermuda")),
    ATLANTIC_CANARY(TimeZone.getTimeZone("Atlantic/Canary")),
    ATLANTIC_CAPE_VERDE(TimeZone.getTimeZone("Atlantic/Cape_Verde")),
    ATLANTIC_FAEROE(TimeZone.getTimeZone("Atlantic/Faeroe")),
    ATLANTIC_JAN_MAYEN(TimeZone.getTimeZone("Atlantic/Jan_Mayen")),
    ATLANTIC_MADEIRA(TimeZone.getTimeZone("Atlantic/Madeira")),
    ATLANTIC_REYKJAVIK(TimeZone.getTimeZone("Atlantic/Reykjavik")),
    ATLANTIC_SOUTH_GEORGIA(TimeZone.getTimeZone("Atlantic/South_Georgia")),
    ATLANTIC_ST_HELENA(TimeZone.getTimeZone("Atlantic/St_Helena")),
    ATLANTIC_STANLEY(TimeZone.getTimeZone("Atlantic/Stanley")),
    AUSTRALIA_ACT(TimeZone.getTimeZone("Australia/ACT")),
    AUSTRALIA_ADELAIDE(TimeZone.getTimeZone("Australia/Adelaide")),
    AUSTRALIA_BRISBANE(TimeZone.getTimeZone("Australia/Brisbane")),
    AUSTRALIA_BROKEN_HILL(TimeZone.getTimeZone("Australia/Broken_Hill")),
    AUSTRALIA_CANBERRA(TimeZone.getTimeZone("Australia/Canberra")),
    AUSTRALIA_DARWIN(TimeZone.getTimeZone("Australia/Darwin")),
    AUSTRALIA_HOBART(TimeZone.getTimeZone("Australia/Hobart")),
    AUSTRALIA_LHI(TimeZone.getTimeZone("Australia/LHI")),
    AUSTRALIA_LINDEMAN(TimeZone.getTimeZone("Australia/Lindeman")),
    AUSTRALIA_LORD_HOWE(TimeZone.getTimeZone("Australia/Lord_Howe")),
    AUSTRALIA_MELBOURNE(TimeZone.getTimeZone("Australia/Melbourne")),
    AUSTRALIA_NORTH(TimeZone.getTimeZone("Australia/North")),
    AUSTRALIA_NSW(TimeZone.getTimeZone("Australia/NSW")),
    AUSTRALIA_PERTH(TimeZone.getTimeZone("Australia/Perth")),
    AUSTRALIA_QUEENSLAND(TimeZone.getTimeZone("Australia/Queensland")),
    AUSTRALIA_SOUTH(TimeZone.getTimeZone("Australia/South")),
    AUSTRALIA_SYDNEY(TimeZone.getTimeZone("Australia/Sydney")),
    AUSTRALIA_TASMANIA(TimeZone.getTimeZone("Australia/Tasmania")),
    AUSTRALIA_VICTORIA(TimeZone.getTimeZone("Australia/Victoria")),
    AUSTRALIA_WEST(TimeZone.getTimeZone("Australia/West")),
    AUSTRALIA_YANCOWINNA(TimeZone.getTimeZone("Australia/Yancowinna")),
    BET(TimeZone.getTimeZone("BET")),
    BRAZIL_ACRE(TimeZone.getTimeZone("Brazil/Acre")),
    BRAZIL_DENORONHA(TimeZone.getTimeZone("Brazil/DeNoronha")),
    BRAZIL_EAST(TimeZone.getTimeZone("Brazil/East")),
    BRAZIL_WEST(TimeZone.getTimeZone("Brazil/West")),
    BST(TimeZone.getTimeZone("BST")),
    CANADA_ATLANTIC(TimeZone.getTimeZone("Canada/Atlantic")),
    CANADA_CENTRAL(TimeZone.getTimeZone("Canada/Central")),
    CANADA_EAST_SASKATCHEWAN(TimeZone.getTimeZone("Canada/East-Saskatchewan")),
    CANADA_EASTERN(TimeZone.getTimeZone("Canada/Eastern")),
    CANADA_MOUNTAIN(TimeZone.getTimeZone("Canada/Mountain")),
    CANADA_NEWFOUNDLAND(TimeZone.getTimeZone("Canada/Newfoundland")),
    CANADA_PACIFIC(TimeZone.getTimeZone("Canada/Pacific")),
    CANADA_SASKATCHEWAN(TimeZone.getTimeZone("Canada/Saskatchewan")),
    CANADA_YUKON(TimeZone.getTimeZone("Canada/Yukon")),
    CAT(TimeZone.getTimeZone("CAT")),
    CET(TimeZone.getTimeZone("CET")),
    CHILE_CONTINENTAL(TimeZone.getTimeZone("Chile/Continental")),
    CHILE_EASTERISLAND(TimeZone.getTimeZone("Chile/EasterIsland")),
    CNT(TimeZone.getTimeZone("CNT")),
    CST(TimeZone.getTimeZone("CST")),
    CST6CDT(TimeZone.getTimeZone("CST6CDT")),
    CTT(TimeZone.getTimeZone("CTT")),
    CUBA(TimeZone.getTimeZone("Cuba")),
    EAT(TimeZone.getTimeZone("EAT")),
    ECT(TimeZone.getTimeZone("ECT")),
    EET(TimeZone.getTimeZone("EET")),
    EGYPT(TimeZone.getTimeZone("Egypt")),
    EIRE(TimeZone.getTimeZone("Eire")),
    EST(TimeZone.getTimeZone("EST")),
    EST5EDT(TimeZone.getTimeZone("EST5EDT")),
    ETC_GMT(TimeZone.getTimeZone("Etc/GMT")),
    ETC_GMT_PLUS_0(TimeZone.getTimeZone("Etc/GMT+0")),
    ETC_GMT_PLUS_1(TimeZone.getTimeZone("Etc/GMT+1")),
    ETC_GMT_PLUS_10(TimeZone.getTimeZone("Etc/GMT+10")),
    ETC_GMT_PLUS_11(TimeZone.getTimeZone("Etc/GMT+11")),
    ETC_GMT_PLUS_12(TimeZone.getTimeZone("Etc/GMT+12")),
    ETC_GMT_PLUS_2(TimeZone.getTimeZone("Etc/GMT+2")),
    ETC_GMT_PLUS_3(TimeZone.getTimeZone("Etc/GMT+3")),
    ETC_GMT_PLUS_4(TimeZone.getTimeZone("Etc/GMT+4")),
    ETC_GMT_PLUS_5(TimeZone.getTimeZone("Etc/GMT+5")),
    ETC_GMT_PLUS_6(TimeZone.getTimeZone("Etc/GMT+6")),
    ETC_GMT_PLUS_7(TimeZone.getTimeZone("Etc/GMT+7")),
    ETC_GMT_PLUS_8(TimeZone.getTimeZone("Etc/GMT+8")),
    ETC_GMT_PLUS_9(TimeZone.getTimeZone("Etc/GMT+9")),
    ETC_GMT_MINUS_0(TimeZone.getTimeZone("Etc/GMT-0")),
    ETC_GMT_MINUS_1(TimeZone.getTimeZone("Etc/GMT-1")),
    ETC_GMT_MINUS_10(TimeZone.getTimeZone("Etc/GMT-10")),
    ETC_GMT_MINUS_11(TimeZone.getTimeZone("Etc/GMT-11")),
    ETC_GMT_MINUS_12(TimeZone.getTimeZone("Etc/GMT-12")),
    ETC_GMT_MINUS_13(TimeZone.getTimeZone("Etc/GMT-13")),
    ETC_GMT_MINUS_14(TimeZone.getTimeZone("Etc/GMT-14")),
    ETC_GMT_MINUS_2(TimeZone.getTimeZone("Etc/GMT-2")),
    ETC_GMT_MINUS_3(TimeZone.getTimeZone("Etc/GMT-3")),
    ETC_GMT_MINUS_4(TimeZone.getTimeZone("Etc/GMT-4")),
    ETC_GMT_MINUS_5(TimeZone.getTimeZone("Etc/GMT-5")),
    ETC_GMT_MINUS_6(TimeZone.getTimeZone("Etc/GMT-6")),
    ETC_GMT_MINUS_7(TimeZone.getTimeZone("Etc/GMT-7")),
    ETC_GMT_MINUS_8(TimeZone.getTimeZone("Etc/GMT-8")),
    ETC_GMT_MINUS_9(TimeZone.getTimeZone("Etc/GMT-9")),
    ETC_GMT0(TimeZone.getTimeZone("Etc/GMT0")),
    ETC_GREENWICH(TimeZone.getTimeZone("Etc/Greenwich")),
    ETC_UCT(TimeZone.getTimeZone("Etc/UCT")),
    ETC_UNIVERSAL(TimeZone.getTimeZone("Etc/Universal")),
    ETC_UTC(TimeZone.getTimeZone("Etc/UTC")),
    ETC_ZULU(TimeZone.getTimeZone("Etc/Zulu")),
    EUROPE_AMSTERDAM(TimeZone.getTimeZone("Europe/Amsterdam")),
    EUROPE_ANDORRA(TimeZone.getTimeZone("Europe/Andorra")),
    EUROPE_ATHENS(TimeZone.getTimeZone("Europe/Athens")),
    EUROPE_BELFAST(TimeZone.getTimeZone("Europe/Belfast")),
    EUROPE_BELGRADE(TimeZone.getTimeZone("Europe/Belgrade")),
    EUROPE_BERLIN(TimeZone.getTimeZone("Europe/Berlin")),
    EUROPE_BRATISLAVA(TimeZone.getTimeZone("Europe/Bratislava")),
    EUROPE_BRUSSELS(TimeZone.getTimeZone("Europe/Brussels")),
    EUROPE_BUCHAREST(TimeZone.getTimeZone("Europe/Bucharest")),
    EUROPE_BUDAPEST(TimeZone.getTimeZone("Europe/Budapest")),
    EUROPE_CHISINAU(TimeZone.getTimeZone("Europe/Chisinau")),
    EUROPE_COPENHAGEN(TimeZone.getTimeZone("Europe/Copenhagen")),
    EUROPE_DUBLIN(TimeZone.getTimeZone("Europe/Dublin")),
    EUROPE_GIBRALTAR(TimeZone.getTimeZone("Europe/Gibraltar")),
    EUROPE_HELSINKI(TimeZone.getTimeZone("Europe/Helsinki")),
    EUROPE_ISTANBUL(TimeZone.getTimeZone("Europe/Istanbul")),
    EUROPE_KALININGRAD(TimeZone.getTimeZone("Europe/Kaliningrad")),
    EUROPE_KIEV(TimeZone.getTimeZone("Europe/Kiev")),
    EUROPE_LISBON(TimeZone.getTimeZone("Europe/Lisbon")),
    EUROPE_LJUBLJANA(TimeZone.getTimeZone("Europe/Ljubljana")),
    EUROPE_LONDON(TimeZone.getTimeZone("Europe/London")),
    EUROPE_LUXEMBOURG(TimeZone.getTimeZone("Europe/Luxembourg")),
    EUROPE_MADRID(TimeZone.getTimeZone("Europe/Madrid")),
    EUROPE_MALTA(TimeZone.getTimeZone("Europe/Malta")),
    EUROPE_MINSK(TimeZone.getTimeZone("Europe/Minsk")),
    EUROPE_MONACO(TimeZone.getTimeZone("Europe/Monaco")),
    EUROPE_MOSCOW(TimeZone.getTimeZone("Europe/Moscow")),
    EUROPE_NICOSIA(TimeZone.getTimeZone("Europe/Nicosia")),
    EUROPE_OSLO(TimeZone.getTimeZone("Europe/Oslo")),
    EUROPE_PARIS(TimeZone.getTimeZone("Europe/Paris")),
    EUROPE_PRAGUE(TimeZone.getTimeZone("Europe/Prague")),
    EUROPE_RIGA(TimeZone.getTimeZone("Europe/Riga")),
    EUROPE_ROME(TimeZone.getTimeZone("Europe/Rome")),
    EUROPE_SAMARA(TimeZone.getTimeZone("Europe/Samara")),
    EUROPE_SAN_MARINO(TimeZone.getTimeZone("Europe/San_Marino")),
    EUROPE_SARAJEVO(TimeZone.getTimeZone("Europe/Sarajevo")),
    EUROPE_SIMFEROPOL(TimeZone.getTimeZone("Europe/Simferopol")),
    EUROPE_SKOPJE(TimeZone.getTimeZone("Europe/Skopje")),
    EUROPE_SOFIA(TimeZone.getTimeZone("Europe/Sofia")),
    EUROPE_STOCKHOLM(TimeZone.getTimeZone("Europe/Stockholm")),
    EUROPE_TALLINN(TimeZone.getTimeZone("Europe/Tallinn")),
    EUROPE_TIRANE(TimeZone.getTimeZone("Europe/Tirane")),
    EUROPE_TIRASPOL(TimeZone.getTimeZone("Europe/Tiraspol")),
    EUROPE_UZHGOROD(TimeZone.getTimeZone("Europe/Uzhgorod")),
    EUROPE_VADUZ(TimeZone.getTimeZone("Europe/Vaduz")),
    EUROPE_VATICAN(TimeZone.getTimeZone("Europe/Vatican")),
    EUROPE_VIENNA(TimeZone.getTimeZone("Europe/Vienna")),
    EUROPE_VILNIUS(TimeZone.getTimeZone("Europe/Vilnius")),
    EUROPE_WARSAW(TimeZone.getTimeZone("Europe/Warsaw")),
    EUROPE_ZAGREB(TimeZone.getTimeZone("Europe/Zagreb")),
    EUROPE_ZAPOROZHYE(TimeZone.getTimeZone("Europe/Zaporozhye")),
    EUROPE_ZURICH(TimeZone.getTimeZone("Europe/Zurich")),
    GB(TimeZone.getTimeZone("GB")),
    GB_EIRE(TimeZone.getTimeZone("GB-Eire")),
    GMT(TimeZone.getTimeZone("GMT")),
    GMT0(TimeZone.getTimeZone("GMT0")),
    GREENWICH(TimeZone.getTimeZone("Greenwich")),
    HONGKONG(TimeZone.getTimeZone("Hongkong")),
    HST(TimeZone.getTimeZone("HST")),
    ICELAND(TimeZone.getTimeZone("Iceland")),
    IET(TimeZone.getTimeZone("IET")),
    INDIAN_ANTANANARIVO(TimeZone.getTimeZone("Indian/Antananarivo")),
    INDIAN_CHAGOS(TimeZone.getTimeZone("Indian/Chagos")),
    INDIAN_CHRISTMAS(TimeZone.getTimeZone("Indian/Christmas")),
    INDIAN_COCOS(TimeZone.getTimeZone("Indian/Cocos")),
    INDIAN_COMORO(TimeZone.getTimeZone("Indian/Comoro")),
    INDIAN_KERGUELEN(TimeZone.getTimeZone("Indian/Kerguelen")),
    INDIAN_MAHE(TimeZone.getTimeZone("Indian/Mahe")),
    INDIAN_MALDIVES(TimeZone.getTimeZone("Indian/Maldives")),
    INDIAN_MAURITIUS(TimeZone.getTimeZone("Indian/Mauritius")),
    INDIAN_MAYOTTE(TimeZone.getTimeZone("Indian/Mayotte")),
    INDIAN_REUNION(TimeZone.getTimeZone("Indian/Reunion")),
    IRAN(TimeZone.getTimeZone("Iran")),
    ISRAEL(TimeZone.getTimeZone("Israel")),
    IST(TimeZone.getTimeZone("IST")),
    JAMAICA(TimeZone.getTimeZone("Jamaica")),
    JAPAN(TimeZone.getTimeZone("Japan")),
    JST(TimeZone.getTimeZone("JST")),
    KWAJALEIN(TimeZone.getTimeZone("Kwajalein")),
    LIBYA(TimeZone.getTimeZone("Libya")),
    MET(TimeZone.getTimeZone("MET")),
    MEXICO_BAJANORTE(TimeZone.getTimeZone("Mexico/BajaNorte")),
    MEXICO_BAJASUR(TimeZone.getTimeZone("Mexico/BajaSur")),
    MEXICO_GENERAL(TimeZone.getTimeZone("Mexico/General")),
    MIDEAST_RIYADH87(TimeZone.getTimeZone("Mideast/Riyadh87")),
    MIDEAST_RIYADH88(TimeZone.getTimeZone("Mideast/Riyadh88")),
    MIDEAST_RIYADH89(TimeZone.getTimeZone("Mideast/Riyadh89")),
    MIT(TimeZone.getTimeZone("MIT")),
    MST(TimeZone.getTimeZone("MST")),
    MST7MDT(TimeZone.getTimeZone("MST7MDT")),
    NAVAJO(TimeZone.getTimeZone("Navajo")),
    NET(TimeZone.getTimeZone("NET")),
    NST(TimeZone.getTimeZone("NST")),
    NZ(TimeZone.getTimeZone("NZ")),
    NZ_CHAT(TimeZone.getTimeZone("NZ-CHAT")),
    PACIFIC_APIA(TimeZone.getTimeZone("Pacific/Apia")),
    PACIFIC_AUCKLAND(TimeZone.getTimeZone("Pacific/Auckland")),
    PACIFIC_CHATHAM(TimeZone.getTimeZone("Pacific/Chatham")),
    PACIFIC_EASTER(TimeZone.getTimeZone("Pacific/Easter")),
    PACIFIC_EFATE(TimeZone.getTimeZone("Pacific/Efate")),
    PACIFIC_ENDERBURY(TimeZone.getTimeZone("Pacific/Enderbury")),
    PACIFIC_FAKAOFO(TimeZone.getTimeZone("Pacific/Fakaofo")),
    PACIFIC_FIJI(TimeZone.getTimeZone("Pacific/Fiji")),
    PACIFIC_FUNAFUTI(TimeZone.getTimeZone("Pacific/Funafuti")),
    PACIFIC_GALAPAGOS(TimeZone.getTimeZone("Pacific/Galapagos")),
    PACIFIC_GAMBIER(TimeZone.getTimeZone("Pacific/Gambier")),
    PACIFIC_GUADALCANAL(TimeZone.getTimeZone("Pacific/Guadalcanal")),
    PACIFIC_GUAM(TimeZone.getTimeZone("Pacific/Guam")),
    PACIFIC_HONOLULU(TimeZone.getTimeZone("Pacific/Honolulu")),
    PACIFIC_JOHNSTON(TimeZone.getTimeZone("Pacific/Johnston")),
    PACIFIC_KIRITIMATI(TimeZone.getTimeZone("Pacific/Kiritimati")),
    PACIFIC_KOSRAE(TimeZone.getTimeZone("Pacific/Kosrae")),
    PACIFIC_KWAJALEIN(TimeZone.getTimeZone("Pacific/Kwajalein")),
    PACIFIC_MAJURO(TimeZone.getTimeZone("Pacific/Majuro")),
    PACIFIC_MARQUESAS(TimeZone.getTimeZone("Pacific/Marquesas")),
    PACIFIC_MIDWAY(TimeZone.getTimeZone("Pacific/Midway")),
    PACIFIC_NAURU(TimeZone.getTimeZone("Pacific/Nauru")),
    PACIFIC_NIUE(TimeZone.getTimeZone("Pacific/Niue")),
    PACIFIC_NORFOLK(TimeZone.getTimeZone("Pacific/Norfolk")),
    PACIFIC_NOUMEA(TimeZone.getTimeZone("Pacific/Noumea")),
    PACIFIC_PAGO_PAGO(TimeZone.getTimeZone("Pacific/Pago_Pago")),
    PACIFIC_PALAU(TimeZone.getTimeZone("Pacific/Palau")),
    PACIFIC_PITCAIRN(TimeZone.getTimeZone("Pacific/Pitcairn")),
    PACIFIC_PONAPE(TimeZone.getTimeZone("Pacific/Ponape")),
    PACIFIC_PORT_MORESBY(TimeZone.getTimeZone("Pacific/Port_Moresby")),
    PACIFIC_RAROTONGA(TimeZone.getTimeZone("Pacific/Rarotonga")),
    PACIFIC_SAIPAN(TimeZone.getTimeZone("Pacific/Saipan")),
    PACIFIC_SAMOA(TimeZone.getTimeZone("Pacific/Samoa")),
    PACIFIC_TAHITI(TimeZone.getTimeZone("Pacific/Tahiti")),
    PACIFIC_TARAWA(TimeZone.getTimeZone("Pacific/Tarawa")),
    PACIFIC_TONGATAPU(TimeZone.getTimeZone("Pacific/Tongatapu")),
    PACIFIC_TRUK(TimeZone.getTimeZone("Pacific/Truk")),
    PACIFIC_WAKE(TimeZone.getTimeZone("Pacific/Wake")),
    PACIFIC_WALLIS(TimeZone.getTimeZone("Pacific/Wallis")),
    PACIFIC_YAP(TimeZone.getTimeZone("Pacific/Yap")),
    PLT(TimeZone.getTimeZone("PLT")),
    PNT(TimeZone.getTimeZone("PNT")),
    POLAND(TimeZone.getTimeZone("Poland")),
    PORTUGAL(TimeZone.getTimeZone("Portugal")),
    PRC(TimeZone.getTimeZone("PRC")),
    PRT(TimeZone.getTimeZone("PRT")),
    PST(TimeZone.getTimeZone("PST")),
    PST8PDT(TimeZone.getTimeZone("PST8PDT")),
    ROK(TimeZone.getTimeZone("ROK")),
    SINGAPORE(TimeZone.getTimeZone("Singapore")),
    SST(TimeZone.getTimeZone("SST")),
    SYSTEMV_AST4(TimeZone.getTimeZone("SystemV/AST4")),
    SYSTEMV_AST4ADT(TimeZone.getTimeZone("SystemV/AST4ADT")),
    SYSTEMV_CST6(TimeZone.getTimeZone("SystemV/CST6")),
    SYSTEMV_CST6CDT(TimeZone.getTimeZone("SystemV/CST6CDT")),
    SYSTEMV_EST5(TimeZone.getTimeZone("SystemV/EST5")),
    SYSTEMV_EST5EDT(TimeZone.getTimeZone("SystemV/EST5EDT")),
    SYSTEMV_HST10(TimeZone.getTimeZone("SystemV/HST10")),
    SYSTEMV_MST7(TimeZone.getTimeZone("SystemV/MST7")),
    SYSTEMV_MST7MDT(TimeZone.getTimeZone("SystemV/MST7MDT")),
    SYSTEMV_PST8(TimeZone.getTimeZone("SystemV/PST8")),
    SYSTEMV_PST8PDT(TimeZone.getTimeZone("SystemV/PST8PDT")),
    SYSTEMV_YST9(TimeZone.getTimeZone("SystemV/YST9")),
    SYSTEMV_YST9YDT(TimeZone.getTimeZone("SystemV/YST9YDT")),
    TURKEY(TimeZone.getTimeZone("Turkey")),
    UCT(TimeZone.getTimeZone("UCT")),
    UNIVERSAL(TimeZone.getTimeZone("Universal")),
    US_ALASKA(TimeZone.getTimeZone("US/Alaska")),
    US_ALEUTIAN(TimeZone.getTimeZone("US/Aleutian")),
    US_ARIZONA(TimeZone.getTimeZone("US/Arizona")),
    US_CENTRAL(TimeZone.getTimeZone("US/Central")),
    US_EAST_INDIANA(TimeZone.getTimeZone("US/East-Indiana")),
    US_EASTERN(TimeZone.getTimeZone("US/Eastern")),
    US_HAWAII(TimeZone.getTimeZone("US/Hawaii")),
    US_INDIANA_STARKE(TimeZone.getTimeZone("US/Indiana-Starke")),
    US_MICHIGAN(TimeZone.getTimeZone("US/Michigan")),
    US_MOUNTAIN(TimeZone.getTimeZone("US/Mountain")),
    US_PACIFIC(TimeZone.getTimeZone("US/Pacific")),
    US_PACIFIC_NEW(TimeZone.getTimeZone("US/Pacific-New")),
    US_SAMOA(TimeZone.getTimeZone("US/Samoa")),
    UTC(TimeZone.getTimeZone("UTC")),
    VST(TimeZone.getTimeZone("VST")),
    W_SU(TimeZone.getTimeZone("W-SU")),
    WET(TimeZone.getTimeZone("WET")),
    ZULU(TimeZone.getTimeZone("Zulu"));
   
    private final TimeZone tz;
   
    /**
     * Sets the {@link TimeZone}
     * @param tz
     */
    private TimeZoneEnum(final TimeZone tz)
    {
        this.tz = tz;
    }
   
    /**
     * Gets the {@link TimeZone}
     *
     * @return
     */
    public final TimeZone getTimeZone()
    {
        return tz;
    }
}