feature[ats_ATS192718]: Add class loader support.
diff --git a/plugins/org.eclipse.osee.ote.server/src/org/eclipse/osee/ote/server/internal/RemoteTestEnvironment.java b/plugins/org.eclipse.osee.ote.server/src/org/eclipse/osee/ote/server/internal/RemoteTestEnvironment.java
index a801c5d..ef0f2c6 100644
--- a/plugins/org.eclipse.osee.ote.server/src/org/eclipse/osee/ote/server/internal/RemoteTestEnvironment.java
+++ b/plugins/org.eclipse.osee.ote.server/src/org/eclipse/osee/ote/server/internal/RemoteTestEnvironment.java
@@ -16,10 +16,10 @@
 import java.util.List;
 import java.util.concurrent.locks.ReentrantLock;
 import java.util.logging.Level;
-
 import org.eclipse.osee.connection.service.IServiceConnector;
 import org.eclipse.osee.framework.logging.OseeLog;
 import org.eclipse.osee.framework.messaging.Message;
+import org.eclipse.osee.framework.plugin.core.util.ExportClassLoader;
 import org.eclipse.osee.ote.core.ServiceUtility;
 import org.eclipse.osee.ote.core.environment.console.ICommandManager;
 import org.eclipse.osee.ote.core.environment.interfaces.IRemoteCommandConsole;
@@ -42,7 +42,8 @@
       new HashMap<IRemoteCommandConsole, RemoteShell>(32);
 
    private final ReentrantLock lock = new ReentrantLock();
-//   private IRemoteMessageService exportedRemoteMessageService;
+
+   //   private IRemoteMessageService exportedRemoteMessageService;
 
    public RemoteTestEnvironment(MessageSystemTestEnvironment currentEnvironment, IServiceConnector serviceConnector, boolean keepEnvAliveWithNoUsers) {
       if (serviceConnector == null) {
@@ -54,6 +55,7 @@
 
    @Override
    public Remote getControlInterface(String controlInterfaceID) throws RemoteException {
+      Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
       Remote controlInterface = env.getControlInterface(controlInterfaceID);
       if (controlInterface != null) {
          try {
@@ -69,25 +71,28 @@
 
    @Override
    public void addInstrumentationRegistrationListener(IInstrumentationRegistrationListener listener) throws RemoteException {
+      Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
       env.addInstrumentationRegistrationListener(listener);
    }
 
    @Override
    public void removeInstrumentationRegistrationListener(IInstrumentationRegistrationListener listener) throws RemoteException {
+      Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
       env.removeInstrumentationRegistrationListener(listener);
    }
 
-//   @Override
-//   public IRemoteMessageService getMessageToolServiceProxy() throws RemoteException {
-//      if(exportedRemoteMessageService == null){
-//         IRemoteMessageService service = ServiceUtility.getService(IRemoteMessageService.class, 30000);
-//         exportedRemoteMessageService = (IRemoteMessageService)this.serviceConnector.export(service);
-//      }
-//      return exportedRemoteMessageService;
-//   }
+   //   @Override
+   //   public IRemoteMessageService getMessageToolServiceProxy() throws RemoteException {
+   //      if(exportedRemoteMessageService == null){
+   //         IRemoteMessageService service = ServiceUtility.getService(IRemoteMessageService.class, 30000);
+   //         exportedRemoteMessageService = (IRemoteMessageService)this.serviceConnector.export(service);
+   //      }
+   //      return exportedRemoteMessageService;
+   //   }
 
    @Override
    public IRemoteCommandConsole getCommandConsole() throws RemoteException {
+      Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
       OseeLog.log(RemoteTestEnvironment.class, Level.FINE, "Remote command onsole requested");
       ICommandManager commandManager = ServiceUtility.getService(ICommandManager.class);
       RemoteShell shell = new RemoteShell(commandManager);
@@ -109,6 +114,7 @@
 
    @Override
    public void closeCommandConsole(IRemoteCommandConsole console) throws RemoteException {
+      Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
       RemoteShell shell;
       lock.lock();
       try {
@@ -131,6 +137,7 @@
 
    @Override
    public IModelManagerRemote getModelManager() throws RemoteException {
+      Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
       if (modelManager == null) {
          modelManager = new RemoteModelManager();
       }
@@ -143,11 +150,13 @@
 
    @Override
    public byte[] getScriptOutfile(String outfilePath) throws RemoteException {
+      Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
       return env.getScriptOutfile(outfilePath);
    }
 
    @Override
    public int getUniqueId() throws RemoteException {
+      Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
       return env.getUniqueId();
    }
 
@@ -155,33 +164,39 @@
 
       @Override
       public void addModelActivityListener(IModelListener listener) throws RemoteException {
+         Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
          env.getModelManager().addModelActivityListener(listener);
       }
 
       @Override
       public void removeModelActivityListener(IModelListener listener) throws RemoteException {
+         Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
          env.getModelManager().removeModelActivityListener(listener);
       }
 
       @Override
       public void addModelActivityListener(IModelListener listener, ModelKey<?> key) throws RemoteException {
+         Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
          env.getModelManager().addModelActivityListener(listener, key);
       }
 
       @Override
       public void removeModelActivityListener(IModelListener listener, ModelKey<?> key) throws RemoteException {
+         Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
          env.getModelManager().removeModelActivityListener(listener, key);
       }
 
       @SuppressWarnings("rawtypes")
       @Override
       public List<ModelKey> getRegisteredModels() throws RemoteException {
+         Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
          return env.getModelManager().getRegisteredModels();
       }
 
       @Override
-      @SuppressWarnings({ "unchecked", "rawtypes" })
+      @SuppressWarnings({"unchecked", "rawtypes"})
       public Remote getRemoteModel(ModelKey<?> key) throws RemoteException {
+         Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
          try {
             Class modelClass;
             try {
@@ -199,12 +214,14 @@
 
       @Override
       public void releaseReference(ModelKey<?> key) throws RemoteException {
+         Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
          env.getModelManager().releaseReference(key);
       }
 
       @Override
-      @SuppressWarnings({ "unchecked", "rawtypes" })
+      @SuppressWarnings({"unchecked", "rawtypes"})
       public void changeModelState(ModelKey<?> key, ModelState state) throws RemoteException {
+         Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
          Class modelClass;
          try {
             modelClass = env.loadClassFromMessageLoader(key.getClassName());
@@ -217,12 +234,14 @@
 
       @Override
       public ModelState getModelState(ModelKey<?> key) throws RemoteException {
+         Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
          return env.getModelManager().getModelState(key);
       }
 
       @SuppressWarnings("rawtypes")
       @Override
       public void releaseAllReferences(ModelKey key) throws RemoteException {
+         Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
          env.getModelManager().releaseAllReferences(key);
       }
 
@@ -230,11 +249,13 @@
 
    @Override
    public void setBatchMode(boolean isInBatchMode) throws RemoteException {
+      Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
       env.setBatchMode(isInBatchMode);
    }
 
    @Override
    public void sendMessage(Message message) throws RemoteException {
+      Thread.currentThread().setContextClassLoader(ExportClassLoader.getInstance());
       env.sendMessageToServer(message);
    }