Changes for page Remoting
Last modified by christoph_lechleitner@iteg_at on 2022-08-08 10.40:02
From version 3.1
edited by christoph_lechleitner@iteg_at
on 2013-02-02 07.28:17
on 2013-02-02 07.28:17
Change comment:
svn and jira links
To version 6.1
edited by christoph_lechleitner@iteg_at
on 2022-08-08 10.40:02
on 2022-08-08 10.40:02
Change comment:
JSON Serialization and Deserialization behaviour & requirements
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 -Remoting Home1 +Remoting - Content
-
... ... @@ -35,8 +35,48 @@ 35 35 36 36 = {{id name="RemotingHome-Sourcecodeandissuetracker"/}}Source code and issue tracker = 37 37 38 -Subversion: [[http:~~/~~/svn.clazzes.org/svn/remoting>>url:http://svn.clazzes.org/svn/remoting||shape="rect"]] 38 +--Subversion: [[http:~~/~~/svn.clazzes.org/svn/remoting>>url:http://svn.clazzes.org/svn/remoting||shape="rect"]]-- 39 39 40 -Jira: [[REMOTING>>url:https://jira.clazzes.org/browse/REMOTING||shape="rect"]] 40 +--Jira: [[REMOTING>>url:https://jira.clazzes.org/browse/REMOTING||shape="rect"]]-- 41 41 42 - 42 +Git-Mirrors: See [[https:~~/~~/git.clazzes.org/>>url:https://git.clazzes.org/||shape="rect"]], search for "{{code language="none"}}java-libs/rpc{{/code}}". 43 + 44 += {{id name="RemotingHome-ProtocolandClient/ServerSupport"/}}Protocol and Client / Server Support = 45 + 46 +== {{id name="RemotingHome-BinaryProtocol"/}}Binary Protocol == 47 + 48 +The binary protocol that is based on but not quite equal to Java serialization. 49 + 50 +Both Java and C++ can act as client and server for this variant. 51 + 52 +=== {{id name="RemotingHome-BinaryProtocolC++"/}}Binary Protocol C++ === 53 + 54 +For C++ see {{code language="none"}}fancysock3-dev{{/code}} from the {{code language="none"}}*-fancylibs-3{{/code}} repos on [[deb.clazzes.org>>url:https://deb.clazzes.org/||shape="rect"]] and [[rpm.clazzes.org>>url:https://rpm.clazzes.org/||shape="rect"]]. 55 + 56 +As as starting point look at class {{code language="none"}}Fancy::Sock::RemotingConnectionHandlerFactory{{/code}} (server) and {{code language="none"}}Fancy::Sock::RemotingClientPool{{/code}} (client). 57 + 58 +== {{id name="RemotingHome-JSONProtocol"/}}JSON Protocol == 59 + 60 +The JSON protocol is based on JSON-RPC-2.0 and supported by a server helper for C++, and there are examples for JavaScript clients (but nothing public yet). 61 + 62 +=== {{id name="RemotingHome-JSONProtocolC++"/}}JSON Protocol C++ === 63 + 64 +For C++ see {{code language="none"}}fancysock3-dev{{/code}} from the {{code language="none"}}*-fancylibs-3{{/code}} repos on [[deb.clazzes.org>>url:https://deb.clazzes.org/||shape="rect"]] and [[rpm.clazzes.org>>url:https://rpm.clazzes.org/||shape="rect"]]. 65 + 66 +As as starting point look at class {{code language="none"}}Fancy::Sock::HttpD::JsonRpc2RequestHandler{{/code}}. 67 + 68 +=== {{id name="RemotingHome-JSONProtocolJavaScript"/}}JSON Protocol JavaScript === 69 + 70 +There is no public example from clazzes.org yet, but it's basically JSON-RPC-2.0. 71 + 72 +=== {{id name="RemotingHome-JSONSerializationandDeserializationbehaviour&requirements(ofC++backend)"/}}JSON Serialization and Deserialization behaviour & requirements (of C++ backend) === 73 + 74 +If an object is serialized all fields are serialized. Addtionally there's a field "{{code language="none"}}serialID{{/code}}" that's basically the fully qualified class name of the Java data classe ("POJO"), like {{code language="none"}}org.clazzes.foobar.api.data.MyPojo{{/code}}. All complex fields can be {{code language="none"}}null{{/code}}, including Strings. 75 + 76 +When deserializing a complex top-level object that field "{{code language="none"}}serialID{{/code}}" is required to understand the contained type. 77 + 78 +\\ 79 + 80 +\\ 81 + 82 +\\
- Confluence.Code.ConfluencePageClass[0]
-
- Id
-
... ... @@ -1,1 +1,1 @@ 1 -6592 671 +659258 - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://clazzes.atlassian.net/wiki/spaces/REM /pages/659267/Remoting Home1 +https://clazzes.atlassian.net/wiki/spaces/REM