Skip to content

Commit 457e859

Browse files
Edison Suchipchilders
authored andcommitted
CLOUDSTACK-2194: Defer ApiDiscoveryServiceImpl load after db upgrade
Signed-off-by: Chip Childers <[email protected]>
1 parent 2aeb460 commit 457e859

2 files changed

Lines changed: 9 additions & 4 deletions

File tree

‎plugins/api/discovery/src/org/apache/cloudstack/discovery/ApiDiscoveryServiceImpl.java‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import javax.annotation.PostConstruct;
2828
import javax.ejb.Local;
2929
import javax.inject.Inject;
30+
import javax.naming.ConfigurationException;
3031

3132
import org.apache.cloudstack.acl.APIChecker;
3233
import org.apache.cloudstack.api.APICommand;
@@ -47,12 +48,13 @@
4748
import com.cloud.user.User;
4849
import com.cloud.utils.ReflectUtil;
4950
import com.cloud.utils.StringUtils;
51+
import com.cloud.utils.component.ManagerBase;
5052
import com.cloud.utils.component.PluggableService;
5153
import com.google.gson.annotations.SerializedName;
5254

5355
@Component
5456
@Local(value = ApiDiscoveryService.class)
55-
public class ApiDiscoveryServiceImpl implements ApiDiscoveryService {
57+
public class ApiDiscoveryServiceImpl extends ManagerBase implements ApiDiscoveryService {
5658
private static final Logger s_logger = Logger.getLogger(ApiDiscoveryServiceImpl.class);
5759

5860
@Inject protected List<APIChecker> _apiAccessCheckers = null;
@@ -63,8 +65,9 @@ protected ApiDiscoveryServiceImpl() {
6365
super();
6466
}
6567

66-
@PostConstruct
67-
void init() {
68+
@Override
69+
public boolean configure(String name, Map<String, Object> params)
70+
throws ConfigurationException {
6871
if (s_apiNameDiscoveryResponseMap == null) {
6972
long startTime = System.nanoTime();
7073
s_apiNameDiscoveryResponseMap = new HashMap<String, ApiDiscoveryResponse>();
@@ -78,6 +81,8 @@ void init() {
7881
long endTime = System.nanoTime();
7982
s_logger.info("Api Discovery Service: Annotation, docstrings, api relation graph processed in " + (endTime - startTime) / 1000000.0 + " ms");
8083
}
84+
85+
return true;
8186
}
8287

8388
protected void cacheResponseMap(Set<Class<?>> cmdClasses) {

‎plugins/api/discovery/test/org/apache/cloudstack/discovery/ApiDiscoveryTest.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public static void setUp() throws ConfigurationException {
6565

6666
Set<Class<?>> cmdClasses = new HashSet<Class<?>>();
6767
cmdClasses.add(ListApisCmd.class);
68-
_discoveryService.init();
68+
_discoveryService.configure(null, null);
6969
_discoveryService.cacheResponseMap(cmdClasses);
7070
}
7171

0 commit comments

Comments
 (0)