in spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/consul/SidecarConsulAutoRegistration.java [52:95]
public static ConsulAutoRegistration registration(
AutoServiceRegistrationProperties autoServiceRegistrationProperties,
ConsulDiscoveryProperties properties, ApplicationContext context,
List<ConsulRegistrationCustomizer> registrationCustomizers,
List<ConsulManagementRegistrationCustomizer> managementRegistrationCustomizers,
HeartbeatProperties heartbeatProperties,
SidecarProperties sidecarProperties) {
NewService service = new NewService();
String appName = getAppName(properties, context.getEnvironment());
service.setId(getInstanceId(sidecarProperties, context.getEnvironment()));
if (!properties.isPreferAgentAddress()) {
service.setAddress(sidecarProperties.getIp());
}
service.setName(normalizeForDns(appName));
service.setTags(new ArrayList<>(properties.getTags()));
service.setEnableTagOverride(properties.getEnableTagOverride());
service.setMeta(getMetadata(properties));
if (sidecarProperties.getPort() != null && sidecarProperties.getPort() > 0) {
service.setPort(properties.getPort());
}
else if (properties.getPort() != null && properties.getPort() > 0) {
service.setPort(properties.getPort());
}
else if (context.getEnvironment().getProperty("server.port") != null) {
// set health check, use alibaba sidecar self's port rather than polyglot
// app's port.
service.setPort(
Integer.valueOf(context.getEnvironment().getProperty("server.port")));
}
if (service.getPort() != null) {
// we know the port and can set the check
setCheck(service, autoServiceRegistrationProperties, properties, context,
heartbeatProperties);
}
ConsulAutoRegistration registration = new ConsulAutoRegistration(service,
autoServiceRegistrationProperties, properties, context,
heartbeatProperties, managementRegistrationCustomizers);
customize(registrationCustomizers, registration);
return registration;
}