Search in sources :

Example 36 with PluginRegistry

use of org.pentaho.di.core.plugins.PluginRegistry in project pentaho-kettle by pentaho.

the class ParameterSimpleTransIT method testParameterSimpleTrans3.

/**
 * Test case for parameters using a simple transformation. Here blocking some unwise usage of parameters.
 *
 * @throws Exception
 *           exception on any problem.
 */
public void testParameterSimpleTrans3() throws Exception {
    KettleEnvironment.init();
    // 
    // Create a new transformation...
    // 
    TransMeta transMeta = new TransMeta();
    transMeta.setName("parameter_simple_trans3");
    PluginRegistry registry = PluginRegistry.getInstance();
    // 
    // create a get variables step...
    // 
    String getVariablesStepname = "get variables step";
    GetVariableMeta gvm = new GetVariableMeta();
    // Set the information of the get variables step.
    String getVariablesPid = registry.getPluginId(StepPluginType.class, gvm);
    StepMeta getVariablesStep = new StepMeta(getVariablesPid, getVariablesStepname, gvm);
    transMeta.addStep(getVariablesStep);
    // 
    // Generate 1 row
    // 
    String[] fieldName = { "PARAM1", "PARAM2" };
    String[] varName = { "${JAVA_HOME}", "%%PARAM2%%" };
    int[] fieldType = { ValueMetaInterface.TYPE_STRING, ValueMetaInterface.TYPE_STRING };
    int[] length = { -1, -1 };
    int[] precision = { -1, -1 };
    String[] format = { "", "" };
    String[] currency = { "", "" };
    String[] decimal = { "", "" };
    String[] grouping = { "", "" };
    int[] trimType = { ValueMetaInterface.TRIM_TYPE_NONE, ValueMetaInterface.TRIM_TYPE_NONE };
    FieldDefinition[] fields = new FieldDefinition[fieldName.length];
    for (int i = 0; i < fields.length; i++) {
        FieldDefinition field = new FieldDefinition();
        field.setFieldName(fieldName[i]);
        field.setVariableString(varName[i]);
        field.setFieldType(fieldType[i]);
        field.setFieldLength(length[i]);
        field.setFieldPrecision(precision[i]);
        field.setFieldFormat(format[i]);
        field.setCurrency(currency[i]);
        field.setDecimal(decimal[i]);
        field.setGroup(grouping[i]);
        field.setTrimType(trimType[i]);
        fields[i] = field;
    }
    gvm.setFieldDefinitions(fields);
    // 
    // Create a dummy step 1
    // 
    String dummyStepname1 = "dummy step 1";
    DummyTransMeta dm1 = new DummyTransMeta();
    String dummyPid1 = registry.getPluginId(StepPluginType.class, dm1);
    StepMeta dummyStep1 = new StepMeta(dummyPid1, dummyStepname1, dm1);
    transMeta.addStep(dummyStep1);
    TransHopMeta hi1 = new TransHopMeta(getVariablesStep, dummyStep1);
    transMeta.addTransHop(hi1);
    // Now execute the transformation...
    Trans trans = new Trans(transMeta);
    trans.addParameterDefinition("${JAVA_HOME}", "default1", "Parameter 1");
    trans.addParameterDefinition("PARAM2", "default2", "Parameter 2");
    trans.setParameterValue("${JAVA_HOME}", "param1");
    // PARAM2 is not set
    trans.prepareExecution(null);
    StepInterface si = trans.getStepInterface(dummyStepname1, 0);
    RowStepCollector endRc = new RowStepCollector();
    si.addRowListener(endRc);
    trans.startThreads();
    trans.waitUntilFinished();
    // Now check whether the output is still as we expect.
    List<RowMetaAndData> goldenImageRows = createResultData3();
    List<RowMetaAndData> resultRows1 = endRc.getRowsWritten();
    checkRows(resultRows1, goldenImageRows);
}
Also used : FieldDefinition(org.pentaho.di.trans.steps.getvariable.GetVariableMeta.FieldDefinition) RowStepCollector(org.pentaho.di.trans.RowStepCollector) TransMeta(org.pentaho.di.trans.TransMeta) DummyTransMeta(org.pentaho.di.trans.steps.dummytrans.DummyTransMeta) ValueMetaString(org.pentaho.di.core.row.value.ValueMetaString) StepMeta(org.pentaho.di.trans.step.StepMeta) DummyTransMeta(org.pentaho.di.trans.steps.dummytrans.DummyTransMeta) StepInterface(org.pentaho.di.trans.step.StepInterface) RowMetaAndData(org.pentaho.di.core.RowMetaAndData) PluginRegistry(org.pentaho.di.core.plugins.PluginRegistry) TransHopMeta(org.pentaho.di.trans.TransHopMeta) Trans(org.pentaho.di.trans.Trans) GetVariableMeta(org.pentaho.di.trans.steps.getvariable.GetVariableMeta)

Example 37 with PluginRegistry

use of org.pentaho.di.core.plugins.PluginRegistry in project pentaho-kettle by pentaho.

the class ParameterSimpleTransIT method testParameterSimpleTrans4.

/**
 * Test case for parameters using a simple transformation. Check whether parameters override variables.
 *
 * @throws Exception
 *           exception on any problem.
 */
public void testParameterSimpleTrans4() throws Exception {
    KettleEnvironment.init();
    // 
    // Create a new transformation...
    // 
    TransMeta transMeta = new TransMeta();
    transMeta.setName("parameter_simple_trans4");
    PluginRegistry registry = PluginRegistry.getInstance();
    // 
    // create a get variables step...
    // 
    String getVariablesStepname = "get variables step";
    GetVariableMeta gvm = new GetVariableMeta();
    // Set the information of the get variables step.
    String getVariablesPid = registry.getPluginId(StepPluginType.class, gvm);
    StepMeta getVariablesStep = new StepMeta(getVariablesPid, getVariablesStepname, gvm);
    transMeta.addStep(getVariablesStep);
    // 
    // Generate 1 row
    // 
    String[] fieldName = { "PARAM1", "PARAM2" };
    String[] varName = { "${Param1}", "%%PARAM2%%" };
    int[] fieldType = { ValueMetaInterface.TYPE_STRING, ValueMetaInterface.TYPE_STRING };
    int[] length = { -1, -1 };
    int[] precision = { -1, -1 };
    String[] format = { "", "" };
    String[] currency = { "", "" };
    String[] decimal = { "", "" };
    String[] grouping = { "", "" };
    int[] trimType = { ValueMetaInterface.TRIM_TYPE_NONE, ValueMetaInterface.TRIM_TYPE_NONE };
    FieldDefinition[] fields = new FieldDefinition[fieldName.length];
    for (int i = 0; i < fields.length; i++) {
        FieldDefinition field = new FieldDefinition();
        field.setFieldName(fieldName[i]);
        field.setVariableString(varName[i]);
        field.setFieldType(fieldType[i]);
        field.setFieldLength(length[i]);
        field.setFieldPrecision(precision[i]);
        field.setFieldFormat(format[i]);
        field.setCurrency(currency[i]);
        field.setDecimal(decimal[i]);
        field.setGroup(grouping[i]);
        field.setTrimType(trimType[i]);
        fields[i] = field;
    }
    gvm.setFieldDefinitions(fields);
    // 
    // Create a dummy step 1
    // 
    String dummyStepname1 = "dummy step 1";
    DummyTransMeta dm1 = new DummyTransMeta();
    String dummyPid1 = registry.getPluginId(StepPluginType.class, dm1);
    StepMeta dummyStep1 = new StepMeta(dummyPid1, dummyStepname1, dm1);
    transMeta.addStep(dummyStep1);
    TransHopMeta hi1 = new TransHopMeta(getVariablesStep, dummyStep1);
    transMeta.addTransHop(hi1);
    // Now execute the transformation...
    Trans trans = new Trans(transMeta);
    trans.addParameterDefinition("Param1", "", "Parameter 1");
    trans.addParameterDefinition("PARAM2", "", "Parameter 2");
    trans.setParameterValue("Param1", "ParamValue1");
    trans.setParameterValue("PARAM2", "PARAMVALUE2");
    // See whether this variable overrides the parameter... it should NOT.
    trans.setVariable("Param1", "Variable1");
    trans.prepareExecution(null);
    StepInterface si = trans.getStepInterface(dummyStepname1, 0);
    RowStepCollector endRc = new RowStepCollector();
    si.addRowListener(endRc);
    trans.startThreads();
    trans.waitUntilFinished();
    // Now check whether the output is still as we expect.
    List<RowMetaAndData> goldenImageRows = createResultData1();
    List<RowMetaAndData> resultRows1 = endRc.getRowsWritten();
    checkRows(resultRows1, goldenImageRows);
}
Also used : FieldDefinition(org.pentaho.di.trans.steps.getvariable.GetVariableMeta.FieldDefinition) RowStepCollector(org.pentaho.di.trans.RowStepCollector) TransMeta(org.pentaho.di.trans.TransMeta) DummyTransMeta(org.pentaho.di.trans.steps.dummytrans.DummyTransMeta) ValueMetaString(org.pentaho.di.core.row.value.ValueMetaString) StepMeta(org.pentaho.di.trans.step.StepMeta) DummyTransMeta(org.pentaho.di.trans.steps.dummytrans.DummyTransMeta) StepInterface(org.pentaho.di.trans.step.StepInterface) RowMetaAndData(org.pentaho.di.core.RowMetaAndData) PluginRegistry(org.pentaho.di.core.plugins.PluginRegistry) TransHopMeta(org.pentaho.di.trans.TransHopMeta) Trans(org.pentaho.di.trans.Trans) GetVariableMeta(org.pentaho.di.trans.steps.getvariable.GetVariableMeta)

Example 38 with PluginRegistry

use of org.pentaho.di.core.plugins.PluginRegistry in project pentaho-kettle by pentaho.

the class ParameterSimpleTransIT method testParameterSimpleTrans6.

/**
 * Test case for parameters using a simple transformation. Check whether parameters override variables.
 *
 * @throws Exception
 *           exception on any problem.
 */
public void testParameterSimpleTrans6() throws Exception {
    KettleEnvironment.init();
    // 
    // Create a new transformation...
    // 
    TransMeta transMeta = new TransMeta();
    transMeta.setName("parameter_simple_trans4");
    PluginRegistry registry = PluginRegistry.getInstance();
    // 
    // create a get variables step...
    // 
    String getVariablesStepname = "get variables step";
    GetVariableMeta gvm = new GetVariableMeta();
    // Set the information of the get variables step.
    String getVariablesPid = registry.getPluginId(StepPluginType.class, gvm);
    StepMeta getVariablesStep = new StepMeta(getVariablesPid, getVariablesStepname, gvm);
    transMeta.addStep(getVariablesStep);
    // 
    // Generate 1 row
    // 
    String[] fieldName = { "PARAM1", "PARAM2" };
    String[] varName = { "${Param1}", "%%PARAM2%%" };
    int[] fieldType = { ValueMetaInterface.TYPE_STRING, ValueMetaInterface.TYPE_STRING };
    int[] length = { -1, -1 };
    int[] precision = { -1, -1 };
    String[] format = { "", "" };
    String[] currency = { "", "" };
    String[] decimal = { "", "" };
    String[] grouping = { "", "" };
    int[] trimType = { ValueMetaInterface.TRIM_TYPE_NONE, ValueMetaInterface.TRIM_TYPE_NONE };
    FieldDefinition[] fields = new FieldDefinition[fieldName.length];
    for (int i = 0; i < fields.length; i++) {
        FieldDefinition field = new FieldDefinition();
        field.setFieldName(fieldName[i]);
        field.setVariableString(varName[i]);
        field.setFieldType(fieldType[i]);
        field.setFieldLength(length[i]);
        field.setFieldPrecision(precision[i]);
        field.setFieldFormat(format[i]);
        field.setCurrency(currency[i]);
        field.setDecimal(decimal[i]);
        field.setGroup(grouping[i]);
        field.setTrimType(trimType[i]);
        fields[i] = field;
    }
    gvm.setFieldDefinitions(fields);
    // 
    // Create a dummy step 1
    // 
    String dummyStepname1 = "dummy step 1";
    DummyTransMeta dm1 = new DummyTransMeta();
    String dummyPid1 = registry.getPluginId(StepPluginType.class, dm1);
    StepMeta dummyStep1 = new StepMeta(dummyPid1, dummyStepname1, dm1);
    transMeta.addStep(dummyStep1);
    TransHopMeta hi1 = new TransHopMeta(getVariablesStep, dummyStep1);
    transMeta.addTransHop(hi1);
    // Now execute the transformation...
    Trans trans = new Trans(transMeta);
    trans.addParameterDefinition("Param1", "", "Parameter 1");
    trans.addParameterDefinition("PARAM2", "", "Parameter 2");
    trans.setParameterValue("PARAM2", "PARAMVALUE2");
    // See whether this variable overrides the parameter... it should NOT. Param1
    // is defined but not set. And no default... so the variable will be set to "". not
    // to "Variable1"
    trans.setVariable("Param1", "Variable1");
    trans.prepareExecution(null);
    StepInterface si = trans.getStepInterface(dummyStepname1, 0);
    RowStepCollector endRc = new RowStepCollector();
    si.addRowListener(endRc);
    trans.startThreads();
    trans.waitUntilFinished();
    // Now check whether the output is still as we expect.
    List<RowMetaAndData> goldenImageRows = createResultData6();
    List<RowMetaAndData> resultRows1 = endRc.getRowsWritten();
    checkRows(resultRows1, goldenImageRows);
}
Also used : FieldDefinition(org.pentaho.di.trans.steps.getvariable.GetVariableMeta.FieldDefinition) RowStepCollector(org.pentaho.di.trans.RowStepCollector) TransMeta(org.pentaho.di.trans.TransMeta) DummyTransMeta(org.pentaho.di.trans.steps.dummytrans.DummyTransMeta) ValueMetaString(org.pentaho.di.core.row.value.ValueMetaString) StepMeta(org.pentaho.di.trans.step.StepMeta) DummyTransMeta(org.pentaho.di.trans.steps.dummytrans.DummyTransMeta) StepInterface(org.pentaho.di.trans.step.StepInterface) RowMetaAndData(org.pentaho.di.core.RowMetaAndData) PluginRegistry(org.pentaho.di.core.plugins.PluginRegistry) TransHopMeta(org.pentaho.di.trans.TransHopMeta) Trans(org.pentaho.di.trans.Trans) GetVariableMeta(org.pentaho.di.trans.steps.getvariable.GetVariableMeta)

Example 39 with PluginRegistry

use of org.pentaho.di.core.plugins.PluginRegistry in project pentaho-kettle by pentaho.

the class DataHandler method setInfo.

private void setInfo(DatabaseMeta meta) {
    if (meta == null) {
        return;
    }
    if (meta.getAttributes().containsKey(EXTRA_OPTION_WEB_APPLICATION_NAME)) {
        meta.setDBName((String) meta.getAttributes().get(EXTRA_OPTION_WEB_APPLICATION_NAME));
        meta.getAttributes().remove(EXTRA_OPTION_WEB_APPLICATION_NAME);
        meta.setChanged();
    }
    getControls();
    // Name:
    if (connectionNameBox != null) {
        connectionNameBox.setValue(meta.getDisplayName());
    }
    PluginRegistry registry = PluginRegistry.getInstance();
    PluginInterface dInterface = registry.getPlugin(DatabasePluginType.class, meta.getPluginId());
    // Connection type:
    int index = (dInterface == null ? -1 : new ArrayList<>(connectionMap.keySet()).indexOf(dInterface.getName()));
    if (index >= 0) {
        connectionBox.setSelectedIndex(index);
    } else {
        LogChannel.GENERAL.logError("Unable to find database type " + (dInterface == null ? "null" : dInterface.getName()) + " in our connection map");
    }
    // Access type:
    accessBox.setSelectedItem(DatabaseMeta.getAccessTypeDescLong(meta.getAccessType()));
    // this is broken out so we can set the cache information only when caching
    // connection values
    setConnectionSpecificInfo(meta);
    loadAccessData();
    // Port number:
    if (portNumberBox != null) {
        portNumberBox.setValue(meta.getDatabasePortNumberString());
    }
    // Options Parameters:
    setOptionsData(meta.getExtraOptions());
    // Advanced panel settings:
    if (supportBooleanDataType != null) {
        supportBooleanDataType.setChecked(meta.supportsBooleanDataType());
    }
    if (supportTimestampDataType != null) {
        supportTimestampDataType.setChecked(meta.supportsTimestampDataType());
    }
    if (quoteIdentifiersCheck != null) {
        quoteIdentifiersCheck.setChecked(meta.isQuoteAllFields());
    }
    if (lowerCaseIdentifiersCheck != null) {
        lowerCaseIdentifiersCheck.setChecked(meta.isForcingIdentifiersToLowerCase());
    }
    if (upperCaseIdentifiersCheck != null) {
        upperCaseIdentifiersCheck.setChecked(meta.isForcingIdentifiersToUpperCase());
    }
    if (preserveReservedCaseCheck != null) {
        preserveReservedCaseCheck.setChecked(meta.preserveReservedCase());
    }
    if (strictBigNumberInterpretaion != null) {
        // check if Oracle
        if (meta.getDatabaseInterface() instanceof OracleDatabaseMeta) {
            strictBigNumberInterpretaion.setVisible(true);
            strictBigNumberInterpretaion.setChecked(((OracleDatabaseMeta) meta.getDatabaseInterface()).strictBigNumberInterpretation());
        } else {
            strictBigNumberInterpretaion.setVisible(false);
            strictBigNumberInterpretaion.setChecked(false);
        }
    }
    if (preferredSchemaName != null) {
        preferredSchemaName.setValue(Const.NVL(meta.getPreferredSchemaName(), ""));
    }
    if (sqlBox != null) {
        sqlBox.setValue(meta.getConnectSQL() == null ? "" : meta.getConnectSQL());
    }
    if (clusteringCheck != null) {
        clusteringCheck.setChecked(meta.isPartitioned());
    }
    setClusterData(meta.getPartitioningInformation());
    if (poolingCheck != null) {
        poolingCheck.setChecked(meta.isUsingConnectionPool());
    }
    if (meta.isUsingConnectionPool()) {
        if (poolSizeBox != null) {
            poolSizeBox.setValue(meta.getInitialPoolSizeString());
        }
        if (maxPoolSizeBox != null) {
            maxPoolSizeBox.setValue(meta.getMaximumPoolSizeString());
        }
        setPoolProperties(meta.getConnectionPoolingProperties());
    }
    setReadOnly(meta.isReadOnly());
    setDeckChildIndex();
    onPoolingCheck();
    onClusterCheck();
    enableAzureSqlDBEncryption();
    setAzureSqlDBAuthRelatedFieldsVisible();
}
Also used : PluginRegistry(org.pentaho.di.core.plugins.PluginRegistry) PluginInterface(org.pentaho.di.core.plugins.PluginInterface) OracleDatabaseMeta(org.pentaho.di.core.database.OracleDatabaseMeta)

Example 40 with PluginRegistry

use of org.pentaho.di.core.plugins.PluginRegistry in project pentaho-kettle by pentaho.

the class DataHandler method loadConnectionData.

public void loadConnectionData() {
    // Therefore we check if the connectionBox was already filled.
    if (connectionBox != null) {
        return;
    }
    getControls();
    // Add sorted types to the listbox now.
    final SortedSet<String> keys = new TreeSet<String>(connectionMap.keySet());
    for (String key : keys) {
        connectionBox.addItem(key);
    }
    PluginRegistry registry = PluginRegistry.getInstance();
    registry.addPluginListener(DatabasePluginType.class, new DatabaseTypeListener(registry) {

        @Override
        public void databaseTypeAdded(String pluginName, DatabaseInterface databaseInterface) {
            if (keys.add(pluginName)) {
                update();
            }
        }

        @Override
        public void databaseTypeRemoved(String pluginName) {
            if (keys.remove(pluginName)) {
                update();
            }
        }

        private void update() {
            Display.getDefault().syncExec(new Runnable() {

                @Override
                public void run() {
                    connectionBox.removeItems();
                    for (String key : keys) {
                        connectionBox.addItem(key);
                    }
                }
            });
        }
    });
    // HACK: Need to force height of list control, as it does not behave
    // well when using relative layouting
    connectionBox.setRows(connectionBox.getRows());
    Object key = connectionBox.getSelectedItem();
    if (key == null) {
        key = connectionMap.firstKey();
        connectionBox.setSelectedItem(key);
    }
    if (dialogDeck != null) {
        setDeckChildIndex();
    }
    setDefaultPoolParameters();
    // HACK: reDim the pooling table
    if (poolParameterTree != null) {
        poolParameterTree.setRows(poolParameterTree.getRows());
    }
}
Also used : DatabaseInterface(org.pentaho.di.core.database.DatabaseInterface) TreeSet(java.util.TreeSet) PluginRegistry(org.pentaho.di.core.plugins.PluginRegistry)

Aggregations

PluginRegistry (org.pentaho.di.core.plugins.PluginRegistry)160 StepMeta (org.pentaho.di.trans.step.StepMeta)104 TransMeta (org.pentaho.di.trans.TransMeta)103 Trans (org.pentaho.di.trans.Trans)84 TransHopMeta (org.pentaho.di.trans.TransHopMeta)78 ValueMetaString (org.pentaho.di.core.row.value.ValueMetaString)74 RowMetaAndData (org.pentaho.di.core.RowMetaAndData)72 StepInterface (org.pentaho.di.trans.step.StepInterface)70 RowStepCollector (org.pentaho.di.trans.RowStepCollector)68 DummyTransMeta (org.pentaho.di.trans.steps.dummytrans.DummyTransMeta)55 InjectorMeta (org.pentaho.di.trans.steps.injector.InjectorMeta)53 PluginInterface (org.pentaho.di.core.plugins.PluginInterface)49 RowProducer (org.pentaho.di.trans.RowProducer)48 Test (org.junit.Test)35 DatabaseMeta (org.pentaho.di.core.database.DatabaseMeta)26 KettleException (org.pentaho.di.core.exception.KettleException)26 ArrayList (java.util.ArrayList)15 ErrorDialog (org.pentaho.di.ui.core.dialog.ErrorDialog)13 Before (org.junit.Before)11 HashMap (java.util.HashMap)7