Package org.jboss.weld.environment.se
Class WeldContainer
- java.lang.Object
-
- jakarta.enterprise.inject.spi.CDI<T>
-
- org.jboss.weld.AbstractCDI<Object>
-
- org.jboss.weld.environment.se.WeldContainer
-
- All Implemented Interfaces:
jakarta.enterprise.inject.Instance<Object>
,jakarta.enterprise.inject.se.SeContainer
,jakarta.inject.Provider<Object>
,AutoCloseable
,Iterable<Object>
,ContainerInstance
,org.jboss.weld.inject.WeldInstance<Object>
@Vetoed public class WeldContainer extends org.jboss.weld.AbstractCDI<Object> implements AutoCloseable, ContainerInstance, jakarta.enterprise.inject.se.SeContainer
Represents a Weld SE container.An new instance can be initialized using the Weld builder:
WeldContainer container = new Weld().initialize();
It's also possible to obtain the instance of a running container by id:
WeldContainer container = WeldContainer.instance("myCustomId");
shutdown()
must be always called to shutdown the container properly. AutoCloseable is implemented, so the container is automatically shut down when leaving the try-with-resources block:try (WeldContainer container = new Weld().initialize()) { container.select(Foo.class).get(); }
The container is also registered as a
Singleton
bean.Provides convenient access to beans, BeanManager and events, which is particularly helpful when bootstrapping an application in Java SE:
Foo foo = container.select(Foo.class).get(); container.getBeanManager().getEvent().select(Bar.class).fire(new Bar) container.event().select(Bar.class).fire(new Bar());
- Author:
- Peter Royle, Martin Kouba
- See Also:
Weld
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface jakarta.enterprise.inject.Instance
jakarta.enterprise.inject.Instance.Handle<T extends Object>
-
Nested classes/interfaces inherited from interface org.jboss.weld.inject.WeldInstance
org.jboss.weld.inject.WeldInstance.Handler<T extends Object>
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected void
checkState()
void
close()
static WeldContainer
current()
A convenient method for {@link CDI.current()}.org.jboss.weld.events.WeldEvent<Object>
event()
Provides access to all events within the application.jakarta.enterprise.inject.spi.BeanManager
getBeanManager()
Provides direct access to the BeanManager.String
getId()
Weld containers must have a unique identifier assigned when there are multiple Weld instances running at once.protected org.jboss.weld.inject.WeldInstance<Object>
getInstance()
static List<String>
getRunningContainerIds()
jakarta.enterprise.inject.Instance<Object>
instance()
Deprecated.Applications are encouraged to use methods for programmatic lookup directly.static WeldContainer
instance(String id)
boolean
isRunning()
void
shutdown()
Shutdown the container.-
Methods inherited from class org.jboss.weld.AbstractCDI
destroy, get, getCallingClassName, getHandle, getHandlePriorityComparator, getHandler, getPriorityComparator, handlers, handles, isAmbiguous, isResolvable, isUnsatisfied, iterator, select, select, select, select
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface jakarta.enterprise.inject.Instance
destroy, getHandle, handles, handlesStream, isAmbiguous, isResolvable, isUnsatisfied, stream
-
Methods inherited from interface java.lang.Iterable
forEach, iterator, spliterator
-
-
-
-
Method Detail
-
instance
public static WeldContainer instance(String id)
- Parameters:
id
-- Returns:
- the running container with the specified identifier or
null
if no such container exists
-
current
public static WeldContainer current()
A convenient method for {@link CDI.current()}. Returns currentWeldContainer
instance if there is exactly one instance running. ThrowsIllegalStateException
in any other case.- Returns:
- Current
WeldContainer
instance if and only if exactly one instance exists
-
getRunningContainerIds
public static List<String> getRunningContainerIds()
- Returns:
- an immutable list of ids of running containers
-
instance
public jakarta.enterprise.inject.Instance<Object> instance()
Deprecated.Applications are encouraged to use methods for programmatic lookup directly.Provides access to all beans within the application. Retained for backward compatibility - WeldContainer implements .- Returns:
- the instance
-
event
public org.jboss.weld.events.WeldEvent<Object> event()
Provides access to all events within the application. For example:weldContainer.event().select(Bar.class).fire(new Bar());
- Returns:
- the event
-
getId
public String getId()
Weld containers must have a unique identifier assigned when there are multiple Weld instances running at once.- Specified by:
getId
in interfaceContainerInstance
- Returns:
- the container id
-
getBeanManager
public jakarta.enterprise.inject.spi.BeanManager getBeanManager()
Provides direct access to the BeanManager.- Specified by:
getBeanManager
in interfaceContainerInstance
- Specified by:
getBeanManager
in interfacejakarta.enterprise.inject.se.SeContainer
- Specified by:
getBeanManager
in classjakarta.enterprise.inject.spi.CDI<Object>
-
shutdown
public void shutdown()
Shutdown the container.- Specified by:
shutdown
in interfaceContainerInstance
- See Also:
Weld.initialize()
-
isRunning
public boolean isRunning()
- Specified by:
isRunning
in interfacejakarta.enterprise.inject.se.SeContainer
- Returns:
true
if the container was initialized completely and is not shut down yet,false
otherwise
-
close
public void close()
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfacejakarta.enterprise.inject.se.SeContainer
-
getInstance
protected org.jboss.weld.inject.WeldInstance<Object> getInstance()
- Overrides:
getInstance
in classorg.jboss.weld.AbstractCDI<Object>
-
checkState
protected void checkState()
- Overrides:
checkState
in classorg.jboss.weld.AbstractCDI<Object>
-
-