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.
Manage addresses by adding, searching and removing address entries.
For details, please refer to Feature Specification.
-
address entry data structure
-
name of the person
-
mobile number of the person
-
home address of the person
-
-
start interactive command line application
sh> java -jar ab.jarab> _ -
use
addcommand to add new address entryab> addname: xiaomingmobile: 18888888888address: xiaoming jiaaddress entry addedab> _ -
use
searchcommand to get one or more address entriesab> searchby (name|mobile|address): namename: xiaomingxiaoming; 18888888888; xiaoming jiaone can search by
name,mobileoraddress, regular expression can be used to query. if more than one entires are matched, they should be all displayed. -
use
removecommand to remove one or more address entriesab> deleteby (name|mobile|address): namename: xiao.*deletedab> _one can remove by
name,mobileoraddress, regular expression can be used to query. if more than one entries are matched, they should be all removed. -
get help
ab> !helpthen help message should be displayed, and when encoutering invalid command, help message should also be displayed.
add|search|delete|!help|!quit -
quit from the application
ab> !quitsh> _
-
project must be managed by Maven, latest version of v3
-
unit test is a must
- coverage should be higher than 85%, and Cobertura should be use to measure
-
javadoc for public interface/class/method is a must
-
both Java code and XML should be well-formatted
- NEVER use
tabfor indentation
- NEVER use
-
XML should be used as backend persistent storage
- it is only allowed to use JDK builtin DOM implementation
-
ExecutorServiceshould be used to handle commands -
Maven assembly plugin should be used to assemble the application
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
Fork me and use pull request to submit changes to develop branch. Anything unclear about the feature, fire issue.