mirror of https://github.com/apache/druid.git
RemoteTaskRunnerConfig: Fix Guice error on startup. (#3737)
This commit is contained in:
parent
ff42058453
commit
4e67dd28c0
|
@ -24,6 +24,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.databind.introspect.AnnotatedField;
|
import com.fasterxml.jackson.databind.introspect.AnnotatedField;
|
||||||
import com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition;
|
import com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition;
|
||||||
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
import com.google.common.base.Strings;
|
import com.google.common.base.Strings;
|
||||||
import com.google.common.base.Throwables;
|
import com.google.common.base.Throwables;
|
||||||
|
@ -33,7 +34,6 @@ import com.google.common.collect.Maps;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.google.inject.ProvisionException;
|
import com.google.inject.ProvisionException;
|
||||||
import com.google.inject.spi.Message;
|
import com.google.inject.spi.Message;
|
||||||
|
|
||||||
import io.druid.java.util.common.logger.Logger;
|
import io.druid.java.util.common.logger.Logger;
|
||||||
|
|
||||||
import javax.validation.ConstraintViolation;
|
import javax.validation.ConstraintViolation;
|
||||||
|
@ -69,7 +69,7 @@ public class JsonConfigurator
|
||||||
|
|
||||||
public <T> T configurate(Properties props, String propertyPrefix, Class<T> clazz) throws ProvisionException
|
public <T> T configurate(Properties props, String propertyPrefix, Class<T> clazz) throws ProvisionException
|
||||||
{
|
{
|
||||||
verifyClazzIsConfigurable(clazz);
|
verifyClazzIsConfigurable(jsonMapper, clazz);
|
||||||
|
|
||||||
// Make it end with a period so we only include properties with sub-object thingies.
|
// Make it end with a period so we only include properties with sub-object thingies.
|
||||||
final String propertyBase = propertyPrefix.endsWith(".") ? propertyPrefix : propertyPrefix + ".";
|
final String propertyBase = propertyPrefix.endsWith(".") ? propertyPrefix : propertyPrefix + ".";
|
||||||
|
@ -165,10 +165,11 @@ public class JsonConfigurator
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T> void verifyClazzIsConfigurable(Class<T> clazz)
|
@VisibleForTesting
|
||||||
|
public static <T> void verifyClazzIsConfigurable(ObjectMapper mapper, Class<T> clazz)
|
||||||
{
|
{
|
||||||
final List<BeanPropertyDefinition> beanDefs = jsonMapper.getSerializationConfig()
|
final List<BeanPropertyDefinition> beanDefs = mapper.getSerializationConfig()
|
||||||
.introspect(jsonMapper.constructType(clazz))
|
.introspect(mapper.constructType(clazz))
|
||||||
.findProperties();
|
.findProperties();
|
||||||
for (BeanPropertyDefinition beanDef : beanDefs) {
|
for (BeanPropertyDefinition beanDef : beanDefs) {
|
||||||
final AnnotatedField field = beanDef.getField();
|
final AnnotatedField field = beanDef.getField();
|
||||||
|
|
|
@ -72,7 +72,6 @@ public class RemoteTaskRunnerConfig extends WorkerTaskRunnerConfig
|
||||||
return taskAssignmentTimeout;
|
return taskAssignmentTimeout;
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonProperty
|
|
||||||
public Period getTaskCleanupTimeout(){
|
public Period getTaskCleanupTimeout(){
|
||||||
return taskCleanupTimeout;
|
return taskCleanupTimeout;
|
||||||
}
|
}
|
||||||
|
@ -105,7 +104,7 @@ public class RemoteTaskRunnerConfig extends WorkerTaskRunnerConfig
|
||||||
return workerBlackListBackoffTime;
|
return workerBlackListBackoffTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTaskBlackListBackoffTimeMillis(Period taskBlackListBackoffTime) {
|
public void setWorkerBlackListBackoffTime(Period taskBlackListBackoffTime) {
|
||||||
this.workerBlackListBackoffTime = taskBlackListBackoffTime;
|
this.workerBlackListBackoffTime = taskBlackListBackoffTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
package io.druid.indexing.overlord.config;
|
package io.druid.indexing.overlord.config;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import io.druid.guice.JsonConfigurator;
|
||||||
import io.druid.jackson.DefaultObjectMapper;
|
import io.druid.jackson.DefaultObjectMapper;
|
||||||
import org.joda.time.Period;
|
import org.joda.time.Period;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
@ -40,6 +41,12 @@ public class RemoteTaskRunnerConfigTest
|
||||||
private static final Period DEFAULT_TASK_BACKOFF = new Period("PT10M");
|
private static final Period DEFAULT_TASK_BACKOFF = new Period("PT10M");
|
||||||
private static final Period DEFAULT_BLACKLIST_CLEANUP_PERIOD = new Period("PT5M");
|
private static final Period DEFAULT_BLACKLIST_CLEANUP_PERIOD = new Period("PT5M");
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIsJsonConfiguratable()
|
||||||
|
{
|
||||||
|
JsonConfigurator.verifyClazzIsConfigurable(mapper, RemoteTaskRunnerConfig.class);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetTaskAssignmentTimeout() throws Exception
|
public void testGetTaskAssignmentTimeout() throws Exception
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue