diff --git a/core/iovertx/README.md b/core/iovertx/README.md new file mode 100644 index 000000000..3033d847f --- /dev/null +++ b/core/iovertx/README.md @@ -0,0 +1,21 @@ +# io.vertx Dependency Bundle + + +Issue [#141](https://github.com/NubeIO/iot-engine/issues/141): Bug related to dependency resolving. + +`io.vertx` classes are only loaded by main classloader not [isolated classloader](https://vertx.io/docs/vertx-core/java/#_verticle_isolation_groups) i.e. the verticles that are +deployed +dynamically using [Maven verticle factory](https://vertx.io/docs/vertx-maven-service-factory/java/) cannot find `io.vertx` classes. + +Ideally, this module loads all required `io.vertx` dependencies to `edge-bios` module main classpath (or `server-bios` if + required). +The `bios` module should use following in its `build.gradle`: + +`` +compile project(':core:iovertx') +`` + +> If any new io.vertx dependencies are used by the project (mainly installable modules), then these dependencies must + be added to `build.gradle` of `iovertx` module. + +Alternative is to use `compile "io.vertx:vertx-dependencies"`. However, there are many unnecessary dependencies. diff --git a/core/iovertx/build.gradle b/core/iovertx/build.gradle new file mode 100644 index 000000000..e45b04152 --- /dev/null +++ b/core/iovertx/build.gradle @@ -0,0 +1,28 @@ + +dependencies { + + // currently in use io.vertx dependencies + + compile "io.vertx:vertx-core:$project.versions.vertx" + compile "io.vertx:vertx-web:$project.versions.vertx" + compile "io.vertx:vertx-web-client:$project.versions.vertx" + compile "io.vertx:vertx-mongo-client:$project.versions.vertx" + compile "io.vertx:vertx-codegen:$project.versions.vertx" + compile "io.vertx:vertx-service-proxy:$project.versions.vertx" + compile "io.vertx:vertx-service-discovery:$project.versions.vertx" + compile "io.vertx:vertx-circuit-breaker:$project.versions.vertx" + compile "io.vertx:vertx-rx-java2:$project.versions.vertx" + compile "io.vertx:vertx-config:$project.versions.vertx" + compile "io.vertx:vertx-auth-oauth2:$project.versions.vertx" + compile "io.vertx:vertx-maven-service-factory:$project.versions.vertx" + compile "io.vertx:vertx-mysql-postgresql-client:$project.versions.vertx" + compile "io.vertx:vertx-jdbc-client:$project.versions.vertx" + compile "io.vertx:vertx-hazelcast:$project.versions.vertx" + + // can be used by future client modules + compile "io.vertx:vertx-mqtt:$project.versions.vertx" + compile "io.vertx:vertx-micrometer-metrics:$project.versions.vertx" + compile "io.vertx:vertx-amqp-bridge:$project.versions.vertx" + + testCompile "io.vertx:vertx-unit:$project.versions.vertx" +} diff --git a/edge/bios/build.gradle b/edge/bios/build.gradle index 7e981c548..74f9cbf0a 100644 --- a/edge/bios/build.gradle +++ b/edge/bios/build.gradle @@ -3,7 +3,7 @@ ext { } dependencies { - compile project(':core:micro') //todo: remove this one, related to issue #141 + compile project(':core:iovertx') // loading all vertx dependencies in main classpath compile project(':edge:core') compile project(':core:cluster:hazelcast') testCompile project(":core:base").sourceSets.test.output diff --git a/settings.gradle b/settings.gradle index 2563e213e..6ceac9502 100644 --- a/settings.gradle +++ b/settings.gradle @@ -12,6 +12,7 @@ include ':core:httpclient' include ':core:httpserver' include ':core:auth' include ':core:kafka' +include ':core:iovertx' include ':dashboard:server' include ':dashboard:connector:edge'