package com.fp.firma.keystore; import java.util.logging.Logger; /** * Obtiene la implementacion correcta de KeyStoreProvider de acuerdo al sistema * operativo. */ public class KeyStoreProviderFactory { private static final Logger log = Logger.getLogger(KeyStoreProviderFactory.class.getName()); /** * Obtiene la implementacion correcta de KeyStoreProvider de acuerdo al * sistema operativo. * * @return implementacion de KeyStoreProvider */ public static KeyStoreProvider createKeyStoreProvider() { String osName = System.getProperty("os.name"); String javaVersion = System.getProperty("java.version"); log.finer("Operating System:" + osName); log.finer("Java Version:" + javaVersion); if (osName.toUpperCase().indexOf("WINDOWS") == 0) { if (javaVersion.indexOf("1.6") == 0) { return new WindowsJDK6KeyStoreProvider(); } else { return new WindowsJDK5KeyStoreProvider(); } } else if (osName.toUpperCase().indexOf("LINUX") == 0) { return new LinuxKeyStoreProvider(); } else if (osName.toUpperCase().indexOf("MAC") == 0) { return new AppleKeyStoreProvider(); } else { throw new IllegalArgumentException("Sistema operativo no soportado!"); } } }