Код: Выделить всё
@ComponentSupplier(MyComponentSupplier.class)
public class CustomSqlAggregatorTest extends BaseCalciteQueryTest {
@Test
public void testCustomAggSql() {
cannotVectorize();
testBuilder()
.sql("select CUSTOM_AGG(m1) from foo")
.expectedQueries(
List.of(
Druids.newTimeseriesQueryBuilder()
.dataSource(CalciteTests.DATASOURCE1)
.intervals(querySegmentSpec(Filtration.eternity()))
.granularity(Granularities.ALL)
.aggregators(aggregators(getAggFactory()))
.context(QUERY_CONTEXT_DEFAULT)
.build()
)
)
.expectedResults(ImmutableList.of(new Object[]{21.0F}))
.run();
}
...
}
< /code>
Но я получаю следующую ошибку: < /p>
Caused by: java.lang.NullPointerException: Cannot read field "componentSupplier" because "config" is null
at org.apache.druid.sql.calcite.SqlTestFrameworkConfig$ConfigurationInstance.(SqlTestFrameworkConfig.java:378)
at org.apache.druid.sql.calcite.SqlTestFrameworkConfig$SqlTestFrameworkConfigStore.getConfigurationInstance(SqlTestFrameworkConfig.java:253)
at org.apache.druid.sql.calcite.SqlTestFrameworkConfig$Rule.get(SqlTestFrameworkConfig.java:344)
at org.apache.druid.sql.calcite.BaseCalciteQueryTest.queryFramework(BaseCalciteQueryTest.java:535)
... 34 more
< /code>
код поставщика моего компонента выглядит следующим образом: < /p>
public class MyComponentSupplier extends SqlTestFramework.StandardComponentSupplier {
public MyComponentSupplier(TempDirProducer tempDirProducer) {
super(tempDirProducer);
}
@Override
public DruidModule getCoreModule() {
return DruidModuleCollection.of(
super.getCoreModule(),
new MyExtensionModule()
);
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... ier-becaus