Your browser does not support JavaScript and this site utilizes JavaScript to build content and provide links to additional information. You should either enable JavaScript in your browser settings or use a browser that supports JavaScript in order to take full advantage of this site.
1 package ist.coach.coachEmfServicesComponents.SnmpAdapterProviderComposition; 2 3 8 9 import java.util.Properties ; 10 import java.io.FileInputStream ; 11 import java.util.Enumeration ; 12 import java.util.StringTokenizer ; 13 import org.opennms.protocols.snmp.SnmpObjectId; 14 15 public class Configuration { 16 17 private static Configuration instance; 18 private static final String configFile = "SnmpTrapDaemon.conf"; 19 private static final String availableTrapsID = "availableTraps"; 20 private static final String rootObjectsID = "rootObjects"; 21 public SnmpTrapConfigData[] availableTraps; 22 public String [] rootObjects; 23 24 25 public static Configuration getInstance() { 26 if (instance == null) { 27 instance = new Configuration(); 28 if (instance.configSanity() == false) 29 return null; 30 } 31 32 return instance; 33 } 34 35 private Configuration() { 36 37 Properties props = new Properties (); 38 try { 39 System.out.println("Loading file " + configFile); 40 props.load(Configuration.class.getResourceAsStream(configFile)); 41 } 42 catch (Exception e) { 43 e.printStackTrace(); 44 return; 45 } 46 47 String availableTrapsString = props.getProperty(availableTrapsID); 48 String rootObjectsString = props.getProperty(rootObjectsID); 49 50 StringTokenizer st = new StringTokenizer (availableTrapsString, " "); 51 int numOfTokens = st.countTokens(); 52 53 this.availableTraps = new SnmpTrapConfigData[numOfTokens]; 54 55 int counter = 0; 56 57 while (st.hasMoreTokens()) { 58 59 this.availableTraps[counter] = new SnmpTrapConfigData(); 60 this.availableTraps[counter].id = new String (st.nextToken().trim()); 61 62 counter ++; 63 64 } 65 66 st = new StringTokenizer (rootObjectsString, " "); 67 numOfTokens = st.countTokens(); 68 69 this.rootObjects = new String [numOfTokens]; 70 71 counter = 0; 72 73 while (st.hasMoreTokens()) { 74 this.rootObjects[counter] = new String (st.nextToken().trim()); 75 } 76 77 Enumeration en = props.propertyNames(); 78 79 while (en.hasMoreElements()) { 80 81 String name = (String ) en.nextElement(); 82 String value = props.getProperty(name); 83 84 for (int i = 0; i < this.availableTraps.length; i++) { 85 86 if (name.startsWith(this.availableTraps[i].id)) { 87 88 if (name.endsWith("_objectclass")) { 89 this.availableTraps[i].objectclass = new String (value); 90 } else 91 if (name.endsWith("_oid")) { 92 this.availableTraps[i].oid = new SnmpObjectId(value); 93 94 } else 95 if (name.endsWith("_identifier")) { 96 this.availableTraps[i].identifier = Integer.parseInt(value); 97 } 98 else 99 if (name.endsWith("_valueIdentifier")) 100 this.availableTraps[i].valueOid = new SnmpObjectId(value); 101 } 102 } 103 } 104 } 105 106 private boolean configSanity() { 107 108 for (int i = 0; i < this.availableTraps.length; i++) { 109 110 if ( (this.availableTraps[i].objectclass == null) || 111 (this.availableTraps[i].oid == null) || 112 (this.availableTraps[i].identifier == -1)) 113 return false; 114 } 115 116 return true; 117 118 } 119 } 120
| Popular Tags
|