001
014
015 package com.liferay.portal.spring.util;
016
017 import com.liferay.portal.bean.BeanLocatorImpl;
018 import com.liferay.portal.kernel.bean.BeanLocator;
019 import com.liferay.portal.kernel.bean.PortalBeanLocatorUtil;
020 import com.liferay.portal.kernel.util.ListUtil;
021 import com.liferay.portal.kernel.util.PropsKeys;
022 import com.liferay.portal.security.pacl.PACLClassLoaderUtil;
023 import com.liferay.portal.spring.context.ArrayApplicationContext;
024 import com.liferay.portal.util.PropsUtil;
025 import com.liferay.portal.util.PropsValues;
026
027 import java.util.List;
028
029 import org.springframework.context.support.AbstractApplicationContext;
030
031
042 public class SpringUtil {
043
044 public static void loadContext() {
045 List<String> configLocations = ListUtil.fromArray(
046 PropsUtil.getArray(PropsKeys.SPRING_CONFIGS));
047
048 _loadContext(configLocations);
049 }
050
051 public static void loadContext(List<String> extraConfigLocations) {
052 List<String> configLocations = ListUtil.fromArray(
053 PropsUtil.getArray(PropsKeys.SPRING_CONFIGS));
054
055 if (extraConfigLocations != null) {
056 configLocations.addAll(extraConfigLocations);
057 }
058
059 _loadContext(configLocations);
060 }
061
062 private static void _loadContext(List<String> configLocations) {
063 if (PropsValues.PERSISTENCE_PROVIDER.equalsIgnoreCase("jpa")) {
064 configLocations.remove("META-INF/hibernate-spring.xml");
065 }
066 else {
067 configLocations.remove("META-INF/jpa-spring.xml");
068 }
069
070 AbstractApplicationContext applicationContext =
071 new ArrayApplicationContext(
072 configLocations.toArray(new String[configLocations.size()]));
073
074 BeanLocator beanLocator = new BeanLocatorImpl(
075 PACLClassLoaderUtil.getPortalClassLoader(), applicationContext);
076
077 PortalBeanLocatorUtil.setBeanLocator(beanLocator);
078 }
079
080 }