
import javax.naming.InitialContext;
import javax.naming.Context;
import javax.naming.NamingException;

import javax.rmi.PortableRemoteObject;

import javax.ejb.CreateException;

import java.rmi.RemoteException;

import java.util.Properties;
import java.util.Hashtable;
import java.util.Enumeration;

import com.jack.FBS;
import com.jack.FBSHome;

public class LoginTest extends Object
{

	public static void main(String[] args)
	{
		try 
		{
			new LoginTest();
		}
		catch (Exception ex)
		{
			System.out.println("Exception: " + ex.getMessage());
			ex.printStackTrace();
		}
	}
	
	public LoginTest()
	{

		try
		{
			Context con = null;
			Properties p;

			p = new Properties();

			p.put(
				Context.INITIAL_CONTEXT_FACTORY,
				"com.evermind.server.rmi.RMIInitialContextFactory");
			p.put(Context.PROVIDER_URL,"ormi://207.112.33.203/jack");
			p.put(Context.SECURITY_PRINCIPAL,"admin");
			p.put(Context.SECURITY_CREDENTIALS,"123");

			try
			{
				con = new InitialContext(p);
			}
			catch (NamingException ex)
			{
				System.out.println("NamingException " + ex.getMessage());
				ex.printStackTrace();
			}

			establishConnection(con);
		}
		catch(SecurityException ex)
		{
			System.out.println("SecurityException " + ex.getMessage());
			ex.printStackTrace();
		}

/*
		try
		{
			c.close();
		}
		catch (NamingException ex)
		{
			System.out.println("NamingException " + ex.getMessage());
			ex.printStackTrace();
		}
*/

		try
		{
			Context con = null;
			Properties p;

			p = new Properties();

			p.put(
				Context.INITIAL_CONTEXT_FACTORY,
				"com.evermind.server.rmi.RMIInitialContextFactory");
			p.put(Context.PROVIDER_URL,"ormi://207.112.33.203/jack");
			p.put(Context.SECURITY_PRINCIPAL,"user");
			p.put(Context.SECURITY_CREDENTIALS,"456");

			try
			{
				con = new InitialContext(p);
			}
			catch (NamingException ex)
			{
				System.out.println("NamingException " + ex.getMessage());
				ex.printStackTrace();
			}

			establishConnection(con);
		}
		catch(SecurityException ex)
		{
			System.out.println("SecurityException " + ex.getMessage());
			ex.printStackTrace();
		}
	}

	public void establishConnection(Context c2)
	{

		FBSHome home = null;

		try
		{
			home = (FBSHome)PortableRemoteObject.narrow(c2.lookup("FBS"),FBSHome.class);

			FBS fbs;

			fbs = (FBS) PortableRemoteObject.narrow(home.create(),FBS.class);

			fbs.build("testing...");
		}
		catch (NamingException ex)
		{
			System.out.println("NamingException " + ex.getMessage());
			ex.printStackTrace();
		}
		catch (CreateException ex)
		{
			System.out.println("CreateException " + ex.getMessage());
			ex.printStackTrace();
		}
		catch (RemoteException ex)
		{
			System.out.println("RemoteException " + ex.getMessage());
			ex.printStackTrace();
		}

		FBS controller = null;

		try
		{
			controller = home.create();
		}
		catch (RemoteException ex)
		{
			System.out.println("RemoteException " + ex.getMessage());
			ex.printStackTrace();
		}
		catch (CreateException ex)
		{
			System.out.println("CreateException " + ex.getMessage());
			ex.printStackTrace();
		}

	}
}
