docs: @Override
      protected <T> T create(Class<T> type, Map<String, String> mapConfig) {
          try {
              Constructor<T> constructor = type.getConstructor(Vertx.class, VertxEngineConfig.class, Map.class);
              return constructor.newInstance(vertx, engineConfig, mapConfig);
          } catch (Exception e) {
          }
          try {
              Constructor<T> constructor = type.getConstructor(Map.class);
              return constructor.newInstance(mapConfig);
          } catch (Exception e) {
          }
          try {
              return type.newInstance();
          } catch (Exception e) {
              throw new RuntimeException(e);
          }
      }