@Override public long getLastModified() { return getRepositoryFile().getLastModified(); }
public DataCleanerConfiguration getAnalyzerBeansConfiguration() { long lastModified = getConfigurationFile().getLastModified(); if (_configuration == null || lastModified != _lastModifiedCache) { synchronized (this) { lastModified = _file.getLastModified(); if (_configuration == null || lastModified != _lastModifiedCache) { DataCleanerConfiguration readConfiguration = readConfiguration(); DataCleanerConfiguration decoratedConfiguration = decorateConfiguration(readConfiguration); _configuration = decoratedConfiguration; } } } return _configuration; }
/** * Checks if the current copy of the metadata object is recent. * * @param metadataObject * the object to look for. */ private void verifyJobMetadataCurrent(final Object metadataObject) { long lastModified = _file.getLastModified(); if (metadataObject == null || lastModified != _lastModifiedCache) { synchronized (this) { lastModified = _file.getLastModified(); if (_sourceDatastoreName == null || lastModified != _lastModifiedCache) { final DataCleanerConfiguration configuration = _tenantContext.getConfiguration(); final AnalysisJobMetadata metadata = _file.readFile(new Func<InputStream, AnalysisJobMetadata>() { @Override public AnalysisJobMetadata eval(InputStream in) { final JaxbJobReader jobReader = new JaxbJobReader(configuration); AnalysisJobMetadata metadata = jobReader.readMetadata(in); return metadata; } }); _sourceDatastoreName = metadata.getDatastoreName(); _sourceColumnPaths = metadata.getSourceColumnPaths(); _variables = metadata.getVariables(); } } } }
@Override public AnalysisJob getAnalysisJob(Map<String, String> variableOverrides, Map<String, String> overrideProperties) { if ((variableOverrides == null || variableOverrides.isEmpty()) && overrideProperties == null) { // cached job definition may be used, if not outdated final long configurationLastModified = _tenantContext.getConfigurationFile().getLastModified(); long lastModified = Math.max(_file.getLastModified(), configurationLastModified); if (_job == null || lastModified != _lastModifiedCache) { synchronized (this) { lastModified = Math.max(_file.getLastModified(), configurationLastModified); if (_job == null || lastModified != _lastModifiedCache) { _lastModifiedCache = lastModified; final DataCleanerConfiguration configuration = _tenantContext.getConfiguration(); final MonitorJobReader reader = new MonitorJobReader(configuration, _file); _job = reader.readJob(); _sourceDatastoreName = _job.getDatastore().getName(); } } } return _job; } final DataCleanerConfiguration configuration = _tenantContext.getConfiguration(overrideProperties); final MonitorJobReader reader = new MonitorJobReader(configuration, _file); final AnalysisJob job = reader.readJob(variableOverrides); _sourceDatastoreName = job.getDatastore().getName(); return job; }
final Date creationDate = new Date(_repositoryFile.getLastModified()); final Map<ComponentJob, AnalyzerResult> results = new HashMap<ComponentJob, AnalyzerResult>(1); final JobContext job = getJob();
DataCleanerConfiguration readConfiguration(Map<String, String> overrideProperties) { final ConfigurationReaderInterceptor interceptor = new MonitorConfigurationReaderInterceptor(_repository, _tenantContext, overrideProperties, _injectionManagerFactory); final JaxbConfigurationReader reader = new JaxbConfigurationReader(interceptor); final RepositoryFile configurationFile = getConfigurationFile(); _lastModifiedCache = configurationFile.getLastModified(); if (_lastModifiedCache < 0) { logger.warn( "Last modified timestamp was negative ({})! Returning plain DataCleanerConfiguration since this indicates that the file has been deleted.", _lastModifiedCache); final RepositoryFolder tenantRootFolder = _tenantContext.getTenantRootFolder(); final DataCleanerHomeFolder homeFolder = new DataCleanerHomeFolderImpl(tenantRootFolder); final DataCleanerEnvironmentImpl baseEnvironment = MonitorConfigurationReaderInterceptor.createBaseEnvironment(_injectionManagerFactory); return new DataCleanerConfigurationImpl(baseEnvironment, homeFolder); } logger.info("Reading configuration from file: {}", configurationFile); final DataCleanerConfiguration readConfiguration = configurationFile .readFile(new Func<InputStream, DataCleanerConfiguration>() { @Override public DataCleanerConfiguration eval(InputStream inputStream) { final DataCleanerConfiguration readConfiguration = reader.read(inputStream); return readConfiguration; } }); return readConfiguration; }