Remove Session module
This commit is contained in:
@@ -1,6 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile ratpack.dependency('jdbc-tx')
|
compile ratpack.dependency('jdbc-tx')
|
||||||
compile ratpack.dependency('session')
|
|
||||||
}
|
}
|
||||||
@@ -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> {
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|||||||
@@ -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')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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')
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user