The aim of this article is to track the Infinispan specific accepted GSoC ideas for 2012:
JIRA | Title | Student | Mentor | Design wiki |
---|---|---|---|---|
ISPN-469 | Hot Rod client in .NET/C# | Sunimal | Mircea Markus | Design |
Below is table to track progress of Sunimal developing the Hot Rod client:
Week | Weekly Objective | Daily progress | Mentor comments | Meeting notes |
---|---|---|---|---|
Week 1 - 14th May | Implement Transport Layer and a simple operation (eg: Ping) | Monday: Studing hotrod protocol and existing java client
Tuesday: Studing Hotrod protocol and existing java client, Implementing classes that hold hotrod header patameters and hotrod opcodes, Started Implementing TCP Transport Layer.
Wednesday: Studing protocol furher. Specially the response frame.
Thursday: Researched on various testing tools I can use to test the library. (egL NUnit and Microsoft Visual Studio Integrated Unit Testing Framework)
Friday: Tried to start the server for testing (using python script) , but couldn't succeed.
Note: There was a little deviation from the plan as I did not focus on implementing operations. Instead I focussed more on | - Encoding/decoding variable length integers and longs would be something easy to get started with too.
- Python script startup issues could be due to relative path issues with regards to where the Infinispan configuration is located. Workarounds suggested on IRC and email.
- Think about connection pooling, and avoiding constant thread creation.
- GitHub repo for the .NET client created. | |
Week 2 - 21st May | - write a base unit test class that can start a hotrod server from dot net - implementing ping, put and get operations with a single-server unit tests | Monday:Transport Layer Implementation Tuesday: PING, PUT, GET Operations implementation Wednesday: PING, PUT, GET Operations implementation Thursday: PING, PUT, GET Operations implementation Friday: Debugging and eliminating build errors
Note: Got started with writing unit tests. Pushed to Git repo | ||
Week 3 - 28th May | - Add unit tests for put, get, ping - continue implemening operations: containsKey, getWithVersion, remove, putIfAbsent, replace, bulkGet, removeIfUnmodified, clean and stats | Monday: Learning about writing unit tests and writing unit tests for developed operations Tuesday: Implementing Remove, ContainsKey, PutIfAbsent Wednesday:Implementing Remove, ContainsKey, PutIfAbsent Thursday: Unit Testing Friday: Debugging | ||
Week 4 - 4st June | - bug fixing, implement rest of the operations | Monday: Solved some issues regarding transport layer by introducing a BufferedWriter instead of directly writing onto the stream Tuesday: Implemented Operations and unit tests Wednesday:Implemented Operations and unit tests Thursday:Implemented Operations and unit tests Friday:Implemented Operations and unit tests | ||
Week 5, 11th June | - code comment - add more unit tests - use the Infinispan.HotRodClient namespace - remove binaries from git - add .gitignore | Monday: Unit testing Tuesday: Debugging and changing namespaces Wednesday: Implemeting opearations, debugging, improving code quality, Added NLog Thursday:Implemeting opearations, debugging, improving code quality, Exception Writing Friday:Implemeting opearations, debugging, improving code quality, Exception writing | ||
Week 6, 18th June | - add logging - add exception handling - add support for serialization and a nicer user API - add programmatic configuration - start the server from command line to automate test running | Monday:Added logging Tuesday: Exception classes were written Wednesday:Added an XML config file which can be read programmatically Thursday:More unit tests added Friday: Testing the client wih unit testing | ||
Week 7, 25th June | Monday:Implementing Serialization and public API Tuesday:Implementing Serialization and public API Wednesday:Improving public API based on mentor feedback Friday:Testing with public API | |||
Week 8, 2nd July | Monday:Improving Serialization Component Wednesday:Testing the client with test cases Thursday:Research on Serialization bug Friday:Research on Serialization bug | |||
Week 9, 9th July | Monday:Correcting Serialization bug Tuesday:Adding XML xomments Wednesday:Adding XML Comments Thursday:Research on using Microsoft Sandcastle to generate helpfile Friday:Improving code quality by removing whitespaces, and restructuring code | |||
Week 10, 16th July | Monday:Creating Sample Application Tuesday:adding documentation comments Wednesday:Generating helpfile Thursday:Improving RemoteCacheImpl and RemoteCacheManager based on Mentor feedback Friday:Improving RemoteCacheImpl and RemoteCacheManager based on Mentor feedback | |||
Week 11, 23rd July | Monday:Reordering files in github and changing directory names according to naming convention |
Comments