private EntityManager resolveExtendedEntityManager(Object target, @Nullable String requestingBeanName) { // Obtain EntityManager reference from JNDI? EntityManager em = getPersistenceContext(this.unitName, true); if (em == null) { // No pre-built EntityManager found -> build one based on factory. // Obtain EntityManagerFactory from JNDI? EntityManagerFactory emf = getPersistenceUnit(this.unitName); if (emf == null) { // Need to search for EntityManagerFactory beans. emf = findEntityManagerFactory(this.unitName, requestingBeanName); } // Inject a container-managed extended EntityManager. em = ExtendedEntityManagerCreator.createContainerManagedEntityManager( emf, this.properties, this.synchronizedWithTransaction); } if (em instanceof EntityManagerProxy && beanFactory != null && requestingBeanName != null && beanFactory.containsBean(requestingBeanName) && !beanFactory.isPrototype(requestingBeanName)) { extendedEntityManagersToClose.put(target, ((EntityManagerProxy) em).getTargetEntityManager()); } return em; } }
return bf.getBean(matchingBean, beanType); else if (bf.containsBean(qualifier)) {
private EntityManager resolveExtendedEntityManager(Object target, @Nullable String requestingBeanName) { // Obtain EntityManager reference from JNDI? EntityManager em = getPersistenceContext(this.unitName, true); if (em == null) { // No pre-built EntityManager found -> build one based on factory. // Obtain EntityManagerFactory from JNDI? EntityManagerFactory emf = getPersistenceUnit(this.unitName); if (emf == null) { // Need to search for EntityManagerFactory beans. emf = findEntityManagerFactory(this.unitName, requestingBeanName); } // Inject a container-managed extended EntityManager. em = ExtendedEntityManagerCreator.createContainerManagedEntityManager( emf, this.properties, this.synchronizedWithTransaction); } if (em instanceof EntityManagerProxy && beanFactory != null && requestingBeanName != null && beanFactory.containsBean(requestingBeanName) && !beanFactory.isPrototype(requestingBeanName)) { extendedEntityManagersToClose.put(target, ((EntityManagerProxy) em).getTargetEntityManager()); } return em; } }
return bf.getBean(matchingBean, beanType); else if (bf.containsBean(qualifier)) {
@PostConstruct public void init() { String cls = "org.springframework.boot.autoconfigure.jdbc.DataSourceInitializerInvoker"; if (beanFactory.containsBean(cls)) { beanFactory.getBean(cls); } }
public static <T> T getBean(ListableBeanFactory bf, String beanName) { @SuppressWarnings("unchecked") T bean = (T) (bf.containsBean(beanName) ? bf.getBean(beanName) : null); return bean; }
private DataSourceHolder getDataSourceByKey(Class<?> daoClass, String key) { if (applicationContext.containsBean(key)) { Object dataSource = applicationContext.getBean(key); if (!(dataSource instanceof DataSource) && !(dataSource instanceof DataSourceFactory)) { throw new IllegalClassException("expects DataSource or DataSourceFactory, but a " + dataSource.getClass().getName()); } if (logger.isDebugEnabled()) { logger.debug("found dataSource: " + key + " for DAO " + daoClass.getName()); } return new DataSourceHolder(dataSource); } return null; } }
@Test public void testRouter() { this.beanFactory.containsBean("routeFlow.subFlow#0.channel#0"); int[] payloads = new int[] { 1, 2, 3, 4, 5, 6 }; for (int payload : payloads) { this.routerInput.send(new GenericMessage<>(payload)); } for (int i = 0; i < 3; i++) { Message<?> receive = this.oddChannel.receive(2000); assertNotNull(receive); assertEquals(payloads[i * 2] * 3, receive.getPayload()); receive = this.evenChannel.receive(2000); assertNotNull(receive); assertEquals(payloads[i * 2 + 1], receive.getPayload()); } }
@Test public void testDirectFlow() { assertTrue(this.beanFactory.containsBean("filter")); assertTrue(this.beanFactory.containsBean("filter.handler")); assertTrue(this.beanFactory.containsBean("expressionFilter")); assertTrue(this.beanFactory.containsBean("expressionFilter.handler")); QueueChannel replyChannel = new QueueChannel(); Message<String> message = MessageBuilder.withPayload("100").setReplyChannel(replyChannel).build();
@Test public void testLambdas() { assertTrue(this.beanFactory.containsBean("lambdasFlow.filter#0")); assertTrue(this.beanFactory.containsBean("lambdasFlow.transformer#0")); QueueChannel replyChannel = new QueueChannel(); Message<?> message = MessageBuilder.withPayload("World".getBytes()) .setHeader(MessageHeaders.REPLY_CHANNEL, replyChannel) .build(); this.lambdasInput.send(message); Message<?> receive = replyChannel.receive(10000); assertNotNull(receive); assertEquals("Hello World", receive.getPayload()); message = MessageBuilder.withPayload("Spring") .setHeader(MessageHeaders.REPLY_CHANNEL, replyChannel) .build(); this.lambdasInput.send(message); assertNull(replyChannel.receive(10)); }
@Test public void testBridge() { GenericMessage<String> message = new GenericMessage<>("test"); this.bridgeFlowInput.send(message); Message<?> reply = this.bridgeFlowOutput.receive(10000); assertNotNull(reply); assertEquals("test", reply.getPayload()); assertTrue(this.beanFactory.containsBean("bridgeFlow2.channel#0")); assertThat(this.beanFactory.getBean("bridgeFlow2.channel#0"), instanceOf(FixedSubscriberChannel.class)); try { this.bridgeFlow2Input.send(message); fail("Expected MessageDispatchingException"); } catch (Exception e) { assertThat(e, instanceOf(MessageDeliveryException.class)); assertThat(e.getCause(), instanceOf(MessageDispatchingException.class)); assertThat(e.getMessage(), containsString("Dispatcher has no subscribers")); } this.controlBus.send("@bridge.start()"); this.bridgeFlow2Input.send(message); reply = this.bridgeFlow2Output.receive(10000); assertNotNull(reply); assertEquals("test", reply.getPayload()); assertTrue(this.delayedAdvice.getInvoked()); }
private static void register( BeanDefinitionRegistry registry ) { if ( registry instanceof ListableBeanFactory && ( (ListableBeanFactory) registry ).containsBean( BEAN_NAME ) ) { return; } RootBeanDefinition definition = new RootBeanDefinition( SharedMetadataReaderFactoryBean.class ); registry.registerBeanDefinition( BEAN_NAME, definition ); }
private DataSource getDataSourceByKey(Class<?> daoClass, String key) { if (applicationContext.containsBean(key)) { DataSource dataSource = (DataSource) applicationContext.getBean(key, DataSource.class); if (logger.isDebugEnabled()) { logger.debug("found dataSource: " + key + " for DAO " + daoClass.getName()); } return dataSource; } return null; } }
@PostConstruct public void init() { String cls = "org.springframework.boot.autoconfigure.jdbc.DataSourceInitializerInvoker"; if (beanFactory.containsBean(cls)) { beanFactory.getBean(cls); } }
public static <T> T getBean(ListableBeanFactory bf, String beanName) { @SuppressWarnings("unchecked") T bean = (T) (bf.containsBean(beanName) ? bf.getBean(beanName) : null); return bean; }
assertFalse(this.beanFactory.containsBean(flowRegistrationId)); assertFalse(this.beanFactory.containsBean(flowRegistrationId + ".input")); assertFalse(this.beanFactory.containsBean(flowRegistrationId + BeanFactoryHandler.class.getName() + "#0"));
private DataSourceHolder getDataSourceByKey(Class<?> daoClass, String key) { if (applicationContext.containsBean(key)) { Object dataSource = applicationContext.getBean(key); if (!(dataSource instanceof DataSource) && !(dataSource instanceof DataSourceFactory)) { throw new IllegalClassException("expects DataSource or DataSourceFactory, but a " + dataSource.getClass().getName()); } if (logger.isDebugEnabled()) { logger.debug("found dataSource: " + key + " for DAO " + daoClass.getName()); } return new DataSourceHolder(dataSource); } return null; } }
public static Map lookupMap( String role, ListableBeanFactory beanFactory ) { Map map = new HashMap(); String mask = role + ROLE_SEPARATOR; String[] beans = beanFactory.getBeanDefinitionNames(); for ( int i = 0; i < beans.length; i++ ) { String name = beans[i]; if ( name.startsWith( mask ) ) { map.put( name.substring( mask.length() ), beanFactory.getBean( name ) ); } } if ( beanFactory.containsBean( role ) ) { map.put( PlexusConstants.PLEXUS_DEFAULT_HINT, beanFactory.getBean( role ) ); } return map; }
public static BindingRegistry getInstance(ListableBeanFactory beanFactory) { if (beanFactory.containsBean(BindingRegistry.NAME)) { BindingRegistry bindingRegistry = (BindingRegistry) beanFactory.getBean(BindingRegistry.NAME); return bindingRegistry; } Map<String, BindingFactoryBean> allBindingFactories = beanFactory.getBeansOfType(BindingFactoryBean.class); BindingRegistry bindingRegistry = new BindingRegistry(); for (BindingFactoryBean bfb : allBindingFactories.values()) { String source = generateUniqueId(bfb.getSourceUnit().getId(), bfb.getSourceCapabilityId()); String target = generateUniqueId(bfb.getTargetUnit().getId(), bfb.getTargetCapabilityId()); bindingRegistry.register(source, target); LOG.debug("Explicit binding found: [{}] -> [{}]", source, target); } registerWithSpringContext(bindingRegistry, beanFactory); return bindingRegistry; }
@Test public void testRouter() { this.beanFactory.containsBean("routeFlow.subFlow#0.channel#0"); int[] payloads = new int[] {1, 2, 3, 4, 5, 6}; for (int payload : payloads) { this.routerInput.send(new GenericMessage<>(payload)); } for (int i = 0; i < 3; i++) { Message<?> receive = this.oddChannel.receive(2000); assertNotNull(receive); assertEquals(payloads[i * 2] * 3, receive.getPayload()); receive = this.evenChannel.receive(2000); assertNotNull(receive); assertEquals(payloads[i * 2 + 1], receive.getPayload()); } }