コード例 #1
0
        public static void ValidateStagedEPLObjects(
            DeployerModuleEPLObjects moduleEPLObjects,
            string moduleName,
            int rolloutItemNumber,
            EPStageService stageService)
        {
            var spi = (EPStageServiceSPI)stageService;

            if (spi.IsEmpty())
            {
                return;
            }

            foreach (var entry in moduleEPLObjects.ModuleContexts)
            {
                CheckAlreadyDefinedByStage(spi, EPObjectType.CONTEXT, svc => svc.ContextPathRegistry, entry.Key, moduleName, rolloutItemNumber);
            }

            foreach (var entry in moduleEPLObjects.ModuleNamedWindows)
            {
                CheckAlreadyDefinedByStage(spi, EPObjectType.NAMEDWINDOW, svc => svc.NamedWindowPathRegistry, entry.Key, moduleName, rolloutItemNumber);
            }

            foreach (var entry in moduleEPLObjects.ModuleVariables)
            {
                CheckAlreadyDefinedByStage(spi, EPObjectType.VARIABLE, svc => svc.VariablePathRegistry, entry.Key, moduleName, rolloutItemNumber);
            }

            foreach (var entry in moduleEPLObjects.ModuleEventTypes)
            {
                CheckAlreadyDefinedByStage(spi, EPObjectType.EVENTTYPE, svc => svc.EventTypePathRegistry, entry.Key, moduleName, rolloutItemNumber);
            }

            foreach (var entry in moduleEPLObjects.ModuleTables)
            {
                CheckAlreadyDefinedByStage(spi, EPObjectType.TABLE, svc => svc.TablePathRegistry, entry.Key, moduleName, rolloutItemNumber);
            }

            foreach (var entry in moduleEPLObjects.ModuleExpressions)
            {
                CheckAlreadyDefinedByStage(spi, EPObjectType.EXPRESSION, svc => svc.ExprDeclaredPathRegistry, entry.Key, moduleName, rolloutItemNumber);
            }

            foreach (var entry in moduleEPLObjects.ModuleScripts)
            {
                CheckAlreadyDefinedByStage(spi, EPObjectType.SCRIPT, svc => svc.ScriptPathRegistry, entry.Key, moduleName, rolloutItemNumber);
            }

            foreach (var entry in moduleEPLObjects.ModuleClasses)
            {
                CheckAlreadyDefinedByStage(spi, EPObjectType.CLASSPROVIDED, svc => svc.ClassProvidedPathRegistry, entry.Key, moduleName, rolloutItemNumber);
            }
        }
コード例 #2
0
ファイル: DeployerRollout.cs プロジェクト: lanicon/nesper
        private static DeployerRolloutInitResult ResolveDependenciesInitEPLObjects(
            int rolloutItemNumber,
            string deploymentId,
            ModuleProviderCLPair moduleProvider,
            EPServicesContext services,
            EPStageService stageService)
        {
            var moduleDependencies       = moduleProvider.ModuleProvider.ModuleDependencies;
            var deploymentIdDependencies = DeployerHelperResolver.ResolveDependencies(rolloutItemNumber, moduleDependencies, services);

            // initialize EPL objects defined by module
            var moduleEPLObjects = InitializeEPLObjects(moduleProvider, deploymentId, services);

            // determine staged EPL object overlap
            ValidateStagedEPLObjects(moduleEPLObjects, moduleProvider.ModuleProvider.ModuleName, rolloutItemNumber, stageService);

            // add EPL objects defined by module to path
            var moduleName  = moduleProvider.ModuleProvider.ModuleName;
            var modulePaths = UpdatePath(rolloutItemNumber, moduleEPLObjects, moduleName, deploymentId, services);

            return(new DeployerRolloutInitResult(deploymentIdDependencies, moduleEPLObjects, modulePaths, moduleName));
        }