diff --git a/docker-tests/output/admin-service-foo.txt b/docker-tests/output/admin-service-foo.txt index c922dce130..a5e8608a60 100644 --- a/docker-tests/output/admin-service-foo.txt +++ b/docker-tests/output/admin-service-foo.txt @@ -15,7 +15,7 @@ Exception in thread "main" java.lang.IllegalArgumentException: Unknown service: 'foo'! at org.rapidoid.u.U.illegal(U.java:432) at org.rapidoid.u.U.must(U.java:458) - at org.rapidoid.util.Msc.bootService(Msc.java:1050) + at org.rapidoid.util.Msc.bootService(Msc.java:1051) at org.rapidoid.setup.ServiceActivator.boot(ServiceActivator.java:81) at org.rapidoid.setup.ServiceActivator.bootstrapServices(ServiceActivator.java:57) at org.rapidoid.setup.ServiceActivator.activateServices(ServiceActivator.java:43) @@ -24,5 +24,5 @@ Exception in thread "main" java.lang.IllegalArgumentException: Unknown service: at org.rapidoid.setup.AppBootstrap.services(AppBootstrap.java:136) at org.rapidoid.setup.App.boot(App.java:98) at org.rapidoid.setup.App.run(App.java:91) - at org.rapidoid.platform.Platform.start(Platform.java:60) + at org.rapidoid.platform.Platform.start(Platform.java:54) at org.rapidoid.platform.Main.main(Main.java:44) diff --git a/docker-tests/output/app-jar.txt b/docker-tests/output/app-jar.txt index f0ec2abcfc..8e4643045f 100644 --- a/docker-tests/output/app-jar.txt +++ b/docker-tests/output/app-jar.txt @@ -52,79 +52,79 @@ [PLATFORM] INFO | --------------------------------------------------- [PLATFORM] INFO | ADMIN CREDENTIALS: username = admin, password = [PLATFORM] INFO | --------------------------------------------------- -[APP] 21:44:50.336 [main] INFO com.example.Main - Starting application -[APP] 21:44:50.355 [main] INFO o.r.config.RapidoidInitializer - Starting Rapidoid v, built on [Dockerized] [Uniform output] -[APP] 21:44:50.356 [main] INFO o.r.config.RapidoidInitializer - System info | os = Linux | java = | process = | max memory = | dir = /opt -[APP] 21:44:50.375 [main] INFO org.rapidoid.env.Env - Setting application root | root = /app | content = [/app/app.jar, /app/config.yml] -[APP] 21:44:50.520 [main] INFO org.rapidoid.env.Environment - Configuring active profiles | profiles = [mysql] -[APP] 21:44:50.524 [main] INFO org.rapidoid.env.Environment - No production/dev/test mode was configured, inferring mode | mode = PRODUCTION -[APP] 21:44:50.524 [main] INFO org.rapidoid.env.Environment - Automatically activating mode-specific profile | profile = production -[APP] 21:44:50.524 [main] INFO org.rapidoid.env.Environment - Initialized environment | mode = PRODUCTION | profiles = [mysql, production] -[APP] 21:44:50.629 [main] INFO org.rapidoid.scan.ClasspathUtil - Setting application JAR | appJar = /app/app.jar | exists = true -[APP] 21:44:50.631 [main] INFO org.rapidoid.config.ConfigImpl - Loaded configuration | namespace = config | files = [built-in-config.yml, built-in-config-mysql.yml, /app/config.yml] -[APP] 21:44:50.631 [main] INFO org.rapidoid.setup.App - Inferring application root | main = com.example.Main | package = com.example -[APP] 21:44:50.636 [main] INFO org.rapidoid.scan.ClasspathScanner - Scanning classpath | annotated = [@Controller, @Service, @Run, @Named, @Singleton] | packages = [com.example] -[APP] 21:44:50.724 [main] INFO org.rapidoid.scan.ClasspathScanner - Finished classpath scan | time = ms | searched = 3 | found = [MyCtrl, Main] -[APP] 21:44:50.797 [server] INFO o.r.net.impl.RapidoidServerLoop - Starting server | address = 0.0.0.0 | port = 8080 | I/O workers = 4 | sync = true | accept = non-blocking -[APP] 21:44:51.006 [main] INFO org.rapidoid.setup.Setup - Server has started | setup = app | home = http://localhost:8080 -[APP] 21:44:51.008 [main] INFO org.rapidoid.setup.Setup - Static resources will be served from the following locations | setup = app | locations = [static, default/static] -[APP] 21:44:51.061 [main] INFO o.rapidoid.http.impl.HttpRoutesImpl - Registering handler | setup = app | verbs = GET | path = /manage | roles = [manager] | tx = NONE | mvc = false | cacheTTL = 0 -[APP] 21:44:51.069 [main] INFO o.rapidoid.http.impl.HttpRoutesImpl - Registering handler | setup = app | verbs = GET | path = / | roles = [] | tx = NONE | mvc = false | cacheTTL = 0 -[APP] 21:44:51.126 [main] INFO org.rapidoid.util.Msc - -------------------------------- -[APP] 21:44:51.126 [main] INFO org.rapidoid.util.Msc - Bootstrapping JPA (Hibernate)... -[APP] 21:44:51.127 [main] INFO org.rapidoid.util.Msc - -------------------------------- -[APP] 21:44:51.127 [main] INFO org.rapidoid.scan.ClasspathScanner - Scanning classpath | annotated = [@Entity] | packages = [com.example] -[APP] 21:44:51.161 [main] INFO org.rapidoid.scan.ClasspathScanner - Finished classpath scan | time = ms | searched = 3 | found = [Book] -[APP] 21:44:51.162 [main] INFO org.rapidoid.jpa.EMFUtil - Found 1 JPA Entities -[APP] 21:44:51.162 [main] INFO org.rapidoid.util.Msc - --------------------- -[APP] 21:44:51.162 [main] INFO org.rapidoid.util.Msc - Hibernate properties: -[APP] 21:44:51.162 [main] INFO org.rapidoid.util.Msc - --------------------- -[APP] 21:44:51.163 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.c3p0.idleConnectionTestPeriod = 300 -[APP] 21:44:51.163 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.connection.driver_class = com.mysql.jdbc.Driver -[APP] 21:44:51.163 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.c3p0.acquireIncrement = 5 -[APP] 21:44:51.163 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.dialect = org.hibernate.dialect.MySQL5Dialect -[APP] 21:44:51.164 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.c3p0.initialPoolSize = 5 -[APP] 21:44:51.164 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.connection.username = root -[APP] 21:44:51.164 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.c3p0.maxPoolSize = 100 -[APP] 21:44:51.164 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.hbm2ddl.auto = create -[APP] 21:44:51.164 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.c3p0.minPoolSize = 5 -[APP] 21:44:51.165 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.c3p0.debug = false -[APP] 21:44:51.165 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.connection.url = jdbc:mysql://mysql:3306/rapidoid -[APP] 21:44:51.165 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.connection.password = ***** -[APP] 21:44:51.167 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.c3p0.maxStatementsPerConnection = 10 -[APP] 21:44:51.167 [main] INFO org.rapidoid.util.Msc - ------------------- -[APP] 21:44:51.168 [main] INFO org.rapidoid.util.Msc - Starting Hibernate: -[APP] 21:44:51.168 [main] INFO org.rapidoid.util.Msc - ------------------- -[APP] 21:44:51.182 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [ +[APP] 11:03:44.900 [main] INFO com.example.Main - Starting application +[APP] 11:03:44.920 [main] INFO o.r.config.RapidoidInitializer - Starting Rapidoid v, built on [Dockerized] [Uniform output] +[APP] 11:03:44.920 [main] INFO o.r.config.RapidoidInitializer - System info | os = Linux | java = | process = | max memory = | dir = /opt +[APP] 11:03:44.941 [main] INFO org.rapidoid.env.Env - Setting application root | root = /app | content = [/app/app.jar, /app/config.yml] +[APP] 11:03:45.089 [main] INFO org.rapidoid.env.Environment - Configuring active profiles | profiles = [mysql] +[APP] 11:03:45.092 [main] INFO org.rapidoid.env.Environment - No production/dev/test mode was configured, inferring mode | mode = PRODUCTION +[APP] 11:03:45.093 [main] INFO org.rapidoid.env.Environment - Automatically activating mode-specific profile | profile = production +[APP] 11:03:45.093 [main] INFO org.rapidoid.env.Environment - Initialized environment | mode = PRODUCTION | profiles = [mysql, production] +[APP] 11:03:45.208 [main] INFO org.rapidoid.scan.ClasspathUtil - Setting application JAR | appJar = /app/app.jar | exists = true +[APP] 11:03:45.210 [main] INFO org.rapidoid.config.ConfigImpl - Loaded configuration | namespace = config | files = [built-in-config.yml, built-in-config-mysql.yml, /app/config.yml] +[APP] 11:03:45.210 [main] INFO org.rapidoid.setup.App - Inferring application root | main = com.example.Main | package = com.example +[APP] 11:03:45.214 [main] INFO org.rapidoid.scan.ClasspathScanner - Scanning classpath | annotated = [@Controller, @Service, @Run, @Named, @Singleton] | packages = [com.example] +[APP] 11:03:45.303 [main] INFO org.rapidoid.scan.ClasspathScanner - Finished classpath scan | time = ms | searched = 3 | found = [MyCtrl, Main] +[APP] 11:03:45.378 [server] INFO o.r.net.impl.RapidoidServerLoop - Starting server | address = 0.0.0.0 | port = 8080 | I/O workers = 4 | sync = true | accept = non-blocking +[APP] 11:03:45.586 [main] INFO org.rapidoid.setup.Setup - Server has started | setup = app | home = http://localhost:8080 +[APP] 11:03:45.587 [main] INFO org.rapidoid.setup.Setup - Static resources will be served from the following locations | setup = app | locations = [static, default/static] +[APP] 11:03:45.630 [main] INFO o.rapidoid.http.impl.HttpRoutesImpl - Registering handler | setup = app | verbs = GET | path = /manage | roles = [manager] | tx = NONE | mvc = false | cacheTTL = 0 +[APP] 11:03:45.634 [main] INFO o.rapidoid.http.impl.HttpRoutesImpl - Registering handler | setup = app | verbs = GET | path = / | roles = [] | tx = NONE | mvc = false | cacheTTL = 0 +[APP] 11:03:45.664 [main] INFO org.rapidoid.util.Msc - -------------------------------- +[APP] 11:03:45.664 [main] INFO org.rapidoid.util.Msc - Bootstrapping JPA (Hibernate)... +[APP] 11:03:45.664 [main] INFO org.rapidoid.util.Msc - -------------------------------- +[APP] 11:03:45.665 [main] INFO org.rapidoid.scan.ClasspathScanner - Scanning classpath | annotated = [@Entity] | packages = [com.example] +[APP] 11:03:45.695 [main] INFO org.rapidoid.scan.ClasspathScanner - Finished classpath scan | time = ms | searched = 3 | found = [Book] +[APP] 11:03:45.696 [main] INFO org.rapidoid.jpa.EMFUtil - Found 1 JPA Entities +[APP] 11:03:45.696 [main] INFO org.rapidoid.util.Msc - --------------------- +[APP] 11:03:45.697 [main] INFO org.rapidoid.util.Msc - Hibernate properties: +[APP] 11:03:45.697 [main] INFO org.rapidoid.util.Msc - --------------------- +[APP] 11:03:45.697 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.c3p0.idleConnectionTestPeriod = 300 +[APP] 11:03:45.698 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.connection.driver_class = com.mysql.jdbc.Driver +[APP] 11:03:45.698 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.c3p0.acquireIncrement = 5 +[APP] 11:03:45.698 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.dialect = org.hibernate.dialect.MySQL5Dialect +[APP] 11:03:45.698 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.c3p0.initialPoolSize = 5 +[APP] 11:03:45.699 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.connection.username = root +[APP] 11:03:45.699 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.c3p0.maxPoolSize = 100 +[APP] 11:03:45.699 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.hbm2ddl.auto = create +[APP] 11:03:45.699 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.c3p0.minPoolSize = 5 +[APP] 11:03:45.700 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.c3p0.debug = false +[APP] 11:03:45.700 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.connection.url = jdbc:mysql://mysql:3306/rapidoid +[APP] 11:03:45.700 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.connection.password = ***** +[APP] 11:03:45.701 [main] INFO org.rapidoid.util.Msc - Hibernate property | hibernate.c3p0.maxStatementsPerConnection = 10 +[APP] 11:03:45.701 [main] INFO org.rapidoid.util.Msc - ------------------- +[APP] 11:03:45.701 [main] INFO org.rapidoid.util.Msc - Starting Hibernate: +[APP] 11:03:45.701 [main] INFO org.rapidoid.util.Msc - ------------------- +[APP] 11:03:45.717 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [ [APP] name: null [APP] ...] -[APP] 21:44:51.224 [main] INFO org.hibernate.Version - HHH000412: Hibernate Core {4.3.11.Final} -[APP] 21:44:51.225 [main] INFO org.hibernate.cfg.Environment - HHH000206: hibernate.properties not found -[APP] 21:44:51.226 [main] INFO org.hibernate.cfg.Environment - HHH000021: Bytecode provider name : javassist -[APP] 21:44:51.302 [main] INFO o.h.annotations.common.Version - HCANN000001: Hibernate Commons Annotations {4.0.5.Final} -[APP] 21:44:51.326 [main] INFO o.h.c.i.C3P0ConnectionProvider - HHH010002: C3P0 using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://mysql:3306/rapidoid -[APP] 21:44:51.327 [main] INFO o.h.c.i.C3P0ConnectionProvider - HHH000046: Connection properties: {user=root, password=****} -[APP] 21:44:51.327 [main] INFO o.h.c.i.C3P0ConnectionProvider - HHH000006: Autocommit mode: false -[APP] 21:44:51.341 [MLog-Init-Reporter] INFO com.mchange.v2.log.MLog - MLog clients using slf4j logging. -[APP] 21:44:51.423 [main] INFO com.mchange.v2.c3p0.C3P0Registry - Initializing c3p0-0.9.5.2 [built 08-December-2015 22:06:04 -0800; debug? true; trace: 10] -[APP] 21:44:51.467 [main] INFO c.m.v.c.i.AbstractPoolBackedDataSource - Initializing c3p0 pool... com.mchange.v2.c3p0.PoolBackedDataSource@5f1cb0a [ connectionPoolDataSource -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@bf9c176f [ acquireIncrement -> 5, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource -> caller, debugUnreturnedConnectionStackTraces -> false, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, forceSynchronousCheckins -> false, identityToken -> 1bqq1hf9l1xtj9ur149nv5h|45ac5f9b, idleConnectionTestPeriod -> 300, initialPoolSize -> 5, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 100, maxStatements -> 0, maxStatementsPerConnection -> 10, minPoolSize -> 5, nestedDataSource -> com.mchange.v2.c3p0.DriverManagerDataSource@54c6c029 [ description -> null, driverClass -> null, factoryClassLocation -> null, forceUseNamedDriverClass -> false, identityToken -> 1bqq1hf9l1xtj9ur149nv5h|39b43d60, jdbcUrl -> jdbc:mysql://mysql:3306/rapidoid, properties -> {user=******, password=******} ], preferredTestQuery -> null, privilegeSpawnedThreads -> false, propertyCycle -> 0, statementCacheNumDeferredCloseThreads -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false; userOverrides: {} ], dataSourceName -> null, extensions -> {}, factoryClassLocation -> null, identityToken -> 1bqq1hf9l1xtj9ur149nv5h|1ef6d34c, numHelperThreads -> 3 ] -[APP] Wed Feb 01 21:45:21 UTC 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. -[APP] Wed Feb 01 21:45:21 UTC 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. -[APP] Wed Feb 01 21:45:21 UTC 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. -[APP] Wed Feb 01 21:45:21 UTC 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. -[APP] Wed Feb 01 21:45:21 UTC 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. -[APP] 21:45:21.977 [main] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect -[APP] 21:45:22.048 [main] INFO o.h.h.i.a.ASTQueryTranslatorFactory - HHH000397: Using ASTQueryTranslatorFactory -[APP] 21:45:22.079 [main] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 5.2.4.Final -[APP] 21:45:22.310 [main] INFO o.h.tool.hbm2ddl.SchemaExport - HHH000227: Running hbm2ddl schema export -[APP] 21:45:22.445 [main] INFO o.h.tool.hbm2ddl.SchemaExport - HHH000230: Schema export complete -[APP] 21:45:22.491 [main] INFO org.rapidoid.util.Msc - ------------------------- -[APP] 21:45:22.492 [main] INFO org.rapidoid.util.Msc - JPA (Hibernate) is ready. -[APP] 21:45:22.493 [main] INFO org.rapidoid.util.Msc - ------------------------- -[APP] 21:45:22.498 [main] INFO o.rapidoid.http.impl.HttpRoutesImpl - Registering handler | setup = app | verbs = POST | path = /_login | roles = [] | tx = NONE | mvc = false | cacheTTL = 0 -[APP] 21:45:22.499 [main] INFO o.rapidoid.http.impl.HttpRoutesImpl - Registering handler | setup = app | verbs = GET | path = /_logout | roles = [logged_in] | tx = NONE | mvc = false | cacheTTL = 0 -[APP] 21:45:22.514 [main] INFO o.rapidoid.http.impl.HttpRoutesImpl - Registering handler | setup = app | verbs = GET | path = /books | roles = [] | tx = NONE | mvc = false | cacheTTL = 0 -[APP] 21:45:22.538 [main] INFO o.rapidoid.http.impl.HttpRoutesImpl - Registering handler | setup = app | verbs = POST | path = /books | roles = [] | tx = NONE | mvc = false | cacheTTL = 0 -[APP] 21:45:22.543 [main] INFO o.rapidoid.http.impl.HttpRoutesImpl - Registering handler | setup = app | verbs = PUT | path = /books/{id} | roles = [] | tx = NONE | mvc = false | cacheTTL = 0 -[APP] 21:45:22.551 [main] INFO o.rapidoid.http.impl.HttpRoutesImpl - Registering handler | setup = app | verbs = DELETE | path = /books/{id} | roles = [] | tx = NONE | mvc = false | cacheTTL = 0 -[APP] 21:45:38.766 [executor24] WARN o.r.h.impl.lowlevel.LowLevelHttpIO - Access denied for request: GET /manage | client = 172.17.0.1 +[APP] 11:03:45.759 [main] INFO org.hibernate.Version - HHH000412: Hibernate Core {4.3.11.Final} +[APP] 11:03:45.760 [main] INFO org.hibernate.cfg.Environment - HHH000206: hibernate.properties not found +[APP] 11:03:45.761 [main] INFO org.hibernate.cfg.Environment - HHH000021: Bytecode provider name : javassist +[APP] 11:03:45.843 [main] INFO o.h.annotations.common.Version - HCANN000001: Hibernate Commons Annotations {4.0.5.Final} +[APP] 11:03:45.867 [main] INFO o.h.c.i.C3P0ConnectionProvider - HHH010002: C3P0 using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://mysql:3306/rapidoid +[APP] 11:03:45.867 [main] INFO o.h.c.i.C3P0ConnectionProvider - HHH000046: Connection properties: {user=root, password=****} +[APP] 11:03:45.868 [main] INFO o.h.c.i.C3P0ConnectionProvider - HHH000006: Autocommit mode: false +[APP] 11:03:45.882 [MLog-Init-Reporter] INFO com.mchange.v2.log.MLog - MLog clients using slf4j logging. +[APP] 11:03:45.962 [main] INFO com.mchange.v2.c3p0.C3P0Registry - Initializing c3p0-0.9.5.2 [built 08-December-2015 22:06:04 -0800; debug? true; trace: 10] +[APP] 11:03:46.020 [main] INFO c.m.v.c.i.AbstractPoolBackedDataSource - Initializing c3p0 pool... com.mchange.v2.c3p0.PoolBackedDataSource@f20ef065 [ connectionPoolDataSource -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@f4017185 [ acquireIncrement -> 5, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource -> caller, debugUnreturnedConnectionStackTraces -> false, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, forceSynchronousCheckins -> false, identityToken -> 1bqq1hf9l1ym2odtqatt93|6d7fc27, idleConnectionTestPeriod -> 300, initialPoolSize -> 5, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 100, maxStatements -> 0, maxStatementsPerConnection -> 10, minPoolSize -> 5, nestedDataSource -> com.mchange.v2.c3p0.DriverManagerDataSource@6558baa4 [ description -> null, driverClass -> null, factoryClassLocation -> null, forceUseNamedDriverClass -> false, identityToken -> 1bqq1hf9l1ym2odtqatt93|42e25b0b, jdbcUrl -> jdbc:mysql://mysql:3306/rapidoid, properties -> {user=******, password=******} ], preferredTestQuery -> null, privilegeSpawnedThreads -> false, propertyCycle -> 0, statementCacheNumDeferredCloseThreads -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false; userOverrides: {} ], dataSourceName -> null, extensions -> {}, factoryClassLocation -> null, identityToken -> 1bqq1hf9l1ym2odtqatt93|2049a9c1, numHelperThreads -> 3 ] +[APP] Thu Feb 02 11:04:05 UTC 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. +[APP] Thu Feb 02 11:04:05 UTC 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. +[APP] Thu Feb 02 11:04:05 UTC 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. +[APP] Thu Feb 02 11:04:05 UTC 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. +[APP] Thu Feb 02 11:04:05 UTC 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. +[APP] 11:04:05.438 [main] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect +[APP] 11:04:05.507 [main] INFO o.h.h.i.a.ASTQueryTranslatorFactory - HHH000397: Using ASTQueryTranslatorFactory +[APP] 11:04:05.540 [main] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 5.2.4.Final +[APP] 11:04:05.800 [main] INFO o.h.tool.hbm2ddl.SchemaExport - HHH000227: Running hbm2ddl schema export +[APP] 11:04:05.881 [main] INFO o.h.tool.hbm2ddl.SchemaExport - HHH000230: Schema export complete +[APP] 11:04:05.922 [main] INFO org.rapidoid.util.Msc - ------------------------- +[APP] 11:04:05.923 [main] INFO org.rapidoid.util.Msc - JPA (Hibernate) is ready. +[APP] 11:04:05.923 [main] INFO org.rapidoid.util.Msc - ------------------------- +[APP] 11:04:05.927 [main] INFO o.rapidoid.http.impl.HttpRoutesImpl - Registering handler | setup = app | verbs = POST | path = /_login | roles = [] | tx = NONE | mvc = false | cacheTTL = 0 +[APP] 11:04:05.929 [main] INFO o.rapidoid.http.impl.HttpRoutesImpl - Registering handler | setup = app | verbs = GET | path = /_logout | roles = [logged_in] | tx = NONE | mvc = false | cacheTTL = 0 +[APP] 11:04:05.943 [main] INFO o.rapidoid.http.impl.HttpRoutesImpl - Registering handler | setup = app | verbs = GET | path = /books | roles = [] | tx = NONE | mvc = false | cacheTTL = 0 +[APP] 11:04:05.960 [main] INFO o.rapidoid.http.impl.HttpRoutesImpl - Registering handler | setup = app | verbs = POST | path = /books | roles = [] | tx = NONE | mvc = false | cacheTTL = 0 +[APP] 11:04:05.964 [main] INFO o.rapidoid.http.impl.HttpRoutesImpl - Registering handler | setup = app | verbs = PUT | path = /books/{id} | roles = [] | tx = NONE | mvc = false | cacheTTL = 0 +[APP] 11:04:05.968 [main] INFO o.rapidoid.http.impl.HttpRoutesImpl - Registering handler | setup = app | verbs = DELETE | path = /books/{id} | roles = [] | tx = NONE | mvc = false | cacheTTL = 0 +[APP] 11:04:38.440 [executor24] WARN o.r.h.impl.lowlevel.LowLevelHttpIO - Access denied for request: GET /manage | client = 172.17.0.1 diff --git a/docker-tests/output/app-service-foo.txt b/docker-tests/output/app-service-foo.txt index e5f72ef826..458ea03585 100644 --- a/docker-tests/output/app-service-foo.txt +++ b/docker-tests/output/app-service-foo.txt @@ -15,7 +15,7 @@ Exception in thread "main" java.lang.IllegalArgumentException: Unknown service: 'foo'! at org.rapidoid.u.U.illegal(U.java:432) at org.rapidoid.u.U.must(U.java:458) - at org.rapidoid.util.Msc.bootService(Msc.java:1050) + at org.rapidoid.util.Msc.bootService(Msc.java:1051) at org.rapidoid.setup.ServiceActivator.boot(ServiceActivator.java:81) at org.rapidoid.setup.ServiceActivator.bootstrapServices(ServiceActivator.java:57) at org.rapidoid.setup.ServiceActivator.activateServices(ServiceActivator.java:42) @@ -24,5 +24,5 @@ Exception in thread "main" java.lang.IllegalArgumentException: Unknown service: at org.rapidoid.setup.AppBootstrap.services(AppBootstrap.java:136) at org.rapidoid.setup.App.boot(App.java:98) at org.rapidoid.setup.App.run(App.java:91) - at org.rapidoid.platform.Platform.start(Platform.java:60) + at org.rapidoid.platform.Platform.start(Platform.java:54) at org.rapidoid.platform.Main.main(Main.java:44) diff --git a/docker-tests/output/configuration.txt b/docker-tests/output/configuration.txt index deaa7df37a..604c5d80fa 100644 --- a/docker-tests/output/configuration.txt +++ b/docker-tests/output/configuration.txt @@ -21,12 +21,12 @@ [PLATFORM] INFO | --------------------------------------------------- [PLATFORM] INFO | ADMIN CREDENTIALS: username = admin, password = [PLATFORM] INFO | --------------------------------------------------- -[APP] INFO | 02/Feb/2017 09:39:39:734 | main | org.rapidoid.config.RapidoidInitializer | Starting Rapidoid v, built on [Dockerized] [Uniform output] -[APP] INFO | 02/Feb/2017 09:39:39:737 | main | org.rapidoid.config.RapidoidInitializer | System info | os = Linux | java = | process = | max memory = | dir = /opt -[APP] INFO | 02/Feb/2017 09:39:39:766 | main | org.rapidoid.env.Env | Setting application root | root = /app | content = [/app/rapidoid.yml] -[APP] INFO | 02/Feb/2017 09:39:39:982 | main | org.rapidoid.env.Environment | No profiles were specified, activating 'default' profile -[APP] INFO | 02/Feb/2017 09:39:39:985 | main | org.rapidoid.env.Environment | No production/dev/test mode was configured, inferring mode | mode = PRODUCTION -[APP] INFO | 02/Feb/2017 09:39:39:985 | main | org.rapidoid.env.Environment | Automatically activating mode-specific profile | profile = production -[APP] INFO | 02/Feb/2017 09:39:39:985 | main | org.rapidoid.env.Environment | Initialized environment | mode = PRODUCTION | profiles = [default, production] -[APP] INFO | 02/Feb/2017 09:39:40:112 | main | org.rapidoid.scan.ClasspathUtil | Setting application JAR | appJar = /app/app.jar | exists = false -[APP] INFO | 02/Feb/2017 09:39:40:114 | main | org.rapidoid.config.ConfigImpl | Loaded configuration | namespace = config | files = [built-in-config.yml, built-in-config-default.yml] +[APP] INFO | org.rapidoid.config.RapidoidInitializer | Starting Rapidoid v, built on [Dockerized] [Uniform output] +[APP] INFO | org.rapidoid.config.RapidoidInitializer | System info | os = Linux | java = | process = | max memory = | dir = /opt +[APP] INFO | org.rapidoid.env.Env | Setting application root | root = /app | content = [/app/rapidoid.yml] +[APP] INFO | org.rapidoid.env.Environment | No profiles were specified, activating 'default' profile +[APP] INFO | org.rapidoid.env.Environment | No production/dev/test mode was configured, inferring mode | mode = PRODUCTION +[APP] INFO | org.rapidoid.env.Environment | Automatically activating mode-specific profile | profile = production +[APP] INFO | org.rapidoid.env.Environment | Initialized environment | mode = PRODUCTION | profiles = [default, production] +[APP] INFO | org.rapidoid.scan.ClasspathUtil | Setting application JAR | appJar = /app/app.jar | exists = false +[APP] INFO | org.rapidoid.config.ConfigImpl | Loaded configuration | namespace = config | files = [built-in-config.yml, built-in-config-default.yml] diff --git a/docker-tests/output/env-config.txt b/docker-tests/output/env-config.txt index 6d3a975229..a10297d4a0 100644 --- a/docker-tests/output/env-config.txt +++ b/docker-tests/output/env-config.txt @@ -22,13 +22,13 @@ [PLATFORM] INFO | --------------------------------------------------- [PLATFORM] INFO | ADMIN CREDENTIALS: username = admin, password = [PLATFORM] INFO | --------------------------------------------------- -[APP] INFO | 02/Feb/2017 09:39:43:183 | main | org.rapidoid.config.RapidoidInitializer | Starting Rapidoid v, built on [Dockerized] [Uniform output] -[APP] INFO | 02/Feb/2017 09:39:43:184 | main | org.rapidoid.config.RapidoidInitializer | System info | os = Linux | java = | process = | max memory = | dir = /opt -[APP] INFO | 02/Feb/2017 09:39:43:208 | main | org.rapidoid.env.Env | Setting application root | root = /app | content = [/app/the-root, /app/my-config.yaml] -[APP] INFO | 02/Feb/2017 09:39:43:215 | main | org.rapidoid.config.ConfigBase | Changing configuration filename base | from = config | to = my-config -[APP] INFO | 02/Feb/2017 09:39:43:360 | main | org.rapidoid.env.Environment | No profiles were specified, activating 'default' profile -[APP] INFO | 02/Feb/2017 09:39:43:364 | main | org.rapidoid.env.Environment | No production/dev/test mode was configured, inferring mode | mode = PRODUCTION -[APP] INFO | 02/Feb/2017 09:39:43:364 | main | org.rapidoid.env.Environment | Automatically activating mode-specific profile | profile = production -[APP] INFO | 02/Feb/2017 09:39:43:365 | main | org.rapidoid.env.Environment | Initialized environment | mode = PRODUCTION | profiles = [default, production] -[APP] INFO | 02/Feb/2017 09:39:43:494 | main | org.rapidoid.scan.ClasspathUtil | Setting application JAR | appJar = /app/app.jar | exists = false -[APP] INFO | 02/Feb/2017 09:39:43:496 | main | org.rapidoid.config.ConfigImpl | Loaded configuration | namespace = my-config | files = [built-in-config.yml, built-in-config-default.yml, /app/my-config.yaml] +[APP] INFO | org.rapidoid.config.RapidoidInitializer | Starting Rapidoid v, built on [Dockerized] [Uniform output] +[APP] INFO | org.rapidoid.config.RapidoidInitializer | System info | os = Linux | java = | process = | max memory = | dir = /opt +[APP] INFO | org.rapidoid.env.Env | Setting application root | root = /app | content = [/app/the-root, /app/my-config.yaml] +[APP] INFO | org.rapidoid.config.ConfigBase | Changing configuration filename base | from = config | to = my-config +[APP] INFO | org.rapidoid.env.Environment | No profiles were specified, activating 'default' profile +[APP] INFO | org.rapidoid.env.Environment | No production/dev/test mode was configured, inferring mode | mode = PRODUCTION +[APP] INFO | org.rapidoid.env.Environment | Automatically activating mode-specific profile | profile = production +[APP] INFO | org.rapidoid.env.Environment | Initialized environment | mode = PRODUCTION | profiles = [default, production] +[APP] INFO | org.rapidoid.scan.ClasspathUtil | Setting application JAR | appJar = /app/app.jar | exists = false +[APP] INFO | org.rapidoid.config.ConfigImpl | Loaded configuration | namespace = my-config | files = [built-in-config.yml, built-in-config-default.yml, /app/my-config.yaml] diff --git a/rapidoid-commons/src/main/java/org/rapidoid/commons/RapidoidInfo.java b/rapidoid-commons/src/main/java/org/rapidoid/commons/RapidoidInfo.java index f476c9ee28..8dbf7a7aee 100644 --- a/rapidoid-commons/src/main/java/org/rapidoid/commons/RapidoidInfo.java +++ b/rapidoid-commons/src/main/java/org/rapidoid/commons/RapidoidInfo.java @@ -4,7 +4,7 @@ import org.rapidoid.annotation.Authors; import org.rapidoid.annotation.Since; import org.rapidoid.u.U; -import org.rapidoid.util.GlobalCfg; +import org.rapidoid.log.GlobalCfg; import org.rapidoid.util.Msc; import java.io.IOException; diff --git a/rapidoid-commons/src/main/java/org/rapidoid/util/Msc.java b/rapidoid-commons/src/main/java/org/rapidoid/util/Msc.java index e0290087b3..fb412e8048 100644 --- a/rapidoid-commons/src/main/java/org/rapidoid/util/Msc.java +++ b/rapidoid-commons/src/main/java/org/rapidoid/util/Msc.java @@ -24,6 +24,7 @@ import org.rapidoid.io.IO; import org.rapidoid.io.Res; import org.rapidoid.lambda.*; +import org.rapidoid.log.GlobalCfg; import org.rapidoid.log.Log; import org.rapidoid.u.U; import org.rapidoid.validation.InvalidData; diff --git a/rapidoid-commons/src/main/resources/rapidoid-classes.txt b/rapidoid-commons/src/main/resources/rapidoid-classes.txt index fbc356ddbf..cc0fefe637 100644 --- a/rapidoid-commons/src/main/resources/rapidoid-classes.txt +++ b/rapidoid-commons/src/main/resources/rapidoid-classes.txt @@ -552,6 +552,7 @@ org.rapidoid.lambda.ToMap org.rapidoid.lambda.TwoParamLambda org.rapidoid.log.commons.RapidoidLog org.rapidoid.log.commons.RapidoidLogFactory +org.rapidoid.log.GlobalCfg org.rapidoid.log.Log org.rapidoid.log.LogbackUtil org.rapidoid.log.LogHP @@ -730,7 +731,6 @@ org.rapidoid.util.Deleted org.rapidoid.util.Dict org.rapidoid.util.ErrCodeAndMsg org.rapidoid.util.Expectation -org.rapidoid.util.GlobalCfg org.rapidoid.util.LazyInit org.rapidoid.util.Lorem org.rapidoid.util.MapEntry diff --git a/rapidoid-commons/src/main/java/org/rapidoid/util/GlobalCfg.java b/rapidoid-essentials/src/main/java/org/rapidoid/log/GlobalCfg.java similarity index 70% rename from rapidoid-commons/src/main/java/org/rapidoid/util/GlobalCfg.java rename to rapidoid-essentials/src/main/java/org/rapidoid/log/GlobalCfg.java index 6485879a51..2c9fe9be35 100644 --- a/rapidoid-commons/src/main/java/org/rapidoid/util/GlobalCfg.java +++ b/rapidoid-essentials/src/main/java/org/rapidoid/log/GlobalCfg.java @@ -1,12 +1,8 @@ -package org.rapidoid.util; - -import org.rapidoid.RapidoidThing; -import org.rapidoid.annotation.Authors; -import org.rapidoid.annotation.Since; +package org.rapidoid.log; /* * #%L - * rapidoid-commons + * rapidoid-essentials * %% * Copyright (C) 2014 - 2017 Nikolche Mihajlovski and contributors * %% @@ -24,12 +20,17 @@ * #L% */ -@Authors("Nikolche Mihajlovski") -@Since("5.2.5") +import org.rapidoid.RapidoidThing; + +/** + * @author Nikolche Mihajlovski + * @since 5.2.5 + */ public class GlobalCfg extends RapidoidThing { - private static final boolean uniformOutput = "true".equalsIgnoreCase(System.getenv("UNIFORM_OUTPUT")) - || "true".equalsIgnoreCase(System.getenv("uniform_output")); + private static final boolean uniformOutput = + "true".equalsIgnoreCase(System.getenv("UNIFORM_OUTPUT")) + || "true".equalsIgnoreCase(System.getenv("uniform_output")); public static boolean uniformOutput() { return uniformOutput; diff --git a/rapidoid-essentials/src/main/java/org/rapidoid/log/LogOptions.java b/rapidoid-essentials/src/main/java/org/rapidoid/log/LogOptions.java index 4ef9c8fdf5..6dc7a7b841 100644 --- a/rapidoid-essentials/src/main/java/org/rapidoid/log/LogOptions.java +++ b/rapidoid-essentials/src/main/java/org/rapidoid/log/LogOptions.java @@ -39,9 +39,9 @@ public class LogOptions extends RapidoidThing { private volatile String prefix; - private volatile boolean showThread = true; + private volatile boolean showThread = !GlobalCfg.uniformOutput(); - private volatile boolean showDateTime = true; + private volatile boolean showDateTime = !GlobalCfg.uniformOutput(); private volatile DateFormat dateTimeFormat = new SimpleDateFormat("dd/MMM/yyyy HH:mm:ss:SSS"); diff --git a/rapidoid-http-fast/src/main/java/org/rapidoid/http/impl/lowlevel/LowLevelHttpIO.java b/rapidoid-http-fast/src/main/java/org/rapidoid/http/impl/lowlevel/LowLevelHttpIO.java index fbd204675b..8a04a57da5 100644 --- a/rapidoid-http-fast/src/main/java/org/rapidoid/http/impl/lowlevel/LowLevelHttpIO.java +++ b/rapidoid-http-fast/src/main/java/org/rapidoid/http/impl/lowlevel/LowLevelHttpIO.java @@ -24,7 +24,7 @@ import org.rapidoid.net.abstracts.Channel; import org.rapidoid.u.U; import org.rapidoid.util.Constants; -import org.rapidoid.util.GlobalCfg; +import org.rapidoid.log.GlobalCfg; import org.rapidoid.util.Msc; import org.rapidoid.util.StreamUtils; diff --git a/rapidoid-platform/src/main/java/org/rapidoid/platform/DefaultApp.java b/rapidoid-platform/src/main/java/org/rapidoid/platform/DefaultApp.java index 603b18127c..12a8fa2429 100644 --- a/rapidoid-platform/src/main/java/org/rapidoid/platform/DefaultApp.java +++ b/rapidoid-platform/src/main/java/org/rapidoid/platform/DefaultApp.java @@ -29,11 +29,8 @@ @Since("5.3.0") public class DefaultApp extends RapidoidThing { - private static final String[] EXTRA_ARGS = { - }; - public static void main(String[] args) { - App.run(args, EXTRA_ARGS); + App.run(args); } } diff --git a/rapidoid-platform/src/main/java/org/rapidoid/platform/Platform.java b/rapidoid-platform/src/main/java/org/rapidoid/platform/Platform.java index 02c888ae10..1f17891e62 100644 --- a/rapidoid-platform/src/main/java/org/rapidoid/platform/Platform.java +++ b/rapidoid-platform/src/main/java/org/rapidoid/platform/Platform.java @@ -32,7 +32,6 @@ import org.rapidoid.setup.Setup; import org.rapidoid.u.U; import org.rapidoid.util.AppInfo; -import org.rapidoid.util.GlobalCfg; import org.rapidoid.util.Msc; import java.awt.*; @@ -51,11 +50,6 @@ static void start(String[] args, @SuppressWarnings("unused") boolean defaults) { Log.options().prefix("[PLATFORM] "); Log.options().inferCaller(false); - if (GlobalCfg.uniformOutput()) { - Log.options().showThread(false); - Log.options().showDateTime(false); - } - Msc.setPlatform(true); App.run(args);