You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by zj...@apache.org on 2020/09/15 03:09:11 UTC
[zeppelin] branch master updated: [ZEPPELIN-5031]. Introduce
zeppelin-common module
This is an automated email from the ASF dual-hosted git repository.
zjffdu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zeppelin.git
The following commit(s) were added to refs/heads/master by this push:
new 847e12d [ZEPPELIN-5031]. Introduce zeppelin-common module
847e12d is described below
commit 847e12db3e61b19fd0301281df17424b8572601f
Author: Jeff Zhang <zj...@apache.org>
AuthorDate: Wed Sep 9 16:39:56 2020 +0800
[ZEPPELIN-5031]. Introduce zeppelin-common module
### What is this PR for?
This is a refactoring PR which introduce zeppelin-common module that contains the common code for both zeppelin server and client api.
### What type of PR is it?
[Refactoring]
### Todos
* [ ] - Task
### What is the Jira issue?
* https://issues.apache.org/jira/browse/ZEPPELIN-5031
### How should this be tested?
* First time? Setup Travis CI as described on https://zeppelin.apache.org/contribution/contributions.html#continuous-integration
* Strongly recommended: add automated unit tests for any new or changed behavior
* Outline any manual steps to test the PR here.
### Screenshots (if appropriate)
### Questions:
* Does the licenses files need update?
* Is there breaking changes for older versions?
* Does this needs documentation?
Author: Jeff Zhang <zj...@apache.org>
Closes #3900 from zjffdu/ZEPPELIN-5031 and squashes the following commits:
65865d350 [Jeff Zhang] [ZEPPELIN-5031]. Introduce zeppelin-common module
---
pom.xml | 1 +
zeppelin-client/pom.xml | 6 +
.../org/apache/zeppelin/client/SessionInfo.java | 95 -------
.../java/org/apache/zeppelin/client/ZSession.java | 3 +-
.../org/apache/zeppelin/client/ZeppelinClient.java | 31 ++-
.../client/websocket/AbstractMessageHandler.java | 2 +
.../client/websocket/JsonSerializable.java | 26 --
.../client/websocket/ZeppelinWebSocketClient.java | 2 +
{zeppelin-client => zeppelin-common}/pom.xml | 38 +--
.../apache/zeppelin/common/JsonSerializable.java | 0
.../java/org/apache/zeppelin/common}/Message.java | 8 +-
.../org/apache/zeppelin/common}/SessionInfo.java | 21 +-
zeppelin-interpreter/pom.xml | 6 +
.../apache/zeppelin/rest/InterpreterRestApi.java | 4 +-
.../org/apache/zeppelin/rest/NotebookRestApi.java | 2 +-
.../org/apache/zeppelin/rest/SessionManager.java | 2 +-
.../org/apache/zeppelin/rest/SessionRestApi.java | 2 +-
.../apache/zeppelin/service/NotebookService.java | 2 +-
.../apache/zeppelin/socket/ConnectionManager.java | 2 +-
.../org/apache/zeppelin/socket/NotebookServer.java | 6 +-
.../apache/zeppelin/socket/NotebookServerTest.java | 4 +-
zeppelin-zengine/pom.xml | 6 +
.../repo/zeppelinhub/security/Authentication.java | 4 +-
.../repo/zeppelinhub/websocket/Client.java | 2 +-
.../repo/zeppelinhub/websocket/ZeppelinClient.java | 4 +-
.../zeppelinhub/websocket/ZeppelinhubClient.java | 4 +-
.../websocket/listener/WatcherWebsocket.java | 4 +-
.../websocket/protocol/ZeppelinhubMessage.java | 5 +-
.../websocket/utils/ZeppelinhubUtils.java | 3 +-
.../apache/zeppelin/notebook/socket/Message.java | 286 ---------------------
30 files changed, 106 insertions(+), 475 deletions(-)
diff --git a/pom.xml b/pom.xml
index 78f66de..67db0e7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -93,6 +93,7 @@
<module>geode</module>
<module>ksql</module>
<module>sparql</module>
+ <module>zeppelin-common</module>
<module>zeppelin-client</module>
<module>zeppelin-client-examples</module>
<module>zeppelin-web</module>
diff --git a/zeppelin-client/pom.xml b/zeppelin-client/pom.xml
index 5fab859..9f264bc 100644
--- a/zeppelin-client/pom.xml
+++ b/zeppelin-client/pom.xml
@@ -43,6 +43,12 @@
<dependencies>
<dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>zeppelin-common</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-client</artifactId>
<version>${jetty.version}</version>
diff --git a/zeppelin-client/src/main/java/org/apache/zeppelin/client/SessionInfo.java b/zeppelin-client/src/main/java/org/apache/zeppelin/client/SessionInfo.java
deleted file mode 100644
index 4eac5c4..0000000
--- a/zeppelin-client/src/main/java/org/apache/zeppelin/client/SessionInfo.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-package org.apache.zeppelin.client;
-
-import kong.unirest.json.JSONObject;
-
-
-/**
- * Represent each ZSession info.
- */
-public class SessionInfo {
-
- private String sessionId;
- private String noteId;
- private String interpreter;
- private String state;
- private String weburl;
- private String startTime;
-
- public SessionInfo(String sessionId) {
- this.sessionId = sessionId;
- }
-
- public SessionInfo(JSONObject sessionJson) {
- if (sessionJson.has("sessionId")) {
- this.sessionId = sessionJson.getString("sessionId");
- }
- if (sessionJson.has("noteId")) {
- this.noteId = sessionJson.getString("noteId");
- }
- if (sessionJson.has("interpreter")) {
- this.interpreter = sessionJson.getString("interpreter");
- }
- if (sessionJson.has("state")) {
- this.state = sessionJson.getString("state");
- }
- if (sessionJson.has("weburl")) {
- this.weburl = sessionJson.getString("weburl");
- }
- if (sessionJson.has("startTime")) {
- this.startTime = sessionJson.getString("startTime");
- }
- }
-
- public String getSessionId() {
- return sessionId;
- }
-
- public String getNoteId() {
- return noteId;
- }
-
- public String getInterpreter() {
- return interpreter;
- }
-
- public String getState() {
- return state;
- }
-
- public String getWeburl() {
- return weburl;
- }
-
- public String getStartTime() {
- return startTime;
- }
-
- @Override
- public String toString() {
- return "SessionResult{" +
- "sessionId='" + sessionId + '\'' +
- ", interpreter='" + interpreter + '\'' +
- ", state='" + state + '\'' +
- ", weburl='" + weburl + '\'' +
- ", startTime='" + startTime + '\'' +
- '}';
- }
-}
diff --git a/zeppelin-client/src/main/java/org/apache/zeppelin/client/ZSession.java b/zeppelin-client/src/main/java/org/apache/zeppelin/client/ZSession.java
index ffedf40..cc07e5d 100644
--- a/zeppelin-client/src/main/java/org/apache/zeppelin/client/ZSession.java
+++ b/zeppelin-client/src/main/java/org/apache/zeppelin/client/ZSession.java
@@ -18,7 +18,8 @@
package org.apache.zeppelin.client;
import org.apache.commons.lang3.StringUtils;
-import org.apache.zeppelin.client.websocket.Message;
+import org.apache.zeppelin.common.Message;
+import org.apache.zeppelin.common.SessionInfo;
import org.apache.zeppelin.client.websocket.MessageHandler;
import org.apache.zeppelin.client.websocket.StatementMessageHandler;
import org.apache.zeppelin.client.websocket.ZeppelinWebSocketClient;
diff --git a/zeppelin-client/src/main/java/org/apache/zeppelin/client/ZeppelinClient.java b/zeppelin-client/src/main/java/org/apache/zeppelin/client/ZeppelinClient.java
index 9bb5265..539f119 100644
--- a/zeppelin-client/src/main/java/org/apache/zeppelin/client/ZeppelinClient.java
+++ b/zeppelin-client/src/main/java/org/apache/zeppelin/client/ZeppelinClient.java
@@ -29,6 +29,7 @@ import org.apache.commons.text.StringEscapeUtils;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.ssl.SSLContextBuilder;
+import org.apache.zeppelin.common.SessionInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import unirest.shaded.org.apache.http.client.HttpClient;
@@ -137,7 +138,7 @@ public class ZeppelinClient {
checkResponse(response);
JsonNode jsonNode = response.getBody();
checkJsonNodeStatus(jsonNode);
- return new SessionInfo(jsonNode.getObject().getJSONObject("body"));
+ return createSessionInfoFromJson(jsonNode.getObject().getJSONObject("body"));
}
/**
@@ -172,7 +173,7 @@ public class ZeppelinClient {
checkJsonNodeStatus(jsonNode);
JSONObject bodyObject = jsonNode.getObject().getJSONObject("body");
- return new SessionInfo(bodyObject);
+ return createSessionInfoFromJson(bodyObject);
}
/**
@@ -204,11 +205,35 @@ public class ZeppelinClient {
JSONArray sessionJsonArray = jsonNode.getObject().getJSONArray("body");
List<SessionInfo> sessionInfos = new ArrayList<>();
for (int i = 0; i< sessionJsonArray.length();++i) {
- sessionInfos.add(new SessionInfo(sessionJsonArray.getJSONObject(i)));
+ sessionInfos.add(createSessionInfoFromJson(sessionJsonArray.getJSONObject(i)));
}
return sessionInfos;
}
+ private SessionInfo createSessionInfoFromJson(JSONObject sessionJson) {
+ SessionInfo sessionInfo = new SessionInfo();
+ if (sessionJson.has("sessionId")) {
+ sessionInfo.setSessionId(sessionJson.getString("sessionId"));
+ }
+ if (sessionJson.has("noteId")) {
+ sessionInfo.setNoteId(sessionJson.getString("noteId"));
+ }
+ if (sessionJson.has("interpreter")) {
+ sessionInfo.setInterpreter(sessionJson.getString("interpreter"));
+ }
+ if (sessionJson.has("state")) {
+ sessionInfo.setState(sessionJson.getString("state"));
+ }
+ if (sessionJson.has("weburl")) {
+ sessionInfo.setWeburl(sessionJson.getString("weburl"));
+ }
+ if (sessionJson.has("startTime")) {
+ sessionInfo.setStartTime(sessionJson.getString("startTime"));
+ }
+
+ return sessionInfo;
+ }
+
/**
* Login zeppelin with userName and password, throw exception if login fails.
*
diff --git a/zeppelin-client/src/main/java/org/apache/zeppelin/client/websocket/AbstractMessageHandler.java b/zeppelin-client/src/main/java/org/apache/zeppelin/client/websocket/AbstractMessageHandler.java
index 1aa9eee..da015f1 100644
--- a/zeppelin-client/src/main/java/org/apache/zeppelin/client/websocket/AbstractMessageHandler.java
+++ b/zeppelin-client/src/main/java/org/apache/zeppelin/client/websocket/AbstractMessageHandler.java
@@ -17,6 +17,8 @@
package org.apache.zeppelin.client.websocket;
+import org.apache.zeppelin.common.Message;
+
import com.google.gson.Gson;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/zeppelin-client/src/main/java/org/apache/zeppelin/client/websocket/JsonSerializable.java b/zeppelin-client/src/main/java/org/apache/zeppelin/client/websocket/JsonSerializable.java
deleted file mode 100644
index 914243c..0000000
--- a/zeppelin-client/src/main/java/org/apache/zeppelin/client/websocket/JsonSerializable.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.zeppelin.client.websocket;
-
-/**
- * Interface for class that can be serialized to json
- */
-public interface JsonSerializable {
-
- String toJson();
-}
diff --git a/zeppelin-client/src/main/java/org/apache/zeppelin/client/websocket/ZeppelinWebSocketClient.java b/zeppelin-client/src/main/java/org/apache/zeppelin/client/websocket/ZeppelinWebSocketClient.java
index 4a72c0a..a3e7003 100644
--- a/zeppelin-client/src/main/java/org/apache/zeppelin/client/websocket/ZeppelinWebSocketClient.java
+++ b/zeppelin-client/src/main/java/org/apache/zeppelin/client/websocket/ZeppelinWebSocketClient.java
@@ -18,6 +18,8 @@
package org.apache.zeppelin.client.websocket;
import com.google.gson.Gson;
+import org.apache.zeppelin.common.Message;
+
import org.eclipse.jetty.websocket.api.Session;
import org.eclipse.jetty.websocket.api.annotations.OnWebSocketClose;
import org.eclipse.jetty.websocket.api.annotations.OnWebSocketConnect;
diff --git a/zeppelin-client/pom.xml b/zeppelin-common/pom.xml
similarity index 70%
copy from zeppelin-client/pom.xml
copy to zeppelin-common/pom.xml
index 5fab859..7f29cf3 100644
--- a/zeppelin-client/pom.xml
+++ b/zeppelin-common/pom.xml
@@ -29,47 +29,21 @@
</parent>
<groupId>org.apache.zeppelin</groupId>
- <artifactId>zeppelin-client</artifactId>
+ <artifactId>zeppelin-common</artifactId>
<packaging>jar</packaging>
<version>0.9.0-SNAPSHOT</version>
- <name>Zeppelin: Client</name>
- <description>Zeppelin Client</description>
+ <name>Zeppelin: Common</name>
+ <description>Zeppelin Common</description>
<properties>
- <unirest.version>3.7.04</unirest.version>
- <commons-text.version>1.8</commons-text.version>
+
</properties>
<dependencies>
<dependency>
- <groupId>org.eclipse.jetty.websocket</groupId>
- <artifactId>websocket-client</artifactId>
- <version>${jetty.version}</version>
- </dependency>
-
- <dependency>
- <groupId>com.konghq</groupId>
- <artifactId>unirest-java</artifactId>
- <version>${unirest.version}</version>
- <classifier>standalone</classifier>
- </dependency>
-
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.eclipse.jetty.websocket</groupId>
- <artifactId>websocket-client</artifactId>
- <version>${jetty.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-text</artifactId>
- <version>${commons-text.version}</version>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
</dependency>
<dependency>
diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/common/JsonSerializable.java b/zeppelin-common/src/main/java/org/apache/zeppelin/common/JsonSerializable.java
similarity index 100%
rename from zeppelin-interpreter/src/main/java/org/apache/zeppelin/common/JsonSerializable.java
rename to zeppelin-common/src/main/java/org/apache/zeppelin/common/JsonSerializable.java
diff --git a/zeppelin-client/src/main/java/org/apache/zeppelin/client/websocket/Message.java b/zeppelin-common/src/main/java/org/apache/zeppelin/common/Message.java
similarity index 98%
rename from zeppelin-client/src/main/java/org/apache/zeppelin/client/websocket/Message.java
rename to zeppelin-common/src/main/java/org/apache/zeppelin/common/Message.java
index cca3a46..bf738df 100644
--- a/zeppelin-client/src/main/java/org/apache/zeppelin/client/websocket/Message.java
+++ b/zeppelin-common/src/main/java/org/apache/zeppelin/common/Message.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.zeppelin.client.websocket;
+package org.apache.zeppelin.common;
import com.google.gson.Gson;
import org.slf4j.Logger;
@@ -218,7 +218,7 @@ public class Message implements JsonSerializable {
OP.DEL_NOTE,
OP.PATCH_PARAGRAPH)));
- private static final Gson gson = new Gson();
+ private static final Gson GSON = new Gson();
public static final Message EMPTY = new Message(null);
public OP op;
@@ -279,10 +279,10 @@ public class Message implements JsonSerializable {
}
public String toJson() {
- return gson.toJson(this);
+ return GSON.toJson(this);
}
public static Message fromJson(String json) {
- return gson.fromJson(json, Message.class);
+ return GSON.fromJson(json, Message.class);
}
}
diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/message/SessionInfo.java b/zeppelin-common/src/main/java/org/apache/zeppelin/common/SessionInfo.java
similarity index 87%
rename from zeppelin-server/src/main/java/org/apache/zeppelin/rest/message/SessionInfo.java
rename to zeppelin-common/src/main/java/org/apache/zeppelin/common/SessionInfo.java
index 8e8f2ab..3a87b40 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/message/SessionInfo.java
+++ b/zeppelin-common/src/main/java/org/apache/zeppelin/common/SessionInfo.java
@@ -15,11 +15,8 @@
* limitations under the License.
*/
-package org.apache.zeppelin.rest.message;
+package org.apache.zeppelin.common;
-/**
- * (TODO) Move it to zeppelin-common, so that we don't need to have 2 copies.
- */
public class SessionInfo {
private String sessionId;
@@ -29,6 +26,10 @@ public class SessionInfo {
private String weburl;
private String startTime;
+ public SessionInfo(){
+
+ }
+
public SessionInfo(String sessionId) {
this.sessionId = sessionId;
}
@@ -83,4 +84,16 @@ public class SessionInfo {
public void setWeburl(String weburl) {
this.weburl = weburl;
}
+
+ public void setSessionId(String sessionId) {
+ this.sessionId = sessionId;
+ }
+
+ public void setNoteId(String noteId) {
+ this.noteId = noteId;
+ }
+
+ public void setInterpreter(String interpreter) {
+ this.interpreter = interpreter;
+ }
}
diff --git a/zeppelin-interpreter/pom.xml b/zeppelin-interpreter/pom.xml
index c91721c..7894f01 100644
--- a/zeppelin-interpreter/pom.xml
+++ b/zeppelin-interpreter/pom.xml
@@ -52,6 +52,12 @@
<dependencies>
<dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>zeppelin-common</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
<groupId>io.atomix</groupId>
<artifactId>atomix</artifactId>
<version>${atomix.version}</version>
diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/InterpreterRestApi.java b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/InterpreterRestApi.java
index 54769be..7b12312 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/InterpreterRestApi.java
+++ b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/InterpreterRestApi.java
@@ -29,8 +29,8 @@ import org.apache.zeppelin.interpreter.InterpreterPropertyType;
import org.apache.zeppelin.interpreter.InterpreterSetting;
import org.apache.zeppelin.interpreter.InterpreterSettingManager;
import org.apache.zeppelin.notebook.AuthorizationService;
-import org.apache.zeppelin.notebook.socket.Message;
-import org.apache.zeppelin.notebook.socket.Message.OP;
+import org.apache.zeppelin.common.Message;
+import org.apache.zeppelin.common.Message.OP;
import org.apache.zeppelin.rest.message.InterpreterInstallationRequest;
import org.apache.zeppelin.rest.message.NewInterpreterSettingRequest;
import org.apache.zeppelin.rest.message.RestartInterpreterRequest;
diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/NotebookRestApi.java b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/NotebookRestApi.java
index 3009676..b00b091 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/NotebookRestApi.java
+++ b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/NotebookRestApi.java
@@ -75,7 +75,7 @@ import org.quartz.CronExpression;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.apache.zeppelin.notebook.socket.Message.MSG_ID_NOT_DEFINED;
+import static org.apache.zeppelin.common.Message.MSG_ID_NOT_DEFINED;
/**
* Rest api endpoint for the notebook.
diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/SessionManager.java b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/SessionManager.java
index 342374f..16cafa9 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/SessionManager.java
+++ b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/SessionManager.java
@@ -25,7 +25,7 @@ import org.apache.zeppelin.interpreter.remote.RemoteInterpreterProcess;
import org.apache.zeppelin.notebook.Note;
import org.apache.zeppelin.notebook.NoteInfo;
import org.apache.zeppelin.notebook.Notebook;
-import org.apache.zeppelin.rest.message.SessionInfo;
+import org.apache.zeppelin.common.SessionInfo;
import org.apache.zeppelin.user.AuthenticationInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/SessionRestApi.java b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/SessionRestApi.java
index 8c5b164..fb4728b 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/SessionRestApi.java
+++ b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/SessionRestApi.java
@@ -22,7 +22,7 @@ import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.zeppelin.annotation.ZeppelinApi;
import org.apache.zeppelin.interpreter.InterpreterSettingManager;
import org.apache.zeppelin.notebook.Notebook;
-import org.apache.zeppelin.rest.message.SessionInfo;
+import org.apache.zeppelin.common.SessionInfo;
import org.apache.zeppelin.server.JsonResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/service/NotebookService.java b/zeppelin-server/src/main/java/org/apache/zeppelin/service/NotebookService.java
index 3763345..2bc3c46 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/service/NotebookService.java
+++ b/zeppelin-server/src/main/java/org/apache/zeppelin/service/NotebookService.java
@@ -48,7 +48,7 @@ import org.apache.zeppelin.notebook.Paragraph;
import org.apache.zeppelin.notebook.AuthorizationService;
import org.apache.zeppelin.notebook.repo.NotebookRepoWithVersionControl;
import org.apache.zeppelin.notebook.scheduler.SchedulerService;
-import org.apache.zeppelin.notebook.socket.Message;
+import org.apache.zeppelin.common.Message;
import org.apache.zeppelin.rest.SessionManager;
import org.apache.zeppelin.rest.exception.BadRequestException;
import org.apache.zeppelin.rest.exception.ForbiddenException;
diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/socket/ConnectionManager.java b/zeppelin-server/src/main/java/org/apache/zeppelin/socket/ConnectionManager.java
index a36f895..ceec50e 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/socket/ConnectionManager.java
+++ b/zeppelin-server/src/main/java/org/apache/zeppelin/socket/ConnectionManager.java
@@ -31,7 +31,7 @@ import org.apache.zeppelin.notebook.NoteInfo;
import org.apache.zeppelin.notebook.NotebookImportDeserializer;
import org.apache.zeppelin.notebook.Paragraph;
import org.apache.zeppelin.notebook.AuthorizationService;
-import org.apache.zeppelin.notebook.socket.Message;
+import org.apache.zeppelin.common.Message;
import org.apache.zeppelin.notebook.socket.WatcherMessage;
import org.apache.zeppelin.user.AuthenticationInfo;
import org.apache.zeppelin.util.WatcherSecurityKey;
diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java b/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java
index 0a16c21..6c8e039 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java
+++ b/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java
@@ -72,8 +72,8 @@ import org.apache.zeppelin.notebook.Paragraph;
import org.apache.zeppelin.notebook.ParagraphJobListener;
import org.apache.zeppelin.notebook.AuthorizationService;
import org.apache.zeppelin.notebook.repo.NotebookRepoWithVersionControl.Revision;
-import org.apache.zeppelin.notebook.socket.Message;
-import org.apache.zeppelin.notebook.socket.Message.OP;
+import org.apache.zeppelin.common.Message;
+import org.apache.zeppelin.common.Message.OP;
import org.apache.zeppelin.rest.exception.ForbiddenException;
import org.apache.zeppelin.scheduler.Job.Status;
import org.apache.zeppelin.service.ConfigurationService;
@@ -96,7 +96,7 @@ import org.glassfish.hk2.api.ServiceLocator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.apache.zeppelin.notebook.socket.Message.MSG_ID_NOT_DEFINED;
+import static org.apache.zeppelin.common.Message.MSG_ID_NOT_DEFINED;
/**
* Zeppelin websocket service. This class used setter injection because all servlet should have
diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/socket/NotebookServerTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/socket/NotebookServerTest.java
index 48631bd..06816c4 100644
--- a/zeppelin-server/src/test/java/org/apache/zeppelin/socket/NotebookServerTest.java
+++ b/zeppelin-server/src/test/java/org/apache/zeppelin/socket/NotebookServerTest.java
@@ -61,8 +61,8 @@ import org.apache.zeppelin.notebook.Paragraph;
import org.apache.zeppelin.notebook.repo.NotebookRepoWithVersionControl;
import org.apache.zeppelin.notebook.scheduler.QuartzSchedulerService;
import org.apache.zeppelin.notebook.scheduler.SchedulerService;
-import org.apache.zeppelin.notebook.socket.Message;
-import org.apache.zeppelin.notebook.socket.Message.OP;
+import org.apache.zeppelin.common.Message;
+import org.apache.zeppelin.common.Message.OP;
import org.apache.zeppelin.rest.AbstractTestRestApi;
import org.apache.zeppelin.scheduler.Job;
import org.apache.zeppelin.service.ConfigurationService;
diff --git a/zeppelin-zengine/pom.xml b/zeppelin-zengine/pom.xml
index 7cd4368..a41add5 100644
--- a/zeppelin-zengine/pom.xml
+++ b/zeppelin-zengine/pom.xml
@@ -53,6 +53,12 @@
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>zeppelin-common</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>zeppelin-interpreter</artifactId>
<version>${project.version}</version>
</dependency>
diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/security/Authentication.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/security/Authentication.java
index a53479e..49e63a3 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/security/Authentication.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/security/Authentication.java
@@ -23,8 +23,8 @@ import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.lang3.StringUtils;
import org.apache.zeppelin.conf.ZeppelinConfiguration;
-import org.apache.zeppelin.notebook.socket.Message;
-import org.apache.zeppelin.notebook.socket.Message.OP;
+import org.apache.zeppelin.common.Message;
+import org.apache.zeppelin.common.Message.OP;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/Client.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/Client.java
index 87a1a8f..5a29823 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/Client.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/Client.java
@@ -16,8 +16,8 @@
*/
package org.apache.zeppelin.notebook.repo.zeppelinhub.websocket;
+import org.apache.zeppelin.common.Message;
import org.apache.zeppelin.conf.ZeppelinConfiguration;
-import org.apache.zeppelin.notebook.socket.Message;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/ZeppelinClient.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/ZeppelinClient.java
index 20b9e0f..6e90204 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/ZeppelinClient.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/ZeppelinClient.java
@@ -29,6 +29,7 @@ import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import org.apache.commons.lang3.StringUtils;
+import org.apache.zeppelin.common.Message;
import org.apache.zeppelin.conf.ZeppelinConfiguration;
import org.apache.zeppelin.notebook.AuthorizationService;
import org.apache.zeppelin.notebook.repo.zeppelinhub.model.UserTokenContainer;
@@ -38,8 +39,7 @@ import org.apache.zeppelin.notebook.repo.zeppelinhub.websocket.listener.Zeppelin
import org.apache.zeppelin.notebook.repo.zeppelinhub.websocket.protocol.ZeppelinhubMessage;
import org.apache.zeppelin.notebook.repo.zeppelinhub.websocket.scheduler.SchedulerService;
import org.apache.zeppelin.notebook.repo.zeppelinhub.websocket.scheduler.ZeppelinHeartbeat;
-import org.apache.zeppelin.notebook.socket.Message;
-import org.apache.zeppelin.notebook.socket.Message.OP;
+import org.apache.zeppelin.common.Message.OP;
import org.apache.zeppelin.util.WatcherSecurityKey;
import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.eclipse.jetty.websocket.api.Session;
diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/ZeppelinhubClient.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/ZeppelinhubClient.java
index e747900..3674e0e 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/ZeppelinhubClient.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/ZeppelinhubClient.java
@@ -34,8 +34,8 @@ import org.apache.zeppelin.notebook.repo.zeppelinhub.websocket.scheduler.Schedul
import org.apache.zeppelin.notebook.repo.zeppelinhub.websocket.scheduler.ZeppelinHubHeartbeat;
import org.apache.zeppelin.notebook.repo.zeppelinhub.websocket.session.ZeppelinhubSession;
import org.apache.zeppelin.notebook.repo.zeppelinhub.websocket.utils.ZeppelinhubUtils;
-import org.apache.zeppelin.notebook.socket.Message;
-import org.apache.zeppelin.notebook.socket.Message.OP;
+import org.apache.zeppelin.common.Message;
+import org.apache.zeppelin.common.Message.OP;
import org.apache.zeppelin.ticket.TicketContainer;
import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONException;
diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/listener/WatcherWebsocket.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/listener/WatcherWebsocket.java
index 9a356e3..2a6458d 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/listener/WatcherWebsocket.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/listener/WatcherWebsocket.java
@@ -18,8 +18,8 @@ package org.apache.zeppelin.notebook.repo.zeppelinhub.websocket.listener;
import org.apache.commons.lang3.StringUtils;
import org.apache.zeppelin.notebook.repo.zeppelinhub.websocket.ZeppelinClient;
-import org.apache.zeppelin.notebook.socket.Message;
-import org.apache.zeppelin.notebook.socket.Message.OP;
+import org.apache.zeppelin.common.Message;
+import org.apache.zeppelin.common.Message.OP;
import org.apache.zeppelin.notebook.socket.WatcherMessage;
import org.apache.zeppelin.ticket.TicketContainer;
import org.eclipse.jetty.websocket.api.Session;
diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/protocol/ZeppelinhubMessage.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/protocol/ZeppelinhubMessage.java
index aa14cd2..cd4763f 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/protocol/ZeppelinhubMessage.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/protocol/ZeppelinhubMessage.java
@@ -20,9 +20,10 @@ import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.apache.zeppelin.common.JsonSerializable;
+import org.apache.zeppelin.common.Message;
+import org.apache.zeppelin.common.Message.OP;
import org.apache.zeppelin.notebook.repo.zeppelinhub.websocket.Client;
-import org.apache.zeppelin.notebook.socket.Message;
-import org.apache.zeppelin.notebook.socket.Message.OP;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/utils/ZeppelinhubUtils.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/utils/ZeppelinhubUtils.java
index 2ab8d0e..83ca1ee 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/utils/ZeppelinhubUtils.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/websocket/utils/ZeppelinhubUtils.java
@@ -19,11 +19,12 @@ package org.apache.zeppelin.notebook.repo.zeppelinhub.websocket.utils;
import java.util.HashMap;
import org.apache.commons.lang3.StringUtils;
+import org.apache.zeppelin.common.Message;
import org.apache.zeppelin.notebook.repo.zeppelinhub.model.UserTokenContainer;
import org.apache.zeppelin.notebook.repo.zeppelinhub.websocket.ZeppelinhubClient;
import org.apache.zeppelin.notebook.repo.zeppelinhub.websocket.protocol.ZeppelinHubOp;
import org.apache.zeppelin.notebook.repo.zeppelinhub.websocket.protocol.ZeppelinhubMessage;
-import org.apache.zeppelin.notebook.socket.Message;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/socket/Message.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/socket/Message.java
deleted file mode 100644
index 9d6803e..0000000
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/socket/Message.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.zeppelin.notebook.socket;
-
-import com.google.gson.Gson;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import org.apache.zeppelin.common.JsonSerializable;
-import org.slf4j.Logger;
-/**
- * Zeppelin websocket massage template class.
- */
-public class Message implements JsonSerializable {
- /**
- * Representation of event type.
- */
- public static enum OP {
- GET_HOME_NOTE, // [c-s] load note for home screen
-
- GET_NOTE, // [c-s] client load note
- // @param id note id
-
- NOTE, // [s-c] note info
- // @param note serialized Note object
-
- PARAGRAPH, // [s-c] paragraph info
- // @param paragraph serialized paragraph object
-
- PROGRESS, // [s-c] progress update
- // @param id paragraph id
- // @param progress percentage progress
-
- NEW_NOTE, // [c-s] create new notebook
- DEL_NOTE, // [c-s] delete notebook
- // @param id note id
- REMOVE_FOLDER,
- MOVE_NOTE_TO_TRASH,
- MOVE_FOLDER_TO_TRASH,
- RESTORE_FOLDER,
- RESTORE_NOTE,
- RESTORE_ALL,
- EMPTY_TRASH,
- CLONE_NOTE, // [c-s] clone new notebook
- // @param id id of note to clone
- // @param name name for the cloned note
- IMPORT_NOTE, // [c-s] import notebook
- // @param object notebook
-
- CONVERT_NOTE_NBFORMAT, // [c-s] converting note to nbformat
- CONVERTED_NOTE_NBFORMAT, // [s-c] converting note to nbformat
-
- NOTE_UPDATE,
-
- NOTE_RENAME,
-
- UPDATE_PERSONALIZED_MODE, // [c-s] update personalized mode (boolean)
- // @param note id and boolean personalized mode value
-
- FOLDER_RENAME,
-
- RUN_PARAGRAPH, // [c-s] run paragraph
- // @param id paragraph id
- // @param paragraph paragraph content.ie. script
- // @param config paragraph config
- // @param params paragraph params
-
- COMMIT_PARAGRAPH, // [c-s] commit paragraph
- // @param id paragraph id
- // @param title paragraph title
- // @param paragraph paragraph content.ie. script
- // @param config paragraph config
- // @param params paragraph params
-
- CANCEL_PARAGRAPH, // [c-s] cancel paragraph run
- // @param id paragraph id
-
- MOVE_PARAGRAPH, // [c-s] move paragraph order
- // @param id paragraph id
- // @param index index the paragraph want to go
-
- INSERT_PARAGRAPH, // [c-s] create new paragraph below current paragraph
- // @param target index
-
- COPY_PARAGRAPH, // [c-s] create new para below current para as a copy of current para
- // @param target index
- // @param title paragraph title
- // @param paragraph paragraph content.ie. script
- // @param config paragraph config
- // @param params paragraph params
-
- EDITOR_SETTING, // [c-s] ask paragraph editor setting
- // @param paragraph text keyword written in paragraph
- // ex) spark.spark or spark
-
- COMPLETION, // [c-s] ask completion candidates
- // @param id
- // @param buf current code
- // @param cursor cursor position in code
-
- COMPLETION_LIST, // [s-c] send back completion candidates list
- // @param id
- // @param completions list of string
-
- LIST_NOTES, // [c-s] ask list of note
- RELOAD_NOTES_FROM_REPO, // [c-s] reload notes from repo
-
- NOTES_INFO, // [s-c] list of note infos
- // @param notes serialized List<NoteInfo> object
-
- PARAGRAPH_REMOVE,
- PARAGRAPH_CLEAR_OUTPUT, // [c-s] clear output of paragraph
- PARAGRAPH_CLEAR_ALL_OUTPUT, // [c-s] clear output of all paragraphs
- PARAGRAPH_APPEND_OUTPUT, // [s-c] append output
- PARAGRAPH_UPDATE_OUTPUT, // [s-c] update (replace) output
- PING,
- AUTH_INFO,
-
- ANGULAR_OBJECT_UPDATE, // [s-c] add/update angular object
- ANGULAR_OBJECT_REMOVE, // [s-c] add angular object del
-
- ANGULAR_OBJECT_UPDATED, // [c-s] angular object value updated,
-
- ANGULAR_OBJECT_CLIENT_BIND, // [c-s] angular object updated from AngularJS z object
-
- ANGULAR_OBJECT_CLIENT_UNBIND, // [c-s] angular object unbind from AngularJS z object
-
- LIST_CONFIGURATIONS, // [c-s] ask all key/value pairs of configurations
- CONFIGURATIONS_INFO, // [s-c] all key/value pairs of configurations
- // @param settings serialized Map<String, String> object
-
- CHECKPOINT_NOTE, // [c-s] checkpoint note to storage repository
- // @param noteId
- // @param checkpointName
-
- LIST_REVISION_HISTORY, // [c-s] list revision history of the notebook
- // @param noteId
- NOTE_REVISION, // [c-s] get certain revision of note
- // @param noteId
- // @param revisionId
- SET_NOTE_REVISION, // [c-s] set current notebook head to this revision
- // @param noteId
- // @param revisionId
- NOTE_REVISION_FOR_COMPARE, // [c-s] get certain revision of note for compare
- // @param noteId
- // @param revisionId
- // @param position
- APP_APPEND_OUTPUT, // [s-c] append output
- APP_UPDATE_OUTPUT, // [s-c] update (replace) output
- APP_LOAD, // [s-c] on app load
- APP_STATUS_CHANGE, // [s-c] on app status change
-
- LIST_NOTE_JOBS, // [c-s] get note job management information
- LIST_UPDATE_NOTE_JOBS, // [c-s] get job management information for until unixtime
- UNSUBSCRIBE_UPDATE_NOTE_JOBS, // [c-s] unsubscribe job information for job management
- // @param unixTime
- GET_INTERPRETER_BINDINGS, // [c-s] get interpreter bindings
- SAVE_INTERPRETER_BINDINGS, // [c-s] save interpreter bindings
- INTERPRETER_BINDINGS, // [s-c] interpreter bindings
-
- GET_INTERPRETER_SETTINGS, // [c-s] get interpreter settings
- INTERPRETER_SETTINGS, // [s-c] interpreter settings
- ERROR_INFO, // [s-c] error information to be sent
- SESSION_LOGOUT, // [s-c] error information to be sent
- WATCHER, // [s-c] Change websocket to watcher mode.
- PARAGRAPH_ADDED, // [s-c] paragraph is added
- PARAGRAPH_REMOVED, // [s-c] paragraph deleted
- PARAGRAPH_MOVED, // [s-c] paragraph moved
- NOTE_UPDATED, // [s-c] paragraph updated(name, config)
- RUN_ALL_PARAGRAPHS, // [c-s] run all paragraphs
- PARAGRAPH_EXECUTED_BY_SPELL, // [c-s] paragraph was executed by spell
- RUN_PARAGRAPH_USING_SPELL, // [s-c] run paragraph using spell
- PARAS_INFO, // [s-c] paragraph runtime infos
- SAVE_NOTE_FORMS, // save note forms
- REMOVE_NOTE_FORMS, // remove note forms
- INTERPRETER_INSTALL_STARTED, // [s-c] start to download an interpreter
- INTERPRETER_INSTALL_RESULT, // [s-c] Status of an interpreter installation
- COLLABORATIVE_MODE_STATUS, // [s-c] collaborative mode status
- PATCH_PARAGRAPH, // [c-s][s-c] patch editor text
- NOTE_RUNNING_STATUS, // [s-c] sequential run status will be change
- NOTICE // [s-c] Notice
- }
-
- // these messages will be ignored during the sequential run of the note
- private static final Set<OP> disabledForRunningNoteMessages = Collections
- .unmodifiableSet(new HashSet<>(Arrays.asList(
- OP.COMMIT_PARAGRAPH,
- OP.RUN_PARAGRAPH,
- OP.RUN_PARAGRAPH_USING_SPELL,
- OP.RUN_ALL_PARAGRAPHS,
- OP.PARAGRAPH_CLEAR_OUTPUT,
- OP.PARAGRAPH_CLEAR_ALL_OUTPUT,
- OP.INSERT_PARAGRAPH,
- OP.MOVE_PARAGRAPH,
- OP.COPY_PARAGRAPH,
- OP.PARAGRAPH_REMOVE,
- OP.MOVE_NOTE_TO_TRASH,
- OP.DEL_NOTE,
- OP.PATCH_PARAGRAPH)));
-
- private static final Gson gson = new Gson();
- public static final Message EMPTY = new Message(null);
-
- public OP op;
- public Map<String, Object> data = new HashMap<>();
- public String ticket = "anonymous";
- public String principal = "anonymous";
- public String roles = "";
-
- // Unique id generated from client side. to identify message.
- // When message from server is response to the client request
- // includes the msgId in response message, client can pair request and response message.
- // When server send message that is not response to the client request, set null;
- public String msgId = MSG_ID_NOT_DEFINED;
- public static String MSG_ID_NOT_DEFINED = null;
-
- public Message(OP op) {
- this.op = op;
- }
-
- public Message withMsgId(String msgId) {
- this.msgId = msgId;
- return this;
- }
-
- public Message put(String k, Object v) {
- data.put(k, v);
- return this;
- }
-
- public Object get(String k) {
- return data.get(k);
- }
-
- public static boolean isDisabledForRunningNotes(OP eventType) {
- return disabledForRunningNoteMessages.contains(eventType);
- }
-
- public <T> T getType(String key) {
- return (T) data.get(key);
- }
-
- public <T> T getType(String key, Logger LOG) {
- try {
- return getType(key);
- } catch (ClassCastException e) {
- LOG.error("Failed to get " + key + " from message (Invalid type). " , e);
- return null;
- }
- }
-
- @Override
- public String toString() {
- final StringBuilder sb = new StringBuilder("Message{");
- sb.append("data=").append(data);
- sb.append(", op=").append(op);
- sb.append('}');
- return sb.toString();
- }
-
- public String toJson() {
- return gson.toJson(this);
- }
-
- public static Message fromJson(String json) {
- return gson.fromJson(json, Message.class);
- }
-}