31
31
import io .quarkus .deployment .builditem .nativeimage .RuntimeReinitializedClassBuildItem ;
32
32
import io .quarkus .deployment .builditem .nativeimage .UnsafeAccessedFieldBuildItem ;
33
33
import io .quarkus .deployment .logging .LogCleanupFilterBuildItem ;
34
- import io .quarkus .deployment .pkg .steps .NativeOrNativeSourcesBuild ;
35
34
import io .quarkus .netty .BossEventLoopGroup ;
36
35
import io .quarkus .netty .MainEventLoopGroup ;
37
36
import io .quarkus .netty .runtime .EmptyByteBufStub ;
@@ -78,7 +77,7 @@ public SystemPropertyBuildItem setNettyMachineId() {
78
77
return new SystemPropertyBuildItem ("io.netty.machineId" , nettyMachineId );
79
78
}
80
79
81
- @ BuildStep ( onlyIf = NativeOrNativeSourcesBuild . class )
80
+ @ BuildStep
82
81
NativeImageConfigBuildItem build (
83
82
NettyBuildTimeConfig config ,
84
83
BuildProducer <ReflectiveClassBuildItem > reflectiveClass ,
@@ -95,8 +94,6 @@ NativeImageConfigBuildItem build(
95
94
String maxOrder = calculateMaxOrder (config .allocatorMaxOrder , minMaxOrderBuildItems , false );
96
95
97
96
NativeImageConfigBuildItem .Builder builder = NativeImageConfigBuildItem .builder ()
98
- // disable unsafe usage to allow io.netty.internal.PlarformDependent0 to be reinitialized without issues
99
- .addNativeImageSystemProperty ("io.netty.noUnsafe" , "true" )
100
97
// Use small chunks to avoid a lot of wasted space. Default is 16mb * arenas (derived from core count)
101
98
// Since buffers are cached to threads, the malloc overhead is temporary anyway
102
99
.addNativeImageSystemProperty ("io.netty.allocator.maxOrder" , maxOrder )
@@ -112,14 +109,8 @@ NativeImageConfigBuildItem build(
112
109
.addRuntimeInitializedClass ("io.netty.buffer.ByteBufUtil" )
113
110
// The default channel id uses the process id, it should not be cached in the native image.
114
111
.addRuntimeInitializedClass ("io.netty.channel.DefaultChannelId" )
115
- // Make sure to re-initialize platform dependent classes/values at runtime
116
- .addRuntimeReinitializedClass ("io.netty.util.internal.PlatformDependent" )
117
- .addRuntimeReinitializedClass ("io.netty.util.internal.PlatformDependent0" )
118
112
.addNativeImageSystemProperty ("io.netty.leakDetection.level" , "DISABLED" );
119
113
120
- // Also set io.netty.noUnsafe at runtime
121
- systemProperties .produce (new SystemPropertyBuildItem ("io.netty.noUnsafe" , "true" ));
122
-
123
114
if (QuarkusClassLoader .isClassPresentAtRuntime ("io.netty.handler.codec.http.HttpObjectEncoder" )) {
124
115
builder
125
116
.addRuntimeInitializedClass ("io.netty.handler.codec.http.HttpObjectEncoder" )
@@ -168,7 +159,8 @@ NativeImageConfigBuildItem build(
168
159
log .debug ("Not registering Netty native kqueue classes as they were not found" );
169
160
}
170
161
171
- return builder .build ();
162
+ return builder //TODO: make configurable
163
+ .build ();
172
164
}
173
165
174
166
@ BuildStep
0 commit comments