public IRepositoryFileData convert( final InputStream inputStream, final String charset, final String mimeType ) { try { long size = inputStream.available(); TransMeta transMeta = new TransMeta(); Repository repository = connectToRepository(); Document doc = PDIImportUtil.loadXMLFrom( inputStream ); transMeta.loadXML( doc.getDocumentElement(), repository, false ); TransDelegate delegate = new TransDelegate( repository, this.unifiedRepository ); saveSharedObjects( repository, transMeta ); return new NodeRepositoryFileData( delegate.elementToDataNode( transMeta ), size ); } catch ( Exception e ) { logger.error( e ); return null; } }
@Override public List<DatabaseMeta> readDatabases() throws KettleException { readWriteLock.readLock().lock(); try { List<RepositoryFile> children = getAllFilesOfType( null, RepositoryObjectType.DATABASE, false ); List<DatabaseMeta> dbMetas = new ArrayList<DatabaseMeta>(); for ( RepositoryFile file : children ) { DataNode node; node = pur.getDataForRead( file.getId(), NodeRepositoryFileData.class ).getNode(); DatabaseMeta databaseMeta = (DatabaseMeta) databaseMetaTransformer.dataNodeToElement( node ); databaseMeta.setName( file.getTitle() ); dbMetas.add( databaseMeta ); } return dbMetas; } catch ( Exception e ) { throw new KettleException( "Unable to read all databases", e ); } finally { readWriteLock.readLock().unlock(); } }
private void process( final FileRecord r, final IRepositoryFileData oldData ) { IRepositoryFileData data = r.getData(); if ( data instanceof SimpleRepositoryFileData ) { r.setData( new ReusableSimpleRepositoryFileData( (SimpleRepositoryFileData) data ) ); } else if ( data instanceof NodeRepositoryFileData ) { DataNode node = ( (NodeRepositoryFileData) data ).getNode(); referralManager.process( r.getFile().getId(), oldData != null ? ( (NodeRepositoryFileData) oldData ).getNode() : null, node ); r.setData( new NodeRepositoryFileData( idManager.process( node ) ) ); } }
private void testMarshalUnmarshalDate( Locale locale, TimeZone timeZone ) throws Exception { final Locale defaultLocale = Locale.getDefault(); final TimeZone defaultTimeZone = TimeZone.getDefault(); final String DATE_PROPERTY = "date"; //$NON-NLS-1$ NodeRepositoryFileDataAdapter adapter = new NodeRepositoryFileDataAdapter(); Date date = new Date(); DataNode node = new DataNode( "" ); //$NON-NLS-1$ node.setProperty( DATE_PROPERTY, date ); NodeRepositoryFileData data = new NodeRepositoryFileData( node ); NodeRepositoryFileData result; // Convert using the provided locale try { Locale.setDefault( locale ); TimeZone.setDefault( timeZone ); NodeRepositoryFileDataDto dto = adapter.marshal( data ); result = adapter.unmarshal( dto ); } finally { Locale.setDefault( defaultLocale ); TimeZone.setDefault( defaultTimeZone ); } DataProperty property = result.getNode().getProperty( DATE_PROPERTY ); assertNotNull( property ); assertEquals( date, property.getDate() ); }
@Override public IMetaStoreElement getElement( String namespace, IMetaStoreElementType elementType, String elementId ) throws MetaStoreException { NodeRepositoryFileData data = pur.getDataForRead( elementId, NodeRepositoryFileData.class ); if ( data == null ) { return null; } IMetaStoreElement element = newElement(); element.setId( elementId ); element.setElementType( elementType ); DataNode dataNode = data.getNode(); dataNodeToElement( dataNode, element ); return element; }
/** * * @param inputStream * @param charset * @param mimeType * @return */ public IRepositoryFileData convert( final InputStream inputStream, final String charset, final String mimeType ) { try { long size = inputStream.available(); JobMeta jobMeta = new JobMeta(); Repository repository = connectToRepository(); Document doc = PDIImportUtil.loadXMLFrom( inputStream ); if ( doc != null ) { jobMeta.loadXML( doc.getDocumentElement(), repository, null ); JobDelegate delegate = new JobDelegate( repository, this.unifiedRepository ); delegate.saveSharedObjects( jobMeta, null ); return new NodeRepositoryFileData( delegate.elementToDataNode( jobMeta ), size ); } else { return null; } } catch ( Exception e ) { return null; } }
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; } }
@Override public synchronized void updateElementType( String namespace, IMetaStoreElementType elementType ) throws MetaStoreException { RepositoryFile folder = getElementTypeRepositoryFolder( namespace, elementType ); RepositoryFile detailsFile = findChildByName( folder.getId(), ELEMENT_TYPE_DETAILS_FILENAME, true ); DataNode dataNode = getElementTypeDataNode( elementType ); pur.updateFile( detailsFile, new NodeRepositoryFileData( dataNode ), null ); elementType.setMetaStoreName( getName() ); }
public PartitionSchema assemble( RepositoryFile file, NodeRepositoryFileData data, VersionSummary version ) throws KettleException { PartitionSchema partitionSchema = (PartitionSchema) dataNodeToElement( data.getNode() ); partitionSchema.setName( file.getTitle() ); partitionSchema.setObjectId( new StringObjectId( file.getId().toString() ) ); partitionSchema.setObjectRevision( repo.createObjectRevision( version ) ); partitionSchema.clearChanged(); return partitionSchema; } }
pur.updateFile( file, new NodeRepositoryFileData( databaseMetaTransformer.elementToDataNode( element ) ), versionComment ); new NodeRepositoryFileData( databaseMetaTransformer.elementToDataNode( element ) ), versionComment );
public ClusterSchema assemble( RepositoryFile file, NodeRepositoryFileData data, VersionSummary version ) throws KettleException { ClusterSchema clusterSchema = (ClusterSchema) dataNodeToElement( data.getNode() ); clusterSchema.setName( file.getTitle() ); clusterSchema.setObjectId( new StringObjectId( file.getId().toString() ) ); clusterSchema.setObjectRevision( repo.createObjectRevision( version ) ); clusterSchema.clearChanged(); return clusterSchema; } }
@Override public synchronized void updateElement( String namespace, IMetaStoreElementType elementType, String elementId, IMetaStoreElement element ) throws MetaStoreException { // verify that the element type belongs to this meta store // if ( elementType.getMetaStoreName() == null || !elementType.getName().equals( getName() ) ) { String elementTypeName = elementType.getName(); elementType = getElementTypeByName( namespace, elementTypeName ); if ( elementType == null ) { throw new MetaStoreException( "The element type '" + elementTypeName + "' could not be found in the meta store in which you are updating." ); } } RepositoryFile existingFile = pur.getFileById( elementId ); if ( existingFile == null ) { throw new MetaStoreException( "The element to update with id " + elementId + " could not be found in the store" ); } DataNode elementDataNode = new DataNode( PurRepository.checkAndSanitize( element.getName() ) ); elementToDataNode( element, elementDataNode ); RepositoryFile updatedFile = pur.updateFile( existingFile, new NodeRepositoryFileData( elementDataNode ), null ); element.setId( updatedFile.getId().toString() ); }
public SlaveServer assemble( RepositoryFile file, NodeRepositoryFileData data, VersionSummary version ) throws KettleException { SlaveServer slaveServer = (SlaveServer) dataNodeToElement( data.getNode() ); slaveServer.setName( file.getTitle() ); slaveServer.setObjectId( new StringObjectId( file.getId().toString() ) ); slaveServer.setObjectRevision( repo.createObjectRevision( version ) ); slaveServer.clearChanged(); return slaveServer; } }
public void createElement( String namespace, IMetaStoreElementType elementType, IMetaStoreElement element ) throws MetaStoreException { RepositoryFile elementTypeFolder = validateElementTypeRepositoryFolder( namespace, elementType ); RepositoryFile elementFile = new RepositoryFile.Builder( PurRepository.checkAndSanitize( element.getName() ) ).title( element.getName() ) .versioned( false ).build(); DataNode elementDataNode = new DataNode( PurRepository.checkAndSanitize( element.getName() ) ); elementToDataNode( element, elementDataNode ); RepositoryFile createdFile = pur.createFile( elementTypeFolder.getId(), elementFile, new NodeRepositoryFileData( elementDataNode ), null ); element.setId( createdFile.getId().toString() ); // Verify existence. if ( pur.getFileById( createdFile.getId() ) == null ) { throw new RuntimeException( "Unable to verify creation of element '" + element.getName() + "' in folder: " + elementTypeFolder.getPath() ); } }
@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; }
pur.updateFile( file, new NodeRepositoryFileData( objectTransformer.elementToDataNode( element ) ), versionComment ); } catch ( SOAPFaultException e ) { new NodeRepositoryFileData( objectTransformer.elementToDataNode( element ) ), versionComment ); } catch ( SOAPFaultException e ) { if ( e.getMessage().contains( UnifiedRepositoryCreateFileException.PREFIX ) ) {
NodeRepositoryFileData.class ).getNode(), jobMeta );
new NodeRepositoryFileData( transformer.elementToDataNode( element ) ), versionComment ); .createFile( elementsFolderId, file, new NodeRepositoryFileData( transformer.elementToDataNode( element ) ), versionComment );
pur.getDataAtVersionForRead( idTransformation.getId(), versionLabel, NodeRepositoryFileData.class ).getNode(), transMeta ); } finally {
@Override public void createElementType( String namespace, IMetaStoreElementType elementType ) throws MetaStoreException { RepositoryFile namespaceFile = validateNamespace( namespace ); IMetaStoreElementType existingType = getElementTypeByName( namespace, elementType.getName() ); if ( existingType != null ) { throw new MetaStoreElementTypeExistsException( Collections.singletonList( existingType ), "Can not create element type with id '" + elementType.getId() + "' because it already exists" ); } RepositoryFile elementTypeFile = new RepositoryFile.Builder( elementType.getName() ).folder( true ).versioned( false ).build(); RepositoryFile folder = pur.createFolder( namespaceFile.getId(), elementTypeFile, null ); elementType.setId( folder.getId().toString() ); // In this folder there is a hidden file which contains the description // and the other future properties of the element type // RepositoryFile detailsFile = new RepositoryFile.Builder( ELEMENT_TYPE_DETAILS_FILENAME ).folder( false ).title( ELEMENT_TYPE_DETAILS_FILENAME ).description( elementType.getDescription() ).hidden( true ).build(); DataNode dataNode = getElementTypeDataNode( elementType ); pur.createFile( folder.getId(), detailsFile, new NodeRepositoryFileData( dataNode ), null ); elementType.setMetaStoreName( getName() ); }