private static void HandleProvided <TK, TE>( TK[] objectNames, EPObjectType objectType, PathRegistry <TK, TE> registry, string moduleName, IList <EPDeploymentDependencyProvided.Item> dependencies, Func <TK, string> objectNameFunction) where TK : class { foreach (TK objectName in objectNames) { try { var ids = registry.GetDependencies(objectName, moduleName); if (ids != null) { dependencies.Add( new EPDeploymentDependencyProvided.Item( objectType, objectNameFunction.Invoke(objectName), new HashSet <string>(ids))); } } catch (ArgumentException) { // no need to handle } } }
private static void HandleConsumed <TK, TE>( string providerDeploymentId, TK[] objectNames, EPObjectType objectType, PathRegistry <TK, TE> registry, string moduleName, string selfDeploymentId, IList <EPDeploymentDependencyConsumed.Item> consumed, Func <TK, string> objectNameFunction) where TK : class { foreach (TK objectName in objectNames) { try { var ids = registry.GetDependencies(objectName, moduleName); if (ids != null && ids.Contains(selfDeploymentId)) { consumed.Add( new EPDeploymentDependencyConsumed.Item( providerDeploymentId, objectType, objectNameFunction.Invoke(objectName))); } } catch (ArgumentException) { // not handled } } }
/// <summary> /// Returns the pretty-print name /// </summary> /// <returns>name</returns> public static string GetPrettyName(this EPObjectType value) { switch (value) { case EPObjectType.CONTEXT: return("context"); case EPObjectType.NAMEDWINDOW: return("named window"); case EPObjectType.EVENTTYPE: return("event type"); case EPObjectType.TABLE: return("table"); case EPObjectType.VARIABLE: return("variable"); case EPObjectType.EXPRESSION: return("expression"); case EPObjectType.SCRIPT: return("script"); case EPObjectType.INDEX: return("index"); case EPObjectType.CLASSPROVIDED: return("application-inlined class"); default: throw new ArgumentOutOfRangeException(nameof(value), value, null); } }
/// <summary> /// Ctor. /// </summary> /// <param name="objectType">EPL object type</param> /// <param name="objectName">EPL object name</param> /// <param name="deploymentIds">deployment ids of consumers</param> public Item( EPObjectType objectType, string objectName, ISet <string> deploymentIds) { _objectType = objectType; _objectName = objectName; _deploymentIds = deploymentIds; }
/// <summary> /// Ctor. /// </summary> /// <param name="deploymentId">deployment id of the provider</param> /// <param name="objectType">EPL object type</param> /// <param name="objectName">EPL object name</param> public Item( string deploymentId, EPObjectType objectType, string objectName) { _deploymentId = deploymentId; _objectType = objectType; _objectName = objectName; }
private static EPDeploymentDependencyProvided.Item MakeProvided( EPObjectType objectType, string objectName, params string[] deploymentIds) { return(new EPDeploymentDependencyProvided.Item( objectType, objectName, new HashSet <string>(deploymentIds))); }
private static void CheckAlreadyDefinedByStage <TK, TE>( EPStageServiceSPI spi, EPObjectType objectType, Func <StageSpecificServices, PathRegistry <TK, TE> > registryFunc, TK objectKey, string moduleName, int rolloutItemNumber) where TK : class { foreach (var entry in spi.Stages) { var registry = registryFunc.Invoke(entry.Value.StageSpecificServices); if (registry.GetWithModule(objectKey, moduleName) != null) { throw new EPDeployPreconditionException( objectType.GetPrettyName() + " by name '" + objectKey + "' is already defined by stage '" + entry.Key + "'", rolloutItemNumber); } } }
public static void AssertSingle( RegressionEnvironment env, string deployedStmtNameConsume, string deployedStmtNameProvide, EPObjectType objectType, string objectName) { var deploymentIdConsume = env.DeploymentId(deployedStmtNameConsume); var deploymentIdProvide = env.DeploymentId(deployedStmtNameProvide); var consumed = env.Runtime.DeploymentService.GetDeploymentDependenciesConsumed(deploymentIdConsume); AssertEqualsAnyOrder( new[] { new EPDeploymentDependencyConsumed.Item(deploymentIdProvide, objectType, objectName) }, consumed.Dependencies.ToArray()); var provided = env.Runtime.DeploymentService.GetDeploymentDependenciesProvided(deploymentIdProvide); AssertEqualsAnyOrder( new[] { new EPDeploymentDependencyProvided.Item(objectType, objectName, Collections.SingletonSet(deploymentIdConsume)) }, provided.Dependencies.ToArray()); }