public ClasspathImportServiceRuntime getClasspathImportServiceRuntime() { return servicesContext.getClasspathImportServiceRuntime(); }
public EventSender getEventSender(String eventTypeName) throws EventTypeException { EventType eventType = services.getEventTypeRepositoryBus().getTypeByName(eventTypeName); if (eventType == null) { throw new EventTypeException("Event type named '" + eventTypeName + "' could not be found"); } // handle built-in types ThreadingService threadingService = services.getThreadingService(); if (eventType instanceof BeanEventType) { return new EventSenderBean(this, (BeanEventType) eventType, services.getEventBeanTypedEventFactory(), threadingService); } if (eventType instanceof MapEventType) { return new EventSenderMap(this, (MapEventType) eventType, services.getEventBeanTypedEventFactory(), threadingService); } if (eventType instanceof ObjectArrayEventType) { return new EventSenderObjectArray(this, (ObjectArrayEventType) eventType, services.getEventBeanTypedEventFactory(), threadingService); } if (eventType instanceof BaseXMLEventType) { return new EventSenderXMLDOM(this, (BaseXMLEventType) eventType, services.getEventBeanTypedEventFactory(), threadingService); } if (eventType instanceof AvroSchemaEventType) { return new EventSenderAvro(this, eventType, services.getEventBeanTypedEventFactory(), threadingService); } throw new EventTypeException("An event sender for event type named '" + eventTypeName + "' could not be created as the type is not known"); }
public EventTypeAvroHandler getEventTypeAvroHandler() { return servicesContext.getEventTypeAvroHandler(); }
public Map<DeploymentIdNamePair, Long> getStatementNearestSchedules() { return getStatementNearestSchedulesInternal(services.getSchedulingService(), services.getStatementLifecycleService()); }
private synchronized void startEngineMetrics(EPServicesContext services, EPEventService runtime) { MetricName filterName = MetricNameFactory.name(services.getRuntimeURI(), "filter"); CommonJMXUtil.registerMbean(services.getFilterService(), filterName); MetricName scheduleName = MetricNameFactory.name(services.getRuntimeURI(), "schedule"); CommonJMXUtil.registerMbean(services.getSchedulingService(), scheduleName); MetricName runtimeName = MetricNameFactory.name(services.getRuntimeURI(), "runtime"); CommonJMXUtil.registerMbean(runtime, runtimeName); }
public void advanceTime(long time) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.get().qStimulantTime(services.getSchedulingService().getTime(), time, time, false, null, services.getRuntimeURI()); } services.getSchedulingService().setTime(time); services.getMetricReportingService().processTimeEvent(time); processSchedule(time); // Let listeners know of results dispatch(); // Work off the event queue if any events accumulated in there via a route() processThreadWorkQueue(); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.get().aStimulantTime(); } }
StatementSubstitutionParameterOption substitutionParameterResolver, EPRuntimeSPI epRuntime) throws PathException, EPDeployException { ModuleProviderResult provider = ModuleProviderUtil.analyze(compiled, epRuntime.getServicesContext().getClasspathImportServiceRuntime()); String moduleName = provider.getModuleProvider().getModuleName(); EPServicesContext services = epRuntime.getServicesContext(); BeanEventTypeFactoryPrivate beanEventTypeFactory = new BeanEventTypeFactoryPrivate(new EventBeanTypedEventFactoryRuntime(services.getEventTypeAvroHandler()), EventTypeFactoryImpl.INSTANCE, services.getBeanEventTypeStemService()); EventTypeResolverImpl eventTypeResolver = new EventTypeResolverImpl(moduleEventTypes, services.getEventTypePathRegistry(), services.getEventTypeRepositoryBus(), services.getBeanEventTypeFactoryPrivate()); EventTypeCollectorImpl eventTypeCollector = new EventTypeCollectorImpl(moduleEventTypes, beanEventTypeFactory, services.getEventTypeFactory(), services.getBeanEventTypeStemService(), eventTypeResolver, services.getXmlFragmentEventTypeFactory(), services.getEventTypeAvroHandler(), services.getEventBeanTypedEventFactory()); try { provider.getModuleProvider().initializeEventTypes(new EPModuleEventTypeInitServicesImpl(eventTypeCollector, eventTypeResolver)); if (entry.getValue().getEventType().getMetadata().getAccessModifier().isNonPrivateNonTransient()) { try { services.getNamedWindowPathRegistry().add(entry.getKey(), moduleName, entry.getValue(), deploymentId); } catch (PathExceptionAlreadyRegistered ex) { throw new EPDeployPreconditionException(ex.getMessage(), ex); if (entry.getValue().getTableVisibility().isNonPrivateNonTransient()) { try { services.getTablePathRegistry().add(entry.getKey(), moduleName, entry.getValue(), deploymentId); } catch (PathExceptionAlreadyRegistered ex) { throw new EPDeployPreconditionException(ex.getMessage(), ex); if (eventTypeMetadata.getBusModifier() == EventTypeBusModifier.BUS) { eventTypeSPI.setMetadataId(nameTypeId, -1); services.getEventTypeRepositoryBus().addType(eventTypeSPI); } else {
public static FAFProvider queryMethod(EPCompiled compiled, EPServicesContext services) { ByteArrayProvidingClassLoader classLoader = new ByteArrayProvidingClassLoader(compiled.getClasses(), services.getClasspathImportServiceRuntime().getClassLoader()); EventTypeResolverImpl eventTypeResolver = new EventTypeResolverImpl(moduleTypes, services.getEventTypePathRegistry(), services.getEventTypeRepositoryBus(), services.getBeanEventTypeFactoryPrivate()); EventTypeCollectorImpl eventTypeCollector = new EventTypeCollectorImpl(moduleTypes, services.getBeanEventTypeFactoryPrivate(), services.getEventTypeFactory(), services.getBeanEventTypeStemService(), eventTypeResolver, services.getXmlFragmentEventTypeFactory(), services.getEventTypeAvroHandler(), services.getEventBeanTypedEventFactory()); fafProvider.initializeEventTypes(new EPModuleEventTypeInitServicesImpl(eventTypeCollector, eventTypeResolver));
private EsperHttpRequestCacheEntry makeCacheEntry(String eventTypeName) { EventType eventType = runtime.getServicesContext().getEventTypeRepositoryBus().getNameToTypeMap().get(eventTypeName); if (eventType == null) { log.info("Event type by name '" + eventTypeName + "' not found."); eventBeanManufacturer = EventTypeUtility.getManufacturer(eventType, writableProperties, runtime.getServicesContext().getClasspathImportServiceRuntime(), false, runtime.getServicesContext().getEventTypeAvroHandler()).getManufacturer(runtime.getServicesContext().getEventBeanTypedEventFactory()); } catch (EventBeanManufactureException e) { log.info("Unable to create manufacturer for event type: " + e.getMessage(), e);
runtimeEnvironment.getServices().getTimerService().stopInternalClock(false); destroyEngineMetrics(runtimeEnvironment.getServices().getRuntimeURI()); runtimeEnvironment.getServices().destroy(); eventService.setInternalEventRouter(services.getInternalEventRouter()); services.setInternalEventRouteDest(eventService); services.getSchedulingService().setTime(startTime); services.getTimerService().setCallback(eventService); Iterator<Map.Entry<String, DeploymentRecoveryEntry>> deploymentIterator = services.getDeploymentRecoveryService().deployments(); Set<EventType> protectedVisibleTypes = new LinkedHashSet<>(); while (deploymentIterator.hasNext()) { Iterator<Map.Entry<Integer, UpdateListener[]>> listenerIterator = services.getListenerRecoveryService().listeners(); while (listenerIterator.hasNext()) { Map.Entry<Integer, UpdateListener[]> deployment = listenerIterator.next(); EPStatementSPI epStatement = services.getStatementLifecycleService().getStatementById(deployment.getKey()); epStatement.recoveryUpdateListeners(new EPStatementListenerSet(deployment.getValue())); Set<EventType> filterServiceTypes = new LinkedHashSet<>(services.getEventTypeRepositoryBus().getAllTypes()); filterServiceTypes.addAll(protectedVisibleTypes); Supplier<Collection<EventType>> availableTypes = new Supplier<Collection<EventType>>() { services.getFilterService().init(availableTypes);
EventType eventType = runtime.getServicesContext().getEventTypeRepositoryBus().getNameToTypeMap().get(request.getStream()); if (eventType == null) { throw new ConfigurationException("Event type by name '" + request.getStream() + "' not found"); if (entry.getValue().isNio()) { try { runtime.getServicesContext().getClasspathImportServiceRuntime().getClassForNameProvider().classForName("org.apache.http.nio.NHttpServiceHandler"); } catch (ClassNotFoundException e) { throw new ConfigurationException("NIO Handler not found in classpath, please ensure httpcore-nio exists in classpath.");
public EPCompilerPathable getRuntimePath() { EPServicesContext services = runtimeEnvironment.getServices(); VariableRepositoryPreconfigured variables = new VariableRepositoryPreconfigured(); for (Map.Entry<String, VariableDeployment> entry : services.getVariableManagementService().getDeploymentsWithVariables().entrySet()) { for (Map.Entry<String, Variable> variableEntry : entry.getValue().getVariables().entrySet()) { if (variableEntry.getValue().getMetaData().isPreconfigured()) { variables.addVariable(variableEntry.getKey(), variableEntry.getValue().getMetaData()); } } } EventTypeRepositoryImpl eventTypes = new EventTypeRepositoryImpl(true); for (Map.Entry<String, EventType> entry : services.getEventTypeRepositoryBus().getNameToTypeMap().entrySet()) { if (entry.getValue().getMetadata().getAccessModifier() == NameAccessModifier.PRECONFIGURED) { eventTypes.addType(entry.getValue()); } } return new EPCompilerPathableImpl( services.getVariablePathRegistry().copy(), services.getEventTypePathRegistry().copy(), services.getExprDeclaredPathRegistry().copy(), services.getNamedWindowPathRegistry().copy(), services.getTablePathRegistry().copy(), services.getContextPathRegistry().copy(), services.getScriptPathRegistry().copy(), eventTypes, variables); }
if (services.getRowRecogStatePoolEngineSvc() != null) { services.getRowRecogStatePoolEngineSvc().removeStatement(new DeploymentIdNamePair(statement.getDeploymentId(), statement.getStatementName())); statement.getDestroyCallback().destroy(new StatementDestroyServices(services.getFilterService()), statement); } else { statement.getStatementAIFactoryProvider().getFactory().statementDestroy(statement); services.getEpServicesHA().getListenerRecoveryService().remove(statement.getStatementId()); services.getStatementLifecycleService().removeStatement(statement.getStatementId()); services.getPatternSubexpressionPoolRuntimeSvc().removeStatement(statement.getStatementId()); services.getFilterSharedBoolExprRepository().removeStatement(statement.getStatementId()); services.getFilterSharedLookupableRepository().removeReferencesStatement(statement.getStatementId()); services.getNamedWindowPathRegistry().removeDependency(namedWindow.getName(), namedWindow.getModuleName(), deploymentId); services.getTablePathRegistry().removeDependency(table.getName(), table.getModuleName(), deploymentId); services.getVariablePathRegistry().removeDependency(variable.getName(), variable.getModuleName(), deploymentId); services.getContextPathRegistry().removeDependency(context.getName(), context.getModuleName(), deploymentId); services.getEventTypePathRegistry().removeDependency(eventType.getName(), eventType.getModuleName(), deploymentId); services.getExprDeclaredPathRegistry().removeDependency(exprDecl.getName(), exprDecl.getModuleName(), deploymentId); services.getScriptPathRegistry().removeDependency(new NameAndParamNum(script.getName(), script.getParamNum()), script.getModuleName(), deploymentId); if (index.isNamedWindow()) { NameAndModule namedWindowName = NameAndModule.findName(index.getInfraName(), moduleDependencies.getPathNamedWindows());
MultiMatchHandler multiMatchHandler = services.getMultiMatchHandlerFactory().make(informationals.isHasSubquery(), informationals.isNeedDedup()); StatementMetricHandle stmtMetric = services.getMetricReportingService().getStatementHandle(statementId, deploymentId, statementName); String latchFactoryNameBack = "insert_stream_B_" + informationals.getInsertIntoLatchName() + "_" + statementName; String latchFactoryNameFront = "insert_stream_F_" + informationals.getInsertIntoLatchName() + "_" + statementName; long msecTimeout = services.getRuntimeSettingsService().getConfigurationRuntime().getThreading().getInsertIntoDispatchTimeout(); Locking locking = services.getRuntimeSettingsService().getConfigurationRuntime().getThreading().getInsertIntoDispatchLocking(); InsertIntoLatchFactory latchFactoryFront = new InsertIntoLatchFactory(latchFactoryNameFront, informationals.isStateless(), msecTimeout, locking, services.getTimeSourceService()); InsertIntoLatchFactory latchFactoryBack = new InsertIntoLatchFactory(latchFactoryNameBack, informationals.isStateless(), msecTimeout, locking, services.getTimeSourceService()); insertIntoFrontLatchFactory = latchFactoryFront; insertIntoBackLatchFactory = latchFactoryBack; String optionalContextName = informationals.getOptionalContextName(); if (optionalContextName != null) { String contextDeploymentId = ContextDeployTimeResolver.resolveContextDeploymentId(informationals.getOptionalContextModuleName(), informationals.getOptionalContextVisibility(), optionalContextName, deploymentId, services.getContextPathRegistry()); ContextManager contextManager = services.getContextManagementService().getContextManager(contextDeploymentId, optionalContextName); contextRuntimeDescriptor = contextManager.getContextRuntimeDescriptor(); AIRegistryRequirements registryRequirements = statementProvider.getStatementAIFactoryProvider().getFactory().getRegistryRequirements(); ConfigurationRuntimeThreading configurationThreading = services.getRuntimeSettingsService().getConfigurationRuntime().getThreading(); boolean preserveDispatchOrder = configurationThreading.isListenerDispatchPreserveOrder() && !informationals.isStateless(); boolean isSpinLocks = configurationThreading.getListenerDispatchLocking() == Locking.SPIN; if (preserveDispatchOrder) { if (isSpinLocks) { dispatchChildView = new UpdateDispatchViewBlockingSpin(eventType, statementResultService, services.getDispatchService(), msecBlockingTimeout, services.getTimeSourceService()); } else { dispatchChildView = new UpdateDispatchViewBlockingWait(eventType, statementResultService, services.getDispatchService(), msecBlockingTimeout);
public EventType getEventTypePreconfigured(String eventTypeName) { return services.getEventTypeRepositoryBus().getTypeByName(eventTypeName); }
EventType eventType = runtime.getServicesContext().getEventTypeRepositoryBus().getNameToTypeMap().get(name); if (eventType == null) { log.warn(".unmarshal Failed to unmarshal map message, event type name '" + name + "' is not a known type"); return runtime.getServicesContext().getEventBeanTypedEventFactory().adapterForTypedBean(obj, eventType); } else if (message instanceof MapMessage) { Map<String, Object> properties = new HashMap<String, Object>(); EventType eventType = runtime.getServicesContext().getEventTypeRepositoryBus().getNameToTypeMap().get(name); if (eventType == null) { log.warn(".unmarshal Failed to unmarshal map message, event type name '" + name + "' is not a known type"); return runtime.getServicesContext().getEventBeanTypedEventFactory().adapterForTypedMap(properties, eventType); } else { String error = ".unmarshal Failed to unmarshal message of JMS type: " + message.getJMSType();
public TimeProvider getTimeProvider() { return servicesContext.getSchedulingService(); }
protected void processMatches(EventBean theEvent) { long version = services.getFilterService().evaluate(theEvent, matches); services.getEventProcessingRWLock().releaseReadLock(); // Allow listener to create new statements try { unmatchedListener.update(theEvent); } finally { services.getEventProcessingRWLock().acquireReadLock(); long deltaCPU = cpuTimeAfter - cpuTimeBefore; long deltaWall = wallTimeAfter - wallTimeBefore; services.getMetricReportingService().accountTime(handle.getStatementHandle().getMetricsHandle(), deltaCPU, deltaWall, 1); } else { if (routeThreading) { services.getThreadingService().submitRoute(new RouteUnitSingle(this, handleCallback, theEvent, version)); } else { processStatementFilterSingle(handle, handleCallback, theEvent, version, 0); size = ((Collection) callbackList).size(); services.getMetricReportingService().accountTime(handle.getStatementHandle().getMetricsHandle(), deltaCPU, deltaWall, size); } else { if (routeThreading) { services.getThreadingService().submitRoute(new RouteUnitMultiple(this, callbackList, theEvent, handle, version)); } else { processStatementFilterMultiple(handle, callbackList, theEvent, version, 0);
public void setUpdateListeners(EPStatementListenerSet updateListeners, boolean isRecovery) { // indicate that listeners were updated for potential persistence of listener set, once the statement context is known if (epStatement != null) { if (!isRecovery) { StatementContext stmtCtx = epStatement.getStatementContext(); epServicesContext.getEpServicesHA().getListenerRecoveryService().put(stmtCtx.getStatementId(), stmtCtx.getStatementName(), updateListeners.getListeners()); } } this.statementListenerSet = updateListeners; isMakeNatural = statementListenerSet.getSubscriber() != null; isMakeSynthetic = !(statementListenerSet.getListeners().length == 0) || statementInformationals.isAlwaysSynthesizeOutputEvents(); if (statementListenerSet.getSubscriber() == null) { statementResultNaturalStrategy = null; isMakeNatural = false; return; } try { statementResultNaturalStrategy = ResultDeliveryStrategyFactory.create(epStatement, statementListenerSet.getSubscriber(), statementListenerSet.getSubscriberMethodName(), selectClauseTypes, selectClauseColumnNames, runtime.getURI(), runtime.getServicesContext().getClasspathImportServiceRuntime()); isMakeNatural = true; } catch (ResultDeliveryStrategyInvalidException ex) { throw new EPSubscriberException(ex.getMessage(), ex); } }
public ContextManagementService getContextManagementService() { return servicesContext.getContextManagementService(); }