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.jar
ab> _
-
use
add
command to add new address entryab> add
name: xiaoming
mobile: 18888888888
address: xiaoming jia
address entry added
ab> _
-
use
search
command to get one or more address entriesab> search
by (name|mobile|address): name
name: xiaoming
xiaoming; 18888888888; xiaoming jia
one can search by
name
,mobile
oraddress
, regular expression can be used to query. if more than one entires are matched, they should be all displayed. -
use
remove
command to remove one or more address entriesab> delete
by (name|mobile|address): name
name: xiao.*
deleted
ab> _
one can remove by
name
,mobile
oraddress
, regular expression can be used to query. if more than one entries are matched, they should be all removed. -
get help
ab> !help
then 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> !quit
sh> _
-
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
tab
for indentation
- NEVER use
-
XML should be used as backend persistent storage
- it is only allowed to use JDK builtin DOM implementation
-
ExecutorService
should 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 undertarget
folder
-
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.