Background:
This is an enterprise application integration application development tasking. The purpose of this task is to implement the first business process of our automated software integration and deployment plan.
Overview:
Java is the chosen language due to it's portability and cross-platform capabilities. The first milestone is to implement functionality into a GUI that will allow one of our software integrators to recursively search for an IP address and replace it with another IP address. Some of these IP addresses reside within a database which requires the app to possess the capability to connect to an oracle and/or a db2 database to execute an .sql file. The preferred methodology for the application to ingest the configuration information (db server addr, user, pass, and file extensions to be searched) is to read this information in from a static file *.conf etc.. Eventually, this information will be captured for site configuration management and backup/recovery purposes. Many other features will be added to this applciation which requires a high degree of scalability.
Functionality Expectations:
GUI must provide the capability to accept TWO IPV4 IP numerical value strings, one to search and one to replace the searched value. e.g. search for [login to view URL] and replace that with [login to view URL]
GUI shall allow the user to select a directory to start the "search and replace"
GUI must provide the capability to display the results of the "search and replace" i.e. C:/temp/files/[login to view URL] 4 IP addresses replaced or /var/opt/dir/[login to view URL] 4 IP addresses changed (line numbers optional)
GUI must provide the user with the optional capability to select an sql file from the host machine to execute against an oracle 11g or DB2 database.
GUI must display error messages when an invalid range is submitted
GUI shall provide input fields for the IP addresses with a format mask/template i.e... [login to view URL]
The Application shall output a textual report identify files that were modified and the sql script that was executed along with verbose output of end state
Files:
An executable jar which launches a GUI providing the funtionality identified above
Release Notes - Identify all functionality released with the version [login to view URL]
All Development files and notes including a description of the build and development environment (preferably net beans)
All source code and dependency files including libraries
A document describing any known issues for example. the application cannot determine a value such as a Version number 1.0.0.3a, from an IP address.
All Test scenarios used as well as files from before and after application execution
Code:
Must be Professional syntax using industry standards and best practices with detailed comments
Must be Scalable
Must be in English with no dialect
Must have associated JUnit tests
Acceptance Criteria:
The developer will provide the jar file which will be tested using the following scenario
Test Criteria:
The tester will add all applicable database information / connection/user/server/password...etc.. Files to be searched "*.txt,*.xml,*.XXX" to the configuration file
Tester will open the app and select C:/Temp/Documents and Settings/Desktop/Software-App_V-1.0.0.14/ and on a linux machine /var/opt/appName/
The test files will select directories containing .xml and .txt files which contain all possible ranges of IP values
[login to view URL] may contain any range within 1.0.0.1 - [login to view URL]
[login to view URL] may contain any range within 1.0.0.1 - [login to view URL]
The tester will select a random IP address within that range to use as a test value
The tester will enter invalid data to view the error handling
The tester will verify all actions done using a diff feature to ensure no other data manipulation occurs
The tester will select an SQL file to run against the db(s) previously configured
The tester will test the installation of the enterprise application after validation of script ex