private static AbstractConfigObject loadSystemProperties() { return (AbstractConfigObject) Parseable.newProperties( System.getProperties(), ConfigParseOptions.defaults().setOriginDescription("system properties")) .parse(); }
/** * Use resource key(Optional) and rest json entry as a template and fill in template using Avro as * a reference. e.g: Rest JSON entry HOCON template: * AccountId=${sf_account_id},Member_Id__c=${member_id} Avro: * {"sf_account_id":{"string":"0016000000UiCYHAA3"},"member_id":{"long":296458833}} * * <p>Converted Json: {"AccountId":"0016000000UiCYHAA3","Member_Id__c":296458833} * * <p>As it's template based approach, it can produce nested JSON structure even Avro is flat (or * vice versa). * * <p>e.g: Rest resource template: /sobject/account/memberId/${member_id} Avro: * {"sf_account_id":{"string":"0016000000UiCYHAA3"},"member_id":{"long":296458833}} Converted * resource: /sobject/account/memberId/296458833 * * <p>Converted resource will be used to form end point. * http://www.server.com:9090/sobject/account/memberId/296458833 * * <p>{@inheritDoc} * * @see gobblin.converter.Converter#convertRecord(java.lang.Object, java.lang.Object, * gobblin.configuration.WorkUnitState) */ @Override public Iterable<RestEntry<JsonObject>> convertRecord( Void outputSchema, GenericRecord inputRecord, WorkUnitState workUnit) throws DataConversionException { Config srcConfig = ConfigFactory.parseString( inputRecord.toString(), ConfigParseOptions.defaults().setSyntax(ConfigSyntax.JSON)); String resourceKey = workUnit.getProp(CONVERTER_AVRO_REST_ENTRY_RESOURCE_KEY, ""); if (!StringUtils.isEmpty(resourceKey)) { final String dummyKey = "DUMMY"; Config tmpConfig = ConfigFactory.parseString(dummyKey + "=" + resourceKey).resolveWith(srcConfig); resourceKey = tmpConfig.getString(dummyKey); } String hoconInput = workUnit.getProp(CONVERTER_AVRO_REST_JSON_ENTRY_TEMPLATE); if (StringUtils.isEmpty(hoconInput)) { return new SingleRecordIterable<>( new RestEntry<>(resourceKey, parser.parse(inputRecord.toString()).getAsJsonObject())); } Config destConfig = ConfigFactory.parseString(hoconInput).resolveWith(srcConfig); JsonObject json = parser.parse(destConfig.root().render(ConfigRenderOptions.concise())).getAsJsonObject(); return new SingleRecordIterable<>(new RestEntry<>(resourceKey, json)); }
public static ConfigParseOptions getParseOptions() { ConfigParseOptions configParseOptions = ConfigParseOptions.defaults(); configParseOptions = configParseOptions.setIncluder(new CustomConfigIncluder(configParseOptions.getIncluder())); return configParseOptions; }