/*
* The Kuali Financial System, a comprehensive financial management system for higher education.
*
* Copyright 2005-2014 The Kuali Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kuali.kfs.sys.context;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.kuali.rice.core.api.config.module.RunMode;
import org.kuali.rice.core.api.config.property.ConfigContext;
import org.kuali.rice.core.framework.config.module.ModuleConfigurer;
import org.kuali.rice.core.framework.config.module.WebModuleConfiguration;
import org.springframework.beans.factory.InitializingBean;
public class KFSConfigurer extends ModuleConfigurer implements InitializingBean {
private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(KFSConfigurer.class);
protected boolean testMode = false;
public KFSConfigurer() {
super("KFS");
LOG.info( "KFSConfigurer instantiated" );
setValidRunModes(Arrays.asList(RunMode.LOCAL));
}
@Override
protected void doAdditionalModuleStartLogic() throws Exception {
LOG.info( "*********************************************************" );
LOG.info( "KFS Starting Module" );
LOG.info( "*********************************************************" );
super.doAdditionalModuleStartLogic();
}
@Override
protected void doAdditionalModuleStopLogic() throws Exception {
LOG.info( "*********************************************************" );
LOG.info( "KFS Stopping Module" );
LOG.info( "*********************************************************" );
super.doAdditionalModuleStopLogic();
}
@Override
public List<String> getPrimarySpringFiles() {
String files = ConfigContext.getCurrentContextConfig().getProperty("spring.source.files");
if ( testMode ) {
files = files + "," + ConfigContext.getCurrentContextConfig().getProperty("spring.test.files");
}
if ( LOG.isInfoEnabled() ) {
LOG.info( "KFS Spring Files Requested. Returning: " + files );
}
return files == null ? Collections.<String>emptyList() : parseFileList(files);
}
protected List<String> parseFileList(String files) {
List<String> parsedFiles = new ArrayList<String>();
for (String file : Arrays.asList(files.split(","))) {
String trimmedFile = file.trim();
if (!trimmedFile.isEmpty()) {
parsedFiles.add(trimmedFile);
}
}
return parsedFiles;
}
@Override
protected WebModuleConfiguration loadWebModule() {
return new KfsWebModuleConfiguration();
}
@Override
public boolean hasWebInterface() {
return true;
}
public boolean isTestMode() {
return testMode;
}
public void setTestMode(boolean testMode) {
this.testMode = testMode;
}
@Override
public RunMode getRunMode() {
return RunMode.LOCAL;
}
}