Skip to content

Commit

Permalink
Add support for BroadcasterFactory as requested by the Skype.com team
Browse files Browse the repository at this point in the history
  • Loading branch information
jfarcand committed Aug 8, 2011
1 parent 70b3b03 commit 480d800
Showing 1 changed file with 16 additions and 2 deletions.
Expand Up @@ -239,6 +239,7 @@ public class AtmosphereServlet extends AbstractAsyncServlet implements CometProc
protected boolean isBroadcasterSpecified = false;
protected boolean isSessionSupportSpecified = false;
private BroadcasterFactory broadcasterFactory;
protected String broadcasterFactoryClassName;
protected static String broadcasterCacheClassName;
private boolean webSocketEnabled = false;
private String broadcasterLifeCyclePolicy = "NEVER";
Expand Down Expand Up @@ -588,17 +589,26 @@ public Enumeration<String> getInitParameterNames() {

protected void configureBroadcaster() throws ClassNotFoundException, InstantiationException, IllegalAccessException {

if (broadcasterFactoryClassName != null) {
logger.info("using BroadcasterFactory class: {}", broadcasterFactoryClassName);

broadcasterFactory = (BroadcasterFactory) Thread.currentThread().getContextClassLoader()
.loadClass(broadcasterFactoryClassName).newInstance();
}

if (broadcasterFactory == null) {
Class<? extends Broadcaster> bc =
(Class<? extends Broadcaster>) Thread.currentThread().getContextClassLoader()
.loadClass(broadcasterClassName);
logger.info("using broadcaster class: {}", bc.getName());

broadcasterFactory = new DefaultBroadcasterFactory(bc, broadcasterLifeCyclePolicy);
config.broadcasterFactory = broadcasterFactory;
BroadcasterFactory.setBroadcasterFactory(broadcasterFactory, config);
}

config.broadcasterFactory = broadcasterFactory;
BroadcasterFactory.setBroadcasterFactory(broadcasterFactory, config);
InjectorProvider.getInjector().inject(broadcasterFactory);

Iterator<Entry<String, AtmosphereHandlerWrapper>> i = atmosphereHandlers.entrySet().iterator();
AtmosphereHandlerWrapper w;
Entry<String, AtmosphereHandlerWrapper> e;
Expand Down Expand Up @@ -703,6 +713,10 @@ protected void doInitParams(ServletConfig sc) {
if (s != null) {
broadcasterLifeCyclePolicy = s;
}
s = sc.getInitParameter(BROADCASTER_FACTORY);
if (s != null) {
broadcasterFactoryClassName = s;
}
}

protected void loadConfiguration(ServletConfig sc) throws ServletException {
Expand Down

0 comments on commit 480d800

Please sign in to comment.