@Override public JobMeta loadJob( ObjectId idJob, String versionLabel ) throws KettleException { RepositoryObject jobInfo = getObjectInformation( idJob, RepositoryObjectType.JOB ); return loadJob( jobInfo.getName(), jobInfo.getRepositoryDirectory(), null, versionLabel ); }
repositoryElementInterfaces.add( repositoryDirectory ); } else { RepositoryObject repositoryObject = new RepositoryObject(); repositoryObject.setName( repositoryFile.getName() ); repositoryObject.setObjectId( () -> repositoryFile.getId().toString() ); RepositoryObjectType repositoryObjectType = RepositoryObjectType.UNKNOWN; if ( repositoryFile.getName().endsWith( ".ktr" ) ) { repositoryObjectType = RepositoryObjectType.JOB; repositoryObject.setObjectType( repositoryObjectType ); repositoryElementInterfaces.add( repositoryObject );
public static RepositoryFile build( org.pentaho.di.repository.RepositoryObject repositoryObject ) { RepositoryFile repositoryFile = new RepositoryFile(); repositoryFile.setObjectId( repositoryObject.getObjectId() ); repositoryFile.setName( repositoryObject.getName() ); repositoryFile.setType( repositoryObject.getObjectType().getTypeDescription() ); repositoryFile.setExtension( repositoryObject.getObjectType().getExtension() ); repositoryFile.setDate( repositoryObject.getModifiedDate() ); repositoryFile.setPath( repositoryObject.getRepositoryDirectory().getPath() ); return repositoryFile; }
private void populateFiles( RepositoryDirectory repositoryDirectory, RepositoryDirectoryInterface repositoryDirectoryInterface, String filter ) throws KettleException { if ( getRepository() instanceof RepositoryExtended && !repositoryDirectory.getPath().equals( "/" ) ) { populateFilesLazy( repositoryDirectory, filter ); } else { Date latestDate = null; for ( RepositoryObjectInterface repositoryObject : getRepositoryElements( repositoryDirectoryInterface ) ) { org.pentaho.di.repository.RepositoryObject ro = (org.pentaho.di.repository.RepositoryObject) repositoryObject; String extension = ro.getObjectType().getExtension(); if ( !Util.isFiltered( extension, filter ) ) { RepositoryFile repositoryFile = RepositoryFile.build( ro ); repositoryDirectory.addChild( repositoryFile ); } if ( latestDate == null || ro.getModifiedDate().after( latestDate ) ) { latestDate = ro.getModifiedDate(); } } repositoryDirectory.setDate( latestDate ); } }
@Test public void getObjectInformation_GetDatabaseInformation() throws Exception { KettleDatabaseRepositoryDatabaseDelegate databaseDelegate = spy( new KettleDatabaseRepositoryDatabaseDelegate( repository ) ); repository.databaseDelegate = databaseDelegate; RowMeta meta = createMetaForDatabase(); Object[] values = new Object[ meta.size() ]; values[ Arrays.asList( meta.getFieldNames() ).indexOf( KettleDatabaseRepositoryBase.FIELD_DATABASE_NAME ) ] = EXISTING_ID; doReturn( new RowMetaAndData( meta, values ) ) .when( databaseDelegate ) .getDatabase( new StringObjectId( EXISTING_ID ) ); RepositoryObject actual = repository.getObjectInformation( new StringObjectId( EXISTING_ID ), RepositoryObjectType.DATABASE ); assertEquals( new StringObjectId( EXISTING_ID ), actual.getObjectId() ); assertEquals( EXISTING_ID, actual.getName() ); assertEquals( RepositoryObjectType.DATABASE, actual.getObjectType() ); }
@Override public RepositoryObject getObjectInformation( ObjectId objectId, RepositoryObjectType objectType ) throws KettleException { try { String filename = calcDirectoryName( null ); if ( objectId.getId().startsWith( "/" ) ) { filename += objectId.getId().substring( 1 ); } else { filename += objectId.getId(); } FileObject fileObject = KettleVFS.getFileObject( filename ); if ( !fileObject.exists() ) { return null; } FileName fname = fileObject.getName(); String name = fname.getBaseName(); if ( !Utils.isEmpty( fname.getExtension() ) && name.length() > fname.getExtension().length() ) { name = name.substring( 0, name.length() - fname.getExtension().length() - 1 ); } String filePath = fileObject.getParent().getName().getPath(); final FileObject baseDirObject = KettleVFS.getFileObject( repositoryMeta.getBaseDirectory() ); final int baseDirObjectPathLength = baseDirObject.getName().getPath().length(); final String dirPath = baseDirObjectPathLength <= filePath.length() ? filePath.substring( baseDirObjectPathLength ) : "/"; RepositoryDirectoryInterface directory = loadRepositoryDirectoryTree().findDirectory( dirPath ); Date lastModified = new Date( fileObject.getContent().getLastModifiedTime() ); return new RepositoryObject( objectId, name, directory, "-", lastModified, objectType, "", false ); } catch ( Exception e ) { throw new KettleException( "Unable to get object information for object with id=" + objectId, e ); } }
if ( fileDialogOperation.getRepositoryObject() != null ) { RepositoryObject repositoryObject = (RepositoryObject) fileDialogOperation.getRepositoryObject(); loadObjectFromRepository( repositoryObject.getObjectId(), repositoryObject.getObjectType(), null );
public List<org.pentaho.repo.model.RepositoryObject> search( String path, String filter ) { RepositoryDirectoryInterface repositoryDirectoryInterface = findDirectory( path ); List<org.pentaho.repo.model.RepositoryObject> repositoryObjects = new ArrayList<>(); List<RepositoryObjectInterface> repositoryObjects1 = ( (RepositoryExtended) getRepository() ).getChildren( repositoryDirectoryInterface.getObjectId().getId(), filter ); for ( RepositoryObjectInterface repositoryObject : repositoryObjects1 ) { if ( repositoryObject instanceof RepositoryDirectoryInterface ) { RepositoryDirectory repositoryDirectory = new RepositoryDirectory(); repositoryDirectory.setPath( path + "/" + repositoryObject.getName() ); repositoryDirectory.setName( repositoryObject.getName() ); repositoryDirectory.setObjectId( repositoryObject.getObjectId() ); repositoryObjects.add( repositoryDirectory ); } else { RepositoryFile repositoryFile = new RepositoryFile(); repositoryFile.setPath( path + "/" + repositoryObject.getName() ); repositoryFile.setName( repositoryObject.getName() ); repositoryFile.setType( ( (RepositoryObject) repositoryObject ).getObjectType() == RepositoryObjectType .TRANSFORMATION ? TRANSFORMATION : JOB ); repositoryFile.setObjectId( repositoryObject.getObjectId() ); repositoryObjects.add( repositoryFile ); } } return repositoryObjects; }
if ( fileDialogOperation.getRepositoryObject() != null ) { String path = ( (RepositoryObject) fileDialogOperation.getRepositoryObject() ).getRepositoryDirectory().getPath(); wFoldername.setText( path );
@Override public List<RepositoryElementMetaInterface> getJobObjects( ObjectId id_directory, boolean includeDeleted ) throws KettleException { try { List<RepositoryElementMetaInterface> list = new ArrayList<RepositoryElementMetaInterface>(); RepositoryDirectoryInterface tree = loadRepositoryDirectoryTree(); RepositoryDirectoryInterface directory = tree.findDirectory( id_directory ); String folderName = calcDirectoryName( directory ); FileObject folder = KettleVFS.getFileObject( folderName ); for ( FileObject child : folder.getChildren() ) { if ( child.getType().equals( FileType.FILE ) ) { if ( !child.isHidden() || !repositoryMeta.isHidingHiddenFiles() ) { String name = child.getName().getBaseName(); if ( name.endsWith( EXT_JOB ) ) { String jobName = name.substring( 0, name.length() - 4 ); ObjectId id = new StringObjectId( calcObjectId( directory, jobName, EXT_JOB ) ); Date date = new Date( child.getContent().getLastModifiedTime() ); list.add( new RepositoryObject( id, jobName, directory, "-", date, RepositoryObjectType.JOB, "", false ) ); } } } } return list; } catch ( Exception e ) { throw new KettleException( "Unable to get list of jobs in folder with id : " + id_directory, e ); } }
switch ( repoObject.getObjectType() ) { case TRANSFORMATION: TransMeta transMeta = rep.loadTransformation( repoObject.getObjectId(), null ); saveTransformationToRepo( transMeta, feedback ); break; case JOB: JobMeta jobMeta = rep.loadJob( repoObject.getObjectId(), null ); saveJobToRepo( jobMeta, feedback ); break;
@Override public TransMeta loadTransformation( ObjectId idTransformation, String versionLabel ) throws KettleException { RepositoryObject jobInfo = getObjectInformation( idTransformation, RepositoryObjectType.TRANSFORMATION ); return loadTransformation( jobInfo.getName(), jobInfo.getRepositoryDirectory(), null, true, versionLabel ); }
@Override public void callExtensionPoint( LogChannelInterface logChannelInterface, Object o ) throws KettleException { FileDialogOperation fileDialogOperation = (FileDialogOperation) o; PropsUI propsUI = propsUISupplier.get(); String startingDir = null; if ( fileDialogOperation.getRepository() == null ) { String username = getRepository().getUserInfo() != null ? getRepository().getUserInfo().getLogin() : ""; String repoAndUser = getRepository().getName() + ":" + username; List<LastUsedFile> lastUsedFileList = propsUI.getLastUsedRepoFiles().getOrDefault( repoAndUser, Collections.emptyList() ); startingDir = getStartingDir( fileDialogOperation, lastUsedFileList ); } else { startingDir = fileDialogOperation.getStartDir(); } RepositoryOpenSaveDialog repositoryOpenSaveDialog = new RepositoryOpenSaveDialog( spoonSupplier.get().getShell(), WIDTH, HEIGHT ); repositoryOpenSaveDialog.open( fileDialogOperation.getRepository(), startingDir, fileDialogOperation.getCommand(), fileDialogOperation.getTitle(), fileDialogOperation.getFilter(), fileDialogOperation.getOrigin(), fileDialogOperation.getFilename(), fileDialogOperation.getFileType() ); if ( !Utils.isEmpty( repositoryOpenSaveDialog.getObjectName() ) ) { RepositoryObject repositoryObject = new RepositoryObject(); repositoryObject.setObjectId( repositoryOpenSaveDialog::getObjectId ); repositoryObject.setName( repositoryOpenSaveDialog.getObjectName() ); repositoryObject .setRepositoryDirectory( getRepository().findDirectory( repositoryOpenSaveDialog.getObjectDirectory() ) ); repositoryObject.setObjectType( repositoryOpenSaveDialog.getObjectType().equals( TRANSFORMATION ) ? RepositoryObjectType.TRANSFORMATION : RepositoryObjectType.JOB ); fileDialogOperation.setRepositoryObject( repositoryObject ); } }
@Override public List<RepositoryElementMetaInterface> getTransformationObjects( ObjectId idDirectory, boolean includeDeleted ) throws KettleException { try { List<RepositoryElementMetaInterface> list = new ArrayList<RepositoryElementMetaInterface>(); RepositoryDirectoryInterface tree = loadRepositoryDirectoryTree(); RepositoryDirectoryInterface directory = tree.findDirectory( idDirectory ); String folderName = calcDirectoryName( directory ); FileObject folder = KettleVFS.getFileObject( folderName ); for ( FileObject child : folder.getChildren() ) { if ( child.getType().equals( FileType.FILE ) ) { if ( !child.isHidden() || !repositoryMeta.isHidingHiddenFiles() ) { String name = child.getName().getBaseName(); if ( name.endsWith( EXT_TRANSFORMATION ) ) { String transName = name.substring( 0, name.length() - 4 ); ObjectId id = new StringObjectId( calcObjectId( directory, transName, EXT_TRANSFORMATION ) ); Date date = new Date( child.getContent().getLastModifiedTime() ); list.add( new RepositoryObject( id, transName, directory, "-", date, RepositoryObjectType.TRANSFORMATION, "", false ) ); } } } } return list; } catch ( Exception e ) { throw new KettleException( "Unable to get list of transformations in folder with id : " + idDirectory, e ); } }
public JobMeta loadJob( ObjectId idJob, String versionLabel ) throws KettleException { RepositoryObject jobInfo = getObjectInformation( idJob, RepositoryObjectType.JOB ); return loadJob( jobInfo.getName(), jobInfo.getRepositoryDirectory(), null, versionLabel ); }
RepositoryDirectoryInterface subdir2 = new RepositoryDirectory( subdir1, "subdir2" ); RepositoryElementMetaInterface trans1 = new RepositoryObject( null, "Trans1", subdir1, "user", null, RepositoryObjectType.TRANSFORMATION, "", false ); RepositoryElementMetaInterface trans2 = new RepositoryObject( null, "Trans2", subdir2, "user", null, RepositoryObjectType.TRANSFORMATION, "", false ); RepositoryElementMetaInterface job1 = new RepositoryObject( null, "Job1", subdir1, "user", null, RepositoryObjectType.JOB, "", false ); RepositoryElementMetaInterface job2 = new RepositoryObject( null, "Job2", subdir2, "user", null, RepositoryObjectType.JOB, "", false );
public TransMeta loadTransformation( ObjectId idTransformation, String versionLabel ) throws KettleException { RepositoryObject jobInfo = getObjectInformation( idTransformation, RepositoryObjectType.TRANSFORMATION ); return loadTransformation( jobInfo.getName(), jobInfo.getRepositoryDirectory(), null, true, versionLabel ); }
@Override public List<RepositoryElementMetaInterface> call() throws Exception { List<RepositoryElementMetaInterface> repositoryObjects = new ArrayList<RepositoryElementMetaInterface>(); ResultSet rs = database.openQuery( sql, directoryIdRow.getRowMeta(), directoryIdRow.getData() ); if ( rs != null ) { List<Object[]> rows = database.getRows( rs, -1, null ); if ( rs != null ) { database.closeQuery( rs ); } RowMetaInterface rowMeta = database.getReturnRowMeta(); for ( Object[] r : rows ) { ObjectId id = new LongObjectId( rowMeta.getInteger( r, 4 ) ); repositoryObjects.add( new RepositoryObject( id, rowMeta.getString( r, 0 ), repositoryDirectory, rowMeta .getString( r, 1 ), rowMeta.getDate( r, 2 ), objectType, rowMeta.getString( r, 3 ), false ) ); } } return repositoryObjects; } } );
private void selectJob() { RepositoryObject repositoryObject = DialogHelper.selectRepositoryObject( "*.kjb", log ); if ( repositoryObject != null ) { String path = DialogUtils .getPath( jobMeta.getRepositoryDirectory().getPath(), repositoryObject.getRepositoryDirectory().getPath() ); String fullPath = ( path.equals( "/" ) ? "/" : path + "/" ) + repositoryObject.getName(); wPath.setText( fullPath ); } }
boolean deleted = isDeleted( repositoryFile ); RepositoryDirectoryInterface directory = findDirectory( parentPath ); return new RepositoryObject( objectId, name, directory, ownerName, modifiedDate, objectType, description, deleted ); } catch ( Exception e ) {