@Override public String getName() { return self.getName(); }
protected RepositoryFile findChildByName( Serializable folderId, String childName, boolean showHiddenFiles ) { for ( RepositoryFile child : getChildren( folderId, showHiddenFiles ) ) { if ( child.getName().equals( childName ) ) { return child; } } return null; }
@Override public List<String> getNamespaces() throws MetaStoreException { List<String> namespaces = new ArrayList<String>(); List<RepositoryFile> children = getChildren( namespacesFolder.getId() ); for ( RepositoryFile child : children ) { namespaces.add( child.getName() ); } return namespaces; }
@Override public String getType() { if ( file.getName().endsWith( RepositoryObjectType.TRANSFORMATION.getExtension() ) ) { return RepositoryObjectType.TRANSFORMATION.name(); } else if ( file.getName().endsWith( RepositoryObjectType.JOB.getExtension() ) ) { return RepositoryObjectType.JOB.name(); } else { return null; } }
private String getMetaStoreFolders( StringBuilder builder, RepositoryFile folder, int level ) { String spaces = Const.rightPad( " ", level * 2 ); builder.append( spaces ); if ( folder.isFolder() ) { builder.append( "/" ); } builder.append( folder.getName() ).append( Const.CR ); for ( RepositoryFile file : getChildren( folder.getId() ) ) { getMetaStoreFolders( builder, file, level + 1 ); } return builder.toString(); }
protected List<RepositoryFile> getReferrers( ObjectId fileId, List<RepositoryObjectType> referrerTypes ) throws KettleException { // Use a result list to append to; Removing from the files list was causing a concurrency exception List<RepositoryFile> result = new ArrayList<RepositoryFile>(); readWriteLock.readLock().lock(); List<RepositoryFile> files; try { files = pur.getReferrers( fileId.getId() ); } finally { readWriteLock.readLock().unlock(); } // Filter out types if ( referrerTypes != null && referrerTypes.size() > 0 ) { for ( RepositoryFile file : files ) { if ( referrerTypes.contains( getObjectType( file.getName() ) ) ) { result.add( file ); } } } return result; }
public boolean canExport( RepositoryFile file ) throws KettleException { return RepositoryObjectType.JOB.equals( repository.getObjectType( file.getName() ) ); }
public boolean canExport( RepositoryFile file ) throws KettleException { return RepositoryObjectType.TRANSFORMATION.equals( repository.getObjectType( file.getName() ) ); }
@Override public String[] getDirectoryNames( final ObjectId idDirectory ) throws KettleException { try { readWriteLock.readLock().lock(); List<RepositoryFile> children; try { children = pur.getChildren( idDirectory.getId() ); } finally { readWriteLock.readLock().unlock(); } List<String> childNames = new ArrayList<String>(); for ( RepositoryFile child : children ) { if ( child.isFolder() ) { childNames.add( child.getName() ); } } return childNames.toArray( new String[ 0 ] ); } catch ( Exception e ) { throw new KettleException( "Unable to get list of object names from directory [" + idDirectory + "]", e ); } }
private NamedParams getMeta( RepositoryFile file ) throws KettleException { NamedParams meta = null; if ( file != null ) { String extension = FilenameUtils.getExtension( file.getName() ); Repository repo = PDIImportUtil.connectToRepository( null ); if ( "ktr".equalsIgnoreCase( extension ) ) { meta = new TransMeta( convertTransformation( file.getId() ), repo, true, null, null ); } else if ( "kjb".equalsIgnoreCase( extension ) ) { meta = new JobMeta( convertJob( file.getId() ), repo, null ); } } return meta; }
repDir.setName( dirFile.getName() ); for ( RepositoryFile file : nonDeletedChildren ) { RepositoryLock lock = unifiedRepositoryLockService.getLock( file ); RepositoryObjectType objectType = getObjectType( file.getName() ); for ( RepositoryFile file : deletedChildren ) { RepositoryLock lock = unifiedRepositoryLockService.getLock( file ); RepositoryObjectType objectType = getObjectType( file.getName() ); list.add( new EERepositoryObject( file, repDir, null, objectType, null, lock, true ) );
public DatabaseMeta assemble( RepositoryFile file, NodeRepositoryFileData data, VersionSummary version ) throws KettleException { DatabaseMeta databaseMeta = (DatabaseMeta) dataNodeToElement( data.getNode() ); String fileName = file.getName(); if ( fileName.endsWith( ".kdb" ) ) { fileName = fileName.substring( 0, fileName.length() - 4 ); } databaseMeta.setChangedDate( file.getLastModifiedDate() ); databaseMeta.setName( fileName ); databaseMeta.setDisplayName( file.getTitle() ); databaseMeta.setObjectId( new StringObjectId( file.getId().toString() ) ); databaseMeta.setObjectRevision( repo.createObjectRevision( version ) ); databaseMeta.clearChanged(); return databaseMeta; } }
public static RepositoryFile build( String parentPath, org.pentaho.platform.api.repository2.unified.RepositoryFile repositoryFile, Boolean isAdmin ) { RepositoryFile repositoryFile1 = new RepositoryFile(); repositoryFile1.setObjectId( () -> (String) repositoryFile.getId() ); repositoryFile1.setName( stripExtension( repositoryFile.getName() ) ); repositoryFile1.setType( getType( repositoryFile.getName() ) ); repositoryFile1.setExtension( ".ktr" ); repositoryFile1.setDate( repositoryFile.getLastModifiedDate() ); repositoryFile1.setPath( parentPath ); repositoryFile1.setHidden( repositoryFile.isHidden() && !isAdmin ); return repositoryFile1; }
throw new KettleException( "unknown element type [" + element.getClass().getName() + "]" ); if ( !file.getName().equals( checkAndSanitize( filename ) ) ) { return true;
private void fillRepositoryDirectoryFromTree( final RepositoryDirectoryInterface parentDir, final RepositoryFileTree treeNode ) throws KettleException { try { List<RepositoryElementMetaInterface> fileChildren = new ArrayList<RepositoryElementMetaInterface>(); List<RepositoryFileTree> children = treeNode.getChildren(); if ( children != null ) { for ( RepositoryFileTree child : children ) { if ( child.getFile().isFolder() ) { RepositoryDirectory dir = new RepositoryDirectory( parentDir, child.getFile().getName() ); dir.setObjectId( new StringObjectId( child.getFile().getId().toString() ) ); parentDir.addSubdirectory( dir ); fillRepositoryDirectoryFromTree( dir, child ); } else { // a real file, like a Transformation or Job RepositoryLock lock = unifiedRepositoryLockService.getLock( child.getFile() ); RepositoryObjectType objectType = getObjectType( child.getFile().getName() ); fileChildren.add( new EERepositoryObject( child, parentDir, null, objectType, null, lock, false ) ); } } parentDir.setRepositoryObjects( fileChildren ); } } catch ( Exception e ) { throw new KettleException( "Unable to load directory structure from repository", e ); } }
@Override public List<RepositoryElementMetaInterface> getRepositoryObjects( ) { if ( fileChildren == null ) { fileChildren = new ArrayList<>(); synchronized ( fileChildren ) { UnifiedRepositoryLockService lockService = (UnifiedRepositoryLockService) registry.getService( ILockService.class ); RepositoryFileTree tree = repository.getTree( new RepositoryRequest( this.self.getPath(), showHidden, 1, null ) ); for ( RepositoryFileTree tchild : tree.getChildren() ) { RepositoryFile child = tchild.getFile(); if ( !child.isFolder() ) { RepositoryLock lock = null; try { lock = lockService.getLock( child ); RepositoryObjectType objectType = PurRepository.getObjectType( child.getName() ); EERepositoryObject repositoryObject = new EERepositoryObject( child, this, null, objectType, null, lock, false ); repositoryObject.setVersioningEnabled( tchild.getVersioningEnabled() ); repositoryObject.setVersionCommentEnabled( tchild.getVersionCommentEnabled() ); fileChildren.add( repositoryObject ); } catch ( KettleException e ) { logger.error( "Error converting Unified Repository file to PDI RepositoryObject: " + child.getPath() + ". File will be skipped", e ); } } } } } return fileChildren; }
@Override public IMetaStoreElementType getElementType( String namespace, String elementTypeId ) throws MetaStoreException { RepositoryFile elementTypeFolder = pur.getFileById( elementTypeId ); if ( elementTypeFolder == null ) { return null; } IMetaStoreElementType elementType = newElementType( namespace ); elementType.setId( elementTypeFolder.getId().toString() ); elementType.setName( elementTypeFolder.getName() ); RepositoryFile detailsFile = findChildByName( elementTypeFolder.getId(), ELEMENT_TYPE_DETAILS_FILENAME, true ); if ( detailsFile != null ) { NodeRepositoryFileData data = pur.getDataForRead( detailsFile.getId(), NodeRepositoryFileData.class ); DataProperty property = data.getNode().getProperty( "element_type_description" ); if ( property != null ) { elementType.setDescription( property.getString() ); } } return elementType; }
public static RepositoryDirectory build( String parentPath, org.pentaho.platform.api.repository2.unified.RepositoryFile repositoryFile, Boolean isAdmin ) { RepositoryDirectory repositoryDirectory = new RepositoryDirectory(); repositoryDirectory.setParent( parentPath ); repositoryDirectory.setName( repositoryFile.getName() ); repositoryDirectory.setPath( repositoryFile.getPath() ); repositoryDirectory.setObjectId( () -> (String) repositoryFile.getId() ); repositoryDirectory.setHidden( repositoryFile.isHidden() && !isAdmin ); repositoryDirectory.setDate( repositoryFile.getLastModifiedDate() != null ? repositoryFile.getLastModifiedDate() : repositoryFile.getCreatedDate() ); return repositoryDirectory; }
private JobMeta buildJobMeta( final RepositoryFile file, final RepositoryDirectoryInterface parentDir, final NodeRepositoryFileData data, final ObjectRevision revision ) throws KettleException { JobMeta jobMeta = new JobMeta(); jobMeta.setName( file.getTitle() ); jobMeta.setFilename( file.getName() ); jobMeta.setDescription( file.getDescription() ); jobMeta.setObjectId( new StringObjectId( file.getId().toString() ) ); jobMeta.setObjectRevision( revision ); jobMeta.setRepository( this ); jobMeta.setRepositoryDirectory( parentDir ); jobMeta.setMetaStore( getMetaStore() ); readJobMetaSharedObjects( jobMeta ); // This should read from the local cache jobDelegate.dataNodeToElement( data.getNode(), jobMeta ); jobMeta.clearChanged(); return jobMeta; }
private TransMeta buildTransMeta( final RepositoryFile file, final RepositoryDirectoryInterface parentDir, final NodeRepositoryFileData data, final ObjectRevision revision ) throws KettleException { TransMeta transMeta = new TransMeta(); transMeta.setName( file.getTitle() ); transMeta.setFilename( file.getName() ); transMeta.setDescription( file.getDescription() ); transMeta.setObjectId( new StringObjectId( file.getId().toString() ) ); transMeta.setObjectRevision( revision ); transMeta.setRepository( this ); transMeta.setRepositoryDirectory( parentDir ); transMeta.setMetaStore( getMetaStore() ); readTransSharedObjects( transMeta ); // This should read from the local cache transDelegate.dataNodeToElement( data.getNode(), transMeta ); transMeta.clearChanged(); return transMeta; }