From b086f57f56bf0eb9dab9cf321a0f69aaaae84347 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Wed, 30 May 2012 08:37:45 +0200 Subject: Initial Maven Conversion --- source/com/c2kernel/process/Gateway.java | 429 ------------------------------- 1 file changed, 429 deletions(-) delete mode 100644 source/com/c2kernel/process/Gateway.java (limited to 'source/com/c2kernel/process/Gateway.java') diff --git a/source/com/c2kernel/process/Gateway.java b/source/com/c2kernel/process/Gateway.java deleted file mode 100644 index aebd19e..0000000 --- a/source/com/c2kernel/process/Gateway.java +++ /dev/null @@ -1,429 +0,0 @@ -package com.c2kernel.process; - -/** - * @version $Revision: 1.17 $ $Date: 2005/10/12 12:51:54 $ - * @author $Author: abranson $ - */ - -import java.io.IOException; -import java.net.MalformedURLException; -import java.util.Enumeration; -import java.util.Properties; - -import com.c2kernel.common.InvalidDataException; -import com.c2kernel.common.ObjectNotFoundException; -import com.c2kernel.entity.CorbaServer; -import com.c2kernel.entity.proxy.AgentProxy; -import com.c2kernel.entity.proxy.EntityProxyManager; -import com.c2kernel.lookup.AgentPath; -import com.c2kernel.lookup.LDAPLookup; -import com.c2kernel.lookup.LDAPProperties; -import com.c2kernel.persistency.ClusterStorageException; -import com.c2kernel.persistency.TransactionManager; -import com.c2kernel.utils.CastorXMLUtility; -import com.c2kernel.utils.FileStringUtility; -import com.c2kernel.utils.Language; -import com.c2kernel.utils.Logger; -import com.c2kernel.utils.Resource; -import com.c2kernel.utils.server.SimpleTCPIPServer; - - -/************************************************************************** - * The Gateway is the central object of a CRISTAL process. It initializes, - * maintains and shuts down every other subsystem in both the client and the - * server. - * - * Child objects: - * - * - * @author $Author: abranson $ $Date: 2005/10/12 12:51:54 $ - * @version $Revision: 1.17 $ - **************************************************************************/ - -public class Gateway -{ - static private Properties mC2KProps; - static private ModuleManager mModules; - static private org.omg.CORBA.ORB mORB; - static private LDAPLookup mLDAPLookup; - static private TransactionManager mStorage; - static private EntityProxyManager mProxyManager; - static private CorbaServer mCorbaServer; - static private SimpleTCPIPServer mHTTPServer; - - - - private Gateway() { } - - /** - * Initialises the Gateway and all of the client objects it holds, with - * the exception of the LDAPLookup, which is initialised during connect() - * - * @param props - java.util.Properties containing all application properties. - * If null, the java system properties are used - * @throws InvalidDataException - invalid properties caused a failure in initialisation - */ - static public void init(Properties props, boolean isServer) throws InvalidDataException { - - // if supplied props are null, use system props - if (props == null) props = System.getProperties(); - - // report version info - Logger.msg("Kernel version: "+Resource.getKernelVersion()); - - // init module manager - try { - mModules = new ModuleManager(ClassLoader.getSystemResources("module.xml"), isServer); - } catch (IOException e) { - Logger.error(e); - throw new InvalidDataException("Could not load module definitions. Classpath problem", ""); - } - - // Start with default props from kernel jar - try { - mC2KProps = FileStringUtility.loadConfigFile( Resource.getKernelResourceURL("textFiles/defaultConf.properties").toString()); - } catch (MalformedURLException ex) { - Logger.die("Default properties not found. Probable cause is missing resources"); - } - - // merge in module props - Properties moduleProperties = mModules.getAllModuleProperties(); - for (Enumeration e = moduleProperties.propertyNames(); e.hasMoreElements();) { - String propName = (String)e.nextElement(); - mC2KProps.put(propName, moduleProperties.get(propName)); - } - - // Overwrite with supplied props - for (Enumeration e = props.propertyNames(); e.hasMoreElements();) { - String propName = (String)e.nextElement(); - mC2KProps.put(propName, props.get(propName)); - } - - // dump properties - dumpC2KProps(7); - - // load kernel mapfiles - try { - CastorXMLUtility.loadMapsFrom(Resource.getKernelResourceURL("mapFiles/")); - } catch (MalformedURLException e1) { - throw new InvalidDataException("Invalid Resource Location", ""); - } - - //Initialise language file - String languageFile = getProperty("language.file"); - if (languageFile != null && languageFile.length() > 0) { - Language.isTranlated=true; - Language.mTableOfTranslation = FileStringUtility.loadLanguageFile(languageFile); - } - - // run module startup scripts - mModules.runScripts("startup"); - } - - /** - * Makes this process capable of creating and managing server entities. Runs the - * bootstrap to create the root LDAP contexts, initialises the CORBA server and - * time-out manager. - * - * @throws InvalidDataException - error initialising - */ - static public void startServer() throws InvalidDataException { - try { - // check top level LDAP contexts - mLDAPLookup.install(); - - // start entity proxy server - EntityProxyManager.initServer(); - - // Init ORB - set various config to sys properties - java.util.Properties sysProps = System.getProperties(); - String serverName = getProperty("ItemServer.name"); - if (serverName != null) - sysProps.put("ORBHost", serverName); - String serverPort = getProperty("ItemServer.iiop", "1500"); - sysProps.put("ORBPort", serverPort); - //TODO: externalize this (or replace corba completely) - sysProps.put("com.sun.CORBA.POA.ORBServerId", "1"); - sysProps.put("com.sun.CORBA.POA.ORBPersistentServerPort", serverPort); - - //Standard initialisation of the ORB - mORB = org.omg.CORBA.ORB.init(new String[0], sysProps); - - Logger.msg("Gateway.init() - ORB initialised. ORB is " + mORB.getClass().getName() ); - - // start corba server components - mCorbaServer = new CorbaServer(); - - // start checking bootstrap items - Bootstrap.run(); - - // register modules - mModules.registerModules(); - - } catch (Exception ex) { - Logger.error(ex); - Logger.die("Exception starting server components. Shutting down."); - } - - // start the http server -// try { -// int httpPort = Integer.parseInt(Gateway.getProperty("ItemServer.HTTP.port")); -// Logger.msg(2, "Starting HTTP Server on port "+httpPort); -// mHTTPServer = new SimpleTCPIPServer(httpPort, ItemHTTPBridge.class, 5); -// mHTTPServer.startListening(); -// } catch (NumberFormatException ex) { -// Logger.msg(3, "Invalid or no HTTP port defined. HTTP server not available."); -// } - - System.out.println("Server '"+Gateway.getCentreId()+"' initialised."); - } - - public static ModuleManager getModuleManager() { - return mModules; - } - - /** - * Connects to the LDAP server in an administrative context - using the admin username and - * password given in the LDAP.user and LDAP.password props of the kernel properties. - * - * @throws InvalidDataException - bad params - * @throws ClusterStorageException - error starting storages - */ - static public void connect() - throws InvalidDataException, - ClusterStorageException - { - LDAPProperties ldapProps = new LDAPProperties(); - - if( ldapProps.mHost != null && ldapProps.mPort != null && - ldapProps.mUser != null && ldapProps.mPassword != null ) - { - try - { - mLDAPLookup = new LDAPLookup(ldapProps); - } - catch (Exception ex) - { - Logger.error(ex); - throw new InvalidDataException("Cannot authenticate. Name and/or password invalid.", ""); - } - } - else - { - Logger.error("LDAP not configured properly."); - throw new InvalidDataException("Cannot authenticate. Name and/or password invalid.", ""); - } - - setup(); - } - - /** - * Authenticates a user and returns and AgentProxy on them without overriding the system LDAP context. - * Useful for handling multiple users in one context e.g. on a web server - * - * @param agentName - username - * @param agentPassword - password - * @return AgentProxy on that user - * @throws InvalidDataException - * @throws ObjectNotFoundException - */ - static public AgentProxy login(String agentName, String agentPassword) throws InvalidDataException, ObjectNotFoundException { - LDAPProperties ldapProps = new LDAPProperties(); - AgentPath agentPath; - try { - agentPath = mLDAPLookup.getRoleManager().getAgentPath(agentName); - } catch (Exception ex) { - Logger.error(ex); - throw new ObjectNotFoundException("Could not resolve agent", ""); - } - String agentDN = agentPath.getFullDN(); - ldapProps.mUser = agentDN; - ldapProps.mPassword = agentPassword; - - try { - LDAPLookup.createConnection(ldapProps); - return (AgentProxy)getProxyManager().getProxy(mLDAPLookup.getRoleManager().getAgentPath(agentName)); - } catch (Exception ex) { - Logger.error(ex); - throw new InvalidDataException("Could not log in", ""); - } - } - - - /** - * Logs into the LDAP server with the given username and password, and initialises the lookup. - * - * @param agentName - username - * @param agentPassword - password - * @return an AgentProxy on the requested user - * @throws InvalidDataException - */ - static public AgentProxy connect(String agentName, String agentPassword) - throws InvalidDataException - { - - LDAPProperties ldapProps = new LDAPProperties(); - if (ldapProps.mHost!=null && ldapProps.mPort!= null && ldapProps.mLocalPath!=null ) - { - try { - ldapProps.mUser = ""; - ldapProps.mPassword = ""; - mLDAPLookup = new LDAPLookup(ldapProps); - String agentDN = mLDAPLookup.getRoleManager().getAgentPath(agentName).getFullDN(); - - //found agentDN, try to log in with it - ldapProps.mUser = agentDN; - ldapProps.mPassword = agentPassword; - mLDAPLookup = new LDAPLookup(ldapProps); - - // find agent proxy - AgentPath agentPath = mLDAPLookup.getRoleManager().getAgentPath(agentName); - - if (agentPath!=null) - { - setup(); - return (AgentProxy) mProxyManager.getProxy(agentPath); - } - else - { - throw new InvalidDataException("The agentDN " +agentDN+ " is invalid.", ""); - } - } catch (ClusterStorageException e) { - throw new InvalidDataException(Language.translate("Error initialising storage")+Language.translate(". See log."), ""); - } catch (ObjectNotFoundException e) { - throw new InvalidDataException(Language.translate("Invalid username/password"), ""); - } catch (Exception e) { - throw new InvalidDataException(Language.translate("Could not log in")+": "+Language.translate(e.getMessage()), ""); - } - - } - else - { - throw new InvalidDataException("Cannot log in. Some connection properties are not set.", ""); - } - - } - - /** - * Initializes the storage and proxy manager, called during connect. - * - * @throws InvalidDataException - * @throws ClusterStorageException - */ - static private void setup() - throws InvalidDataException, - ClusterStorageException - { - - // Init storages - mStorage = new TransactionManager(); - mProxyManager = new EntityProxyManager(); - - } - - /** - * Shuts down all kernel api objects - */ - public static void close() - { - // run shutdown module scripts - mModules.runScripts("shutdown"); - - // shut down servers if running - if (mCorbaServer != null) - mCorbaServer.close(); - mCorbaServer = null; - if (mHTTPServer != null) - mHTTPServer.stopListening(); - mHTTPServer = null; - - // disconnect from storages - if (mStorage != null) - mStorage.close(); - mStorage = null; - - // disconnect from ldap - if (mLDAPLookup != null) - mLDAPLookup.disconnect(); - mLDAPLookup = null; - - // shut down proxy manager - if (mProxyManager != null) - mProxyManager.shutdown(); - mProxyManager = null; - EntityProxyManager.shutdownServer(); - - // close log consoles - Logger.closeConsole(); - - // finally, destroy the ORB - getORB().destroy(); - } - - static public org.omg.CORBA.ORB getORB() - { - if (mORB == null) - mORB = org.omg.CORBA.ORB.init(new String[0], null); - return mORB; - } - - static public LDAPLookup getLDAPLookup() - { - return mLDAPLookup; - } - - static public CorbaServer getCorbaServer() - { - return mCorbaServer; - } - - static public TransactionManager getStorage() - { - return mStorage; - } - - static public EntityProxyManager getProxyManager() - { - return mProxyManager; - } - - static public String getCentreId() { - return getProperty("LocalCentre"); - } - - static public String getProperty(String propName) { - return getProperty(propName, null); - } - - static public String getProperty(String propName, String defaultValue) { - if (mC2KProps == null) return defaultValue; - return mC2KProps.getProperty(propName, defaultValue); - } - - static public void setProperty(String propName, String propValue) { - if (mC2KProps == null) return; - mC2KProps.put(propName, propValue); - } - - static public Enumeration propertyNames() { - return mC2KProps.propertyNames(); - } - - static public void dumpC2KProps(int logLevel) { - if (!Logger.doLog(logLevel)) return; - Logger.msg(logLevel, "C2K Properties:"); - for (Enumeration e = propertyNames(); e.hasMoreElements();) { - String name = (String) e.nextElement(); - Logger.msg(" "+name+": "+getProperty(name)); - } - } -} - -- cgit v1.2.3