package open.orca.rest; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; /** * 2013/08/29 * @author kazushi */ public class ORCAConnection { private static final ORCAConnection instane = new ORCAConnection(); //@Resource(mappedName="java:jboss/datasources/ORCADS") //private DataSource ds; private String jdbcURL; private String user; private String password; //minagawa^ private final Properties config; //minagawa$ public static ORCAConnection getInstance() { return instane; } private ORCAConnection() { StringBuilder sb = new StringBuilder(); sb.append(System.getProperty("jboss.home.dir")); sb.append(File.separator); sb.append("custom.properties"); File f = new File(sb.toString()); this.config = new Properties(); try { // 読み込む FileInputStream fin = new FileInputStream(f); try (InputStreamReader r = new InputStreamReader(fin, "JISAutoDetect")) { config.load(r); } String conn = config.getProperty("claim.conn"); if (conn!=null && conn.equals("server")) { jdbcURL = config.getProperty("claim.jdbc.url"); user = config.getProperty("claim.user"); password = config.getProperty("claim.password"); } } catch (Exception e) { e.printStackTrace(System.err); } } public Connection getConnection() { try { if (jdbcURL!=null && user!=null && password!=null) { Connection conn = DriverManager.getConnection(jdbcURL, user, password); conn.setReadOnly(true); return conn; } else { DataSource ds = (DataSource)InitialContext.doLookup("java:jboss/datasources/ORCADS"); return ds.getConnection(); } } catch (SQLException | NamingException e) { e.printStackTrace(System.err); } return null; } //minagawa^ public Properties getProperties() { return this.config; } public String getProperty(String prop) { return config.getProperty(prop); } public boolean isSendClaim() { String test = config.getProperty("claim.conn"); // connection type return test!=null && test.equals("server"); } //minagawa$ }