1 package net.sf.crispy.properties; 2 3 import java.io.FileInputStream; 4 import java.net.URL; 5 import java.util.Properties; 6 7 import net.sf.crispy.PropertiesLoader; 8 9 /** 10 * Load file from the class path. 11 * 12 * @author Linke 13 * 14 */ 15 public class ClassPathPropertiesLoader implements PropertiesLoader { 16 17 private String fileName = null; 18 19 public ClassPathPropertiesLoader(String pvFileName) { 20 fileName = pvFileName; 21 } 22 23 public Properties load() { 24 if (fileName == null) { 25 throw new IllegalArgumentException("The file name for the ClassPathPropertiesLoader is null."); 26 } 27 if (!(fileName.startsWith("/"))) { fileName = "/" + fileName; } 28 Properties lvProperties = new Properties(); 29 try { 30 URL lvUrl = ClassPathPropertiesLoader.class.getResource(fileName); 31 if (lvUrl == null) { 32 throw new IllegalArgumentException("The file name: " + fileName + " was not found in the class path."); 33 } 34 String lvPath = lvUrl.getPath(); 35 lvProperties.load(new FileInputStream(lvPath)); 36 } catch (Exception e) { 37 throw new PropertiesLoadException("Error in load-method:", e); 38 } 39 return lvProperties; 40 } 41 42 }