/*
 * This sample can be used to check the JDBC installation.
 * Just run it with the connect information.  
 *
 * CLASSPATH must be set to ".;<ORACLE_HOME>/jdbc/lib/ojdbc5.jar;<ORACLE_HOME>/jdbc/lib/classes12.zip"
 * LD_LIBRARY_PATH (UNix) or PATH (Windows) must contain <ORACLE_HOME>/lib
 * Compile with: javac JdbcTest.java
 * Run with: java JdbcTest jdbcurl user password
 * Example: java JdbcTest jdbc:oracle:thin:@<serveur>:<port>:<sid> <user> <psw>
 * Example: java JdbcTest jdbc:oracle:thin:@<serveur>:<port>/<service> <user> <psw>
 * Example: java JdbcTest jdbc:oracle:oci8:@<serveur>:<port>/<service> <user> <psw>
 * Example: java JdbcTest jdbc:oracle:oci8:@<tns entry> <user> <psw>
 */

import java.sql.*;
public class JdbcTest {
public static void main (String[] args) {
  if (  args.length < 3 && args.length != 1 
     && ( args.length != 2 || ! args[1].equals("/") ) ) {
    System.out.println("Usage: java JdbcTest jdbcUrl user [password]"); 
    System.exit(0);
  }
  String url      = args[0];
  String user     = (args.length>=3)?args[1]:"";
  String password = (args.length>=3)?args[2]:"";

  try {
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    Connection conn = DriverManager.getConnection(url, user, password);

    DatabaseMetaData meta = conn.getMetaData ();

    // gets driver info:
    System.out.println("\n=============\nDatabase Product Name: \t" + meta.getDatabaseProductName());
    StringBuffer dbInfo = new StringBuffer("\t" + meta.getDatabaseProductVersion());
    int idx0 = 0;
    while (idx0 < dbInfo.length()) {
      idx0 = dbInfo.toString().indexOf("\n", idx0);
      if (idx0 == -1) break;
      dbInfo.replace(idx0, ++idx0, "\n\t");
      idx0++;
    }
    System.out.println("\nDatabase Product Version: \n" + dbInfo);
    System.out.println("\n=============\nJDBC Driver Name: \t" + meta.getDriverName());
    System.out.println("JDBC Driver Version: \t" + meta.getDriverVersion());
    System.out.println("JDBC URL: \t\t" + meta.getURL());
    System.out.println("\n=============");

    //get environment info:
    java.util.Properties props = System.getProperties();
    java.util.Enumeration propNames = props.propertyNames();

    StringBuffer path = new StringBuffer("\t" + props.getProperty("java.library.path"));
    int idx = 0;

    while (idx < path.length()) {
      idx = path.toString().indexOf(";", idx);
      if (idx == -1) break;
      path.replace(idx, ++idx, "\n\t");
      idx++;
    }

    StringBuffer classpath = new StringBuffer("\t" + props.getProperty("java.class.path"));
    int idx2 = 0;

    while (idx2 < classpath.length()) {
      idx2 = classpath.toString().indexOf(";", idx2);
      if (idx2 == -1) break;
      classpath.replace(idx2, ++idx2, "\n\t");
      idx2++;
    }

    System.out.println("java runtime Version: \t" + props.getProperty("java.runtime.version"));
    System.out.println("\n=============");
    System.out.println("java vm Version: \t" + props.getProperty("java.vm.version"));
    System.out.println("\n=============");
    System.out.println("java vm name: \t\t" + props.getProperty("java.vm.name"));
    System.out.println("\n=============");
    System.out.println("java library path: \n" + path);
    System.out.println("\n=============");
    System.out.println("java classpath: \n" + classpath);

  }  catch (Exception e) {e.printStackTrace(); }
}//end of main
}//end of JdbcTest

