Skip to content

Commit

Permalink
vertx-core does not need to depend on netty-transport-native-XXX inst…
Browse files Browse the repository at this point in the history
…ead it can depend on netty-transport-classes-XXX
  • Loading branch information
vietj committed Jul 16, 2024
1 parent b2f2eb3 commit d79a709
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 15 deletions.
6 changes: 2 additions & 4 deletions vertx-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -86,12 +86,12 @@
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport-native-epoll</artifactId>
<artifactId>netty-transport-classes-epoll</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport-native-kqueue</artifactId>
<artifactId>netty-transport-classes-kqueue</artifactId>
<optional>true</optional>
</dependency>

Expand Down Expand Up @@ -381,9 +381,7 @@
<include>io/vertx/it/transport/TransportTest.java</include>
</includes>
<classpathDependencyExcludes>
<classpathDependencyExclude>io.netty:netty-transport-native-epoll</classpathDependencyExclude>
<classpathDependencyExclude>io.netty:netty-transport-classes-epoll</classpathDependencyExclude>
<classpathDependencyExclude>io.netty:netty-transport-native-kqueue</classpathDependencyExclude>
<classpathDependencyExclude>io.netty:netty-transport-classes-kqueue</classpathDependencyExclude>
</classpathDependencyExcludes>
</configuration>
Expand Down
1 change: 0 additions & 1 deletion vertx-core/src/main/java/io/vertx/core/VertxOptions.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import io.vertx.core.dns.AddressResolverOptions;
import io.vertx.core.eventbus.EventBusOptions;
import io.vertx.core.file.FileSystemOptions;
import io.vertx.core.impl.SysProps;
import io.vertx.core.impl.cpu.CpuCoreSensor;
import io.vertx.core.json.JsonObject;
import io.vertx.core.metrics.MetricsOptions;
Expand Down
22 changes: 15 additions & 7 deletions vertx-core/src/main/java/io/vertx/core/impl/VertxBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ public class VertxBuilder implements VertxBootstrap {
private VertxOptions options;
private JsonObject config;
private Transport transport;
private Throwable transportUnavailabilityCause;
private ClusterManager clusterManager;
private NodeSelector clusterNodeSelector;
private VertxTracerFactory tracerFactory;
Expand Down Expand Up @@ -206,6 +207,7 @@ public Vertx vertx() {
metrics,
tracer,
transport,
transportUnavailabilityCause,
fileResolver,
threadFactory,
executorServiceFactory);
Expand All @@ -228,6 +230,7 @@ public Future<Vertx> clusteredVertx() {
metrics,
tracer,
transport,
transportUnavailabilityCause,
fileResolver,
threadFactory,
executorServiceFactory);
Expand Down Expand Up @@ -279,7 +282,17 @@ private void initTransport() {
if (transport != null) {
return;
}
transport = findTransport(options.getPreferNativeTransport());
Transport t = findTransport(options.getPreferNativeTransport());
if (t != null) {
if (t.isAvailable()) {
transport = t;
} else {
transport = JDKTransport.INSTANCE;
transportUnavailabilityCause = t.unavailabilityCause();
}
} else {
transport = JDKTransport.INSTANCE;
}
}

private void initFileResolver() {
Expand Down Expand Up @@ -362,12 +375,7 @@ static Transport findTransport(boolean preferNative) {
return transport;
}
}
Transport nativeTransport = nativeTransport();
if (nativeTransport != null && nativeTransport.isAvailable()) {
return nativeTransport;
} else {
return JDKTransport.INSTANCE;
}
return nativeTransport();
} else {
return JDKTransport.INSTANCE;
}
Expand Down
8 changes: 5 additions & 3 deletions vertx-core/src/main/java/io/vertx/core/impl/VertxImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -163,14 +163,15 @@ private static ThreadFactory virtualThreadFactory() {
private final TimeUnit maxEventLoopExecTimeUnit;
private final CloseFuture closeFuture;
private final Transport transport;
private final Throwable transportUnavailabilityCause;
private final VertxTracer tracer;
private final ThreadLocal<WeakReference<ContextInternal>> stickyContext = new ThreadLocal<>();
private final boolean disableTCCL;
private final Boolean useDaemonThread;

VertxImpl(VertxOptions options, ClusterManager clusterManager, NodeSelector nodeSelector, VertxMetrics metrics,
VertxTracer<?, ?> tracer, Transport transport, FileResolver fileResolver, VertxThreadFactory threadFactory,
ExecutorServiceFactory executorServiceFactory) {
VertxTracer<?, ?> tracer, Transport transport, Throwable transportUnavailabilityCause,
FileResolver fileResolver, VertxThreadFactory threadFactory, ExecutorServiceFactory executorServiceFactory) {
// Sanity check
if (Vertx.currentContext() != null) {
log.warn("You're already on a Vert.x context, are you sure you want to create a new Vertx instance?");
Expand Down Expand Up @@ -218,6 +219,7 @@ private static ThreadFactory virtualThreadFactory() {
this.threadFactory = threadFactory;
this.metrics = metrics;
this.transport = transport;
this.transportUnavailabilityCause = transportUnavailabilityCause;
this.fileResolver = fileResolver;
this.addressResolverOptions = options.getAddressResolverOptions();
this.hostnameResolver = new HostnameResolver(this, options.getAddressResolverOptions());
Expand Down Expand Up @@ -368,7 +370,7 @@ public Throwable unavailableNativeTransportCause() {
if (isNativeTransportEnabled()) {
return null;
}
return transport.unavailabilityCause();
return transportUnavailabilityCause;
}

public FileSystem fileSystem() {
Expand Down

0 comments on commit d79a709

Please sign in to comment.