Search in sources :

Example 16 with Result

use of org.talend.components.api.component.runtime.Result in project components by Talend.

the class SalesforceTestBase method doWriteRows.

// Returns the rows written (having been re-read so they have their Ids)
protected static void doWriteRows(SalesforceConnectionModuleProperties props, List<IndexedRecord> outputRows) throws Exception {
    SalesforceSink salesforceSink = new SalesforceSink();
    salesforceSink.initialize(adaptor, props);
    salesforceSink.validate(adaptor);
    SalesforceWriteOperation writeOperation = salesforceSink.createWriteOperation();
    Writer<Result> saleforceWriter = writeOperation.createWriter(adaptor);
    writeRows(saleforceWriter, outputRows);
}
Also used : SalesforceWriteOperation(org.talend.components.salesforce.runtime.SalesforceWriteOperation) SalesforceSink(org.talend.components.salesforce.runtime.SalesforceSink) ValidationResult(org.talend.daikon.properties.ValidationResult) Result(org.talend.components.api.component.runtime.Result)

Example 17 with Result

use of org.talend.components.api.component.runtime.Result in project components by Talend.

the class CouchbaseReader method getReturnValues.

@Override
public Map<String, Object> getReturnValues() {
    Result result = new Result();
    result.totalCount = recordCount;
    return result.toMap();
}
Also used : Result(org.talend.components.api.component.runtime.Result)

Example 18 with Result

use of org.talend.components.api.component.runtime.Result in project components by Talend.

the class JDBCInputReader method start.

@Override
public boolean start() throws IOException {
    if (container != null) {
        container.setComponentData(container.getCurrentComponentId(), CommonUtils.getStudioNameFromProperty(ComponentConstants.RETURN_QUERY), setting.getSql());
    }
    result = new Result();
    try {
        conn = source.getConnection(container);
        String driverClass = setting.getDriverClass();
        if (driverClass != null && driverClass.toLowerCase().contains("mysql")) {
            statement = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
            Class clazz = statement.getClass();
            try {
                Method method = clazz.getMethod("enableStreamingResults");
                if (method != null) {
                    // have to use reflect here
                    method.invoke(statement);
                }
            } catch (Exception e) {
            // ignore anything
            }
        } else {
            statement = conn.createStatement();
        }
        if (setting.getUseCursor()) {
            statement.setFetchSize(setting.getCursor());
        }
        resultSet = statement.executeQuery(setting.getSql());
        return haveNext();
    } catch (SQLException e) {
        throw CommonUtils.newComponentException(JdbcComponentErrorsCode.SQL_ERROR, e);
    } catch (Exception e) {
        throw CommonUtils.newComponentException(e);
    }
}
Also used : SQLException(java.sql.SQLException) Method(java.lang.reflect.Method) SQLException(java.sql.SQLException) NoSuchElementException(java.util.NoSuchElementException) IOException(java.io.IOException) Result(org.talend.components.api.component.runtime.Result)

Example 19 with Result

use of org.talend.components.api.component.runtime.Result in project components by Talend.

the class SnowflakeRowWriterTest method testWriteWithPreparedStatement.

@Test
public void testWriteWithPreparedStatement() throws IOException, SQLException {
    Result result = null;
    rowProperties.usePreparedStatement.setValue(true);
    Schema schema = SchemaBuilder.builder().record("record").fields().requiredInt("id").requiredString("name").requiredInt("age").endRecord();
    rowProperties.table.main.schema.setValue(schema);
    rowProperties.afterMainSchema();
    Mockito.when(sink.getRuntimeSchema(null)).thenReturn(schema);
    rowProperties.preparedStatementTable.indexes.setValue(new ArrayList<Integer>());
    IndexedRecord record = Mockito.mock(IndexedRecord.class);
    Mockito.when(record.getSchema()).thenReturn(schema);
    Mockito.when(record.get(Mockito.anyInt())).thenReturn(1, "nameValue", 46);
    PreparedStatement preparedStatement = Mockito.mock(PreparedStatement.class);
    Mockito.when(connection.prepareStatement(query)).thenReturn(preparedStatement);
    Mockito.when(preparedStatement.executeQuery()).thenReturn(rs).thenThrow(new SQLException("second query failed"));
    ResultSetMetaData rsMetadata = Mockito.mock(ResultSetMetaData.class);
    Mockito.when(rs.getMetaData()).thenReturn(rsMetadata);
    Mockito.when(rsMetadata.getColumnCount()).thenReturn(schema.getFields().size());
    // First call is for checking insert/update delete result set column names.
    Mockito.when(rsMetadata.getColumnName(Mockito.anyInt())).thenReturn("id", "id", "name", "age");
    Mockito.when(rs.next()).thenReturn(true, true, false);
    try {
        writer.open("id");
        writer.write(record);
        writer.write(record);
    } finally {
        result = writer.close();
    }
    Assert.assertEquals(3, result.totalCount);
    Assert.assertEquals(2, result.successCount);
    Assert.assertEquals(1, result.rejectCount);
}
Also used : ResultSetMetaData(java.sql.ResultSetMetaData) IndexedRecord(org.apache.avro.generic.IndexedRecord) SQLException(java.sql.SQLException) Schema(org.apache.avro.Schema) PreparedStatement(java.sql.PreparedStatement) Result(org.talend.components.api.component.runtime.Result) Test(org.junit.Test)

Example 20 with Result

use of org.talend.components.api.component.runtime.Result in project components by Talend.

the class SnowflakeRowWriterTest method testWriteWithoutPreparedStatement.

@Test
public void testWriteWithoutPreparedStatement() throws IOException, SQLException {
    Result result = null;
    Schema schema = SchemaBuilder.builder().record("record").fields().requiredInt("id").requiredString("name").requiredInt("age").endRecord();
    rowProperties.table.main.schema.setValue(schema);
    rowProperties.usePreparedStatement.setValue(false);
    Mockito.when(sink.getRuntimeSchema(null)).thenReturn(schema);
    IndexedRecord record = new GenericData.Record(schema);
    record.put(0, 1);
    record.put(1, "name");
    record.put(2, 44);
    Statement statement = Mockito.mock(Statement.class);
    Mockito.when(connection.createStatement()).thenReturn(statement);
    ResultSet rs = Mockito.mock(ResultSet.class);
    Mockito.when(statement.executeQuery(query)).thenReturn(rs);
    ResultSetMetaData rsMetadata = Mockito.mock(ResultSetMetaData.class);
    Mockito.when(rs.getMetaData()).thenReturn(rsMetadata);
    Mockito.when(rsMetadata.getColumnName(1)).thenReturn("number of rows inserted");
    try {
        writer.open("id");
        writer.write(record);
    } finally {
        result = writer.close();
    }
    Assert.assertEquals(1, result.totalCount);
    Assert.assertEquals(1, result.successCount);
    Assert.assertEquals(0, result.rejectCount);
}
Also used : ResultSetMetaData(java.sql.ResultSetMetaData) IndexedRecord(org.apache.avro.generic.IndexedRecord) PreparedStatement(java.sql.PreparedStatement) Statement(java.sql.Statement) Schema(org.apache.avro.Schema) ResultSet(java.sql.ResultSet) IndexedRecord(org.apache.avro.generic.IndexedRecord) Result(org.talend.components.api.component.runtime.Result) Test(org.junit.Test)

Aggregations

Result (org.talend.components.api.component.runtime.Result)76 Test (org.junit.Test)42 IndexedRecord (org.apache.avro.generic.IndexedRecord)31 ArrayList (java.util.ArrayList)22 Schema (org.apache.avro.Schema)17 TSalesforceOutputProperties (org.talend.components.salesforce.tsalesforceoutput.TSalesforceOutputProperties)13 ComponentDefinition (org.talend.components.api.component.ComponentDefinition)11 TSalesforceOutputDefinition (org.talend.components.salesforce.tsalesforceoutput.TSalesforceOutputDefinition)11 IOException (java.io.IOException)10 DefaultComponentRuntimeContainerImpl (org.talend.components.api.container.DefaultComponentRuntimeContainerImpl)8 NetSuiteDatasetRuntime (org.talend.components.netsuite.NetSuiteDatasetRuntime)8 NetSuiteSink (org.talend.components.netsuite.NetSuiteSink)8 NetSuiteOutputWriter (org.talend.components.netsuite.output.NetSuiteOutputWriter)8 NetSuiteWriteOperation (org.talend.components.netsuite.output.NetSuiteWriteOperation)8 ValidationResult (org.talend.daikon.properties.ValidationResult)7 NetSuitePortType (com.netsuite.webservices.v2016_2.platform.NetSuitePortType)6 SQLException (java.sql.SQLException)6 List (java.util.List)6 NetSuiteRuntimeImpl (org.talend.components.netsuite.v2016_2.NetSuiteRuntimeImpl)6 NetSuiteSinkImpl (org.talend.components.netsuite.v2016_2.NetSuiteSinkImpl)6