1 package com.ubermq.jms.server.journal.impl; 2 3 import java.io.*; 4 5 import com.ubermq.jms.server.ServerConfig; 6 import com.ubermq.jms.server.journal.ISettingsRepository; 7 import com.ubermq.kernel.Configurator; 8 import java.util.HashMap ; 9 import java.util.Map ; 10 11 16 public class BinarySettingsRepository implements ISettingsRepository 17 { 18 private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(BinarySettingsRepository.class); 19 20 private Map entries; 21 private String name; 22 23 public BinarySettingsRepository(String fileName) 24 throws java.io.FileNotFoundException , java.io.IOException 25 { 26 entries = new HashMap (); 27 name = fileName; 28 restore(); 29 } 30 31 public BinarySettingsRepository() 32 throws java.io.FileNotFoundException , java.io.IOException 33 { 34 this(Configurator.getProperty(ServerConfig.LOG_FILE)); 35 } 36 37 public void put(Object key, Object value) 38 { 39 entries.put(key, value); 40 flush(); 41 } 42 43 public Object get(Object key) 44 { 45 restore(); 46 return entries.get(key); 47 } 48 49 private synchronized void flush() 50 { 51 try 52 { 53 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(name)); 54 oos.writeObject(entries); 55 } 56 catch (java.io.IOException e) 57 { 58 log.error("", e); 59 } 60 } 61 62 private synchronized void restore() 63 { 64 try 65 { 66 if (name == null) 67 throw new FileNotFoundException(); 68 69 ObjectInputStream ois = new ObjectInputStream(new FileInputStream(name)); 70 entries = (Map )ois.readObject(); 71 } 72 catch (IOException e) { 73 entries = new HashMap (); 74 } 75 catch (Exception e) { 76 log.error("", e); 77 } 78 } 79 } 80 | Popular Tags |