138 lines
4.1 KiB
Java
138 lines
4.1 KiB
Java
package javaeva.client;
|
|
|
|
/*
|
|
* Title: JavaEvA
|
|
* Description:
|
|
* Copyright: Copyright (c) 2003
|
|
* Company: University of Tuebingen, Computer Architecture
|
|
* @author Holger Ulmer, Felix Streichert, Hannes Planatscher
|
|
* @version: $Revision: 320 $
|
|
* $Date: 2007-12-06 16:05:11 +0100 (Thu, 06 Dec 2007) $
|
|
* $Author: mkron $
|
|
*/
|
|
/*==========================================================================*
|
|
* IMPORTS
|
|
*==========================================================================*/
|
|
|
|
import java.rmi.RemoteException;
|
|
import java.rmi.registry.Registry;
|
|
import java.util.ArrayList;
|
|
import javaeva.gui.LogPanel;
|
|
import javaeva.server.EvAMainAdapter;
|
|
import javaeva.server.EvAMainAdapterImpl;
|
|
import javaeva.server.RMIServerEvA;
|
|
import javaeva.server.modules.ModuleAdapter;
|
|
|
|
import wsi.ra.jproxy.ComAdapter;
|
|
import wsi.ra.jproxy.MainAdapter;
|
|
import wsi.ra.jproxy.MainAdapterClient;
|
|
import wsi.ra.jproxy.MainAdapterClientImpl;
|
|
import wsi.ra.jproxy.RMIConnection;
|
|
import wsi.ra.jproxy.RMIInvocationHandler;
|
|
import wsi.ra.jproxy.RMIProxyLocal;
|
|
/*==========================================================================*
|
|
* CLASS DECLARATION
|
|
*==========================================================================*/
|
|
/**
|
|
*
|
|
*/
|
|
public class EvAComAdapter extends ComAdapter {
|
|
private LogPanel m_LogPanel;
|
|
private EvAMainAdapterImpl localMainAdapter;
|
|
private boolean runLocally = false;
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public void setLogPanel(LogPanel OutputFrame) {
|
|
m_LogPanel = OutputFrame;
|
|
}
|
|
/**
|
|
*
|
|
*/
|
|
public static EvAComAdapter getInstance() {
|
|
if (m_instance==null) {
|
|
m_instance = new EvAComAdapter();
|
|
m_instance.addServersFromProperties(EvAClient.getProperties());
|
|
}
|
|
return (EvAComAdapter)m_instance;
|
|
}
|
|
|
|
/**
|
|
* Creates the ModulAdapters RMI Object on the server
|
|
* @return
|
|
*/
|
|
public ModuleAdapter getModuleAdapter(String str) {
|
|
ModuleAdapter newModuleAdapter;
|
|
if ((m_RMIServer == null) && isRunLocally()) {
|
|
//ret = evaAdapter.getModuleAdapter(Modul, hostAdd, this.m_MainAdapterClient);
|
|
newModuleAdapter = getLocalMainAdapter().getModuleAdapter(str, true, getHostName(), null);
|
|
} else {
|
|
newModuleAdapter = ((RMIConnectionEvA)getConnection(getHostName())).getModuleAdapter(str);
|
|
if (newModuleAdapter == null) System.err.println("RMI Error for getting ModuleAdapterObject : " + str);
|
|
}
|
|
return newModuleAdapter;
|
|
}
|
|
|
|
private EvAMainAdapter getLocalMainAdapter() {
|
|
if (localMainAdapter == null) localMainAdapter = new EvAMainAdapterImpl();
|
|
return localMainAdapter;
|
|
}
|
|
|
|
/**
|
|
* Returns a list of modules available on the server.
|
|
* @return
|
|
*/
|
|
public String[] getModuleNameList() {
|
|
String[] list;
|
|
if (TRACE) System.out.println("ComAdapter.GetModuleNameList()");
|
|
|
|
if ((m_RMIServer == null) && isRunLocally()) {
|
|
list = getLocalMainAdapter().getModuleNameList();
|
|
} else {
|
|
RMIConnectionEvA Connection = (RMIConnectionEvA)getConnection(getHostName());
|
|
if (Connection == null) {
|
|
System.err.println("Couldnt create RMIConnection in EvAComAdapter.getModuleNameList");
|
|
return null;
|
|
}
|
|
list = ((EvAMainAdapter)Connection.getMainAdapter()).getModuleNameList();
|
|
}
|
|
if (m_LogPanel != null)
|
|
m_LogPanel.logMessage("List of modules on server:");
|
|
if (list != null)
|
|
for (int i = 0; i < list.length; i++) {
|
|
if ( (String) list[i] != null && m_LogPanel != null)
|
|
m_LogPanel.logMessage( (String) list[i]);
|
|
}
|
|
return list;
|
|
}
|
|
|
|
protected MainAdapter getMainAdapter(RMIInvocationHandler invocHandler) throws RemoteException {
|
|
return (EvAMainAdapter) invocHandler.getWrapper();
|
|
}
|
|
|
|
protected void logInfo(String msg) {
|
|
if (m_LogPanel != null) {
|
|
m_LogPanel.logMessage(msg);
|
|
} else super.logInfo(msg);
|
|
}
|
|
|
|
protected RMIConnection createRMIConnection(String Host, MainAdapter mainRemoteObject, MainAdapterClient client) {
|
|
return new RMIConnectionEvA(Host, mainRemoteObject, client);
|
|
}
|
|
/**
|
|
* @return the runLocally
|
|
*/
|
|
public boolean isRunLocally() {
|
|
return runLocally;
|
|
}
|
|
/**
|
|
* @param runLocally the runLocally to set
|
|
*/
|
|
public void setRunLocally(boolean runLocally) {
|
|
this.runLocally = runLocally;
|
|
}
|
|
}
|
|
//
|
|
|