use of io.syndesis.qe.bdd.entities.StepDefinition in project syndesis-qe by syndesisio.
the class UiComplexSteps method processMapperSteps.
private void processMapperSteps() {
List<StepDefinition> mappers = steps.getStepDefinitions().stream().filter(s -> s.getStep().getStepKind().equals(StepKind.mapper)).collect(Collectors.toList());
if (mappers.isEmpty()) {
log.debug("There are no mappers in this integration, proceeding...");
} else {
// mapping can be done on steps that preceed mapper step and the single step, which follows the mapper step.
log.info("Found mapper step, creating new atlas mapping.");
for (int i = 0; i < mappers.size(); i++) {
List<StepDefinition> precedingSteps = steps.getStepDefinitions().subList(0, steps.getStepDefinitions().indexOf(mappers.get(i))).stream().filter(s -> s.getConnectorDescriptor().isPresent()).collect(Collectors.toList());
StepDefinition followingStep = steps.getStepDefinitions().get(steps.getStepDefinitions().indexOf(mappers.get(i)) + 1);
if (mappers.get(i).getStep().getConfiguredProperties().containsKey("atlasmapping")) {
// TODO(tplevko): think of some way to substitute placeholders for the step ID's
reflectStepIdsInAtlasMapping(mappers.get(i), precedingSteps, followingStep);
} else {
// TODO(tplevko): fix for more than one preceding step.
mappers.get(i).setStep(atlasGenerator.getAtlasMappingStep(mappers.get(i), precedingSteps, followingStep));
}
}
}
}
use of io.syndesis.qe.bdd.entities.StepDefinition in project syndesis-qe by syndesisio.
the class AtlasMapperGenerator method generateSeparateMapping.
private Mapping generateSeparateMapping(DataMapperStepDefinition mappingDef, List<StepDefinition> precedingSteps, StepDefinition followingStep) {
StepDefinition fromStep = precedingSteps.get(mappingDef.getFromStep() - 1);
Mapping generatedMapping = new Mapping();
generatedMapping.setId(UUID.randomUUID().toString());
generatedMapping.setMappingType(MappingType.SEPARATE);
generatedMapping.setDelimiter(mappingDef.getStrategy().name());
List<Field> out = new ArrayList<>();
for (int i = 0; i < mappingDef.getOutputFields().size(); i++) {
String def = mappingDef.getOutputFields().get(i);
Field outField = followingStep.getInspectionResponseFields().get().stream().filter(f -> f.getPath().matches(def)).findFirst().get();
outField.setIndex(i);
out.add(outField);
}
Field in = fromStep.getInspectionResponseFields().get().stream().filter(f -> f.getPath().matches(mappingDef.getInputFields().get(0))).findFirst().get();
out.forEach(f -> f.setDocId(followingStep.getStep().getId().get()));
in.setDocId(fromStep.getStep().getId().get());
generatedMapping.getOutputField().addAll(out);
generatedMapping.getInputField().add(in);
return generatedMapping;
}
use of io.syndesis.qe.bdd.entities.StepDefinition in project syndesis-qe by syndesisio.
the class AtlasMapperGenerator method generateMapMapping.
private Mapping generateMapMapping(DataMapperStepDefinition mappingDef, List<StepDefinition> precedingSteps, StepDefinition followingStep) {
StepDefinition fromStep = precedingSteps.get(mappingDef.getFromStep() - 1);
Mapping generatedMapping = new Mapping();
generatedMapping.setId(UUID.randomUUID().toString());
generatedMapping.setMappingType(MappingType.MAP);
Field in = fromStep.getInspectionResponseFields().get().stream().filter(f -> f.getPath().matches(mappingDef.getInputFields().get(0))).findFirst().get();
Field out = followingStep.getInspectionResponseFields().get().stream().filter(f -> f.getPath().matches(mappingDef.getOutputFields().get(0))).findFirst().get();
in.setDocId(fromStep.getStep().getId().get());
out.setDocId(followingStep.getStep().getId().get());
generatedMapping.getInputField().add(in);
generatedMapping.getOutputField().add(out);
return generatedMapping;
}
use of io.syndesis.qe.bdd.entities.StepDefinition in project syndesis-qe by syndesisio.
the class DataMapperStep method createMapperStep.
/**
* Step used for import of mapping json files. The step definition must contain a json file name, located in folder:
* "resources/mappings"
*
* @param templateName
* @throws IOException
*/
@Given("^create mapper step using template: \"([^\"]*)\"")
public void createMapperStep(String templateName) throws IOException {
final String mapping = new String(Files.readAllBytes(Paths.get("./target/test-classes/mappings/" + templateName + ".json")));
final Step mapperStep = new Step.Builder().stepKind(StepKind.mapper).configuredProperties(TestUtils.map("atlasmapping", mapping)).build();
steps.getStepDefinitions().add(new StepDefinition(mapperStep));
}
use of io.syndesis.qe.bdd.entities.StepDefinition in project syndesis-qe by syndesisio.
the class DbSteps method createFinishDbInvokeSqlStep.
@Then("^create finish DB invoke sql action step with query \"([^\"]*)\"")
public void createFinishDbInvokeSqlStep(String sqlQuery) {
final Connection dbConnection = connectionsEndpoint.get(getDbConnectionId());
final Connector dbConnector = connectorsEndpoint.get("sql");
final Action dbAction = TestUtils.findConnectorAction(dbConnector, "sql-connector");
final Map<String, String> properties = TestUtils.map("query", sqlQuery);
final ConnectorDescriptor connectorDescriptor = getConnectorDescriptor(dbAction, properties, dbConnection.getId().get());
final Step dbStep = new Step.Builder().stepKind(StepKind.endpoint).id(UUID.randomUUID().toString()).connection(dbConnection).action(generateStepAction(dbAction, connectorDescriptor)).configuredProperties(properties).build();
steps.getStepDefinitions().add(new StepDefinition(dbStep, connectorDescriptor));
}
Aggregations