static String getServiceName(Annotation... qualifiers) { for (Annotation annotation : qualifiers) { if (annotation instanceof ServiceName) { return ((ServiceName) annotation).value(); } } return null; }
private boolean qualifies(Service s, Annotation... qualifiers) { for (Annotation annotation : qualifiers) { if (annotation instanceof ServiceName) { String id = ((ServiceName) annotation).value(); return id.equals(s.getId()); } } return false; } }
private static void resolveServicesOffline( Object bean, List<Field> serverNameFields, JsonObject env) throws KubernetesClientException { serverNameFields.forEach( serviceNameField -> { final ServiceName serviceNameAnnotation = serviceNameField.getAnnotation(ServiceName.class); final String serviceName = serviceNameAnnotation.value(); final boolean withLabel = serviceNameField.isAnnotationPresent(WithLabel.class); final boolean withLabels = serviceNameField.isAnnotationPresent(WithLabels.class); if (isServiceNameOnly(withLabel, withLabels)) { resolveOfflineByServiceName(bean, env, serviceNameField, serviceName); } else { resolveOfflineServiceByLabelOnly(bean, env, serviceNameField, withLabel, withLabels); } }); }
private static void findServiceEntryAndSetValue( Object bean, List<Field> serverNameFields, JsonObject env, KubernetesClient client) throws KubernetesClientException { Objects.requireNonNull(client, "no client available"); serverNameFields.forEach( serviceNameField -> { final ServiceName serviceNameAnnotation = serviceNameField.getAnnotation(ServiceName.class); final String serviceName = serviceNameAnnotation.value(); final boolean withLabel = serviceNameField.isAnnotationPresent(WithLabel.class); final boolean withLabels = serviceNameField.isAnnotationPresent(WithLabels.class); if (isServiceNameOnly(withLabel, withLabels)) { resolveByServiceName(bean, env, client, serviceNameField, serviceName); } else { resolveServiceByLabelOnly(bean, env, client, serviceNameField, withLabel, withLabels); } }); }