Skip to content

Marketplace assistant #12353

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -548,7 +548,10 @@ public enum ExceptionCodes implements ErrorHandler {
KEY_MANAGER_RESTRICTED_FOR_USER(902013, "Unauthorized Access to Key Manager", 403, "Key Manager is Restricted for this user"),
// Admin portal get apis and api provider change related errors
CHANGE_API_PROVIDER_FAILED(903011, "Error while changing the API provider", 500, "Error while changing the API provider in the registry or DB"),
GET_SEARCH_APIS_IN_ADMIN_FAILED(903012, "Error while getting the apis", 500, "Error while getting/searching the apis from registry");
GET_SEARCH_APIS_IN_ADMIN_FAILED(903012, "Error while getting the apis", 500, "Error while getting/searching the apis from registry"),

// AI service invocation related exceptions
INVALID_RESPONSE_FROM_AI_SERVICE(903100, "Invalid response from AI service", 500, "Error while invoking AI service. %s", false);

private final long errorCode;
private final String errorMessage;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -501,6 +501,23 @@ public final class APIConstants {
public static final String DIGEST = "x5t#S256";
public static final String CNF = "cnf";

// Constants related to AI features: API chat and Marketplace Assistant
public static final String API_CHAT = "APIChat.";
public static final String API_CHAT_ENABLED = API_CHAT + "Enabled";
public static final String API_CHAT_AUTH_TOKEN = API_CHAT + "AuthToken";
public static final String API_CHAT_ENDPOINT = API_CHAT + "Endpoint";
public static final String API_CHAT_PREPARE_RESOURCE = "/prepare"; // "/api-chat/prepare"
public static final String API_CHAT_EXECUTE_RESOURCE = "/chat"; // "/api-chat/chat"
public static final String MARKETPLACE_ASSISTANT = "MarketplaceAssistant";
public static final String MARKETPLACE_ASSISTANT_ENABLED = "Enabled";
public static final String MARKETPLACE_ASSISTANT_AUTH_TOKEN = "AuthToken";
public static final String MARKETPLACE_ASSISTANT_ENDPOINT = "Endpoint";
public static final String MARKETPLACE_ASSISTANT_CHAT_RESOURCE = "ChatResource";
public static final String MARKETPLACE_ASSISTANT_PUBLISH_API_RESOURCE = "ApiPublishResource";
public static final String MARKETPLACE_ASSISTANT_DELETE_API_RESOURCE = "ApiDeleteResource";
public static final String MARKETPLACE_ASSISTANT_API_COUNT_RESOURCE = "ApiCountResource";


//documentation rxt

public static final String DOC_NAME = "overview_name";
Expand Down Expand Up @@ -1677,6 +1694,33 @@ private ConfigParameters() {
public static final String API_DATA_SANDBOX_ENDPOINTS = "sandbox_endpoints";
public static final String API_DATA_URL = "url";
public static final String API_UUID = "apiUUID";
public static final String UUID = "uuid";
public static final String API_SPEC_TYPE = "api_type";
public static final String API_SPEC_NAME = "api_name";
public static final String TENANT_DOMAIN = "tenant_domain";
public static final String QUERY = "query";
public static final String HISTORY = "history";
public static final String VERSION = "version";
public static final String DESCRIPTION = "description";

public static final String DEMOTE_TO_CREATED= "Demote to Created";
public static final String BLOCK = "Block";
public static final String DEPRECATE = "Deprecate";
public static final String PUBLISH = "Publish";
public static final String DEPLOY_AS_A_PROTOTYPE = "Deploy as a Prototype";
public static final String REPUBLISH = "Re-Publish";

public static final String API_SPEC_TYPE_REST = "api_spec";
public static final String API_SPEC_TYPE_GRAPHQL = "sdl_schema";
public static final String API_SPEC_TYPE_ASYNC = "async_spec";
public static final String API_TYPE_HTTP = "HTTP";
public static final String API_TYPE_WEBHOOK = "WEBHOOK";

public static final String API_TYPE_REST = "REST";

public static final String API_TYPE_GRAPHQL = "GRAPHQL";
public static final String API_TYPE_ASYNC = "ASYNC";


public static final String TRANSPORT_URL_IN = "TransportInURL";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import org.wso2.carbon.apimgt.common.gateway.dto.JWKSConfigurationDTO;
import org.wso2.carbon.apimgt.common.gateway.dto.TokenIssuerDto;
import org.wso2.carbon.apimgt.common.gateway.extensionlistener.ExtensionListener;
import org.wso2.carbon.apimgt.impl.ai.MarketplaceAssistantConfigurationDto;
import org.wso2.carbon.apimgt.impl.dto.EventHubConfigurationDto;
import org.wso2.carbon.apimgt.impl.dto.ExtendedJWTConfigurationDto;
import org.wso2.carbon.apimgt.impl.dto.GatewayArtifactSynchronizerProperties;
Expand Down Expand Up @@ -116,6 +117,7 @@
private boolean initialized;
private ThrottleProperties throttleProperties = new ThrottleProperties();
private ExtendedJWTConfigurationDto jwtConfigurationDto = new ExtendedJWTConfigurationDto();
private static MarketplaceAssistantConfigurationDto marketplaceAssistantConfigurationDto = new MarketplaceAssistantConfigurationDto();
private WorkflowProperties workflowProperties = new WorkflowProperties();
private Map<String, Environment> apiGatewayEnvironments = new LinkedHashMap<String, Environment>();
private static Properties realtimeNotifierProperties;
Expand Down Expand Up @@ -169,6 +171,11 @@
return monetizationConfigurationDto;
}

public MarketplaceAssistantConfigurationDto getMarketplaceAssistantConfigurationDto() {

return marketplaceAssistantConfigurationDto;
}

public Map<String, Map<String, String>> getLoginConfiguration() {

return loginConfiguration;
Expand Down Expand Up @@ -624,6 +631,8 @@
jsonObject.put(APIConstants.CustomPropertyAttributes.REQUIRED, isRequired);
customProperties.add(jsonObject);
}
} else if (APIConstants.MARKETPLACE_ASSISTANT.equals(localName)) {
setMarketplaceAssistantConfiguration(element);
}
readChildElements(element, nameStack);
nameStack.pop();
Expand Down Expand Up @@ -1692,6 +1701,48 @@
}
}

public void setMarketplaceAssistantConfiguration(OMElement omElement){
OMElement marketplaceAssistantEnableElement =
omElement.getFirstChildWithName(new QName(APIConstants.MARKETPLACE_ASSISTANT_ENABLED));
if (marketplaceAssistantEnableElement != null) {
marketplaceAssistantConfigurationDto.setEnabled(Boolean.parseBoolean(marketplaceAssistantEnableElement.getText()));
}
if (marketplaceAssistantConfigurationDto.isEnabled()) {
OMElement marketplaceAssistantEndpoint =
omElement.getFirstChildWithName(new QName(APIConstants.MARKETPLACE_ASSISTANT_ENDPOINT));

Check warning on line 1712 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java#L1711-L1712

Added lines #L1711 - L1712 were not covered by tests
if (marketplaceAssistantEndpoint != null) {
marketplaceAssistantConfigurationDto.setEndpoint(marketplaceAssistantEndpoint.getText());

Check warning on line 1714 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java#L1714

Added line #L1714 was not covered by tests
}
OMElement marketplaceAssistantToken =
omElement.getFirstChildWithName(new QName(APIConstants.MARKETPLACE_ASSISTANT_AUTH_TOKEN));

Check warning on line 1717 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java#L1716-L1717

Added lines #L1716 - L1717 were not covered by tests

if (marketplaceAssistantToken != null) {
String AccessToken = MiscellaneousUtil.resolve(marketplaceAssistantToken, secretResolver);
marketplaceAssistantConfigurationDto.setAccessToken(AccessToken);

Check warning on line 1721 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java#L1720-L1721

Added lines #L1720 - L1721 were not covered by tests
}
OMElement marketplaceAssistantApiCountResource =
omElement.getFirstChildWithName(new QName(APIConstants.MARKETPLACE_ASSISTANT_API_COUNT_RESOURCE));

Check warning on line 1724 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java#L1723-L1724

Added lines #L1723 - L1724 were not covered by tests
if (marketplaceAssistantApiCountResource != null) {
marketplaceAssistantConfigurationDto.setApiCountResource(marketplaceAssistantApiCountResource.getText());

Check warning on line 1726 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java#L1726

Added line #L1726 was not covered by tests
}
OMElement marketplaceAssistantApiDeleteResource =
omElement.getFirstChildWithName(new QName(APIConstants.MARKETPLACE_ASSISTANT_DELETE_API_RESOURCE));

Check warning on line 1729 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java#L1728-L1729

Added lines #L1728 - L1729 were not covered by tests
if (marketplaceAssistantApiDeleteResource != null) {
marketplaceAssistantConfigurationDto.setApiDeleteResource(marketplaceAssistantApiDeleteResource.getText());

Check warning on line 1731 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java#L1731

Added line #L1731 was not covered by tests
}
OMElement marketplaceAssistantApiPublishResource =
omElement.getFirstChildWithName(new QName(APIConstants.MARKETPLACE_ASSISTANT_PUBLISH_API_RESOURCE));

Check warning on line 1734 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java#L1733-L1734

Added lines #L1733 - L1734 were not covered by tests
if (marketplaceAssistantApiPublishResource != null) {
marketplaceAssistantConfigurationDto.setApiPublishResource(marketplaceAssistantApiPublishResource.getText());

Check warning on line 1736 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java#L1736

Added line #L1736 was not covered by tests
}
OMElement marketplaceAssistantChatResource =
omElement.getFirstChildWithName(new QName(APIConstants.MARKETPLACE_ASSISTANT_CHAT_RESOURCE));

Check warning on line 1739 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java#L1738-L1739

Added lines #L1738 - L1739 were not covered by tests
if (marketplaceAssistantChatResource != null) {
marketplaceAssistantConfigurationDto.setChatResource(marketplaceAssistantChatResource.getText());

Check warning on line 1741 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIManagerConfiguration.java#L1741

Added line #L1741 was not covered by tests
}
}
}

public ThrottleProperties getThrottleProperties() {

return throttleProperties;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2336,7 +2336,7 @@ public void deleteAPI(String apiUuid, String organization) throws APIManagementE
APIConstants.EventType.API_DELETE.name(), tenantId, organization, api.getId().getApiName(), apiId,
api.getUuid(), api.getId().getVersion(), api.getType(), api.getContext(),
APIUtil.replaceEmailDomainBack(api.getId().getProviderName()),
api.getStatus(), api.getApiSecurity());
api.getStatus(), api.getApiSecurity(), api.getStatus(), api.getVisibility());
APIUtil.sendNotification(apiEvent, APIConstants.NotifierType.API.name());
} else {
log.debug("Event has not published to gateways due to API id has failed to retrieve from DB for API "
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
package org.wso2.carbon.apimgt.impl.ai;

public class MarketplaceAssistantConfigurationDto {

private String AccessToken;
private String Endpoint;
private String ApiPublishResource;
private String ChatResource;
private String ApiDeleteResource;
private String ApiCountResource;
private boolean isEnabled;



public String getAccessToken() {
return AccessToken;

Check warning on line 16 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java#L16

Added line #L16 was not covered by tests
}

public void setAccessToken(String AccessToken) {
this.AccessToken = AccessToken;
}

Check warning on line 21 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java#L20-L21

Added lines #L20 - L21 were not covered by tests

public String getEndpoint() {
return Endpoint;

Check warning on line 24 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java#L24

Added line #L24 was not covered by tests
}

public void setEndpoint(String Endpoint) {
this.Endpoint = Endpoint;
}

Check warning on line 29 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java#L28-L29

Added lines #L28 - L29 were not covered by tests

public String getApiPublishResource() {
return ApiPublishResource;

Check warning on line 32 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java#L32

Added line #L32 was not covered by tests
}

public void setApiPublishResource(String ApiPublishResource) {
this.ApiPublishResource = ApiPublishResource;
}

Check warning on line 37 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java#L36-L37

Added lines #L36 - L37 were not covered by tests

public String getChatResource() {
return ChatResource;

Check warning on line 40 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java#L40

Added line #L40 was not covered by tests
}

public void setChatResource(String ChatResource) {
this.ChatResource = ChatResource;
}

Check warning on line 45 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java#L44-L45

Added lines #L44 - L45 were not covered by tests

public String getApiDeleteResource() {
return ApiDeleteResource;

Check warning on line 48 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java#L48

Added line #L48 was not covered by tests
}

public void setApiDeleteResource(String ApiDeleteResource) {
this.ApiDeleteResource = ApiDeleteResource;
}

Check warning on line 53 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java#L52-L53

Added lines #L52 - L53 were not covered by tests

public String getApiCountResource() {
return ApiCountResource;

Check warning on line 56 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java#L56

Added line #L56 was not covered by tests
}

public void setApiCountResource(String ApiCountResource) {
this.ApiCountResource = ApiCountResource;
}

Check warning on line 61 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/ai/MarketplaceAssistantConfigurationDto.java#L60-L61

Added lines #L60 - L61 were not covered by tests

public boolean isEnabled() {
return isEnabled;
}

public void setEnabled(boolean Enabled) {
this.isEnabled = Enabled;
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@
import org.wso2.carbon.apimgt.impl.notifier.ScopesNotifier;
import org.wso2.carbon.apimgt.impl.notifier.SubscriptionsNotifier;
import org.wso2.carbon.apimgt.impl.notifier.KeyTemplateNotifier;
import org.wso2.carbon.apimgt.impl.notifier.MarketplaceAssistantApiPublisherNotifier;
import org.wso2.carbon.apimgt.impl.observers.APIStatusObserverList;
import org.wso2.carbon.apimgt.impl.observers.CommonConfigDeployer;
import org.wso2.carbon.apimgt.impl.observers.KeyMgtConfigDeployer;
Expand Down Expand Up @@ -201,6 +202,8 @@
String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
configuration.load(filePath);

boolean isMarketplaceAssistantEnabled = configuration.getMarketplaceAssistantConfigurationDto().isEnabled();

//Registering Notifiers
bundleContext.registerService(Notifier.class.getName(), new SubscriptionsNotifier(), null);
bundleContext.registerService(Notifier.class.getName(), new ApisNotifier(), null);
Expand All @@ -216,6 +219,9 @@
bundleContext.registerService(Notifier.class.getName(),new KeyTemplateNotifier(), null);
bundleContext.registerService(Notifier.class.getName(), new CorrelationConfigNotifier(), null);
bundleContext.registerService(Notifier.class.getName(), new GatewayPolicyNotifier(), null);
if (isMarketplaceAssistantEnabled) {
bundleContext.registerService(Notifier.class.getName(), new MarketplaceAssistantApiPublisherNotifier(), null);

Check warning on line 223 in components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/internal/APIManagerComponent.java

View check run for this annotation

Codecov / codecov/patch

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/internal/APIManagerComponent.java#L223

Added line #L223 was not covered by tests
}
APIManagerConfigurationServiceImpl configurationService = new APIManagerConfigurationServiceImpl(configuration);
ServiceReferenceHolder.getInstance().setAPIManagerConfigurationService(configurationService);
APIMgtDBUtil.initialize();
Expand Down
Loading
Loading