A command line application developed in Java programming language. The main purpose of this project is to act as a qualification test of mastering of Java.
- Fork me and use pull request to submit changes to
developbranch. Anything unclear about the feature, fire issue on github. - You should submit your source code and pom file
- Remember this is the only place to submit your code, not by email. Tip: do some basic learning of github
Browse and modify a JSON data structure with ls,cd,cat, add, remove
Let's say we have this address entry data structure in JSON
{"entries":{"lilei" :{"age": 27, "mobile" : "13700000000", "address" : "Earth somewhere" }, "hanmeimei" :{"age": 26, "mobile" : "13700000001", "address" : "Earth somewhere else" } } }start interactive command line application
sh> java -jar ab.jarab> _use
lscommand to list the items in current positionab> lsab> entriesuse
cdcommand to go to the entry like go to a directoryab> cd entriesab> lsab> lilei hanmeimeiuse
catcommand to display th item dataab> cat lileiab> "lilei" :{"age": 27, "mobile" : "13700000000", "address" : "Earth somewhere" }use
addcommand to add new address entry to JSONab> cd entriesab> addkey: xiaomingvalue:{"age": 28, "mobile" : "13700000002", "address" : "Earth somewhere too" }address entry addedab> lsab> lilei hanmeimei xiaomingNote: the key should be identical, if trying to add duplicated key, just display an error message
use
removecommand to remove one or more address entriesab> cd entriesab> removeplease give the key: xiaomingxiaoming was deleted from JSONNote: if trying to delete an non-exist key, just display an error message
get help
ab> !helpthen help message should be displayed, and when encoutering invalid command, help message should also be displayed.
quit from the application
ab> !quitsh> _
project must be managed by Maven, latest version of v3
unit test is a must
- because we want to see how you test your application
javadoc for public interface/class/method is a must
Java code should be well-formatted
- NEVER use
tabfor indentation
- NEVER use
JSON should be used as backend persistent storage
- You are welcome to use any JSON lib you want
ExecutorServiceshould be used to handle commandsMaven assembly plugin should be used to assemble the application as runable jar
mvn clean install, then everything should be ready, and one can find assembled application undertargetfolder
DO NOT store any IDE specific files into git repository
if there is any fault in this readme, please also fix it or submit an issue