/** * This method will trigger the flow in an Async matter. * * @param compilationArtifact the artifact to trigger * @param inputs : flow inputs * @return executionId */ @Override public Long trigger(CompilationArtifact compilationArtifact, Map<String, Value> inputs, Set<SystemProperty> systemProperties) { return slang.run(compilationArtifact, inputs, systemProperties); }
@Override public CompilationModellingResult compileSource(SlangSource source, Set<SlangSource> dependencies) { return compileSource(source, dependencies, PrecompileStrategy.WITHOUT_CACHE); }
public void subscribe(ScoreEventListener eventHandler, Set<String> eventTypes) { slang.subscribeOnEvents(eventHandler, eventTypes); }
@Override public void subscribeOnAllEvents(ScoreEventListener eventListener) { subscribeOnEvents(eventListener, getAllEventTypes()); }
public Set<SystemProperty> parseProperties(String fileName) { Set<SystemProperty> result = new HashSet<>(); File file = new File(fileName); Extension.validatePropertiesFileExtension(file.getName()); SlangSource source = SlangSource.fromFile(new File(fileName)); result.addAll(slang.loadSystemProperties(source)); return result; } }
@Override public CompilationModellingResult compileSource(String filePath, List<String> dependencies) { File file = slangCompilationService.getFile(filePath); try { return slang.compileSource(SlangSource.fromFile(file), getDependencySources(dependencies, file)); } catch (Exception e) { handleException(file, e); return null; } }
@Override public CompilationArtifact compile( SlangSource source, Set<SlangSource> dependencies, PrecompileStrategy precompileStrategy) { Validate.notNull(source, "Source can not be null"); Validate.notNull(precompileStrategy, "Pre-compile strategy can not be null"); Set<SlangSource> dependencySources = filterOutNullSources(dependencies); try { return compiler.compile(source, dependencySources, precompileStrategy); } catch (Exception e) { logger.error("Failed compilation for source : " + source.getName() + " ,Exception is : " + e.getMessage()); throw new RuntimeException(e); } }
@Override public CompilationArtifact compile(SlangSource source, Set<SlangSource> dependencies) { return compile(source, dependencies, PrecompileStrategy.WITHOUT_CACHE); }
@Bean public Slang slang() { return new SlangImpl(); }
private static void registerEventHandlers(Slang slang) { slang.subscribeOnAllEvents(new ScoreEventListener() { @Override public synchronized void onEvent(ScoreEvent event) { logEvent(event); } }); }
@Override public String extractMetadata(File file) { Validate.notNull(file, "File can not be null"); Validate.notNull(file.getAbsolutePath(), "File path can not be null"); Validate.isTrue(file.isFile(), "File: " + file.getName() + " was not found"); Metadata metadata = slang.extractMetadata(SlangSource.fromFile(file)); return prettyPrint(metadata); }
@Override public CompilationArtifact compile(String filePath, List<String> dependencies) { File file = slangCompilationService.getFile(filePath); try { return slang.compile(SlangSource.fromFile(file), getDependencySources(dependencies, file)); } catch (Exception e) { handleException(file, e); return null; } }
@Override public void subscribeOnAllEvents(ScoreEventListener eventListener) { subscribeOnEvents(eventListener, getAllEventTypes()); }
@Override public CompilationArtifact compile( SlangSource source, Set<SlangSource> dependencies, PrecompileStrategy precompileStrategy) { Validate.notNull(source, "Source can not be null"); Validate.notNull(precompileStrategy, "Pre-compile strategy can not be null"); Set<SlangSource> dependencySources = filterOutNullSources(dependencies); try { return compiler.compile(source, dependencySources, precompileStrategy); } catch (Exception e) { logger.error("Failed compilation for source : " + source.getName() + " ,Exception is : " + e.getMessage()); throw new RuntimeException(e); } }
@Override public CompilationModellingResult compileSource(SlangSource source, Set<SlangSource> dependencies) { return compileSource(source, dependencies, PrecompileStrategy.WITHOUT_CACHE); }
@Override public CompilationArtifact compile(SlangSource source, Set<SlangSource> dependencies) { return compile(source, dependencies, PrecompileStrategy.WITHOUT_CACHE); }
@Bean public Slang slang() { return new SlangImpl(); }
@Override public CompilationModellingResult compileSource( SlangSource source, Set<SlangSource> dependencies, PrecompileStrategy precompileStrategy) { Validate.notNull(source, "Source can not be null"); Validate.notNull(precompileStrategy, "Pre-compile strategy can not be null"); Set<SlangSource> dependencySources = filterOutNullSources(dependencies); try { return compiler.compileSource(source, dependencySources, precompileStrategy); } catch (Exception e) { logger.error("Failed compilation for source : " + source.getName() + " ,Exception is : " + e.getMessage()); throw new RuntimeException("Failed compilation for source : " + source.getName() + " ,Exception is : " + e.getMessage(), e); } }