Change the signature of JobDAO.getApps() to return only the last upload time instead of all the previous upload time sorted in descending order.
Reason:
1. In SQL, returning all previous upload time in desc order is expensive. Group by appName first and then sort in individual group.
2. High level code (caller of JobDAO) doesn't need all previous upload time. They only need last upload time.
Add Slick and H2 database dependencies.
Work in progress. Start implementing JobSqlDAO. Create JARS table.
WIP. Initialize the root directory
Initialize the DB. Will parameterize the JDBC url later.
Create the JARS table if it doesn't exist.
Methods for storing jar files into file system.
Methods of inserting JarInfo and its jar into db
saveJar() API of JobDAO implementation
getApps() API implementation
Fetch the jar file back from the db
Implement retrieveJarFile() API
Add Configs table and implement JobDAO.saveJobConfig() and JobDAO.getJobConfigs().
Modified Jars table. Modified JobDAO jar related APIs to reflect table changes.
Create spark.jobserver.sqldao.jdbc.url key for JDBC URL.
JobSqlDAOSpec for unit testing. Also test saving and getting the jars.
Mark four APIs to be pending so that the code can be compiled and the unit tests can run.
Unit test of retrieving the jar file
Merged unit tests related to jar APIs in JobSqlDAO with my implement of job config tables. NO job config api tests.
JobSqlDAO implementation of saveJobInfo() and getJobInfos()