private HelloResponse ProcessHelloRequest(HelloRequest request) { IList <RemoteConnectorInfoImpl> connectorInfo; Exception exception = null; try { ConnectorInfoManager manager = GetConnectorInfoManager(); IList <ConnectorInfo> localInfos = manager.ConnectorInfos; connectorInfo = new List <RemoteConnectorInfoImpl>(); foreach (ConnectorInfo localInfo in localInfos) { LocalConnectorInfoImpl localInfoImpl = (LocalConnectorInfoImpl)localInfo; RemoteConnectorInfoImpl remoteInfo = localInfoImpl.ToRemote(); connectorInfo.Add(remoteInfo); } } catch (Exception e) { TraceUtil.TraceException(null, e); exception = e; connectorInfo = null; } return(new HelloResponse(exception, connectorInfo)); }
/// <summary> /// Method for convenient testing of local connectors. /// </summary> public APIConfiguration CreateTestConfiguration(SafeType <Connector> clazz, Configuration config) { LocalConnectorInfoImpl info = new LocalConnectorInfoImpl(); info.ConnectorConfigurationClass = SafeType <Configuration> .Get(config); info.ConnectorClass = (clazz); info.ConnectorDisplayNameKey = ("DUMMY_DISPLAY_NAME"); info.ConnectorKey = ( new ConnectorKey(clazz.RawType.Name + ".bundle", "1.0", clazz.RawType.Name)); info.Messages = (this.CreateDummyMessages()); APIConfigurationImpl rv = new APIConfigurationImpl(); rv.IsConnectorPoolingSupported = ( IsConnectorPoolingSupported(clazz)); ConfigurationPropertiesImpl properties = CSharpClassProperties.CreateConfigurationProperties(config); rv.ConfigurationProperties = (properties); rv.ConnectorInfo = (info); rv.SupportedOperations = ( FrameworkUtil.GetDefaultSupportedOperations(clazz)); info.DefaultAPIConfiguration = ( rv); return(rv); }
private HelloResponse ProcessHelloRequest(HelloRequest request) { IList <RemoteConnectorInfoImpl> connectorInfo = null; IList <ConnectorKey> connectorKeys = null; IDictionary <string, object> serverInfo = null; Exception exception = null; try { serverInfo = new Dictionary <string, object>(1); if (request.isServerInfo()) { serverInfo.Add(HelloResponse.SERVER_START_TIME, _server.StartTime()); } if (request.isConnectorKeys()) { ConnectorInfoManager manager = GetConnectorInfoManager(); IList <ConnectorInfo> localInfos = manager.ConnectorInfos; connectorKeys = new List <ConnectorKey>(); foreach (ConnectorInfo localInfo in localInfos) { connectorKeys.Add(localInfo.ConnectorKey); } if (request.isConnectorInfo()) { connectorInfo = new List <RemoteConnectorInfoImpl>(); foreach (ConnectorInfo localInfo in localInfos) { LocalConnectorInfoImpl localInfoImpl = (LocalConnectorInfoImpl)localInfo; RemoteConnectorInfoImpl remoteInfo = localInfoImpl.ToRemote(); connectorInfo.Add(remoteInfo); } } } } catch (Exception e) { LOG.Error(e); exception = e; connectorInfo = null; } return(new HelloResponse(exception, serverInfo, connectorKeys, connectorInfo)); }
public override ConnectorFacade NewInstance(APIConfiguration config) { ConnectorFacade ret = null; APIConfigurationImpl impl = (APIConfigurationImpl)config; AbstractConnectorInfo connectorInfo = impl.ConnectorInfo; if (connectorInfo is LocalConnectorInfoImpl) { LocalConnectorInfoImpl localInfo = (LocalConnectorInfoImpl)connectorInfo; // create a new Provisioner.. ret = new LocalConnectorFacadeImpl(localInfo, impl); } else { ret = new RemoteConnectorFacadeImpl(impl); } return(ret); }
/// <summary> /// Method for convenient testing of local connectors. /// </summary> public APIConfiguration CreateTestConfiguration(SafeType <Connector> connectorClass, PropertyBag configData, string prefix) { Debug.Assert(null != connectorClass); Type rawConnectorClass = connectorClass.RawType; Object[] attributes = connectorClass.RawType.GetCustomAttributes( typeof(ConnectorClassAttribute), false); if (attributes.Length > 0) { ConnectorClassAttribute attribute = (ConnectorClassAttribute)attributes[0]; Assembly assembly = IOUtil.GetAssemblyContainingType(rawConnectorClass.FullName); String fileName = assembly.Location; SafeType <Configuration> connectorConfigurationClass = attribute.ConnectorConfigurationType; if (connectorConfigurationClass == null) { String MSG = ("File " + fileName + " contains a ConnectorInfo attribute " + "with no connector configuration class."); throw new ConfigurationException(MSG); } String connectorDisplayNameKey = attribute.ConnectorDisplayNameKey; if (connectorDisplayNameKey == null) { String MSG = ("File " + fileName + " contains a ConnectorInfo attribute " + "with no connector display name."); throw new ConfigurationException(MSG); } LocalConnectorInfoImpl rv = new LocalConnectorInfoImpl(); rv.ConnectorClass = connectorClass; rv.ConnectorConfigurationClass = connectorConfigurationClass; rv.ConnectorDisplayNameKey = connectorDisplayNameKey; rv.ConnectorCategoryKey = attribute.ConnectorCategoryKey; rv.ConnectorKey = ( new ConnectorKey(rawConnectorClass.Name + ".bundle", "1.0", rawConnectorClass.Name));; APIConfigurationImpl impl = LocalConnectorInfoManagerImpl.CreateDefaultAPIConfiguration(rv); rv.DefaultAPIConfiguration = impl; // if (false) // { // rv.Messages = CreateDummyMessages(); // } // else { rv.Messages = LocalConnectorInfoManagerImpl.LoadMessages(assembly, rv, attribute.MessageCatalogPaths); } ConfigurationPropertiesImpl configProps = (ConfigurationPropertiesImpl)impl.ConfigurationProperties; string fullPrefix = StringUtil.IsBlank(prefix) ? null : prefix + "."; foreach (ConfigurationPropertyImpl property in configProps.Properties) { object value = configData.GetProperty(null != fullPrefix ? fullPrefix + property.Name : property.Name, property.ValueType, property.Value); if (value != null) { property.Value = value; } } return(impl); } throw new ArgumentException("ConnectorClass does not define ConnectorClassAttribute"); }