Main.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package highlevel;
  2. import common.Helper;
  3. import common.Message;
  4. import org.rapidoid.commons.Env;
  5. import org.rapidoid.config.Conf;
  6. import org.rapidoid.http.MediaType;
  7. import org.rapidoid.log.Log;
  8. import org.rapidoid.setup.App;
  9. import org.rapidoid.setup.On;
  10. import org.rapidoid.sql.JDBC;
  11. import org.rapidoid.sql.JdbcClient;
  12. public class Main {
  13. public static void main(String[] args) {
  14. App.args(args);
  15. Conf.C3P0.set("maxPoolSize", 256);
  16. Conf.C3P0.set("maxIdleTimeExcessConnections", 256);
  17. Conf.C3P0.set("maxStatementsPerConnection", 3);
  18. Conf.HTTP.set("maxPipeline", 128);
  19. Conf.HTTP.set("timeout", 0);
  20. Conf.HTTP.sub("mandatoryHeaders").set("connection", false);
  21. On.port(8080);
  22. if (Env.hasAnyProfile("mysql", "postgres")) {
  23. setupDbHandlers();
  24. } else {
  25. setupSimpleHandlers();
  26. }
  27. }
  28. private static void setupSimpleHandlers() {
  29. On.get("/plaintext").managed(false).contentType(MediaType.TEXT_PLAIN).serve("Hello, world!");
  30. On.get("/json").managed(false).json(() -> new Message("Hello, world!"));
  31. }
  32. private static void setupDbHandlers() {
  33. String dbHost = Conf.ROOT.entry("dbhost").or("localhost");
  34. Log.info("Database hostname is: " + dbHost);
  35. String dbUrl;
  36. if (Env.hasProfile("mysql")) {
  37. dbUrl = "jdbc:mysql://" + dbHost + ":3306/hello_world?" + Helper.MYSQL_CONFIG;
  38. } else {
  39. dbUrl = "jdbc:postgresql://" + dbHost + ":5432/hello_world?" + Helper.POSTGRES_CONFIG;
  40. }
  41. JdbcClient mysqlJdbc = JDBC.newApi()
  42. .url(dbUrl)
  43. .username("benchmarkdbuser")
  44. .password("benchmarkdbpass")
  45. .pooled();
  46. On.get("/fortunes").html(new FortunesHandler(mysqlJdbc));
  47. }
  48. }