diff --git a/api/src/org/apache/cloudstack/discovery/ApiDiscoveryService.java b/api/src/org/apache/cloudstack/discovery/ApiDiscoveryService.java index 12206949db3..96ea3ee4d34 100644 --- a/api/src/org/apache/cloudstack/discovery/ApiDiscoveryService.java +++ b/api/src/org/apache/cloudstack/discovery/ApiDiscoveryService.java @@ -16,14 +16,10 @@ // under the License. package org.apache.cloudstack.discovery; -import com.cloud.utils.component.Adapter; import com.cloud.utils.component.PluggableService; import org.apache.cloudstack.api.BaseResponse; import org.apache.cloudstack.api.response.ListResponse; -import java.util.Map; - -public interface ApiDiscoveryService extends Adapter, PluggableService { +public interface ApiDiscoveryService extends PluggableService { ListResponse listApis(); - Map> getApiNameCmdClassMapping(); } diff --git a/client/tomcatconf/components.xml.in b/client/tomcatconf/components.xml.in index b9feed15a88..b779c860cc2 100755 --- a/client/tomcatconf/components.xml.in +++ b/client/tomcatconf/components.xml.in @@ -56,9 +56,6 @@ under the License. - - - diff --git a/plugins/api/discovery/src/org/apache/cloudstack/discovery/ApiDiscoveryServiceImpl.java b/plugins/api/discovery/src/org/apache/cloudstack/discovery/ApiDiscoveryServiceImpl.java index 5363e559a5f..ea6b206fa44 100644 --- a/plugins/api/discovery/src/org/apache/cloudstack/discovery/ApiDiscoveryServiceImpl.java +++ b/plugins/api/discovery/src/org/apache/cloudstack/discovery/ApiDiscoveryServiceImpl.java @@ -17,7 +17,6 @@ package org.apache.cloudstack.discovery; import com.cloud.utils.ReflectUtil; -import com.cloud.utils.component.AdapterBase; import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.BaseCmd; import org.apache.cloudstack.api.BaseAsyncCmd; @@ -30,7 +29,6 @@ import org.apache.cloudstack.api.response.ListResponse; import org.apache.log4j.Logger; import javax.ejb.Local; -import javax.naming.ConfigurationException; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; @@ -39,36 +37,28 @@ import java.util.Map; import java.util.Set; @Local(value = ApiDiscoveryService.class) -public class ApiDiscoveryServiceImpl extends AdapterBase implements ApiDiscoveryService { - +public class ApiDiscoveryServiceImpl implements ApiDiscoveryService { private static final Logger s_logger = Logger.getLogger(ApiDiscoveryServiceImpl.class); - private Map> _apiNameCmdClassMap; - private ListResponse _discoveryResponse; + + private ListResponse _discoveryResponse = new ListResponse(); + + private Map> _apiNameCmdClassMap = new HashMap>(); protected ApiDiscoveryServiceImpl() { super(); + generateApiNameCmdClassMap(); + cacheListApiResponse(); } - private void generateApiNameCmdClassMapping() { - _apiNameCmdClassMap = new HashMap>(); - Set> cmdClasses = ReflectUtil.getClassesWithAnnotation(APICommand.class, new String[]{"org.apache.cloudstack.api", "com.cloud.api"}); + private void generateApiNameCmdClassMap() { + Set> cmdClasses = ReflectUtil.getClassesWithAnnotation(APICommand.class, + new String[]{"org.apache.cloudstack.api", "com.cloud.api"}); - for(Class cmdClass: cmdClasses) { - String apiName = cmdClass.getAnnotation(APICommand.class).name(); - if (_apiNameCmdClassMap.containsKey(apiName)) { - s_logger.error("API Cmd class " + cmdClass.getName() + " has non-unique apiname" + apiName); - continue; - } - _apiNameCmdClassMap.put(apiName, cmdClass); - } + for(Class cmdClass: cmdClasses) + _apiNameCmdClassMap.put(cmdClass.getAnnotation(APICommand.class).name(), cmdClass); } - private void precacheListApiResponse() { - - if(_apiNameCmdClassMap == null) - return; - - _discoveryResponse = new ListResponse(); + private void cacheListApiResponse() { List apiDiscoveryResponses = new ArrayList(); @@ -117,21 +107,6 @@ public class ApiDiscoveryServiceImpl extends AdapterBase implements ApiDiscovery _discoveryResponse.setResponses(apiDiscoveryResponses); } - @Override - public boolean configure(String name, Map params) - throws ConfigurationException { - super.configure(name, params); - - generateApiNameCmdClassMapping(); - precacheListApiResponse(); - - return true; - } - - public Map> getApiNameCmdClassMapping() { - return _apiNameCmdClassMap; - } - @Override public ListResponse listApis() { return _discoveryResponse;