/** Creates a builder for the FlowSpec based on values in a flow properties config. */ public static FlowSpec.Builder builder(URI catalogURI, Properties flowProps) { String name = flowProps.getProperty(ConfigurationKeys.FLOW_NAME_KEY); String group = flowProps.getProperty(ConfigurationKeys.FLOW_GROUP_KEY, "default"); try { URI flowURI = new URI(catalogURI.getScheme(), catalogURI.getAuthority(), "/" + group + "/" + name, null); FlowSpec.Builder builder = new FlowSpec.Builder(flowURI).withConfigAsProperties(flowProps); String descr = flowProps.getProperty(ConfigurationKeys.FLOW_DESCRIPTION_KEY, null); if (null != descr) { builder = builder.withDescription(descr); } return builder; } catch (URISyntaxException e) { throw new RuntimeException("Unable to create a FlowSpec URI: " + e, e); } }
public URI getDefaultURI() { URI flowCatalogURI = getFlowCatalogURI(); Config flowCfg = getConfig(); String name = flowCfg.hasPath(ConfigurationKeys.FLOW_NAME_KEY) ? flowCfg.getString(ConfigurationKeys.FLOW_NAME_KEY) : "default"; String group = flowCfg.hasPath(ConfigurationKeys.FLOW_GROUP_KEY) ? flowCfg.getString(ConfigurationKeys.FLOW_GROUP_KEY) : "default"; try { return new URI(flowCatalogURI.getScheme(), flowCatalogURI.getAuthority(), "/" + group + "/" + name, null, null); } catch (URISyntaxException e) { throw new RuntimeException("Unable to create default FlowSpec URI:" + e, e); } }
public Config getConfig() { if (!this.config.isPresent()) { this.config = this.configAsProperties.isPresent() ? Optional.of(ConfigUtils.propertiesToTypedConfig(this.configAsProperties.get(), Optional.<String>absent())) : Optional.of(getDefaultConfig()); } return this.config.get(); }
/** * Build a {@link FlowSpec} from a {@link FlowConfig} * @param flowConfig flow configuration * @return {@link FlowSpec} created with attributes from flowConfig */ private FlowSpec createFlowSpecForConfig(FlowConfig flowConfig) { ConfigBuilder configBuilder = ConfigBuilder.create() .addPrimitive(ConfigurationKeys.FLOW_GROUP_KEY, flowConfig.getId().getFlowGroup()) .addPrimitive(ConfigurationKeys.FLOW_NAME_KEY, flowConfig.getId().getFlowName()); if (flowConfig.hasSchedule()) { Schedule schedule = flowConfig.getSchedule(); configBuilder.addPrimitive(ConfigurationKeys.JOB_SCHEDULE_KEY, schedule.getCronSchedule()); configBuilder.addPrimitive(ConfigurationKeys.FLOW_RUN_IMMEDIATELY, schedule.isRunImmediately()); } Config config = configBuilder.build(); Config configWithFallback = config.withFallback(ConfigFactory.parseMap(flowConfig.getProperties())); URI templateURI = null; try { templateURI = new URI(flowConfig.getTemplateUris()); } catch (URISyntaxException e) { logAndThrowRestLiServiceException(HttpStatus.S_400_BAD_REQUEST, "bad URI " + flowConfig.getTemplateUris(), e); } return FlowSpec.builder().withConfig(configWithFallback).withTemplate(templateURI).build(); }
public static FlowSpec.Builder builder() { return new FlowSpec.Builder(); }
public static FlowSpec.Builder builder(String flowSpecUri) { return new FlowSpec.Builder(flowSpecUri); }
public static FlowSpec.Builder builder(URI flowSpecUri) { return new FlowSpec.Builder(flowSpecUri); }
public URI getURI() { if (! this.uri.isPresent()) { this.uri = Optional.of(getDefaultURI()); } return this.uri.get(); }
public URI getFlowCatalogURI() { if (! this.flowCatalogURI.isPresent()) { this.flowCatalogURI = Optional.of(getDefaultFlowCatalogURI()); } return this.flowCatalogURI.get(); }
public FlowSpec build() { Preconditions.checkNotNull(this.uri); Preconditions.checkNotNull(this.version); return new FlowSpec(getURI(), getVersion(), getDescription(), getConfig(), getConfigAsProperties(), getTemplateURIs(), getChildSpecs()); }
public String getDescription() { if (! this.description.isPresent()) { this.description = Optional.of(getDefaultDescription()); } return this.description.get(); }