Configuration Provider¶
Loading SAP Mobile Services Connection Information From a File¶
Note
This example uses FileConfigurationProvider
for simplicity. You would most likely use one of the other providers such as ManagedConfigurationProvider
and DiscoveryServiceConfigurationProvider
among others.
Save the following content in the raw resources folder (app\src\main\res\raw
). The filename for this example is cpmsconfig.json
.
{
"auth": [{
"type": "basic",
"requireOtp": false
}],
"serviceURL" : "https://mobileservices-youraccount.hana.ondemand.com",
"appID" : "your_application_id",
"appVersion" : "1.0"
}
Read configuration from the file:
ConfigurationLoaderCallback configurationLoaderCallback
= new ConfigurationLoaderCallback() {
@Override
public void onCompletion(ProviderIdentifier providerId, boolean success) {
try {
JSONObject config = DefaultPersistenceMethod
.getPersistedConfiguration(context);
if (config != null) {
AppConfig.createAppConfigFromJsonString(config.toString());
// Use the AppConfig instance to initialize MobileService
}
} catch (ConfigurationPersistenceException e) {
logger.error("ConfigurationPersistenceException:", e);
} catch (JSONException e) {
logger.error("JSONException:", e);
}
}
@Override
public void onError(ConfigurationLoader configurationLoader,
ProviderIdentifier providerId,
UserInputs requestedInput,
ConfigurationProviderError error) {
logger.error("Provider failed to load. {}", error);
}
@Override
public void onInputRequired(ConfigurationLoader configurationLoader,
UserInputs requestedInput) {
logger.debug("Provider requires input. {}", requestedInput);
}
};
ConfigurationProvider[] fileProvider = {
new FileConfigurationProvider(context, "cpmsconfig")
};
final ConfigurationLoader configurationLoader =
new ConfigurationLoader(context,
configurationLoaderCallback,
fileProvider);
//Now initiate configuration load from the file
configurationLoader.loadConfiguration();
val configurationLoaderCallback = object : ConfigurationLoaderCallback() {
override fun onCompletion(providerId: ProviderIdentifier, success: Boolean) {
try {
val config = DefaultPersistenceMethod
.getPersistedConfiguration(context)
if (config != null) {
AppConfig.createAppConfigFromJsonString(config.toString())
// Use the AppConfig instance to initialize MobileService
}
} catch (e: ConfigurationPersistenceException) {
logger.error("ConfigurationPersistenceException:", e)
} catch (e: JSONException) {
logger.error("JSONException:", e)
}
}
override fun onError(configurationLoader: ConfigurationLoader,
providerId: ProviderIdentifier,
requestedInput: UserInputs,
error: ConfigurationProviderError) {
logger.error("Provider failed to load. {}", error)
}
override fun onInputRequired(configurationLoader: ConfigurationLoader,
requestedInput: UserInputs) {
logger.debug("Provider requires input. {}", requestedInput)
}
}
val fileProvider = arrayOf<ConfigurationProvider>(FileConfigurationProvider(context, "cpmsconfig"))
val configurationLoader = ConfigurationLoader(context,
configurationLoaderCallback,
fileProvider)
//Now initiate configuration load from the file
configurationLoader.loadConfiguration()
Last update: November 18, 2021