Example usage for io.vertx.core.http HttpServerOptions setReuseAddress

List of usage examples for io.vertx.core.http HttpServerOptions setReuseAddress

Introduction

In this page you can find the example usage for io.vertx.core.http HttpServerOptions setReuseAddress.

Prototype

@Override
    public HttpServerOptions setReuseAddress(boolean reuseAddress) 

Source Link

Usage

From source file:org.azrul.langmera.DecisionService.java

@Override
public void start(Future<Void> fut) {

    // Create a router object.
    Router router = Router.router(vertx);

    //enable CORS
    if (config.getProperty("enableCors", Boolean.class)) {
        String allowedAddress = config.getProperty("cors.allowedAddress", String.class);

        CorsHandler c = CorsHandler.create(allowedAddress);

        String allowedHeaders = config.getProperty("cors.allowedHeaders", String.class);
        if (allowedHeaders != null) {
            String[] allowedHeadersArray = allowedHeaders.split(",");
            c.allowedHeaders(new HashSet<String>(Arrays.asList(allowedHeadersArray)));
        }/*from   w w w . java2 s . c  o  m*/
        String allowedMethods = config.getProperty("cors.allowedMethods", String.class);
        if (allowedMethods != null) {
            String[] allowedMethodsArray = allowedMethods.split(",");
            for (String m : allowedMethodsArray) {
                if ("POST".equals(m)) {
                    c.allowedMethod(HttpMethod.POST);
                } else if ("PUT".equals(m)) {
                    c.allowedMethod(HttpMethod.PUT);
                } else if ("GET".equals(m)) {
                    c.allowedMethod(HttpMethod.GET);
                } else if ("DELETE".equals(m)) {
                    c.allowedMethod(HttpMethod.DELETE);
                }
            }
        }

        router.route().handler(c);
    }
    //Handle body
    router.route().handler(BodyHandler.create());

    //router.route("/langmera/assets/*").handler(StaticHandler.create("assets"));
    router.post("/langmera/api/makeDecision").handler(this::makeDecision);
    router.post("/langmera/api/acceptFeedback").handler(this::acceptFeedback);
    //router.post("/langmera/api/getHistory").handler(this::getHistory);
    //router.post("/langmera/api/getRequestTemplate").handler(this::getRequestTemplate);
    //router.post("/langmera/api/getResponseTemplate").handler(this::getFeedbackTemplate);

    HttpServerOptions options = new HttpServerOptions();
    options.setReuseAddress(true);

    // Create the HTTP server and pass the "accept" method to the request handler.
    vertx.createHttpServer(options).requestHandler(router::accept).listen(
            // Retrieve the port from the configuration,
            // default to 8080.
            config().getInteger("http.port", config.getProperty("http.port", Integer.class)), result -> {
                if (result.succeeded()) {
                    fut.complete();
                } else {
                    fut.fail(result.cause());
                }
            });
}

From source file:org.azrul.langmera.SaveToDB.java

@Override
public void start(Future<Void> fut) {

    HttpServerOptions options = new HttpServerOptions();
    options.setReuseAddress(true);

    JDBCClient client = JDBCClient.createShared(vertx,
            new JsonObject().put("url", "jdbc:postgresql://localhost:5432/langmeradb")
                    .put("driver_class", "org.postgresql.Driver").put("max_pool_size", 20)
                    .put("user", "Langmera").put("password", "1qazZAQ!"));

    vertx.eventBus().<byte[]>consumer("SAVE_TRACE_TO_TRACE", message -> {

        Trace trace = (Trace) SerializationUtils.deserialize(message.body());
        client.getConnection(res -> {
            if (!res.succeeded()) {
                logger.log(Level.SEVERE,
                        "Problem encountered getting DB connection. Please check DB credentials", res.cause());
            } else {
                SQLConnection connection = res.result();
                //                    String sql = "insert into Trace(context,qvalue,decisionid, decisiontime,decision,score) values(?,?,?,?,?,?)";
                //                    JsonArray input = new JsonArray().
                //                            add(trace.getContext()).
                //                            add(trace.getQvalue()).
                //                            add(trace.getDecisionId()).
                //                            add(trace.getTimeStamp()).
                //                            add(trace.getOption()).
                //                            add(trace.getScore());

                String sql = "insert into Trace(context,qvalue,decisionid, decisiontime,decision,score,maxQ) values('"
                        + trace.getContext() + "'," + trace.getQvalue() + ",'" + trace.getDecisionId() + "','"
                        + trace.getTimeStamp() + "','" + trace.getOption() + "'," + trace.getScore() + ","
                        + trace.getMaxQ() + ")";

                //System.out.println("SQL:"+sql);

                connection.execute(sql, res2 -> {
                    if (res2.failed()) {
                        logger.log(Level.SEVERE, "Problem encountered when saving to DB", res2.cause());
                    }//from w ww .  j a v  a2  s. c o  m
                    connection.close();
                });

                //                    connection.setAutoCommit(false, 
                //                            res3->connection.updateWithParams(sql, input, res2 -> {
                //                                if (res2.failed()){
                //                                    connection.rollback(res5->{ 
                //                                        logger.log(Level.SEVERE, "Problem encountered when saving to DB", res2.cause());
                //                                    });
                //                                  
                //                                }else{
                //                                    connection.commit(res4->{
                //                                        connection.close();
                //                                    });
                //                                }
                //                                
                //                    }));

            }
        });
    });

}