001    /*
002     * Copyright 2006-2011 The Kuali Foundation
003     *
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.opensource.org/licenses/ecl2.php
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    
017    package org.kuali.rice.kim.config;
018    
019    import org.kuali.rice.core.api.config.module.RunMode;
020    import org.kuali.rice.core.impl.config.module.ModuleConfigurer;
021    
022    import java.util.ArrayList;
023    import java.util.List;
024    
025    /**
026     * This class handles the Spring based KIM configuration that is part of the Rice Configurer that must 
027     * exist in all Rice based systems and clients. 
028     * 
029     * @author Kuali Rice Team (rice.collab@kuali.org)
030     */
031    public class KIMConfigurer extends ModuleConfigurer {
032            private static final String KIM_INTERFACE_SPRING_BEANS_PATH = "classpath:org/kuali/rice/kim/config/KIMInterfaceSpringBeans.xml";
033            private static final String KIM_IMPL_SPRING_BEANS_PATH = "classpath:org/kuali/rice/kim/config/KIMImplementationSpringBeans.xml";
034            private static final String KIM_KSB_SPRING_BEANS_PATH = "classpath:org/kuali/rice/kim/config/KIMServiceBusSpringBeans.xml";
035            private static final String KIM_KSB_SOAP_DEFAULT_SPRING_BEANS_PATH = "classpath:org/kuali/rice/kim/config/KIMServiceBusSOAPDefaultSpringBeans.xml";
036            private static final String KIM_UI_SPRING_BEANS_PATH = "classpath:org/kuali/rice/kim/config/KIMUserInterfaceSpringBeans.xml";
037            
038            @Override
039            public List<String> getPrimarySpringFiles() {
040                    final List<String> springFileLocations = new ArrayList<String>();
041                    springFileLocations.add( KIM_INTERFACE_SPRING_BEANS_PATH );
042                    if ( getRunMode().equals( RunMode.LOCAL ) || getRunMode().equals( RunMode.EMBEDDED ) ) {
043                            springFileLocations.add(KIM_IMPL_SPRING_BEANS_PATH);
044                    }
045                    if ( isExposeServicesOnBus() ) {
046                            if (isSetSOAPServicesAsDefault()) {
047                                    springFileLocations.add(KIM_KSB_SOAP_DEFAULT_SPRING_BEANS_PATH);
048                            } else {
049                                    springFileLocations.add(KIM_KSB_SPRING_BEANS_PATH);
050                            }
051                    }
052                    if ( isIncludeUserInterfaceComponents() ) {
053                            springFileLocations.add(KIM_UI_SPRING_BEANS_PATH);
054                    }
055                    return springFileLocations;
056            }
057    }