//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @SuppressWarnings("unchecked") private static <T> T getContextualReference(javax.enterprise.inject.spi.BeanManager bm, java.util.Set<javax.enterprise.inject.spi.Bean<?>> beans, Class type) private static T getContextualReference <T, T1>(BeanManager bm, ISet <T1> beans, Type type) { if (beans == null || beans.Count == 0) { return(null); } // if we would resolve to multiple beans then BeanManager#resolve would throw an AmbiguousResolutionException //JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET: //ORIGINAL LINE: javax.enterprise.inject.spi.Bean<?> bean = bm.resolve(beans); Bean <object> bean = bm.resolve(beans); if (bean == null) { return(null); } else { //JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET: //ORIGINAL LINE: javax.enterprise.context.spi.CreationalContext<?> creationalContext = bm.createCreationalContext(bean); CreationalContext <object> creationalContext = bm.createCreationalContext(bean); // if we obtain a contextual reference to a @Dependent scope bean, make sure it is released if (isDependentScoped(bean)) { releaseOnContextClose(creationalContext, bean); } return((T)bm.getReference(bean, type, creationalContext)); } }
private static void releaseOnContextClose <T1, T2>(CreationalContext <T1> creationalContext, Bean <T2> bean) { CommandContext commandContext = Context.CommandContext; if (commandContext != null) { commandContext.registerCommandContextListener(new CreationalContextReleaseListener(creationalContext)); } else { LOG.warning("Obtained instance of @Dependent scoped bean " + bean + " outside of process engine command context. " + "Bean instance will not be destroyed. This is likely to create a memory leak. Please use a normal scope like @ApplicationScoped for this bean."); } }
public override T get <T>(Contextual <T> contextual, CreationalContext <T> arg1) { Bean <T> bean = (Bean <T>)contextual; string variableName = bean.Name; BusinessProcess businessProcess = BusinessProcess; object variable = businessProcess.getVariable(variableName); if (variable != null) { if (logger.isLoggable(Level.FINE)) { if (businessProcess.Associated) { logger.fine("Getting instance of bean '" + variableName + "' from Execution[" + businessProcess.ExecutionId + "]."); } else { logger.fine("Getting instance of bean '" + variableName + "' from transient bean store"); } } return((T)variable); } else { if (logger.isLoggable(Level.FINE)) { if (businessProcess.Associated) { logger.fine("Creating instance of bean '" + variableName + "' in business process context representing Execution[" + businessProcess.ExecutionId + "]."); } else { logger.fine("Creating instance of bean '" + variableName + "' in transient bean store"); } } T beanInstance = bean.create(arg1); businessProcess.setVariable(variableName, beanInstance); return(beanInstance); } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test @Deployment public void testExecutionIdInjectableByQualifier() public virtual void testExecutionIdInjectableByQualifier() { getBeanInstance(typeof(BusinessProcess)).startProcessByKey("keyOfTheProcess"); //JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET: //ORIGINAL LINE: java.util.Set<javax.enterprise.inject.spi.Bean<?>> beans = beanManager.getBeans(String.class, new org.camunda.bpm.engine.cdi.annotation.ExecutionIdLiteral()); ISet <Bean <object> > beans = beanManager.getBeans(typeof(string), new ExecutionIdLiteral()); Bean <string> bean = (Bean <string>)beanManager.resolve(beans); CreationalContext <string> ctx = beanManager.createCreationalContext(bean); string executionId = (string)beanManager.getReference(bean, typeof(string), ctx); Assert.assertNotNull(executionId); string processInstanceId = (string)getBeanInstance("processInstanceId"); Assert.assertNotNull(processInstanceId); assertEquals(processInstanceId, executionId); }