001 /** 002 * Copyright 2010 The Kuali Foundation Licensed under the 003 * Educational Community License, Version 2.0 (the "License"); you may 004 * not use this file except in compliance with the License. You may 005 * obtain a copy of the License at 006 * 007 * http://www.osedu.org/licenses/ECL-2.0 008 * 009 * Unless required by applicable law or agreed to in writing, 010 * software distributed under the License is distributed on an "AS IS" 011 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 012 * or implied. See the License for the specific language governing 013 * permissions and limitations under the License. 014 */ 015 016 package org.kuali.student.common.test.spring; 017 018 import org.springframework.beans.BeansException; 019 import org.springframework.beans.factory.config.BeanDefinition; 020 import org.springframework.beans.factory.config.BeanFactoryPostProcessor; 021 import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; 022 import org.springframework.beans.factory.support.BeanDefinitionRegistry; 023 import org.springframework.beans.factory.support.RootBeanDefinition; 024 import org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor; 025 026 @Deprecated 027 public class DaoPostProcessor implements BeanFactoryPostProcessor { 028 private String daoImplClasses; 029 030 /** 031 * @return the daoImplClasses 032 */ 033 public String getDaoImplClasses() { 034 return daoImplClasses; 035 } 036 037 /** 038 * @param daoImplClasses 039 * the daoImplClasses to set 040 */ 041 public void setDaoImplClasses(String daoImplClasses) { 042 this.daoImplClasses = daoImplClasses; 043 } 044 045 @Override 046 public void postProcessBeanFactory( 047 ConfigurableListableBeanFactory beanFactory) throws BeansException { 048 String[] classes = daoImplClasses.split(","); 049 BeanDefinitionRegistry registry = ((BeanDefinitionRegistry) beanFactory); 050 PersistenceAnnotationBeanPostProcessor pabpp = new PersistenceAnnotationBeanPostProcessor(); 051 if (classes != null && classes.length > 0) { 052 for (String line : classes) { 053 if (!"".equals(line)) { 054 try { 055 String[] split = line.split("\\|"); 056 String className = split[0]; 057 Class<?> clazz = Class.forName(className); 058 BeanDefinition definition = new RootBeanDefinition( 059 clazz); 060 registry.registerBeanDefinition(clazz.getSimpleName(), 061 definition); 062 pabpp.postProcessMergedBeanDefinition( 063 (RootBeanDefinition) definition, clazz, clazz 064 .getSimpleName()); 065 066 } catch (Exception e) { 067 throw new RuntimeException(e); 068 } 069 } 070 } 071 } 072 } 073 }