Difference between revisions of "Nexjexpress/JSON Adapter"
(Created page with '== JSON Adapter == === Goal=== Add ability to access NexJ Server objects as JSON via a RESTful web service <br/>'''current implementation''' <blockquote><pre> <?xml version="1.0"…') |
|||
(29 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | + | {{Admon/obsolete}} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | { | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | === | + | == Project Goal== |
− | === Phase 1: Design Proposal === | + | Develope an adapter to expose NexJ Express Server objects using JSON |
+ | |||
+ | == Current Status== | ||
+ | '''Phase 10: Apply Changes as per Code Review 4''' <br/> | ||
+ | Ongoing... | ||
+ | <br/> | ||
+ | |||
+ | ==Project Phases== | ||
+ | === Phase 1: Design Proposal (Done) === | ||
* Get requirements from NexJ | * Get requirements from NexJ | ||
* Incorporate requirements from NexJ into Design of JSON Adapater | * Incorporate requirements from NexJ into Design of JSON Adapater | ||
* Proposal proposal for review, make changes as by NexJ until approved | * Proposal proposal for review, make changes as by NexJ until approved | ||
− | + | ===Phase 2: Coding (Done) === | |
* JSONMarshaller | * JSONMarshaller | ||
** Develop marshaller to transform NexJ Server Objects into JSON representation | ** Develop marshaller to transform NexJ Server Objects into JSON representation | ||
Line 73: | Line 30: | ||
** Create Server objects | ** Create Server objects | ||
− | + | ===Phase 3: Code Review 1 (Done)=== | |
* Send patch to NexJ for review | * Send patch to NexJ for review | ||
− | + | ===Phase 4: Make Changes as per Code Review 1 (Done)=== | |
* Refactor JSONSever and TextServer to inherit from GenericCharacterStreamHTTPServer | * Refactor JSONSever and TextServer to inherit from GenericCharacterStreamHTTPServer | ||
* Optimize marshaling of nested Pair objects | * Optimize marshaling of nested Pair objects | ||
* Rename variables and methods as per NexJ Developer's Guide | * Rename variables and methods as per NexJ Developer's Guide | ||
− | ====Phase | + | ===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 <code>abstract String getType()</code> for creating error codes | ||
+ | ** Use <code>getLogger()</code> for lazy initialization of logger | ||
+ | * 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 <code>JSONLookup</code> to find unmarshllers | ||
+ | ** Create <code>DetachableByteArrayOutputStream</code> | ||
+ | ** Change logic in <code>Base64Util.decode(String)</code> | ||
+ | ** Use <code>Base64Util.decode(String)</code> to decode 64 streams | ||
+ | ** Only TO unmarshaller should use <code>remove()</code> otherwise use <code>get()</code> on m_jsonMap | ||
+ | ** Change instances of <code>Collection.toArray()</code> to use <code>toArray(new Object[size])</code> | ||
+ | |||
+ | ===Phase 7: Code Review 3 (Done) === | ||
* Send patch to NexJ for review | * Send patch to NexJ for review | ||
+ | ===Phase 8: Apply Changes per Code Review 3 (DONE)=== | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
− | + | :::'''The JSON Adapter Project has been successfully completed''' | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ---- | |
+ | |||
+ | ==Links== | ||
'''JSON''' <br/> | '''JSON''' <br/> | ||
http://www.json.org <br/> | http://www.json.org <br/> | ||
− | |||
− |
Latest revision as of 19:52, 26 January 2014
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 (DONE)
- 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 (DONE)
- The JSON Adapter Project has been successfully completed
Links
JSON
http://www.json.org