use of org.wso2.carbon.apimgt.api.model.Environment in project carbon-apimgt by wso2.
the class TestUtils method mockAPIMConfiguration.
public static void mockAPIMConfiguration() throws RegistryException, UserStoreException, XMLStreamException {
ServiceReferenceHolder sh = mockRegistryAndUserRealm(-1234);
APIManagerConfigurationService amConfigService = Mockito.mock(APIManagerConfigurationService.class);
APIManagerConfiguration amConfig = Mockito.mock(APIManagerConfiguration.class);
PowerMockito.when(sh.getAPIManagerConfigurationService()).thenReturn(amConfigService);
PowerMockito.when(amConfigService.getAPIManagerConfiguration()).thenReturn(amConfig);
Map<String, Environment> apiGatewayEnvironments = new HashMap<String, Environment>();
Environment env1 = new Environment();
env1.setApiGatewayEndpoint("https://abc.com, http://abc.com");
apiGatewayEnvironments.put("PROD", env1);
// Mocking some commonly used configs
PowerMockito.when(amConfig.getApiGatewayEnvironments()).thenReturn(apiGatewayEnvironments);
PowerMockito.when(amConfig.getFirstProperty(APIConstants.API_GATEWAY_TYPE)).thenReturn(APIConstants.API_GATEWAY_TYPE_SYNAPSE);
PowerMockito.when(amConfig.getFirstProperty(APIConstants.API_PUBLISHER_ENABLE_API_DOC_VISIBILITY_LEVELS)).thenReturn("true", "false");
ThrottleProperties throttleProperties = new ThrottleProperties();
PowerMockito.when(amConfig.getThrottleProperties()).thenReturn(throttleProperties);
}
use of org.wso2.carbon.apimgt.api.model.Environment in project carbon-apimgt by wso2.
the class APIProviderImpl method getLightweightAPIByUUID.
/**
* Get minimal details of API by registry artifact id
*
* @param uuid Registry artifact id
* @param organization identifier of the organization
* @return API of the provided artifact id
* @throws APIManagementException
*/
@Override
public API getLightweightAPIByUUID(String uuid, String organization) throws APIManagementException {
try {
Organization org = new Organization(organization);
PublisherAPI publisherAPI = apiPersistenceInstance.getPublisherAPI(org, uuid);
if (publisherAPI != null) {
API api = APIMapper.INSTANCE.toApi(publisherAPI);
checkAccessControlPermission(userNameWithoutChange, api.getAccessControl(), api.getAccessControlRoles());
// / populate relavant external info
// environment
String environmentString = null;
if (api.getEnvironments() != null) {
environmentString = String.join(",", api.getEnvironments());
}
api.setEnvironments(APIUtil.extractEnvironmentsForAPI(environmentString, organization));
// CORS . if null is returned, set default config from the configuration
if (api.getCorsConfiguration() == null) {
api.setCorsConfiguration(APIUtil.getDefaultCorsConfiguration());
}
api.setOrganization(organization);
return api;
} else {
String msg = "Failed to get API. API artifact corresponding to artifactId " + uuid + " does not exist";
throw new APIMgtResourceNotFoundException(msg);
}
} catch (APIPersistenceException e) {
String msg = "Failed to get API with uuid " + uuid;
throw new APIManagementException(msg, e);
}
}
use of org.wso2.carbon.apimgt.api.model.Environment in project carbon-apimgt by wso2.
the class APIManagerConfiguration method setEnvironmentConfig.
/**
* Set property values for each gateway environments defined in the api-manager.xml config file
*
* @param environmentElem OMElement of a single environment in the gateway environments list
*/
void setEnvironmentConfig(OMElement environmentElem) throws APIManagementException {
Environment environment = new Environment();
environment.setType(environmentElem.getAttributeValue(new QName("type")));
String showInConsole = environmentElem.getAttributeValue(new QName("api-console"));
if (showInConsole != null) {
environment.setShowInConsole(Boolean.parseBoolean(showInConsole));
} else {
environment.setShowInConsole(true);
}
String isDefault = environmentElem.getAttributeValue(new QName("isDefault"));
if (isDefault != null) {
environment.setDefault(Boolean.parseBoolean(isDefault));
} else {
environment.setDefault(false);
}
environment.setName(APIUtil.replaceSystemProperty(environmentElem.getFirstChildWithName(new QName(APIConstants.API_GATEWAY_NAME)).getText()));
environment.setDisplayName(APIUtil.replaceSystemProperty(environmentElem.getFirstChildWithName(new QName(APIConstants.API_GATEWAY_DISPLAY_NAME)).getText()));
if (StringUtils.isEmpty(environment.getDisplayName())) {
environment.setDisplayName(environment.getName());
}
environment.setServerURL(APIUtil.replaceSystemProperty(environmentElem.getFirstChildWithName(new QName(APIConstants.API_GATEWAY_SERVER_URL)).getText()));
environment.setUserName(APIUtil.replaceSystemProperty(environmentElem.getFirstChildWithName(new QName(APIConstants.API_GATEWAY_USERNAME)).getText()));
OMElement passwordElement = environmentElem.getFirstChildWithName(new QName(APIConstants.API_GATEWAY_PASSWORD));
String resolvedPassword = MiscellaneousUtil.resolve(passwordElement, secretResolver);
environment.setPassword(APIUtil.replaceSystemProperty(resolvedPassword));
String provider = environmentElem.getFirstChildWithName(new QName(APIConstants.API_GATEWAY_PROVIDER)).getText();
if (StringUtils.isNotEmpty(provider)) {
environment.setProvider(APIUtil.replaceSystemProperty(provider));
} else {
environment.setProvider(APIUtil.replaceSystemProperty(DEFAULT_PROVIDER));
}
environment.setApiGatewayEndpoint(APIUtil.replaceSystemProperty(environmentElem.getFirstChildWithName(new QName(APIConstants.API_GATEWAY_ENDPOINT)).getText()));
OMElement websocketGatewayEndpoint = environmentElem.getFirstChildWithName(new QName(APIConstants.API_WEBSOCKET_GATEWAY_ENDPOINT));
if (websocketGatewayEndpoint != null) {
environment.setWebsocketGatewayEndpoint(APIUtil.replaceSystemProperty(websocketGatewayEndpoint.getText()));
} else {
environment.setWebsocketGatewayEndpoint(WEBSOCKET_DEFAULT_GATEWAY_URL);
}
OMElement webSubGatewayEndpoint = environmentElem.getFirstChildWithName(new QName(APIConstants.API_WEBSUB_GATEWAY_ENDPOINT));
if (webSubGatewayEndpoint != null) {
environment.setWebSubGatewayEndpoint(APIUtil.replaceSystemProperty(webSubGatewayEndpoint.getText()));
} else {
environment.setWebSubGatewayEndpoint(WEBSUB_DEFAULT_GATEWAY_URL);
}
OMElement description = environmentElem.getFirstChildWithName(new QName("Description"));
if (description != null) {
environment.setDescription(description.getText());
} else {
environment.setDescription("");
}
environment.setReadOnly(true);
List<VHost> vhosts = new LinkedList<>();
environment.setVhosts(vhosts);
environment.setEndpointsAsVhost();
Iterator vhostIterator = environmentElem.getFirstChildWithName(new QName(APIConstants.API_GATEWAY_VIRTUAL_HOSTS)).getChildrenWithLocalName(APIConstants.API_GATEWAY_VIRTUAL_HOST);
while (vhostIterator.hasNext()) {
OMElement vhostElem = (OMElement) vhostIterator.next();
String httpEp = APIUtil.replaceSystemProperty(vhostElem.getFirstChildWithName(new QName(APIConstants.API_GATEWAY_VIRTUAL_HOST_HTTP_ENDPOINT)).getText());
String httpsEp = APIUtil.replaceSystemProperty(vhostElem.getFirstChildWithName(new QName(APIConstants.API_GATEWAY_VIRTUAL_HOST_HTTPS_ENDPOINT)).getText());
String wsEp = APIUtil.replaceSystemProperty(vhostElem.getFirstChildWithName(new QName(APIConstants.API_GATEWAY_VIRTUAL_HOST_WS_ENDPOINT)).getText());
String wssEp = APIUtil.replaceSystemProperty(vhostElem.getFirstChildWithName(new QName(APIConstants.API_GATEWAY_VIRTUAL_HOST_WSS_ENDPOINT)).getText());
String webSubHttpEp = APIUtil.replaceSystemProperty(vhostElem.getFirstChildWithName(new QName(APIConstants.API_GATEWAY_VIRTUAL_HOST_WEBSUB_HTTP_ENDPOINT)).getText());
String webSubHttpsEp = APIUtil.replaceSystemProperty(vhostElem.getFirstChildWithName(new QName(APIConstants.API_GATEWAY_VIRTUAL_HOST_WEBSUB_HTTPS_ENDPOINT)).getText());
// Prefix websub endpoints with 'websub_' so that the endpoint URL
// would begin with: 'websub_http://', since API type is identified by the URL protocol below.
webSubHttpEp = "websub_" + webSubHttpEp;
webSubHttpsEp = "websub_" + webSubHttpsEp;
VHost vhost = VHost.fromEndpointUrls(new String[] { httpEp, httpsEp, wsEp, wssEp, webSubHttpEp, webSubHttpsEp });
vhosts.add(vhost);
}
OMElement properties = environmentElem.getFirstChildWithName(new QName(APIConstants.API_GATEWAY_ADDITIONAL_PROPERTIES));
Map<String, String> additionalProperties = new HashMap<>();
if (properties != null) {
Iterator gatewayAdditionalProperties = properties.getChildrenWithLocalName(APIConstants.API_GATEWAY_ADDITIONAL_PROPERTY);
while (gatewayAdditionalProperties.hasNext()) {
OMElement propertyElem = (OMElement) gatewayAdditionalProperties.next();
String propName = propertyElem.getAttributeValue(new QName("name"));
String resolvedValue = MiscellaneousUtil.resolve(propertyElem, secretResolver);
additionalProperties.put(propName, resolvedValue);
}
}
environment.setAdditionalProperties(additionalProperties);
if (!apiGatewayEnvironments.containsKey(environment.getName())) {
apiGatewayEnvironments.put(environment.getName(), environment);
} else {
// This will happen only on server startup therefore we log and continue the startup
log.error("Duplicate environment name found in api-manager.xml " + environment.getName());
}
}
use of org.wso2.carbon.apimgt.api.model.Environment in project carbon-apimgt by wso2.
the class APIProviderImpl method removeUnDeployedAPIRevision.
@Override
public void removeUnDeployedAPIRevision(String apiId, String apiRevisionUUID, String environment) throws APIManagementException {
Set<DeployedAPIRevision> environmentsToRemove = new HashSet<>();
environmentsToRemove.add(new DeployedAPIRevision(apiRevisionUUID, environment));
apiMgtDAO.removeDeployedAPIRevision(apiId, environmentsToRemove);
}
use of org.wso2.carbon.apimgt.api.model.Environment in project carbon-apimgt by wso2.
the class APIManagerConfiguration method readChildElements.
private void readChildElements(OMElement serverConfig, Stack<String> nameStack) throws APIManagementException {
for (Iterator childElements = serverConfig.getChildElements(); childElements.hasNext(); ) {
OMElement element = (OMElement) childElements.next();
String localName = element.getLocalName();
nameStack.push(localName);
if ("APIKeyValidator".equals(localName)) {
OMElement keyManagerServiceUrl = element.getFirstChildWithName(new QName(APIConstants.AUTHSERVER_URL));
if (keyManagerServiceUrl != null) {
String serviceUrl = keyManagerServiceUrl.getText();
addKeyManagerConfigsAsSystemProperties(APIUtil.replaceSystemProperty(serviceUrl));
}
} else if (TOKEN_REVOCATION_NOTIFIERS.equals(localName)) {
tokenRevocationClassName = element.getAttributeValue(new QName("class"));
} else if (REALTIME_NOTIFIER.equals(localName)) {
Iterator revocationPropertiesIterator = element.getChildrenWithLocalName("Property");
Properties properties = new Properties();
while (revocationPropertiesIterator.hasNext()) {
OMElement propertyElem = (OMElement) revocationPropertiesIterator.next();
properties.setProperty(propertyElem.getAttributeValue(new QName("name")), propertyElem.getText());
}
realtimeNotifierProperties = properties;
} else if (PERSISTENT_NOTIFIER.equals(localName)) {
Iterator revocationPropertiesIterator = element.getChildrenWithLocalName("Property");
Properties properties = new Properties();
while (revocationPropertiesIterator.hasNext()) {
OMElement propertyElem = (OMElement) revocationPropertiesIterator.next();
if (propertyElem.getAttributeValue(new QName("name")).equalsIgnoreCase("password")) {
if (secretResolver.isInitialized() && secretResolver.isTokenProtected(TOKEN_REVOCATION_NOTIFIERS_PASSWORD)) {
properties.setProperty(propertyElem.getAttributeValue(new QName("name")), secretResolver.resolve(TOKEN_REVOCATION_NOTIFIERS_PASSWORD));
} else {
properties.setProperty(propertyElem.getAttributeValue(new QName("name")), propertyElem.getText());
}
} else {
properties.setProperty(propertyElem.getAttributeValue(new QName("name")), propertyElem.getText());
}
}
persistentNotifierProperties = properties;
} else if ("Analytics".equals(localName)) {
OMElement properties = element.getFirstChildWithName(new QName("Properties"));
Iterator analyticsPropertiesIterator = properties.getChildrenWithLocalName("Property");
Map<String, String> analyticsProps = new HashMap<>();
while (analyticsPropertiesIterator.hasNext()) {
OMElement propertyElem = (OMElement) analyticsPropertiesIterator.next();
String name = propertyElem.getAttributeValue(new QName("name"));
String value = propertyElem.getText();
analyticsProps.put(name, value);
}
OMElement authTokenElement = element.getFirstChildWithName(new QName("AuthToken"));
String resolvedAuthToken = MiscellaneousUtil.resolve(authTokenElement, secretResolver);
analyticsProps.put("auth.api.token", resolvedAuthToken);
analyticsProperties = analyticsProps;
} else if ("PersistenceConfigs".equals(localName)) {
OMElement properties = element.getFirstChildWithName(new QName("Properties"));
Iterator analyticsPropertiesIterator = properties.getChildrenWithLocalName("Property");
Map<String, String> persistenceProps = new HashMap<>();
while (analyticsPropertiesIterator.hasNext()) {
OMElement propertyElem = (OMElement) analyticsPropertiesIterator.next();
String name = propertyElem.getAttributeValue(new QName("name"));
String value = propertyElem.getText();
persistenceProps.put(name, value);
}
persistenceProperties = persistenceProps;
} else if (APIConstants.REDIS_CONFIG.equals(localName)) {
OMElement redisHost = element.getFirstChildWithName(new QName(APIConstants.CONFIG_REDIS_HOST));
OMElement redisPort = element.getFirstChildWithName(new QName(APIConstants.CONFIG_REDIS_PORT));
OMElement redisUser = element.getFirstChildWithName(new QName(APIConstants.CONFIG_REDIS_USER));
OMElement redisPassword = element.getFirstChildWithName(new QName(APIConstants.CONFIG_REDIS_PASSWORD));
OMElement redisDatabaseId = element.getFirstChildWithName(new QName(APIConstants.CONFIG_REDIS_DATABASE_ID));
OMElement redisConnectionTimeout = element.getFirstChildWithName(new QName(APIConstants.CONFIG_REDIS_CONNECTION_TIMEOUT));
OMElement redisIsSslEnabled = element.getFirstChildWithName(new QName(APIConstants.CONFIG_REDIS_IS_SSL_ENABLED));
OMElement propertiesElement = element.getFirstChildWithName(new QName(APIConstants.CONFIG_REDIS_PROPERTIES));
redisConfig.setRedisEnabled(true);
redisConfig.setHost(redisHost.getText());
redisConfig.setPort(Integer.parseInt(redisPort.getText()));
if (redisUser != null && redisPassword != null && redisDatabaseId != null && redisConnectionTimeout != null && redisIsSslEnabled != null) {
redisConfig.setUser(redisUser.getText());
redisConfig.setPassword(MiscellaneousUtil.resolve(redisPassword, secretResolver).toCharArray());
redisConfig.setDatabaseId(Integer.parseInt(redisDatabaseId.getText()));
redisConfig.setConnectionTimeout(Integer.parseInt(redisConnectionTimeout.getText()));
redisConfig.setSslEnabled(Boolean.parseBoolean(redisIsSslEnabled.getText()));
}
if (propertiesElement != null) {
Iterator<OMElement> properties = propertiesElement.getChildElements();
if (properties != null) {
while (properties.hasNext()) {
OMElement propertyNode = properties.next();
if (APIConstants.CONFIG_REDIS_MAX_TOTAL.equals(propertyNode.getLocalName())) {
redisConfig.setMaxTotal(Integer.parseInt(propertyNode.getText()));
} else if (APIConstants.CONFIG_REDIS_MAX_IDLE.equals(propertyNode.getLocalName())) {
redisConfig.setMaxIdle(Integer.parseInt(propertyNode.getText()));
} else if (APIConstants.CONFIG_REDIS_MIN_IDLE.equals(propertyNode.getLocalName())) {
redisConfig.setMinIdle(Integer.parseInt(propertyNode.getText()));
} else if (APIConstants.CONFIG_REDIS_TEST_ON_BORROW.equals(propertyNode.getLocalName())) {
redisConfig.setTestOnBorrow(Boolean.parseBoolean(propertyNode.getText()));
} else if (APIConstants.CONFIG_REDIS_TEST_ON_RETURN.equals(propertyNode.getLocalName())) {
redisConfig.setTestOnReturn(Boolean.parseBoolean(propertyNode.getText()));
} else if (APIConstants.CONFIG_REDIS_TEST_WHILE_IDLE.equals(propertyNode.getLocalName())) {
redisConfig.setTestWhileIdle(Boolean.parseBoolean(propertyNode.getText()));
} else if (APIConstants.CONFIG_REDIS_BLOCK_WHEN_EXHAUSTED.equals(propertyNode.getLocalName())) {
redisConfig.setBlockWhenExhausted(Boolean.parseBoolean(propertyNode.getText()));
} else if (APIConstants.CONFIG_REDIS_MIN_EVICTABLE_IDLE_TIME_IN_MILLIS.equals(propertyNode.getLocalName())) {
redisConfig.setMinEvictableIdleTimeMillis(Long.parseLong(propertyNode.getText()));
} else if (APIConstants.CONFIG_REDIS_TIME_BETWEEN_EVICTION_RUNS_IN_MILLIS.equals(propertyNode.getLocalName())) {
redisConfig.setTimeBetweenEvictionRunsMillis(Long.parseLong(propertyNode.getText()));
} else if (APIConstants.CONFIG_REDIS_NUM_TESTS_PER_EVICTION_RUNS.equals(propertyNode.getLocalName())) {
redisConfig.setNumTestsPerEvictionRun(Integer.parseInt(propertyNode.getText()));
}
}
}
}
} else if (elementHasText(element)) {
String key = getKey(nameStack);
String value = MiscellaneousUtil.resolve(element, secretResolver);
addToConfiguration(key, APIUtil.replaceSystemProperty(value));
} else if ("Environments".equals(localName)) {
Iterator environmentIterator = element.getChildrenWithLocalName("Environment");
apiGatewayEnvironments = new LinkedHashMap<String, Environment>();
while (environmentIterator.hasNext()) {
OMElement environmentElem = (OMElement) environmentIterator.next();
setEnvironmentConfig(environmentElem);
}
} else if (APIConstants.EXTERNAL_API_STORES.equals(localName)) {
// Initialize 'externalAPIStores' config elements
Iterator apistoreIterator = element.getChildrenWithLocalName("ExternalAPIStore");
externalAPIStores = new HashSet<APIStore>();
while (apistoreIterator.hasNext()) {
APIStore store = new APIStore();
OMElement storeElem = (OMElement) apistoreIterator.next();
String type = storeElem.getAttributeValue(new QName(APIConstants.EXTERNAL_API_STORE_TYPE));
// Set Store type [eg:wso2]
store.setType(type);
String className = storeElem.getAttributeValue(new QName(APIConstants.EXTERNAL_API_STORE_CLASS_NAME));
try {
store.setPublisher((APIPublisher) APIUtil.getClassInstance(className));
} catch (InstantiationException e) {
String msg = "One or more classes defined in" + APIConstants.EXTERNAL_API_STORE_CLASS_NAME + "cannot be instantiated";
log.error(msg, e);
throw new APIManagementException(msg, e);
} catch (IllegalAccessException e) {
String msg = "One or more classes defined in" + APIConstants.EXTERNAL_API_STORE_CLASS_NAME + "cannot be access";
log.error(msg, e);
throw new APIManagementException(msg, e);
} catch (ClassNotFoundException e) {
String msg = "One or more classes defined in" + APIConstants.EXTERNAL_API_STORE_CLASS_NAME + "cannot be found";
log.error(msg, e);
throw new APIManagementException(msg, e);
}
String name = storeElem.getAttributeValue(new QName(APIConstants.EXTERNAL_API_STORE_ID));
if (name == null) {
log.error("The ExternalAPIStore name attribute is not defined in api-manager.xml.");
}
// Set store name
store.setName(name);
OMElement configDisplayName = storeElem.getFirstChildWithName(new QName(APIConstants.EXTERNAL_API_STORE_DISPLAY_NAME));
String displayName = (configDisplayName != null) ? APIUtil.replaceSystemProperty(configDisplayName.getText()) : name;
// Set store display name
store.setDisplayName(displayName);
store.setEndpoint(APIUtil.replaceSystemProperty(storeElem.getFirstChildWithName(new QName(APIConstants.EXTERNAL_API_STORE_ENDPOINT)).getText()));
store.setPublished(false);
if (APIConstants.WSO2_API_STORE_TYPE.equals(type)) {
OMElement password = storeElem.getFirstChildWithName(new QName(APIConstants.EXTERNAL_API_STORE_PASSWORD));
if (password != null) {
String value = MiscellaneousUtil.resolve(password, secretResolver);
store.setPassword(APIUtil.replaceSystemProperty(value));
store.setUsername(APIUtil.replaceSystemProperty(storeElem.getFirstChildWithName(new QName(APIConstants.EXTERNAL_API_STORE_USERNAME)).getText()));
} else {
log.error("The user-credentials of API Publisher is not defined in the <ExternalAPIStore> " + "config of api-manager.xml.");
}
}
externalAPIStores.add(store);
}
} else if (APIConstants.LOGIN_CONFIGS.equals(localName)) {
Iterator loginConfigIterator = element.getChildrenWithLocalName(APIConstants.LOGIN_CONFIGS);
while (loginConfigIterator.hasNext()) {
OMElement loginOMElement = (OMElement) loginConfigIterator.next();
parseLoginConfig(loginOMElement);
}
} else if (APIConstants.AdvancedThrottleConstants.THROTTLING_CONFIGURATIONS.equals(localName)) {
setThrottleProperties(serverConfig);
} else if (APIConstants.WorkflowConfigConstants.WORKFLOW.equals(localName)) {
setWorkflowProperties(serverConfig);
} else if (APIConstants.ApplicationAttributes.APPLICATION_ATTRIBUTES.equals(localName)) {
Iterator iterator = element.getChildrenWithLocalName(APIConstants.ApplicationAttributes.ATTRIBUTE);
while (iterator.hasNext()) {
OMElement omElement = (OMElement) iterator.next();
Iterator attributes = omElement.getChildElements();
JSONObject jsonObject = new JSONObject();
boolean isHidden = Boolean.parseBoolean(omElement.getAttributeValue(new QName(APIConstants.ApplicationAttributes.HIDDEN)));
boolean isRequired = Boolean.parseBoolean(omElement.getAttributeValue(new QName(APIConstants.ApplicationAttributes.REQUIRED)));
jsonObject.put(APIConstants.ApplicationAttributes.HIDDEN, isHidden);
while (attributes.hasNext()) {
OMElement attribute = (OMElement) attributes.next();
if (attribute.getLocalName().equals(APIConstants.ApplicationAttributes.NAME)) {
jsonObject.put(APIConstants.ApplicationAttributes.ATTRIBUTE, attribute.getText());
} else if (attribute.getLocalName().equals(APIConstants.ApplicationAttributes.DESCRIPTION)) {
jsonObject.put(APIConstants.ApplicationAttributes.DESCRIPTION, attribute.getText());
} else if (attribute.getLocalName().equals(APIConstants.ApplicationAttributes.TOOLTIP)) {
jsonObject.put(APIConstants.ApplicationAttributes.TOOLTIP, attribute.getText());
} else if (attribute.getLocalName().equals(APIConstants.ApplicationAttributes.TYPE)) {
jsonObject.put(APIConstants.ApplicationAttributes.TYPE, attribute.getText());
} else if (attribute.getLocalName().equals(APIConstants.ApplicationAttributes.DEFAULT) && isRequired) {
jsonObject.put(APIConstants.ApplicationAttributes.DEFAULT, attribute.getText());
}
}
if (isHidden && isRequired && !jsonObject.containsKey(APIConstants.ApplicationAttributes.DEFAULT)) {
log.error("A default value needs to be given for required, hidden application attributes.");
}
jsonObject.put(APIConstants.ApplicationAttributes.REQUIRED, isRequired);
applicationAttributes.add(jsonObject);
}
} else if (APIConstants.Monetization.MONETIZATION_CONFIG.equals(localName)) {
OMElement additionalAttributes = element.getFirstChildWithName(new QName(APIConstants.Monetization.ADDITIONAL_ATTRIBUTES));
if (additionalAttributes != null) {
setMonetizationAdditionalAttributes(additionalAttributes);
}
} else if (APIConstants.JWT_CONFIGS.equals(localName)) {
setJWTConfiguration(element);
} else if (APIConstants.TOKEN_ISSUERS.equals(localName)) {
setJWTTokenIssuers(element);
} else if (APIConstants.API_RECOMMENDATION.equals(localName)) {
setRecommendationConfigurations(element);
} else if (APIConstants.GlobalCacheInvalidation.GLOBAL_CACHE_INVALIDATION.equals(localName)) {
setGlobalCacheInvalidationConfiguration(element);
} else if (APIConstants.KeyManager.EVENT_HUB_CONFIGURATIONS.equals(localName)) {
setEventHubConfiguration(element);
} else if (APIConstants.GatewayArtifactSynchronizer.SYNC_RUNTIME_ARTIFACTS_PUBLISHER_CONFIG.equals(localName)) {
setRuntimeArtifactsSyncPublisherConfig(element);
} else if (APIConstants.GatewayArtifactSynchronizer.SYNC_RUNTIME_ARTIFACTS_GATEWAY_CONFIG.equals(localName)) {
setRuntimeArtifactsSyncGatewayConfig(element);
} else if (APIConstants.SkipListConstants.SKIP_LIST_CONFIG.equals(localName)) {
setSkipListConfigurations(element);
} else if (APIConstants.ExtensionListenerConstants.EXTENSION_LISTENERS.equals(localName)) {
setExtensionListenerConfigurations(element);
} else if (APIConstants.JWT_AUDIENCES.equals(localName)) {
setRestApiJWTAuthAudiences(element);
}
readChildElements(element, nameStack);
nameStack.pop();
}
}
Aggregations