// Path: src/main/java/org/audit4j/microservice/web/VertxServer.java
// public class VertxServer extends AbstractVerticle implements HTTPServer{
// 
//     private int port;
//     
//     Vertx vertx;
//     
//     public VertxServer(int port) {
//         this.port = port;
//     }
//     
//     @Override
//     public void start() {
//         WebRouter webRouter = new WebRouter(vertx);
//         Router router = webRouter.getRouter();
// 
//         RestRouter restRouter = new RestRouter(vertx);
//         router.mountSubRouter("/api", restRouter.getRouter());
//         
// 
//         router.route("/*").handler(StaticHandler.create());
//         
//         vertx.createHttpServer().requestHandler(router::accept).listen(port);
//     }
// 
//     
//     
//     public static void main(String[] args) {
//         VertxServer server = new VertxServer(8080);
//         server.vertx = Vertx.vertx();
//         server.vertx.deployVerticle(server);
//     }
//     
//     @Override
//     public void init() throws InitializationException {
//         vertx = Vertx.vertx();
//         vertx.deployVerticle(this);
//         System.out.println("Vertx HTTP server started.! port: " + port);
//     }
//     
//     @Override
//     public void stop() {
//         vertx.close();
//     }
// 
//     @Override
//     public void setPort(int port) {
//        this.port = port;
//     }
// }


import org.audit4j.core.Initializable;
import org.audit4j.microservice.web.VertxServer;
package org.audit4j.microservice.core;


public interface HTTPServer extends Initializable{

    void setPort(int port);
    
    public static HTTPServer create(int port) {
// Path: src/main/java/org/audit4j/microservice/web/VertxServer.java
// public class VertxServer extends AbstractVerticle implements HTTPServer{
// 
//     private int port;
//     
//     Vertx vertx;
//     
//     public VertxServer(int port) {
//         this.port = port;
//     }
//     
//     @Override
//     public void start() {
//         WebRouter webRouter = new WebRouter(vertx);
//         Router router = webRouter.getRouter();
// 
//         RestRouter restRouter = new RestRouter(vertx);
//         router.mountSubRouter("/api", restRouter.getRouter());
//         
// 
//         router.route("/*").handler(StaticHandler.create());
//         
//         vertx.createHttpServer().requestHandler(router::accept).listen(port);
//     }
// 
//     
//     
//     public static void main(String[] args) {
//         VertxServer server = new VertxServer(8080);
//         server.vertx = Vertx.vertx();
//         server.vertx.deployVerticle(server);
//     }
//     
//     @Override
//     public void init() throws InitializationException {
//         vertx = Vertx.vertx();
//         vertx.deployVerticle(this);
//         System.out.println("Vertx HTTP server started.! port: " + port);
//     }
//     
//     @Override
//     public void stop() {
//         vertx.close();
//     }
// 
//     @Override
//     public void setPort(int port) {
//        this.port = port;
//     }
// }


// Path: src/main/java/org/audit4j/microservice/core/HTTPServer.java
import org.audit4j.core.Initializable;
import org.audit4j.microservice.web.VertxServer;

package org.audit4j.microservice.core;


public interface HTTPServer extends Initializable{

    void setPort(int port);
    
    public static HTTPServer create(int port) {
        return new VertxServer(port);