类org.hibernate.resource.beans.container.spi.ContainedBean源码实例Demo

下面列出了怎么用org.hibernate.resource.beans.container.spi.ContainedBean的API类实例代码及写法,或者点击链接到github查看源代码。

@Override
@SuppressWarnings("unchecked")
public <B> ContainedBean<B> getBean(
		Class<B> beanType, LifecycleOptions lifecycleOptions, BeanInstanceProducer fallbackProducer) {

	SpringContainedBean<?> bean;
	if (lifecycleOptions.canUseCachedReferences()) {
		bean = this.beanCache.get(beanType);
		if (bean == null) {
			bean = createBean(beanType, lifecycleOptions, fallbackProducer);
			this.beanCache.put(beanType, bean);
		}
	}
	else {
		bean = createBean(beanType, lifecycleOptions, fallbackProducer);
	}
	return (SpringContainedBean<B>) bean;
}
 
@Override
@SuppressWarnings("unchecked")
public <B> ContainedBean<B> getBean(
		String name, Class<B> beanType, LifecycleOptions lifecycleOptions, BeanInstanceProducer fallbackProducer) {

	SpringContainedBean<?> bean;
	if (lifecycleOptions.canUseCachedReferences()) {
		bean = this.beanCache.get(name);
		if (bean == null) {
			bean = createBean(name, beanType, lifecycleOptions, fallbackProducer);
			this.beanCache.put(name, bean);
		}
	}
	else {
		bean = createBean(name, beanType, lifecycleOptions, fallbackProducer);
	}
	return (SpringContainedBean<B>) bean;
}
 
@Test
public void testCanRetrieveBeanByNameWithJpaCompliantOptions() {
	BeanContainer beanContainer = getBeanContainer();
	assertNotNull(beanContainer);

	ContainedBean<MultiplePrototypesInSpringContextTestBean> bean = beanContainer.getBean(
			"multiple-1", MultiplePrototypesInSpringContextTestBean.class,
			JpaLifecycleOptions.INSTANCE, IneffectiveBeanInstanceProducer.INSTANCE
	);

	assertNotNull(bean);
	MultiplePrototypesInSpringContextTestBean instance = bean.getBeanInstance();
	assertNotNull(instance);
	assertEquals("multiple-1", instance.getName());
	assertSame(applicationContext, instance.getApplicationContext());
}
 
@Test
public void testCanRetrieveFallbackBeanByTypeWithJpaCompliantOptions() {
	BeanContainer beanContainer = getBeanContainer();
	assertNotNull(beanContainer);
	NoDefinitionInSpringContextTestBeanInstanceProducer fallbackProducer = new NoDefinitionInSpringContextTestBeanInstanceProducer();

	ContainedBean<NoDefinitionInSpringContextTestBean> bean = beanContainer.getBean(
			NoDefinitionInSpringContextTestBean.class,
			JpaLifecycleOptions.INSTANCE, fallbackProducer
	);

	assertEquals(1, fallbackProducer.currentUnnamedInstantiationCount());
	assertEquals(0, fallbackProducer.currentNamedInstantiationCount());

	assertNotNull(bean);
	NoDefinitionInSpringContextTestBean instance = bean.getBeanInstance();
	assertNotNull(instance);
	assertEquals(BeanSource.FALLBACK, instance.getSource());
	assertNull(instance.getApplicationContext());
}
 
@Test
public void testCanRetrieveFallbackBeanByNameWithJpaCompliantOptions() {
	BeanContainer beanContainer = getBeanContainer();
	assertNotNull(beanContainer);
	NoDefinitionInSpringContextTestBeanInstanceProducer fallbackProducer = new NoDefinitionInSpringContextTestBeanInstanceProducer();

	ContainedBean<NoDefinitionInSpringContextTestBean> bean = beanContainer.getBean(
			"some name", NoDefinitionInSpringContextTestBean.class,
			JpaLifecycleOptions.INSTANCE, fallbackProducer
	);

	assertEquals(0, fallbackProducer.currentUnnamedInstantiationCount());
	assertEquals(1, fallbackProducer.currentNamedInstantiationCount());

	assertNotNull(bean);
	NoDefinitionInSpringContextTestBean instance = bean.getBeanInstance();
	assertNotNull(instance);
	assertEquals(BeanSource.FALLBACK, instance.getSource());
	assertEquals("some name", instance.getName());
	assertNull(instance.getApplicationContext());
}
 
@Test
public void testCanRetrieveFallbackBeanByTypeWithNativeOptions() {
	BeanContainer beanContainer = getBeanContainer();
	assertNotNull(beanContainer);
	NoDefinitionInSpringContextTestBeanInstanceProducer fallbackProducer = new NoDefinitionInSpringContextTestBeanInstanceProducer();

	ContainedBean<NoDefinitionInSpringContextTestBean> bean = beanContainer.getBean(
			NoDefinitionInSpringContextTestBean.class,
			NativeLifecycleOptions.INSTANCE, fallbackProducer
	);

	assertEquals(1, fallbackProducer.currentUnnamedInstantiationCount());
	assertEquals(0, fallbackProducer.currentNamedInstantiationCount());

	assertNotNull(bean);
	NoDefinitionInSpringContextTestBean instance = bean.getBeanInstance();
	assertNotNull(instance);
	assertEquals(BeanSource.FALLBACK, instance.getSource());
	assertNull(instance.getApplicationContext());
}
 
@Test
public void testCanRetrieveFallbackBeanByNameWithNativeOptions() {
	BeanContainer beanContainer = getBeanContainer();
	assertNotNull(beanContainer);
	NoDefinitionInSpringContextTestBeanInstanceProducer fallbackProducer = new NoDefinitionInSpringContextTestBeanInstanceProducer();

	ContainedBean<NoDefinitionInSpringContextTestBean> bean = beanContainer.getBean(
			"some name", NoDefinitionInSpringContextTestBean.class,
			NativeLifecycleOptions.INSTANCE, fallbackProducer
	);

	assertEquals(0, fallbackProducer.currentUnnamedInstantiationCount());
	assertEquals(1, fallbackProducer.currentNamedInstantiationCount());

	assertNotNull(bean);
	NoDefinitionInSpringContextTestBean instance = bean.getBeanInstance();
	assertNotNull(instance);
	assertEquals(BeanSource.FALLBACK, instance.getSource());
	assertEquals("some name", instance.getName());
	assertNull(instance.getApplicationContext());
}
 
@Override
@SuppressWarnings("unchecked")
public <B> ContainedBean<B> getBean(
		Class<B> beanType, LifecycleOptions lifecycleOptions, BeanInstanceProducer fallbackProducer) {

	SpringContainedBean<?> bean;
	if (lifecycleOptions.canUseCachedReferences()) {
		bean = this.beanCache.get(beanType);
		if (bean == null) {
			bean = createBean(beanType, lifecycleOptions, fallbackProducer);
			this.beanCache.put(beanType, bean);
		}
	}
	else {
		bean = createBean(beanType, lifecycleOptions, fallbackProducer);
	}
	return (SpringContainedBean<B>) bean;
}
 
@Override
@SuppressWarnings("unchecked")
public <B> ContainedBean<B> getBean(
		String name, Class<B> beanType, LifecycleOptions lifecycleOptions, BeanInstanceProducer fallbackProducer) {

	SpringContainedBean<?> bean;
	if (lifecycleOptions.canUseCachedReferences()) {
		bean = this.beanCache.get(name);
		if (bean == null) {
			bean = createBean(name, beanType, lifecycleOptions, fallbackProducer);
			this.beanCache.put(name, bean);
		}
	}
	else {
		bean = createBean(name, beanType, lifecycleOptions, fallbackProducer);
	}
	return (SpringContainedBean<B>) bean;
}
 
@Test
public void testCanRetrieveBeanByTypeWithJpaCompliantOptions() {
	BeanContainer beanContainer = getBeanContainer();
	assertNotNull(beanContainer);

	ContainedBean<SinglePrototypeInSpringContextTestBean> bean = beanContainer.getBean(
			SinglePrototypeInSpringContextTestBean.class,
			JpaLifecycleOptions.INSTANCE,
			IneffectiveBeanInstanceProducer.INSTANCE
	);

	assertNotNull(bean);
	SinglePrototypeInSpringContextTestBean instance = bean.getBeanInstance();
	assertNotNull(instance);
	assertSame(applicationContext, instance.getApplicationContext());
}
 
@Test
public void testCanRetrieveBeanByNameWithJpaCompliantOptions() {
	BeanContainer beanContainer = getBeanContainer();
	assertNotNull(beanContainer);

	ContainedBean<MultiplePrototypesInSpringContextTestBean> bean = beanContainer.getBean(
			"multiple-1", MultiplePrototypesInSpringContextTestBean.class,
			JpaLifecycleOptions.INSTANCE,
			IneffectiveBeanInstanceProducer.INSTANCE
	);

	assertNotNull(bean);
	MultiplePrototypesInSpringContextTestBean instance = bean.getBeanInstance();
	assertNotNull(instance);
	assertEquals("multiple-1", instance.getName());
	assertSame(applicationContext, instance.getApplicationContext());
}
 
@Test
public void testCanRetrieveFallbackBeanByTypeWithJpaCompliantOptions() {
	BeanContainer beanContainer = getBeanContainer();
	assertNotNull(beanContainer);
	NoDefinitionInSpringContextTestBeanInstanceProducer fallbackProducer = new NoDefinitionInSpringContextTestBeanInstanceProducer();

	ContainedBean<NoDefinitionInSpringContextTestBean> bean = beanContainer.getBean(
			NoDefinitionInSpringContextTestBean.class,
			JpaLifecycleOptions.INSTANCE,
			fallbackProducer
	);

	assertEquals(1, fallbackProducer.currentUnnamedInstantiationCount());
	assertEquals(0, fallbackProducer.currentNamedInstantiationCount());

	assertNotNull(bean);
	NoDefinitionInSpringContextTestBean instance = bean.getBeanInstance();
	assertNotNull(instance);
	assertEquals(BeanSource.FALLBACK, instance.getSource());
	assertNull(instance.getApplicationContext());
}
 
@Test
public void testCanRetrieveFallbackBeanByNameWithJpaCompliantOptions() {
	BeanContainer beanContainer = getBeanContainer();
	assertNotNull(beanContainer);
	NoDefinitionInSpringContextTestBeanInstanceProducer fallbackProducer = new NoDefinitionInSpringContextTestBeanInstanceProducer();

	ContainedBean<NoDefinitionInSpringContextTestBean> bean = beanContainer.getBean(
			"some name", NoDefinitionInSpringContextTestBean.class,
			JpaLifecycleOptions.INSTANCE,
			fallbackProducer
	);

	assertEquals(0, fallbackProducer.currentUnnamedInstantiationCount());
	assertEquals(1, fallbackProducer.currentNamedInstantiationCount());

	assertNotNull(bean);
	NoDefinitionInSpringContextTestBean instance = bean.getBeanInstance();
	assertNotNull(instance);
	assertEquals(BeanSource.FALLBACK, instance.getSource());
	assertEquals("some name", instance.getName());
	assertNull(instance.getApplicationContext());
}
 
@Test
public void testCanRetrieveFallbackBeanByTypeWithNativeOptions() {
	BeanContainer beanContainer = getBeanContainer();
	assertNotNull(beanContainer);
	NoDefinitionInSpringContextTestBeanInstanceProducer fallbackProducer = new NoDefinitionInSpringContextTestBeanInstanceProducer();

	ContainedBean<NoDefinitionInSpringContextTestBean> bean = beanContainer.getBean(
			NoDefinitionInSpringContextTestBean.class,
			NativeLifecycleOptions.INSTANCE,
			fallbackProducer
	);

	assertEquals(1, fallbackProducer.currentUnnamedInstantiationCount());
	assertEquals(0, fallbackProducer.currentNamedInstantiationCount());

	assertNotNull(bean);
	NoDefinitionInSpringContextTestBean instance = bean.getBeanInstance();
	assertNotNull(instance);
	assertEquals(BeanSource.FALLBACK, instance.getSource());
	assertNull(instance.getApplicationContext());
}
 
@Test
public void testCanRetrieveFallbackBeanByNameWithNativeOptions() {
	BeanContainer beanContainer = getBeanContainer();
	assertNotNull(beanContainer);
	NoDefinitionInSpringContextTestBeanInstanceProducer fallbackProducer = new NoDefinitionInSpringContextTestBeanInstanceProducer();

	ContainedBean<NoDefinitionInSpringContextTestBean> bean = beanContainer.getBean(
			"some name", NoDefinitionInSpringContextTestBean.class,
			NativeLifecycleOptions.INSTANCE,
			fallbackProducer
	);

	assertEquals(0, fallbackProducer.currentUnnamedInstantiationCount());
	assertEquals(1, fallbackProducer.currentNamedInstantiationCount());

	assertNotNull(bean);
	NoDefinitionInSpringContextTestBean instance = bean.getBeanInstance();
	assertNotNull(instance);
	assertEquals(BeanSource.FALLBACK, instance.getSource());
	assertEquals("some name", instance.getName());
	assertNull(instance.getApplicationContext());
}
 
@Test
public void testCanRetrieveBeanByTypeWithJpaCompliantOptions() {
	BeanContainer beanContainer = getBeanContainer();
	assertNotNull(beanContainer);

	ContainedBean<SinglePrototypeInSpringContextTestBean> bean = beanContainer.getBean(
			SinglePrototypeInSpringContextTestBean.class,
			JpaLifecycleOptions.INSTANCE, IneffectiveBeanInstanceProducer.INSTANCE
	);

	assertNotNull(bean);
	SinglePrototypeInSpringContextTestBean instance = bean.getBeanInstance();
	assertNotNull(instance);
	assertSame(applicationContext, instance.getApplicationContext());
}
 
@Test
public void testCanRetrieveBeanByTypeWithNativeOptions() {
	BeanContainer beanContainer = getBeanContainer();
	assertNotNull(beanContainer);

	ContainedBean<SinglePrototypeInSpringContextTestBean> bean = beanContainer.getBean(
			SinglePrototypeInSpringContextTestBean.class,
			NativeLifecycleOptions.INSTANCE, IneffectiveBeanInstanceProducer.INSTANCE
	);

	assertNotNull(bean);
	SinglePrototypeInSpringContextTestBean instance = bean.getBeanInstance();
	assertNotNull(instance);
	assertEquals("single", instance.getName());
	assertSame(applicationContext, instance.getApplicationContext());

	ContainedBean<SinglePrototypeInSpringContextTestBean> bean2 = beanContainer.getBean(
			SinglePrototypeInSpringContextTestBean.class,
			NativeLifecycleOptions.INSTANCE, IneffectiveBeanInstanceProducer.INSTANCE
	);

	assertNotNull(bean2);
	SinglePrototypeInSpringContextTestBean instance2 = bean2.getBeanInstance();
	assertNotNull(instance2);
	// Due to the lifecycle options, and because the bean has the "prototype" scope, we should not return the same instance
	assertNotSame(instance, instance2);
}
 
@Test
public void testCanRetrieveBeanByNameWithNativeOptions() {
	BeanContainer beanContainer = getBeanContainer();
	assertNotNull(beanContainer);

	ContainedBean<MultiplePrototypesInSpringContextTestBean> bean = beanContainer.getBean(
			"multiple-1", MultiplePrototypesInSpringContextTestBean.class,
			NativeLifecycleOptions.INSTANCE, IneffectiveBeanInstanceProducer.INSTANCE
	);

	assertNotNull(bean);
	MultiplePrototypesInSpringContextTestBean instance = bean.getBeanInstance();
	assertNotNull(instance);
	assertEquals("multiple-1", instance.getName());
	assertSame(applicationContext, instance.getApplicationContext());

	ContainedBean<MultiplePrototypesInSpringContextTestBean> bean2 = beanContainer.getBean(
			"multiple-1", MultiplePrototypesInSpringContextTestBean.class,
			NativeLifecycleOptions.INSTANCE, IneffectiveBeanInstanceProducer.INSTANCE
	);

	assertNotNull(bean2);
	MultiplePrototypesInSpringContextTestBean instance2 = bean2.getBeanInstance();
	assertNotNull(instance2);
	// Due to the lifecycle options, and because the bean has the "prototype" scope, we should not return the same instance
	assertNotSame(instance, instance2);
}
 
@Test
public void testCanRetrieveBeanByTypeWithNativeOptions() {
	BeanContainer beanContainer = getBeanContainer();
	assertNotNull(beanContainer);

	ContainedBean<SinglePrototypeInSpringContextTestBean> bean = beanContainer.getBean(
			SinglePrototypeInSpringContextTestBean.class,
			NativeLifecycleOptions.INSTANCE,
			IneffectiveBeanInstanceProducer.INSTANCE
	);

	assertNotNull(bean);
	SinglePrototypeInSpringContextTestBean instance = bean.getBeanInstance();
	assertNotNull(instance);
	assertEquals("single", instance.getName());
	assertSame(applicationContext, instance.getApplicationContext());

	ContainedBean<SinglePrototypeInSpringContextTestBean> bean2 = beanContainer.getBean(
			SinglePrototypeInSpringContextTestBean.class,
			NativeLifecycleOptions.INSTANCE,
			IneffectiveBeanInstanceProducer.INSTANCE
	);

	assertNotNull(bean2);
	SinglePrototypeInSpringContextTestBean instance2 = bean2.getBeanInstance();
	assertNotNull(instance2);
	// Due to the lifecycle options, and because the bean has the "prototype" scope, we should not return the same instance
	assertNotSame(instance, instance2);
}
 
@Test
public void testCanRetrieveBeanByNameWithNativeOptions() {
	BeanContainer beanContainer = getBeanContainer();
	assertNotNull(beanContainer);

	ContainedBean<MultiplePrototypesInSpringContextTestBean> bean = beanContainer.getBean(
			"multiple-1", MultiplePrototypesInSpringContextTestBean.class,
			NativeLifecycleOptions.INSTANCE,
			IneffectiveBeanInstanceProducer.INSTANCE
	);

	assertNotNull(bean);
	MultiplePrototypesInSpringContextTestBean instance = bean.getBeanInstance();
	assertNotNull(instance);
	assertEquals("multiple-1", instance.getName());
	assertSame(applicationContext, instance.getApplicationContext());

	ContainedBean<MultiplePrototypesInSpringContextTestBean> bean2 = beanContainer.getBean(
			"multiple-1", MultiplePrototypesInSpringContextTestBean.class,
			NativeLifecycleOptions.INSTANCE,
			IneffectiveBeanInstanceProducer.INSTANCE
	);

	assertNotNull(bean2);
	MultiplePrototypesInSpringContextTestBean instance2 = bean2.getBeanInstance();
	assertNotNull(instance2);
	// Due to the lifecycle options, and because the bean has the "prototype" scope, we should not return the same instance
	assertNotSame(instance, instance2);
}
 
源代码21 项目: lams   文件: ManagedBeanRegistryImpl.java
@Override
@SuppressWarnings("unchecked")
public <T> ManagedBean<T> getBean(Class<T> beanClass) {
	final ManagedBean existing = registrations.get( beanClass.getName() );
	if ( existing != null ) {
		return existing;
	}

	final ManagedBean bean;
	if ( beanContainer == null ) {
		bean = new FallbackContainedBean( beanClass, FallbackBeanInstanceProducer.INSTANCE );
	}
	else {
		final ContainedBean<T> containedBean = beanContainer.getBean(
				beanClass,
				this,
				FallbackBeanInstanceProducer.INSTANCE
		);

		if ( containedBean instanceof ManagedBean ) {
			bean = (ManagedBean) containedBean;
		}
		else {
			bean = new ContainedBeanManagedBeanAdapter( beanClass, containedBean );
		}
	}

	registrations.put( beanClass.getName(), bean );

	return bean;
}
 
源代码22 项目: lams   文件: ManagedBeanRegistryImpl.java
@Override
@SuppressWarnings("unchecked")
public <T> ManagedBean<T> getBean(String beanName, Class<T> beanContract) {
	final String key = beanContract.getName() + ':' + beanName;

	final ManagedBean existing = registrations.get( key );
	if ( existing != null ) {
		return existing;
	}

	final ManagedBean bean;
	if ( beanContainer == null ) {
		bean = new FallbackContainedBean( beanName, beanContract, FallbackBeanInstanceProducer.INSTANCE );
	}
	else {
		final ContainedBean<T> containedBean = beanContainer.getBean(
				beanName,
				beanContract,
				this,
				FallbackBeanInstanceProducer.INSTANCE
		);

		if ( containedBean instanceof ManagedBean ) {
			bean = (ManagedBean) containedBean;
		}
		else {
			bean = new ContainedBeanManagedBeanAdapter( beanContract, containedBean );
		}
	}

	registrations.put( key, bean );

	return bean;
}
 
源代码23 项目: lams   文件: CdiBeanContainerExtendedAccessImpl.java
@Override
public <B> ContainedBean<B> getBean(
		Class<B> beanType,
		LifecycleOptions lifecycleOptions,
		BeanInstanceProducer fallbackProducer) {
	// todo (5.3) : should this throw an exception instead?
	return CdiBeanContainerExtendedAccessImpl.this.getBean( beanType, lifecycleOptions, fallbackProducer );
}
 
源代码24 项目: lams   文件: CdiBeanContainerExtendedAccessImpl.java
@Override
public <B> ContainedBean<B> getBean(
		String beanName,
		Class<B> beanType,
		LifecycleOptions lifecycleOptions,
		BeanInstanceProducer fallbackProducer) {
	// todo (5.3) : should this throw an exception instead?
	return CdiBeanContainerExtendedAccessImpl.this.getBean( beanName, beanType, lifecycleOptions, fallbackProducer );
}
 
源代码25 项目: lams   文件: ManagedBeanRegistryImpl.java
private ContainedBeanManagedBeanAdapter(Class<B> beanClass, ContainedBean<B> containedBean) {
	this.beanClass = beanClass;
	this.containedBean = containedBean;
}
 
 类所在包
 类方法
 同包方法