Initial pass at fixing build for websocket PFD

This commit is contained in:
Joakim Erdfelt 2013-03-18 16:50:07 -07:00
parent 8ec9ac4d64
commit 96df602e9e
67 changed files with 523 additions and 397 deletions

View File

@ -4,7 +4,7 @@
<parent> <parent>
<groupId>org.eclipse.jetty.websocket</groupId> <groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-parent</artifactId> <artifactId>websocket-parent</artifactId>
<version>9.0.0-SNAPSHOT</version> <version>9.0.1-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
@ -24,7 +24,7 @@
<dependency> <dependency>
<groupId>org.eclipse.jetty.drafts</groupId> <groupId>org.eclipse.jetty.drafts</groupId>
<artifactId>javax.websocket-client-api</artifactId> <artifactId>javax.websocket-client-api</artifactId>
<version>0.0.012.draft-SNAPSHOT</version> <version>1.0.0.PFD-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.eclipse.jetty.toolchain</groupId> <groupId>org.eclipse.jetty.toolchain</groupId>

View File

@ -18,19 +18,21 @@
package org.eclipse.jetty.websocket.jsr356; package org.eclipse.jetty.websocket.jsr356;
import java.io.IOException;
import java.net.URI; import java.net.URI;
import java.util.Set; import java.util.Set;
import javax.websocket.ClientEndpointConfiguration; import javax.websocket.ClientEndpointConfig;
import javax.websocket.DeploymentException; import javax.websocket.DeploymentException;
import javax.websocket.Endpoint; import javax.websocket.Endpoint;
import javax.websocket.Extension;
import javax.websocket.Session; import javax.websocket.Session;
import javax.websocket.WebSocketContainer; import javax.websocket.WebSocketContainer;
public class JettyWebSocketContainer implements WebSocketContainer public class JettyWebSocketContainer implements WebSocketContainer
{ {
@Override @Override
public Session connectToServer(Class<? extends Endpoint> endpointClass, ClientEndpointConfiguration cec, URI path) throws DeploymentException public Session connectToServer(Class<? extends Endpoint> endpointClass, ClientEndpointConfig cec, URI path) throws DeploymentException, IOException
{ {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
@ -43,6 +45,20 @@ public class JettyWebSocketContainer implements WebSocketContainer
return null; return null;
} }
@Override
public Session connectToServer(Endpoint endpointInstance, ClientEndpointConfig cec, URI path) throws DeploymentException, IOException
{
// TODO Auto-generated method stub
return null;
}
@Override
public Session connectToServer(Object annotatedEndpointInstance, URI path) throws DeploymentException, IOException
{
// TODO Auto-generated method stub
return null;
}
@Override @Override
public long getDefaultAsyncSendTimeout() public long getDefaultAsyncSendTimeout()
{ {
@ -57,6 +73,13 @@ public class JettyWebSocketContainer implements WebSocketContainer
return 0; return 0;
} }
@Override
public long getDefaultMaxSessionIdleTimeout()
{
// TODO Auto-generated method stub
return 0;
}
@Override @Override
public int getDefaultMaxTextMessageBufferSize() public int getDefaultMaxTextMessageBufferSize()
{ {
@ -65,19 +88,12 @@ public class JettyWebSocketContainer implements WebSocketContainer
} }
@Override @Override
public Set<String> getInstalledExtensions() public Set<Extension> getInstalledExtensions()
{ {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
} }
@Override
public long getMaxSessionIdleTimeout()
{
// TODO Auto-generated method stub
return 0;
}
@Override @Override
public void setAsyncSendTimeout(long timeoutmillis) public void setAsyncSendTimeout(long timeoutmillis)
{ {
@ -92,24 +108,17 @@ public class JettyWebSocketContainer implements WebSocketContainer
} }
@Override
public void setDefaultMaxSessionIdleTimeout(long timeout)
{
// TODO Auto-generated method stub
}
@Override @Override
public void setDefaultMaxTextMessageBufferSize(int max) public void setDefaultMaxTextMessageBufferSize(int max)
{ {
// TODO Auto-generated method stub // TODO Auto-generated method stub
} }
@Override
public void setMaxSessionIdleTimeout(long timeout)
{
// TODO Auto-generated method stub
}
@Override
public void setMaxTextMessageBufferSize(long max)
{
// TODO Auto-generated method stub
}
} }

View File

@ -0,0 +1,122 @@
//
// ========================================================================
// Copyright (c) 1995-2013 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.io.IOException;
import java.nio.ByteBuffer;
import java.util.concurrent.Future;
import javax.websocket.RemoteEndpoint;
import javax.websocket.SendHandler;
public class JsrAsyncRemote implements RemoteEndpoint.Async
{
private final org.eclipse.jetty.websocket.api.RemoteEndpoint jettyRemote;
protected JsrAsyncRemote(org.eclipse.jetty.websocket.api.RemoteEndpoint endpoint)
{
this.jettyRemote = endpoint;
}
@Override
public void flushBatch() throws IOException
{
// TODO Auto-generated method stub
}
@Override
public boolean getBatchingAllowed()
{
// TODO Auto-generated method stub
return false;
}
@Override
public long getSendTimeout()
{
// TODO Auto-generated method stub
return 0;
}
@Override
public Future<Void> sendBinary(ByteBuffer data)
{
return jettyRemote.sendBytesByFuture(data);
}
@Override
public void sendBinary(ByteBuffer data, SendHandler handler)
{
// TODO Auto-generated method stub
}
@Override
public Future<Void> sendObject(Object data)
{
// TODO Auto-generated method stub
return null;
}
@Override
public void sendObject(Object data, SendHandler handler)
{
// TODO Auto-generated method stub
}
@Override
public void sendPing(ByteBuffer applicationData) throws IOException, IllegalArgumentException
{
jettyRemote.sendPing(applicationData);
}
@Override
public void sendPong(ByteBuffer applicationData) throws IOException, IllegalArgumentException
{
jettyRemote.sendPong(applicationData);
}
@Override
public Future<Void> sendText(String text)
{
return jettyRemote.sendStringByFuture(text);
}
@Override
public void sendText(String text, SendHandler handler)
{
// TODO Auto-generated method stub
}
@Override
public void setBatchingAllowed(boolean allowed) throws IOException
{
// TODO Auto-generated method stub
}
@Override
public void setSendTimeout(long timeoutmillis)
{
// TODO Auto-generated method stub
}
}

View File

@ -22,18 +22,15 @@ import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.Writer; import java.io.Writer;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.util.concurrent.Future;
import javax.websocket.EncodeException; import javax.websocket.EncodeException;
import javax.websocket.RemoteEndpoint; import javax.websocket.RemoteEndpoint;
import javax.websocket.SendHandler;
import javax.websocket.SendResult;
public class JsrRemoteEndpoint implements RemoteEndpoint public class JsrBasicRemote implements RemoteEndpoint.Basic
{ {
private final org.eclipse.jetty.websocket.api.RemoteEndpoint jettyRemote; private final org.eclipse.jetty.websocket.api.RemoteEndpoint jettyRemote;
protected JsrRemoteEndpoint(org.eclipse.jetty.websocket.api.RemoteEndpoint endpoint) protected JsrBasicRemote(org.eclipse.jetty.websocket.api.RemoteEndpoint endpoint)
{ {
this.jettyRemote = endpoint; this.jettyRemote = endpoint;
} }
@ -42,14 +39,6 @@ public class JsrRemoteEndpoint implements RemoteEndpoint
public void flushBatch() throws IOException public void flushBatch() throws IOException
{ {
// TODO Auto-generated method stub // TODO Auto-generated method stub
}
@Override
public long getAsyncSendTimeout()
{
// TODO Auto-generated method stub
return 0;
} }
@Override @Override
@ -74,22 +63,16 @@ public class JsrRemoteEndpoint implements RemoteEndpoint
} }
@Override @Override
public void sendBytes(ByteBuffer data) throws IOException public void sendBinary(ByteBuffer data) throws IOException
{
jettyRemote.sendBytes(data);
}
@Override
public void sendBytesByCompletion(ByteBuffer data, SendHandler completion)
{ {
// TODO Auto-generated method stub // TODO Auto-generated method stub
} }
@Override @Override
public Future<SendResult> sendBytesByFuture(ByteBuffer data) public void sendBinary(ByteBuffer partialByte, boolean isLast) throws IOException
{ {
Future<Void> jettyFuture = jettyRemote.sendBytesByFuture(data); jettyRemote.sendPartialBytes(partialByte,isLast);
return new JsrSendResultFuture(jettyFuture);
} }
@Override @Override
@ -99,32 +82,6 @@ public class JsrRemoteEndpoint implements RemoteEndpoint
} }
@Override
public void sendObjectByCompletion(Object o, SendHandler handler)
{
// TODO Auto-generated method stub
}
@Override
public Future<SendResult> sendObjectByFuture(Object o)
{
// TODO Auto-generated method stub
return null;
}
@Override
public void sendPartialBytes(ByteBuffer partialByte, boolean isLast) throws IOException
{
jettyRemote.sendPartialBytes(partialByte,isLast);
}
@Override
public void sendPartialString(String partialMessage, boolean isLast) throws IOException
{
jettyRemote.sendPartialString(partialMessage,isLast);
}
@Override @Override
public void sendPing(ByteBuffer applicationData) throws IOException, IllegalArgumentException public void sendPing(ByteBuffer applicationData) throws IOException, IllegalArgumentException
{ {
@ -138,30 +95,16 @@ public class JsrRemoteEndpoint implements RemoteEndpoint
} }
@Override @Override
public void sendString(String text) throws IOException public void sendText(String text) throws IOException
{
jettyRemote.sendString(text);
}
@Override
public void sendStringByCompletion(String text, SendHandler completion)
{ {
// TODO Auto-generated method stub // TODO Auto-generated method stub
} }
@Override @Override
public Future<SendResult> sendStringByFuture(String text) public void sendText(String partialMessage, boolean isLast) throws IOException
{ {
Future<Void> jettyFuture = jettyRemote.sendStringByFuture(text); jettyRemote.sendPartialString(partialMessage,isLast);
return new JsrSendResultFuture(jettyFuture);
}
@Override
public void setAsyncSendTimeout(long timeoutmillis)
{
// TODO Auto-generated method stub
} }
@Override @Override

View File

@ -30,14 +30,9 @@ public class JsrContainerProvider extends ContainerProvider
websocketContainer = new JettyWebSocketContainer(); websocketContainer = new JettyWebSocketContainer();
} }
@SuppressWarnings("unchecked")
@Override @Override
protected <T> T getContainer(Class<T> containerClass) protected WebSocketContainer getContainer()
{ {
if (WebSocketContainer.class.isAssignableFrom(containerClass)) return websocketContainer;
{
return (T)websocketContainer;
}
return null;
} }
} }

View File

@ -1,71 +0,0 @@
//
// ========================================================================
// Copyright (c) 1995-2013 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.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import javax.websocket.SendResult;
public class JsrSendResultFuture implements Future<SendResult>
{
private final Future<Void> jettyFuture;
public JsrSendResultFuture(Future<Void> jettyFuture)
{
this.jettyFuture = jettyFuture;
}
@Override
public boolean cancel(boolean mayInterruptIfRunning)
{
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isCancelled()
{
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isDone()
{
// TODO Auto-generated method stub
return false;
}
@Override
public SendResult get() throws InterruptedException, ExecutionException
{
// TODO Auto-generated method stub
return null;
}
@Override
public SendResult get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
{
// TODO Auto-generated method stub
return null;
}
}

View File

@ -22,7 +22,6 @@ import java.io.IOException;
import java.net.URI; import java.net.URI;
import java.security.Principal; import java.security.Principal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -30,7 +29,8 @@ import java.util.Set;
import javax.websocket.CloseReason; import javax.websocket.CloseReason;
import javax.websocket.Extension; import javax.websocket.Extension;
import javax.websocket.MessageHandler; import javax.websocket.MessageHandler;
import javax.websocket.RemoteEndpoint; import javax.websocket.RemoteEndpoint.Async;
import javax.websocket.RemoteEndpoint.Basic;
import javax.websocket.Session; import javax.websocket.Session;
import javax.websocket.WebSocketContainer; import javax.websocket.WebSocketContainer;
@ -45,7 +45,8 @@ public class JsrSession implements Session
private final String id; private final String id;
private List<Extension> negotiatedExtensions; private List<Extension> negotiatedExtensions;
private Map<String, List<String>> jsrParameterMap; private Map<String, List<String>> jsrParameterMap;
private JsrRemoteEndpoint remote; private JsrAsyncRemote asyncRemote;
private JsrBasicRemote basicRemote;
protected JsrSession(JettyWebSocketContainer container, WebSocketSession session, String id) protected JsrSession(JettyWebSocketContainer container, WebSocketSession session, String id)
{ {
@ -60,12 +61,38 @@ public class JsrSession implements Session
// TODO Auto-generated method stub // TODO Auto-generated method stub
} }
@Override
public void close() throws IOException
{
jettySession.close();
}
@Override @Override
public void close(CloseReason closeStatus) throws IOException public void close(CloseReason closeStatus) throws IOException
{ {
jettySession.close(closeStatus.getCloseCode().getCode(),closeStatus.getReasonPhrase()); jettySession.close(closeStatus.getCloseCode().getCode(),closeStatus.getReasonPhrase());
} }
@Override
public Async getAsyncRemote()
{
if (asyncRemote == null)
{
asyncRemote = new JsrAsyncRemote(jettySession.getRemote());
}
return asyncRemote;
}
@Override
public Basic getBasicRemote()
{
if (basicRemote == null)
{
basicRemote = new JsrBasicRemote(jettySession.getRemote());
}
return basicRemote;
}
@Override @Override
public WebSocketContainer getContainer() public WebSocketContainer getContainer()
{ {
@ -84,6 +111,13 @@ public class JsrSession implements Session
return jettySession.getPolicy().getMaxBinaryMessageSize(); return jettySession.getPolicy().getMaxBinaryMessageSize();
} }
@Override
public long getMaxIdleTimeout()
{
// TODO Auto-generated method stub
return 0;
}
@Override @Override
public int getMaxTextMessageBufferSize() public int getMaxTextMessageBufferSize()
{ {
@ -131,6 +165,12 @@ public class JsrSession implements Session
return null; return null;
} }
@Override
public String getProtocolVersion()
{
return jettySession.getProtocolVersion();
}
@Override @Override
public String getQueryString() public String getQueryString()
{ {
@ -149,7 +189,6 @@ public class JsrSession implements Session
return jettySession.getUpgradeRequest().getRequestURI(); return jettySession.getUpgradeRequest().getRequestURI();
} }
@Override
public long getTimeout() public long getTimeout()
{ {
return jettySession.getIdleTimeout(); return jettySession.getIdleTimeout();
@ -169,6 +208,18 @@ public class JsrSession implements Session
return null; return null;
} }
@Override
public boolean isOpen()
{
return jettySession.isOpen();
}
@Override
public boolean isSecure()
{
return jettySession.isSecure();
}
@Override @Override
public void removeMessageHandler(MessageHandler handler) public void removeMessageHandler(MessageHandler handler)
{ {
@ -184,49 +235,21 @@ public class JsrSession implements Session
} }
@Override @Override
public void setMaxTextMessageBufferSize(int length) public void setMaxIdleTimeout(long milliseconds)
{ {
// TODO Auto-generated method stub // TODO Auto-generated method stub
} }
@Override @Override
public void setMaxTextMessageBufferSize(int length)
{
// TODO Auto-generated method stub
}
public void setTimeout(long milliseconds) public void setTimeout(long milliseconds)
{ {
jettySession.setIdleTimeout(milliseconds); jettySession.setIdleTimeout(milliseconds);
} }
@Override
public void close() throws IOException
{
jettySession.close();
}
@Override
public String getProtocolVersion()
{
return jettySession.getProtocolVersion();
}
@Override
public RemoteEndpoint getRemote()
{
if (remote == null)
{
remote = new JsrRemoteEndpoint(jettySession.getRemote());
}
return remote;
}
@Override
public boolean isOpen()
{
return jettySession.isOpen();
}
@Override
public boolean isSecure()
{
return jettySession.isSecure();
}
} }

View File

@ -0,0 +1,35 @@
//
// ========================================================================
// Copyright (c) 1995-2013 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.decoders;
import javax.websocket.Decoder;
import javax.websocket.EndpointConfig;
public class AbstractDecoder implements Decoder
{
@Override
public void destroy()
{
}
@Override
public void init(EndpointConfig config)
{
}
}

View File

@ -26,7 +26,7 @@ import javax.websocket.Decoder;
* <p> * <p>
* Note: delegates to {@link Boolean#parseBoolean(String)} and will only support "true" and "false" as boolean values. * Note: delegates to {@link Boolean#parseBoolean(String)} and will only support "true" and "false" as boolean values.
*/ */
public class BooleanDecoder implements Decoder.Text<Boolean> public class BooleanDecoder extends AbstractDecoder implements Decoder.Text<Boolean>
{ {
@Override @Override
public Boolean decode(String s) throws DecodeException public Boolean decode(String s) throws DecodeException

View File

@ -23,7 +23,7 @@ import java.nio.ByteBuffer;
import javax.websocket.DecodeException; import javax.websocket.DecodeException;
import javax.websocket.Decoder; import javax.websocket.Decoder;
public class ByteBufferDecoder implements Decoder.Binary<ByteBuffer> public class ByteBufferDecoder extends AbstractDecoder implements Decoder.Binary<ByteBuffer>
{ {
@Override @Override
public ByteBuffer decode(ByteBuffer bytes) throws DecodeException public ByteBuffer decode(ByteBuffer bytes) throws DecodeException

View File

@ -24,7 +24,7 @@ import javax.websocket.Decoder;
/** /**
* Default implementation of the {@link Text} Message to {@link Byte} decoder * Default implementation of the {@link Text} Message to {@link Byte} decoder
*/ */
public class ByteDecoder implements Decoder.Text<Byte> public class ByteDecoder extends AbstractDecoder implements Decoder.Text<Byte>
{ {
@Override @Override
public Byte decode(String s) throws DecodeException public Byte decode(String s) throws DecodeException

View File

@ -24,7 +24,7 @@ import javax.websocket.Decoder;
/** /**
* Default implementation of the {@link Text} Message to {@link Character} decoder * Default implementation of the {@link Text} Message to {@link Character} decoder
*/ */
public class CharacterDecoder implements Decoder.Text<Character> public class CharacterDecoder extends AbstractDecoder implements Decoder.Text<Character>
{ {
@Override @Override
public Character decode(String s) throws DecodeException public Character decode(String s) throws DecodeException

View File

@ -24,7 +24,7 @@ import javax.websocket.Decoder;
/** /**
* Default implementation of the {@link Text} Message to {@link Double} to decoder * Default implementation of the {@link Text} Message to {@link Double} to decoder
*/ */
public class DoubleDecoder implements Decoder.Text<Double> public class DoubleDecoder extends AbstractDecoder implements Decoder.Text<Double>
{ {
@Override @Override
public Double decode(String s) throws DecodeException public Double decode(String s) throws DecodeException

View File

@ -24,7 +24,7 @@ import javax.websocket.Decoder;
/** /**
* Default implementation of the Text Message to {@link Float} decoder * Default implementation of the Text Message to {@link Float} decoder
*/ */
public class FloatDecoder implements Decoder.Text<Float> public class FloatDecoder extends AbstractDecoder implements Decoder.Text<Float>
{ {
@Override @Override
public Float decode(String s) throws DecodeException public Float decode(String s) throws DecodeException

View File

@ -24,7 +24,7 @@ import javax.websocket.Decoder;
/** /**
* Default implementation of the {@link Text} Message to {@link Integer} decoder * Default implementation of the {@link Text} Message to {@link Integer} decoder
*/ */
public class IntegerDecoder implements Decoder.Text<Integer> public class IntegerDecoder extends AbstractDecoder implements Decoder.Text<Integer>
{ {
@Override @Override

View File

@ -24,7 +24,7 @@ import javax.websocket.Decoder;
/** /**
* Default implementation of the Text Message to {@link Long} decoder * Default implementation of the Text Message to {@link Long} decoder
*/ */
public class LongDecoder implements Decoder.Text<Long> public class LongDecoder extends AbstractDecoder implements Decoder.Text<Long>
{ {
@Override @Override

View File

@ -24,7 +24,7 @@ import javax.websocket.Decoder;
/** /**
* Default implementation of the {@link Text} Message to {@link Short} decoder * Default implementation of the {@link Text} Message to {@link Short} decoder
*/ */
public class ShortDecoder implements Decoder.Text<Short> public class ShortDecoder extends AbstractDecoder implements Decoder.Text<Short>
{ {
@Override @Override
public Short decode(String s) throws DecodeException public Short decode(String s) throws DecodeException

View File

@ -24,7 +24,7 @@ import javax.websocket.Decoder;
/** /**
* Default implementation of the {@link Text} Message to {@link String} decoder * Default implementation of the {@link Text} Message to {@link String} decoder
*/ */
public class StringDecoder implements Decoder.Text<String> public class StringDecoder extends AbstractDecoder implements Decoder.Text<String>
{ {
@Override @Override
public String decode(String s) throws DecodeException public String decode(String s) throws DecodeException

View File

@ -0,0 +1,35 @@
//
// ========================================================================
// Copyright (c) 1995-2013 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.encoders;
import javax.websocket.Encoder;
import javax.websocket.EndpointConfig;
public abstract class AbstractEncoder implements Encoder
{
@Override
public void destroy()
{
}
@Override
public void init(EndpointConfig config)
{
}
}

View File

@ -24,7 +24,7 @@ import javax.websocket.Encoder;
/** /**
* Default encoder for {@link Boolean} to {@link Text} Message encoder * Default encoder for {@link Boolean} to {@link Text} Message encoder
*/ */
public class BooleanEncoder implements Encoder.Text<Boolean> public class BooleanEncoder extends AbstractEncoder implements Encoder.Text<Boolean>
{ {
@Override @Override
public String encode(Boolean object) throws EncodeException public String encode(Boolean object) throws EncodeException

View File

@ -24,7 +24,7 @@ import javax.websocket.Encoder;
/** /**
* Default encoder for {@link Byte} to {@link Text} Message encoder * Default encoder for {@link Byte} to {@link Text} Message encoder
*/ */
public class ByteEncoder implements Encoder.Text<Byte> public class ByteEncoder extends AbstractEncoder implements Encoder.Text<Byte>
{ {
@Override @Override
public String encode(Byte object) throws EncodeException public String encode(Byte object) throws EncodeException

View File

@ -24,7 +24,7 @@ import javax.websocket.Encoder;
/** /**
* Default encoder for {@link Character} to {@link Text} Message encoder * Default encoder for {@link Character} to {@link Text} Message encoder
*/ */
public class CharacterEncoder implements Encoder.Text<Character> public class CharacterEncoder extends AbstractEncoder implements Encoder.Text<Character>
{ {
@Override @Override
public String encode(Character object) throws EncodeException public String encode(Character object) throws EncodeException

View File

@ -23,7 +23,7 @@ import java.nio.ByteBuffer;
import javax.websocket.EncodeException; import javax.websocket.EncodeException;
import javax.websocket.Encoder; import javax.websocket.Encoder;
public class DefaultBinaryEncoder implements Encoder.Binary<ByteBuffer> public class DefaultBinaryEncoder extends AbstractEncoder implements Encoder.Binary<ByteBuffer>
{ {
@Override @Override
public ByteBuffer encode(ByteBuffer message) throws EncodeException public ByteBuffer encode(ByteBuffer message) throws EncodeException

View File

@ -27,7 +27,7 @@ import javax.websocket.Encoder;
import org.eclipse.jetty.util.BufferUtil; import org.eclipse.jetty.util.BufferUtil;
public class DefaultBinaryStreamEncoder implements Encoder.BinaryStream<ByteBuffer> public class DefaultBinaryStreamEncoder extends AbstractEncoder implements Encoder.BinaryStream<ByteBuffer>
{ {
@Override @Override
public void encode(ByteBuffer message, OutputStream out) throws EncodeException, IOException public void encode(ByteBuffer message, OutputStream out) throws EncodeException, IOException

View File

@ -21,7 +21,7 @@ package org.eclipse.jetty.websocket.jsr356.encoders;
import javax.websocket.EncodeException; import javax.websocket.EncodeException;
import javax.websocket.Encoder; import javax.websocket.Encoder;
public class DefaultTextEncoder implements Encoder.Text<String> public class DefaultTextEncoder extends AbstractEncoder implements Encoder.Text<String>
{ {
@Override @Override
public String encode(String message) throws EncodeException public String encode(String message) throws EncodeException

View File

@ -24,7 +24,7 @@ import java.io.Writer;
import javax.websocket.EncodeException; import javax.websocket.EncodeException;
import javax.websocket.Encoder; import javax.websocket.Encoder;
public class DefaultTextStreamEncoder implements Encoder.TextStream<String> public class DefaultTextStreamEncoder extends AbstractEncoder implements Encoder.TextStream<String>
{ {
@Override @Override
public void encode(String message, Writer writer) throws EncodeException, IOException public void encode(String message, Writer writer) throws EncodeException, IOException

View File

@ -24,7 +24,7 @@ import javax.websocket.Encoder;
/** /**
* Default encoder for {@link Double} to {@link Text} Message encoder * Default encoder for {@link Double} to {@link Text} Message encoder
*/ */
public class DoubleEncoder implements Encoder.Text<Double> public class DoubleEncoder extends AbstractEncoder implements Encoder.Text<Double>
{ {
@Override @Override
public String encode(Double object) throws EncodeException public String encode(Double object) throws EncodeException

View File

@ -24,7 +24,7 @@ import javax.websocket.Encoder;
/** /**
* Default encoder for {@link Float} to {@link Text} Message encoder * Default encoder for {@link Float} to {@link Text} Message encoder
*/ */
public class FloatEncoder implements Encoder.Text<Float> public class FloatEncoder extends AbstractEncoder implements Encoder.Text<Float>
{ {
@Override @Override
public String encode(Float object) throws EncodeException public String encode(Float object) throws EncodeException

View File

@ -24,7 +24,7 @@ import javax.websocket.Encoder;
/** /**
* Default encoder for {@link Integer} to {@link Text} Message encoder * Default encoder for {@link Integer} to {@link Text} Message encoder
*/ */
public class IntegerEncoder implements Encoder.Text<Integer> public class IntegerEncoder extends AbstractEncoder implements Encoder.Text<Integer>
{ {
@Override @Override
public String encode(Integer object) throws EncodeException public String encode(Integer object) throws EncodeException

View File

@ -24,7 +24,7 @@ import javax.websocket.Encoder;
/** /**
* Default encoder for {@link Long} to {@link Text} Message encoder * Default encoder for {@link Long} to {@link Text} Message encoder
*/ */
public class LongEncoder implements Encoder.Text<Long> public class LongEncoder extends AbstractEncoder implements Encoder.Text<Long>
{ {
@Override @Override
public String encode(Long object) throws EncodeException public String encode(Long object) throws EncodeException

View File

@ -24,7 +24,7 @@ import javax.websocket.Encoder;
/** /**
* Default encoder for {@link Short} to {@link Text} Message encoder * Default encoder for {@link Short} to {@link Text} Message encoder
*/ */
public class ShortEncoder implements Encoder.Text<Short> public class ShortEncoder extends AbstractEncoder implements Encoder.Text<Short>
{ {
@Override @Override
public String encode(Short object) throws EncodeException public String encode(Short object) throws EncodeException

View File

@ -24,7 +24,7 @@ import javax.websocket.Encoder;
/** /**
* Default encoder for {@link String} to {@link Text} Message encoder * Default encoder for {@link String} to {@link Text} Message encoder
*/ */
public class StringEncoder implements Encoder.Text<String> public class StringEncoder extends AbstractEncoder implements Encoder.Text<String>
{ {
@Override @Override
public String encode(String object) throws EncodeException public String encode(String object) throws EncodeException

View File

@ -20,7 +20,7 @@ package org.eclipse.jetty.websocket.jsr356.endpoints;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import javax.websocket.WebSocketClient; import javax.websocket.ClientEndpoint;
import org.eclipse.jetty.websocket.api.InvalidWebSocketException; import org.eclipse.jetty.websocket.api.InvalidWebSocketException;
import org.eclipse.jetty.websocket.api.WebSocketPolicy; import org.eclipse.jetty.websocket.api.WebSocketPolicy;
@ -28,7 +28,7 @@ import org.eclipse.jetty.websocket.common.events.EventDriver;
import org.eclipse.jetty.websocket.common.events.EventDriverImpl; import org.eclipse.jetty.websocket.common.events.EventDriverImpl;
/** /**
* {@link EventDriverImpl} for {@link WebSocketClient &#064;WebSocketClient} annotated classes * {@link EventDriverImpl} for {@link ClientEndpoint &#064;ClientEndpoint} annotated classes
*/ */
public class JsrAnnotatedClientImpl implements EventDriverImpl public class JsrAnnotatedClientImpl implements EventDriverImpl
{ {
@ -39,10 +39,10 @@ public class JsrAnnotatedClientImpl implements EventDriverImpl
{ {
Class<?> websocketClass = websocket.getClass(); Class<?> websocketClass = websocket.getClass();
WebSocketClient wsclient = websocketClass.getAnnotation(WebSocketClient.class); ClientEndpoint wsclient = websocketClass.getAnnotation(ClientEndpoint.class);
if (wsclient == null) if (wsclient == null)
{ {
throw new InvalidWebSocketException("Cannot handle @WebSocketClient annotations here"); throw new InvalidWebSocketException("Cannot handle @ClientEndpoint annotations here");
} }
JsrAnnotatedMetadata metadata = cache.get(websocketClass); JsrAnnotatedMetadata metadata = cache.get(websocketClass);
@ -59,12 +59,12 @@ public class JsrAnnotatedClientImpl implements EventDriverImpl
@Override @Override
public String describeRule() public String describeRule()
{ {
return "class annotated with @" + WebSocketClient.class.getName(); return "class annotated with @" + ClientEndpoint.class.getName();
} }
@Override @Override
public boolean supports(Object websocket) public boolean supports(Object websocket)
{ {
return (websocket.getClass().getAnnotation(WebSocketClient.class) != null); return (websocket.getClass().getAnnotation(ClientEndpoint.class) != null);
} }
} }

View File

@ -21,14 +21,14 @@ package org.eclipse.jetty.websocket.jsr356.endpoints;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import javax.websocket.ClientEndpoint;
import javax.websocket.CloseReason; import javax.websocket.CloseReason;
import javax.websocket.EndpointConfiguration; import javax.websocket.EndpointConfig;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session; import javax.websocket.Session;
import javax.websocket.WebSocketClient;
import javax.websocket.WebSocketClose;
import javax.websocket.WebSocketError;
import javax.websocket.WebSocketMessage;
import javax.websocket.WebSocketOpen;
import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.Logger; import org.eclipse.jetty.util.log.Logger;
@ -42,7 +42,7 @@ import org.eclipse.jetty.websocket.jsr356.encoders.Encoders;
import org.eclipse.jetty.websocket.jsr356.endpoints.JsrMethodParameters.Param; import org.eclipse.jetty.websocket.jsr356.endpoints.JsrMethodParameters.Param;
/** /**
* Scanner for javax.websocket {@link WebSocketEndpoint &#064;WebSocketEndpoint} and {@link WebSocketClient &#064;WebSocketClient} annotated websockets * Scanner for javax.websocket {@link WebSocketEndpoint &#064;WebSocketEndpoint} and {@link ClientEndpoint &#064;ClientEndpoint} annotated websockets
*/ */
public class JsrAnnotatedClientScanner extends AbstractMethodAnnotationScanner<JsrAnnotatedMetadata> public class JsrAnnotatedClientScanner extends AbstractMethodAnnotationScanner<JsrAnnotatedMetadata>
{ {
@ -56,7 +56,7 @@ public class JsrAnnotatedClientScanner extends AbstractMethodAnnotationScanner<J
{ {
validOpenParams = new ParamList(); validOpenParams = new ParamList();
validOpenParams.addParams(Session.class); validOpenParams.addParams(Session.class);
validOpenParams.addParams(EndpointConfiguration.class); validOpenParams.addParams(EndpointConfig.class);
validCloseParams = new ParamList(); validCloseParams = new ParamList();
validCloseParams.addParams(Session.class); validCloseParams.addParams(Session.class);
@ -76,10 +76,10 @@ public class JsrAnnotatedClientScanner extends AbstractMethodAnnotationScanner<J
{ {
this.pojo = websocket; this.pojo = websocket;
WebSocketClient anno = websocket.getAnnotation(WebSocketClient.class); ClientEndpoint anno = websocket.getAnnotation(ClientEndpoint.class);
if (anno == null) if (anno == null)
{ {
throw new InvalidWebSocketException("Unsupported WebSocket object, missing @" + WebSocketClient.class + " annotation"); throw new InvalidWebSocketException("Unsupported WebSocket object, missing @" + ClientEndpoint.class + " annotation");
} }
this.encoders = new Encoders(anno.encoders()); this.encoders = new Encoders(anno.encoders());
@ -145,37 +145,37 @@ public class JsrAnnotatedClientScanner extends AbstractMethodAnnotationScanner<J
{ {
LOG.debug("onMethodAnnotation({}, {}, {}, {})",metadata,pojo,method,annotation); LOG.debug("onMethodAnnotation({}, {}, {}, {})",metadata,pojo,method,annotation);
if (isAnnotation(annotation,WebSocketOpen.class)) if (isAnnotation(annotation,OnOpen.class))
{ {
assertIsPublicNonStatic(method); assertIsPublicNonStatic(method);
assertIsReturn(method,Void.TYPE); assertIsReturn(method,Void.TYPE);
assertValidJsrSignature(method,WebSocketOpen.class,validOpenParams); assertValidJsrSignature(method,OnOpen.class,validOpenParams);
assertUnset(metadata.onOpen,WebSocketOpen.class,method); assertUnset(metadata.onOpen,OnOpen.class,method);
metadata.onOpen = new CallableMethod(pojo,method); metadata.onOpen = new CallableMethod(pojo,method);
return; return;
} }
if (isAnnotation(annotation,WebSocketClose.class)) if (isAnnotation(annotation,OnClose.class))
{ {
assertIsPublicNonStatic(method); assertIsPublicNonStatic(method);
assertIsReturn(method,Void.TYPE); assertIsReturn(method,Void.TYPE);
assertValidJsrSignature(method,WebSocketClose.class,validCloseParams); assertValidJsrSignature(method,OnClose.class,validCloseParams);
assertUnset(metadata.onClose,WebSocketClose.class,method); assertUnset(metadata.onClose,OnClose.class,method);
metadata.onClose = new CallableMethod(pojo,method); metadata.onClose = new CallableMethod(pojo,method);
return; return;
} }
if (isAnnotation(annotation,WebSocketError.class)) if (isAnnotation(annotation,OnError.class))
{ {
assertIsPublicNonStatic(method); assertIsPublicNonStatic(method);
assertIsReturn(method,Void.TYPE); assertIsReturn(method,Void.TYPE);
assertValidJsrSignature(method,WebSocketError.class,validErrorParams); assertValidJsrSignature(method,OnError.class,validErrorParams);
assertUnset(metadata.onError,WebSocketError.class,method); assertUnset(metadata.onError,OnError.class,method);
metadata.onError = new CallableMethod(pojo,method); metadata.onError = new CallableMethod(pojo,method);
return; return;
} }
if (isAnnotation(annotation,WebSocketMessage.class)) if (isAnnotation(annotation,OnMessage.class))
{ {
assertIsPublicNonStatic(method); assertIsPublicNonStatic(method);
@ -183,7 +183,7 @@ public class JsrAnnotatedClientScanner extends AbstractMethodAnnotationScanner<J
if (callable.isTextFormat()) if (callable.isTextFormat())
{ {
// TEXT // TEXT
assertUnset(metadata.onText,WebSocketMessage.class,method); assertUnset(metadata.onText,OnMessage.class,method);
metadata.onText = callable; metadata.onText = callable;
return; return;
} }
@ -191,7 +191,7 @@ public class JsrAnnotatedClientScanner extends AbstractMethodAnnotationScanner<J
if (callable.isBinaryFormat()) if (callable.isBinaryFormat())
{ {
// BINARY // BINARY
assertUnset(metadata.onBinary,WebSocketMessage.class,method); assertUnset(metadata.onBinary,OnMessage.class,method);
metadata.onBinary = callable; metadata.onBinary = callable;
return; return;
} }
@ -199,7 +199,7 @@ public class JsrAnnotatedClientScanner extends AbstractMethodAnnotationScanner<J
if (callable.isPongFormat()) if (callable.isPongFormat())
{ {
// PONG // PONG
assertUnset(metadata.onPong,WebSocketMessage.class,method); assertUnset(metadata.onPong,OnMessage.class,method);
metadata.onPong = callable; metadata.onPong = callable;
return; return;
} }

View File

@ -18,10 +18,10 @@
package org.eclipse.jetty.websocket.jsr356.endpoints; package org.eclipse.jetty.websocket.jsr356.endpoints;
import javax.websocket.WebSocketClose; import javax.websocket.OnClose;
import javax.websocket.WebSocketError; import javax.websocket.OnError;
import javax.websocket.WebSocketMessage; import javax.websocket.OnMessage;
import javax.websocket.WebSocketOpen; import javax.websocket.OnOpen;
import org.eclipse.jetty.websocket.common.events.annotated.CallableMethod; import org.eclipse.jetty.websocket.common.events.annotated.CallableMethod;
@ -31,27 +31,27 @@ import org.eclipse.jetty.websocket.common.events.annotated.CallableMethod;
public class JsrAnnotatedMetadata public class JsrAnnotatedMetadata
{ {
/** /**
* Callable for &#064;{@link WebSocketOpen} annotation * Callable for &#064;{@link OnOpen} annotation
*/ */
public CallableMethod onOpen; public CallableMethod onOpen;
/** /**
* Callable for &#064;{@link WebSocketClose} annotation * Callable for &#064;{@link OnClose} annotation
*/ */
public CallableMethod onClose; public CallableMethod onClose;
/** /**
* Callable for &#064;{@link WebSocketError} annotation * Callable for &#064;{@link OnError} annotation
*/ */
public CallableMethod onError; public CallableMethod onError;
/** /**
* Callable for &#064;{@link WebSocketMessage} annotation dealing with Text Message Format * Callable for &#064;{@link OnMessage} annotation dealing with Text Message Format
*/ */
public CallableMethod onText; public CallableMethod onText;
/** /**
* Callable for &#064;{@link WebSocketMessage} annotation dealing with Binary Message Format * Callable for &#064;{@link OnMessage} annotation dealing with Binary Message Format
*/ */
public CallableMethod onBinary; public CallableMethod onBinary;
/** /**
* Callable for &#064;{@link WebSocketMessage} annotation dealing with Pong Message Format * Callable for &#064;{@link OnMessage} annotation dealing with Pong Message Format
*/ */
public CallableMethod onPong; public CallableMethod onPong;
} }

View File

@ -25,9 +25,9 @@ import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import javax.websocket.WebSocketClose; import javax.websocket.OnClose;
import javax.websocket.WebSocketError; import javax.websocket.OnError;
import javax.websocket.WebSocketOpen; import javax.websocket.OnOpen;
import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.Logger; import org.eclipse.jetty.util.log.Logger;
@ -59,13 +59,13 @@ public class JsrAnnotatedClientScanner_InvalidSignaturesTest
List<Class<?>[]> data = new ArrayList<>(); List<Class<?>[]> data = new ArrayList<>();
// @formatter:off // @formatter:off
data.add(new Class<?>[]{ InvalidCloseIntSocket.class, WebSocketClose.class }); data.add(new Class<?>[]{ InvalidCloseIntSocket.class, OnClose.class });
data.add(new Class<?>[]{ InvalidErrorErrorSocket.class, WebSocketError.class }); data.add(new Class<?>[]{ InvalidErrorErrorSocket.class, OnError.class });
data.add(new Class<?>[]{ InvalidErrorExceptionSocket.class, WebSocketError.class }); data.add(new Class<?>[]{ InvalidErrorExceptionSocket.class, OnError.class });
data.add(new Class<?>[]{ InvalidErrorIntSocket.class, WebSocketError.class }); data.add(new Class<?>[]{ InvalidErrorIntSocket.class, OnError.class });
data.add(new Class<?>[]{ InvalidOpenCloseReasonSocket.class, WebSocketOpen.class }); data.add(new Class<?>[]{ InvalidOpenCloseReasonSocket.class, OnOpen.class });
data.add(new Class<?>[]{ InvalidOpenIntSocket.class, WebSocketOpen.class }); data.add(new Class<?>[]{ InvalidOpenIntSocket.class, OnOpen.class });
data.add(new Class<?>[]{ InvalidOpenSessionIntSocket.class, WebSocketOpen.class }); data.add(new Class<?>[]{ InvalidOpenSessionIntSocket.class, OnOpen.class });
// @formatter:on // @formatter:on
// TODO: invalid return types // TODO: invalid return types

View File

@ -20,15 +20,15 @@ package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import javax.websocket.WebSocketClient; import javax.websocket.ClientEndpoint;
import javax.websocket.WebSocketMessage; import javax.websocket.OnMessage;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class BasicBinaryMessageByteBufferSocket extends TrackingSocket public class BasicBinaryMessageByteBufferSocket extends TrackingSocket
{ {
@WebSocketMessage @OnMessage
public void onBinary(ByteBuffer data) public void onBinary(ByteBuffer data)
{ {
addEvent("onBinary(%s)",data); addEvent("onBinary(%s)",data);

View File

@ -18,17 +18,17 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.ClientEndpoint;
import javax.websocket.CloseReason; import javax.websocket.CloseReason;
import javax.websocket.OnClose;
import javax.websocket.Session; import javax.websocket.Session;
import javax.websocket.WebSocketClient;
import javax.websocket.WebSocketClose;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class BasicCloseReasonSessionSocket extends TrackingSocket public class BasicCloseReasonSessionSocket extends TrackingSocket
{ {
@WebSocketClose @OnClose
public void onClose(CloseReason reason, Session session) public void onClose(CloseReason reason, Session session)
{ {
addEvent("onClose(%s,%s)",reason,session); addEvent("onClose(%s,%s)",reason,session);

View File

@ -18,16 +18,16 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.ClientEndpoint;
import javax.websocket.CloseReason; import javax.websocket.CloseReason;
import javax.websocket.WebSocketClient; import javax.websocket.OnClose;
import javax.websocket.WebSocketClose;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class BasicCloseReasonSocket extends TrackingSocket public class BasicCloseReasonSocket extends TrackingSocket
{ {
@WebSocketClose @OnClose
public void onClose(CloseReason reason) public void onClose(CloseReason reason)
{ {
addEvent("onClose(%s)", reason); addEvent("onClose(%s)", reason);

View File

@ -18,17 +18,17 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.ClientEndpoint;
import javax.websocket.CloseReason; import javax.websocket.CloseReason;
import javax.websocket.OnClose;
import javax.websocket.Session; import javax.websocket.Session;
import javax.websocket.WebSocketClient;
import javax.websocket.WebSocketClose;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class BasicCloseSessionReasonSocket extends TrackingSocket public class BasicCloseSessionReasonSocket extends TrackingSocket
{ {
@WebSocketClose @OnClose
public void onClose(Session session, CloseReason reason) public void onClose(Session session, CloseReason reason)
{ {
addEvent("onClose(%s,%s)",session,reason); addEvent("onClose(%s,%s)",session,reason);

View File

@ -18,15 +18,15 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.WebSocketClient; import javax.websocket.ClientEndpoint;
import javax.websocket.WebSocketClose; import javax.websocket.OnClose;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class BasicCloseSocket extends TrackingSocket public class BasicCloseSocket extends TrackingSocket
{ {
@WebSocketClose @OnClose
public void onClose() public void onClose()
{ {
addEvent("onClose()"); addEvent("onClose()");

View File

@ -18,16 +18,16 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.ClientEndpoint;
import javax.websocket.OnError;
import javax.websocket.Session; import javax.websocket.Session;
import javax.websocket.WebSocketClient;
import javax.websocket.WebSocketError;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class BasicErrorSessionSocket extends TrackingSocket public class BasicErrorSessionSocket extends TrackingSocket
{ {
@WebSocketError @OnError
public void onError(Session session) public void onError(Session session)
{ {
addEvent("onError(%s)",session); addEvent("onError(%s)",session);

View File

@ -18,16 +18,16 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.ClientEndpoint;
import javax.websocket.OnError;
import javax.websocket.Session; import javax.websocket.Session;
import javax.websocket.WebSocketClient;
import javax.websocket.WebSocketError;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class BasicErrorSessionThrowableSocket extends TrackingSocket public class BasicErrorSessionThrowableSocket extends TrackingSocket
{ {
@WebSocketError @OnError
public void onError(Session session, Throwable t) public void onError(Session session, Throwable t)
{ {
addEvent("onError(%s,%s)",session,t); addEvent("onError(%s,%s)",session,t);

View File

@ -18,15 +18,15 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.WebSocketClient; import javax.websocket.ClientEndpoint;
import javax.websocket.WebSocketError; import javax.websocket.OnError;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class BasicErrorSocket extends TrackingSocket public class BasicErrorSocket extends TrackingSocket
{ {
@WebSocketError @OnError
public void onError() public void onError()
{ {
addEvent("onError()"); addEvent("onError()");

View File

@ -18,16 +18,16 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.ClientEndpoint;
import javax.websocket.OnError;
import javax.websocket.Session; import javax.websocket.Session;
import javax.websocket.WebSocketClient;
import javax.websocket.WebSocketError;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class BasicErrorThrowableSessionSocket extends TrackingSocket public class BasicErrorThrowableSessionSocket extends TrackingSocket
{ {
@WebSocketError @OnError
public void onError(Throwable t, Session session) public void onError(Throwable t, Session session)
{ {
addEvent("onError(%s,%s)",t,session); addEvent("onError(%s,%s)",t,session);

View File

@ -18,15 +18,15 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.WebSocketClient; import javax.websocket.ClientEndpoint;
import javax.websocket.WebSocketError; import javax.websocket.OnError;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class BasicErrorThrowableSocket extends TrackingSocket public class BasicErrorThrowableSocket extends TrackingSocket
{ {
@WebSocketError @OnError
public void onError(Throwable t) public void onError(Throwable t)
{ {
addEvent("onError(%s)",t); addEvent("onError(%s)",t);

View File

@ -18,18 +18,18 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.ClientEndpoint;
import javax.websocket.CloseReason; import javax.websocket.CloseReason;
import javax.websocket.OnClose;
import javax.websocket.OnOpen;
import javax.websocket.Session; import javax.websocket.Session;
import javax.websocket.WebSocketClient;
import javax.websocket.WebSocketClose;
import javax.websocket.WebSocketOpen;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class BasicOpenCloseSessionSocket extends TrackingSocket public class BasicOpenCloseSessionSocket extends TrackingSocket
{ {
@WebSocketClose @OnClose
public void onClose(CloseReason close, Session session) public void onClose(CloseReason close, Session session)
{ {
addEvent("onClose(%s, %s)",close,session); addEvent("onClose(%s, %s)",close,session);
@ -37,7 +37,7 @@ public class BasicOpenCloseSessionSocket extends TrackingSocket
closeLatch.countDown(); closeLatch.countDown();
} }
@WebSocketOpen @OnOpen
public void onOpen(Session session) public void onOpen(Session session)
{ {
addEvent("onOpen(%s)",session); addEvent("onOpen(%s)",session);

View File

@ -18,22 +18,22 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.ClientEndpoint;
import javax.websocket.CloseReason; import javax.websocket.CloseReason;
import javax.websocket.WebSocketClient; import javax.websocket.OnClose;
import javax.websocket.WebSocketClose; import javax.websocket.OnOpen;
import javax.websocket.WebSocketOpen;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class BasicOpenCloseSocket extends TrackingSocket public class BasicOpenCloseSocket extends TrackingSocket
{ {
@WebSocketOpen @OnOpen
public void onOpen() { public void onOpen() {
openLatch.countDown(); openLatch.countDown();
} }
@WebSocketClose @OnClose
public void onClose(CloseReason close) { public void onClose(CloseReason close) {
this.closeReason = close; this.closeReason = close;
closeLatch.countDown(); closeLatch.countDown();

View File

@ -18,16 +18,16 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.ClientEndpoint;
import javax.websocket.OnOpen;
import javax.websocket.Session; import javax.websocket.Session;
import javax.websocket.WebSocketClient;
import javax.websocket.WebSocketOpen;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class BasicOpenSessionSocket extends TrackingSocket public class BasicOpenSessionSocket extends TrackingSocket
{ {
@WebSocketOpen @OnOpen
public void onOpen(Session session) public void onOpen(Session session)
{ {
openLatch.countDown(); openLatch.countDown();

View File

@ -18,15 +18,15 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.WebSocketClient; import javax.websocket.ClientEndpoint;
import javax.websocket.WebSocketOpen; import javax.websocket.OnOpen;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class BasicOpenSocket extends TrackingSocket public class BasicOpenSocket extends TrackingSocket
{ {
@WebSocketOpen @OnOpen
public void onOpen() public void onOpen()
{ {
openLatch.countDown(); openLatch.countDown();

View File

@ -18,16 +18,16 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.ClientEndpoint;
import javax.websocket.OnMessage;
import javax.websocket.PongMessage; import javax.websocket.PongMessage;
import javax.websocket.WebSocketClient;
import javax.websocket.WebSocketMessage;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class BasicPongMessageSocket extends TrackingSocket public class BasicPongMessageSocket extends TrackingSocket
{ {
@WebSocketMessage @OnMessage
public void onPong(PongMessage pong) public void onPong(PongMessage pong)
{ {
addEvent("onPong(%s)",pong); addEvent("onPong(%s)",pong);

View File

@ -18,15 +18,15 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.WebSocketClient; import javax.websocket.ClientEndpoint;
import javax.websocket.WebSocketMessage; import javax.websocket.OnMessage;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class BasicTextMessageStringSocket extends TrackingSocket public class BasicTextMessageStringSocket extends TrackingSocket
{ {
@WebSocketMessage @OnMessage
public void onText(String message) public void onText(String message)
{ {
addEvent("onText(%s)",message); addEvent("onText(%s)",message);

View File

@ -18,18 +18,18 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.WebSocketClient; import javax.websocket.ClientEndpoint;
import javax.websocket.WebSocketClose; import javax.websocket.OnClose;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class InvalidCloseIntSocket extends TrackingSocket public class InvalidCloseIntSocket extends TrackingSocket
{ {
/** /**
* Invalid Close Method Declaration (parameter type int) * Invalid Close Method Declaration (parameter type int)
*/ */
@WebSocketClose @OnClose
public void onClose(int statusCode) public void onClose(int statusCode)
{ {
closeLatch.countDown(); closeLatch.countDown();

View File

@ -18,18 +18,18 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.WebSocketClient; import javax.websocket.ClientEndpoint;
import javax.websocket.WebSocketError; import javax.websocket.OnError;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class InvalidErrorErrorSocket extends TrackingSocket public class InvalidErrorErrorSocket extends TrackingSocket
{ {
/** /**
* Invalid Error Method Declaration (parameter type Error) * Invalid Error Method Declaration (parameter type Error)
*/ */
@WebSocketError @OnError
public void onError(Error error) public void onError(Error error)
{ {
/* no impl */ /* no impl */

View File

@ -18,18 +18,18 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.WebSocketClient; import javax.websocket.ClientEndpoint;
import javax.websocket.WebSocketError; import javax.websocket.OnError;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class InvalidErrorExceptionSocket extends TrackingSocket public class InvalidErrorExceptionSocket extends TrackingSocket
{ {
/** /**
* Invalid Error Method Declaration (parameter type Exception) * Invalid Error Method Declaration (parameter type Exception)
*/ */
@WebSocketError @OnError
public void onError(Exception e) public void onError(Exception e)
{ {
/* no impl */ /* no impl */

View File

@ -18,18 +18,18 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.WebSocketClient; import javax.websocket.ClientEndpoint;
import javax.websocket.WebSocketError; import javax.websocket.OnError;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class InvalidErrorIntSocket extends TrackingSocket public class InvalidErrorIntSocket extends TrackingSocket
{ {
/** /**
* Invalid Error Method Declaration (parameter type int) * Invalid Error Method Declaration (parameter type int)
*/ */
@WebSocketError @OnError
public void onError(int errorCount) public void onError(int errorCount)
{ {
/* no impl */ /* no impl */

View File

@ -18,19 +18,19 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.ClientEndpoint;
import javax.websocket.CloseReason; import javax.websocket.CloseReason;
import javax.websocket.WebSocketClient; import javax.websocket.OnOpen;
import javax.websocket.WebSocketOpen;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class InvalidOpenCloseReasonSocket extends TrackingSocket public class InvalidOpenCloseReasonSocket extends TrackingSocket
{ {
/** /**
* Invalid Open Method Declaration (parameter type CloseReason) * Invalid Open Method Declaration (parameter type CloseReason)
*/ */
@WebSocketOpen @OnOpen
public void onOpen(CloseReason reason) public void onOpen(CloseReason reason)
{ {
openLatch.countDown(); openLatch.countDown();

View File

@ -18,18 +18,18 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.WebSocketClient; import javax.websocket.ClientEndpoint;
import javax.websocket.WebSocketOpen; import javax.websocket.OnOpen;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class InvalidOpenIntSocket extends TrackingSocket public class InvalidOpenIntSocket extends TrackingSocket
{ {
/** /**
* Invalid Open Method Declaration (parameter type int) * Invalid Open Method Declaration (parameter type int)
*/ */
@WebSocketOpen @OnOpen
public void onOpen(int value) public void onOpen(int value)
{ {
openLatch.countDown(); openLatch.countDown();

View File

@ -18,19 +18,19 @@
package org.eclipse.jetty.websocket.jsr356.endpoints.samples; package org.eclipse.jetty.websocket.jsr356.endpoints.samples;
import javax.websocket.ClientEndpoint;
import javax.websocket.OnOpen;
import javax.websocket.Session; import javax.websocket.Session;
import javax.websocket.WebSocketClient;
import javax.websocket.WebSocketOpen;
import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket; import org.eclipse.jetty.websocket.jsr356.endpoints.TrackingSocket;
@WebSocketClient @ClientEndpoint
public class InvalidOpenSessionIntSocket extends TrackingSocket public class InvalidOpenSessionIntSocket extends TrackingSocket
{ {
/** /**
* Invalid Open Method Declaration (parameter of type int) * Invalid Open Method Declaration (parameter of type int)
*/ */
@WebSocketOpen @OnOpen
public void onOpen(Session session, int count) public void onOpen(Session session, int count)
{ {
openLatch.countDown(); openLatch.countDown();

View File

@ -25,6 +25,7 @@ import java.util.regex.Pattern;
import javax.websocket.DecodeException; import javax.websocket.DecodeException;
import javax.websocket.Decoder; import javax.websocket.Decoder;
import javax.websocket.EndpointConfig;
import org.eclipse.jetty.util.BufferUtil; import org.eclipse.jetty.util.BufferUtil;
@ -73,6 +74,11 @@ public class DualDecoder implements Decoder.Text<Fruit>, Decoder.Binary<Fruit>
return fruit; return fruit;
} }
@Override
public void destroy()
{
}
private String getUTF8String(ByteBuffer buf) private String getUTF8String(ByteBuffer buf)
{ {
int strLen = buf.getInt(); int strLen = buf.getInt();
@ -83,6 +89,11 @@ public class DualDecoder implements Decoder.Text<Fruit>, Decoder.Binary<Fruit>
return str; return str;
} }
@Override
public void init(EndpointConfig config)
{
}
@Override @Override
public boolean willDecode(ByteBuffer bytes) public boolean willDecode(ByteBuffer bytes)
{ {

View File

@ -23,6 +23,7 @@ import java.nio.charset.Charset;
import javax.websocket.EncodeException; import javax.websocket.EncodeException;
import javax.websocket.Encoder; import javax.websocket.Encoder;
import javax.websocket.EndpointConfig;
import org.eclipse.jetty.util.BufferUtil; import org.eclipse.jetty.util.BufferUtil;
@ -32,6 +33,11 @@ public class FruitBinaryEncoder implements Encoder.Binary<Fruit>
// the number of bytes to store a string (1 int) // the number of bytes to store a string (1 int)
public static final int STRLEN_STORAGE = 4; public static final int STRLEN_STORAGE = 4;
@Override
public void destroy()
{
}
@Override @Override
public ByteBuffer encode(Fruit fruit) throws EncodeException public ByteBuffer encode(Fruit fruit) throws EncodeException
{ {
@ -49,6 +55,11 @@ public class FruitBinaryEncoder implements Encoder.Binary<Fruit>
return buf; return buf;
} }
@Override
public void init(EndpointConfig config)
{
}
private void putString(ByteBuffer buf, String str) private void putString(ByteBuffer buf, String str)
{ {
buf.putInt(str.length()); buf.putInt(str.length());

View File

@ -22,6 +22,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import javax.websocket.DecodeException; import javax.websocket.DecodeException;
import javax.websocket.EndpointConfig;
public class FruitDecoder implements ExtDecoder<Fruit> public class FruitDecoder implements ExtDecoder<Fruit>
{ {
@ -44,6 +45,16 @@ public class FruitDecoder implements ExtDecoder<Fruit>
return fruit; return fruit;
} }
@Override
public void destroy()
{
}
@Override
public void init(EndpointConfig config)
{
}
@Override @Override
public void setId(String id) public void setId(String id)
{ {

View File

@ -20,12 +20,23 @@ package org.eclipse.jetty.websocket.jsr356.samples;
import javax.websocket.EncodeException; import javax.websocket.EncodeException;
import javax.websocket.Encoder; import javax.websocket.Encoder;
import javax.websocket.EndpointConfig;
public class FruitTextEncoder implements Encoder.Text<Fruit> public class FruitTextEncoder implements Encoder.Text<Fruit>
{ {
@Override
public void destroy()
{
}
@Override @Override
public String encode(Fruit fruit) throws EncodeException public String encode(Fruit fruit) throws EncodeException
{ {
return String.format("%s|%s",fruit.name,fruit.color); return String.format("%s|%s",fruit.name,fruit.color);
} }
@Override
public void init(EndpointConfig config)
{
}
} }

View File

@ -20,20 +20,21 @@ package org.eclipse.jetty.websocket.jsr356.samples;
import java.io.IOException; import java.io.IOException;
import javax.websocket.ClientEndpoint;
import javax.websocket.EncodeException; import javax.websocket.EncodeException;
import javax.websocket.OnMessage;
import javax.websocket.Session; import javax.websocket.Session;
import javax.websocket.WebSocketClient;
import javax.websocket.WebSocketMessage;
@WebSocketClient(decoders = { DualDecoder.class }) @ClientEndpoint(decoders =
{ DualDecoder.class })
public class IntSocket public class IntSocket
{ {
@WebSocketMessage @OnMessage
public void onInt(Session session, int value) public void onInt(Session session, int value)
{ {
try try
{ {
session.getRemote().sendObject(value); session.getBasicRemote().sendObject(value);
} }
catch (IOException | EncodeException e) catch (IOException | EncodeException e)
{ {

View File

@ -4,7 +4,7 @@
<parent> <parent>
<groupId>org.eclipse.jetty.websocket</groupId> <groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-parent</artifactId> <artifactId>websocket-parent</artifactId>
<version>9.0.0-SNAPSHOT</version> <version>9.0.1-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
@ -24,7 +24,7 @@
<dependency> <dependency>
<groupId>org.eclipse.jetty.drafts</groupId> <groupId>org.eclipse.jetty.drafts</groupId>
<artifactId>javax.websocket-api</artifactId> <artifactId>javax.websocket-api</artifactId>
<version>0.0.012.draft-SNAPSHOT</version> <version>1.0.0.PFD-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.eclipse.jetty.toolchain</groupId> <groupId>org.eclipse.jetty.toolchain</groupId>

View File

@ -192,7 +192,9 @@ public class WebSocketSession extends ContainerLifeCycle implements Session, Inc
return extensionFactory; return extensionFactory;
} }
/**
* The idle timeout in milliseconds * The idle timeout in milliseconds
*/
@Override @Override
public long getIdleTimeout() public long getIdleTimeout()
{ {
@ -362,12 +364,6 @@ public class WebSocketSession extends ContainerLifeCycle implements Session, Inc
connection.setMaxIdleTimeout(ms); connection.setMaxIdleTimeout(ms);
} }
@Override
public void setMaximumMessageSize(long length)
{
this.maximumMessageSize = length;
}
public void setOutgoingHandler(OutgoingFrames outgoing) public void setOutgoingHandler(OutgoingFrames outgoing)
{ {
this.outgoingHandler = outgoing; this.outgoingHandler = outgoing;

View File

@ -603,12 +603,6 @@ public abstract class AbstractWebSocketConnection extends AbstractConnection imp
this.extensions = extensions; this.extensions = extensions;
} }
@Override
public void setIdleTimeout(long ms)
{
getEndPoint().setIdleTimeout(ms);
}
@Override @Override
public void setInputBufferSize(int inputBufferSize) public void setInputBufferSize(int inputBufferSize)
{ {