001/** 002 * Copyright 2010-2014 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 */ 016package org.kuali.common.util.metainf.spring; 017 018import java.util.List; 019 020import org.kuali.common.util.execute.Executable; 021import org.kuali.common.util.metainf.model.MetaInfContext; 022import org.kuali.common.util.metainf.service.MetaInfExecutable; 023import org.kuali.common.util.metainf.service.MetaInfService; 024import org.kuali.common.util.metainf.service.MetaInfUtils; 025import org.kuali.common.util.spring.ExecutionConfig; 026import org.kuali.common.util.spring.env.EnvironmentService; 027import org.kuali.common.util.spring.service.SpringServiceConfig; 028import org.springframework.beans.factory.annotation.Autowired; 029import org.springframework.context.annotation.Bean; 030import org.springframework.context.annotation.Configuration; 031import org.springframework.context.annotation.Import; 032 033@Configuration 034@Import({ MetaInfServiceConfig.class, SpringServiceConfig.class }) 035public class MetaInfExecutableConfig implements ExecutionConfig { 036 037 @Autowired 038 EnvironmentService env; 039 040 @Autowired 041 MetaInfContextsConfig contextsConfig; 042 043 @Autowired 044 MetaInfService service; 045 046 @Override 047 @Bean(initMethod = "execute") 048 public Executable executable() { 049 boolean skip = env.getBoolean(MetaInfUtils.PROPERTY_PREFIX + ".skip", false); 050 List<MetaInfContext> contexts = contextsConfig.metaInfContexts(); 051 return new MetaInfExecutable(contexts, service, skip); 052 } 053 054}