/*******************************************************************************
* Copyright (c) 2011, 2017 EclipseSource and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* EclipseSource - initial API and implementation
******************************************************************************/
package org.eclipse.rap.rwt.cluster.test.entrypoints;
import org.eclipse.rap.rwt.RWT;
import org.eclipse.rap.rwt.application.EntryPoint;
import org.eclipse.rap.rwt.service.ServerPushSession;
import org.eclipse.rap.rwt.service.UISession;
import org.eclipse.rap.rwt.service.UISessionEvent;
import org.eclipse.rap.rwt.service.UISessionListener;
import org.eclipse.swt.widgets.Display;
public class SessionTimeoutEntryPoint implements EntryPoint {
public static int SESSION_SWEEP_INTERVAL = 3000;
private static volatile boolean sessionInvalidated;
public static boolean isSessionInvalidated() {
return sessionInvalidated;
}
@Override
@SuppressWarnings("unused")
public int createUI() {
sessionInvalidated = false;
new ServerPushSession().start();
new Display();
UISession uiSession = RWT.getUISession();
uiSession.addUISessionListener( new SessionInvalidationListener() );
uiSession.getHttpSession().setMaxInactiveInterval( 1 );
return 0;
}
private static class SessionInvalidationListener implements UISessionListener {
@Override
public void beforeDestroy( UISessionEvent event ) {
sessionInvalidated = true;
}
}
}