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; } }
/** * * @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; } }
@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() ); }
pur.updateFile( file, new NodeRepositoryFileData( databaseMetaTransformer.elementToDataNode( element ) ), versionComment ); new NodeRepositoryFileData( databaseMetaTransformer.elementToDataNode( element ) ), versionComment );
@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() ); }
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 ) ) {
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() ); } }
new NodeRepositoryFileData( transformer.elementToDataNode( element ) ), versionComment ); .createFile( elementsFolderId, file, new NodeRepositoryFileData( transformer.elementToDataNode( element ) ), versionComment );
@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() ); }
public NodeRepositoryFileData fromContentNode( final Session session, final PentahoJcrConstants pentahoJcrConstants, final Node fileNode ) throws RepositoryException { Node unstructuredNode = fileNode.getNode( pentahoJcrConstants.getJCR_CONTENT() ); final String pattern = session.getNamespacePrefix( PentahoJcrConstants.PHO_NS ) + ":" + "*"; //$NON-NLS-1$ //$NON-NLS-2$ Assert.isTrue( unstructuredNode.getNodes( pattern ).getSize() == 1 ); Node jcrNode = unstructuredNode.getNodes( pattern ).nextNode(); return new NodeRepositoryFileData( internalRead( session, pentahoJcrConstants, jcrNode, null ) ); }
@Override public NodeRepositoryFileData unmarshal( final NodeRepositoryFileDataDto v ) { DataNode node = toDataNode( v.getNode() ); NodeRepositoryFileData data = new NodeRepositoryFileData( node ); return data; }
/** * Stubs a {@code getDataForRead} call. The pairs specified will be used to construct a * {@code NodeRepositoryFileData} . */ public static void stubGetData( final IUnifiedRepository repo, final String path, final String rootNodeName, final PathPropertyPair... pairs ) { final String prefix = RepositoryFile.SEPARATOR + rootNodeName; DataNode rootNode = new DataNode( rootNodeName ); for ( PathPropertyPair pair : pairs ) { if ( !pair.getPath().startsWith( prefix ) ) { throw new IllegalArgumentException( "all paths must have a common prefix" ); } String[] pathSegments = pair.getPath().substring( prefix.length() + 1 ).split( "/" ); addChild( rootNode, pair.getProperty(), pathSegments, 0 ); } doReturn( new NodeRepositoryFileData( rootNode ) ).when( repo ).getDataForRead( makeIdObject( path ), NodeRepositoryFileData.class ); }
private RepositoryFile createAclNode( RepositoryFile fileToAddAclFor ) { DataNode dataNode = new DataNode( "acl node" ); DataNodeRef dataNodeRef = new DataNodeRef( fileToAddAclFor.getId() ); dataNode.setProperty( TARGET, dataNodeRef ); dataNode.setProperty( IS_ACL_NODE, true ); NodeRepositoryFileData nodeRepositoryFileData = new NodeRepositoryFileData( dataNode ); return unifiedRepository.createFile( unifiedRepository.getFile( "/" ).getId(), new RepositoryFile.Builder( UUID.randomUUID().toString() ).aclNode( true ).build(), nodeRepositoryFileData, "" ); }
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() ); }
final IRepositoryFileData emptyContent = new NodeRepositoryFileData( emptyDataNode );
RepositoryFile.DEFAULT_LOCALE, databaseConnection.getName() ).versioned( true ).build(); file = repository.createFile( getDatabaseParentFolderId(), file, new NodeRepositoryFileData( databaseHelper .databaseConnectionToDataNode( databaseConnection ) ), null ); if ( file != null && file.getId() != null ) {
@Test public void testGetDatasources() throws Exception { final String fileId = "456"; final String databasesFolderPath = "/etc/pdi/databases"; final String dotKdb = ".kdb"; IUnifiedRepository repo = mock( IUnifiedRepository.class ); // stub out get parent folder doReturn( new RepositoryFile.Builder( "123", "databases" ).folder( true ).build() ).when( repo ).getFile( databasesFolderPath ); doReturn( reservedChars ).when( repo ).getReservedChars(); // stub out get file to update RepositoryFile f = new RepositoryFile.Builder( fileId, EXP_DBMETA_NAME + dotKdb ).path( databasesFolderPath + RepositoryFile.SEPARATOR + EXP_DBMETA_NAME + dotKdb ).build(); doReturn( f ).when( repo ).getFile( databasesFolderPath + RepositoryFile.SEPARATOR + EXP_DBMETA_NAME + dotKdb ); final String EXP_HOST_NAME = "hello"; DataNode rootNode = new DataNode( "databaseMeta" ); rootNode.setProperty( "TYPE", "Hypersonic" ); // required rootNode.setProperty( "HOST_NAME", EXP_HOST_NAME ); rootNode.addNode( "attributes" ); // required doReturn( new NodeRepositoryFileData( rootNode ) ).when( repo ).getDataForRead( eq( fileId ), eq( NodeRepositoryFileData.class ) ); IDatasourceMgmtService datasourceMgmtService = new JcrBackedDatasourceMgmtService( repo, new DatabaseDialectService() ); IDatabaseConnection conn = datasourceMgmtService.getDatasourceByName( EXP_DBMETA_NAME ); assertEquals( EXP_HOST_NAME, conn.getHostname() ); }
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 ) ) ); } }
RepositoryFile.DEFAULT_LOCALE, databaseConnection.getName() ).build(); file = repository.updateFile( file, new NodeRepositoryFileData( databaseHelper .databaseConnectionToDataNode( databaseConnection ) ), null ); renameIfNecessary( databaseConnection, file );