/** Access a field of a JSON object : return as {@code Optional<String>} */ public static Optional<String> getStr(JsonObject obj, String field) { return Optional.ofNullable(getStrOrNull(obj, field)); }
private Id getIdOrNull(JsonObject obj, String field) { String s = JSONX.getStrOrNull(obj, field); if ( s == null ) return null; return Id.fromString(s); }
public static DataSourceDescription fromJson(JsonObject obj) { String idStr = JSONX.getStrOrNull(obj, F_ID); if ( idStr == null ) throw new DeltaException("Missing \"id:\" in DataSourceDescription JSON"); String name = JSONX.getStrOrNull(obj, F_NAME); if ( name == null ) { @SuppressWarnings("deprecation") String n = JSONX.getStrOrNull(obj, F_BASE); // Compatibility. Log.warn(DataSourceDescription.class, "Deprecated: Use of field name \"base\" - change to \"name\""); name = n; } if ( name == null ) throw new DeltaException("Missing \"name:\" in DataSourceDescription JSON"); String uri = JSONX.getStrOrNull(obj, F_URI); return new DataSourceDescription(Id.fromString(idStr), name, uri); }
conf.jettyConf = JSONX.getStrOrNull(obj, fJetty); conf.zkConnectionString = JSONX.getStrOrNull(obj, fZkConnectionString); conf.zkConf = JSONX.getStrOrNull(obj, fZkConfig); conf.zkData = JSONX.getStrOrNull(obj, fZkData); conf.fileBase = JSONX.getStrOrNull(obj, fFileDirData); conf.provider = Provider.create(JSONX.getStrOrNull(obj, fProvider)); conf.s3BucketName = JSONX.getStrOrNull(obj, fS3BucketName); if ( obj.hasKey(fS3Region) ) conf.s3Region = JSONX.getStrOrNull(obj, fS3Region); if ( obj.hasKey(fS3CredsFile) ) conf.s3CredentialsFile = JSONX.getStrOrNull(obj, fS3CredsFile); if ( obj.hasKey(fS3CredsProfile) ) conf.s3CredentialsProfile = JSONX.getStrOrNull(obj, fS3CredsProfile); if ( obj.hasKey(fS3Endpoint) ) conf.s3Endpoint = JSONX.getStrOrNull(obj, fS3Endpoint);
/** Parse a configuration file. */ public Builder parse(String configFile) { Path path = Paths.get(configFile); if ( ! Files.exists(path) ) throw new DeltaConfigException("File not found: "+configFile); // -- version JsonObject obj = JSON.read(configFile); int version = JSONX.getInt(obj, F_VERSION, -99); if ( version == -99 ) { LOG.warn("No version number for the configuration file : assuming 'current'"); version = DeltaConst.SYSTEM_VERSION; } if ( version != SYSTEM_VERSION ) throw new DeltaConfigException("Version number for LocalServer must be "+DeltaConst.SYSTEM_VERSION+"."); this.configFile = configFile; // -- log provider logProvider = DPS.PatchStoreFileProvider; String logTypeName = JSONX.getStrOrNull(obj, F_LOG_TYPE); if ( logTypeName != null ) { String providerName = PatchStoreMgr.canonical(logTypeName); if ( providerName == null ) providerName = DeltaConst.LOG_FILE; logProvider = providerName; } setProperty(DeltaConst.pDeltaFile, path.getParent().toString()); return this; }
public static PatchLogInfo fromJson(JsonObject obj) { DataSourceDescription dsd = DataSourceDescription.fromJson(obj); Version minVer = Version.fromJson(obj, F_MINVER, Version.UNSET) ; Version maxVer = Version.fromJson(obj, F_MAXVER, Version.UNSET) ; String latestPatchStr = JSONX.getStrOrNull(obj, F_LATEST); Id latestPatch = null; if ( latestPatchStr != null && !latestPatchStr.isEmpty() ) latestPatch = Id.fromString(latestPatchStr); return new PatchLogInfo(dsd, minVer, maxVer, latestPatch); }
String patchStr = JSONX.getStrOrNull(sourceObj, F_ID); if ( patchStr == null || patchStr.isEmpty() ) { dataState.patchId = null; String dsStr = JSONX.getStrOrNull(sourceObj, F_DATASOURCE); if ( dsStr != null ) dataState.datasource = Id.fromString(dsStr); String name = JSONX.getStrOrNull(sourceObj, F_NAME); if ( name != null ) dataState.name = name; String uri = JSONX.getStrOrNull(sourceObj, F_URI); if ( uri != null ) dataState.uri = uri; String typeName = JSONX.getStrOrNull(sourceObj, F_STORAGE); LocalStorageType storage = LocalStorageType.fromString(typeName);