Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions core/iovertx/README.md
Original file line number Diff line number Diff line change
@@ -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.
28 changes: 28 additions & 0 deletions core/iovertx/build.gradle
Original file line number Diff line number Diff line change
@@ -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"
}
2 changes: 1 addition & 1 deletion edge/bios/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down