J-Integra® Bridge

Here is the source code of Jintegra Bridge
import java.util.*;
import javax.naming.*;
import com.linar.jintegra.Jvm;
import com.linar.jintegra.AutomationException;
import com.linar.jintegra.Instanciator;
import oracle.aurora.jndi.sess_iiop.ServiceCtx;
import oracle.jdbc.driver.*; 
import oracle.aurora.jndi.jdbc_access.jdbc_accessURLContextFactory; 
import java.sql.*; 

public class COMtoOracle {
  public static void main(String[] args) throws Exception {
    Jvm.register("oraclejvm", new OracleInstanciator(args[0], args[1]));
    while (true) { // endless loop to keep the bridge alive
      Thread.sleep(10000000);
    }
  }
}

class OracleInstanciator implements Instanciator {
	Context ctx;

  static String JDBC_SERVICE="jdbc:oracle:thin:@jintegra-test4:1521:ICS";

  OracleInstanciator(String user, String password) throws NamingException {
    Hashtable env = new Hashtable();
    env.put(Context.URL_PKG_PREFIXES, "oracle.aurora.jndi");

    env.put (jdbc_accessURLContextFactory.CONNECTION_URL_PROP, JDBC_SERVICE);
    env.put(Context.SECURITY_PRINCIPAL, user);
    env.put(Context.SECURITY_CREDENTIALS, password);
    env.put(Context.SECURITY_AUTHENTICATION, ServiceCtx.NON_SSL_LOGIN);
    ctx = new InitialContext (env);
    try {
      DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver()); 
    } catch(Exception ex) {
      ex.printStackTrace();
    }
  }

  // This method is called by the J-Integra® runtime when a COM client tries
  // to instantiate an object. First we try to instantiate it as a Java class
  // and if that fails, we do a JNDI lookup
  public Object instanciate(String javaClass) throws AutomationException {
    try {
      try {
        return Class.forName(javaClass).newInstance();
      } catch(Exception e) {}
      return ctx.lookup(javaClass);
    } catch (Throwable t) {
      t.printStackTrace();
      throw new AutomationException(new Exception("Unexpected: " + t));
    }
  } 
}