1 16 package org.apache.juddi.uuidgen; 17 18 import org.apache.commons.logging.Log; 19 import org.apache.commons.logging.LogFactory; 20 import org.apache.juddi.util.Config; 21 import org.apache.juddi.util.Loader; 22 23 31 public abstract class UUIDGenFactory 32 { 33 private static Log log = LogFactory.getLog(UUIDGenFactory.class); 35 36 private static final String IMPL_KEY = "juddi.uuidgen"; 38 private static final String DEFAULT_IMPL = "org.apache.juddi.uuidgen.DefaultUUIDGen"; 39 40 private static UUIDGen uuidgen = null; 42 43 48 public static UUIDGen getUUIDGen() 49 { 50 if (uuidgen == null) 51 uuidgen = createUUIDGen(); 52 return uuidgen; 53 } 54 55 60 private static synchronized UUIDGen createUUIDGen() 61 { 62 if (uuidgen != null) 63 return uuidgen; 64 65 String className = Config.getStringProperty(IMPL_KEY,DEFAULT_IMPL); 67 68 log.debug("UUIDGen Implementation = " + className); 70 71 Class uuidgenClass = null; 72 try 73 { 74 uuidgenClass = Loader.getClassForName(className); 76 } 77 catch(ClassNotFoundException e) 78 { 79 log.error("The specified UUIDGen class '" + className + 80 "' was not found in classpath."); 81 log.error(e); 82 } 83 84 try 85 { 86 uuidgen = (UUIDGen)uuidgenClass.newInstance(); 88 } 89 catch(Exception e) 90 { 91 log.error("Exception while attempting to instantiate the " + 92 "implementation of UUIDGen: " + uuidgenClass.getName() + 93 "\n" + e.getMessage()); 94 log.error(e); 95 } 96 97 return uuidgen; 98 } 99 100 101 102 103 104 105 106 public static void main(String [] args) 107 { 108 final int max = 100; 110 111 try 112 { 113 UUIDGen uuidgen = UUIDGenFactory.getUUIDGen(); 114 115 for (int i=0; i<max; ++i) 116 System.out.println( i + ": " + uuidgen.uuidgen()); 117 } 118 catch (Exception ex) { ex.printStackTrace(); } 119 } 120 } | Popular Tags |