diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/org/onap/dcae/inventory/InventoryApplication.java | 46 | ||||
-rw-r--r-- | src/main/java/org/onap/dcae/inventory/daos/InventoryDAOManager.java | 4 |
2 files changed, 34 insertions, 16 deletions
diff --git a/src/main/java/org/onap/dcae/inventory/InventoryApplication.java b/src/main/java/org/onap/dcae/inventory/InventoryApplication.java index 259ce93..7b0911e 100644 --- a/src/main/java/org/onap/dcae/inventory/InventoryApplication.java +++ b/src/main/java/org/onap/dcae/inventory/InventoryApplication.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * dcae-inventory * ================================================================================ - * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,6 +37,8 @@ import io.dropwizard.setup.Environment; import io.swagger.api.DcaeServiceTypesApi; import io.swagger.api.DcaeServicesApi; import io.swagger.api.DcaeServicesGroupbyApi; +import io.swagger.api.HealthCheckApi; +import io.swagger.api.ServiceHealthCheckApi; import io.swagger.api.factories.DcaeServicesApiServiceFactory; import io.swagger.jaxrs.config.BeanConfig; import io.swagger.jaxrs.listing.ApiListingResource; @@ -68,27 +70,41 @@ public class InventoryApplication extends Application<InventoryConfiguration> { static final Logger debugLogger = LoggerFactory.getLogger("debugLogger"); static boolean shouldRemoteFetchConfig = false; - public static void main(String[] args) throws Exception { - metricsLogger.info("DCAE inventory application main Startup"); - // This is here to try to fix a "high" issue caught by Fortify. Did this **plus** setting locale for each of the - // string comparisons that use `toUpper` because of this StackOverflow post: - // http://stackoverflow.com/questions/38308777/fixed-fortify-scan-locale-changes-are-reappearing - Locale.setDefault(Locale.ENGLISH); - - if (args.length < 2 && "server".equals(args[0])) { + /** + * Parses user's args and makes adjustments if necessary + * + * NOTE: This function adjusts global state of InventoryApplication - shouldRemoteFetchConfig + * + * @param userArgs + * @return Adjusted user's args or just the user's args untouched either way a String[] + */ + public static String[] processArgs(String[] userArgs) { + if (userArgs.length < 2 && "server".equals(userArgs[0])) { // When the start command is just "server", this will trigger inventory to look for its configuration // from Consul's KV store. The url is hardcoded here which should be used as the "path" variable into // the UrlConfigurationSourceProvider. - String[] customArgs = new String[args.length+1]; - System.arraycopy(args, 0, customArgs, 0, args.length); - customArgs[args.length] = "http://consul:8500/v1/kv/inventory?raw=true"; + String[] customArgs = new String[userArgs.length+1]; + System.arraycopy(userArgs, 0, customArgs, 0, userArgs.length); + customArgs[userArgs.length] = "http://consul:8500/v1/kv/inventory?raw=true"; shouldRemoteFetchConfig = true; - new InventoryApplication().run(customArgs); + return customArgs; } else { // You are here because you want to use the default way of configuring inventory - YAML file. - new InventoryApplication().run(args); + return userArgs; } + } + + public static void main(String[] args) throws Exception { + metricsLogger.info("DCAE inventory application main Startup"); + // This is here to try to fix a "high" issue caught by Fortify. Did this **plus** setting locale for each of the + // string comparisons that use `toUpper` because of this StackOverflow post: + // http://stackoverflow.com/questions/38308777/fixed-fortify-scan-locale-changes-are-reappearing + Locale.setDefault(Locale.ENGLISH); + + final String[] processedArgs = processArgs(args); + new InventoryApplication().run(processedArgs); + // revert to using logback.xml: LoggerContext context = (LoggerContext)LoggerFactory.getILoggerFactory(); context.reset(); @@ -178,6 +194,8 @@ public class InventoryApplication extends Application<InventoryConfiguration> { environment.jersey().register(new DcaeServicesApi()); environment.jersey().register(new DcaeServiceTypesApi()); environment.jersey().register(new DcaeServicesGroupbyApi()); + environment.jersey().register(new HealthCheckApi()); + environment.jersey().register(new ServiceHealthCheckApi()); // https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-Jersey-2.X-Project-Setup-1.5 environment.jersey().register(new ApiListingResource()); diff --git a/src/main/java/org/onap/dcae/inventory/daos/InventoryDAOManager.java b/src/main/java/org/onap/dcae/inventory/daos/InventoryDAOManager.java index 7039700..6a32708 100644 --- a/src/main/java/org/onap/dcae/inventory/daos/InventoryDAOManager.java +++ b/src/main/java/org/onap/dcae/inventory/daos/InventoryDAOManager.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * dcae-inventory * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -113,7 +113,7 @@ public final class InventoryDAOManager implements InventoryDataAccessManager { debugLogger.info(String.format("Sql table created: %s", daoClass.getSimpleName())); } // dcae_service_types DB table has been enhanced to include 2 new columns which need to be added if they don't already exist - if ( daoClass.getSimpleName().equals("DCAEServiceTypesDAO") ) { + if (daoClass.isInstance(DCAEServiceTypesDAO.class)) { if (dao.checkIfApplicationColumnExists()) { debugLogger.info(String.format("ApplicationColumn exists: %s", daoClass.getSimpleName())); } else { |