D:\DEV\PROJECTS\Harbor_Security_Example_Ship_Locked\src\harbor_security_example_ship_locked\CD_Unit.java
/*
 * CD_Unit.java
 */

package harbor_security_example_ship_locked;
import kewlstuff.securitytest.interfaces.*;
import kewlstuff.harbor.client.*;
import javax.swing.JOptionPane;

/**
 *
 * @author JK
 */
public class CD_Unit implements I_CD_Unit {
    I_PasswordProcessor i_PasswordProcessor = null;
    private Vessel vessel = null;
    
    /** Creates a new instance of CD_Unit */
    public CD_Unit() {
        String harborUrl = "http://localhost:8080/harbor/service"; //location of container harbor
        vessel = new Vessel(harborUrl);
        boolean fSuccess = vessel.certifiedSecurity("Company B"); //Secure comms
        vessel.setAccessPass("TheBoss","VeryBigEgo");

    }
    
    public void startPassword(){
        
        if(!vessel.isCommsSecure()){
            JOptionPane.showMessageDialog(null, "A secure line could not be established", "Cannot Continue", JOptionPane.WARNING_MESSAGE);
            return;
        }   
        
        i_PasswordProcessor = (I_PasswordProcessor)vessel.loadRemoteClassInst(I_PasswordProcessor.class,"kewlstuff.securitytest.locked.service.PasswordProcessorLocked");

        Class uiApp = vessel.getRemoteClass("kewlstuff.securitytest.locked.UI.Password_UI_Locked");
        if(uiApp != null){
            I_Password_UI i_Password_UI = (I_Password_UI)vessel.newInst(uiApp);
            i_Password_UI.start(this);
        }      
    }
    
    public void setPassword(String UID, String Password){
        if(i_PasswordProcessor!= null) i_PasswordProcessor.setPassword(UID,Password);
    }
    
    public void stopPasswordServer(){
        if(i_PasswordProcessor!= null) {
            vessel.releaseRemoteClassInst(i_PasswordProcessor);
            i_PasswordProcessor = null;
        }
    }    
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        new CD_Unit().startPassword();
    }
    
}