@Before public void setUp() throws Exception { doReturn( true ).when( repository ).isConnected(); doReturn( null ).when( repository ).getJobEntryAttributeString( any( ObjectId.class ), anyString() ); doReturn( rdi ).when( repository ).loadRepositoryDirectoryTree(); doReturn( directory ).when( rdi ).findDirectory( JOB_ENTRY_FILE_DIRECTORY ); doReturn( directory ).when( rdi ).findDirectory( "/home/admin/folder" ); doReturn( null ).when( space ).environmentSubstitute( anyString() ); doReturn( "" ).when( space ).environmentSubstitute( "" ); doReturn( JOB_ENTRY_FILE_PATH ).when( space ).environmentSubstitute( JOB_ENTRY_FILE_PATH ); doReturn( JOB_ENTRY_FILE_NAME ).when( space ).environmentSubstitute( JOB_ENTRY_FILE_NAME ); doReturn( JOB_ENTRY_FILE_DIRECTORY ).when( space ).environmentSubstitute( JOB_ENTRY_FILE_DIRECTORY ); doReturn( "hdfs://server/path/" ).when( space ).environmentSubstitute( "${hdfs}" ); doReturn( "/home/admin/folder/job.kjb" ).when( space ).environmentSubstitute( "${repositoryfullfilepath}" ); doReturn( "/home/admin/folder/" ).when( space ).environmentSubstitute( "${repositorypath}" ); doReturn( "job.kjb" ).when( space ).environmentSubstitute( "${jobname}" ); doReturn( "job" ).when( space ).environmentSubstitute( "job" ); doCallRealMethod().when( resolver ).normalizeSlashes( anyString() ); doReturn( space ).when( resolver ).resolveCurrentDirectory( any( ObjectLocationSpecificationMethod.class ), any( VariableSpace.class ), any( Repository.class ), any( Job.class ), anyString() ); whenNew( CurrentDirectoryResolver.class ).withNoArguments().thenReturn( resolver ); whenNew( JobMeta.class ).withAnyArguments().thenReturn( mock( JobMeta.class ) ); }
JobMeta mappingJobMeta = null; CurrentDirectoryResolver r = new CurrentDirectoryResolver(); VariableSpace tmpSpace = r.resolveCurrentDirectory( executorMeta.getSpecificationMethod(), space, rep, executorMeta.getParentStepMeta(), executorMeta.getFileName() ); realFilename = r.normalizeSlashes( realFilename ); realDirectory = r.normalizeSlashes( realDirectory ); RepositoryDirectoryInterface repdir = rep.findDirectory( realDirectory ); if ( repdir != null ) {
public JobMeta getJobMeta( Repository rep, IMetaStore metaStore, VariableSpace space ) throws KettleException { JobMeta jobMeta = null; try { CurrentDirectoryResolver r = new CurrentDirectoryResolver(); VariableSpace tmpSpace = r.resolveCurrentDirectory( specificationMethod, space, rep, parentJob, getFilename() );
filename = realParent.getFilename(); return resolveCurrentDirectory( parentVariables, directory, filename );
private JobMeta getJobMetaFromRepository( Repository rep, CurrentDirectoryResolver r, String transPath ) throws KettleException { String realJobName = ""; String realDirectory = "/"; int index = transPath.lastIndexOf( RepositoryFile.SEPARATOR ); if ( index != -1 ) { realJobName = transPath.substring( index + 1 ); realDirectory = index == 0 ? RepositoryFile.SEPARATOR : transPath.substring( 0, index ); } realDirectory = r.normalizeSlashes( realDirectory ); RepositoryDirectoryInterface repositoryDirectory = rep.loadRepositoryDirectoryTree().findDirectory( realDirectory ); if ( repositoryDirectory == null ) { throw new KettleException( "Unable to find repository directory [" + Const.NVL( realDirectory, "" ) + "]" ); } return rep.loadJob( realJobName, repositoryDirectory, null, null ); // reads }
CurrentDirectoryResolver r = new CurrentDirectoryResolver(); VariableSpace tmpSpace = r.resolveCurrentDirectory( executorMeta.getSpecificationMethod(), getVarSpaceOnlyWithRequiredParentVars( space ), rep, executorMeta.getParentStepMeta(), executorMeta.getFileName() ); realFilename = r.normalizeSlashes( realFilename ); try { String dirStr = realFilename.substring( 0, realFilename.lastIndexOf( "/" ) ); realDirectory = r.normalizeSlashes( realDirectory ); RepositoryDirectoryInterface repdir = rep.findDirectory( realDirectory ); if ( repdir != null ) {
public TransMeta getTransMeta( Repository rep, IMetaStore metaStore, VariableSpace space ) throws KettleException { try { TransMeta transMeta = null; CurrentDirectoryResolver r = new CurrentDirectoryResolver(); VariableSpace tmpSpace = r.resolveCurrentDirectory( specificationMethod, space, rep, parentJob, getFilename() ); switch ( specificationMethod ) {
public VariableSpace resolveCurrentDirectory( ObjectLocationSpecificationMethod specificationMethod, VariableSpace parentVariables, Repository repository, StepMeta stepMeta, String filename ) { RepositoryDirectoryInterface directory = null; if ( repository != null && specificationMethod.equals( ObjectLocationSpecificationMethod.REPOSITORY_BY_NAME ) && stepMeta != null && stepMeta.getParentTransMeta() != null && stepMeta.getParentTransMeta().getRepositoryDirectory() != null ) { directory = stepMeta.getParentTransMeta().getRepositoryDirectory(); } else if ( repository == null && stepMeta != null && stepMeta.getParentTransMeta() != null ) { filename = stepMeta.getParentTransMeta().getFilename(); } else if ( stepMeta != null && stepMeta.getParentTransMeta() != null && repository != null && specificationMethod.equals( ObjectLocationSpecificationMethod.FILENAME ) ) { // we're using FILENAME but we are connected to a repository directory = stepMeta.getParentTransMeta().getRepositoryDirectory(); } else if ( stepMeta != null && stepMeta.getParentTransMeta() != null && filename == null ) { filename = stepMeta.getParentTransMeta().getFilename(); } return resolveCurrentDirectory( parentVariables, directory, filename ); }
private TransMeta getTransMetaFromRepository( Repository rep, CurrentDirectoryResolver r, String transPath ) throws KettleException { String realTransName = ""; String realDirectory = "/"; if ( StringUtils.isBlank( transPath ) ) { throw new KettleException( BaseMessages.getString( PKG, "JobTrans.Exception.MissingTransFileName" ) ); } int index = transPath.lastIndexOf( RepositoryFile.SEPARATOR ); if ( index != -1 ) { realTransName = transPath.substring( index + 1 ); realDirectory = index == 0 ? RepositoryFile.SEPARATOR : transPath.substring( 0, index ); } realDirectory = r.normalizeSlashes( realDirectory ); RepositoryDirectoryInterface repositoryDirectory = rep.loadRepositoryDirectoryTree().findDirectory( realDirectory ); if ( repositoryDirectory == null ) { throw new KettleException( "Unable to find repository directory [" + Const.NVL( realDirectory, "" ) + "]" ); } return rep.loadTransformation( realTransName, repositoryDirectory, null, true, null ); }
TransMeta mappingTransMeta = null; CurrentDirectoryResolver resolver = new CurrentDirectoryResolver(); VariableSpace tmpSpace = resolver.resolveCurrentDirectory( injectMeta.getSpecificationMethod(), space, rep, injectMeta .getParentStepMeta(), injectMeta.getFileName() ); realFilename = resolver.normalizeSlashes( realFilename ); try { String dirStr = realFilename.substring( 0, realFilename.lastIndexOf( "/" ) );
public static TransMeta getTransMetaFromRepo( String repositoryDir, String repositoryFile, Repository rep, VariableSpace space ) throws KettleException { if ( space instanceof JobEntryHadoopTransJobExecutor ) { CurrentDirectoryResolver r = new CurrentDirectoryResolver(); JobEntryHadoopTransJobExecutor jobEntry = (JobEntryHadoopTransJobExecutor) space; space = r.resolveCurrentDirectory( jobEntry, jobEntry.getParentJob().getRepositoryDirectory(), null ); } String repositoryDirS = space.environmentSubstitute( repositoryDir ); if ( repositoryDirS.isEmpty() ) { repositoryDirS = "/"; } String repositoryFileS = space.environmentSubstitute( repositoryFile ); RepositoryDirectoryInterface repositoryDirectory = rep.loadRepositoryDirectoryTree().findDirectory( repositoryDirS ); return rep.loadTransformation( repositoryFileS, repositoryDirectory, null, true, null ); }