Injecting Atmosphere components and factories using the javax.inject.Inject - Atmosphere/atmosphere GitHub Wiki
Starting with Atmosphere 2.3+, the Inject and PostConstruct annotation are natively supported. You can inject AtmosphereConfig, AtmosphereFramework, AtmosphereFramework, BroadcasterFactory, AtmosphereResourceFactory, MetaBroadcaster and AtmosphereResourceSessionFactory
@Inject
private AtmosphereConfig config;
@Inject
private AtmosphereFramework f;
@Inject
private AtmosphereResourceFactory resourceFactory;
@Inject
private BroadcasterFactory bFactory;
@Inject
private MetaBroadcaster m;
@Inject
private AtmosphereResourceSessionFactory sessionFactory;
You can also use CDI(jsr 330), Guice or Spring as well.
Request Scoped Injection (2.4.0+)
Injecting Broadcaster
You can inject Broadcaster
by using the @Named
@Inject
@Named("/chat")
private Broadcaster broadcaster;
Injecting AtmosphereResource, AtmosphereRequest, AtmosphereResponse and AtmosphereResourceEvent:
As simple as:
@Inject
private AtmosphereResource resource;
Injecting your own objects
If you are using 2.3.2+, you can also defines under META-INF/services/org.atmosphere.inject.Injectable
classes that implements the Injectable or InjectIntrospector interface so the AtmosphereObjectFactory can inject those objects into your application. For example, Atmosphere uses this mechanism to allow injection of the classes listed above.
You can also take a look at the chat sample for a super simple example of custom injection using the META-INF/services/org.atmosphere.inject.Injectable
file.