Issue #3616 - fix merge back of SessionTracker back to jetty10
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
This commit is contained in:
parent
9e4332017f
commit
1ead2ee370
|
@ -1,26 +0,0 @@
|
||||||
//
|
|
||||||
// ========================================================================
|
|
||||||
// Copyright (c) 1995-2019 Mort Bay Consulting Pty. Ltd.
|
|
||||||
// ------------------------------------------------------------------------
|
|
||||||
// All rights reserved. This program and the accompanying materials
|
|
||||||
// are made available under the terms of the Eclipse Public License v1.0
|
|
||||||
// and Apache License v2.0 which accompanies this distribution.
|
|
||||||
//
|
|
||||||
// The Eclipse Public License is available at
|
|
||||||
// http://www.eclipse.org/legal/epl-v10.html
|
|
||||||
//
|
|
||||||
// The Apache License v2.0 is available at
|
|
||||||
// http://www.opensource.org/licenses/apache2.0.php
|
|
||||||
//
|
|
||||||
// You may elect to redistribute this code under either of these licenses.
|
|
||||||
// ========================================================================
|
|
||||||
//
|
|
||||||
|
|
||||||
package org.eclipse.jetty.websocket.jsr356;
|
|
||||||
|
|
||||||
public interface JsrSessionListener
|
|
||||||
{
|
|
||||||
void onSessionOpened(JsrSession session);
|
|
||||||
|
|
||||||
void onSessionClosed(JsrSession session);
|
|
||||||
}
|
|
|
@ -1,58 +0,0 @@
|
||||||
//
|
|
||||||
// ========================================================================
|
|
||||||
// Copyright (c) 1995-2019 Mort Bay Consulting Pty. Ltd.
|
|
||||||
// ------------------------------------------------------------------------
|
|
||||||
// All rights reserved. This program and the accompanying materials
|
|
||||||
// are made available under the terms of the Eclipse Public License v1.0
|
|
||||||
// and Apache License v2.0 which accompanies this distribution.
|
|
||||||
//
|
|
||||||
// The Eclipse Public License is available at
|
|
||||||
// http://www.eclipse.org/legal/epl-v10.html
|
|
||||||
//
|
|
||||||
// The Apache License v2.0 is available at
|
|
||||||
// http://www.opensource.org/licenses/apache2.0.php
|
|
||||||
//
|
|
||||||
// You may elect to redistribute this code under either of these licenses.
|
|
||||||
// ========================================================================
|
|
||||||
//
|
|
||||||
|
|
||||||
package org.eclipse.jetty.websocket.jsr356;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.CopyOnWriteArraySet;
|
|
||||||
|
|
||||||
import org.eclipse.jetty.util.component.AbstractLifeCycle;
|
|
||||||
import org.eclipse.jetty.util.component.LifeCycle;
|
|
||||||
|
|
||||||
public class JsrSessionTracker extends AbstractLifeCycle implements JsrSessionListener
|
|
||||||
{
|
|
||||||
private CopyOnWriteArraySet<JsrSession> sessions = new CopyOnWriteArraySet<>();
|
|
||||||
|
|
||||||
public Set<javax.websocket.Session> getSessions()
|
|
||||||
{
|
|
||||||
return Collections.unmodifiableSet(sessions);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSessionOpened(JsrSession session)
|
|
||||||
{
|
|
||||||
sessions.add(session);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSessionClosed(JsrSession session)
|
|
||||||
{
|
|
||||||
sessions.remove(session);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doStop() throws Exception
|
|
||||||
{
|
|
||||||
for (JsrSession session : sessions)
|
|
||||||
{
|
|
||||||
LifeCycle.stop(session);
|
|
||||||
}
|
|
||||||
super.doStop();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,58 +0,0 @@
|
||||||
//
|
|
||||||
// ========================================================================
|
|
||||||
// Copyright (c) 1995-2019 Mort Bay Consulting Pty. Ltd.
|
|
||||||
// ------------------------------------------------------------------------
|
|
||||||
// All rights reserved. This program and the accompanying materials
|
|
||||||
// are made available under the terms of the Eclipse Public License v1.0
|
|
||||||
// and Apache License v2.0 which accompanies this distribution.
|
|
||||||
//
|
|
||||||
// The Eclipse Public License is available at
|
|
||||||
// http://www.eclipse.org/legal/epl-v10.html
|
|
||||||
//
|
|
||||||
// The Apache License v2.0 is available at
|
|
||||||
// http://www.opensource.org/licenses/apache2.0.php
|
|
||||||
//
|
|
||||||
// You may elect to redistribute this code under either of these licenses.
|
|
||||||
// ========================================================================
|
|
||||||
//
|
|
||||||
|
|
||||||
package org.eclipse.jetty.websocket.common;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.CopyOnWriteArraySet;
|
|
||||||
|
|
||||||
import org.eclipse.jetty.util.component.AbstractLifeCycle;
|
|
||||||
import org.eclipse.jetty.util.component.LifeCycle;
|
|
||||||
|
|
||||||
public class SessionTracker extends AbstractLifeCycle implements WebSocketSessionListener
|
|
||||||
{
|
|
||||||
private CopyOnWriteArraySet<WebSocketSession> sessions = new CopyOnWriteArraySet<>();
|
|
||||||
|
|
||||||
public Set<WebSocketSession> getSessions()
|
|
||||||
{
|
|
||||||
return Collections.unmodifiableSet(sessions);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSessionOpened(WebSocketSession session)
|
|
||||||
{
|
|
||||||
sessions.add(session);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSessionClosed(WebSocketSession session)
|
|
||||||
{
|
|
||||||
sessions.remove(session);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doStop() throws Exception
|
|
||||||
{
|
|
||||||
for (WebSocketSession session : sessions)
|
|
||||||
{
|
|
||||||
LifeCycle.stop(session);
|
|
||||||
}
|
|
||||||
super.doStop();
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue