JSON RPC Adapter Project
Contents
- 1 Project Goal
- 2 Current Status
- 3 Project Phases
- 3.1 Phase 1: Design Proposal (Done)
- 3.2 Phase 2: Coding (Done)
- 3.3 Phase 3: Code Review 1 (Done)
- 3.4 Phase 4: Make Changes as per Code Review 1 (Done)
- 3.5 Phase 5: Code Review 2(Done)
- 3.6 Phase 6: Apply Changes per Code Review 2 (Done)
- 3.7 Phase 7: Code Review 3 (Done)
- 3.8 Phase 8: Apply Changes per Code Review 3
- 4 Links
Project Goal
Develope an adapter to expose NexJ Express Server objects using JSON
Current Status
Phase 10: Apply Changes as per Code Review 4
Ongoing...
Project Phases
Phase 1: Design Proposal (Done)
- Get requirements from NexJ
- Incorporate requirements from NexJ into Design of JSON Adapater
- Proposal proposal for review, make changes as by NexJ until approved
Phase 2: Coding (Done)
- JSONMarshaller
- Develop marshaller to transform NexJ Server Objects into JSON representation
- JSONUnmarshaller
- Develop an marshaller to transform JSON representation into NexJ Server Objects
- JSON Server
- Develop a JSON Server to expose NexJ Server objects in JSON
- Demo application that interacts with the Server using JSON
- Read Server Objects
- Update Server Objects
- Create Server objects
Phase 3: Code Review 1 (Done)
- Send patch to NexJ for review
Phase 4: Make Changes as per Code Review 1 (Done)
- Refactor JSONSever and TextServer to inherit from GenericCharacterStreamHTTPServer
- Optimize marshaling of nested Pair objects
- Rename variables and methods as per NexJ Developer's Guide
Phase 5: Code Review 2(Done)
- Send patch to NexJ for review
Phase 6: Apply Changes per Code Review 2 (Done)
- Minor Clean Up
- Removed unnecessary files
- Ensure all files use CRLF line-endings
- Add Servlet Mapping to cert/web.xml
- GenericCharacterStreamServer
- Use
abstract String getType()
for creating error codes - Use
getLogger()
for lazy initialization of logger
- Use
- TextServer
- Members should be protected
- JSONWriter
- Methods names should start with "write"
- JSONMarshaller
- Remove unused methods
- Remove visReferencable()</code>, do lookup in TransferObject Marshaller
- JSONUnmarshaller
- Use
JSONLookup
to find unmarshllers - Create
DetachableByteArrayOutputStream
- Change logic in
Base64Util.decode(String)
- Use
Base64Util.decode(String)
to decode 64 streams - Only TO unmarshaller should use
remove()
otherwise useget()
on m_jsonMap - Change instances of
Collection.toArray()
to usetoArray(new Object[size])
- Use
Phase 7: Code Review 3 (Done)
- Send patch to NexJ for review
Phase 8: Apply Changes per Code Review 3
Links
JSON
http://www.json.org