@Override public void addOrReplaceDatabase( DatabaseMeta databaseMeta ) { addDatabase( databaseMeta, true ); }
protected void addDatabase( DatabaseMeta databaseMeta, boolean replace ) { int index = databases.indexOf( databaseMeta ); if ( index < 0 ) { addDatabase( databaseMeta ); } else if ( replace ) { DatabaseMeta previous = getDatabase( index ); previous.replaceMeta( databaseMeta ); previous.setShared( databaseMeta.isShared() ); } changedDatabases = true; }
public void importFromMetaStore() throws MetaStoreException, KettlePluginException { // Read the databases... // if ( metaStore != null ) { IMetaStoreElementType databaseType = metaStore.getElementTypeByName( PentahoDefaults.NAMESPACE, PentahoDefaults.DATABASE_CONNECTION_ELEMENT_TYPE_NAME ); if ( databaseType != null ) { List<IMetaStoreElement> databaseElements = metaStore.getElements( PentahoDefaults.NAMESPACE, databaseType ); for ( IMetaStoreElement databaseElement : databaseElements ) { addDatabase( DatabaseMetaStoreUtil.loadDatabaseMetaFromDatabaseElement( metaStore, databaseElement ), false ); } } // TODO: do the same for slaves, clusters, partition schemas } }
protected void doTest_OnePrivate_NoShared() throws Exception { T meta = createMeta(); DatabaseMeta privateMeta = createDatabase( "privateMeta" ); meta.addDatabase( privateMeta ); String xml = toXml( meta ); SharedObjects fakeSharedObjects = createFakeSharedObjects(); T loaded = fromXml( xml, fakeSharedObjects ); List<String> loadedDbs = Arrays.asList( loaded.getDatabaseNames() ); assertTrue( loadedDbs.contains( "privateMeta" ) ); Set<String> privateDatabases = loaded.getPrivateDatabases(); assertNotNull( privateDatabases ); assertEquals( 1, privateDatabases.size() ); assertTrue( privateDatabases.contains( privateMeta.getName() ) ); }
protected void doTest_OnePrivate_TwoShared() throws Exception { T meta = createMeta(); DatabaseMeta privateMeta = createDatabase( "privateMeta" ); meta.addDatabase( privateMeta ); String xml = toXml( meta ); DatabaseMeta meta1 = createDatabase( "meta1" ); meta1.setShared( true ); DatabaseMeta meta2 = createDatabase( "meta2" ); meta2.setShared( true ); SharedObjects fakeSharedObjects = createFakeSharedObjects( meta1, meta2 ); T loaded = fromXml( xml, fakeSharedObjects ); List<String> loadedDbs = Arrays.asList( loaded.getDatabaseNames() ); assertEquals( 3, loadedDbs.size() ); assertThat( loadedDbs, JUnitMatchers.hasItems( "meta1", "meta2", "privateMeta" ) ); Set<String> privateDatabases = loaded.getPrivateDatabases(); assertNotNull( privateDatabases ); assertEquals( 1, privateDatabases.size() ); assertTrue( privateDatabases.contains( "privateMeta" ) ); }
abstractMeta.addDatabase( databaseMeta ); } else { DatabaseMeta imported = abstractMeta.getDatabase( index );
when( db1.getName() ).thenReturn( "db1" ); when( db1.getDisplayName() ).thenReturn( "db1" ); meta.addDatabase( db1 ); assertEquals( 1, meta.nrDatabases() ); assertFalse( meta.getDatabases().isEmpty() ); when( db2.getName() ).thenReturn( "db2" ); when( db2.getDisplayName() ).thenReturn( "db2" ); meta.addDatabase( db2 ); assertEquals( 2, meta.nrDatabases() ); meta.addDatabase( db1, true ); assertEquals( 2, meta.nrDatabases() ); meta.addOrReplaceDatabase( db1 ); assertEquals( 2, meta.nrDatabases() ); meta.addDatabase( db2, false ); assertEquals( 2, meta.nrDatabases() ); DatabaseMeta db3 = mock( DatabaseMeta.class ); when( db3.getName() ).thenReturn( "db3" ); meta.addDatabase( db3, false ); assertEquals( 3, meta.nrDatabases() ); assertEquals( db1, meta.getDatabase( 0 ) ); DatabaseMeta db4 = mock( DatabaseMeta.class ); when( db4.getName() ).thenReturn( "db4" ); meta.addDatabase( 3, db4 ); assertEquals( 4, meta.nrDatabases() ); assertEquals( db4, meta.getDatabase( 3 ) );