1

Remove Session module

This commit is contained in:
2018-05-04 17:52:37 +03:00
parent fb4baec57f
commit 76512ee32e
11 changed files with 19 additions and 45 deletions

View File

@@ -1,6 +1,3 @@
dependencies { dependencies {
compile ratpack.dependency('jdbc-tx') compile ratpack.dependency('jdbc-tx')
compile ratpack.dependency('session')
} }

View File

@@ -16,7 +16,6 @@ import groovy.util.logging.Slf4j
import ratpack.guice.ConfigurableModule import ratpack.guice.ConfigurableModule
import ratpack.handling.HandlerDecorator import ratpack.handling.HandlerDecorator
import ratpack.server.ServerConfig import ratpack.server.ServerConfig
import ratpack.session.Session
@Slf4j @Slf4j
class DBTModule extends ConfigurableModule<DBTConfig> { class DBTModule extends ConfigurableModule<DBTConfig> {

View File

@@ -2,9 +2,7 @@ package com.devsoap.dbt.handlers
import com.devsoap.dbt.config.DBTConfig import com.devsoap.dbt.config.DBTConfig
import com.devsoap.dbt.data.BlockTransaction import com.devsoap.dbt.data.BlockTransaction
import com.fasterxml.jackson.databind.JsonNode
import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.node.ArrayNode
import groovy.util.logging.Slf4j import groovy.util.logging.Slf4j
import ratpack.exec.Promise import ratpack.exec.Promise
import ratpack.handling.Context import ratpack.handling.Context
@@ -43,7 +41,7 @@ class ExecutorHandler implements Handler {
return return
} }
executeCommands(ds, mapper, transaction).then { executeCommands(ds, transaction).then {
transaction.executed = true transaction.executed = true
// Notify ledger of result // Notify ledger of result
@@ -79,7 +77,7 @@ class ExecutorHandler implements Handler {
true true
} }
private static Promise<BlockTransaction> executeCommands(DataSource ds, ObjectMapper mapper, BlockTransaction transaction) { private static Promise<BlockTransaction> executeCommands(DataSource ds, BlockTransaction transaction) {
def txDs = Transaction.dataSource(ds) def txDs = Transaction.dataSource(ds)
def tx = Transaction.create { ds.connection } def tx = Transaction.create { ds.connection }
tx.wrap { tx.wrap {

View File

@@ -1,13 +1,11 @@
package com.devsoap.dbt.handlers package com.devsoap.dbt.handlers
import com.devsoap.dbt.services.LedgerService import com.devsoap.dbt.services.LedgerService
import groovy.util.logging.Log
import groovy.util.logging.Slf4j import groovy.util.logging.Slf4j
import ratpack.handling.Context import ratpack.handling.Context
import ratpack.handling.Handler import ratpack.handling.Handler
import ratpack.http.HttpMethod import ratpack.http.HttpMethod
import ratpack.jackson.Jackson import ratpack.jackson.Jackson
import ratpack.session.Session
@Slf4j @Slf4j
class LedgerGetTransactionHandler implements Handler { class LedgerGetTransactionHandler implements Handler {
@@ -18,8 +16,7 @@ class LedgerGetTransactionHandler implements Handler {
if(request.method == HttpMethod.GET && header('X-Transaction-Id').present) { if(request.method == HttpMethod.GET && header('X-Transaction-Id').present) {
def id = request.headers['X-Transaction-Id'].toString() def id = request.headers['X-Transaction-Id'].toString()
def ledgerService = ctx.get(LedgerService) def ledgerService = ctx.get(LedgerService)
def session = ctx.get(Session) ledgerService.fetchTransaction(id).then {
ledgerService.fetchTransaction(session, id).then {
if(it.present) { if(it.present) {
render(Jackson.json(it.get())) render(Jackson.json(it.get()))
} else { } else {

View File

@@ -6,7 +6,6 @@ import ratpack.handling.Context
import ratpack.handling.Handler import ratpack.handling.Handler
import ratpack.http.HttpMethod import ratpack.http.HttpMethod
import ratpack.jackson.Jackson import ratpack.jackson.Jackson
import ratpack.session.Session
@Slf4j @Slf4j
class LedgerListTransactionsHandler implements Handler { class LedgerListTransactionsHandler implements Handler {
@@ -15,10 +14,9 @@ class LedgerListTransactionsHandler implements Handler {
void handle(Context ctx) throws Exception { void handle(Context ctx) throws Exception {
ctx.with { ctx.with {
if(request.method == HttpMethod.GET && !header('X-Transaction-Id').present) { if(request.method == HttpMethod.GET && !header('X-Transaction-Id').present) {
def session = get(Session) log.info("Listing transactions...")
log.info("Listing transactions in session $session.id")
def ledgerService = get(LedgerService) def ledgerService = get(LedgerService)
ledgerService.allTransactions(session).then { ledgerService.allTransactions().then {
render(Jackson.json(it)) render(Jackson.json(it))
} }
} else { } else {

View File

@@ -2,18 +2,13 @@ package com.devsoap.dbt.handlers
import com.devsoap.dbt.config.DBTConfig import com.devsoap.dbt.config.DBTConfig
import com.devsoap.dbt.data.BlockTransaction import com.devsoap.dbt.data.BlockTransaction
import com.devsoap.dbt.data.LedgerData
import com.devsoap.dbt.services.LedgerService import com.devsoap.dbt.services.LedgerService
import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.databind.ObjectMapper
import groovy.util.logging.Log
import groovy.util.logging.Slf4j import groovy.util.logging.Slf4j
import ratpack.config.ConfigData
import ratpack.handling.Context import ratpack.handling.Context
import ratpack.handling.Handler import ratpack.handling.Handler
import ratpack.http.HttpMethod import ratpack.http.HttpMethod
import ratpack.jackson.Jackson import ratpack.jackson.Jackson
import ratpack.server.ServerConfig
import ratpack.session.Session
import javax.inject.Inject import javax.inject.Inject
@@ -36,15 +31,14 @@ class LedgerUpdateTransactionHandler implements Handler {
} }
def ledgerService = get(LedgerService) def ledgerService = get(LedgerService)
def session = get(Session)
request.body.then { body -> request.body.then { body ->
def mapper = get(ObjectMapper) def mapper = get(ObjectMapper)
def transaction = mapper.readValue(body.text, BlockTransaction) def transaction = mapper.readValue(body.text, BlockTransaction)
log.info("Recieved transaction $transaction.id") log.info("Recieved transaction $transaction.id")
ledgerService.fetchTransaction(session,transaction.id).then { ledgerService.fetchTransaction(transaction.id).then {
if(it.present) { if(it.present) {
log.info "Transaction $transaction.id exists, updating transaction" log.info "Transaction $transaction.id exists, updating transaction"
ledgerService.updateTransaction(session, transaction).then { ledgerService.updateTransaction(transaction).then {
log.info("Transaction $it updated in ledger") log.info("Transaction $it updated in ledger")
if(transaction.completed && !transaction.executed){ if(transaction.completed && !transaction.executed){
log.info("Sending transaction $transaction.id to executor at $config.executor.remoteUrl") log.info("Sending transaction $transaction.id to executor at $config.executor.remoteUrl")
@@ -55,7 +49,7 @@ class LedgerUpdateTransactionHandler implements Handler {
} }
} else { } else {
log.info("Creating new transaction") log.info("Creating new transaction")
ledgerService.newTransaction(session, transaction).then { ledgerService.newTransaction(transaction).then {
log.info("Transaction $it added to ledger") log.info("Transaction $it added to ledger")
if(transaction.completed && !transaction.executed){ if(transaction.completed && !transaction.executed){
log.info("Sending transaction $transaction.id to executor at $config.executor.remoteUrl") log.info("Sending transaction $transaction.id to executor at $config.executor.remoteUrl")

View File

@@ -5,29 +5,28 @@ import com.devsoap.dbt.data.LedgerData
import groovy.util.logging.Slf4j import groovy.util.logging.Slf4j
import ratpack.exec.Promise import ratpack.exec.Promise
import ratpack.service.Service import ratpack.service.Service
import ratpack.session.Session
@Slf4j @Slf4j
class LedgerService implements Service { class LedgerService implements Service {
private static final LedgerData data = new LedgerData() private static final LedgerData data = new LedgerData()
Promise<Optional<BlockTransaction>> fetchTransaction(Session session, String transactionId) { Promise<Optional<BlockTransaction>> fetchTransaction(String transactionId) {
Promise.value(Optional.ofNullable(data.transactions.find {it.id == transactionId})) Promise.value(Optional.ofNullable(data.transactions.find {it.id == transactionId}))
} }
Promise<List<BlockTransaction>> allTransactions(Session session) { Promise<List<BlockTransaction>> allTransactions() {
Promise.value(data.transactions) Promise.value(data.transactions)
} }
Promise<String> newTransaction(Session session, BlockTransaction transaction) { Promise<String> newTransaction(BlockTransaction transaction) {
log.info("Adding new transaction $transaction.id to session ${session.id}") log.info("Adding new transaction $transaction.id")
data.transactions.add(transaction) data.transactions.add(transaction)
Promise.value(transaction.id) Promise.value(transaction.id)
} }
Promise<String> updateTransaction(Session session, BlockTransaction transaction) { Promise<String> updateTransaction(BlockTransaction transaction) {
log.info("Updating transaction $transaction.id in session ${session.id}") log.info("Updating transaction $transaction.id")
data.transactions.removeAll {it.id == transaction.id} data.transactions.removeAll {it.id == transaction.id}
data.transactions.add(transaction) data.transactions.add(transaction)
Promise.value(transaction.id) Promise.value(transaction.id)

View File

@@ -5,7 +5,6 @@ dependencies {
runtime ratpack.dependency('h2') runtime ratpack.dependency('h2')
runtime ratpack.dependency('jdbc-tx') runtime ratpack.dependency('jdbc-tx')
runtime ratpack.dependency('session')
compile 'org.flywaydb:flyway-core:5.0.7' compile 'org.flywaydb:flyway-core:5.0.7'
runtime 'org.slf4j:slf4j-simple:1.7.25' runtime 'org.slf4j:slf4j-simple:1.7.25'

View File

@@ -1,9 +1,8 @@
import com.devsoap.dbt.DBTModule import com.devsoap.dbt.DBTModule
import com.devsoap.dbt.demo.DatabaseService
import com.devsoap.dbt.config.DBTConfig import com.devsoap.dbt.config.DBTConfig
import com.devsoap.dbt.demo.DatabaseService
import com.devsoap.dbt.services.TransactionManagerService import com.devsoap.dbt.services.TransactionManagerService
import org.h2.jdbcx.JdbcDataSource import org.h2.jdbcx.JdbcDataSource
import ratpack.session.SessionModule
import javax.sql.DataSource import javax.sql.DataSource
@@ -17,8 +16,6 @@ ratpack {
} }
bindings { bindings {
module SessionModule
module (DBTModule) { module (DBTModule) {
it.ledger.remoteUrl = 'http://localhost:5050/ledger' it.ledger.remoteUrl = 'http://localhost:5050/ledger'
it.executor.remoteUrl = 'http://localhost:5050/executor' it.executor.remoteUrl = 'http://localhost:5050/executor'
@@ -33,7 +30,7 @@ ratpack {
/** /**
* Consumer services * Consumer services
*/ */
get('frontend') { get('') {
get(TransactionManagerService).execute { transaction -> get(TransactionManagerService).execute { transaction ->
transaction.query("INSERT INTO LOGS(LOG_ID,LOG_VALUE) VALUES (${new Random().nextInt()}, 'HELLO')") transaction.query("INSERT INTO LOGS(LOG_ID,LOG_VALUE) VALUES (${new Random().nextInt()}, 'HELLO')")
}.then { }.then {
@@ -54,7 +51,7 @@ ratpack {
transaction.query("SELECT * FROM LOGS") transaction.query("SELECT * FROM LOGS")
transaction.complete() transaction.complete()
}).then { }).then {
render it.toString() redirect('/ledger')
} }
} }
} }

View File

@@ -2,14 +2,11 @@ apply plugin: 'org.flywaydb.flyway'
dependencies { dependencies {
testCompile project(':dbt-core') testCompile project(':dbt-core')
testRuntime project(':dbt-core')
testCompile ratpack.dependency('h2') testCompile ratpack.dependency('h2')
testCompile ratpack.dependency('jdbc-tx')
testRuntime ratpack.dependency('jdbc-tx') testCompile 'org.flywaydb:flyway-core:5.0.7'
testRuntime ratpack.dependency('session')
testRuntime 'org.flywaydb:flyway-core:5.0.7'
testRuntime 'org.slf4j:slf4j-simple:1.7.25' testRuntime 'org.slf4j:slf4j-simple:1.7.25'
testCompile ratpack.dependency('test') testCompile ratpack.dependency('test')

View File

@@ -4,7 +4,6 @@ import org.flywaydb.core.Flyway
import org.h2.jdbcx.JdbcDataSource import org.h2.jdbcx.JdbcDataSource
import ratpack.service.Service import ratpack.service.Service
import ratpack.service.StartEvent import ratpack.service.StartEvent
import ratpack.session.SessionModule
import javax.sql.DataSource import javax.sql.DataSource