-
-
Notifications
You must be signed in to change notification settings - Fork 749
Configuring Atmosphere's Classes Creation and Injection
Jeanfrancois Arcand edited this page Oct 1, 2013
·
21 revisions
Starting with Atmosphere 2.1, it is possible to configure a AtmosphereObjectFactory and configure Atmosphere to use it. All you need to do is to define an init-param:
<init-param>
<param-name>org.atmosphere.cpr.objectFactory</param-name>
<param-value> << an implementation of AtmosphereObjectFactory >> </param-value>
</init-param>
For example, to use Spring, you can define:
public class SpringObjectFactory implements AtmosphereObjectFactory {
@Override
public <T> T newClassInstance(AtmosphereFramework framework, Class<T> tClass) throws InstantiationException, IllegalAccessException {
return WebApplicationContextUtils.getWebApplicationContext(framework.getServletContext()).getBean(tClass);
}
}
For Guice, you can do:
public class GuiceObjectFactory implements AtmosphereObjectFactory {
@Override
public <T> T newClassInstance(AtmosphereFramework framework, Class<T> tClass) throws InstantiationException, IllegalAccessException {
com.google.inject.Injector injector = (com.google.inject.Injector)
framework.getServletContext().getAttribute(com.google.inject.Injector.class.getName());
if (injector == null)
throw new IllegalStateException("No Guice Injector found in current ServletContext !");
return injector.getInstance(tClass);
}
}
- Understanding Atmosphere
- Understanding @ManagedService
- Using javax.inject.Inject and javax.inject.PostConstruct annotation
- Understanding Atmosphere's Annotation
- Understanding AtmosphereResource
- Understanding AtmosphereHandler
- Understanding WebSocketHandler
- Understanding Broadcaster
- Understanding BroadcasterCache
- Understanding Meteor
- Understanding BroadcastFilter
- Understanding Atmosphere's Events Listeners
- Understanding AtmosphereInterceptor
- Configuring Atmosphere for Performance
- Understanding JavaScript functions
- Understanding AtmosphereResourceSession
- Improving Performance by using the PoolableBroadcasterFactory
- Using Atmosphere Jersey API
- Using Meteor API
- Using AtmosphereHandler API
- Using Socket.IO
- Using GWT
- Writing HTML5 Server-Sent Events
- Using STOMP protocol
- Streaming WebSocket messages
- Configuring Atmosphere's Classes Creation and Injection
- Using AtmosphereInterceptor to customize Atmosphere Framework
- Writing WebSocket sub protocol
- Configuring Atmosphere for the Cloud
- Injecting Atmosphere's Components in Jersey
- Sharing connection between Browser's windows and tabs
- Understanding AtmosphereResourceSession
- Manage installed services
- Server Side: javadoc API
- Server Side: atmosphere.xml and web.xml configuration
- Client Side: atmosphere.js API