/*
 * See the NOTICE file distributed with this work for additional
 * information regarding copyright ownership.
 *
 * This is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; either version 2.1 of
 * the License, or (at your option) any later version.
 *
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this software; if not, write to the Free
 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
 *
 */

package com.xpn.xwiki;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import org.apache.commons.lang.StringUtils;

public class XWikiConfig extends Properties {

    public XWikiConfig() {
        // Default constructor so that properties can be added after constructing the instance 
        // by using XWikiConfig.put().
    }
    
    public XWikiConfig(String path) throws XWikiException {
       try {
           FileInputStream fis = new FileInputStream(path);
           loadConfig(fis, path);
       }
       catch (FileNotFoundException e) {
           Object[] args = { path };
           throw new XWikiException(XWikiException.MODULE_XWIKI_CONFIG,
               XWikiException.ERROR_XWIKI_CONFIG_FILENOTFOUND,
               "Configuration file {0} not found", e, args);
           }
    }

    public XWikiConfig(InputStream is) throws XWikiException {
       loadConfig(is, "");
    }

    public void loadConfig(InputStream is, String path) throws XWikiException {
        try {
            load(is);
        }
        catch (IOException e) {
            Object[] args = { path };
            throw new XWikiException(XWikiException.MODULE_XWIKI_CONFIG,
                XWikiException.ERROR_XWIKI_CONFIG_FORMATERROR,
                "Error reading configuration file", e, args);
        }
    }
    /**
     * @return array of string splited from property.
     * @param param - name of property
     */
    public String[] getPropertyAsList(String param)
    {
        return StringUtils.split(getProperty(param, ""), " ,");
    }
}

@@ -1190,20 +1190,19 @@
 operties
- %7B
 %0D%0A
+%7B
 %0D%0A    pu
@@ -1219,16 +1219,21 @@
 Config()
+%0D%0A   
  %7B%0D%0A    
@@ -1322,17 +1322,16 @@
 instance
- 
 %0D%0A      
@@ -1371,20 +1371,16 @@
 %0A    %7D%0D%0A
-    
 %0D%0A    pu
@@ -1422,32 +1422,37 @@
 s XWikiException
+%0D%0A   
  %7B%0D%0A       try %7B
@@ -1442,31 +1442,33 @@
   %7B%0D%0A       
+ 
 try %7B%0D%0A
+ 
            F
@@ -1523,24 +1523,25 @@
 %0A           
+ 
 loadConfig(f
@@ -1559,25 +1559,18 @@
 %0A       
-%7D%0D%0A     
  
+%7D
  catch (
@@ -1600,32 +1600,33 @@
 ) %7B%0D%0A           
+ 
 Object%5B%5D args = 
@@ -1622,34 +1622,33 @@
 t%5B%5D args = %7B
- 
 path
- 
 %7D;%0D%0A
+ 
            t
@@ -1715,32 +1715,33 @@
 %0A               
+ 
 XWikiException.E
@@ -1773,16 +1773,17 @@
 FOUND,%0D%0A
+ 
         
@@ -1824,19 +1824,53 @@
  found%22,
- e,
+%0D%0A                e,%0D%0A               
  args);%0D
@@ -1874,27 +1874,24 @@
 );%0D%0A        
-  
- 
 %7D%0D%0A    %7D%0D%0A%0D%0A
@@ -1946,28 +1946,34 @@
 ikiException
+%0D%0A   
  %7B%0D%0A
+ 
        loadC
@@ -2074,16 +2074,21 @@
 xception
+%0D%0A   
  %7B%0D%0A    
@@ -2130,25 +2130,16 @@
        %7D
-%0D%0A       
  catch (
@@ -2189,14 +2189,12 @@
  = %7B
- 
 path
- 
 %7D;%0D%0A
@@ -2382,19 +2382,53 @@
 n file%22,
- e,
+%0D%0A                e,%0D%0A               
  args);%0D
@@ -2442,24 +2442,26 @@
   %7D%0D%0A    %7D%0D%0A
+%0D%0A
     /**%0D%0A   

Apply codestyle