Index: src/java/org/apache/jdo/tck/query/QueryTest.java =================================================================== --- src/java/org/apache/jdo/tck/query/QueryTest.java (revision 675668) +++ src/java/org/apache/jdo/tck/query/QueryTest.java (working copy) @@ -19,6 +19,8 @@ import java.math.BigDecimal; import java.math.BigInteger; +import java.security.AccessController; +import java.security.PrivilegedAction; import java.text.MessageFormat; import java.util.ArrayList; import java.util.Arrays; @@ -44,6 +46,8 @@ import org.apache.jdo.tck.util.ConversionHelper; import org.apache.jdo.tck.util.EqualityHelper; +import org.springframework.beans.factory.xml.XmlBeanFactory; + public abstract class QueryTest extends JDO_Test { /** */ @@ -209,7 +213,7 @@ */ public CompanyModelReader loadAndPersistCompanyModel(PersistenceManager pm) { makePersistentAll( - pm, getCompanyModelReaderForPersistentInstances().getRootList()); + pm, (List)getBean(getCompanyModelReaderForPersistentInstances(), "root")); return getCompanyModelReaderForPersistentInstances(); } @@ -221,7 +225,7 @@ */ public MylibReader loadAndPersistMylib(PersistenceManager pm) { makePersistentAll( - pm, getMylibReaderForPersistentInstances().getRootList()); + pm, (List)getBean(getMylibReaderForPersistentInstances(), "root")); return getMylibReaderForPersistentInstances(); } @@ -242,8 +246,25 @@ tx.rollback(); } } + } + + /** Read objects from model object reader. + * Perform this operation in doPrivileged block. + * + * @param reader + * @param beanName + * @return the named object + */ + private Object getBean(final XmlBeanFactory reader, final String beanName) { + return AccessController.doPrivileged( + new PrivilegedAction() { + public Object run() { + return reader.getBean(beanName); + } + } + ); } - + /** * Returns a persistent company model instance for the given bean name. * @param beanName the bean name. @@ -251,7 +272,7 @@ */ protected Object getPersistentCompanyModelInstance(String beanName) { return beanName == null ? null : - getCompanyModelReaderForPersistentInstances().getBean(beanName); + getBean(getCompanyModelReaderForPersistentInstances(),beanName); } /** @@ -261,7 +282,7 @@ */ protected Object getTransientCompanyModelInstance(String beanName) { return beanName == null ? null : - getCompanyModelReaderForTransientInstances().getBean(beanName); + getBean(getCompanyModelReaderForTransientInstances(),beanName); } /** @@ -323,7 +344,7 @@ */ protected Object getPersistentMylibInstance(String beanName) { return beanName == null ? - null : getMylibReaderForPersistentInstances().getBean(beanName); + null : getBean(getMylibReaderForPersistentInstances(),beanName); } /** @@ -333,7 +354,7 @@ */ protected Object getTransientMylibInstance(String beanName) { return beanName == null ? - null : getMylibReaderForTransientInstances().getBean(beanName); + null : getBean(getMylibReaderForTransientInstances(),beanName); } /** Index: src/java/org/apache/jdo/tck/mapping/CompletenessTest.java =================================================================== --- src/java/org/apache/jdo/tck/mapping/CompletenessTest.java (revision 675668) +++ src/java/org/apache/jdo/tck/mapping/CompletenessTest.java (working copy) @@ -17,6 +17,9 @@ package org.apache.jdo.tck.mapping; +import java.security.AccessController; +import java.security.PrivilegedAction; + import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -64,6 +67,16 @@ BatchTestRunner.run(CompletenessTest.class); } + protected List getBean(final CompanyModelReader reader, final String name) { + return (List) AccessController.doPrivileged( + new PrivilegedAction() { + public Object run() { + return reader.getBean(name); + } + } + ); + } + /** * @see JDO_Test#localSetUp() */ @@ -75,7 +88,7 @@ addTearDownClass(reader.getTearDownClassesFromFactory()); // persist test data pm.currentTransaction().begin(); - List rootList = reader.getRootList(); + List rootList = getBean(reader, "root"); pm.makePersistentAll(rootList); rootOids = new ArrayList(); for (Iterator i = rootList.iterator(); i.hasNext(); ) { @@ -94,7 +107,7 @@ CompanyFactoryRegistry.registerFactory(); // get new obj graph to compare persistent graph with CompanyModelReader reader = new CompanyModelReader(inputFilename); - List rootList = reader.getRootList(); + List rootList = (List)getBean(reader, "root"); getPM(); pm.currentTransaction().begin();