19
19
20
20
import java .util .Collections ;
21
21
22
+ import com .alibaba .cloud .nacos .NacosServiceAutoConfiguration ;
23
+ import com .alibaba .cloud .nacos .discovery .NacosDiscoveryAutoConfiguration ;
24
+ import com .alibaba .cloud .nacos .registry .NacosRegistration ;
25
+ import com .alibaba .cloud .nacos .registry .NacosServiceRegistryAutoConfiguration ;
26
+ import com .alibaba .cloud .nacos .util .UtilIPv6AutoConfiguration ;
22
27
import com .tencent .cloud .common .util .OkHttpUtil ;
23
28
import com .tencent .cloud .plugin .lossless .config .LosslessAutoConfiguration ;
24
29
import com .tencent .cloud .plugin .lossless .config .LosslessPropertiesBootstrapConfiguration ;
30
+ import com .tencent .cloud .plugin .lossless .transfomer .DiscoveryNamespaceGetter ;
25
31
import com .tencent .cloud .polaris .context .PolarisSDKContextManager ;
26
32
import com .tencent .cloud .polaris .context .config .PolarisContextAutoConfiguration ;
27
33
import com .tencent .cloud .polaris .discovery .PolarisDiscoveryAutoConfiguration ;
28
34
import com .tencent .cloud .polaris .discovery .PolarisDiscoveryClientConfiguration ;
29
35
import com .tencent .cloud .polaris .registry .PolarisRegistration ;
30
36
import com .tencent .cloud .polaris .registry .PolarisServiceRegistry ;
37
+ import com .tencent .polaris .api .pojo .BaseInstance ;
31
38
import com .tencent .polaris .api .pojo .ServiceKey ;
32
39
import com .tencent .polaris .test .mock .discovery .NamingServer ;
33
40
import org .junit .jupiter .api .AfterAll ;
39
46
import org .springframework .boot .autoconfigure .EnableAutoConfiguration ;
40
47
import org .springframework .boot .test .context .runner .WebApplicationContextRunner ;
41
48
import org .springframework .cloud .client .serviceregistry .AbstractAutoServiceRegistration ;
49
+ import org .springframework .cloud .client .serviceregistry .AutoServiceRegistrationProperties ;
42
50
import org .springframework .cloud .client .serviceregistry .AutoServiceRegistrationUtils ;
51
+ import org .springframework .cloud .client .serviceregistry .Registration ;
52
+ import org .springframework .cloud .commons .util .UtilAutoConfiguration ;
43
53
import org .springframework .context .annotation .Configuration ;
44
54
45
55
import static org .assertj .core .api .Assertions .assertThat ;
@@ -72,6 +82,7 @@ public class LosslessRegistryAspectTest {
72
82
PolarisPropertiesConfiguration .class ,
73
83
PolarisDiscoveryClientConfiguration .class ,
74
84
PolarisDiscoveryAutoConfiguration .class ))
85
+ .withPropertyValues ("spring.cloud.nacos.discovery.enabled=false" )
75
86
.withPropertyValues ("spring.cloud.polaris.lossless.delayRegisterInterval=5000" )
76
87
.withPropertyValues ("spring.cloud.polaris.lossless.healthCheckPath=" )
77
88
.withPropertyValues ("spring.cloud.polaris.lossless.port=" + LOSSLESS_PORT_1 )
@@ -91,6 +102,7 @@ public class LosslessRegistryAspectTest {
91
102
PolarisPropertiesConfiguration .class ,
92
103
PolarisDiscoveryClientConfiguration .class ,
93
104
PolarisDiscoveryAutoConfiguration .class ))
105
+ .withPropertyValues ("spring.cloud.nacos.discovery.enabled=false" )
94
106
.withPropertyValues ("spring.cloud.polaris.lossless.healthCheckInterval=1000" )
95
107
.withPropertyValues ("spring.cloud.polaris.lossless.healthCheckPath=/test" )
96
108
.withPropertyValues ("spring.cloud.polaris.lossless.port=28082" )
@@ -102,6 +114,31 @@ public class LosslessRegistryAspectTest {
102
114
.withPropertyValues ("spring.cloud.polaris.discovery.namespace=" + NAMESPACE_TEST )
103
115
.withPropertyValues ("spring.cloud.polaris.discovery.token=xxxxxx" );
104
116
117
+ private final WebApplicationContextRunner nacosContextRunner = new WebApplicationContextRunner ()
118
+ .withConfiguration (AutoConfigurations .of (
119
+ AutoServiceRegistrationProperties .class ,
120
+ UtilAutoConfiguration .class ,
121
+ UtilIPv6AutoConfiguration .class ,
122
+ NacosDiscoveryAutoConfiguration .class ,
123
+ NacosServiceAutoConfiguration .class ,
124
+ NacosServiceRegistryAutoConfiguration .class ,
125
+ LosslessAutoConfiguration .class ,
126
+ LosslessPropertiesBootstrapConfiguration .class ,
127
+ PolarisContextAutoConfiguration .class )
128
+ )
129
+ .withPropertyValues ("spring.cloud.nacos.discovery.enabled=true" )
130
+ .withPropertyValues ("spring.cloud.nacos.discovery.namespace=" + NAMESPACE_TEST )
131
+ .withPropertyValues ("spring.cloud.polaris.discovery.enabled=false" )
132
+ .withPropertyValues ("spring.cloud.polaris.lossless.delayRegisterInterval=5000" )
133
+ .withPropertyValues ("spring.cloud.polaris.lossless.healthCheckPath=" )
134
+ .withPropertyValues ("spring.cloud.polaris.lossless.port=" + LOSSLESS_PORT_1 )
135
+ .withPropertyValues ("spring.application.name=" + SERVICE_PROVIDER )
136
+ .withPropertyValues ("server.port=" + APPLICATION_PORT )
137
+ .withPropertyValues ("spring.cloud.polaris.localIpAddress=" + HOST )
138
+ .withPropertyValues ("spring.cloud.polaris.localPort=" + APPLICATION_PORT )
139
+ .withPropertyValues ("spring.cloud.polaris.address=grpc://127.0.0.1:10081" )
140
+ .withPropertyValues ("spring.cloud.polaris.discovery.token=xxxxxx" );
141
+
105
142
@ BeforeAll
106
143
static void beforeAll () throws Exception {
107
144
namingServer = NamingServer .startNamingServer (10081 );
@@ -181,6 +218,21 @@ public void testRegister2() {
181
218
});
182
219
}
183
220
221
+ @ Test
222
+ public void testNaocsRegister () {
223
+ this .nacosContextRunner .run (context -> {
224
+
225
+ DiscoveryNamespaceGetter discoveryNamespaceGetter = context .getBean (DiscoveryNamespaceGetter .class );
226
+ Registration registration = context .getBean (Registration .class );
227
+
228
+ assertThat (registration instanceof NacosRegistration ).isTrue ();
229
+ assertThat (discoveryNamespaceGetter .getNamespace ()).isEqualTo (NAMESPACE_TEST );
230
+
231
+ BaseInstance baseInstance = SpringCloudLosslessActionProvider .getBaseInstance (registration , discoveryNamespaceGetter );
232
+ assertThat (baseInstance .getNamespace ()).isEqualTo (NAMESPACE_TEST );
233
+ });
234
+ }
235
+
184
236
185
237
@ Configuration
186
238
@ EnableAutoConfiguration
0 commit comments