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