Index: src/sql/derby/datastoreidentity/schema.sql =================================================================== --- src/sql/derby/datastoreidentity/schema.sql (Revision 395188) +++ src/sql/derby/datastoreidentity/schema.sql (Arbeitskopie) @@ -130,6 +130,7 @@ STATE CHAR(2), ZIPCODE CHAR(5), COUNTRY VARCHAR(64), + DISCRIMINATOR VARCHAR(255), CONSTRAINT COMPS_PK PRIMARY KEY (DATASTORE_IDENTITY) ); @@ -139,6 +140,7 @@ NAME VARCHAR(32) NOT NULL, EMP_OF_THE_MONTH INTEGER, COMPANYID INTEGER REFERENCES companies, + DISCRIMINATOR VARCHAR(255), CONSTRAINT DEPTS_PK PRIMARY KEY (DATASTORE_IDENTITY) ); @@ -185,6 +187,7 @@ PROJID INTEGER NOT NULL, NAME VARCHAR(32) NOT NULL, BUDGET DECIMAL(11,2) NOT NULL, + DISCRIMINATOR VARCHAR(255), CONSTRAINT PROJS_UK UNIQUE (PROJID), CONSTRAINT PROJS_PK PRIMARY KEY (DATASTORE_IDENTITY) ); Index: src/sql/derby/applicationidentity/schema.sql =================================================================== --- src/sql/derby/applicationidentity/schema.sql (Revision 395188) +++ src/sql/derby/applicationidentity/schema.sql (Arbeitskopie) @@ -182,6 +182,7 @@ STATE CHAR(2), ZIPCODE CHAR(5), COUNTRY VARCHAR(64), + DISCRIMINATOR VARCHAR(255), CONSTRAINT COMPS_PK PRIMARY KEY (ID) ); @@ -190,6 +191,7 @@ NAME VARCHAR(32) NOT NULL, EMP_OF_THE_MONTH INTEGER, COMPANYID INTEGER REFERENCES companies, + DISCRIMINATOR VARCHAR(255), CONSTRAINT DEPTS_PK PRIMARY KEY (ID) ); @@ -232,6 +234,7 @@ PROJID INTEGER NOT NULL, NAME VARCHAR(32) NOT NULL, BUDGET DECIMAL(11,2) NOT NULL, + DISCRIMINATOR VARCHAR(255), CONSTRAINT PROJS_PK PRIMARY KEY (PROJID) ); Index: src/java/org/apache/jdo/tck/pc/company/CompanyFactoryConcreteClass.java =================================================================== --- src/java/org/apache/jdo/tck/pc/company/CompanyFactoryConcreteClass.java (Revision 395188) +++ src/java/org/apache/jdo/tck/pc/company/CompanyFactoryConcreteClass.java (Arbeitskopie) @@ -28,6 +28,14 @@ */ public class CompanyFactoryConcreteClass implements CompanyFactory { + /** */ + public static final Class[] tearDownClasses = new Class[] { + DentalInsurance.class, MedicalInsurance.class, + Person.class, Employee.class, + PartTimeEmployee.class, FullTimeEmployee.class, + Project.class, Department.class, Company.class + }; + public CompanyFactoryConcreteClass(PersistenceManager pm) { } @@ -131,4 +139,8 @@ BigDecimal budget) { return new Project(projid, name, budget); } + + public Class[] getTearDownClasses() { + return tearDownClasses; + } } Index: src/java/org/apache/jdo/tck/pc/company/CompanyModelReader.java =================================================================== --- src/java/org/apache/jdo/tck/pc/company/CompanyModelReader.java (Revision 395188) +++ src/java/org/apache/jdo/tck/pc/company/CompanyModelReader.java (Arbeitskopie) @@ -47,24 +47,9 @@ */ public static final String BEAN_FACTORY_NAME = "companyFactory"; - /** All classes in the model - */ - private static final Class[] allClasses = new Class[] { - Address.class, Company.class, - DentalInsurance.class, Department.class, Employee.class, - FullTimeEmployee.class, Insurance.class, - MedicalInsurance.class, PartTimeEmployee.class, Person.class, - Project.class - }; - - /** All classes in the model - */ - private static final Class[] tearDownClasses = new Class[] { - DentalInsurance.class, MedicalInsurance.class, - Person.class, Employee.class, PartTimeEmployee.class, FullTimeEmployee.class, - Project.class, Department.class, Company.class - }; - + /** The company factory instance. */ + private CompanyFactory companyFactory; + /** * Create a CompanyModelReader for the specified resourceName. * @param resourceName the name of the resource @@ -112,7 +97,8 @@ CustomDateEditor dateEditor = new CustomDateEditor(formatter, true); registerCustomEditor(Date.class, dateEditor); - addSingleton(BEAN_FACTORY_NAME, CompanyFactoryRegistry.getInstance()); + companyFactory = CompanyFactoryRegistry.getInstance(); + addSingleton(BEAN_FACTORY_NAME, companyFactory); } // Convenience methods @@ -249,17 +235,20 @@ return (Project)getBean(name, Project.class); } - public static Class[] getAllClasses() { - return allClasses; + /** + * @return Returns the tearDownClasses. + */ + public Class[] getTearDownClassesFromFactory() { + return companyFactory.getTearDownClasses(); } /** * @return Returns the tearDownClasses. */ public static Class[] getTearDownClasses() { - return tearDownClasses; + return CompanyFactoryConcreteClass.tearDownClasses; } - + public static Date stringToUtilDate(String value) { return ConversionHelper.toUtilDate(DATE_PATTERN, "America/New_York", Locale.US, value); } Index: src/java/org/apache/jdo/tck/pc/company/CompanyFactoryPMInterface.java =================================================================== --- src/java/org/apache/jdo/tck/pc/company/CompanyFactoryPMInterface.java (Revision 395188) +++ src/java/org/apache/jdo/tck/pc/company/CompanyFactoryPMInterface.java (Arbeitskopie) @@ -27,6 +27,14 @@ public class CompanyFactoryPMInterface extends CompanyFactoryAbstractImpl { + /** */ + public static final Class[] tearDownClasses = new Class[] { + IDentalInsurance.class, IMedicalInsurance.class, + IPerson.class, IEmployee.class, + IPartTimeEmployee.class, IFullTimeEmployee.class, + IProject.class, IDepartment.class, ICompany.class + }; + /** * Creates a new instance of CompanyFactoryPMInterface */ @@ -66,4 +74,7 @@ return (IProject)pm.newInstance(IProject.class); } + public Class[] getTearDownClasses() { + return tearDownClasses; + } } Index: src/java/org/apache/jdo/tck/pc/company/CompanyFactoryPMClass.java =================================================================== --- src/java/org/apache/jdo/tck/pc/company/CompanyFactoryPMClass.java (Revision 395188) +++ src/java/org/apache/jdo/tck/pc/company/CompanyFactoryPMClass.java (Arbeitskopie) @@ -27,6 +27,14 @@ public class CompanyFactoryPMClass extends CompanyFactoryAbstractImpl { + /** */ + public static final Class[] tearDownClasses = new Class[] { + DentalInsurance.class, IMedicalInsurance.class, + Person.class, Employee.class, + PartTimeEmployee.class, FullTimeEmployee.class, + Project.class, Department.class, Company.class + }; + /** * Creates a new instance of CompanyFactoryPMInterface */ @@ -66,4 +74,7 @@ return (IProject)pm.newInstance(Project.class); } + public Class[] getTearDownClasses() { + return tearDownClasses; + } } Index: src/java/org/apache/jdo/tck/pc/company/CompanyFactory.java =================================================================== --- src/java/org/apache/jdo/tck/pc/company/CompanyFactory.java (Revision 395188) +++ src/java/org/apache/jdo/tck/pc/company/CompanyFactory.java (Arbeitskopie) @@ -63,4 +63,5 @@ String first, String last, String middle, Date born, IAddress addr, Date hired, double wage); IProject newProject(long projid, String name, BigDecimal budget); + Class[] getTearDownClasses(); } Index: src/java/org/apache/jdo/tck/mapping/CompletenessTest.java =================================================================== --- src/java/org/apache/jdo/tck/mapping/CompletenessTest.java (Revision 395188) +++ src/java/org/apache/jdo/tck/mapping/CompletenessTest.java (Arbeitskopie) @@ -47,6 +47,9 @@ /** */ private final boolean isTestToBePerformed = isTestToBePerformed(); + + /** */ + private CompanyModelReader reader; /** */ protected List rootOids; @@ -68,7 +71,11 @@ */ protected void localSetUp() { if (isTestToBePerformed) { - addTearDownClass(CompanyModelReader.getTearDownClasses()); + // register the default factory + CompanyFactoryRegistry.registerFactory(); + // get new obj graph to compare persistent graph with + reader = new CompanyModelReader(inputFilename); + addTearDownClass(reader.getTearDownClassesFromFactory()); getPM(); CompanyFactoryRegistry.registerFactory(pm); CompanyModelReader reader = new CompanyModelReader(inputFilename); @@ -89,10 +96,6 @@ /** */ public void test() { if (isTestToBePerformed) { - // register the default factory - CompanyFactoryRegistry.registerFactory(); - // get new obj graph to compare persistent graph with - CompanyModelReader reader = new CompanyModelReader(inputFilename); List rootList = reader.getRootList(); getPM(); Index: src/orm/datastoreidentity/org/apache/jdo/tck/pc/company/package-standard.orm =================================================================== --- src/orm/datastoreidentity/org/apache/jdo/tck/pc/company/package-standard.orm (Revision 395188) +++ src/orm/datastoreidentity/org/apache/jdo/tck/pc/company/package-standard.orm (Arbeitskopie) @@ -11,6 +11,9 @@ + + + @@ -43,6 +46,9 @@ + + + @@ -149,6 +155,9 @@ + + + @@ -168,6 +177,9 @@ + + + @@ -188,6 +200,9 @@ + + + @@ -306,6 +321,9 @@ + + + Index: src/orm/applicationidentity/org/apache/jdo/tck/pc/company/package-standard.orm =================================================================== --- src/orm/applicationidentity/org/apache/jdo/tck/pc/company/package-standard.orm (Revision 395188) +++ src/orm/applicationidentity/org/apache/jdo/tck/pc/company/package-standard.orm (Arbeitskopie) @@ -10,6 +10,9 @@ + + + @@ -29,6 +32,9 @@ + + + @@ -144,6 +150,9 @@ + + + @@ -164,6 +173,9 @@ + + + @@ -183,6 +195,9 @@ + + + @@ -298,6 +313,9 @@ + + +