Changes for page Remoting
Last modified by christoph_lechleitner@iteg_at on 2022-08-08 10.40:02
From 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
To version 2.1
edited by 5fbc055b7cc103006957e1ae
on 2012-06-15 03.23:57
on 2012-06-15 03.23:57
Change comment:
There is no comment for this version
Summary
-
Page properties (3 modified, 0 added, 0 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 -Remoting 1 +Remoting Home - Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki.c hristoph_lechleitner@iteg_at1 +XWiki.5fbc055b7cc103006957e1ae - Content
-
... ... @@ -1,9 +1,10 @@ 1 -= {{id name="RemotingHome-Introduction"/}}Introduction = 2 - 1 +(% style="" %) 3 3 Remoting is a framework issuing remote calls over TCP/IP with optional TLS support. It provides for callback patterns, broadcating and bean support and interoperates well with the [[spring framework>>url:http://www.springframework.org/||shape="rect"]] and [[OSGi>>url:http://www.osgi.org||shape="rect"]]. 4 4 4 +(% style="" %) 5 5 Furthermore, it offers two alternative wire protocols. One is based on java.io.ObjectOuputStream while the other protocol uses a highly optimized binary data stream, which additionally features C++ interoperability through the fancysock library. 6 6 7 +(% style="" %) 7 7 The source code can be checked out from the SVN repository located here: 8 8 9 9 {{code language="none"}} ... ... @@ -10,6 +10,7 @@ 10 10 http://svn.clazzes.org/svn/remoting 11 11 {{/code}} 12 12 14 +(% style="" %) 13 13 For manual installation you may download the .jar files from the maven repository: 14 14 15 15 {{code language="none"}} ... ... @@ -16,10 +16,14 @@ 16 16 http://maven.clazzes.org/org/clazzes/remoting/ 17 17 {{/code}} 18 18 19 -= {{id name="RemotingHome-Mavenintegration"/}}Maven integration = 21 +(% style="" %) 22 +=== {{id name="RemotingHome-Mavenintegration"/}}Maven integration === 20 20 24 +(% style="" %) 21 21 We recommend to build your project with [[Maven>>url:http://maven.apache.org/||shape="rect"]]. Just add the following snippets to your {{code language="none"}}pom.xml{{/code}} file: 22 22 27 + 28 + 23 23 {{code language="none"}} 24 24 <repository> 25 25 <id>clazzes.org</id> ... ... @@ -33,50 +33,8 @@ 33 33 </dependency> 34 34 {{/code}} 35 35 36 -= {{id name="RemotingHome-Sourcecodeandissuetracker"/}}Source code and issue tracker = 42 +(% style="" %) 43 +=== {{id name="RemotingHome-Troubleshooting"/}}Troubleshooting === 37 37 38 ---Subversion: [[http:~~/~~/svn.clazzes.org/svn/remoting>>url:http://svn.clazzes.org/svn/remoting||shape="rect"]]-- 39 - 40 ---Jira: [[REMOTING>>url:https://jira.clazzes.org/browse/REMOTING||shape="rect"]]-- 41 - 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 -\\ 45 +(% style="" %) 46 +If you have any problems please consult our [[bug database>>url:https://jira.clazzes.org/browse/REMOTING||shape="rect"]]. You may also find information in the forum and wiki.
- Confluence.Code.ConfluencePageClass[0]
-
- Id
-
... ... @@ -1,1 +1,1 @@ 1 -6592 581 +659261 - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://clazzes.atlassian.net/wiki/spaces/REM 1 +https://clazzes.atlassian.net/wiki/spaces/REM/pages/659261/Remoting Home