diff options
Diffstat (limited to 'ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/conf/AppConfig.java')
-rw-r--r-- | ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/conf/AppConfig.java | 364 |
1 files changed, 0 insertions, 364 deletions
diff --git a/ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/conf/AppConfig.java b/ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/conf/AppConfig.java deleted file mode 100644 index fac79bc4..00000000 --- a/ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/conf/AppConfig.java +++ /dev/null @@ -1,364 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.core.conf; - -import java.util.ArrayList; -import java.util.List; - -import javax.sql.DataSource; - -import org.openecomp.portalsdk.core.interceptor.ResourceInterceptor; -import org.openecomp.portalsdk.core.interceptor.SessionTimeoutInterceptor; -import org.openecomp.portalsdk.core.logging.format.AlarmSeverityEnum; -import org.openecomp.portalsdk.core.logging.format.AppMessagesEnum; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.menu.MenuBuilder; -import org.openecomp.portalsdk.core.onboarding.util.CipherUtil; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.service.DataAccessServiceImpl; -import org.openecomp.portalsdk.core.service.LocalAccessCondition; -import org.openecomp.portalsdk.core.service.RestApiRequestBuilder; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.openecomp.portalsdk.core.web.support.AppUtils; -import org.openecomp.portalsdk.core.web.support.UserUtils; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Conditional; -import org.springframework.web.servlet.ViewResolver; -import org.springframework.web.servlet.config.annotation.InterceptorRegistry; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; -import org.springframework.web.servlet.view.InternalResourceViewResolver; -import org.springframework.web.servlet.view.JstlView; -import org.springframework.web.servlet.view.UrlBasedViewResolver; -import org.springframework.web.servlet.view.tiles3.TilesConfigurer; -import org.springframework.web.servlet.view.tiles3.TilesView; - -import com.mchange.v2.c3p0.ComboPooledDataSource; - -/** - * Configures Spring features in the ECOMP Portal SDK including request - * interceptors and view resolvers. Application should subclass and override - * methods as needed. - */ -public class AppConfig extends WebMvcConfigurerAdapter implements Configurable, ApplicationContextAware { - - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppConfig.class); - - private final List<String> tileDefinitions = new ArrayList<String>(); - protected ApplicationContext appApplicationContext = null; - - public AppConfig() { - // loads all default fields and marks logging - // has been started for each log file type. - initGlobalLocalContext(); - } - - /** - * Creates and returns a new instance of a secondary (order=2) - * {@link ViewResolver} that finds files by adding prefix "/WEB-INF/jsp/" - * and suffix ".jsp" to the base view name. - * - * @return New instance of {@link ViewResolver}. - */ - @Bean - public ViewResolver viewResolver() { - InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); - viewResolver.setViewClass(JstlView.class); - viewResolver.setPrefix("/WEB-INF/jsp/"); - viewResolver.setSuffix(".jsp"); - viewResolver.setOrder(2); - return viewResolver; - } - - /** - * Loads all the default logging fields into the global MDC context and - * marks each log file type that logging has been started. - */ - private void initGlobalLocalContext() { - logger.init(); - } - - /* - * Any requests from the url pattern /static/**, Spring will look for the - * resources from the /static/ Same as <mvc:resources mapping="/static/**" - * location="/static/"/> in xml - */ - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - // registry.addResourceHandler("/static/**").addResourceLocations("/static/"); - registry.addResourceHandler("/**").addResourceLocations("/"); - } - - /** - * Creates and returns a new instance of a {@link DataAccessService} class. - * - * @return New instance of {@link DataAccessService}. - */ - @Bean - public DataAccessService dataAccessService() { - return new DataAccessServiceImpl(); - } - - /** - * Creates and returns a new instance of a {@link SystemProperties} class. - * - * @return New instance of {@link SystemProperties}. - */ - @Bean - public SystemProperties systemProperties() { - return new SystemProperties(); - } - - /** - * Creates and returns a new instance of a {@link MenuBuilder} class. - * - * @return New instance of {@link MenuBuilder}. - */ - @Bean - public MenuBuilder menuBuilder() { - return new MenuBuilder(); - } - - /** - * Creates and returns a new instance of a {@link UserUtils} class. - * - * @return New instance of {@link UserUtils}. - */ - @Bean - public UserUtils userUtil() - { - return new UserUtils(); - } - - /** - * Creates and returns a new instance of an {@link AppUtils} class. - * - * @return New instance of {@link AppUtils}. - */ - @Bean - public AppUtils appUtils() { - return new AppUtils(); - } - - /** - * Creates and returns a new instance of a {@link TilesConfigurer} class. - * - * @return New instance of {@link TilesConfigurer}. - */ - @Bean - public TilesConfigurer tilesConfigurer() { - TilesConfigurer tilesConfigurer = new TilesConfigurer(); - tilesConfigurer.setDefinitions(tileDefinitions()); - tilesConfigurer.setCheckRefresh(true); - return tilesConfigurer; - } - - /** - * - * Creates the Application Data Source. - * - * @return DataSource Object - * @throws Exception - * on failure to create data source object - */ - @Bean - public DataSource dataSource() throws Exception { - - systemProperties(); - - ComboPooledDataSource dataSource = new ComboPooledDataSource(); - try { - dataSource.setDriverClass(SystemProperties.getProperty(SystemProperties.DB_DRIVER)); - dataSource.setJdbcUrl(SystemProperties.getProperty(SystemProperties.DB_CONNECTIONURL)); - dataSource.setUser(SystemProperties.getProperty(SystemProperties.DB_USERNAME)); - String password = SystemProperties.getProperty(SystemProperties.DB_PASSWORD); - if (SystemProperties.containsProperty(SystemProperties.DB_ENCRYPT_FLAG)) { - String encryptFlag = SystemProperties.getProperty(SystemProperties.DB_ENCRYPT_FLAG); - if (encryptFlag != null && encryptFlag.equalsIgnoreCase("true")) { - password = CipherUtil.decrypt(password); - } - } - dataSource.setPassword(password); - dataSource - .setMinPoolSize(Integer.parseInt(SystemProperties.getProperty(SystemProperties.DB_MIN_POOL_SIZE))); - dataSource - .setMaxPoolSize(Integer.parseInt(SystemProperties.getProperty(SystemProperties.DB_MAX_POOL_SIZE))); - dataSource.setIdleConnectionTestPeriod( - Integer.parseInt(SystemProperties.getProperty(SystemProperties.IDLE_CONNECTION_TEST_PERIOD))); - dataSource.setTestConnectionOnCheckout(getConnectionOnCheckout()); - dataSource.setPreferredTestQuery(getPreferredTestQuery()); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, - "Error initializing database, verify database settings in properties file: " - + UserUtils.getStackTrace(e), - AlarmSeverityEnum.CRITICAL); - logger.error(EELFLoggerDelegate.debugLogger, - "Error initializing database, verify database settings in properties file: " - + UserUtils.getStackTrace(e), - AlarmSeverityEnum.CRITICAL); - // Raise an alarm that opening a connection to the database failed. - logger.logEcompError(AppMessagesEnum.BeDaoSystemError); - throw e; - } - return dataSource; - } - - /** - * Gets the value of the property - * {@link SystemProperties#PREFERRED_TEST_QUERY}; defaults to "Select 1" if - * the property is not defined. - * - * @return String value that is a SQL query - */ - private String getPreferredTestQuery() { - // Use simple default - String preferredTestQueryStr = "SELECT 1"; - if (SystemProperties.containsProperty(SystemProperties.PREFERRED_TEST_QUERY)) { - preferredTestQueryStr = SystemProperties.getProperty(SystemProperties.PREFERRED_TEST_QUERY); - logger.debug(EELFLoggerDelegate.debugLogger, "getPreferredTestQuery: property key {} value is {}", - SystemProperties.PREFERRED_TEST_QUERY, preferredTestQueryStr); - } else { - logger.info(EELFLoggerDelegate.errorLogger, - "getPreferredTestQuery: property key {} not found, using default value {}", - SystemProperties.PREFERRED_TEST_QUERY, preferredTestQueryStr); - } - return preferredTestQueryStr; - } - - /** - * Gets the value of the property - * {@link SystemProperties#TEST_CONNECTION_ON_CHECKOUT}; defaults to true if - * the property is not defined. - * - * @return Boolean value - */ - private Boolean getConnectionOnCheckout() { - // Default to true, always test connection - boolean testConnectionOnCheckout = true; - if (SystemProperties.containsProperty(SystemProperties.TEST_CONNECTION_ON_CHECKOUT)) { - testConnectionOnCheckout = Boolean - .valueOf(SystemProperties.getProperty(SystemProperties.TEST_CONNECTION_ON_CHECKOUT)); - logger.debug(EELFLoggerDelegate.debugLogger, "getConnectionOnCheckout: property key {} value is {}", - SystemProperties.TEST_CONNECTION_ON_CHECKOUT, testConnectionOnCheckout); - } else { - logger.info(EELFLoggerDelegate.errorLogger, - "getConnectionOnCheckout: property key {} not found, using default value {}", - SystemProperties.TEST_CONNECTION_ON_CHECKOUT, testConnectionOnCheckout); - } - return testConnectionOnCheckout; - } - - /* - * TODO: Check whether it is appropriate to extend the list of tile - * definitions at every invocation. - */ - protected String[] tileDefinitions() { - tileDefinitions.add("/WEB-INF/fusion/defs/definitions.xml"); - tileDefinitions.addAll(addTileDefinitions()); - - return tileDefinitions.toArray(new String[0]); - } - - /** - * Creates and returns a new empty list. This method should be overridden by - * child classes. - * - * @return An empty list. - */ - public List<String> addTileDefinitions() { - return new ArrayList<String>(); - } - - /** - * Creates and returns a new instance of a primary (order=1) - * {@link UrlBasedViewResolver} that finds files using the contents of - * definitions.xml files. - * - * @return New instance of {@link UrlBasedViewResolver} - */ - @Bean - public UrlBasedViewResolver tileViewResolver() { - UrlBasedViewResolver viewResolver = new UrlBasedViewResolver(); - viewResolver.setViewClass(TilesView.class); - viewResolver.setOrder(1); - return viewResolver; - } - - /** - * Adds new instances of the following interceptors to the specified - * interceptor registry: {@link SessionTimeoutInterceptor}, - * {@link ResourceInterceptor} - */ - @Override - public void addInterceptors(InterceptorRegistry registry) { - registry.addInterceptor(new SessionTimeoutInterceptor()) - .excludePathPatterns(getExcludeUrlPathsForSessionTimeout()); - registry.addInterceptor(resourceInterceptor()); - } - - /** - * Creates and returns a new instance of a {@link ResourceInterceptor}. - * - * @return New instance of {@link ResourceInterceptor} - */ - @Bean - public ResourceInterceptor resourceInterceptor() { - return new ResourceInterceptor(); - } - - private String[] excludeUrlPathsForSessionTimeout = {}; - - /** - * Gets the array of Strings that are paths excluded for session timeout. - * - * @return Array of String - */ - public String[] getExcludeUrlPathsForSessionTimeout() { - return excludeUrlPathsForSessionTimeout; - } - - /** - * Sets the array of Strings that are paths excluded for session timeout. - * - * @param excludeUrlPathsForSessionTimeout - * Paths to exclude - */ - public void setExcludeUrlPathsForSessionTimeout(final String... excludeUrlPathsForSessionTimeout) { - this.excludeUrlPathsForSessionTimeout = excludeUrlPathsForSessionTimeout; - } - - /* - * (non-Javadoc) - * - * @see - * org.springframework.context.ApplicationContextAware#setApplicationContext - * (org.springframework.context.ApplicationContext) - */ - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - appApplicationContext = applicationContext; - - } - -} |