public static IMetaStore openLocalPentahoMetaStore( boolean allowCreate ) throws MetaStoreException { if ( disableMetaStore ) { return null; } String rootFolder = System.getProperty( Const.PENTAHO_METASTORE_FOLDER ); if ( Utils.isEmpty( rootFolder ) ) { rootFolder = getDefaultPentahoMetaStoreLocation(); } File rootFolderFile = new File( rootFolder ); File metaFolder = new File( rootFolder + File.separator + XmlUtil.META_FOLDER_NAME ); if ( !allowCreate && !metaFolder.exists() ) { return null; } if ( !rootFolderFile.exists() ) { rootFolderFile.mkdirs(); } XmlMetaStore metaStore = new XmlMetaStore( rootFolder ); if ( allowCreate ) { metaStore.setName( Const.PENTAHO_METASTORE_NAME ); } return metaStore; } }
@Override public void connect( String username, String password ) throws KettleException { try { String metaStoreRootFolder = this.repositoryMeta.getBaseDirectory() + File.separator + ".meta"; File metaStoreRootFolderFile = new File( this.repositoryMeta.getBaseDirectory() + File.separator + ".meta" ); if ( !metaStoreRootFolderFile.exists() ) { if ( this.repositoryMeta.isReadOnly() ) { this.metaStore = null; } else { if ( metaStoreRootFolderFile.mkdirs() ) { this.metaStore = new XmlMetaStore( metaStoreRootFolder ); } else { this.metaStore = null; } } } else { this.metaStore = new XmlMetaStore( metaStoreRootFolder ); } } catch ( Exception e ) { throw new KettleException( e ); } if ( this.metaStore != null ) { this.metaStore.setName( this.repositoryMeta.getName() ); this.metaStore.setDescription( this.repositoryMeta.getDescription() ); } connected = true; }
public SlaveServerConfig() { masters = new ArrayList<SlaveServer>(); databases = new ArrayList<DatabaseMeta>(); slaveSequences = new ArrayList<SlaveSequence>(); automaticCreationAllowed = false; metaStore = new DelegatingMetaStore(); // Add the local Hitachi Vantara MetaStore to the delegation. // This sets it as the active one. // try { XmlMetaStore localStore = new XmlMetaStore( MetaStoreConst.getDefaultPentahoMetaStoreLocation() ); metaStore.addMetaStore( localStore ); metaStore.setActiveMetaStoreName( localStore.getName() ); } catch ( MetaStoreException e ) { LogChannel.GENERAL.logError( "Unable to open local Pentaho meta store from [" + MetaStoreConst.getDefaultPentahoMetaStoreLocation() + "]", e ); // now replace this with an in memory metastore. // try { MemoryMetaStore memoryStore = new MemoryMetaStore(); memoryStore.setName( "Memory metastore" ); metaStore.addMetaStore( memoryStore ); metaStore.setActiveMetaStoreName( memoryStore.getName() ); } catch ( MetaStoreException e2 ) { throw new RuntimeException( "Unable to add a default memory metastore to the delegating store", e ); } } passwordFile = null; // force lookup by server in ~/.kettle or local folder }
private void snapshotMetaStore( String metaStoreSnapshotDir ) throws Exception { IMetaStore snapshot = new XmlMetaStore( metaStoreSnapshotDir ); try { FileSystemConfigBuilder nc = KettleVFS.getInstance().getFileSystemManager().getFileSystemConfigBuilder( "hc" ); Method snapshotMethod = nc.getClass().getMethod( "snapshotNamedClusterToMetaStore", IMetaStore.class ); snapshotMethod.invoke( nc, snapshot ); } catch ( FileSystemException | NoSuchMethodException | IllegalAccessException | InvocationTargetException e ) { e.printStackTrace(); } }