Browse Source

Adds reflection hack back.

Hopefully not for long.
pull/284/head
Spencer Gibb 7 years ago
parent
commit
d31e7ae499
No known key found for this signature in database
GPG Key ID: 7788A47380690861
  1. 10
      spring-cloud-context/src/main/java/org/springframework/cloud/context/scope/refresh/RefreshScope.java

10
spring-cloud-context/src/main/java/org/springframework/cloud/context/scope/refresh/RefreshScope.java

@ -14,6 +14,7 @@ @@ -14,6 +14,7 @@
package org.springframework.cloud.context.scope.refresh;
import java.io.Serializable;
import java.lang.reflect.Field;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanDefinition;
@ -26,8 +27,10 @@ import org.springframework.context.event.ContextRefreshedEvent; @@ -26,8 +27,10 @@ import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.EventListener;
import org.springframework.core.Ordered;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.MutablePropertySources;
import org.springframework.jmx.export.annotation.ManagedOperation;
import org.springframework.jmx.export.annotation.ManagedResource;
import org.springframework.util.ReflectionUtils;
/**
* <p>
@ -150,8 +153,11 @@ public class RefreshScope extends GenericScope @@ -150,8 +153,11 @@ public class RefreshScope extends GenericScope
try {
ConfigurationPropertiesBindingPostProcessor processor = context
.getBean(ConfigurationPropertiesBindingPostProcessor.class);
processor.setPropertySources(((ConfigurableEnvironment) this.context.getEnvironment()).getPropertySources());
processor.destroy();
//TODO: replace reflection with agreed upon contract
Field field = ReflectionUtils.findField(ConfigurationPropertiesBindingPostProcessor.class, "propertySources");
ReflectionUtils.makeAccessible(field);
MutablePropertySources propertySources = ((ConfigurableEnvironment) this.context.getEnvironment()).getPropertySources();
ReflectionUtils.setField(field, processor, propertySources);
processor.afterPropertiesSet();
}
catch (Exception e) {

Loading…
Cancel
Save