package atmosphere.chat;
import java.util.Date;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import org.apache.wicket.Application;
import org.apache.wicket.atmosphere.EventBus;
import org.apache.wicket.atmosphere.config.AtmosphereLogLevel;
import org.apache.wicket.atmosphere.config.AtmosphereTransport;
import org.apache.wicket.protocol.http.WebApplication;
/**
* Application object for your web application. If you want to run this application without
* deploying, run the Start class.
*
* @see atmosphere.chat.Start#main(String[])
*/
public class WicketApplication extends WebApplication
{
public static final int DEFAULT_HTTP_PORT = 9090;
public static final int DEFAULT_HTTPS_PORT = 9443;
public static WicketApplication get()
{
return (WicketApplication)Application.get();
}
private EventBus eventBus;
public EventBus getEventBus()
{
return eventBus;
}
@Override
public Class<HomePage> getHomePage()
{
return HomePage.class;
}
@Override
public void init()
{
super.init();
eventBus = new EventBus(this);
eventBus.getParameters().setTransport(AtmosphereTransport.STREAMING);
eventBus.getParameters().setLogLevel(AtmosphereLogLevel.DEBUG);
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
final Runnable beeper = new Runnable()
{
@Override
public void run()
{
try
{
eventBus.post(new Date());
}
catch (Exception e)
{
e.printStackTrace();
}
}
};
scheduler.scheduleWithFixedDelay(beeper, 2, 2, TimeUnit.SECONDS);
}
}