Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

...

  • Loading branch information...
commit a70c24f0666b6eee584b4d0132562b5c24f53226 1 parent 9e41a2e
@leonlee authored
Showing with 266 additions and 211 deletions.
  1. +1 −0  build.gradle
  2. +22 −0 modules/sys-auth/src/main/groovy/org/riderzen/ogs/auth/RegisterProcessor.groovy
  3. +6 −8 modules/sys-auth/src/main/groovy/org/riderzen/ogs/auth/User.groovy
  4. +2 −1  modules/sys-auth/src/main/groovy/sys-auth.groovy
  5. +3 −3 platform/common/src/main/groovy/org/riderzen/ogs/common/Address.groovy
  6. +2 −13 platform/common/src/main/groovy/org/riderzen/ogs/common/BaseModel.groovy
  7. +6 −1 platform/common/src/main/groovy/org/riderzen/ogs/common/Tools.groovy
  8. +0 −58 platform/protocol/src/main/groovy/org/riderzen/ogs/protocol/ProtocolParser.groovy
  9. +1 −1  platform/protocol/src/main/resources/mod.json
  10. +45 −0 platform/protocol/src/main/resources/protocol-parser.groovy
  11. +15 −4 platform/protocol/src/test/groovy/org/riderzen/ogs/protocol/ProtocolParserTest.groovy
  12. +2 −2 platform/protocol/src/test/resources/deployer.js
  13. +0 −90 platform/tcp-server/src/main/groovy/org/riderzen/ogs/tcp/TcpServer.groovy
  14. +1 −1  platform/tcp-server/src/main/resources/mod.json
  15. +56 −0 platform/tcp-server/src/main/resources/tcp-server.groovy
  16. +0 −29 platform/tcp-server/src/main/scripts/tcpServer.groovy
  17. +74 −0 platform/tcp-server/src/test/groovy/org/riderzen/ogs/protocol/TcpServerTest.groovy
  18. +9 −0 platform/tcp-server/src/test/resources/deployer.js
  19. +13 −0 platform/tcp-server/src/test/resources/langs.properties
  20. +8 −0 platform/tcp-server/src/test/resources/log4j.properties
View
1  build.gradle
@@ -93,6 +93,7 @@ configure(subprojects.findAll { project -> !emptyProjects.find {it == project.na
systemProperty 'vertx.test.timeout', 15
systemProperty 'vertx.mods', "$projectDir/build/tmp/mod-test"
systemProperty 'vertx.version', "$project.version"
+ systemProperty 'org.vertx.logger-delegate-factory-class-name', "org.vertx.java.core.logging.impl.Log4jLogDelegateFactory"
// Show output
testLogging.showStandardStreams = true
View
22 modules/sys-auth/src/main/groovy/org/riderzen/ogs/auth/RegisterProcessor.groovy
@@ -0,0 +1,22 @@
+package org.riderzen.ogs.auth
+
+import org.riderzen.ogs.common.Address
+import org.riderzen.ogs.common.EventHelper
+import org.riderzen.ogs.common.Tools
+
+/**
+ * User: Leon Lee <mail.lgq@gmail.com>
+ * Date: 12-12-21
+ */
+class RegisterProcessor{
+ EventHelper eh
+
+ def process() {
+ if (User.populate(eh.param)) {
+ eh.newProcess(1)
+ eh.eb.send(Address.platJdbc.val, this) { message ->
+ eh.sendOK(user.toJson())
+ }
+ }
+ }
+}
View
14 modules/sys-auth/src/main/groovy/org/riderzen/ogs/auth/User.groovy
@@ -19,7 +19,7 @@ class User extends BaseModel {
@MaxLength(64)
String username
@MinLength(6)
- @MaxLength(32)
+ @MaxLength(64)
String password
@NotNull
UserType type
@@ -35,12 +35,12 @@ class User extends BaseModel {
Long lastNodeId
Long lastLoginOn
- static register(EventHelper eh) {
- def param = eh.param
-
+ static User populate(param) {
User user = new User()
user.username = param.username
- user.password = param.password
+ if (param?.password) {
+ user.password = Tools.encrypt(param.password)
+ }
user.email = param.email
user.mobile = param.mobile
user.deviceToken = param.deviceToken
@@ -50,9 +50,7 @@ class User extends BaseModel {
user.emailBindOn = Tools.currentTime()
}
- user.save(eh) {
- user.password = Tools.encrypt(user.password)
- }
+ validate() ? user : null
}
}
View
3  modules/sys-auth/src/main/groovy/sys-auth.groovy
@@ -1,3 +1,4 @@
+import org.riderzen.ogs.auth.RegisterProcessor
import org.riderzen.ogs.auth.User
import org.riderzen.ogs.common.Address
import org.riderzen.ogs.common.EventHelper
@@ -17,6 +18,6 @@ logger.info "starting sys-auth"
eb.registerHandler(config?.address ?: Address.sysAuthRegister.val) { Message message ->
logger.debug("received message ${message.body}")
def eh = new EventHelper(container: container, vertx: vertx, message: message)
- User user = User.register(eh)
+ new RegisterProcessor(eh: eh).process()
}
View
6 platform/common/src/main/groovy/org/riderzen/ogs/common/Address.groovy
@@ -5,9 +5,9 @@ package org.riderzen.ogs.common
* Date: 12-12-16
*/
enum Address {
- appProtocol("org.riderzen.ogs.protocol"),
- sysAuthRegister("org.riderzen.ogs.mod.sys-auth.register"),
- platJdbc("org.riderzen.ogs.plat.jdbc")
+ appProtocol("ogs.protocol"),
+ sysAuthRegister("ogs.mod.sys-auth.register"),
+ platJdbc("ogs.plat.jdbc")
public String val;
View
15 platform/common/src/main/groovy/org/riderzen/ogs/common/BaseModel.groovy
@@ -10,8 +10,6 @@ import java.util.concurrent.atomic.AtomicInteger
* Date: 12-12-7
*/
class BaseModel {
- AtomicInteger eventCounter = new AtomicInteger(0)
-
@NotNull
Long id
@NotNull
@@ -24,6 +22,7 @@ class BaseModel {
static def transientAttributes = ['class', 'metaClass', 'transientAttributes', 'tableName']
BaseModel() {
+
}
static def excludeAttributes(fields) {
@@ -40,7 +39,7 @@ class BaseModel {
propMap
}
- def save(EventHelper eh, afterValidate = null, afterSave = null) {
+ def validate() {
if (!id){
id = DBHelper.nextID()
createdOn = Tools.currentTime()
@@ -48,16 +47,6 @@ class BaseModel {
vsn = 0
}
- if (validate()) {
- afterValidate?.call()
- eh.newProcess(1)
- eh.eb.send(Address.platJdbc.val, this) { message ->
- eh.sendOK(this)
- }
- }
- }
-
- def validate() {
Validator validator = new Validator()
def errors = validator.validate(this)
if (errors) {
View
7 platform/common/src/main/groovy/org/riderzen/ogs/common/Tools.groovy
@@ -3,6 +3,7 @@ package org.riderzen.ogs.common
import hirondelle.date4j.DateTime
import org.apache.commons.codec.digest.DigestUtils
import org.apache.commons.lang3.LocaleUtils
+import org.vertx.java.core.logging.impl.LoggerFactory
/**
* User: Leon Lee <mail.lgq@gmail.com>
@@ -12,7 +13,7 @@ class Tools {
private static ResourceBundle bundle
static final String MESSAGES = "messages"
- static logger = EventHelper.container.logger
+ static logger = LoggerFactory.getLogger(Tools.class)
static salt = "sJK" + "Vn3I" + "GFwj" + "dty37"
static encrypt(message) {
@@ -68,4 +69,8 @@ class Tools {
}
}
}
+
+ static def nextRid() {
+ UUID.randomUUID().toString();
+ }
}
View
58 platform/protocol/src/main/groovy/org/riderzen/ogs/protocol/ProtocolParser.groovy
@@ -1,58 +0,0 @@
-package org.riderzen.ogs.protocol
-
-import org.msgpack.MessagePack
-import org.msgpack.unpacker.Unpacker
-import org.vertx.java.busmods.BusModBase
-import org.vertx.java.core.Handler
-import org.vertx.java.core.buffer.Buffer
-import org.vertx.java.core.eventbus.Message
-import org.vertx.java.core.parsetools.RecordParser
-import com.google.gson.Gson
-import org.riderzen.ogs.common.Address
-
-/**
- * User: Leon Lee <mail.lgq@gmail.com>
- * Created On: 12-12-11
- */
-class ProtocolParser extends BusModBase {
- String address;
- RecordParser parser;
-
- @Override
- void start() {
- super.start()
-
- init()
- }
-
- def init() {
- address = getOptionalStringConfig("address", Address.appProtocol.val)
-
- def msgHandler = { Buffer message ->
-
- }
-
- eb.registerHandler(address, new Handler<Message<Buffer>>() {
- @Override
- void handle(Message<Buffer> event) {
- Buffer message = event.body
- logger.debug("received message length ${message.length()}")
- println("received message length ${message.length()}")
-
- MessagePack messagePack = new MessagePack()
- Unpacker unpacker = messagePack.createUnpacker(new ByteArrayInputStream(message.getBytes()))
- String messagString = unpacker.read(String.class)
- Gson gson = new Gson()
- Object[] tokens = gson.fromJson(messagString, Object[].class)
-
- logger.debug("message: $gson")
- println("message: $tokens")
-
- Buffer result = new Buffer("OK".getBytes())
- event.reply(result)
-
- logger.debug("result was sent")
- }
- })
- }
-}
View
2  platform/protocol/src/main/resources/mod.json
@@ -1,3 +1,3 @@
{
- "main": "org.riderzen.ogs.protocol.ProtocolParser"
+ "main": "protocol-parser.groovy"
}
View
45 platform/protocol/src/main/resources/protocol-parser.groovy
@@ -0,0 +1,45 @@
+import com.google.gson.Gson
+import org.msgpack.MessagePack
+import org.msgpack.packer.Packer
+import org.msgpack.unpacker.Unpacker
+import org.riderzen.ogs.common.Address
+import org.riderzen.ogs.common.Tools
+import org.vertx.groovy.core.buffer.Buffer
+import org.vertx.groovy.core.eventbus.Message
+
+/**
+ * User: Leon Lee <mail.lgq@gmail.com>
+ * Date: 12-12-21
+ */
+
+def config = container.config
+def eb = vertx.eventBus
+def logger = container.logger
+
+logger.info "starting protocol-parser"
+
+eb.registerHandler(config?.address ?: Address.appProtocol.val) { Message rawMessage ->
+ Buffer buffer = rawMessage.body as Buffer
+
+ MessagePack msgpack = new MessagePack()
+ Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(buffer.getBytes()))
+ String messageJson = unpacker.read(String.class)
+
+ Gson gson = new Gson()
+ Map message = gson.fromJson(messageJson, Map.class)
+ def rid = Tools.nextRid()
+
+ logger.debug "received rid:${rid} endpoint:${message.endpoint} params:${message.params}"
+ println "received rid:${rid} endpoint:${message.endpoint} params:${message.params}"
+
+ eb.send(message.endpoint, gson.toJson([rid: rid, params: message.params])) { Message reply ->
+ logger.debug "received reply ${reply.body}"
+ println "received reply ${reply.body}"
+
+ ByteArrayOutputStream out = new ByteArrayOutputStream()
+ Packer packer = msgpack.createPacker(out)
+ packer.write((String) reply.body)
+
+ reply.reply new Buffer(out.toByteArray())
+ }
+}
View
19 platform/protocol/src/test/groovy/org/riderzen/ogs/protocol/ProtocolParserTest.groovy
@@ -1,14 +1,16 @@
package org.riderzen.ogs.protocol
+import com.google.gson.Gson
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.msgpack.MessagePack
import org.msgpack.packer.Packer
+import org.riderzen.ogs.common.Address
import org.slf4j.Logger
import org.slf4j.LoggerFactory
+import org.vertx.groovy.core.buffer.Buffer
import org.vertx.java.core.Handler
-import org.vertx.java.core.buffer.Buffer
import org.vertx.java.core.eventbus.Message
import org.vertx.java.test.TestVerticle
import org.vertx.java.test.VertxConfiguration
@@ -22,7 +24,7 @@ import org.vertx.java.test.junit.VertxJUnit4ClassRunner
@RunWith(VertxJUnit4ClassRunner.class)
@VertxConfiguration
//@TestModule(name = 'org.riderzen.ogs.protocol-v1.0')
-@TestVerticle(main = 'deployer.js',worker = true)
+@TestVerticle(main = 'deployer.js')
class ProtocolParserTest extends VertxTestBase {
static Logger logger = LoggerFactory.getLogger(ProtocolParserTest.class)
long timeout = 10L
@@ -35,12 +37,21 @@ class ProtocolParserTest extends VertxTestBase {
@Test
def void testModulePP() {
+ sleep(2000)
MessagePack messagePack = new MessagePack()
Packer packer = messagePack.createBufferPacker()
- packer.write("['hello', [1, 2, 3, 'world']]")
+ packer.write("{endpoint: 'test.mpp', params: {id:1, name: 'leon'}}")
- getVertx().eventBus().send("org.riderzen.ogs.protocol", new Buffer(packer.toByteArray()), new Handler<Message<Buffer>>() {
+ getVertx().eventBus().registerHandler("test.mpp", new Handler<Message<Map>>() {
+ @Override
+ void handle(Message<Map> event) {
+ logger.debug event.body
+ event.reply(new Gson().toJson([status: 'ok', data: 'test']))
+ }
+ })
+
+ getVertx().eventBus().send('ogs.protocol', new Buffer(packer.toByteArray()), new Handler<Message<Buffer>>() {
@Override
void handle(Message<Buffer> event) {
logger.debug("result: ${event.body.toString()}")
View
4 platform/protocol/src/test/resources/deployer.js
@@ -4,6 +4,6 @@ var config = {
};
-vertx.deployModule('org.riderzen.ogs.protocol-v1.0', config, 1, function(id) {
- console.log('deployed module: org.riderzen.ogs.protocol-v1.0 with id:' + id);
+vertx.deployModule('org.riderzen.ogs.platform.protocol-v1.0', config, 1, function(id) {
+ console.log('deployed module: org.riderzen.ogs.platform.protocol-v1.0 with id:' + id);
});
View
90 platform/tcp-server/src/main/groovy/org/riderzen/ogs/tcp/TcpServer.groovy
@@ -1,90 +0,0 @@
-package org.riderzen.ogs.tcp
-
-import org.msgpack.MessagePack
-import org.msgpack.packer.Packer
-import org.vertx.java.busmods.BusModBase
-import org.riderzen.ogs.common.Address
-import org.vertx.java.core.buffer.Buffer
-
-/**
- * User: Leon Lee <mail.lgq@gmail.com>
- * Date: 12-12-7
- */
-class TcpServer extends BusModBase {
- def server = null
- def host
- def port
- def tcpNoDelay
- def sendBufferSize
- def receiveBufferSize
- def tcpKeepAlive
- def reuseAddress
- def soLinger
- def trafficClass
- def backlog
-
- def onConnected = { sock ->
- sock.dataHandler { buffer ->
- logger.debug("received ${buffer.lenght} bytes of data")
- eb.send(Address.appProtocol.val, buffer) { message ->
- MessagePack msgpack = new MessagePack()
- def stream = new ByteArrayOutputStream()
- Packer packer = msgpack.createPacker(stream)
- packer.write(message.body.toString().getBytes())
- sock << new Buffer(stream.toByteArray())
- }
- }
- sock.exceptionHandler { e ->
- logger.error("caught error", e)
- }
- }
-
- @Override
- void start() {
- super.start()
-
- initConfig()
- initServer()
- initEvent()
- server.listen(port, host)
- }
-
- def initConfig() {
- host = getOptionalStringConfig("host", "0.0.0.0")
- port = getOptionalIntConfig("port", 6543)
- tcpNoDelay = getOptionalBooleanConfig("tcpNoDelay", false)
- sendBufferSize = getOptionalIntConfig("sendBufferSize", 8192)
- receiveBufferSize = getOptionalIntConfig("receiveBufferSize", 8192)
- tcpKeepAlive = getOptionalBooleanConfig("tcpKeepAlive", true)
- reuseAddress = getOptionalBooleanConfig("reuseAddress", true)
- soLinger = getOptionalIntConfig("soLinger", -1)
- trafficClass = getOptionalIntConfig("trafficClass", -1)
- backlog = getOptionalIntConfig("backlog", -1)
- }
-
- def initServer() {
- logger.info("initializing server with config: $config")
-
- server = vertx.createNetServer()
- server.setTCPNoDelay(tcpNoDelay)
- server.setSendBufferSize(sendBufferSize)
- server.setReceiveBufferSize(receiveBufferSize)
- server.setTCPKeepAlive(tcpKeepAlive)
- server.setReuseAddress(reuseAddress)
- if (soLinger > 0)
- server.setSoLinger(soLinger)
- if (trafficClass >= 0 && trafficClass <= 255)
- server.setTrafficClass(trafficClass)
- if (backlog > 0)
- server.setAcceptBacklog(backlog)
-
- server.connectHandler(onConnected)
- }
-
- def initEvent() {
- eb.registerHandler("sys.tcp.stop") { message ->
- logger.info("received stop message, starting stop tcp server...")
- server.close { logger.info("tcp server was stopped") }
- }
- }
-}
View
2  platform/tcp-server/src/main/resources/mod.json
@@ -1,3 +1,3 @@
{
- "main": "tcpServer.groovy"
+ "main": "tcp-server.groovy"
}
View
56 platform/tcp-server/src/main/resources/tcp-server.groovy
@@ -0,0 +1,56 @@
+import org.msgpack.MessagePack
+import org.msgpack.packer.Packer
+import org.riderzen.ogs.common.Address
+import org.vertx.groovy.core.buffer.Buffer
+import org.vertx.groovy.core.eventbus.Message
+import org.vertx.groovy.core.net.NetServer
+
+/**
+ * User: Leon Lee <mail.lgq@gmail.com>
+ * Date: 12-12-21
+ */
+
+def config = container.config
+def eb = vertx.eventBus
+def logger = container.logger
+
+logger.info "starting tcp-server"
+
+def host = config?.host ?: '0.0.0.0'
+int port = config?.port ?: 6543
+boolean tcpNoDelay = config?.tcpNoDelay ?: false
+int sendBufferSize = config?.sendBufferSize ?: 8192
+int receiveBufferSize = config?.receiveBufferSize ?: 8192
+boolean tcpKeepAlive = config?.tcpKeepAlive ?: true
+boolean reuseAddress = config?.reuseAddress ?: true
+//boolean soLinger = config?.soLinger ?: false
+int trafficClass = config?.trafficClass ?: -1
+int backlog = config?.backlog ?: -1
+
+NetServer server = vertx.createNetServer()
+
+server.TCPNoDelay = tcpNoDelay
+server.sendBufferSize = sendBufferSize
+server.receiveBufferSize = receiveBufferSize
+server.TCPKeepAlive = tcpKeepAlive
+server.reuseAddress = reuseAddress
+//server.soLinger = soLinger
+
+if (trafficClass >= 0 && trafficClass <= 255)
+ server.trafficClass = trafficClass
+if (backlog > 0)
+ server.acceptBacklog = backlog
+
+server.connectHandler { sock ->
+ sock.dataHandler { Buffer buffer ->
+ logger.debug("received ${buffer.getLength()} bytes of data")
+ eb.send(Address.appProtocol.val, buffer) { Message message ->
+ logger.debug "received message ${message.body}"
+ sock << message.body as Buffer
+ }
+ }
+ sock.exceptionHandler { e ->
+ logger.error("caught error", e)
+ }
+
+}.listen(port, host)
View
29 platform/tcp-server/src/main/scripts/tcpServer.groovy
@@ -1,29 +0,0 @@
-
-/**
- * User: Leon Lee <mail.lgq@gmail.com>
- * Created On: 12-12-5
- */
-import org.vertx.java.core.net.NetServer
-
-import static org.vertx.groovy.core.streams.Pump.createPump
-
-def config = container.config
-def logger = container.logger
-
-logger.info("initializing tcp server with config: ${config}")
-
-def server = vertx.createNetServer()
-
-server.tcpNoDelay = config.tcpNoDelay
-server.sendBufferSize = config.
-
-server.connectHandler { sock ->
- logger.debug("client was connected")
- sock.dataHandler { buffer ->
-
- }
- sock.exceptionHandler { e ->
- logger.error("caught errors on socket", e)
- }
-}.listen(config.port, config.host)
-
View
74 platform/tcp-server/src/test/groovy/org/riderzen/ogs/protocol/TcpServerTest.groovy
@@ -0,0 +1,74 @@
+package org.riderzen.ogs.protocol
+
+import com.google.gson.Gson
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.msgpack.MessagePack
+import org.msgpack.packer.Packer
+import org.slf4j.Logger
+import org.slf4j.LoggerFactory
+import org.vertx.java.core.Handler
+import org.vertx.java.core.buffer.Buffer
+import org.vertx.java.core.eventbus.Message
+import org.vertx.java.core.net.NetClient
+import org.vertx.java.core.net.NetSocket
+import org.vertx.java.test.TestVerticle
+import org.vertx.java.test.VertxConfiguration
+import org.vertx.java.test.VertxTestBase
+import org.vertx.java.test.junit.VertxJUnit4ClassRunner
+
+/**
+ * User: Leon Lee <mail.lgq@gmail.com>
+ * Created On: 12-12-14
+ */
+@RunWith(VertxJUnit4ClassRunner.class)
+@VertxConfiguration
+//@TestModule(name = 'org.riderzen.ogs.protocol-v1.0')
+@TestVerticle(main = 'deployer.js')
+class TcpServerTest extends VertxTestBase {
+ static Logger logger = LoggerFactory.getLogger(TcpServerTest.class)
+ long timeout = 10L
+ NetClient client
+
+ @Before
+ def void setup() {
+ timeout = Long.parseLong(System.getProperty("vertx.test.timeout", "15"))
+ logger.debug("rock on vertx!")
+ client = getVertx().createNetClient()
+ }
+
+ @Test
+ def void testTcpServer() {
+ getVertx().eventBus().registerHandler('ogs.protocol', new Handler<Message>() {
+ @Override
+ void handle(Message event) {
+ logger.debug("get event" + event.body)
+ }
+ })
+
+// sleep(1000000)
+
+ client.connect(6543, "127.0.0.1", new Handler<NetSocket>() {
+ @Override
+ void handle(NetSocket socket) {
+ socket.dataHandler(new Handler<Buffer>() {
+ @Override
+ void handle(Buffer event) {
+ logger.debug("get event: ${event}")
+ }
+ })
+
+ def message = new Gson().toJson([endpoint:'test.tcp', params:[id: 1, name: 'client']])
+ MessagePack msgpack = new MessagePack()
+ ByteArrayOutputStream out = new ByteArrayOutputStream()
+ Packer packer = msgpack.createPacker(out)
+ packer.write(message)
+
+ socket << out.toByteArray()
+
+ }
+ })
+
+ }
+}
View
9 platform/tcp-server/src/test/resources/deployer.js
@@ -0,0 +1,9 @@
+load('vertx.js');
+
+var config = {
+
+};
+
+vertx.deployModule('org.riderzen.ogs.platform.tcp-server-v1.0', config, 1, function(id) {
+ console.log('deployed module: org.riderzen.ogs.platform.tcp-server-v1.0 with id:' + id);
+});
View
13 platform/tcp-server/src/test/resources/langs.properties
@@ -0,0 +1,13 @@
+# Mapping between main file extensions and the verticle factory for the class
+
+java=org.vertx.java.deploy.impl.java.JavaVerticleFactory
+class=org.vertx.java.deploy.impl.java.JavaVerticleFactory
+js=org.vertx.java.deploy.impl.rhino.RhinoVerticleFactory
+coffee=org.vertx.java.deploy.impl.rhino.RhinoVerticleFactory
+rb=org.vertx.java.deploy.impl.jruby.JRubyVerticleFactory
+groovy=org.vertx.groovy.deploy.impl.groovy.GroovyVerticleFactory
+py=org.vertx.java.deploy.impl.jython.JythonVerticleFactory
+
+# Default - if none match this will be assumed
+
+default=org.vertx.java.deploy.impl.java.JavaVerticleFactory
View
8 platform/tcp-server/src/test/resources/log4j.properties
@@ -0,0 +1,8 @@
+log4j.rootCategory=ERROR, stdout
+
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss.SSS} %-5p [%t][%c] %m%n
+
+log4j.category.org.vertx=DEBUG
+log4j.category.org.riderzen=DEBUG
Please sign in to comment.
Something went wrong with that request. Please try again.