diff --git a/dbt-core/build.gradle b/dbt-core/build.gradle index 97dc151..7c0734c 100644 --- a/dbt-core/build.gradle +++ b/dbt-core/build.gradle @@ -1,6 +1,3 @@ - - dependencies { compile ratpack.dependency('jdbc-tx') - compile ratpack.dependency('session') } \ No newline at end of file diff --git a/dbt-core/src/main/groovy/com/devsoap/dbt/DBTModule.groovy b/dbt-core/src/main/groovy/com/devsoap/dbt/DBTModule.groovy index 930ca31..dcfa4a5 100644 --- a/dbt-core/src/main/groovy/com/devsoap/dbt/DBTModule.groovy +++ b/dbt-core/src/main/groovy/com/devsoap/dbt/DBTModule.groovy @@ -16,7 +16,6 @@ import groovy.util.logging.Slf4j import ratpack.guice.ConfigurableModule import ratpack.handling.HandlerDecorator import ratpack.server.ServerConfig -import ratpack.session.Session @Slf4j class DBTModule extends ConfigurableModule { diff --git a/dbt-core/src/main/groovy/com/devsoap/dbt/handlers/ExecutorHandler.groovy b/dbt-core/src/main/groovy/com/devsoap/dbt/handlers/ExecutorHandler.groovy index e1c16d1..e8c130d 100644 --- a/dbt-core/src/main/groovy/com/devsoap/dbt/handlers/ExecutorHandler.groovy +++ b/dbt-core/src/main/groovy/com/devsoap/dbt/handlers/ExecutorHandler.groovy @@ -2,9 +2,7 @@ package com.devsoap.dbt.handlers import com.devsoap.dbt.config.DBTConfig import com.devsoap.dbt.data.BlockTransaction -import com.fasterxml.jackson.databind.JsonNode import com.fasterxml.jackson.databind.ObjectMapper -import com.fasterxml.jackson.databind.node.ArrayNode import groovy.util.logging.Slf4j import ratpack.exec.Promise import ratpack.handling.Context @@ -43,7 +41,7 @@ class ExecutorHandler implements Handler { return } - executeCommands(ds, mapper, transaction).then { + executeCommands(ds, transaction).then { transaction.executed = true // Notify ledger of result @@ -79,7 +77,7 @@ class ExecutorHandler implements Handler { true } - private static Promise executeCommands(DataSource ds, ObjectMapper mapper, BlockTransaction transaction) { + private static Promise executeCommands(DataSource ds, BlockTransaction transaction) { def txDs = Transaction.dataSource(ds) def tx = Transaction.create { ds.connection } tx.wrap { diff --git a/dbt-core/src/main/groovy/com/devsoap/dbt/handlers/LedgerGetTransactionHandler.groovy b/dbt-core/src/main/groovy/com/devsoap/dbt/handlers/LedgerGetTransactionHandler.groovy index 9ae559e..7e5eee7 100644 --- a/dbt-core/src/main/groovy/com/devsoap/dbt/handlers/LedgerGetTransactionHandler.groovy +++ b/dbt-core/src/main/groovy/com/devsoap/dbt/handlers/LedgerGetTransactionHandler.groovy @@ -1,13 +1,11 @@ package com.devsoap.dbt.handlers import com.devsoap.dbt.services.LedgerService -import groovy.util.logging.Log import groovy.util.logging.Slf4j import ratpack.handling.Context import ratpack.handling.Handler import ratpack.http.HttpMethod import ratpack.jackson.Jackson -import ratpack.session.Session @Slf4j class LedgerGetTransactionHandler implements Handler { @@ -18,8 +16,7 @@ class LedgerGetTransactionHandler implements Handler { if(request.method == HttpMethod.GET && header('X-Transaction-Id').present) { def id = request.headers['X-Transaction-Id'].toString() def ledgerService = ctx.get(LedgerService) - def session = ctx.get(Session) - ledgerService.fetchTransaction(session, id).then { + ledgerService.fetchTransaction(id).then { if(it.present) { render(Jackson.json(it.get())) } else { diff --git a/dbt-core/src/main/groovy/com/devsoap/dbt/handlers/LedgerListTransactionsHandler.groovy b/dbt-core/src/main/groovy/com/devsoap/dbt/handlers/LedgerListTransactionsHandler.groovy index de233df..de3ac98 100644 --- a/dbt-core/src/main/groovy/com/devsoap/dbt/handlers/LedgerListTransactionsHandler.groovy +++ b/dbt-core/src/main/groovy/com/devsoap/dbt/handlers/LedgerListTransactionsHandler.groovy @@ -6,7 +6,6 @@ import ratpack.handling.Context import ratpack.handling.Handler import ratpack.http.HttpMethod import ratpack.jackson.Jackson -import ratpack.session.Session @Slf4j class LedgerListTransactionsHandler implements Handler { @@ -15,10 +14,9 @@ class LedgerListTransactionsHandler implements Handler { void handle(Context ctx) throws Exception { ctx.with { if(request.method == HttpMethod.GET && !header('X-Transaction-Id').present) { - def session = get(Session) - log.info("Listing transactions in session $session.id") + log.info("Listing transactions...") def ledgerService = get(LedgerService) - ledgerService.allTransactions(session).then { + ledgerService.allTransactions().then { render(Jackson.json(it)) } } else { diff --git a/dbt-core/src/main/groovy/com/devsoap/dbt/handlers/LedgerUpdateTransactionHandler.groovy b/dbt-core/src/main/groovy/com/devsoap/dbt/handlers/LedgerUpdateTransactionHandler.groovy index 5efb193..180947f 100644 --- a/dbt-core/src/main/groovy/com/devsoap/dbt/handlers/LedgerUpdateTransactionHandler.groovy +++ b/dbt-core/src/main/groovy/com/devsoap/dbt/handlers/LedgerUpdateTransactionHandler.groovy @@ -2,18 +2,13 @@ package com.devsoap.dbt.handlers import com.devsoap.dbt.config.DBTConfig import com.devsoap.dbt.data.BlockTransaction -import com.devsoap.dbt.data.LedgerData import com.devsoap.dbt.services.LedgerService import com.fasterxml.jackson.databind.ObjectMapper -import groovy.util.logging.Log import groovy.util.logging.Slf4j -import ratpack.config.ConfigData import ratpack.handling.Context import ratpack.handling.Handler import ratpack.http.HttpMethod import ratpack.jackson.Jackson -import ratpack.server.ServerConfig -import ratpack.session.Session import javax.inject.Inject @@ -36,15 +31,14 @@ class LedgerUpdateTransactionHandler implements Handler { } def ledgerService = get(LedgerService) - def session = get(Session) request.body.then { body -> def mapper = get(ObjectMapper) def transaction = mapper.readValue(body.text, BlockTransaction) log.info("Recieved transaction $transaction.id") - ledgerService.fetchTransaction(session,transaction.id).then { + ledgerService.fetchTransaction(transaction.id).then { if(it.present) { log.info "Transaction $transaction.id exists, updating transaction" - ledgerService.updateTransaction(session, transaction).then { + ledgerService.updateTransaction(transaction).then { log.info("Transaction $it updated in ledger") if(transaction.completed && !transaction.executed){ log.info("Sending transaction $transaction.id to executor at $config.executor.remoteUrl") @@ -55,7 +49,7 @@ class LedgerUpdateTransactionHandler implements Handler { } } else { log.info("Creating new transaction") - ledgerService.newTransaction(session, transaction).then { + ledgerService.newTransaction(transaction).then { log.info("Transaction $it added to ledger") if(transaction.completed && !transaction.executed){ log.info("Sending transaction $transaction.id to executor at $config.executor.remoteUrl") diff --git a/dbt-core/src/main/groovy/com/devsoap/dbt/services/LedgerService.groovy b/dbt-core/src/main/groovy/com/devsoap/dbt/services/LedgerService.groovy index cfc7bf3..aeea44b 100644 --- a/dbt-core/src/main/groovy/com/devsoap/dbt/services/LedgerService.groovy +++ b/dbt-core/src/main/groovy/com/devsoap/dbt/services/LedgerService.groovy @@ -5,29 +5,28 @@ import com.devsoap.dbt.data.LedgerData import groovy.util.logging.Slf4j import ratpack.exec.Promise import ratpack.service.Service -import ratpack.session.Session @Slf4j class LedgerService implements Service { private static final LedgerData data = new LedgerData() - Promise> fetchTransaction(Session session, String transactionId) { + Promise> fetchTransaction(String transactionId) { Promise.value(Optional.ofNullable(data.transactions.find {it.id == transactionId})) } - Promise> allTransactions(Session session) { + Promise> allTransactions() { Promise.value(data.transactions) } - Promise newTransaction(Session session, BlockTransaction transaction) { - log.info("Adding new transaction $transaction.id to session ${session.id}") + Promise newTransaction(BlockTransaction transaction) { + log.info("Adding new transaction $transaction.id") data.transactions.add(transaction) Promise.value(transaction.id) } - Promise updateTransaction(Session session, BlockTransaction transaction) { - log.info("Updating transaction $transaction.id in session ${session.id}") + Promise updateTransaction(BlockTransaction transaction) { + log.info("Updating transaction $transaction.id") data.transactions.removeAll {it.id == transaction.id} data.transactions.add(transaction) Promise.value(transaction.id) diff --git a/dbt-demo/build.gradle b/dbt-demo/build.gradle index b2bfbfa..f6fc46c 100644 --- a/dbt-demo/build.gradle +++ b/dbt-demo/build.gradle @@ -5,7 +5,6 @@ dependencies { runtime ratpack.dependency('h2') runtime ratpack.dependency('jdbc-tx') - runtime ratpack.dependency('session') compile 'org.flywaydb:flyway-core:5.0.7' runtime 'org.slf4j:slf4j-simple:1.7.25' diff --git a/dbt-demo/src/ratpack/Ratpack.groovy b/dbt-demo/src/ratpack/Ratpack.groovy index 99c41b3..c2aaae6 100644 --- a/dbt-demo/src/ratpack/Ratpack.groovy +++ b/dbt-demo/src/ratpack/Ratpack.groovy @@ -1,9 +1,8 @@ import com.devsoap.dbt.DBTModule -import com.devsoap.dbt.demo.DatabaseService import com.devsoap.dbt.config.DBTConfig +import com.devsoap.dbt.demo.DatabaseService import com.devsoap.dbt.services.TransactionManagerService import org.h2.jdbcx.JdbcDataSource -import ratpack.session.SessionModule import javax.sql.DataSource @@ -17,8 +16,6 @@ ratpack { } bindings { - - module SessionModule module (DBTModule) { it.ledger.remoteUrl = 'http://localhost:5050/ledger' it.executor.remoteUrl = 'http://localhost:5050/executor' @@ -33,7 +30,7 @@ ratpack { /** * Consumer services */ - get('frontend') { + get('') { get(TransactionManagerService).execute { transaction -> transaction.query("INSERT INTO LOGS(LOG_ID,LOG_VALUE) VALUES (${new Random().nextInt()}, 'HELLO')") }.then { @@ -54,7 +51,7 @@ ratpack { transaction.query("SELECT * FROM LOGS") transaction.complete() }).then { - render it.toString() + redirect('/ledger') } } } diff --git a/dbt-test/build.gradle b/dbt-test/build.gradle index 056c09c..7ec9ac2 100644 --- a/dbt-test/build.gradle +++ b/dbt-test/build.gradle @@ -2,14 +2,11 @@ apply plugin: 'org.flywaydb.flyway' dependencies { testCompile project(':dbt-core') - testRuntime project(':dbt-core') testCompile ratpack.dependency('h2') + testCompile ratpack.dependency('jdbc-tx') - testRuntime ratpack.dependency('jdbc-tx') - testRuntime ratpack.dependency('session') - - testRuntime 'org.flywaydb:flyway-core:5.0.7' + testCompile 'org.flywaydb:flyway-core:5.0.7' testRuntime 'org.slf4j:slf4j-simple:1.7.25' testCompile ratpack.dependency('test') diff --git a/dbt-test/src/ratpack/Ratpack.groovy b/dbt-test/src/ratpack/Ratpack.groovy index 4697bbc..cfef01e 100644 --- a/dbt-test/src/ratpack/Ratpack.groovy +++ b/dbt-test/src/ratpack/Ratpack.groovy @@ -4,7 +4,6 @@ import org.flywaydb.core.Flyway import org.h2.jdbcx.JdbcDataSource import ratpack.service.Service import ratpack.service.StartEvent -import ratpack.session.SessionModule import javax.sql.DataSource