/** * Replace Kettle variables/parameters with its values * * @param properties * @param databaseMeta * @return new object of type Properties with resolved variables/parameters */ private static Properties environmentSubstitute( Properties properties, DatabaseMeta databaseMeta ) { Iterator<Object> iterator = properties.keySet().iterator(); while ( iterator.hasNext() ) { String key = (String) iterator.next(); String value = properties.getProperty( key ); properties.put( key, databaseMeta.environmentSubstitute( value ) ); } return properties; }
public String getDriverClass() { return environmentSubstitute( databaseInterface.getDriverClass() ); }
public OpenERPHelper( DatabaseMeta databaseMeta ) { openERPConnection = new Session( databaseMeta.environmentSubstitute( databaseMeta.getHostname() ), Integer.parseInt( databaseMeta .environmentSubstitute( databaseMeta.getDatabasePortNumberString() ) ), databaseMeta .environmentSubstitute( databaseMeta.getDatabaseName() ), databaseMeta.environmentSubstitute( databaseMeta .getUsername() ), databaseMeta.environmentSubstitute( databaseMeta.getPassword() ) ); }
public static SAPConnectionParams getFromDatabaseMeta( DatabaseMeta sapConnection ) { String name = sapConnection.getName(); String host = sapConnection.environmentSubstitute( sapConnection.getHostname() ); String sysnr = sapConnection.environmentSubstitute( sapConnection.getAttributes().getProperty( "SAPSystemNumber" ) ); String client = sapConnection.environmentSubstitute( sapConnection.getAttributes().getProperty( "SAPClient" ) ); String user = sapConnection.environmentSubstitute( sapConnection.getUsername() ); String password = sapConnection.environmentSubstitute( sapConnection.getPassword() ); String lang = ""; return new SAPConnectionParams( name, host, sysnr, client, user, password, lang ); } }
@Override public String getConnectionTestReport( DatabaseMeta databaseMeta ) { try { OpenERPHelper helper = new OpenERPHelper( databaseMeta ); helper.StartSession(); return "Successfully connected to [" + databaseMeta.environmentSubstitute( databaseMeta.getName() ) + "]"; } catch ( NumberFormatException e ) { return "Invalid port number: " + e.getMessage(); } catch ( Exception e ) { return "Connection failed: " + e.getMessage(); } }
public Properties getConnectionProperties() { Properties properties = new Properties(); Map<String, String> map = getExtraOptions(); if ( map.size() > 0 ) { Iterator<String> iterator = map.keySet().iterator(); while ( iterator.hasNext() ) { String typedParameter = iterator.next(); int dotIndex = typedParameter.indexOf( '.' ); if ( dotIndex >= 0 ) { String typeCode = typedParameter.substring( 0, dotIndex ); String parameter = typedParameter.substring( dotIndex + 1 ); String value = map.get( typedParameter ); // Only add to the URL if it's the same database type code... // if ( databaseInterface.getPluginId().equals( typeCode ) ) { if ( value != null && value.equals( EMPTY_OPTIONS_STRING ) ) { value = ""; } properties.put( parameter, environmentSubstitute( Const.NVL( value, "" ) ) ); } } } } return properties; }
hostname = environmentSubstitute( partition.getHostname() ); port = environmentSubstitute( partition.getPort() ); databaseName = environmentSubstitute( partition.getDatabaseName() ); } else { hostname = environmentSubstitute( getHostname() ); port = environmentSubstitute( getDatabasePortNumberString() ); databaseName = environmentSubstitute( getDatabaseName() ); baseUrl = databaseInterface.getURL( environmentSubstitute( hostname ), environmentSubstitute( port ), environmentSubstitute( databaseName ) ); String url = environmentSubstitute( baseUrl );
@Override public boolean getBooleanValueOfVariable( String variableName, boolean defaultValue ) { if ( !Utils.isEmpty( variableName ) ) { String value = environmentSubstitute( variableName ); if ( !Utils.isEmpty( value ) ) { return ValueMetaBase.convertStringToBoolean( value ); } } return defaultValue; }
urlBuilder.append( environmentSubstitute( parameter ) ).append( valueSeparator ).append( environmentSubstitute( value ) ); first = false;
private static void setCredentials( BasicDataSource ds, DatabaseMeta databaseMeta, String partitionId ) throws KettleDatabaseException { String userName = databaseMeta.environmentSubstitute( databaseMeta.getUsername() ); String password = databaseMeta.environmentSubstitute( databaseMeta.getPassword() ); password = Encr.decryptPasswordOptionallyEncrypted( password ); ds.addConnectionProperty( "user", Const.NVL( userName, "" ) ); ds.addConnectionProperty( "password", Const.NVL( password, "" ) ); }
/** * Calculate the schema-table combination, usually this is the schema and table separated with a dot. (schema.table) * * @param schemaName * the schema-name or null if no schema is used. * @param tableName * the table name * @return the schemaname-tablename combination */ public String getQuotedSchemaTableCombination( String schemaName, String tableName ) { if ( !supportsSchemas() || Utils.isEmpty( schemaName ) ) { if ( Utils.isEmpty( getPreferredSchemaName() ) ) { return quoteField( environmentSubstitute( tableName ) ); // no need to look further } else { return databaseInterface.getSchemaTableCombination( quoteField( environmentSubstitute( getPreferredSchemaName() ) ), quoteField( environmentSubstitute( tableName ) ) ); } } else { return databaseInterface.getSchemaTableCombination( quoteField( environmentSubstitute( schemaName ) ), quoteField( environmentSubstitute( tableName ) ) ); } }
@Override public RowMetaInterface getTableFields() { RowMetaInterface fields = null; if ( databaseMeta != null ) { Database db = new Database( loggingObject, databaseMeta ); databases = new Database[] { db }; // Keep track of this one for cancelQuery try { db.connect(); fields = db.getTableFieldsMeta( databaseMeta.environmentSubstitute( schemaName ), databaseMeta.environmentSubstitute( tablename ) ); } catch ( KettleDatabaseException dbe ) { logError( BaseMessages.getString( PKG, "DatabaseLookupMeta.ERROR0004.ErrorGettingTableFields" ) + dbe.getMessage() ); } finally { db.disconnect(); } } return fields; }
@VisibleForTesting static void configureDataSource( BasicDataSource ds, DatabaseMeta databaseMeta, String partitionId, int initialSize, int maximumSize ) throws KettleDatabaseException { // substitute variables and populate pool properties; add credentials Properties connectionPoolProperties = new Properties( databaseMeta.getConnectionPoolingProperties() ); connectionPoolProperties = environmentSubstitute( connectionPoolProperties, databaseMeta ); setPoolProperties( ds, connectionPoolProperties, initialSize, maximumSize ); setCredentials( ds, databaseMeta, partitionId ); // add url/driver class String url = databaseMeta.environmentSubstitute( databaseMeta.getURL( partitionId ) ); ds.setUrl( url ); String clazz = databaseMeta.getDriverClass(); if ( databaseMeta.getDatabaseInterface() != null ) { ds.setDriverClassLoader( databaseMeta.getDatabaseInterface().getClass().getClassLoader() ); } ds.setDriverClassName( clazz ); }
if ( poolSizeBox != null ) { try { int initialPoolSize = Integer.parseInt( this.databaseMeta.environmentSubstitute( poolSizeBox.getValue() ) ); meta.setInitialPoolSize( initialPoolSize ); } catch ( NumberFormatException e ) { int maxPoolSize = Integer.parseInt( this.databaseMeta.environmentSubstitute( maxPoolSizeBox.getValue() ) ); meta.setMaximumPoolSize( maxPoolSize ); } catch ( NumberFormatException e ) {
@Override public RowMetaInterface getTableFields() { // Build a dummy parameter row... // RowMetaInterface param = new RowMeta(); for ( int i = 0; i < parameterField.length; i++ ) { ValueMetaInterface v; try { v = ValueMetaFactory.createValueMeta( parameterField[i], parameterType[i] ); } catch ( KettlePluginException e ) { v = new ValueMetaNone( parameterField[i] ); } param.addValueMeta( v ); } RowMetaInterface fields = null; if ( databaseMeta != null ) { Database db = new Database( loggingObject, databaseMeta ); databases = new Database[] { db }; // Keep track of this one for cancelQuery try { db.connect(); fields = db.getQueryFields( databaseMeta.environmentSubstitute( sql ), true, param, new Object[param.size()] ); } catch ( KettleDatabaseException dbe ) { logError( BaseMessages.getString( PKG, "DatabaseJoinMeta.Log.DatabaseErrorOccurred" ) + dbe.getMessage() ); } finally { db.disconnect(); } } return fields; }
/** * Configure database connection information * * @param sqoopConfig - Sqoop configuration */ public void configureDatabase( S sqoopConfig ) throws KettleException { DatabaseMeta databaseMeta = getParentJob().getJobMeta().findDatabase( sqoopConfig.getDatabase() ); // if databaseMeta == null we assume "USE_ADVANCED_MODE" is selected on QUICK_SETUP if ( sqoopConfig.getModeAsEnum() == JobEntryMode.QUICK_SETUP && databaseMeta != null ) { sqoopConfig.setConnectionInfo( databaseMeta.environmentSubstitute( databaseMeta.getName() ), databaseMeta.environmentSubstitute( databaseMeta.getURL() ), databaseMeta.environmentSubstitute( databaseMeta.getUsername() ), Encr.decryptPasswordOptionallyEncrypted( databaseMeta.environmentSubstitute( databaseMeta.getPassword() ) ) ); } }
private boolean hostNameEquals( final DatabaseMeta factDbMeta, final DatabaseMeta sharedDbMeta ) { return ( factDbMeta.getHostname() != null && factDbMeta.environmentSubstitute( factDbMeta.getHostname() ).equals( sharedDbMeta.getHostname() ) ) || ( factDbMeta.getHostname() == null && sharedDbMeta.getHostname() == null ); }
private boolean dbNameEquals( final DatabaseMeta factDbMeta, final DatabaseMeta sharedDbMeta ) { return ( factDbMeta.getDatabaseName() != null && factDbMeta.environmentSubstitute( factDbMeta.getDatabaseName() ).equals( sharedDbMeta.getDatabaseName() ) ) || ( factDbMeta.getDatabaseName() == null && sharedDbMeta.getDatabaseName() == null ); }
public static SqlDataSource convertFromLegacy( DatabaseMeta database ) { SqlDataSource dataSource = new SqlDataSource(); dataSource.setDialectType( database.getDatabaseTypeDesc() ); dataSource.setDatabaseName( database.environmentSubstitute( database.getDatabaseName() ) ); dataSource.setHostname( database.environmentSubstitute( database.getHostname() ) ); dataSource.setPort( database.environmentSubstitute( database.getDatabasePortNumberString() ) ); dataSource.setUsername( database.environmentSubstitute( database.getUsername() ) ); dataSource.setPassword( database.environmentSubstitute( database.getPassword() ) ); dataSource.setServername( database.environmentSubstitute( database.getServername() ) ); if ( database.getAccessType() == DatabaseMeta.TYPE_ACCESS_JNDI ) { dataSource.setType( DataSourceType.values()[database.getAccessType()] ); } else if ( database.getAccessType() == DatabaseMeta.TYPE_ACCESS_NATIVE ) { dataSource.setType( DataSourceType.NATIVE ); } // And now load the attributes... if ( database.getAttributes() != null ) { for ( Object key : database.getAttributes().keySet() ) { dataSource.getAttributes().put( (String) key, database.environmentSubstitute( (String) database.getAttributes().get( key ) ) ); } } return dataSource; }