protected internal virtual void initializeEntityCache() { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.camunda.bpm.engine.impl.jobexecutor.JobExecutorContext jobExecutorContext = org.camunda.bpm.engine.impl.context.Context.getJobExecutorContext(); JobExecutorContext jobExecutorContext = Context.JobExecutorContext; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl processEngineConfiguration = org.camunda.bpm.engine.impl.context.Context.getProcessEngineConfiguration(); ProcessEngineConfigurationImpl processEngineConfiguration = Context.ProcessEngineConfiguration; if (processEngineConfiguration != null && processEngineConfiguration.DbEntityCacheReuseEnabled && jobExecutorContext != null) { dbEntityCache = jobExecutorContext.EntityCache; if (dbEntityCache == null) { dbEntityCache = new DbEntityCache(processEngineConfiguration.DbEntityCacheKeyMapping); jobExecutorContext.EntityCache = dbEntityCache; } } else { if (processEngineConfiguration != null) { dbEntityCache = new DbEntityCache(processEngineConfiguration.DbEntityCacheKeyMapping); } else { dbEntityCache = new DbEntityCache(); } } }
protected internal virtual bool IsSameMessageEventSubscriptionAlreadyPresent(EventSubscriptionDeclaration eventSubscription, string tenantId) { // look for subscriptions for the same name in db: IList <EventSubscriptionEntity> subscriptionsForSameMessageName = EventSubscriptionManager.FindEventSubscriptionsByNameAndTenantId(EventType.Message.Name, eventSubscription.UnresolvedEventName, tenantId); //TODO 缓存差异 // also look for subscriptions created in the session: 源码有值 IList <EventSubscriptionEntity> cachedSubscriptions = DbEntityCache.GetEntitiesByType <EventSubscriptionEntity>(typeof(EventSubscriptionEntity)); foreach (EventSubscriptionEntity cachedSubscription in cachedSubscriptions) { //TODO HasTenantId subscriptions if (eventSubscription.UnresolvedEventName.Equals(cachedSubscription.EventName) && HasTenantId(cachedSubscription, tenantId) && !subscriptionsForSameMessageName.Contains(cachedSubscription)) { subscriptionsForSameMessageName.Add(cachedSubscription); } } // remove subscriptions deleted in the same command //subscriptionsForSameMessageName = DbEntityManager.PruneDeletedEntities(subscriptionsForSameMessageName); subscriptionsForSameMessageName = Context.CommandContext.PruneDeletedEntities <EventSubscriptionEntity>(subscriptionsForSameMessageName); // remove subscriptions for different type of event (i.e. remove intermediate message event subscriptions) subscriptionsForSameMessageName = FilterSubscriptionsOfDifferentType(eventSubscription, subscriptionsForSameMessageName); return(subscriptionsForSameMessageName.Count > 0); }