View Javadoc

1   
2   /*
3    * Copyright 2007 The Kuali Foundation
4    *
5    * Licensed under the Educational Community License, Version 2.0 (the "License");
6    * you may not use this file except in compliance with the License.
7    * You may obtain a copy of the License at
8    *
9    * http://www.opensource.org/licenses/ecl2.php
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.kuali.rice.kns.web.servlet.dwr;
18  
19  import org.directwebremoting.spring.SpringCreator;
20  import org.kuali.rice.core.api.resourceloader.GlobalResourceLoader;
21  import org.springframework.beans.factory.BeanFactory;
22  
23  
24  /**
25   * A {@link SpringCreator} that checks the {@link GlobalResourceLoader} for the
26   * bean name in question if the default {@link BeanFactory} (the applications)
27   * does not have the bean in question.
28   * 
29   * @author Kuali Rice Team (rice.collab@kuali.org)
30   * 
31   */
32  public class GlobalResourceDelegatingSpringCreator extends SpringCreator {
33  	
34  	@Override
35  	public Object getInstance() throws InstantiationException {
36  		Object bean = GlobalResourceLoader.getService(this.getBeanName());
37  		if (bean == null) {
38  			//weird DWR passes the scriptName rather than beanName - so trying the script name.
39  			bean = GlobalResourceLoader.getService(this.getJavascript());
40  			if (bean == null) {
41  				throw new InstantiationException("Unable to find bean " + this.getBeanName() + " in Rice Global Resource Loader");
42  			}
43  		}
44  		return bean;
45  	}
46  
47  }