/** * Return a new instance of {@link TaskDefinition}. * * @return new instance of {@code TaskDefinition} */ public TaskDefinition build() { if (this.label == null) { this.label = this.registeredAppName; } return new TaskDefinition(this.registeredAppName, this.label, this.properties); } }
@Override public TaskDefinition mapRow(ResultSet resultSet, int i) throws SQLException { return new TaskDefinition(resultSet.getString("DEFINITION_NAME"), resultSet.getString("DEFINITION")); } }, "DEFINITION_NAME", "DEFINITION");
/** * Register a task for future deployment/execution. * * @param name the name of the task * @param dsl DSL definition for the task */ @RequestMapping(value = "/definitions", method = RequestMethod.POST) public void save(@RequestParam("name") String name, @RequestParam("definition") String dsl) { repository.save(new TaskDefinition(name, dsl)); }
@SuppressWarnings("unchecked") private void initFingerprints(String... samples) { for (String sample : samples) { try { new TaskDefinition("__dummy", sample); } catch (RuntimeException exception) { if (this.exceptionClass.isAssignableFrom(exception.getClass())) { addFingerprintForException((E) exception); } else { throw exception; } } } }
/** * Register a task definition for future execution. * * @param name name the name of the task * @param dsl DSL definition for the task * @return the task definition */ @RequestMapping(value = "", method = RequestMethod.POST) public TaskDefinitionResource save(@RequestParam("name") String name, @RequestParam("definition") String dsl) { TaskDefinition taskDefinition = new TaskDefinition(name, dsl); taskSaveService.saveTaskDefinition(name, dsl); return taskAssembler.toResource(new TaskExecutionAwareTaskDefinition(taskDefinition)); }
@Override public void addProposals(String dsl, ParseException exception, int detailLevel, List<CompletionProposal> proposals) { // Pretend there was an additional dash and invoke the dedicated strategy for that // case String withDashDash = dsl + "-"; try { new TaskDefinition("__dummy", withDashDash); } catch (CheckPointedParseException recoverable) { Assert.isTrue(recoveryAfterDashDash.shouldTrigger(withDashDash, recoverable), "did not trigger after dash-dash"); recoveryAfterDashDash.addProposals(withDashDash, recoverable, detailLevel, proposals); } }
/** * Register a task definition for future execution. * * @param name name the name of the task * @param dsl DSL definition for the task * @return the task definition */ @RequestMapping(value = "", method = RequestMethod.POST) public TaskDefinitionResource save(@RequestParam("name") String name, @RequestParam("definition") String dsl) { TaskDefinition taskDefinition = new TaskDefinition(name, dsl); taskService.saveTaskDefinition(name, dsl); return taskAssembler.toResource(new TaskExecutionAwareTaskDefinition(taskDefinition)); }
private AppRegistration lookupLastApp(CheckPointedParseException exception) { String safe = exception.getExpressionStringUntilCheckpoint(); TaskDefinition taskDefinition = new TaskDefinition("__dummy", safe); return this.collectorSupport.findAppRegistration(taskDefinition.getRegisteredAppName(), ApplicationType.task); }
private String recoverPropertyName(String text) { try { new TaskDefinition("__dummy", text + " --"); } catch (CheckPointedParseException exception) { List<Token> tokens = exception.getTokens(); int end = tokens.size() - 1 - 2; // -2 for skipping dangling -- and space preceding it int tokenPointer = end; while (!tokens.get(tokenPointer - 1).isKind(TokenKind.DOUBLE_MINUS)) { tokenPointer--; } StringBuilder builder; for (builder = new StringBuilder(); tokenPointer < end; tokenPointer++) { Token t = tokens.get(tokenPointer); if (t.isIdentifier()) { builder.append(t.stringValue()); } else { builder.append(t.getKind().getTokenChars()); } } return builder.toString(); } throw new AssertionError("Can't be reached"); }
@SuppressWarnings({ "unchecked", "rawtypes" }) public List<CompletionProposal> complete(String dslStart, int detailLevel) { List<CompletionProposal> collector = new ArrayList<>(); TaskDefinition parsed; try { parsed = new TaskDefinition("__dummy", dslStart); } catch (Exception recoverable) { for (RecoveryStrategy strategy : completionRecoveryStrategies) { if (strategy.shouldTrigger(dslStart, recoverable)) { strategy.addProposals(dslStart, recoverable, detailLevel, collector); } } return collector; } for (TaskExpansionStrategy strategy : completionExpansionStrategies) { strategy.addProposals(dslStart, parsed, detailLevel, collector); } return collector; }
@Override public void addProposals(String dsl, CheckPointedParseException exception, int detailLevel, List<CompletionProposal> collector) { String safe = exception.getExpressionStringUntilCheckpoint(); TaskDefinition taskDefinition = new TaskDefinition("__dummy", safe); AppRegistration appRegistration = this.collectorSupport.findAppRegistration(taskDefinition.getRegisteredAppName(), ApplicationType.task); if (appRegistration != null) { Set<String> alreadyPresentOptions = new HashSet<>(taskDefinition.getProperties().keySet()); this.collectorSupport.addPropertiesProposals(safe, "", appRegistration, alreadyPresentOptions, collector, detailLevel); } } }
@Override public void addProposals(String dsl, CheckPointedParseException exception, int detailLevel, List<CompletionProposal> collector) { String safe = exception.getExpressionStringUntilCheckpoint(); TaskDefinition taskDefinition = new TaskDefinition("__dummy", safe); AppRegistration appRegistration = this.collectorSupport.findAppRegistration(taskDefinition.getRegisteredAppName(), ApplicationType.task); if (appRegistration != null) { String startsWith = ProposalsCollectorSupportUtils.computeStartsWith(exception); Set<String> alreadyPresentOptions = new HashSet<>(taskDefinition.getProperties().keySet()); this.collectorSupport.addPropertiesProposals(safe, startsWith, appRegistration, alreadyPresentOptions, collector, detailLevel); } } }
@Override @Transactional public void saveTaskDefinition(String name, String dsl) { TaskParser taskParser = new TaskParser(name, dsl, true, true); TaskNode taskNode = taskParser.parse(); TaskDefinition taskDefinition = new TaskDefinition(name, dsl); if (taskNode.isComposed()) { // Create the child task definitions needed for the composed task taskNode.getTaskApps().stream().forEach(task -> { // Add arguments to child task definitions String generatedTaskDSL = task.getName() + task.getArguments().entrySet().stream() .map(argument -> String.format(" --%s=%s", argument.getKey(), DefinitionUtils.autoQuotes(argument.getValue()))) .collect(Collectors.joining()); TaskDefinition composedTaskDefinition = new TaskDefinition(task.getExecutableDSLName(), generatedTaskDSL); saveStandardTaskDefinition(composedTaskDefinition); }); this.taskDefinitionRepository.save(taskDefinition); } else { saveStandardTaskDefinition(taskDefinition); } this.auditRecordService.populateAndSaveAuditRecord( AuditOperationType.TASK, AuditActionType.CREATE, name, this.argumentSanitizer.sanitizeTaskDsl(taskDefinition)); }
TaskParser taskParser = new TaskParser(name, dsl, true, true); TaskNode taskNode = taskParser.parse(); TaskDefinition taskDefinition = new TaskDefinition(name, dsl); if (taskDefinitionRepository.existsById(name)) { throw new DuplicateTaskException(String.format( DefinitionUtils.autoQuotes(argument.getValue()))) .collect(Collectors.joining()); TaskDefinition composedTaskDefinition = new TaskDefinition(task.getExecutableDSLName(), generatedTaskDSL); saveStandardTaskDefinition(composedTaskDefinition);
taskDefinition = new TaskDefinition(taskDefinition.getName(), TaskServiceUtils.createComposedTaskDefinition( taskNode.toExecutableDSL(), this.taskConfigurationProperties));
taskDefinition = new TaskDefinition(taskDefinition.getName(), TaskServiceUtils.createComposedTaskDefinition( taskNode.toExecutableDSL(), taskConfigurationProperties));
taskDefinition = new TaskDefinition(taskDefinition.getName(), TaskServiceUtils.createComposedTaskDefinition( taskNode.toExecutableDSL(), taskConfigurationProperties));
taskDefinition = new TaskDefinition(taskDefinition.getName(), TaskServiceUtils.createComposedTaskDefinition( taskNode.toExecutableDSL(), this.taskConfigurationProperties));