AddableSessionFactoryBean is not prepared for hierarchical contexts in getBeanNamesForType, invalid cast

Description

SAK-12166 prepares for work where Spring contexts become localised to components (as in webapps) and all beans are not thrown into a single context. Also references returned from the ComponentManager are proxies of the interface type only. This patch prepares db-impl for compatibiliy with this model - when run with the old ComponentManager the patch code is harmless and behaves as before.

Activity

Show:

Ian Boston August 28, 2008 at 10:52 AM

If this is still required, please can it be made to work with Gradebook.
Otherwise I am leaving it as incomplete.
Thanks

Lance Speelmon February 29, 2008 at 1:39 PM

Breaks gradebook at startup - backed out change.

Antranig Basman November 16, 2007 at 10:31 AM

Index: E:/Source/sakai-cafe-2.4/db/db-impl/ext/src/java/org/sakaiproject/springframework/orm/hibernate/AddableSessionFactoryBean.java
===================================================================
— E:/Source/sakai-cafe-2.4/db/db-impl/ext/src/java/org/sakaiproject/springframework/orm/hibernate/AddableSessionFactoryBean.java (revision 38152)
+++ E:/Source/sakai-cafe-2.4/db/db-impl/ext/src/java/org/sakaiproject/springframework/orm/hibernate/AddableSessionFactoryBean.java (working copy)
@@ -36,6 +36,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.BeanFactoryUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.orm.hibernate3.LocalSessionFactoryBean;
@@ -58,8 +59,8 @@
{
super.postProcessConfiguration(config);

- String[] names = applicationContext.getBeanNamesForType(AdditionalHibernateMappings.class, false, false);
-
+ // String[] names = applicationContext.getBeanNamesForType(AdditionalHibernateMappings.class, false, false);
+ String[] names = BeanFactoryUtils.beanNamesForTypeIncludingAncestors(applicationContext, AdditionalHibernateMappings.class, false, false);
try
{
List beans = new ArrayList();
Index: E:/Source/sakai-cafe-2.4/db/db-impl/ext/src/java/org/sakaiproject/springframework/orm/hibernate/AdditionalHibernateMappings.java
===================================================================
— E:/Source/sakai-cafe-2.4/db/db-impl/ext/src/java/org/sakaiproject/springframework/orm/hibernate/AdditionalHibernateMappings.java (revision 38152)
+++ E:/Source/sakai-cafe-2.4/db/db-impl/ext/src/java/org/sakaiproject/springframework/orm/hibernate/AdditionalHibernateMappings.java (working copy)
@@ -29,4 +29,6 @@
public interface AdditionalHibernateMappings
{
void processConfig(Configuration config) throws IOException, MappingException;
+
+ public Integer getSortOrder();
}
Index: E:/Source/sakai-cafe-2.4/db/db-impl/ext/src/java/org/sakaiproject/springframework/orm/hibernate/impl/AdditionalHibernateMappingsImpl.java
===================================================================
— E:/Source/sakai-cafe-2.4/db/db-impl/ext/src/java/org/sakaiproject/springframework/orm/hibernate/impl/AdditionalHibernateMappingsImpl.java (revision 38152)
+++ E:/Source/sakai-cafe-2.4/db/db-impl/ext/src/java/org/sakaiproject/springframework/orm/hibernate/impl/AdditionalHibernateMappingsImpl.java (working copy)
@@ -31,7 +31,7 @@
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

-public class AdditionalHibernateMappingsImpl implements AdditionalHibernateMappings, Comparable
+public class AdditionalHibernateMappingsImpl implements AdditionalHibernateMappings, Comparable<AdditionalHibernateMappings>
{
protected final transient Log logger = LogFactory.getLog(getClass());

@@ -65,9 +65,9 @@
}
}

- public int compareTo(Object o)
+ public int compareTo(AdditionalHibernateMappings o)
{
- return getSortOrder().compareTo(((AdditionalHibernateMappingsImpl) o).getSortOrder());
+ return getSortOrder().compareTo(o.getSortOrder());
}

public Integer getSortOrder()

Incomplete

Details

Priority

Affects versions

Assignee

Reporter

Created November 16, 2007 at 10:30 AM
Updated March 23, 2022 at 3:02 PM
Resolved August 28, 2008 at 10:52 AM

Flag notifications