![JAR search and dependency download from the Maven repository](/logo.png)
org.eclipse.lsp4j.websocket.jakarta.WebSocketMessageHandler Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.eclipse.lsp4j.websocket.jakarta Show documentation
Show all versions of org.eclipse.lsp4j.websocket.jakarta Show documentation
Jakarta WebSocket support for LSP4J
/******************************************************************************
* Copyright (c) 2019, 2021 TypeFox and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
******************************************************************************/
package org.eclipse.lsp4j.websocket.jakarta;
import jakarta.websocket.MessageHandler;
import org.eclipse.lsp4j.jsonrpc.MessageConsumer;
import org.eclipse.lsp4j.jsonrpc.MessageIssueException;
import org.eclipse.lsp4j.jsonrpc.MessageIssueHandler;
import org.eclipse.lsp4j.jsonrpc.json.MessageJsonHandler;
import org.eclipse.lsp4j.jsonrpc.messages.Message;
/**
* WebSocket message handler that parses JSON messages and forwards them to a {@link MessageConsumer}.
*/
public class WebSocketMessageHandler implements MessageHandler.Whole {
private final MessageConsumer callback;
private final MessageJsonHandler jsonHandler;
private final MessageIssueHandler issueHandler;
public WebSocketMessageHandler(MessageConsumer callback, MessageJsonHandler jsonHandler, MessageIssueHandler issueHandler) {
this.callback = callback;
this.jsonHandler = jsonHandler;
this.issueHandler = issueHandler;
}
@Override
public void onMessage(String content) {
try {
Message message = jsonHandler.parseMessage(content);
callback.consume(message);
} catch (MessageIssueException exception) {
// An issue was found while parsing or validating the message
issueHandler.handle(exception.getRpcMessage(), exception.getIssues());
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy