예제 #1
0
        public static void initializeServiceBuilder(ManagedProcessEngineMetadata processEngineConfiguration, MscManagedProcessEngineController service, ServiceBuilder <ProcessEngine> serviceBuilder, string jobExecutorName)
        {
            ContextNames.BindInfo datasourceBindInfo = ContextNames.bindInfoFor(processEngineConfiguration.DatasourceJndiName);
            serviceBuilder.addDependency(ServiceName.JBOSS.append("txn").append("TransactionManager"), typeof(TransactionManager), service.TransactionManagerInjector).addDependency(datasourceBindInfo.BinderServiceName, typeof(DataSourceReferenceFactoryService), service.DatasourceBinderServiceInjector).addDependency(ServiceNames.forMscRuntimeContainerDelegate(), typeof(MscRuntimeContainerDelegate), service.RuntimeContainerDelegateInjector).addDependency(ServiceNames.forMscRuntimeContainerJobExecutorService(jobExecutorName), typeof(MscRuntimeContainerJobExecutor), service.MscRuntimeContainerJobExecutorInjector).addDependency(ServiceNames.forMscExecutorService()).InitialMode = Mode.ACTIVE;

            if (processEngineConfiguration.Default)
            {
                serviceBuilder.addAliases(ServiceNames.forDefaultProcessEngine());
            }

            JBossCompatibilityExtension.addServerExecutorDependency(serviceBuilder, service.ExecutorInjector, false);
        }
예제 #2
0
        // RuntimeContainerDelegate implementation /////////////////////////////

        public virtual void registerProcessEngine(ProcessEngine processEngine)
        {
            if (processEngine == null)
            {
                throw new ProcessEngineException("Cannot register process engine with Msc Runtime Container: process engine is 'null'");
            }

            ServiceName serviceName = ServiceNames.forManagedProcessEngine(processEngine.Name);

            if (serviceContainer.getService(serviceName) == null)
            {
                MscManagedProcessEngine processEngineRegistration = new MscManagedProcessEngine(processEngine);

                // install the service asynchronously.
                childTarget.addService(serviceName, processEngineRegistration).setInitialMode(ServiceController.Mode.ACTIVE).addDependency(ServiceNames.forMscRuntimeContainerDelegate(), typeof(MscRuntimeContainerDelegate), processEngineRegistration.RuntimeContainerDelegateInjector).install();
            }
        }