use of org.talend.components.common.dataset.runtime.DatasetRuntime in project components by Talend.
the class RuntimeControllerImpl method useDatasetRuntime.
private <//
T> //
T useDatasetRuntime(//
final DatasetDefinition<DatasetProperties<DatastoreProperties>> datasetDefinition, //
DatasetProperties datasetProperties, Function<DatasetRuntime<DatasetProperties<DatastoreProperties>>, T> consumer) {
try (SandboxedInstance instance = RuntimeUtil.createRuntimeClass(datasetDefinition.getRuntimeInfo(datasetProperties), datasetProperties.getClass().getClassLoader())) {
DatasetRuntime<DatasetProperties<DatastoreProperties>> datasetRuntimeInstance = (DatasetRuntime<DatasetProperties<DatastoreProperties>>) instance.getInstance();
datasetRuntimeInstance.initialize(null, datasetProperties);
return consumer.apply(datasetRuntimeInstance);
}
}
use of org.talend.components.common.dataset.runtime.DatasetRuntime in project components by Talend.
the class SandboxedFixedInputRuntimeTest method testDatasetGetSample.
@Test
public void testDatasetGetSample() throws Exception {
// The two records to use as values.
GenericRecord r1 = new GenericData.Record(SampleSchemas.recordSimple());
r1.put("id", 1);
r1.put("name", "one");
GenericRecord r2 = new GenericData.Record(SampleSchemas.recordSimple());
r2.put("id", 2);
r2.put("name", "two");
final FixedDatasetProperties props = createComponentProperties().getDatasetProperties();
props.format.setValue(FixedDatasetProperties.RecordFormat.AVRO);
props.schema.setValue(SampleSchemas.recordSimple().toString());
props.values.setValue(r1.toString() + r2.toString());
final List<IndexedRecord> consumed = new ArrayList<>();
RuntimeInfo ri = new FixedDatasetDefinition().getRuntimeInfo(props);
try (SandboxedInstance si = RuntimeUtil.createRuntimeClass(ri, getClass().getClassLoader())) {
DatasetRuntime<FixedDatasetProperties> runtime = (DatasetRuntime<FixedDatasetProperties>) si.getInstance();
runtime.initialize(null, props);
// The functionality of the runtime is tested in its own module.
runtime.getSample(100, new Consumer<IndexedRecord>() {
@Override
public void accept(IndexedRecord ir) {
consumed.add(ir);
}
});
}
assertThat(consumed, hasSize(2));
}
use of org.talend.components.common.dataset.runtime.DatasetRuntime in project components by Talend.
the class JdbcDatasetRuntimeTest method testBasic.
@Test
public void testBasic() throws Exception {
JDBCDatasetProperties props = createDatasetProperties();
final List<IndexedRecord> consumed = new ArrayList<>();
RuntimeInfo ri = def.getRuntimeInfo(props);
try (SandboxedInstance si = RuntimeUtil.createRuntimeClass(ri, getClass().getClassLoader())) {
DatasetRuntime runtime = (DatasetRuntime) si.getInstance();
runtime.initialize(null, props);
assertThat(runtime, not(nullValue()));
Schema s = runtime.getSchema();
assertThat(s, not(nullValue()));
runtime.getSample(100, new Consumer<IndexedRecord>() {
@Override
public void accept(IndexedRecord ir) {
consumed.add(ir);
}
});
}
assertThat(consumed, hasSize(2));
}
use of org.talend.components.common.dataset.runtime.DatasetRuntime in project components by Talend.
the class KafkaDatasetTestIT method testBasic.
@Test
public void testBasic() throws Exception {
KafkaDatasetProperties props = createDatasetProperties();
final List<IndexedRecord> consumed = new ArrayList<>();
RuntimeInfo ri = def.getRuntimeInfo(props);
try (SandboxedInstance si = RuntimeUtil.createRuntimeClass(ri, getClass().getClassLoader())) {
DatasetRuntime runtime = (DatasetRuntime) si.getInstance();
runtime.initialize(null, props);
assertThat(runtime, not(nullValue()));
Schema s = runtime.getSchema();
assertThat(s, not(nullValue()));
runtime.getSample(100, new Consumer<IndexedRecord>() {
@Override
public void accept(IndexedRecord ir) {
consumed.add(ir);
}
});
}
assertThat(consumed, hasSize(0));
}
use of org.talend.components.common.dataset.runtime.DatasetRuntime in project components by Talend.
the class BigQueryDatasetTestIT method testBasic.
@Test
public void testBasic() throws Exception {
BigQueryDatasetProperties props = createDatasetProperties();
props.sourceType.setValue(SourceType.QUERY);
props.query.setValue("SELECT * FROM [bigquery-public-data:samples.shakespeare] LIMIT 1");
props.useLegacySql.setValue(true);
final List<IndexedRecord> consumed = new ArrayList<>();
RuntimeInfo ri = def.getRuntimeInfo(props);
try (SandboxedInstance si = RuntimeUtil.createRuntimeClass(ri, getClass().getClassLoader())) {
DatasetRuntime runtime = (DatasetRuntime) si.getInstance();
runtime.initialize(null, props);
assertThat(runtime, not(nullValue()));
Schema s = runtime.getSchema();
assertThat(s, not(nullValue()));
runtime.getSample(100, new Consumer<IndexedRecord>() {
@Override
public void accept(IndexedRecord ir) {
consumed.add(ir);
}
});
}
assertThat(consumed, hasSize(1));
}
Aggregations