You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by mb...@apache.org on 2022/07/03 19:10:28 UTC

[db-jdo] branch tck-compiler-warnings updated: JDO-817: First version removing compiler warnings

This is an automated email from the ASF dual-hosted git repository.

mbo pushed a commit to branch tck-compiler-warnings
in repository https://gitbox.apache.org/repos/asf/db-jdo.git


The following commit(s) were added to refs/heads/tck-compiler-warnings by this push:
     new a09b25d4 JDO-817: First version removing compiler warnings
a09b25d4 is described below

commit a09b25d481d609a267586a32e3a8e817bcd127fe
Author: Michael Bouschen <Mi...@akquinet.de>
AuthorDate: Sun Jul 3 21:10:11 2022 +0200

    JDO-817: First version removing compiler warnings
---
 .../java/javax/jdo/spi/RegisterClassEvent.java     |  18 +--
 .../org/apache/jdo/tck/AbstractReaderTest.java     |  19 +--
 tck/src/main/java/org/apache/jdo/tck/JDO_Test.java |  88 +++++------
 .../java/org/apache/jdo/tck/api/SignatureTest.java |   2 +-
 .../api/converter/IntAttributeConverterTest.java   |  10 +-
 .../api/converter/PointAttributeConverterTest.java |   6 +-
 .../tck/api/exceptions/ExceptionConstructor.java   |  32 ++--
 .../jdo/tck/api/fetchgroup/FetchGroupTest.java     |  36 ++---
 .../AbstractInstanceLifecycleListener.java         |  12 +-
 .../AccessOtherInstancesInPrestore.java            |   1 +
 .../InstanceLifecycleListenerAttach.java           |  19 +--
 .../InstanceLifecycleListenerClear.java            |  14 +-
 .../InstanceLifecycleListenerCreate.java           |  18 +--
 .../InstanceLifecycleListenerDelete.java           |  14 +-
 .../InstanceLifecycleListenerDetach.java           |  15 +-
 .../InstanceLifecycleListenerDirty.java            |  14 +-
 .../InstanceLifecycleListenerLoad.java             |  11 +-
 .../InstanceLifecycleListenerStore.java            |   9 +-
 ...ationOfNontransactionalNonpersistentFields.java |   4 +-
 .../NoAccessToFieldsAfterPredelete.java            |   4 +-
 .../apache/jdo/tck/api/jdohelper/GetObjectIds.java |   8 +-
 .../apache/jdo/tck/api/jdohelper/IsDetached.java   |   2 +-
 .../AbstractPersistenceCapableTest.java            |   3 +-
 .../ConcurrentPersistenceManagersSameClasses.java  |  11 +-
 .../api/persistencemanager/DataStoreCacheTest.java |   5 +-
 .../persistencemanager/DataStoreConnection.java    |   3 +-
 .../DataStoreConnectionThrows.java                 |   7 +-
 .../api/persistencemanager/DatastoreTimeout.java   |   6 +-
 .../api/persistencemanager/DeletePersistent.java   |   8 +-
 .../DeletePersistentAllFails.java                  |   5 +-
 ...DeletePersistentFailsIfInstanceIsTransient.java |   5 +-
 ...InstanceManagedByAnotherPersistenceManager.java |   4 +-
 ...etePersistentHasNoEffectOnDeletedInstances.java |   5 +-
 .../tck/api/persistencemanager/GetProperties.java  |  12 +-
 .../tck/api/persistencemanager/NewInstance.java    |   2 -
 .../ObjectIdUniqueAmongInstances.java              |   7 +-
 .../OneInstanceOfObjectPerPersistenceManager.java  |  12 +-
 .../api/persistencemanager/OptimisticFailure.java  |   2 +-
 .../jdo/tck/api/persistencemanager/ThreadSafe.java |  11 +-
 ...TransactionalInstanceRetainsValuesAtCommit.java |   4 +-
 ...llingEvictAllWithCollectionContainingNulls.java |   5 +-
 ...ingRefreshAllWithCollectionContainingNulls.java |   5 +-
 .../EvictingCollectionOfInstancesSideEffects.java  |   5 +-
 .../PassingNullToEvictAllThrowsException.java      |   2 +-
 .../PassingNullToRefreshAllThrowsException.java    |   2 +-
 .../cache/RefreshAllNoParameterSideEffects.java    |   3 +-
 .../cache/RefreshAllSideEffects.java               |  16 +-
 .../tck/api/persistencemanager/cache/Retrieve.java |   6 +-
 .../close/CloseWithActiveTxRollsBack.java          |   1 -
 .../detach/DetachAllOnCommit.java                  |  13 --
 .../persistencemanager/detach/DetachAttach.java    |  11 --
 .../detach/DetachAttachDirty.java                  |  11 --
 .../api/persistencemanager/detach/DetachCopy.java  |  16 +-
 .../persistencemanager/detach/DetachSerialize.java |   3 -
 .../api/persistencemanager/detach/DetachTest.java  |  10 +-
 .../detach/DetachUndetachable.java                 |   8 +-
 .../detach/SetDetachAllOnCommit.java               |   3 +-
 ...WithInstancesMadePersistentViaReachability.java |   6 +-
 .../extent/GetExtentWithNoSubclasses.java          |   6 +-
 .../extent/GetExtentWithSubclasses.java            |   6 +-
 .../fetchplan/AbstractFetchPlanTest.java           |   4 +-
 .../fetchplan/FetchPlanInterface.java              |  50 +++---
 .../fetchplan/FetchPlanIsCopy.java                 |   6 +-
 .../fetchplan/FetchPlanMakeTransient.java          |   4 +-
 .../fetchplan/FetchPlanQuery.java                  |   5 +-
 .../fetchplan/FetchPlanRefresh.java                |   3 +-
 .../fetchplan/FetchPlanRetrieve.java               |   3 +-
 .../getobject/GetObjectIdClass.java                |   4 +-
 ...assForAbstractOrNonPersistenceCapableClass.java |   4 +-
 .../GetObjectIdForPersistentInterface.java         |   6 +-
 .../getobject/GetObjectsById.java                  |  24 +--
 .../lifecycle/MakeNontransactionalAllFails.java    |   5 +-
 .../MakeNontransactionalDirtyInstance.java         |  21 +--
 .../lifecycle/MakeNontransactionalIsImmediate.java |   8 +-
 ...akeNontransactionalPersistentCleanInstance.java |   9 +-
 ...MakeNontransactionalTransientCleanInstance.java |   7 +-
 .../lifecycle/MakePersistent.java                  |   9 +-
 .../lifecycle/MakePersistentAllFails.java          |   5 +-
 .../lifecycle/MakePersistentAssignsObjectId.java   |   8 +-
 ...InstanceManagedByAnotherPersistenceManager.java |   5 +-
 ...PersistentHasNoEffectOnPersistentInstances.java |   5 +-
 .../lifecycle/MakeTransactional.java               |   7 +-
 ...ctionalANontransactionalPersistentInstance.java |   5 +-
 .../lifecycle/MakeTransactionalAllFails.java       |   5 +-
 .../lifecycle/MakeTransactionalIsImmediate.java    |   8 +-
 ...eTransactionalPriorToTransactionRolledback.java |   4 +-
 ...keTransactionalWithinTransactionRolledback.java |   5 +-
 .../lifecycle/MakeTransient.java                   |   9 +-
 .../lifecycle/MakeTransientAllFails.java           |   4 +-
 .../MakeTransientCausesLossOfIdentity.java         |   5 +-
 .../MakeTransientFailsWithDirtyInstance.java       |   4 +-
 .../MakeTransientFieldsPreservedUnchanged.java     |   8 +-
 ...keTransientHasNoEffectOnTransientInstances.java |   4 +-
 .../MakeTransientNotSubjectToRollback.java         |   5 +-
 .../nullargs/DeletePersistentNullArgs.java         |   8 +-
 .../nullargs/DetachCopyNullArgs.java               |   8 +-
 .../persistencemanager/nullargs/EvictNullArgs.java |   8 +-
 .../nullargs/MakeNontransactionalNullArgs.java     |   8 +-
 .../nullargs/MakePersistentNullArgs.java           |   8 +-
 .../nullargs/MakeTransactionalNullArgs.java        |   8 +-
 .../nullargs/MakeTransientNullArgs.java            |   8 +-
 .../nullargs/PersistenceManagerNullsTest.java      |  36 ++---
 .../nullargs/RefreshNullArgs.java                  |   8 +-
 .../nullargs/RetrieveNullArgs.java                 |   8 +-
 .../nullargs/RetrieveWithFetchPlanNullArgs.java    |   9 +-
 .../persistencemanagerfactory/AbstractGetPMF.java  |  12 +-
 .../AfterCloseSetMethodsThrowException.java        |  26 +--
 ...erGetPersistenceManagerNoSetMethodsSucceed.java |  22 +--
 .../tck/api/persistencemanagerfactory/Close.java   |   4 +-
 ...seWithoutPermissionThrowsSecurityException.java |   1 +
 .../GetManagedClasses.java                         |   2 +-
 .../GetPersistenceManagerForUser.java              |   1 +
 .../persistencemanagerfactory/GetProperties.java   |   2 +-
 .../SetConnectionPassword.java                     |   1 +
 .../SetConnectionURL.java                          |   1 +
 .../SetConnectionUserName.java                     |   1 +
 .../persistencemanagerfactory/SetIgnoreCache.java  |   3 +-
 .../SetMultithreaded.java                          |   6 +-
 .../SetNonTransactionalRead.java                   |   3 +-
 .../SetNonTransactionalWrite.java                  |   3 +-
 .../persistencemanagerfactory/SetOptimistic.java   |   1 +
 .../api/persistencemanagerfactory/SetReadOnly.java |   3 +-
 .../persistencemanagerfactory/SetRetainValues.java |   3 +-
 .../SetTransactionIsolationLevel.java              |   3 +-
 .../SupportedOptions.java                          |   6 +-
 .../config/JDOConfigListener.java                  |   4 +-
 .../config/Jdoconfig.java                          |   3 +-
 .../config/Persistence.java                        |   2 +-
 .../config/ThrowOnUnknownStandardProperties.java   |   4 +-
 .../apache/jdo/tck/enhancement/EnhancerTest.java   |   6 +-
 .../org/apache/jdo/tck/extents/AutoCloseable.java  |   5 +-
 .../java/org/apache/jdo/tck/extents/CloseAll.java  |  10 +-
 .../CloseOfExtentIteratorIsIteratorSpecific.java   |   9 +-
 .../org/apache/jdo/tck/extents/ExtentTest.java     |  50 +++---
 .../apache/jdo/tck/extents/GetCandidateClass.java  |   7 +-
 .../jdo/tck/extents/GetPersistenceManager.java     |   2 +-
 .../apache/jdo/tck/extents/HasSubclassesFalse.java |   2 +-
 .../apache/jdo/tck/extents/HasSubclassesTrue.java  |   2 +-
 ...nstancesDeletedPriorToIterationNotReturned.java |  10 +-
 ...InstancesPersistedPriorToIterationReturned.java |   6 +-
 .../IteratorHasNextFalseAfterExtentClose.java      |  12 +-
 .../jdo/tck/extents/IteratorMutatingMethods.java   |   4 +-
 .../tck/extents/IteratorNextAfterExtentClose.java  |  14 +-
 .../extents/IteratorNextAfterExtentCloseAll.java   |  12 +-
 .../java/org/apache/jdo/tck/extents/Iterators.java |   4 +-
 ...ltiplePMsReturnInstancesRepresentingSamePC.java |   4 +-
 .../NontransactionalWriteDatastoreCommit.java      |   7 -
 ...ntransactionalWriteDatastoreCommitConflict.java |   7 -
 .../NontransactionalWriteDatastoreRollback.java    |   7 -
 .../NontransactionalWriteOptimisticCommit.java     |   7 -
 ...transactionalWriteOptimisticCommitConflict.java |   7 -
 .../NontransactionalWriteOptimisticRollback.java   |   7 -
 .../tck/lifecycle/NontransactionalWriteThrows.java |   5 -
 ...tIdNotModifiedWhenObjectIdInstanceModified.java |   6 +-
 .../PMReturnsIdenticalInstancesForEqualObjIds.java |   4 +-
 .../PMsCanSharePCClassesButNotPCInstances.java     |  22 +--
 .../apache/jdo/tck/lifecycle/StateTransitions.java |  18 +--
 .../lifecycle/StateTransitionsReturnedObjects.java |  16 +-
 .../jdo/tck/mapping/AbstractRelationshipTest.java  |  18 +--
 .../apache/jdo/tck/mapping/CompletenessTest.java   |   8 +-
 .../jdo/tck/mapping/CompletenessTestJPA.java       |   8 +-
 .../jdo/tck/mapping/CompletenessTestList.java      |   8 +-
 .../jdo/tck/mapping/CompletenessTestMap.java       |   8 +-
 .../jdo/tck/mapping/CompletenessTestOrder.java     |   8 +-
 .../mapping/Relationship1To1AllRelationships.java  |   4 +-
 .../mapping/Relationship1To1NoRelationships.java   |   4 +-
 .../Relationship1ToManyAllRelationships.java       |   6 +-
 .../Relationship1ToManyNoRelationships.java        |   7 +-
 .../RelationshipManyToManyAllRelationships.java    |  12 +-
 .../RelationshipManyToManyNoRelationships.java     |  12 +-
 .../tck/models/embedded/EmbeddedInheritance.java   |   6 +-
 .../SecondClassObjectsTrackTheirChanges.java       |   3 +-
 .../models/fieldtypes/TestArrayCollections.java    |   7 +-
 .../fieldtypes/TestArrayListCollections.java       |  16 +-
 .../fieldtypes/TestCollectionCollections.java      |  12 +-
 .../TestHashMapStringKeyCollections.java           |  20 +--
 .../TestHashMapStringValueCollections.java         |  20 +--
 .../models/fieldtypes/TestHashSetCollections.java  |  18 +--
 .../TestHashtableStringKeyCollections.java         |  20 +--
 .../TestHashtableStringValueCollections.java       |  20 +--
 .../fieldtypes/TestLinkedListCollections.java      |  14 +-
 .../tck/models/fieldtypes/TestListCollections.java |   8 +-
 .../fieldtypes/TestMapStringKeyCollections.java    |  20 +--
 .../fieldtypes/TestMapStringValueCollections.java  |  20 +--
 .../tck/models/fieldtypes/TestSetCollections.java  |  18 +--
 .../TestTreeMapStringKeyCollections.java           |  20 +--
 .../TestTreeMapStringValueCollections.java         |  20 +--
 .../models/fieldtypes/TestTreeSetCollections.java  |  10 +-
 .../apache/jdo/tck/models/fieldtypes/TestUtil.java |  20 ++-
 .../models/fieldtypes/TestVectorCollections.java   |   7 +-
 .../inheritance/FieldWithSameNameInSuperclass.java |   8 +-
 ...rsistentFieldsAreNonPersistentInSubclasses.java |   4 +-
 .../inheritance/NonpersistentSuperClass.java       |   8 +-
 ...ceCapableFlexibilityInInheritanceHierarchy.java |   8 +-
 .../PersistentFieldsArePersistentInSubClasses.java |   8 +-
 ...actionalFieldsAreTransactionalInSubclasses.java |   4 +-
 .../jdo/tck/pc/building/MultifunctionOven.java     |   1 +
 .../org/apache/jdo/tck/pc/company/Address.java     |  35 +----
 .../org/apache/jdo/tck/pc/company/Company.java     |  58 ++-----
 .../apache/jdo/tck/pc/company/CompanyFactory.java  |   2 +-
 .../CompanyFactoryAnnotatedAbstractDelegator.java  |  20 +--
 .../pc/company/CompanyFactoryConcreteClass.java    |   4 +-
 .../tck/pc/company/CompanyFactoryNewInstance.java  |   2 +-
 .../jdo/tck/pc/company/CompanyFactoryPMClass.java  |  22 +--
 .../tck/pc/company/CompanyFactoryPMInterface.java  |   4 +-
 .../jdo/tck/pc/company/CompanyFactoryRegistry.java |  14 +-
 .../jdo/tck/pc/company/CompanyModelReader.java     |  32 ++--
 .../apache/jdo/tck/pc/company/DentalInsurance.java |   5 +-
 .../org/apache/jdo/tck/pc/company/Department.java  |  65 +++-----
 .../org/apache/jdo/tck/pc/company/Employee.java    |  57 +++----
 .../jdo/tck/pc/company/FullTimeEmployee.java       |   5 +-
 .../org/apache/jdo/tck/pc/company/ICompany.java    |   4 +-
 .../org/apache/jdo/tck/pc/company/IDepartment.java |  12 +-
 .../org/apache/jdo/tck/pc/company/IEmployee.java   |  16 +-
 .../org/apache/jdo/tck/pc/company/IPerson.java     |   4 +-
 .../org/apache/jdo/tck/pc/company/IProject.java    |   8 +-
 .../org/apache/jdo/tck/pc/company/Insurance.java   |  35 +----
 .../jdo/tck/pc/company/MedicalInsurance.java       |   8 +-
 .../org/apache/jdo/tck/pc/company/MeetingRoom.java |  35 +----
 .../org/apache/jdo/tck/pc/company/PICompany.java   |   4 +-
 .../apache/jdo/tck/pc/company/PIDepartment.java    |   8 +-
 .../org/apache/jdo/tck/pc/company/PIEmployee.java  |  16 +-
 .../org/apache/jdo/tck/pc/company/PIPerson.java    |   4 +-
 .../org/apache/jdo/tck/pc/company/PIProject.java   |   8 +-
 .../jdo/tck/pc/company/PartTimeEmployee.java       |   6 +-
 .../java/org/apache/jdo/tck/pc/company/Person.java |  59 ++-----
 .../org/apache/jdo/tck/pc/company/Project.java     |  63 +++-----
 .../CompanyFactoryAnnotatedFCAppConcrete.java      |  20 +--
 .../CompanyFactoryAnnotatedFCAppPM.java            |  20 +--
 .../CompanyFactoryAnnotatedFCDSConcrete.java       |  20 +--
 .../CompanyFactoryAnnotatedFCDSPM.java             |  20 +--
 .../CompanyFactoryAnnotatedPMFieldClass.java       |  22 +--
 .../tck/pc/companyAnnotatedFC/FCAppAddress.java    |  37 +----
 .../tck/pc/companyAnnotatedFC/FCAppCompany.java    |  36 ++---
 .../companyAnnotatedFC/FCAppDentalInsurance.java   |   5 +-
 .../tck/pc/companyAnnotatedFC/FCAppDepartment.java |  62 +++-----
 .../tck/pc/companyAnnotatedFC/FCAppEmployee.java   |  53 ++++---
 .../companyAnnotatedFC/FCAppFullTimeEmployee.java  |   5 +-
 .../tck/pc/companyAnnotatedFC/FCAppInsurance.java  |  37 +----
 .../companyAnnotatedFC/FCAppMedicalInsurance.java  |   7 +-
 .../pc/companyAnnotatedFC/FCAppMeetingRoom.java    |  35 +----
 .../companyAnnotatedFC/FCAppPartTimeEmployee.java  |   6 +-
 .../jdo/tck/pc/companyAnnotatedFC/FCAppPerson.java |  61 ++-----
 .../tck/pc/companyAnnotatedFC/FCAppProject.java    |  58 ++-----
 .../jdo/tck/pc/companyAnnotatedFC/FCDSAddress.java |  37 +----
 .../jdo/tck/pc/companyAnnotatedFC/FCDSCompany.java |  57 ++-----
 .../pc/companyAnnotatedFC/FCDSDentalInsurance.java |   5 +-
 .../tck/pc/companyAnnotatedFC/FCDSDepartment.java  |  63 +++-----
 .../tck/pc/companyAnnotatedFC/FCDSEmployee.java    |  50 +++---
 .../companyAnnotatedFC/FCDSFullTimeEmployee.java   |   5 +-
 .../tck/pc/companyAnnotatedFC/FCDSInsurance.java   |  37 +----
 .../companyAnnotatedFC/FCDSMedicalInsurance.java   |   5 +-
 .../tck/pc/companyAnnotatedFC/FCDSMeetingRoom.java |  35 +----
 .../companyAnnotatedFC/FCDSPartTimeEmployee.java   |   5 +-
 .../jdo/tck/pc/companyAnnotatedFC/FCDSPerson.java  |  60 ++-----
 .../jdo/tck/pc/companyAnnotatedFC/FCDSProject.java |  59 +++----
 .../CompanyFactoryAnnotatedJPAAppConcrete.java     |  20 +--
 .../CompanyFactoryAnnotatedJPAAppPM.java           |  20 +--
 .../CompanyFactoryAnnotatedPMFieldClassJPA.java    |  22 +--
 .../tck/pc/companyAnnotatedJPA/JPAAppAddress.java  |  37 +----
 .../tck/pc/companyAnnotatedJPA/JPAAppCompany.java  |  61 ++-----
 .../companyAnnotatedJPA/JPAAppDentalInsurance.java |   5 +-
 .../pc/companyAnnotatedJPA/JPAAppDepartment.java   |  63 +++-----
 .../tck/pc/companyAnnotatedJPA/JPAAppEmployee.java |  54 ++++---
 .../JPAAppFullTimeEmployee.java                    |   8 +-
 .../pc/companyAnnotatedJPA/JPAAppInsurance.java    |  38 +----
 .../JPAAppMedicalInsurance.java                    |   7 +-
 .../JPAAppPartTimeEmployee.java                    |   6 +-
 .../tck/pc/companyAnnotatedJPA/JPAAppPerson.java   |  85 +++-------
 .../pc/companyAnnotatedJPA/JPAAppPhoneNumber.java  |  12 +-
 .../tck/pc/companyAnnotatedJPA/JPAAppProject.java  |  58 ++-----
 .../CompanyFactoryAnnotatedPCAppConcrete.java      |  20 +--
 .../CompanyFactoryAnnotatedPCAppPM.java            |  20 +--
 .../CompanyFactoryAnnotatedPCDSConcrete.java       |  20 +--
 .../CompanyFactoryAnnotatedPCDSPM.java             |  20 +--
 .../tck/pc/companyAnnotatedPC/PCAppAddress.java    |  37 +----
 .../tck/pc/companyAnnotatedPC/PCAppCompany.java    |  58 ++-----
 .../companyAnnotatedPC/PCAppDentalInsurance.java   |   5 +-
 .../tck/pc/companyAnnotatedPC/PCAppDepartment.java |  63 +++-----
 .../tck/pc/companyAnnotatedPC/PCAppEmployee.java   |  50 +++---
 .../companyAnnotatedPC/PCAppFullTimeEmployee.java  |   7 +-
 .../tck/pc/companyAnnotatedPC/PCAppInsurance.java  |  37 +----
 .../companyAnnotatedPC/PCAppMedicalInsurance.java  |   7 +-
 .../companyAnnotatedPC/PCAppPartTimeEmployee.java  |   6 +-
 .../jdo/tck/pc/companyAnnotatedPC/PCAppPerson.java |  63 ++------
 .../tck/pc/companyAnnotatedPC/PCAppProject.java    |  63 +++-----
 .../jdo/tck/pc/companyAnnotatedPC/PCDSAddress.java |  37 +----
 .../jdo/tck/pc/companyAnnotatedPC/PCDSCompany.java |  58 ++-----
 .../pc/companyAnnotatedPC/PCDSDentalInsurance.java |   5 +-
 .../tck/pc/companyAnnotatedPC/PCDSDepartment.java  |  63 +++-----
 .../tck/pc/companyAnnotatedPC/PCDSEmployee.java    |  51 +++---
 .../companyAnnotatedPC/PCDSFullTimeEmployee.java   |   5 +-
 .../tck/pc/companyAnnotatedPC/PCDSInsurance.java   |  37 +----
 .../companyAnnotatedPC/PCDSMedicalInsurance.java   |   5 +-
 .../companyAnnotatedPC/PCDSPartTimeEmployee.java   |   5 +-
 .../jdo/tck/pc/companyAnnotatedPC/PCDSPerson.java  |  56 ++-----
 .../jdo/tck/pc/companyAnnotatedPC/PCDSProject.java |  60 +++----
 .../CompanyFactoryAnnotatedPIAppPM.java            |  20 +--
 .../CompanyFactoryAnnotatedPIDSPM.java             |  20 +--
 .../CompanyFactoryAnnotatedPMInterface.java        |  22 +--
 .../tck/pc/companyAnnotatedPI/PIAppCompany.java    |   5 +-
 .../tck/pc/companyAnnotatedPI/PIAppDepartment.java |   8 +-
 .../tck/pc/companyAnnotatedPI/PIAppEmployee.java   |  17 +-
 .../jdo/tck/pc/companyAnnotatedPI/PIAppPerson.java |   4 +-
 .../tck/pc/companyAnnotatedPI/PIAppProject.java    |   9 +-
 .../jdo/tck/pc/companyAnnotatedPI/PIDSCompany.java |   5 +-
 .../tck/pc/companyAnnotatedPI/PIDSDepartment.java  |   8 +-
 .../tck/pc/companyAnnotatedPI/PIDSEmployee.java    |  17 +-
 .../jdo/tck/pc/companyAnnotatedPI/PIDSPerson.java  |   4 +-
 .../jdo/tck/pc/companyAnnotatedPI/PIDSProject.java |   9 +-
 .../jdo/tck/pc/companyListWithoutJoin/Company.java |  54 ++-----
 .../pc/companyListWithoutJoin/CompanyFactory.java  |   4 +-
 .../CompanyFactoryConcreteClass.java               |   6 +-
 .../CompanyFactoryPMClass.java                     |  10 +-
 .../CompanyFactoryPMInterface.java                 |  12 +-
 .../CompanyFactoryRegistry.java                    |  14 +-
 .../companyListWithoutJoin/CompanyModelReader.java |  20 +--
 .../tck/pc/companyListWithoutJoin/Department.java  |  49 ++----
 .../tck/pc/companyListWithoutJoin/Employee.java    |  30 ++--
 .../companyListWithoutJoin/FullTimeEmployee.java   |   6 +-
 .../tck/pc/companyListWithoutJoin/ICompany.java    |   4 +-
 .../tck/pc/companyListWithoutJoin/IDepartment.java |   4 +-
 .../tck/pc/companyListWithoutJoin/IEmployee.java   |   8 +-
 .../companyListWithoutJoin/PartTimeEmployee.java   |   6 +-
 .../jdo/tck/pc/companyListWithoutJoin/Person.java  |  45 +-----
 .../jdo/tck/pc/companyMapWithoutJoin/Company.java  |  54 ++-----
 .../pc/companyMapWithoutJoin/CompanyFactory.java   |   4 +-
 .../CompanyFactoryConcreteClass.java               |   6 +-
 .../CompanyFactoryPMClass.java                     |  12 +-
 .../CompanyFactoryPMInterface.java                 |  12 +-
 .../CompanyFactoryRegistry.java                    |  14 +-
 .../companyMapWithoutJoin/CompanyModelReader.java  |  20 +--
 .../tck/pc/companyMapWithoutJoin/Department.java   |  50 ++----
 .../jdo/tck/pc/companyMapWithoutJoin/Employee.java |  31 ++--
 .../pc/companyMapWithoutJoin/FullTimeEmployee.java |   1 -
 .../jdo/tck/pc/companyMapWithoutJoin/ICompany.java |   4 +-
 .../tck/pc/companyMapWithoutJoin/IDepartment.java  |   4 +-
 .../tck/pc/companyMapWithoutJoin/IEmployee.java    |   8 +-
 .../jdo/tck/pc/companyMapWithoutJoin/IPerson.java  |   1 -
 .../pc/companyMapWithoutJoin/PartTimeEmployee.java |   6 +-
 .../jdo/tck/pc/companyMapWithoutJoin/Person.java   |  47 +-----
 .../apache/jdo/tck/pc/fieldtypes/SimpleClass.java  |  21 +--
 .../apache/jdo/tck/pc/fieldtypes/SimpleEnum.java   |  10 +-
 .../jdo/tck/pc/inheritance/TopNonPersistB.java     |   2 +-
 .../apache/jdo/tck/pc/inheritance/TopPersist.java  |   2 +-
 .../instancecallbacks/InstanceCallbackClass.java   |  23 +--
 .../InstanceCallbackNonPersistFdsClass.java        |  20 +--
 .../jdo/tck/pc/lifecycle/StateTransitionObj.java   |   9 +-
 .../org/apache/jdo/tck/pc/mylib/MylibReader.java   |  10 +-
 .../java/org/apache/jdo/tck/pc/mylib/PCClass.java  |   6 +-
 .../apache/jdo/tck/pc/mylib/PrimitiveTypes.java    |   6 +-
 .../org/apache/jdo/tck/pc/newInstance/Address.java |  10 +-
 .../apache/jdo/tck/pc/newInstance/Address_bad.java |  10 +-
 .../java/org/apache/jdo/tck/pc/order/Order.java    |  43 ++---
 .../org/apache/jdo/tck/pc/order/OrderFactory.java  |   7 +-
 .../jdo/tck/pc/order/OrderFactoryAbstractImpl.java |   2 +-
 .../tck/pc/order/OrderFactoryConcreteClass.java    |   6 +-
 .../jdo/tck/pc/order/OrderFactoryPMClass.java      |   8 +-
 .../jdo/tck/pc/order/OrderFactoryPMInterface.java  |   8 +-
 .../jdo/tck/pc/order/OrderFactoryRegistry.java     |  12 +-
 .../org/apache/jdo/tck/pc/order/OrderItem.java     |  39 +----
 .../apache/jdo/tck/pc/order/OrderModelReader.java  |  12 +-
 .../org/apache/jdo/tck/pc/shoppingcart/Cart.java   |   6 +-
 .../apache/jdo/tck/pc/shoppingcart/CartEntry.java  |   2 +-
 .../jdo/tck/pc/shoppingcart/Undetachable.java      |   2 +-
 .../AbstractPCPointSingleField.java                |   4 +-
 .../jdo/tck/pc/singlefieldidentity/Employee.java   |   5 +-
 .../PCPointSingleFieldCharacter.java               |   3 +-
 .../PCPointSingleFieldDate.java                    |   1 +
 .../PCPointSingleFieldInteger.java                 |   3 +-
 .../PCPointSingleFieldLong.java                    |   3 +-
 .../PCPointSingleFieldPrimitivebyte.java           |   3 +-
 .../PCPointSingleFieldPrimitivechar.java           |   3 +-
 .../PCPointSingleFieldPrimitiveint.java            |   3 +-
 .../PCPointSingleFieldPrimitivelong.java           |   3 +-
 .../PCPointSingleFieldPrimitiveshort.java          |   3 +-
 .../PCPointSingleFieldShort.java                   |   3 +-
 .../PCPointSingleFieldString.java                  |   3 +-
 .../jdo/tck/pc/singlefieldidentity/Person.java     |  10 +-
 .../apache/jdo/tck/query/QueryElementHolder.java   |  46 +++---
 .../java/org/apache/jdo/tck/query/QueryTest.java   | 153 +++++++++---------
 .../apache/jdo/tck/query/api/AutoCloseable.java    |   8 +-
 .../org/apache/jdo/tck/query/api/ChangeQuery.java  |   3 +-
 .../java/org/apache/jdo/tck/query/api/Close.java   |  23 ++-
 .../org/apache/jdo/tck/query/api/CloseAll.java     |  11 +-
 .../org/apache/jdo/tck/query/api/CompileQuery.java |   6 +-
 .../apache/jdo/tck/query/api/DeclareImports.java   |  13 +-
 .../jdo/tck/query/api/DeclareParameters.java       |  18 +--
 .../apache/jdo/tck/query/api/DeclareVariables.java |   8 +-
 .../org/apache/jdo/tck/query/api/ExecuteQuery.java |  26 +--
 .../jdo/tck/query/api/ExecuteQueryWithArray.java   |  12 +-
 .../jdo/tck/query/api/ExecuteQueryWithMap.java     |  17 +-
 .../org/apache/jdo/tck/query/api/GetFetchPlan.java |  18 +--
 .../apache/jdo/tck/query/api/GetIgnoreCache.java   |   4 +-
 .../jdo/tck/query/api/GetPersistenceManager.java   |   4 +-
 ...sistenceManagerFromRestoredSerializedQuery.java |  12 +-
 .../jdo/tck/query/api/MetadataSearchOrder.java     |  19 +--
 .../query/api/NamedQueryRepeatableAnnotations.java |   6 +-
 .../apache/jdo/tck/query/api/NewNamedQuery.java    |   4 +-
 ...ryFromExistingQueryBoundToPMFromSameVendor.java |  32 ++--
 .../api/NewQueryFromRestoredSerializedQuery.java   |  12 +-
 .../jdo/tck/query/api/NewQuerySingleString.java    |   4 +-
 .../tck/query/api/NewQueryWithCandidateClass.java  |   2 +-
 .../NewQueryWithCandidateClassAndCollection.java   |   2 +-
 .../api/NewQueryWithCandidateClassAndExtent.java   |   7 +-
 .../api/NewQueryWithCandidateClassAndFilter.java   |   6 +-
 ...NewQueryWithCandidateClassCollectionFilter.java |   4 +-
 .../jdo/tck/query/api/NewQueryWithExtent.java      |   2 +-
 .../tck/query/api/NewQueryWithExtentAndFilter.java |   6 +-
 .../api/NewQueryWithSpecifiedLanguageAndQuery.java |  16 +-
 .../org/apache/jdo/tck/query/api/QueryCancel.java  |  19 +--
 .../apache/jdo/tck/query/api/QueryExtentions.java  |   6 +-
 .../apache/jdo/tck/query/api/SampleQueries.java    |  64 ++++----
 .../apache/jdo/tck/query/api/SaveAsNamedQuery.java |   4 +-
 .../jdo/tck/query/api/SetCandidateCollection.java  |  14 +-
 .../jdo/tck/query/api/SetCandidateExtent.java      |  14 +-
 .../org/apache/jdo/tck/query/api/SetFilter.java    |   8 +-
 .../org/apache/jdo/tck/query/api/SetGrouping.java  |   5 +-
 .../apache/jdo/tck/query/api/SetIgnoreCache.java   |   5 +-
 .../org/apache/jdo/tck/query/api/SetOrdering.java  |  11 +-
 .../org/apache/jdo/tck/query/api/SetRange.java     |   5 +-
 .../org/apache/jdo/tck/query/api/SetResult.java    |   7 +-
 .../apache/jdo/tck/query/api/SetResultClass.java   |   2 +-
 .../org/apache/jdo/tck/query/api/SetUnique.java    |   5 +-
 .../tck/query/api/SetterReplacePreviousValues.java |   8 +-
 .../jdo/tck/query/api/SingleStringQuery.java       |   9 +-
 .../jdo/tck/query/api/UnmodifiableQuery.java       |  20 +--
 .../jdo/tck/query/delete/DeleteCallback.java       |  50 +++---
 .../jdo/tck/query/delete/DeletePersistentAll.java  |   4 +-
 ...nmentPrePostIncrementDecrementNotSupported.java |   4 +-
 .../java/org/apache/jdo/tck/query/jdoql/Cast.java  |   5 +-
 .../query/jdoql/CharacterAndStringLiterals.java    |   6 +-
 .../jdoql/ComparingCollectionFieldToNull.java      |   1 -
 ...omparingPersistentAndNonPersistentInstance.java |   4 +-
 .../tck/query/jdoql/DenoteUniquenessInFilter.java  |   6 +-
 ...ExecuteQueryWhenPersistenceManagerIsClosed.java |   6 +-
 ...gMultipleQueriesSimultaneouslyIsThreadSafe.java |  22 +--
 ...eryWhenNoTransactionNoNontransactionalRead.java |   9 +-
 .../query/jdoql/IdentifiersEqualFieldNames.java    |  12 +-
 .../apache/jdo/tck/query/jdoql/IfElseInFilter.java |   9 +-
 .../jdo/tck/query/jdoql/IgnoreCacheFalse.java      |  42 ++---
 ...ctiveQueryInstanceInSamePersistenceManager.java |   8 +-
 .../tck/query/jdoql/MultipleIdenticalImports.java  |   6 +-
 .../tck/query/jdoql/NamespaceOfIdentifiers.java    |  14 +-
 .../query/jdoql/NavigationComparisonWithNull.java  |  38 ++---
 .../jdoql/NavigationThroughACollectionField.java   |   2 +-
 .../jdoql/NavigationThroughANullValuedField.java   |   9 +-
 ...NavigationThroughReferencesUsesDotOperator.java |  15 +-
 .../jdoql/NullCollectionsAndContainsMethod.java    |   2 +-
 .../tck/query/jdoql/NullCollectionsAndIsEmpty.java |   2 +-
 .../jdo/tck/query/jdoql/OrderingSpecification.java |  21 ++-
 .../jdoql/ParenthesesMarkOperatorPrecedence.java   |  54 +++----
 .../apache/jdo/tck/query/jdoql/PositiveRange.java  |  15 +-
 .../jdo/tck/query/jdoql/QueryIsSerializable.java   |  18 ++-
 .../jdoql/QueryResultPassedToAnotherQuery.java     |  33 ++--
 .../jdo/tck/query/jdoql/QueryWithNoFilter.java     |  14 +-
 .../apache/jdo/tck/query/jdoql/RangeAsString.java  |  16 +-
 ...ializedQueryInstanceLosesAssociationWithPM.java |  13 +-
 .../query/jdoql/SeparateNamespaceForTypeNames.java |   5 +-
 .../jdoql/WhiteSpaceIsACharacterAndIgnored.java    |  17 +-
 .../ThisIsReservedWordForElementOfCollection.java  |   7 +-
 .../keywords/UseOfThisToAcessHiddenField.java      |  18 ++-
 .../tck/query/jdoql/methods/EnumMethodOrdinal.java |  11 +-
 .../query/jdoql/methods/EnumMethodToString.java    |  11 +-
 .../MethodsAndObjectConstructionNotSupported.java  |   6 +-
 .../query/jdoql/methods/StartsWithAndEndsWith.java |   4 +-
 .../jdoql/methods/SupportedCollectionMethods.java  |  12 +-
 .../query/jdoql/methods/SupportedDateMethods.java  |   6 +-
 .../jdoql/methods/SupportedJDOHelperMethods.java   |  45 +++---
 .../query/jdoql/methods/SupportedListMethods.java  |   4 +-
 .../jdoql/methods/SupportedLocalDateMethods.java   |   6 +-
 .../methods/SupportedLocalDateTimeMethods.java     |  13 +-
 .../jdoql/methods/SupportedLocalTimeMethods.java   |  12 +-
 .../query/jdoql/methods/SupportedMapMethods.java   |  16 +-
 .../query/jdoql/methods/SupportedMathMethods.java  | 175 +++++++++++----------
 .../jdoql/methods/SupportedOptionalMethods.java    |   2 +-
 .../jdoql/methods/SupportedStringMethods.java      |  46 +++---
 .../query/jdoql/methods/SupportedTimeMethods.java  |  25 +--
 .../tck/query/jdoql/operators/BinaryAddition.java  |  11 +-
 .../query/jdoql/operators/BinarySubtraction.java   |  13 +-
 .../jdoql/operators/BitwiseBinaryOperators.java    |  25 ++-
 .../query/jdoql/operators/BitwiseComplement.java   |  14 +-
 .../query/jdoql/operators/BooleanLogicalAND.java   |  21 ++-
 .../query/jdoql/operators/BooleanLogicalOR.java    |  27 ++--
 .../tck/query/jdoql/operators/ComparisonTests.java |  25 ++-
 .../tck/query/jdoql/operators/ConditionalAND.java  |  18 +--
 .../tck/query/jdoql/operators/ConditionalOR.java   |  22 +--
 .../jdo/tck/query/jdoql/operators/Division.java    |  14 +-
 .../jdo/tck/query/jdoql/operators/Equality.java    | 169 ++++++++++----------
 ...dComparisonsBetweenDateFieldsAndParameters.java |   7 +-
 ...risonsBetweenPrimitivesAndWrapperInstances.java |  23 ++-
 ...omparisonsBetweenStringFieldsAndParameters.java |   8 +-
 .../jdo/tck/query/jdoql/operators/GreaterThan.java | 144 ++++++++---------
 .../query/jdoql/operators/GreaterThanOrEqual.java  | 144 ++++++++---------
 .../jdo/tck/query/jdoql/operators/Instanceof.java  |   4 +-
 .../jdo/tck/query/jdoql/operators/LessThan.java    | 144 ++++++++---------
 .../tck/query/jdoql/operators/LessThanOrEqual.java | 144 ++++++++---------
 .../query/jdoql/operators/LogicalComplement.java   |  51 +++---
 .../jdo/tck/query/jdoql/operators/Modulo.java      |   9 +-
 .../tck/query/jdoql/operators/Multiplication.java  |   7 +-
 .../jdo/tck/query/jdoql/operators/NotEquals.java   | 126 +++++++--------
 .../operators/PromotionOfNumericOperands.java      |   7 +-
 .../tck/query/jdoql/operators/SignInversion.java   |  11 +-
 .../query/jdoql/operators/StringConcatenation.java |   4 +-
 .../jdo/tck/query/jdoql/operators/UnaryPlus.java   |   5 +-
 .../jdoql/parameters/BoundParameterCheck.java      |   2 +-
 .../parameters/DomainObjectsAsParameters.java      |  39 ++---
 .../query/jdoql/parameters/ImplicitParameters.java |  10 +-
 .../query/jdoql/parameters/OrderOfParameters.java  |   6 +-
 .../parameters/ParameterBoundToDifferentPM.java    |   2 +-
 ...eclaredWithSameNameAsFieldOfCandidateClass.java |  32 ++--
 .../parameters/PrimitiveParameterPassedAsNull.java |   2 +-
 .../query/jdoql/subqueries/AggregateOnSize.java    |  12 +-
 .../jdoql/subqueries/CorrelatedSubqueries.java     |  52 +++---
 .../CorrelatedSubqueriesWithParameters.java        |  35 ++---
 .../subqueries/MultipleCallsReplaceSubquery.java   |  11 +-
 .../jdoql/subqueries/NonCorrelatedSubqueries.java  |  29 ++--
 .../NullCandidateCollectionExpression.java         |  12 +-
 .../jdoql/subqueries/NullSubqueryParameter.java    |  12 +-
 .../jdoql/subqueries/NullVariableDeclaration.java  |  10 +-
 .../tck/query/jdoql/subqueries/SubqueriesTest.java |   9 +-
 .../subqueries/UnmodifiedSubqueryInstance.java     |  20 ++-
 .../tck/query/jdoql/variables/MixedVariables.java  |   4 +-
 .../jdoql/variables/UnconstrainedVariable.java     |   2 +-
 ...eclaredWithSameNameAsFieldOfCandidateClass.java |  18 +--
 .../query/jdoql/variables/VariablesAndFields.java  |  13 +-
 .../jdoql/variables/VariablesWithoutExtent.java    |   2 +-
 .../jdo/tck/query/result/AggregateResult.java      |   3 +-
 .../apache/jdo/tck/query/result/DefaultResult.java |   6 +-
 .../apache/jdo/tck/query/result/DefaultUnique.java |   4 +-
 .../query/result/DistinctCandidateInstances.java   |  16 +-
 .../apache/jdo/tck/query/result/DistinctQuery.java |   9 +-
 .../jdo/tck/query/result/ImmutableQueryResult.java |  15 +-
 .../result/ProjectedSCODoesNotTrackChanges.java    |  12 +-
 .../jdo/tck/query/result/ResultExpressions.java    |  18 +--
 .../apache/jdo/tck/query/result/ShapeOfResult.java |   4 +-
 .../org/apache/jdo/tck/query/result/Unique.java    |   2 +-
 .../jdo/tck/query/result/VariableInResult.java     |   6 +-
 .../result/VariableInResultMultipleNavigation.java |   1 -
 .../query/result/VariableInResultNavigation.java   |   1 -
 .../tck/query/result/classes/PublicPutMethod.java  |   4 +-
 .../jdo/tck/query/sql/AllowedAPIMethods.java       |  34 ++--
 .../apache/jdo/tck/query/sql/ExecuteWithMap.java   |  21 +--
 .../apache/jdo/tck/query/sql/NoCandidateClass.java |   3 +-
 .../apache/jdo/tck/query/sql/ShapeOfResult.java    |  13 +-
 .../jdo/tck/transactions/SetIsolationLevel.java    |   1 +
 .../tck/transactions/SetNontransactionalRead.java  |  10 +-
 .../WhenNontransactionalReadIsFalse.java           |   6 +-
 .../apache/jdo/tck/util/BatchResultPrinter.java    |  27 ++--
 .../org/apache/jdo/tck/util/BatchTestRunner.java   |  18 +--
 .../org/apache/jdo/tck/util/ClassGenerator.java    |   4 +-
 .../org/apache/jdo/tck/util/ConsoleFileOutput.java |   2 +
 .../org/apache/jdo/tck/util/ConversionHelper.java  |  28 ++--
 .../java/org/apache/jdo/tck/util/DeepEquality.java |   2 -
 .../org/apache/jdo/tck/util/EqualityHelper.java    | 170 ++++++++++----------
 .../apache/jdo/tck/util/GetSupportedOptions.java   |   6 +-
 .../apache/jdo/tck/util/JDOCustomDateEditor.java   |  11 ++
 .../org/apache/jdo/tck/util/JDOJdk14Logger.java    |  42 +++--
 .../java/org/apache/jdo/tck/util/RogueBarrier.java |  17 +-
 .../org/apache/jdo/tck/util/SystemCfgSummary.java  |   2 +-
 .../org/apache/jdo/tck/util/TCKFileHandler.java    |  18 ++-
 .../jdo/tck/util/ThreadExceptionHandler.java       |   7 +-
 .../apache/jdo/tck/util/signature/Formatter.java   |  26 +--
 .../jdo/tck/util/signature/SignatureVerifier.java  |  80 +++++-----
 .../apache/jdo/tck/util/signature/TypeHelper.java  |  53 +++----
 565 files changed, 4092 insertions(+), 5486 deletions(-)

diff --git a/api/src/main/java/javax/jdo/spi/RegisterClassEvent.java b/api/src/main/java/javax/jdo/spi/RegisterClassEvent.java
index 31106d01..960b4a8b 100644
--- a/api/src/main/java/javax/jdo/spi/RegisterClassEvent.java
+++ b/api/src/main/java/javax/jdo/spi/RegisterClassEvent.java
@@ -35,19 +35,19 @@ public class RegisterClassEvent extends EventObject
 	private static final long serialVersionUID = 945917130591776973L;
 
 	/** The class object of the registered persistence-capable class */
-    protected Class pcClass;
+    protected Class<?> pcClass;
 
     /** The names of managed fields of the persistence-capable class */
     protected String[] fieldNames;  
 
     /** The types of managed fields of the persistence-capable class */
-    protected Class[] fieldTypes;
+    protected Class<?>[] fieldTypes;
 
     /** The flags of managed fields of the persistence-capable class */
     protected byte[] fieldFlags;
 
     /** */
-    protected Class persistenceCapableSuperclass; 
+    protected Class<?> persistenceCapableSuperclass;
 
     /** 
      * Constructs a new <code>RegisterClassEvent</code>.
@@ -59,11 +59,11 @@ public class RegisterClassEvent extends EventObject
      * @param persistenceCapableSuperclass the persistence-capable superclass
      **/
     public RegisterClassEvent(JDOImplHelper helper,
-                              Class registeredClass, 
+                              Class<?> registeredClass,
                               String[] fieldNames, 
-                              Class[] fieldTypes,
+                              Class<?>[] fieldTypes,
                               byte[] fieldFlags,
-                              Class persistenceCapableSuperclass)
+                              Class<?> persistenceCapableSuperclass)
     {
         super(helper);
         this.pcClass = registeredClass;
@@ -77,7 +77,7 @@ public class RegisterClassEvent extends EventObject
      * Returns the class object of the registered persistence-capable class.
      * @return the persistence-capable class.
      */
-    public Class getRegisteredClass()
+    public Class<?> getRegisteredClass()
     {
         return pcClass;
     }
@@ -95,7 +95,7 @@ public class RegisterClassEvent extends EventObject
      * Returns the types of the managed field of the persistence-capable class.
      * @return the types of the managed fields
      */
-    public Class[] getFieldTypes()
+    public Class<?>[] getFieldTypes()
     {
         return fieldTypes;
     }
@@ -113,7 +113,7 @@ public class RegisterClassEvent extends EventObject
      * Returns the class object of the persistence-capable superclass.
      * @return the persistence-capable superclass.
      */
-    public Class getPersistenceCapableSuperclass()
+    public Class<?> getPersistenceCapableSuperclass()
     {
         return persistenceCapableSuperclass;
     }
diff --git a/tck/src/main/java/org/apache/jdo/tck/AbstractReaderTest.java b/tck/src/main/java/org/apache/jdo/tck/AbstractReaderTest.java
index 17b371e9..53126043 100644
--- a/tck/src/main/java/org/apache/jdo/tck/AbstractReaderTest.java
+++ b/tck/src/main/java/org/apache/jdo/tck/AbstractReaderTest.java
@@ -34,16 +34,16 @@ import org.springframework.beans.factory.support.DefaultListableBeanFactory;
 public class AbstractReaderTest extends JDO_Test {
 
     /** The list of all objects in the bean collection. */
-    protected List rootOids;
+    protected List<Object> rootOids;
 
     /** The name of the root object in the bean collection. */
-    protected static final String rootName = "root";
+    protected static final String ROOT_NAME = "root";
 
     /** The name of the file containing the bean collection (test data). */
     protected final String inputFilename = System.getProperty("jdo.tck.testdata");
 
     /** The map of String (bean name) to Object (bean). */
-    protected Map oidMap = new HashMap();
+    protected Map<String, Object> oidMap = new HashMap<>();
 
     /** Get the named bean from the bean factory.
      * 
@@ -52,12 +52,7 @@ public class AbstractReaderTest extends JDO_Test {
      * @return the named object
      */
     protected Object getBean(final DefaultListableBeanFactory factory, final String name) {
-        return doPrivileged(
-            new PrivilegedAction() {
-                public Object run() {
-                    return factory.getBean(name);
-                }
-            }
+        return doPrivileged(() -> factory.getBean(name)
         );
     }
 
@@ -78,8 +73,8 @@ public class AbstractReaderTest extends JDO_Test {
      * @param factory the bean factory
      * @return the List of objects
      */
-    protected List getRootList(DefaultListableBeanFactory factory) {
-        return (List) getBean(factory, rootName);
+    protected List<Object> getRootList(DefaultListableBeanFactory factory) {
+        return (List<Object>) getBean(factory, ROOT_NAME);
     }
 
     /** Get the named object from the Map of objects.
@@ -88,7 +83,7 @@ public class AbstractReaderTest extends JDO_Test {
      * @return the named object
      */
     protected Object getOidByName(String name) {
-        return oidMap.get((Object)name);
+        return oidMap.get(name);
     }
 
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/JDO_Test.java b/tck/src/main/java/org/apache/jdo/tck/JDO_Test.java
index 5278c730..3aff450c 100644
--- a/tck/src/main/java/org/apache/jdo/tck/JDO_Test.java
+++ b/tck/src/main/java/org/apache/jdo/tck/JDO_Test.java
@@ -35,6 +35,7 @@ import java.security.PrivilegedAction;
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedList;
@@ -42,7 +43,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.StringTokenizer;
-import java.util.Vector;
 
 import junit.framework.AssertionFailedError;
 import junit.framework.TestCase;
@@ -67,7 +67,7 @@ public abstract class JDO_Test extends TestCase {
     public static final int NUM_STATES = 13;
     public static final int ILLEGAL_STATE = 13;
 
-    public static final String[] states = {
+    protected static final String[] states = {
         "transient",
         "persistent-new",
         "persistent-clean",
@@ -96,7 +96,7 @@ public abstract class JDO_Test extends TestCase {
      * methods for each state. This is used to determine the current lifecycle
      * state of an object.
      */
-    private static final boolean state_statuses[][] = {
+    private static final boolean[][] state_statuses = {
         // IS_PERSISTENT IS_TRANSACTIONAL    IS_DIRTY      IS_NEW      IS_DELETED  IS_DETACHED
         // transient
         {   false,          false,              false,      false,      false,        false},
@@ -161,7 +161,7 @@ public abstract class JDO_Test extends TestCase {
     public static final String DATASTORE_IDENTITY = "datastoreidentity";
 
     /** Map of transaction isolation String values to Integer */
-    protected final static Map levelValues = new HashMap();
+    protected static final Map<String, Integer> levelValues = new HashMap<>();
     static {
         levelValues.put(Constants.TX_READ_UNCOMMITTED, 0);
         levelValues.put(Constants.TX_READ_COMMITTED, 1);
@@ -208,7 +208,7 @@ public abstract class JDO_Test extends TestCase {
     protected static PersistenceManagerFactory pmf;
     
     /** The collection of supported options of the pmf. */
-    protected static Collection supportedOptions;
+    protected static Collection<String> supportedOptions;
 
     /** The name of the pmf supported options summary file. */
     private static final String PMF_SUPPORTED_OPTIONS_FILE_NAME = "pmf_supported_options.txt";
@@ -236,13 +236,13 @@ public abstract class JDO_Test extends TestCase {
      * A list of registered oid instances. 
      * Corresponding pc instances are deleted in <code>localTearDown</code>.
      */
-    private Collection tearDownInstances = new LinkedList();
+    private Collection<Object> tearDownInstances = new LinkedList<>();
     
     /** 
      * A list of registered pc classes. 
      * The extents of these classes are deleted in <code>localTearDown</code>.
      */
-    private Collection tearDownClasses = new LinkedList();
+    private Collection<Class<?>> tearDownClasses = new LinkedList<>();
     
     /**
      * Intended for subclasses so that they may skip this class's normal set up procedure.
@@ -252,6 +252,7 @@ public abstract class JDO_Test extends TestCase {
         return true;
     }
 
+    @Override
     protected final void setUp() throws Exception {
         if (!preSetUp()) {
             return;
@@ -271,6 +272,7 @@ public abstract class JDO_Test extends TestCase {
      * Runs the bare test sequence.
      * @exception Throwable if any exception is thrown
      */
+    @Override
     public final void runBare() throws Throwable {
         try {
             testSucceeded = false;
@@ -337,6 +339,7 @@ public abstract class JDO_Test extends TestCase {
      *  This is done at the end of each configuration, unless the property
      *  jdo.tck.closePMFAfterEachTest is set to true.
      */
+    @Override
     protected final void tearDown() {
         if (!preTearDown()) {
             return;
@@ -407,11 +410,11 @@ public abstract class JDO_Test extends TestCase {
         addTearDownObjectId(oid);
     }
     
-    protected void addTearDownClass(Class pcClass) {
+    protected void addTearDownClass(Class<?> pcClass) {
         this.tearDownClasses.add(pcClass);
     }
     
-    protected void addTearDownClass(Class[] pcClasses) {
+    protected void addTearDownClass(Class<?>[] pcClasses) {
         if (pcClasses == null) return;
         for (int i = 0; i < pcClasses.length; ++i) {
             addTearDownClass(pcClasses[i]);
@@ -431,7 +434,7 @@ public abstract class JDO_Test extends TestCase {
             getPM();
             try {
                 this.pm.currentTransaction().begin();
-                for (Iterator i = this.tearDownInstances.iterator(); i.hasNext(); ) {
+                for (Iterator<Object> i = this.tearDownInstances.iterator(); i.hasNext(); ) {
                     Object pc;
                     try {
                         pc = this.pm.getObjectById(i.next(), true);
@@ -468,8 +471,8 @@ public abstract class JDO_Test extends TestCase {
             getPM();
             try {
                 this.pm.currentTransaction().begin();
-                for (Iterator i = this.tearDownClasses.iterator(); i.hasNext(); ) {
-                    this.pm.deletePersistentAll(getAllObjects(this.pm, (Class)i.next()));
+                for (Iterator<Class<?>> i = this.tearDownClasses.iterator(); i.hasNext(); ) {
+                    this.pm.deletePersistentAll(getAllObjects(this.pm, i.next()));
                 }
                 this.pm.currentTransaction().commit();
             }
@@ -486,21 +489,18 @@ public abstract class JDO_Test extends TestCase {
      * @param pcClass the class object of the PersistenceCapabale class
      * @return a Collection of persistence objects
      */
-    protected Collection getAllObjects(PersistenceManager pm, Class pcClass) {
-        Collection col = new Vector() ;
-        Query query = pm.newQuery();
-        query.setClass(pcClass);
-        Extent candidates = null;
+    protected <T> Collection<T> getAllObjects(PersistenceManager pm, Class<T> pcClass) {
+        Query<T> query = pm.newQuery(pcClass);
+        Extent<T> candidates = null;
         try {
             candidates = pm.getExtent(pcClass, false);
         } catch (JDOException ex) {
             if (debug) logger.debug("Exception thrown for getExtent of class " +
                     pcClass.getName());
-            return col;
+            return Collections.emptyList();
         }
         query.setCandidates(candidates);
-        Object result = query.execute();
-        return (Collection)result;
+        return query.executeList();
     }
 
     /**
@@ -520,7 +520,7 @@ public abstract class JDO_Test extends TestCase {
         return pmf;
     }
 
-    protected Class getPMFClass() {
+    protected Class<?> getPMFClass() {
         if (pmf != null) {
             return pmf.getClass();
         }
@@ -548,7 +548,7 @@ public abstract class JDO_Test extends TestCase {
         if (pmf == null) {
             String name = null;
             try {
-                Class pmfClass = getPMFClass();
+                Class<?> pmfClass = getPMFClass();
                 name = pmfClass.getName();
                 pmf = (PersistenceManagerFactory) pmfClass.newInstance();
                 if (supportedOptions == null) {
@@ -645,12 +645,10 @@ public abstract class JDO_Test extends TestCase {
         if (PMF != null) {
             if (!PMF.isClosed()) {
                 doPrivileged(
-                    new PrivilegedAction () {
-                        public Object run () {
+                        () -> {
                             PMF.close();
                             return null;
                         }
-                    }
                 );
             }
         }
@@ -752,8 +750,8 @@ public abstract class JDO_Test extends TestCase {
         PrintStream resultStream = null;
         try {
             resultStream = new PrintStream(new FileOutputStream(file));
-            for (Iterator it = supportedOptions.iterator(); it.hasNext();) {
-                resultStream.println((String)it.next());
+            for (Iterator<String> it = supportedOptions.iterator(); it.hasNext();) {
+                resultStream.println(it.next());
             }
         } catch (FileNotFoundException e) {
             throw new JDOFatalException(
@@ -1110,7 +1108,8 @@ public abstract class JDO_Test extends TestCase {
         status[IS_NEW]              = JDOHelper.isNew(o);
         status[IS_DELETED]          = JDOHelper.isDeleted(o);
         status[IS_DETACHED]         = JDOHelper.isDetached(o);
-        int i, j;
+        int i;
+        int j;
     outerloop:
         for( i = 0; i < NUM_STATES; ++i ){
             for( j = 0; j < NUM_STATUSES; ++j ){
@@ -1124,16 +1123,16 @@ public abstract class JDO_Test extends TestCase {
 
     /**
      * Tests if a found state matches an expected state.
-     * @param found_state the  found state
-     * @param expected_state the expected state
+     * @param foundState the  found state
+     * @param expectedState the expected state
      * @return true if the found state matches the expected state
      */
-    public static boolean compareStates(int found_state, int expected_state) {
+    public static boolean compareStates(int foundState, int expectedState) {
         // status interrogation gives same values for PERSISTENT_NONTRANSACTIONAL and HOLLOW
-        return (expected_state < 0
-                || found_state == expected_state
-                || (found_state == HOLLOW && expected_state == PERSISTENT_NONTRANSACTIONAL)
-                || (found_state == PERSISTENT_NONTRANSACTIONAL && expected_state == HOLLOW));
+        return (expectedState < 0
+                || foundState == expectedState
+                || (foundState == HOLLOW && expectedState == PERSISTENT_NONTRANSACTIONAL)
+                || (foundState == PERSISTENT_NONTRANSACTIONAL && expectedState == HOLLOW));
     }
 
     /** This method mangles an object by changing all its non-static, 
@@ -1144,13 +1143,12 @@ public abstract class JDO_Test extends TestCase {
      * @return a mangled object
      * @throws Exception exception
      */
-    protected boolean mangleObject (Object oid) 
-        throws Exception {
+    protected boolean mangleObject (Object oid) throws IllegalAccessException {
         Field[] fields = getModifiableFields(oid);
         if (fields.length == 0) return false;
         for (int i = 0; i < fields.length; ++i) {
             Field field = fields[i];
-            Class fieldType = field.getType();
+            Class<?> fieldType = field.getType();
             if (fieldType == long.class) {
                 field.setLong(oid, 10000L + field.getLong(oid));
             } else if (fieldType == int.class) {
@@ -1191,11 +1189,10 @@ public abstract class JDO_Test extends TestCase {
      * @return an array of fields
      */
     protected Field[] getModifiableFields(final Object obj) {
-        return (Field[])doPrivileged(
-            new PrivilegedAction () {
-                public Object run () {
-                    Class cls = obj.getClass();
-                    List result = new ArrayList();
+        return doPrivileged(
+                () -> {
+                    Class<?> cls = obj.getClass();
+                    List<Field> result = new ArrayList<>();
                     Field[] fields = cls.getFields();
                     for (int i = 0; i < fields.length; ++i) {
                         Field field = fields[i];
@@ -1208,7 +1205,6 @@ public abstract class JDO_Test extends TestCase {
                     }
                     return result.toArray(new Field[result.size()]);
                 }
-            }
         );
     }
 
@@ -1380,8 +1376,8 @@ public abstract class JDO_Test extends TestCase {
      * @return true if the actual level is greater or equal the requsted level
      */
     protected boolean validLevelSubstitution(String requested, String actual) {
-        int requestedLevel = ((Integer)levelValues.get(requested)).intValue();
-        int actualLevel = ((Integer)levelValues.get(actual)).intValue();
+        int requestedLevel = (levelValues.get(requested)).intValue();
+        int actualLevel = (levelValues.get(actual)).intValue();
         return actualLevel >= requestedLevel;
     }
 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/SignatureTest.java b/tck/src/main/java/org/apache/jdo/tck/api/SignatureTest.java
index 4ce5ae12..91863259 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/SignatureTest.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/SignatureTest.java
@@ -91,7 +91,7 @@ public class SignatureTest extends JDO_Test {
             }
 
             // run the test
-            final List signatureFileNames = new ArrayList();
+            final List<String> signatureFileNames = new ArrayList<>();
             signatureFileNames.add(signatureFileName);
             int status = verifier.test(signatureFileNames);
             
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/converter/IntAttributeConverterTest.java b/tck/src/main/java/org/apache/jdo/tck/api/converter/IntAttributeConverterTest.java
index d14a23e8..c3e63f80 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/converter/IntAttributeConverterTest.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/converter/IntAttributeConverterTest.java
@@ -91,7 +91,7 @@ public class IntAttributeConverterTest extends JDO_Test {
     /**
      * Test method running a PCPoint query with a query parameter of type Point.
      */
-    public void testPCPointQueryWithPointParam() throws Exception {
+    public void testPCPointQueryWithPointParam() {
         runQueryWithIntParameter(PCPoint.class);
     }
 
@@ -126,7 +126,7 @@ public class IntAttributeConverterTest extends JDO_Test {
     /**
      * Test method running a PCPointAnnotated query with a query parameter of type String.
      */
-    public void testPCPointAnnotatedQueryWithPointParam() throws Exception {
+    public void testPCPointAnnotatedQueryWithPointParam() {
         runQueryWithIntParameter(PCPointAnnotated.class);
     }
 
@@ -161,7 +161,7 @@ public class IntAttributeConverterTest extends JDO_Test {
     /**
      * Test method running a PCPoint query with a query parameter of type Point.
      */
-    public void testPCPointPropQueryWithPointParam() throws Exception {
+    public void testPCPointPropQueryWithPointParam() {
         runQueryWithIntParameter(PCPointProp.class);
     }
 
@@ -196,7 +196,7 @@ public class IntAttributeConverterTest extends JDO_Test {
     /**
      * Test method running a PCPointAnnotated query with a query parameter of type String.
      */
-    public void testPCPointPropAnnotatedQueryWithPointParam() throws Exception {
+    public void testPCPointPropAnnotatedQueryWithPointParam() {
         runQueryWithIntParameter(PCPointPropAnnotated.class);
     }
 
@@ -309,7 +309,7 @@ public class IntAttributeConverterTest extends JDO_Test {
      * The parameter value is converted using the AttributeConverter.
      * @throws Exception
      */
-    private <T extends IPCPoint> void runQueryWithIntParameter(Class<T> pcPointClass) throws Exception {
+    private <T extends IPCPoint> void runQueryWithIntParameter(Class<T> pcPointClass) {
         int nrOfDbCalls;
         int nrOfAttrCalls;
 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/converter/PointAttributeConverterTest.java b/tck/src/main/java/org/apache/jdo/tck/api/converter/PointAttributeConverterTest.java
index 019ebf37..7c9ea9cd 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/converter/PointAttributeConverterTest.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/converter/PointAttributeConverterTest.java
@@ -90,7 +90,7 @@ public class PointAttributeConverterTest extends JDO_Test {
     /**
      * Test method running a PCRectString query with a query parameter of type Point.
      */
-    public void testPCRectStringQueryWithPointParam() throws Exception {
+    public void testPCRectStringQueryWithPointParam() {
         runQueryWithPointParameter(PCRect.class);
     }
 
@@ -125,7 +125,7 @@ public class PointAttributeConverterTest extends JDO_Test {
     /**
      * Test method running a PCRectStringAnnotated query with a query parameter of type String.
      */
-    public void testPCRectStringAnnotatedQueryWithPointParam() throws Exception {
+    public void testPCRectStringAnnotatedQueryWithPointParam() {
         runQueryWithPointParameter(PCRectAnnotated.class);
     }
 
@@ -241,7 +241,7 @@ public class PointAttributeConverterTest extends JDO_Test {
      * The parameter value is converted using the AttributeConverter.
      * @throws Exception
      */
-    private <T extends IPCRect> void runQueryWithPointParameter(Class<T> pcrectClass) throws Exception {
+    private <T extends IPCRect> void runQueryWithPointParameter(Class<T> pcrectClass) {
         int nrOfDbCalls;
         int nrOfAttrCalls;
 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/exceptions/ExceptionConstructor.java b/tck/src/main/java/org/apache/jdo/tck/api/exceptions/ExceptionConstructor.java
index a0ecabab..de12e234 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/exceptions/ExceptionConstructor.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/exceptions/ExceptionConstructor.java
@@ -33,19 +33,19 @@ import org.apache.jdo.tck.util.BatchTestRunner;
 
 public class ExceptionConstructor extends JDO_Test {
 
-    protected static final Class[] classArrayEmpty = 
+    protected static final Class<?>[] classArrayEmpty =
             new Class[] {};
-    protected static final Class[] classArrayString = 
+    protected static final Class<?>[] classArrayString =
             new Class[] {String.class};
-    protected static final Class[] classArrayStringObject = 
+    protected static final Class<?>[] classArrayStringObject =
             new Class[] {String.class, Object.class};
-    protected static final Class[] classArrayStringThrowable =
+    protected static final Class<?>[] classArrayStringThrowable =
             new Class[] {String.class, Throwable.class};
-    protected static final Class[] classArrayStringThrowableArray =
+    protected static final Class<?>[] classArrayStringThrowableArray =
             new Class[] {String.class, Throwable[].class};
-    protected static final Class[] classArrayStringThrowableObject =
+    protected static final Class<?>[] classArrayStringThrowableObject =
             new Class[] {String.class, Throwable.class, Object.class};
-    protected static final Class[] classArrayStringThrowableArrayObject =
+    protected static final Class<?>[] classArrayStringThrowableArrayObject =
             new Class[] {String.class, Throwable[].class, Object.class};
     protected static final String message = "Message";
     protected static final Object object = "Failed Object";
@@ -212,44 +212,44 @@ public class ExceptionConstructor extends JDO_Test {
         constructStringThrowableObject(javax.jdo.JDOUserCallbackException.class);
     }
 
-    protected void constructEmpty(Class clazz) {
+    protected void constructEmpty(Class<?> clazz) {
         construct(clazz, classArrayEmpty, objectArrayEmpty, 
                 null, null, null);
     }
 
-    protected void constructString(Class clazz) {
+    protected void constructString(Class<?> clazz) {
         construct(clazz, classArrayString, objectArrayString, 
                 message, null, null);
     }
 
-    protected void constructStringObject(Class clazz) {
+    protected void constructStringObject(Class<?> clazz) {
         construct(clazz, classArrayStringObject, objectArrayStringObject, 
                 message, object, null);
     }
 
-    protected void constructStringThrowableArray(Class clazz) {
+    protected void constructStringThrowableArray(Class<?> clazz) {
         construct(clazz, classArrayStringThrowableArray, objectArrayStringThrowableArray, 
                 message, null, throwable);
     }
 
-    protected void constructStringThrowable(Class clazz) {
+    protected void constructStringThrowable(Class<?> clazz) {
         construct(clazz, classArrayStringThrowable, objectArrayStringThrowable, 
                 message, null, throwable);
     }
 
-    protected void constructStringThrowableArrayObject(Class clazz) {
+    protected void constructStringThrowableArrayObject(Class<?> clazz) {
         construct(clazz, classArrayStringThrowableArrayObject, objectArrayStringThrowableArrayObject, 
                 message, object, throwable);
     }
 
-    protected void constructStringThrowableObject(Class clazz) {
+    protected void constructStringThrowableObject(Class<?> clazz) {
         construct(clazz, classArrayStringThrowableObject, objectArrayStringThrowableObject, 
                 message, object, throwable);
     }
 
-    protected void construct(Class clazz, Class[] formal, Object[] params,
+    protected void construct(Class<?> clazz, Class<?>[] formal, Object[] params,
             String expectedMessage, Object expectedObject, Throwable expectedCause) {
-        Constructor ctor = null;
+        Constructor<?> ctor = null;
         try {
             ctor = clazz.getConstructor(formal);
         } catch (Throwable ex) {
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/fetchgroup/FetchGroupTest.java b/tck/src/main/java/org/apache/jdo/tck/api/fetchgroup/FetchGroupTest.java
index d00ae2c1..c80866e3 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/fetchgroup/FetchGroupTest.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/fetchgroup/FetchGroupTest.java
@@ -63,7 +63,7 @@ public class FetchGroupTest extends JDO_Test {
     }
 
     /** All fetch groups in this PMF. */
-    protected Set allPMFFetchGroups;
+    protected Set<FetchGroup> allPMFFetchGroups;
 
     /**
      * Employee.java:
@@ -125,7 +125,7 @@ public class FetchGroupTest extends JDO_Test {
 
     public void testPMFGetFetchGroup() {
         allPMFFetchGroups = pmf.getFetchGroups();
-        Map unscopedFetchGroupMap = new HashMap();    
+        Map<String , FetchGroup> unscopedFetchGroupMap = new HashMap<>();
         unscopedFetchGroupMap.put("Address+default", 
                 pmf.getFetchGroup(Address.class, "default"));
         unscopedFetchGroupMap.put("Company+default", 
@@ -236,9 +236,9 @@ public class FetchGroupTest extends JDO_Test {
 
     public void testRemoveCategory() {
         FetchGroup fg = pm.getFetchGroup(Employee.class, "testRemoveCategory");
-        Set expectedSet = new HashSet();
+        Set<String> expectedSet = new HashSet<>();
         expectedSet.addAll(Arrays.asList(allButMultivaluedMembers));
-        Set members = fg.getMembers();
+        Set<String> members = fg.getMembers();
         fg.addCategory(FetchGroup.ALL);
         fg.removeCategory(FetchGroup.MULTIVALUED);
         members = fg.getMembers();
@@ -252,7 +252,7 @@ public class FetchGroupTest extends JDO_Test {
         for (int i = 0; i < allMembers.length; ++i) {
             String member = allMembers[i];
             fg.addMember(member);
-            Set members = fg.getMembers();
+            Set<String> members = fg.getMembers();
             assertTrue("FetchGroup should contain " + member + " but does not.\n"
                     + printFetchGroup(fg),
                     members.contains(member));
@@ -266,8 +266,8 @@ public class FetchGroupTest extends JDO_Test {
         FetchGroup fg = pm.getFetchGroup(Employee.class, "testAddMembers");
         fg.addMembers(multivaluedMembers);
         fg.addMembers(allButMultivaluedMembers);
-        Set members = fg.getMembers();
-        Set expectedSet = new HashSet();
+        Set<String> members = fg.getMembers();
+        Set<String> expectedSet = new HashSet<>();
         expectedSet.addAll(Arrays.asList(allMembers));
         assertEquals("FetchGroup should contain all members.\n",
                 expectedSet, members);
@@ -277,8 +277,8 @@ public class FetchGroupTest extends JDO_Test {
         FetchGroup fg = pm.getFetchGroup(Employee.class, "testRemoveMembers");
         fg.addMembers(allMembers);
         fg.removeMembers(relationshipMembers);
-        Set members = fg.getMembers();
-        Set expectedSet = new HashSet();
+        Set<String> members = fg.getMembers();
+        Set<String> expectedSet = new HashSet<>();
         expectedSet.addAll(Arrays.asList(basicMembers));
         expectedSet.add("phoneNumbers");
         assertEquals("FetchGroup should contain basic members " +
@@ -286,7 +286,7 @@ public class FetchGroupTest extends JDO_Test {
                 expectedSet, members);
         fg.removeMembers(basicMembers);
         members = fg.getMembers();
-        expectedSet = new HashSet();
+        expectedSet = new HashSet<>();
         expectedSet.add("phoneNumbers");
         assertEquals("FetchGroup should contain address plus phoneNumbers.\n",
                 expectedSet, members);
@@ -298,7 +298,7 @@ public class FetchGroupTest extends JDO_Test {
         for (int i = allMembers.length - 1; i >= 0; --i) {
             String member = allMembers[i];
             fg.removeMember(member);
-            Set members = fg.getMembers();
+            Set<String> members = fg.getMembers();
             assertFalse("FetchGroup should not contain " + member + " but does.\n"
                     + printFetchGroup(fg),
                     members.contains(member));
@@ -521,11 +521,11 @@ public class FetchGroupTest extends JDO_Test {
         }
     }
 
-    private void checkAddCategory(Class cls, String category, String[] expected) {
+    private void checkAddCategory(Class<?> cls, String category, String[] expected) {
         FetchGroup fg = pm.getFetchGroup(cls, "test" + count() + category);
-        Set expectedSet = new HashSet();
+        Set<String> expectedSet = new HashSet<>();
         expectedSet.addAll(Arrays.asList(expected));
-        Set members = fg.getMembers();
+        Set<String> members = fg.getMembers();
         assertTrue("New FetchGroup should have no members; "
                 + printFetchGroup(fg),
                 members.isEmpty());
@@ -545,16 +545,16 @@ public class FetchGroupTest extends JDO_Test {
         sb.append("; name: ");
         sb.append(fg.getName());
         sb.append(fg.isUnmodifiable()?"; unmodifiable":"; modifiable");
-        Set members = fg.getMembers();
-        Iterator it = members.iterator();
+        Set<String> members = fg.getMembers();
+        Iterator<String> it = members.iterator();
         if (it.hasNext()) {
             sb.append("; members: ");
-            String member = (String)it.next();
+            String member = it.next();
             formatMember(sb, fg, member);
         }
         while (it.hasNext()) {
             sb.append(", ");
-            String member = (String)it.next();
+            String member = it.next();
             formatMember(sb, fg, member);
         }
         sb.append(")");
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/AbstractInstanceLifecycleListener.java b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/AbstractInstanceLifecycleListener.java
index 148e6cb6..7192d6cd 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/AbstractInstanceLifecycleListener.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/AbstractInstanceLifecycleListener.java
@@ -23,7 +23,6 @@ import java.util.List;
 import javax.jdo.JDOHelper;
 
 import javax.jdo.listener.InstanceLifecycleEvent;
-import javax.jdo.listener.InstanceLifecycleListener;
 import javax.jdo.listener.AttachLifecycleListener;
 import javax.jdo.listener.ClearLifecycleListener;
 import javax.jdo.listener.CreateLifecycleListener;
@@ -35,11 +34,6 @@ import javax.jdo.listener.StoreLifecycleListener;
 
 import org.apache.jdo.tck.JDO_Test;
 
-import org.apache.jdo.tck.pc.mylib.PCPoint;
-
-import org.apache.jdo.tck.util.BatchTestRunner;
-
-
 /**
  * <B>Title:</B> Abstract test AbstractInstanceLifecycleListener
  * <BR>
@@ -177,7 +171,7 @@ public abstract class AbstractInstanceLifecycleListener extends JDO_Test {
      * are removed from the datastore at the end of the test.
      * @return classes
      */
-    protected abstract Class[] getPersistentClasses();
+    protected abstract Class<?>[] getPersistentClasses();
 
     /** 
      * Register a new InstanceLifecycleListenerImpl with the 
@@ -201,6 +195,7 @@ public abstract class AbstractInstanceLifecycleListener extends JDO_Test {
      * Set up for lifecycle tests:
      * Register the LifecycleListener; add PCPoint to tearDownClasses.
      */
+    @Override
     protected void localSetUp() {
         addListener();
         addTearDownClass(getPersistentClasses());
@@ -210,6 +205,7 @@ public abstract class AbstractInstanceLifecycleListener extends JDO_Test {
      * Clean up after lifecycle tests:
      * Unregister the LifecycleListener.
      */
+    @Override
     protected void localTearDown() {
         removeListener(); // no callbacks for teardown
         super.localTearDown();
@@ -246,7 +242,7 @@ public abstract class AbstractInstanceLifecycleListener extends JDO_Test {
          * are used during collection of events and both names and values
          * are used for reporting results.
          */
-        private static List locations = new ArrayList();
+        private static List<String> locations = new ArrayList<>();
 
         /** These are indexes into the sequence array. Each index
          * represents the position in the sequence array for the
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/AccessOtherInstancesInPrestore.java b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/AccessOtherInstancesInPrestore.java
index 08a283c6..9e41b4a1 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/AccessOtherInstancesInPrestore.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/AccessOtherInstancesInPrestore.java
@@ -69,6 +69,7 @@ public class AccessOtherInstancesInPrestore extends TestParts {
     /**
      * @see org.apache.jdo.tck.JDO_Test#localSetUp()
      */
+    @Override
     protected void localSetUp() {
         addTearDownClass(InstanceCallbackClass.class);
     }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerAttach.java b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerAttach.java
index bb2e2b43..603faaca 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerAttach.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerAttach.java
@@ -21,19 +21,10 @@ import java.util.Date;
 
 import javax.jdo.listener.AttachCallback;
 
-import javax.jdo.JDOHelper;
-
 import javax.jdo.listener.InstanceLifecycleEvent;
-import javax.jdo.listener.InstanceLifecycleListener;
-import javax.jdo.listener.ClearLifecycleListener;
-
-import org.apache.jdo.tck.JDO_Test;
-
-import org.apache.jdo.tck.pc.mylib.PCPoint;
 
 import org.apache.jdo.tck.util.BatchTestRunner;
 
-
 /**
  * <B>Title:</B> Test TestInstanceLifecycleListenerAttach
  * <BR>
@@ -70,11 +61,11 @@ public class InstanceLifecycleListenerAttach
     /**
      * The persistent classes used for this test.
      */
-    private static Class[] persistentClasses = new Class[] {PC.class};
+    private static Class<?>[] persistentClasses = new Class[] {PC.class};
 
     /** Return the persistent classes.
      */
-    protected Class[] getPersistentClasses() {
+    protected Class<?>[] getPersistentClasses() {
         return persistentClasses;
     }
 
@@ -100,13 +91,13 @@ public class InstanceLifecycleListenerAttach
         getPM();
         pm.currentTransaction().begin();
         pm.makePersistent(pc);
-        PC detached = (PC)pm.detachCopy(pc);
+        PC detached = pm.detachCopy(pc);
         detached.listener = listener;
         pm.currentTransaction().commit();
         pm.currentTransaction().begin();
         listener.setExpectedSource(detached);
         // makePersistent should cause the attach listeners to be called
-        PC attached = (PC)pm.makePersistent(detached);
+        PC attached = pm.makePersistent(detached);
         pm.currentTransaction().commit();
 
         // now check the callback and listener were called
@@ -123,6 +114,7 @@ public class InstanceLifecycleListenerAttach
     private static class InstanceLifecycleListenerAttachImpl 
             extends InstanceLifecycleListenerImpl {
 
+        @Override
         public void preAttach(InstanceLifecycleEvent event) {
             notifyEvent(PRE_ATTACH_LISTENER);
             checkEventType(ASSERTION13_FAILED,
@@ -130,6 +122,7 @@ public class InstanceLifecycleListenerAttach
             checkEventSource(ASSERTION13_FAILED, event.getSource());
         }
 
+        @Override
         public void postAttach(InstanceLifecycleEvent event) {
             notifyEvent(POST_ATTACH_LISTENER);
             checkEventType(ASSERTION14_FAILED,
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerClear.java b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerClear.java
index 70468e1c..143debd7 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerClear.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerClear.java
@@ -21,15 +21,7 @@ import java.util.Date;
 
 import javax.jdo.listener.ClearCallback;
 
-import javax.jdo.JDOHelper;
-
 import javax.jdo.listener.InstanceLifecycleEvent;
-import javax.jdo.listener.InstanceLifecycleListener;
-import javax.jdo.listener.ClearLifecycleListener;
-
-import org.apache.jdo.tck.JDO_Test;
-
-import org.apache.jdo.tck.pc.mylib.PCPoint;
 
 import org.apache.jdo.tck.util.BatchTestRunner;
 
@@ -72,11 +64,11 @@ public class InstanceLifecycleListenerClear
     /**
      * The persistent classes used for this test.
      */
-    private static Class[] persistentClasses = new Class[] {PC.class};
+    private static Class<?>[] persistentClasses = new Class[] {PC.class};
 
     /** Return the persistent classes.
      */
-    protected Class[] getPersistentClasses() {
+    protected Class<?>[] getPersistentClasses() {
         return persistentClasses;
     }
 
@@ -122,6 +114,7 @@ public class InstanceLifecycleListenerClear
     private static class InstanceLifecycleListenerClearImpl 
             extends InstanceLifecycleListenerImpl {
 
+        @Override
         public void preClear(InstanceLifecycleEvent event) {
             notifyEvent(PRE_CLEAR_LISTENER);
             checkEventType(ASSERTION5_FAILED, 
@@ -131,6 +124,7 @@ public class InstanceLifecycleListenerClear
                     expectedSource);
         }
 
+        @Override
         public void postClear(InstanceLifecycleEvent event) {
             notifyEvent(POST_CLEAR_LISTENER);
             checkEventType(ASSERTION6_FAILED, 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerCreate.java b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerCreate.java
index 8893aab0..10fd14f2 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerCreate.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerCreate.java
@@ -17,25 +17,12 @@
  
 package org.apache.jdo.tck.api.instancecallbacks;
 
-import javax.jdo.JDOHelper;
-
 import javax.jdo.listener.InstanceLifecycleEvent;
-import javax.jdo.listener.InstanceLifecycleListener;
-import javax.jdo.listener.AttachLifecycleListener;
-import javax.jdo.listener.ClearLifecycleListener;
-import javax.jdo.listener.CreateLifecycleListener;
-import javax.jdo.listener.DeleteLifecycleListener;
-import javax.jdo.listener.DetachLifecycleListener;
-import javax.jdo.listener.LoadLifecycleListener;
-import javax.jdo.listener.StoreLifecycleListener;
-
-import org.apache.jdo.tck.JDO_Test;
 
 import org.apache.jdo.tck.pc.mylib.PCPoint;
 
 import org.apache.jdo.tck.util.BatchTestRunner;
 
-
 /**
  * <B>Title:</B> Test TestInstanceLifecycleListener
  * <BR>
@@ -68,11 +55,11 @@ public class InstanceLifecycleListenerCreate
     /**
      * The persistent classes used for this test.
      */
-    private static Class[] persistentClasses = new Class[] {PCPoint.class};
+    private static Class<?>[] persistentClasses = new Class[] {PCPoint.class};
 
     /** Return the persistent classes.
      */
-    protected Class[] getPersistentClasses() {
+    protected Class<?>[] getPersistentClasses() {
         return persistentClasses;
     }
 
@@ -110,6 +97,7 @@ public class InstanceLifecycleListenerCreate
     private static class InstanceLifecycleListenerCreateImpl 
             extends InstanceLifecycleListenerImpl {
 
+        @Override
         public void postCreate(InstanceLifecycleEvent event) {
             notifyEvent(POST_CREATE_LISTENER);
             checkEventType(ASSERTION1_FAILED,
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerDelete.java b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerDelete.java
index cdd384af..ca1355bc 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerDelete.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerDelete.java
@@ -20,19 +20,11 @@ package org.apache.jdo.tck.api.instancecallbacks;
 import java.util.Date;
 
 import javax.jdo.listener.DeleteCallback;
-import javax.jdo.JDOHelper;
 
 import javax.jdo.listener.InstanceLifecycleEvent;
-import javax.jdo.listener.InstanceLifecycleListener;
-import javax.jdo.listener.DeleteLifecycleListener;
-
-import org.apache.jdo.tck.JDO_Test;
-
-import org.apache.jdo.tck.pc.mylib.PCPoint;
 
 import org.apache.jdo.tck.util.BatchTestRunner;
 
-
 /**
  * <B>Title:</B> Test TestInstanceLifecycleListenerDelete
  * <BR>
@@ -72,11 +64,11 @@ public class InstanceLifecycleListenerDelete
     /**
      * The persistent classes used for this test.
      */
-    private static Class[] persistentClasses = new Class[] {PC.class};
+    private static Class<?>[] persistentClasses = new Class[] {PC.class};
 
     /** Return the persistent classes.
      */
-    protected Class[] getPersistentClasses() {
+    protected Class<?>[] getPersistentClasses() {
         return persistentClasses;
     }
 
@@ -121,6 +113,7 @@ public class InstanceLifecycleListenerDelete
     private static class InstanceLifecycleListenerDeleteImpl 
             extends InstanceLifecycleListenerImpl {
 
+        @Override
         public void preDelete(InstanceLifecycleEvent event) {
             notifyEvent(PRE_DELETE_LISTENER);
             checkEventType(ASSERTION7_FAILED,
@@ -132,6 +125,7 @@ public class InstanceLifecycleListenerDelete
                     expectedSource);
         }
 
+        @Override
         public void postDelete(InstanceLifecycleEvent event) {
             notifyEvent(POST_DELETE_LISTENER);
             checkEventType(ASSERTION8_FAILED,
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerDetach.java b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerDetach.java
index 57704626..e0bee962 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerDetach.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerDetach.java
@@ -21,17 +21,10 @@ import java.util.Date;
 
 import javax.jdo.listener.DetachCallback;
 
-import javax.jdo.JDOHelper;
-
 import javax.jdo.listener.InstanceLifecycleEvent;
-import javax.jdo.listener.InstanceLifecycleListener;
-import javax.jdo.listener.ClearLifecycleListener;
-
-import org.apache.jdo.tck.JDO_Test;
 
 import org.apache.jdo.tck.util.BatchTestRunner;
 
-
 /**
  * <B>Title:</B> Test InstanceLifecycleListenerDetach
  * <BR>
@@ -69,11 +62,11 @@ public class InstanceLifecycleListenerDetach
     /**
      * The persistent classes used for this test.
      */
-    private static Class[] persistentClasses = new Class[] {PC.class};
+    private static Class<?>[] persistentClasses = new Class[] {PC.class};
 
     /** Return the persistent classes.
      */
-    protected Class[] getPersistentClasses() {
+    protected Class<?>[] getPersistentClasses() {
         return persistentClasses;
     }
 
@@ -102,7 +95,7 @@ public class InstanceLifecycleListenerDetach
         pm.currentTransaction().begin();
         pm.makePersistent(pc);
         // detachCopy should cause the detach listeners to be called
-        PC detached = (PC)pm.detachCopy(pc);
+        PC detached = pm.detachCopy(pc);
         pm.currentTransaction().commit();
 
         // now check the callback and listener were called
@@ -119,6 +112,7 @@ public class InstanceLifecycleListenerDetach
     private static class InstanceLifecycleListenerDetachImpl 
             extends InstanceLifecycleListenerImpl {
 
+        @Override
         public void preDetach(InstanceLifecycleEvent event) {
             notifyEvent(PRE_DETACH_LISTENER);
             checkEventType(ASSERTION11_FAILED,
@@ -128,6 +122,7 @@ public class InstanceLifecycleListenerDetach
                     event.getSource());
         }
 
+        @Override
         public void postDetach(InstanceLifecycleEvent event) {
             notifyEvent(POST_DETACH_LISTENER);
             checkEventType(ASSERTION12_FAILED,
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerDirty.java b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerDirty.java
index b22fc0f3..6ea4718f 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerDirty.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerDirty.java
@@ -17,15 +17,7 @@
  
 package org.apache.jdo.tck.api.instancecallbacks;
 
-import java.util.Date;
-
-import javax.jdo.JDOHelper;
-
 import javax.jdo.listener.InstanceLifecycleEvent;
-import javax.jdo.listener.InstanceLifecycleListener;
-import javax.jdo.listener.ClearLifecycleListener;
-
-import org.apache.jdo.tck.JDO_Test;
 
 import org.apache.jdo.tck.pc.mylib.PCPoint;
 
@@ -71,11 +63,11 @@ public class InstanceLifecycleListenerDirty
     /**
      * The persistent classes used for this test.
      */
-    private static Class[] persistentClasses = new Class[] {PCPoint.class};
+    private static Class<?>[] persistentClasses = new Class[] {PCPoint.class};
 
     /** Return the persistent classes.
      */
-    protected Class[] getPersistentClasses() {
+    protected Class<?>[] getPersistentClasses() {
         return persistentClasses;
     }
 
@@ -121,6 +113,7 @@ public class InstanceLifecycleListenerDirty
     private static class InstanceLifecycleListenerDirtyImpl 
             extends InstanceLifecycleListenerImpl {
 
+        @Override
         public void preDirty(InstanceLifecycleEvent event) {
             notifyEvent(PRE_DIRTY_LISTENER);
             checkEventType(ASSERTION9_FAILED,
@@ -132,6 +125,7 @@ public class InstanceLifecycleListenerDirty
                     expectedSource);
         }
 
+        @Override
         public void postDirty(InstanceLifecycleEvent event) {
             notifyEvent(POST_DIRTY_LISTENER);
             checkEventType(ASSERTION10_FAILED,
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerLoad.java b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerLoad.java
index 4692dc5d..6d253f4b 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerLoad.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerLoad.java
@@ -21,13 +21,7 @@ import java.util.Date;
 
 import javax.jdo.listener.LoadCallback;
 
-import javax.jdo.JDOHelper;
-
 import javax.jdo.listener.InstanceLifecycleEvent;
-import javax.jdo.listener.InstanceLifecycleListener;
-import javax.jdo.listener.ClearLifecycleListener;
-
-import org.apache.jdo.tck.JDO_Test;
 
 import org.apache.jdo.tck.util.BatchTestRunner;
 
@@ -64,11 +58,11 @@ public class InstanceLifecycleListenerLoad
     /**
      * The persistent classes used for this test.
      */
-    private static Class[] persistentClasses = new Class[] {PC.class};
+    private static Class<?>[] persistentClasses = new Class[] {PC.class};
 
     /** Return the persistent classes.
      */
-    protected Class[] getPersistentClasses() {
+    protected Class<?>[] getPersistentClasses() {
         return persistentClasses;
     }
 
@@ -115,6 +109,7 @@ public class InstanceLifecycleListenerLoad
     private static class InstanceLifecycleListenerLoadImpl 
             extends InstanceLifecycleListenerImpl {
 
+        @Override
         public void postLoad(InstanceLifecycleEvent event) {
             notifyEvent(POST_LOAD_LISTENER);
             checkEventType(ASSERTION2_FAILED,
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerStore.java b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerStore.java
index d1592464..d31758bd 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerStore.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/InstanceLifecycleListenerStore.java
@@ -21,13 +21,8 @@ import java.util.Date;
 
 import javax.jdo.listener.StoreCallback;
 
-import javax.jdo.JDOHelper;
 
 import javax.jdo.listener.InstanceLifecycleEvent;
-import javax.jdo.listener.InstanceLifecycleListener;
-import javax.jdo.listener.ClearLifecycleListener;
-
-import org.apache.jdo.tck.JDO_Test;
 
 import org.apache.jdo.tck.util.BatchTestRunner;
 
@@ -71,11 +66,11 @@ public class InstanceLifecycleListenerStore
     /**
      * The persistent classes used for this test.
      */
-    private static Class[] persistentClasses = new Class[] {PC.class};
+    private static Class<?>[] persistentClasses = new Class[] {PC.class};
 
     /** Return the persistent classes.
      */
-    protected Class[] getPersistentClasses() {
+    protected Class<?>[] getPersistentClasses() {
         return persistentClasses;
     }
 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/ModificationOfNontransactionalNonpersistentFields.java b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/ModificationOfNontransactionalNonpersistentFields.java
index 7aec74af..f9c3c8a6 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/ModificationOfNontransactionalNonpersistentFields.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/ModificationOfNontransactionalNonpersistentFields.java
@@ -143,8 +143,8 @@ public class ModificationOfNontransactionalNonpersistentFields extends JDO_Test
                 logger.debug("obj1.children contains " + obj1.children.size() + " members");
                 if(obj1.children.size() != 0) {
                     logger.debug("Those members are:");
-                    for(Iterator i = obj1.children.iterator(); i.hasNext();) {
-                        logger.debug((String)i.next());
+                    for(Iterator<String> i = obj1.children.iterator(); i.hasNext();) {
+                        logger.debug(i.next());
                     }
                 }
             }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/NoAccessToFieldsAfterPredelete.java b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/NoAccessToFieldsAfterPredelete.java
index 9d095d80..1a00ff78 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/NoAccessToFieldsAfterPredelete.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/instancecallbacks/NoAccessToFieldsAfterPredelete.java
@@ -18,7 +18,7 @@
 package org.apache.jdo.tck.api.instancecallbacks;
 
 import java.util.Date;
-import java.util.HashSet;
+import java.util.Set;
 
 import javax.jdo.JDODataStoreException;
 import javax.jdo.JDOUserException;
@@ -153,7 +153,7 @@ public class NoAccessToFieldsAfterPredelete extends JDO_Test {
         }
         
         try {
-            HashSet x6 = o.children;
+            Set<InstanceCallbackClass> x6 = o.children;
             // http://issues.apache.org/jira/browse/JDO-413
             // fail(ASSERTION_FAILED, title + "Accessed persistent HashSet field Children--should have gotten JDOUserException");
         } catch (JDOUserException e) {
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/jdohelper/GetObjectIds.java b/tck/src/main/java/org/apache/jdo/tck/api/jdohelper/GetObjectIds.java
index f971fd68..1366c09e 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/jdohelper/GetObjectIds.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/jdohelper/GetObjectIds.java
@@ -184,11 +184,11 @@ public class GetObjectIds extends JDO_Test {
     /** */
     public void testGetObjectIdsCollection() {
         StringBuffer messages = new StringBuffer();
-        List paramList = Arrays.asList(objs);
-        List expectedList = Arrays.asList(oids);
+        List<Object> paramList = Arrays.asList(objs);
+        List<Object> expectedList = Arrays.asList(oids);
         Collection<Object> actualCollection = JDOHelper.getObjectIds(paramList);
-        Iterator expectedIterator = expectedList.iterator();
-        Iterator actualIterator = actualCollection.iterator();
+        Iterator<Object> expectedIterator = expectedList.iterator();
+        Iterator<Object> actualIterator = actualCollection.iterator();
         for (int i = 0; i < objs.length; ++i) {
             Object expected = expectedIterator.next();
             Object actual = actualIterator.next();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/jdohelper/IsDetached.java b/tck/src/main/java/org/apache/jdo/tck/api/jdohelper/IsDetached.java
index 840fdcd7..95fa810c 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/jdohelper/IsDetached.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/jdohelper/IsDetached.java
@@ -77,7 +77,7 @@ public class IsDetached extends DetachTest {
         txn.begin();
         {
             c = (Cart) pm.getObjectById(oid);
-            detached = (Cart) pm.detachCopy(c);
+            detached = pm.detachCopy(c);
             assertTrue(JDOHelper.isDetached(detached));
         }
         txn.commit();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencecapable/AbstractPersistenceCapableTest.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencecapable/AbstractPersistenceCapableTest.java
index f83c8845..32a93db8 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencecapable/AbstractPersistenceCapableTest.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencecapable/AbstractPersistenceCapableTest.java
@@ -45,7 +45,8 @@ abstract class AbstractPersistenceCapableTest extends JDO_Test {
         pm.currentTransaction().commit();
         return result;
     }
-    
+
+    @Override
     protected boolean isTestToBePerformed() {
         String testName = getClass().getName();
         if (!isBinaryCompatibilitySupported()) {
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/ConcurrentPersistenceManagersSameClasses.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/ConcurrentPersistenceManagersSameClasses.java
index fd871348..feea1c3a 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/ConcurrentPersistenceManagersSameClasses.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/ConcurrentPersistenceManagersSameClasses.java
@@ -18,8 +18,8 @@
 
 package org.apache.jdo.tck.api.persistencemanager;
 
-import java.util.Collection;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Properties;
 
 import javax.jdo.JDOHelper;
@@ -147,12 +147,13 @@ public class ConcurrentPersistenceManagersSameClasses extends PersistenceManager
 
     /** */
     private PCPoint findPoint (PersistenceManager pm, int x, int y) {
-        Query q = pm.newQuery (PCPoint.class);
+        Query<PCPoint> q = pm.newQuery (PCPoint.class);
         q.declareParameters ("int px, int py");
         q.setFilter ("x == px & y == py");
-        Collection results = (Collection)q.execute (Integer.valueOf(x), Integer.valueOf(y));
-        Iterator it = results.iterator();
-        PCPoint ret = (PCPoint)it.next();
+        q.setParameters(Integer.valueOf(x), Integer.valueOf(y));
+        List<PCPoint> results = q.executeList();
+        Iterator<PCPoint> it = results.iterator();
+        PCPoint ret = it.next();
         return ret;
     }
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DataStoreCacheTest.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DataStoreCacheTest.java
index 70c76680..ef69e53a 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DataStoreCacheTest.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DataStoreCacheTest.java
@@ -48,7 +48,7 @@ DataStoreCache interface is used.
 public class DataStoreCacheTest extends PersistenceManagerTest {
 
     Object pointoid;
-    Collection pointoidCollection;
+    Collection<Object> pointoidCollection;
     Object[] pointoidArray;
     
     /** */
@@ -68,13 +68,14 @@ public class DataStoreCacheTest extends PersistenceManagerTest {
      * In setup, create a persistent instance and get its oid.
      * The oid is a valid parameter to the cache APIs. 
      */
+    @Override
     protected void localSetUp() {
         addTearDownClass(PCPoint.class);
         PCPoint point = new PCPoint(50, 100);
         getPM().currentTransaction().begin();
         pm.makePersistent(point);
         pointoid = pm.getObjectId(point);
-        pointoidCollection = new HashSet();
+        pointoidCollection = new HashSet<>();
         pointoidCollection.add(pointoid);
         pointoidArray = new Object[] {pointoid};
         pm.currentTransaction().commit();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DataStoreConnection.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DataStoreConnection.java
index 778af781..1af772ac 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DataStoreConnection.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DataStoreConnection.java
@@ -70,6 +70,7 @@ public class DataStoreConnection extends PersistenceManagerTest {
     }
     
     /** */
+    @Override
     protected void localSetUp() {
         addTearDownClass(PCPoint.class);
         PCPoint point = new PCPoint(50, 100);
@@ -113,7 +114,7 @@ public class DataStoreConnection extends PersistenceManagerTest {
             };
             PreparedStatement ps = conn.prepareStatement(sql);
             ResultSet rs = ps.executeQuery();
-            Collection actuals = new HashSet();
+            Collection<PCPoint> actuals = new HashSet<>();
             while (rs.next()) {
                 PCPoint p = new PCPoint(rs.getInt(1), rs.getInt(2));
                 actuals.add(p);
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DataStoreConnectionThrows.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DataStoreConnectionThrows.java
index f5b453f9..ee2dbf9a 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DataStoreConnectionThrows.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DataStoreConnectionThrows.java
@@ -18,13 +18,10 @@
 package org.apache.jdo.tck.api.persistencemanager;
 
 import java.sql.Connection;
-import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
+import java.util.Collections;
 
 import javax.jdo.datastore.JDOConnection;
 
@@ -187,7 +184,7 @@ public class DataStoreConnectionThrows extends PersistenceManagerTest {
                 new Call() {
                     public String getName() {return "setTypeMap";}
                     public void execute(Connection conn) 
-                        throws SQLException {conn.setTypeMap(new HashMap());}
+                        throws SQLException {conn.setTypeMap(Collections.emptyMap());}
                 }
             );
      }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DatastoreTimeout.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DatastoreTimeout.java
index 8c7f5937..44dbdd0e 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DatastoreTimeout.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DatastoreTimeout.java
@@ -251,10 +251,10 @@ public class DatastoreTimeout extends JDO_Test {
         getPM();
         try {
             pm.currentTransaction().begin();
-            Query q = pm.newQuery(PCPoint.class);
+            Query<PCPoint> q = pm.newQuery(PCPoint.class);
             q.setDatastoreReadTimeoutMillis(timeout);
             @SuppressWarnings("unused")
-            List<?> result = (List<?>)q.execute();
+            List<PCPoint> result = q.executeList();
             pm.currentTransaction().commit();
             if (!isDatastoreTimeoutSupported()) {
                 fail(ASSERTION_FAILED, "Query.setDatastoreReadTimeoutMillis should throw a " +
@@ -423,7 +423,7 @@ public class DatastoreTimeout extends JDO_Test {
         getPM();
         try {
             pm.currentTransaction().begin();
-            Query q = pm.newQuery(PCPoint.class);
+            Query<PCPoint> q = pm.newQuery(PCPoint.class);
             q.setDatastoreWriteTimeoutMillis(timeout);
             q.deletePersistentAll();
             pm.currentTransaction().commit();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistent.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistent.java
index 560476ae..f7502714 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistent.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistent.java
@@ -129,7 +129,7 @@ public class DeletePersistent extends PersistenceManagerTest {
         try {
             tx.begin();
 
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p2);
             col1.add(p3);
 
@@ -149,7 +149,7 @@ public class DeletePersistent extends PersistenceManagerTest {
         try {
             tx.begin();
 
-            Collection col1 = new HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p4);
             col1.add(p5);
 
@@ -201,7 +201,7 @@ public class DeletePersistent extends PersistenceManagerTest {
             pm.makePersistent(np2);
             tx.commit();
 
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(np1);
             col1.add(np2);
 
@@ -233,7 +233,7 @@ public class DeletePersistent extends PersistenceManagerTest {
             pm.makePersistent(np2);
             tx.commit();
             
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(np1);
             col1.add(np2);
             Object[] obj1=col1.toArray();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistentAllFails.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistentAllFails.java
index 7dda2060..1554ec08 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistentAllFails.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistentAllFails.java
@@ -19,6 +19,7 @@
 package org.apache.jdo.tck.api.persistencemanager;
 
 import java.util.Collection;
+import java.util.HashSet;
 
 import javax.jdo.JDOUserException;
 import javax.jdo.PersistenceManager;
@@ -102,7 +103,7 @@ public class DeletePersistentAllFails extends PersistenceManagerTest {
             
             Point np3 =  new Point (5,5);
             
-            Collection col1 = new java.util.HashSet();
+            Collection<Object> col1 = new HashSet<>();
             col1.add(p1);
             col1.add(p2);
             col1.add(np3);
@@ -131,7 +132,7 @@ public class DeletePersistentAllFails extends PersistenceManagerTest {
 
             Point np3 =  new Point (5,5);
 
-            Collection col1 = new java.util.HashSet();
+            Collection<Object> col1 = new HashSet<>();
             col1.add(p3);
             col1.add(p4);
             col1.add(np3);
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistentFailsIfInstanceIsTransient.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistentFailsIfInstanceIsTransient.java
index 52bf9e59..7cf0c632 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistentFailsIfInstanceIsTransient.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistentFailsIfInstanceIsTransient.java
@@ -19,6 +19,7 @@
 package org.apache.jdo.tck.api.persistencemanager;
 
 import java.util.Collection;
+import java.util.HashSet;
 
 import javax.jdo.JDOUserException;
 import javax.jdo.Transaction;
@@ -96,7 +97,7 @@ public class DeletePersistentFailsIfInstanceIsTransient extends PersistenceManag
             PCPoint p1 = new PCPoint (3,3);
             PCPoint p2 = new PCPoint (4,4);
             
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p1);
             col1.add(p2);
             
@@ -125,7 +126,7 @@ public class DeletePersistentFailsIfInstanceIsTransient extends PersistenceManag
             PCPoint p1 = new PCPoint (3,3);
             PCPoint p2 = new PCPoint (4,4);
             
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p1);
             col1.add(p2);
 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistentFailsIfInstanceManagedByAnotherPersistenceManager.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistentFailsIfInstanceManagedByAnotherPersistenceManager.java
index 92441600..4f1429f4 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistentFailsIfInstanceManagedByAnotherPersistenceManager.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistentFailsIfInstanceManagedByAnotherPersistenceManager.java
@@ -132,7 +132,7 @@ public class DeletePersistentFailsIfInstanceManagedByAnotherPersistenceManager e
         try {
             tx.begin();
 
-            Collection col1 = new HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p2);
             col1.add(p3);
 
@@ -158,7 +158,7 @@ public class DeletePersistentFailsIfInstanceManagedByAnotherPersistenceManager e
         try {
             tx.begin();
 
-            Collection col1 = new HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p4);
             col1.add(p5);
             Object[] obj1= col1.toArray();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistentHasNoEffectOnDeletedInstances.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistentHasNoEffectOnDeletedInstances.java
index 1f55a16e..af4db798 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistentHasNoEffectOnDeletedInstances.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/DeletePersistentHasNoEffectOnDeletedInstances.java
@@ -18,6 +18,7 @@
 package org.apache.jdo.tck.api.persistencemanager;
 
 import java.util.Collection;
+import java.util.HashSet;
 
 import javax.jdo.PersistenceManager;
 import javax.jdo.Transaction;
@@ -118,7 +119,7 @@ public class DeletePersistentHasNoEffectOnDeletedInstances extends PersistenceMa
         try {
             tx = pm.currentTransaction();
 
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new java.util.HashSet<>();
             col1.add(p2);
             col1.add(p3);
 
@@ -140,7 +141,7 @@ public class DeletePersistentHasNoEffectOnDeletedInstances extends PersistenceMa
     private void runTestDeletePersistentAll2(PersistenceManager pm) {
         Transaction tx = pm.currentTransaction();
         try {
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p4);
             col1.add(p5);
 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/GetProperties.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/GetProperties.java
index 1d35a6dd..334fd0bc 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/GetProperties.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/GetProperties.java
@@ -77,10 +77,12 @@ public class GetProperties extends JDO_Test implements Constants {
         BatchTestRunner.run(GetProperties.class);
     }
 
+    @Override
     public void localSetUp() {
         getPM();
     }
 
+    @Override
     public void localTearDown() {
         // the PM is left in an unknown state due to setting properties so it must be cleaned up
         cleanupPM();
@@ -88,8 +90,8 @@ public class GetProperties extends JDO_Test implements Constants {
 
     private Collection<String> supportedOptions;
     private Set<String> supportedProperties;
-    private static Set<TestProperty> testRequiredProperties = new HashSet<TestProperty>();
-    private static Map<String, Set<TestProperty>> testOptionalProperties = new HashMap<String, Set<TestProperty>>();
+    private static Set<TestProperty> testRequiredProperties = new HashSet<>();
+    private static Map<String, Set<TestProperty>> testOptionalProperties = new HashMap<>();
 
     private interface TestProperty {
         void test(PersistenceManager pm, Set<String> supportedProperties);
@@ -199,13 +201,13 @@ public class GetProperties extends JDO_Test implements Constants {
     private TestProperty testLowerCaseMultithreaded = 
             new AbstractAPITestProperty(PROPERTY_MULTITHREADED, true, false) {
         public Object get(PersistenceManager pm) {return pm.getMultithreaded();}
-        public void set(PersistenceManager pm, Object value) {pm.setProperty("javax.jdo.option.multithreaded", (Boolean) value);}
+        public void set(PersistenceManager pm, Object value) {pm.setProperty("javax.jdo.option.multithreaded", value);}
     };
 
     private TestProperty testUpperCaseMultithreaded = 
         new AbstractAPITestProperty(PROPERTY_MULTITHREADED, true, false) {
     public Object get(PersistenceManager pm) {return pm.getMultithreaded();}
-    public void set(PersistenceManager pm, Object value) {pm.setProperty("javax.jdo.option.MULTITHREADED", (Boolean) value);}
+    public void set(PersistenceManager pm, Object value) {pm.setProperty("javax.jdo.option.MULTITHREADED", value);}
 };
 
     private TestProperty testDetachAllOnCommit =
@@ -255,7 +257,7 @@ public class GetProperties extends JDO_Test implements Constants {
     };
 
     private Set<TestProperty> setOf(TestProperty... testPropertys) {
-        Set<TestProperty> result = new HashSet<TestProperty>();
+        Set<TestProperty> result = new HashSet<>();
         for (TestProperty testProperty: testPropertys) {
          result.add(testProperty);
         }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/NewInstance.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/NewInstance.java
index 6bb91b44..1cc8e340 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/NewInstance.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/NewInstance.java
@@ -18,8 +18,6 @@
 
 package org.apache.jdo.tck.api.persistencemanager;
 
-import javax.jdo.PersistenceManager;
-import javax.jdo.Transaction;
 import org.apache.jdo.tck.pc.newInstance.AAddress;
 import org.apache.jdo.tck.pc.newInstance.Address;
 import org.apache.jdo.tck.pc.newInstance.IAddress;
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/ObjectIdUniqueAmongInstances.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/ObjectIdUniqueAmongInstances.java
index 1a7fb445..65e628de 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/ObjectIdUniqueAmongInstances.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/ObjectIdUniqueAmongInstances.java
@@ -20,6 +20,7 @@ package org.apache.jdo.tck.api.persistencemanager;
 
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.Set;
 
 import javax.jdo.Transaction;
 
@@ -60,8 +61,8 @@ public class ObjectIdUniqueAmongInstances extends PersistenceManagerTest {
     public void test() {
         final int count = 1000;
     
-        HashSet instances = new HashSet(count);
-        HashSet oids = new HashSet(count);
+        Set<PCPoint> instances = new HashSet<>(count);
+        Set<Object> oids = new HashSet<>(count);
 
         pm = getPM();
         Transaction tx = pm.currentTransaction();
@@ -79,7 +80,7 @@ public class ObjectIdUniqueAmongInstances extends PersistenceManagerTest {
             // For all new persistent instances, get the object ids and
             // save them in another hashset.  There should be the same
             // number if the ids  are all unique.
-            for (Iterator it = instances.iterator(); it.hasNext();) {
+            for (Iterator<PCPoint> it = instances.iterator(); it.hasNext();) {
                 oids.add(pm.getObjectId(it.next()));
             }
     
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/OneInstanceOfObjectPerPersistenceManager.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/OneInstanceOfObjectPerPersistenceManager.java
index 375d4f86..7ea2b13a 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/OneInstanceOfObjectPerPersistenceManager.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/OneInstanceOfObjectPerPersistenceManager.java
@@ -18,8 +18,8 @@
 
 package org.apache.jdo.tck.api.persistencemanager;
 
-import java.util.Collection;
 import java.util.Iterator;
+import java.util.List;
 
 import javax.jdo.Query;
 import javax.jdo.Transaction;
@@ -130,13 +130,13 @@ public class OneInstanceOfObjectPerPersistenceManager extends
 
     /** */
     private PCPoint findPoint (int x, int y) {
-        Query q = getPM().newQuery (PCPoint.class);
+        Query<PCPoint> q = getPM().newQuery (PCPoint.class);
         q.declareParameters ("int px, int py");
         q.setFilter ("x == px & y == py");
-        Collection results = (Collection)q.execute (Integer.valueOf(x),
-		        Integer.valueOf(y));
-        Iterator it = results.iterator();
-        PCPoint ret = (PCPoint)it.next();
+        q.setParameters(Integer.valueOf(x), Integer.valueOf(y));
+        List<PCPoint> results = q.executeList();
+        Iterator<PCPoint> it = results.iterator();
+        PCPoint ret = it.next();
         return ret;
     }
     
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/OptimisticFailure.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/OptimisticFailure.java
index e547faa3..1fc13dd7 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/OptimisticFailure.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/OptimisticFailure.java
@@ -155,7 +155,7 @@ public class OptimisticFailure extends PersistenceManagerTest {
            p3tx2.setX(202);
            pm2.deletePersistent(p4tx2);
            p5tx2.setX(502); // this change must not be committed
-           Set expectedFailedObjects = new HashSet();
+           Set<VersionedPCPoint> expectedFailedObjects = new HashSet<>();
            expectedFailedObjects.add(p1tx2);
            expectedFailedObjects.add(p2tx2);
            expectedFailedObjects.add(p3tx2);
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/ThreadSafe.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/ThreadSafe.java
index 004fd4a0..6d86ef2f 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/ThreadSafe.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/ThreadSafe.java
@@ -23,7 +23,6 @@ import java.util.Set;
 
 import javax.jdo.JDOUserException;
 import javax.jdo.PersistenceManager;
-import javax.jdo.PersistenceManagerFactory;
 import javax.jdo.Transaction;
 
 import org.apache.jdo.tck.pc.mylib.PCPoint;
@@ -133,13 +132,13 @@ public class ThreadSafe extends PersistenceManagerTest {
      */
     protected synchronized void checkResults(String header, int toSucceed) {
         // check unhandled exceptions
-        final Set uncaught = group.getAllUncaughtExceptions();
+        final Set<Map.Entry<Thread, Throwable>> uncaught = group.getAllUncaughtExceptions();
         if ((uncaught != null) && !uncaught.isEmpty()) {
             StringBuffer report = new StringBuffer("Uncaught exceptions:\n");
-            for (Iterator i = uncaught.iterator(); i.hasNext();) {
-                Map.Entry next = (Map.Entry)i.next();
-                Thread thread = (Thread)next.getKey();
-                Throwable problem = (Throwable)next.getValue();
+            for (Iterator<Map.Entry<Thread, Throwable>> i = uncaught.iterator(); i.hasNext();) {
+                Map.Entry<Thread, Throwable> next = i.next();
+                Thread thread = next.getKey();
+                Throwable problem = next.getValue();
                 report.append(header + ": Uncaught exception " + problem
                               + " in thread " + thread + "\n");
             }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/TransientTransactionalInstanceRetainsValuesAtCommit.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/TransientTransactionalInstanceRetainsValuesAtCommit.java
index c0e57ec2..065a046f 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/TransientTransactionalInstanceRetainsValuesAtCommit.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/TransientTransactionalInstanceRetainsValuesAtCommit.java
@@ -59,8 +59,8 @@ public class TransientTransactionalInstanceRetainsValuesAtCommit extends Persist
     private PCPoint p4 = null;
     private PCPoint p5 = null;
 
-    private Collection col1 = new HashSet();
-    private Collection col2 = new HashSet();
+    private Collection<PCPoint> col1 = new HashSet<>();
+    private Collection<PCPoint> col2 = new HashSet<>();
 
 
     /** */
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/CallingEvictAllWithCollectionContainingNulls.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/CallingEvictAllWithCollectionContainingNulls.java
index 7b09ca49..2ff6d50c 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/CallingEvictAllWithCollectionContainingNulls.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/CallingEvictAllWithCollectionContainingNulls.java
@@ -19,6 +19,7 @@
 package org.apache.jdo.tck.api.persistencemanager.cache;
 
 import java.util.Collection;
+import java.util.HashSet;
 
 import javax.jdo.PersistenceManager;
 import javax.jdo.Transaction;
@@ -104,7 +105,7 @@ public class CallingEvictAllWithCollectionContainingNulls extends PersistenceMan
             tx.begin();
             
             PCPoint p5 = null;
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add (p1);
             col1.add (p5);
             col1.add (p2);
@@ -125,7 +126,7 @@ public class CallingEvictAllWithCollectionContainingNulls extends PersistenceMan
             tx.begin();
             
             PCPoint p5 = null;
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add (p3);
             col1.add (p4);
             col1.add (p5);
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/CallingRefreshAllWithCollectionContainingNulls.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/CallingRefreshAllWithCollectionContainingNulls.java
index 7b6bbebd..170e6479 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/CallingRefreshAllWithCollectionContainingNulls.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/CallingRefreshAllWithCollectionContainingNulls.java
@@ -19,6 +19,7 @@
 package org.apache.jdo.tck.api.persistencemanager.cache;
 
 import java.util.Collection;
+import java.util.HashSet;
 
 import javax.jdo.PersistenceManager;
 import javax.jdo.Transaction;
@@ -104,7 +105,7 @@ public class CallingRefreshAllWithCollectionContainingNulls extends PersistenceM
         	tx.begin();
 
         	PCPoint p5 = null;
-        	Collection col1 = new java.util.HashSet();
+        	Collection<PCPoint> col1 = new HashSet<>();
         	col1.add (p1);
         	col1.add (p5);
         	col1.add (p2);
@@ -127,7 +128,7 @@ public class CallingRefreshAllWithCollectionContainingNulls extends PersistenceM
         	tx.begin();
 
         	PCPoint p5 = null;
-        	Collection col1 = new java.util.HashSet();
+        	Collection<PCPoint> col1 = new HashSet<>();
         	col1.add (p3);
         	col1.add (p4);
         	col1.add (p5);
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/EvictingCollectionOfInstancesSideEffects.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/EvictingCollectionOfInstancesSideEffects.java
index 79c0414e..7cff9440 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/EvictingCollectionOfInstancesSideEffects.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/EvictingCollectionOfInstancesSideEffects.java
@@ -19,6 +19,7 @@
 package org.apache.jdo.tck.api.persistencemanager.cache;
 
 import java.util.Collection;
+import java.util.HashSet;
 
 import javax.jdo.PersistenceManager;
 import javax.jdo.Transaction;
@@ -128,7 +129,7 @@ public class EvictingCollectionOfInstancesSideEffects extends PersistenceManager
         try {
             tx.begin();
 
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint2> col1 = new HashSet<>();
             col1.add(pnt1);
             col1.add(p1);
 
@@ -174,7 +175,7 @@ public class EvictingCollectionOfInstancesSideEffects extends PersistenceManager
         try {
             tx.begin();
 
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint2> col1 = new HashSet<>();
             col1.add(pnt2);
             col1.add(p2);
 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/PassingNullToEvictAllThrowsException.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/PassingNullToEvictAllThrowsException.java
index f599c39f..b903b133 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/PassingNullToEvictAllThrowsException.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/PassingNullToEvictAllThrowsException.java
@@ -73,7 +73,7 @@ public class PassingNullToEvictAllThrowsException extends PersistenceManagerTest
         if (debug) logger.debug ("**  in runTestEvictAll1() ");
         try {
             tx.begin();
-            Collection col1 = null;
+            Collection<Object> col1 = null;
             try {
                 pm.evictAll(col1);
                 fail(ASSERTION_FAILED,
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/PassingNullToRefreshAllThrowsException.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/PassingNullToRefreshAllThrowsException.java
index 43564369..e6d252da 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/PassingNullToRefreshAllThrowsException.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/PassingNullToRefreshAllThrowsException.java
@@ -75,7 +75,7 @@ public class PassingNullToRefreshAllThrowsException
         if (debug) logger.debug("**  in runTestRefreshAll1() ");
         try {
             tx.begin();
-            Collection col1 = null;
+            Collection<Object> col1 = null;
             try {
                 pm.refreshAll(col1);
                 fail(ASSERTION_FAILED,
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/RefreshAllNoParameterSideEffects.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/RefreshAllNoParameterSideEffects.java
index 6f5eb907..6c391bc4 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/RefreshAllNoParameterSideEffects.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/RefreshAllNoParameterSideEffects.java
@@ -60,6 +60,7 @@ public class RefreshAllNoParameterSideEffects extends PersistenceManagerTest {
     }
 
     /** */
+    @Override
     public void localSetUp () {
         addTearDownClass(VersionedPCPoint.class);
         pm = getPM();
@@ -67,7 +68,7 @@ public class RefreshAllNoParameterSideEffects extends PersistenceManagerTest {
         tx.begin();
         VersionedPCPoint pnt = new VersionedPCPoint (0,0);
         pm.makePersistent(pnt);
-        oid = pm.getObjectId((Object)pnt);
+        oid = pm.getObjectId(pnt);
         tx.commit();
     }
 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/RefreshAllSideEffects.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/RefreshAllSideEffects.java
index a669efe5..e513862c 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/RefreshAllSideEffects.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/RefreshAllSideEffects.java
@@ -19,6 +19,7 @@ package org.apache.jdo.tck.api.persistencemanager.cache;
 
 import java.util.Collection;
 import java.util.ArrayList;
+import java.util.List;
 
 import javax.jdo.PersistenceManager;
 import javax.jdo.Transaction;
@@ -48,12 +49,12 @@ public class RefreshAllSideEffects extends PersistenceManagerTest {
     private static final String ASSERTION_FAILED = 
         "Assertion A12.5.1-5D (RefreshAllSideEffects) failed: ";
     
-    ArrayList oids = new ArrayList();
+    List<Object> oids = new ArrayList<>();
 
     PersistenceManager pm1;
     PersistenceManager pm2;
     PersistenceManager pmVerify;
-    Collection coll = new ArrayList(); // Collection of persistent instances
+    List<VersionedPCPoint> coll = new ArrayList<>(); // Collection of persistent instances
     boolean useCollection = true;
 
     /**
@@ -66,6 +67,7 @@ public class RefreshAllSideEffects extends PersistenceManagerTest {
     }
 
     /** */
+    @Override
     public void localSetUp () {
         addTearDownClass(VersionedPCPoint.class);
         pm = getPM();
@@ -77,8 +79,8 @@ public class RefreshAllSideEffects extends PersistenceManagerTest {
         coll.add(pnt2);
         pm.makePersistentAll(coll);
 
-        oids.add(0, pm.getObjectId((Object)pnt1));
-        oids.add(1, pm.getObjectId((Object)pnt2));
+        oids.add(0, pm.getObjectId(pnt1));
+        oids.add(1, pm.getObjectId(pnt2));
         tx.commit();
     }
 
@@ -132,12 +134,12 @@ public class RefreshAllSideEffects extends PersistenceManagerTest {
         Transaction tx1 = pm1.currentTransaction();
         tx1.setOptimistic(true);
         tx1.begin();
-        Collection points1 = pm1.getObjectsById(oids, true);
+        Collection<VersionedPCPoint> points1 = pm1.getObjectsById(oids, true);
         ((VersionedPCPoint)points1.toArray()[0]).setX(11);  // make transactional
 
         Transaction tx2 = pm2.currentTransaction();
         tx2.begin();
-        Collection points2 = pm2.getObjectsById(oids);
+        Collection<VersionedPCPoint> points2 = pm2.getObjectsById(oids);
         ((VersionedPCPoint)points2.toArray()[0]).setX(22);
         ((VersionedPCPoint)points2.toArray()[1]).setX(22);
         ((VersionedPCPoint)points2.toArray()[0]).setY(Integer.valueOf("22"));
@@ -175,7 +177,7 @@ public class RefreshAllSideEffects extends PersistenceManagerTest {
             
         Transaction txVerify = pmVerify.currentTransaction();
         txVerify.begin();
-        Collection pointsVerify = 
+        Collection<VersionedPCPoint> pointsVerify =
                 pmVerify.getObjectsById(oids, true);
         if (((VersionedPCPoint)pointsVerify.toArray()[0]).getX()
                 != pntExpected.getX() 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/Retrieve.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/Retrieve.java
index 2d705e52..d5b98d7d 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/Retrieve.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/cache/Retrieve.java
@@ -132,7 +132,7 @@ public class Retrieve extends PersistenceManagerTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            Collection coll = new ArrayList();
+            Collection<Object> coll = new ArrayList<>();
             coll.add(p1);
             coll.add(p3);
             coll.add(rect);
@@ -157,7 +157,7 @@ public class Retrieve extends PersistenceManagerTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            Collection coll = new ArrayList();
+            Collection<Object> coll = new ArrayList<>();
             coll.add(p1);
             coll.add(p3);
             coll.add(rect);
@@ -182,7 +182,7 @@ public class Retrieve extends PersistenceManagerTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            Collection coll = new ArrayList();
+            Collection<Object> coll = new ArrayList<>();
             coll.add(p1);
             coll.add(p3);
             coll.add(rect);
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/close/CloseWithActiveTxRollsBack.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/close/CloseWithActiveTxRollsBack.java
index cbc226e3..79ec360f 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/close/CloseWithActiveTxRollsBack.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/close/CloseWithActiveTxRollsBack.java
@@ -18,7 +18,6 @@
 package org.apache.jdo.tck.api.persistencemanager.close;
 
 import javax.jdo.JDOObjectNotFoundException;
-import javax.jdo.JDOUserException;
 import javax.jdo.PersistenceManager;
 import javax.jdo.Transaction;
 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachAllOnCommit.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachAllOnCommit.java
index 492774cc..6ccbaf74 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachAllOnCommit.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachAllOnCommit.java
@@ -16,19 +16,6 @@
  */
 package org.apache.jdo.tck.api.persistencemanager.detach;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-
-import java.util.Collection;
-import java.util.HashSet;
-
-import javax.jdo.PersistenceManager;
-import javax.jdo.Transaction;
-
-import org.apache.jdo.tck.pc.shoppingcart.Cart;
-
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachAttach.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachAttach.java
index ff69855d..8eb46a2a 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachAttach.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachAttach.java
@@ -16,17 +16,6 @@
  */
 package org.apache.jdo.tck.api.persistencemanager.detach;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-
-import java.util.Collection;
-import java.util.HashSet;
-
-import javax.jdo.PersistenceManager;
-import javax.jdo.Transaction;
-
 import org.apache.jdo.tck.pc.shoppingcart.Cart;
 
 import org.apache.jdo.tck.util.BatchTestRunner;
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachAttachDirty.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachAttachDirty.java
index 9de765b5..786b7715 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachAttachDirty.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachAttachDirty.java
@@ -16,17 +16,6 @@
  */
 package org.apache.jdo.tck.api.persistencemanager.detach;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-
-import java.util.Collection;
-import java.util.HashSet;
-
-import javax.jdo.PersistenceManager;
-import javax.jdo.Transaction;
-
 import org.apache.jdo.tck.pc.shoppingcart.Cart;
 
 import org.apache.jdo.tck.util.BatchTestRunner;
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachCopy.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachCopy.java
index fb54f93c..498fb6c8 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachCopy.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachCopy.java
@@ -16,17 +16,9 @@
  */
 package org.apache.jdo.tck.api.persistencemanager.detach;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-
 import java.util.Collection;
 import java.util.HashSet;
 
-import javax.jdo.PersistenceManager;
-import javax.jdo.Transaction;
-
 import org.apache.jdo.tck.pc.shoppingcart.Cart;
 
 import org.apache.jdo.tck.util.BatchTestRunner;
@@ -66,7 +58,7 @@ public class DetachCopy extends DetachTest {
         getPM().currentTransaction().begin();
         setCartFetchGroups();
         //pm.retrieveAll(cartClosure);
-        Cart cartDetached = (Cart)pm.detachCopy(cart1);
+        Cart cartDetached = pm.detachCopy(cart1);
         checkCartValues(ASSERTION_FAILED + 
                 "after detachCopy," + NL, cartDetached);
         pm.currentTransaction().commit();
@@ -78,10 +70,10 @@ public class DetachCopy extends DetachTest {
         getPM().currentTransaction().begin();
         setCartFetchGroups();
         //pm.retrieveAll(cartClosure);
-        Collection instances = new HashSet();
+        Collection<Cart> instances = new HashSet<>();
         instances.add(cart1);
-        Collection detached = pm.detachCopyAll(instances);
-        Cart cartDetached = (Cart)detached.iterator().next();
+        Collection<Cart> detached = pm.detachCopyAll(instances);
+        Cart cartDetached = detached.iterator().next();
         checkCartValues(ASSERTION_FAILED + 
                 "after detachCopyAll(Collection)," + NL, cartDetached);
         pm.currentTransaction().commit();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachSerialize.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachSerialize.java
index 8b5d24a8..b637003c 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachSerialize.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachSerialize.java
@@ -21,9 +21,6 @@ import java.io.ByteArrayOutputStream;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
-import javax.jdo.PersistenceManager;
-import javax.jdo.Transaction;
-
 import org.apache.jdo.tck.pc.shoppingcart.Cart;
 
 import org.apache.jdo.tck.util.BatchTestRunner;
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachTest.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachTest.java
index 35030f64..4c27fe72 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachTest.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachTest.java
@@ -28,8 +28,6 @@ import org.apache.jdo.tck.pc.shoppingcart.Cart;
 import org.apache.jdo.tck.pc.shoppingcart.Product;
 import org.apache.jdo.tck.pc.shoppingcart.Undetachable;
 
-import javax.jdo.PersistenceManager;
-
 /**
  *
  */
@@ -159,11 +157,11 @@ public abstract class DetachTest extends JDO_Test {
             reportDifference(location + 
                 " differences in cart.customerId", 
                 goldenCart.getCustomerId(), cart.getCustomerId());
-        Iterator goldenCartEntries = goldenCart.getEntries();
-        Iterator cartEntries = cart.getEntries();
+        Iterator<CartEntry> goldenCartEntries = goldenCart.getEntries();
+        Iterator<CartEntry> cartEntries = cart.getEntries();
         while (cartEntries.hasNext()) {
-            CartEntry goldenCartEntry = (CartEntry)goldenCartEntries.next();
-            CartEntry cartEntry = (CartEntry)cartEntries.next();
+            CartEntry goldenCartEntry = goldenCartEntries.next();
+            CartEntry cartEntry = cartEntries.next();
             checkState(location + "CartEntry instance", cartEntry,
                     persistent);
             Cart cartEntryCart = cartEntry.getCart();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachUndetachable.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachUndetachable.java
index d193efca..a05d4501 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachUndetachable.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/DetachUndetachable.java
@@ -51,12 +51,12 @@ public class DetachUndetachable extends DetachTest {
     public void testDetachUndetachable() {
         setupUndetachable();
         getPM().currentTransaction().begin();
-        Undetachable instance = (Undetachable)pm.detachCopy(un1);
-        if (JDOHelper.isPersistent((Object)instance)) {
+        Undetachable instance = pm.detachCopy(un1);
+        if (JDOHelper.isPersistent(instance)) {
             appendMessage("testDetachUndetachable: should be transient" + 
                 " but is not. The object state is: " +
-                states[currentState((Object)instance)] 
-                + " " + getStateOfInstance((Object)instance));
+                states[currentState(instance)]
+                + " " + getStateOfInstance(instance));
         }
         pm.currentTransaction().commit();
         failOnError();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/SetDetachAllOnCommit.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/SetDetachAllOnCommit.java
index a366865a..056a6b55 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/SetDetachAllOnCommit.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/detach/SetDetachAllOnCommit.java
@@ -17,8 +17,7 @@
 package org.apache.jdo.tck.api.persistencemanager.detach;
 
 import javax.jdo.PersistenceManager;
-import javax.jdo.Transaction;
-import org.apache.jdo.tck.pc.mylib.PCPoint;
+
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/extent/GetExtentWithInstancesMadePersistentViaReachability.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/extent/GetExtentWithInstancesMadePersistentViaReachability.java
index 9c2e86b1..e0014ed7 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/extent/GetExtentWithInstancesMadePersistentViaReachability.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/extent/GetExtentWithInstancesMadePersistentViaReachability.java
@@ -82,14 +82,14 @@ public class GetExtentWithInstancesMadePersistentViaReachability extends Persist
     private void runTest(PersistenceManager pm) {
         Transaction tx = pm.currentTransaction();
         tx.begin();
-        Extent e = pm.getExtent(Department.class, false);
+        Extent<Department> e = pm.getExtent(Department.class, false);
 
         boolean foundDep1 = false;
         boolean foundDep2 = false;
         boolean foundDep3 = false;
 
-        for (Iterator i = e.iterator(); i.hasNext();) {
-            Department dep = (Department) i.next();
+        for (Iterator<Department> i = e.iterator(); i.hasNext();) {
+            Department dep = i.next();
             if (dep.getName().equals("Department 1"))
                 foundDep1=true;
             else if (dep.getName().equals("Department 2"))
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/extent/GetExtentWithNoSubclasses.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/extent/GetExtentWithNoSubclasses.java
index df4e8b15..1d29b4a5 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/extent/GetExtentWithNoSubclasses.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/extent/GetExtentWithNoSubclasses.java
@@ -88,11 +88,11 @@ public class GetExtentWithNoSubclasses extends PersistenceManagerTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            Extent e = pm.getExtent(PCPoint.class, false);
+            Extent<PCPoint> e = pm.getExtent(PCPoint.class, false);
             
             int c = 0;
-            for (Iterator i = e.iterator(); i.hasNext();) {
-                PCPoint p = (PCPoint) i.next();
+            for (Iterator<PCPoint> i = e.iterator(); i.hasNext();) {
+                PCPoint p = i.next();
                 if (debug) logger.debug("p.getX() = " + p.getX());
                 if ((p.getX() == 1) || (p.getX() == 3)) {
                     // OK
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/extent/GetExtentWithSubclasses.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/extent/GetExtentWithSubclasses.java
index 567dfe0c..deac282f 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/extent/GetExtentWithSubclasses.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/extent/GetExtentWithSubclasses.java
@@ -96,15 +96,15 @@ public class GetExtentWithSubclasses extends PersistenceManagerTest {
     private void runTest(PersistenceManager pm) {
         Transaction tx = pm.currentTransaction();
         tx.begin();
-        Extent e = pm.getExtent(Person.class, true);
+        Extent<Person> e = pm.getExtent(Person.class, true);
 
         boolean foundCraig = false;
         boolean foundMichael = false;
         boolean foundMichelle = false;
         boolean foundVictor = false;
 
-        for (Iterator i = e.iterator(); i.hasNext();) {
-            Person p = (Person) i.next();
+        for (Iterator<Person> i = e.iterator(); i.hasNext();) {
+            Person p = i.next();
             if ((p.getFirstname().equals("Craig")) && (p.getLastname().equals("Russell")))
                 foundCraig=true;
             else if ((p.getFirstname().equals("Michael")) && (p.getLastname().equals("Bouschen")))
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/AbstractFetchPlanTest.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/AbstractFetchPlanTest.java
index b900db93..1842f6f9 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/AbstractFetchPlanTest.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/AbstractFetchPlanTest.java
@@ -149,8 +149,8 @@ public class AbstractFetchPlanTest extends JDO_Test {
      */
     protected void checkGroups(String location,
             FetchPlan fetchPlan, String[] groups) {
-        Collection expected = new HashSet();
-        Collection actual = fetchPlan.getGroups();
+        Collection<String> expected = new HashSet<>();
+        Collection<String> actual = fetchPlan.getGroups();
         for (int i = 0; i < groups.length; ++i) {
             expected.add(groups[i]);
         }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanInterface.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanInterface.java
index 834d6624..38f57e39 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanInterface.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanInterface.java
@@ -112,14 +112,14 @@ public class FetchPlanInterface extends JDO_Test {
      * @param actual actual value
      * @return true if equal
      */
-    protected boolean setEquals
-            (Collection expected, Collection actual) {
+    protected <T> boolean setEquals
+            (Collection<T> expected, Collection<T> actual) {
         if (expected == actual) 
             return true;
         if (expected == null || actual == null) 
             return false;
-        Set expectedSet = new HashSet(expected);
-        Set actualSet = new HashSet(actual);
+        Set<T> expectedSet = new HashSet<>(expected);
+        Set<T> actualSet = new HashSet<>(actual);
         return expectedSet.equals(actualSet);
     }
 
@@ -229,10 +229,10 @@ public class FetchPlanInterface extends JDO_Test {
 
     /** */
     public void checkDefaultGroups() {
-        Set expectedGroups = new HashSet();
+        Set<String> expectedGroups = new HashSet<>();
         expectedGroups.add("default");
         FetchPlan fp = getPM().getFetchPlan();
-        Collection groups = fp.getGroups();
+        Collection<String> groups = fp.getGroups();
         if (!setEquals(expectedGroups, groups)) {
             failCompare(
                 "checkDefaultGroups(): wrong getGroups() " + 
@@ -244,10 +244,10 @@ public class FetchPlanInterface extends JDO_Test {
 
     /** */
     public void checkClearGroups() {
-        Set expectedGroups = new HashSet();
+        Set<String> expectedGroups = new HashSet<>();
         FetchPlan fp = getPM().getFetchPlan();
         fp.clearGroups();
-        Collection groups = fp.getGroups();
+        Collection<String> groups = fp.getGroups();
         if (!setEquals(expectedGroups, groups)) {
             failCompare(
                 "checkClearGroups(): wrong getGroups() " + 
@@ -259,11 +259,11 @@ public class FetchPlanInterface extends JDO_Test {
 
     /** */
     public void checkSetGroup() {
-        Set expectedGroups = new HashSet();
+        Set<String> expectedGroups = new HashSet<>();
         expectedGroups.add("group1");
         FetchPlan fp = getPM().getFetchPlan();
         fp.setGroup("group1");
-        Collection groups = fp.getGroups();
+        Collection<String> groups = fp.getGroups();
         if (!setEquals(expectedGroups, groups)) {
             failCompare(
                 "checkSetGroup(): wrong getGroups() " + 
@@ -275,12 +275,12 @@ public class FetchPlanInterface extends JDO_Test {
 
     /** */
     public void checkAddGroup() {
-        Set expectedGroups = new HashSet();
+        Set<String> expectedGroups = new HashSet<>();
         expectedGroups.add("default");
         expectedGroups.add("group1");
         FetchPlan fp = getPM().getFetchPlan();
         fp.addGroup("group1");
-        Collection groups = fp.getGroups();
+        Collection<String> groups = fp.getGroups();
         if (!setEquals(expectedGroups, groups)) {
             failCompare(
                 "checkAddGroup(): wrong getGroups() " + 
@@ -292,10 +292,10 @@ public class FetchPlanInterface extends JDO_Test {
 
     /** */
     public void checkRemoveGroup() {
-        Set expectedGroups = new HashSet();
+        Set<String> expectedGroups = new HashSet<>();
         FetchPlan fp = getPM().getFetchPlan();
         fp.removeGroup("default");
-        Collection groups = fp.getGroups();
+        Collection<String> groups = fp.getGroups();
         if (!setEquals(expectedGroups, groups)) {
             failCompare(
                 "checkRemoveGroup(): wrong getGroups() " + 
@@ -307,13 +307,13 @@ public class FetchPlanInterface extends JDO_Test {
 
     /** */
     public void checkSetGroupsCollection() {
-        Set expectedGroups = new HashSet();
+        Set<String> expectedGroups = new HashSet<>();
         expectedGroups.add("default");
         expectedGroups.add("group1");
         expectedGroups.add("group2");
         FetchPlan fp = getPM().getFetchPlan();
         fp.setGroups(expectedGroups);
-        Collection groups = fp.getGroups();
+        Collection<String> groups = fp.getGroups();
         if (!setEquals(expectedGroups, groups)) {
             failCompare(
                 "checkSetGroupsCollection(): wrong getGroups() " + 
@@ -325,13 +325,13 @@ public class FetchPlanInterface extends JDO_Test {
 
     /** */
     public void checkSetGroupsArray() {
-        Set expectedGroups = new HashSet();
+        Set<String> expectedGroups = new HashSet<>();
         expectedGroups.add("default");
         expectedGroups.add("group1");
         expectedGroups.add("group2");
         FetchPlan fp = getPM().getFetchPlan();
-        fp.setGroups(new String[] {"default", "group1", "group2"});
-        Collection groups = fp.getGroups();
+        fp.setGroups("default", "group1", "group2");
+        Collection<String> groups = fp.getGroups();
         if (!setEquals(expectedGroups, groups)) {
             failCompare(
                 "checkSetGroupsArray(): wrong getGroups() " + 
@@ -343,9 +343,9 @@ public class FetchPlanInterface extends JDO_Test {
 
     /** */
     protected void checkGetDetachmentRoots() {
-        Set expectedRoots = new HashSet();
+        Set<String> expectedRoots = new HashSet<>();
         FetchPlan fp = getPM().getFetchPlan();
-        Collection roots = fp.getDetachmentRoots();
+        Collection<String> roots = fp.getDetachmentRoots();
         if (!setEquals(expectedRoots, roots)) {
             failCompare(
                 "checkGetDetachmentRoots(): wrong getDetachmentRoots() " + 
@@ -358,11 +358,11 @@ public class FetchPlanInterface extends JDO_Test {
     /** */
     protected void checkSetDetachmentRoots() {
         PCPoint p = new PCPoint(10, 20);
-        Set expectedRoots = new HashSet();
+        Set<PCPoint> expectedRoots = new HashSet<>();
         expectedRoots.add(p);
         FetchPlan fp = getPM().getFetchPlan();
         fp.setDetachmentRoots(expectedRoots);
-        Collection roots = fp.getDetachmentRoots();
+        Collection<PCPoint> roots = fp.getDetachmentRoots();
         if (!setEquals(expectedRoots, roots)) {
             failCompare(
                 "checkGetDetachmentRoots(): wrong getDetachmentRoots() " + 
@@ -374,11 +374,11 @@ public class FetchPlanInterface extends JDO_Test {
 
     /** */
     private void checkSetDetachmentRootClasses() {
-        Class[] expectedRootClasses = new Class[] {PCPoint.class};
+        Class<?>[] expectedRootClasses = new Class[] {PCPoint.class};
         FetchPlan fp = getPM().getFetchPlan();
         fp.setDetachmentRootClasses(
                 expectedRootClasses);
-        Class[] rootClasses = fp.getDetachmentRootClasses();
+        Class<?>[] rootClasses = fp.getDetachmentRootClasses();
         if (!Arrays.equals(expectedRootClasses, rootClasses)) {
             failCompare(
                 "checkGetDetachmentRootClasses(): " + 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanIsCopy.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanIsCopy.java
index b267e04e..0a36a732 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanIsCopy.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanIsCopy.java
@@ -20,10 +20,8 @@ package org.apache.jdo.tck.api.persistencemanager.fetchplan;
 import java.util.Arrays;
 
 import javax.jdo.Extent;
-import javax.jdo.FetchPlan;
 import javax.jdo.Query;
 
-import org.apache.jdo.tck.pc.mylib.PCPoint;
 import org.apache.jdo.tck.pc.mylib.PCRect;
 
 import org.apache.jdo.tck.util.BatchTestRunner;
@@ -44,8 +42,8 @@ public class FetchPlanIsCopy extends AbstractFetchPlanTest {
     private static final String ASSERTION_FAILED = 
         "Assertion 12.7.5-1 (FetchPlanIsCopy) failed: ";
 
-    Query query = null;
-    Extent extent = null;
+    Query<PCRect> query = null;
+    Extent<PCRect> extent = null;
     
     /**
      * The <code>main</code> is called when the class
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanMakeTransient.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanMakeTransient.java
index cbad2dcc..0adf10f3 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanMakeTransient.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanMakeTransient.java
@@ -20,8 +20,6 @@ package org.apache.jdo.tck.api.persistencemanager.fetchplan;
 import java.util.Collection;
 import java.util.HashSet;
 
-import org.apache.jdo.tck.api.persistencemanager.fetchplan.AbstractFetchPlanTest;
-
 import org.apache.jdo.tck.pc.mylib.PCRect;
 
 import org.apache.jdo.tck.util.BatchTestRunner;
@@ -63,7 +61,7 @@ public class FetchPlanMakeTransient extends AbstractFetchPlanTest {
         setBothGroup();
         pm.currentTransaction().begin();
         PCRect instance = (PCRect)pm.getObjectById(pcrectoid, false);
-        Collection instances = new HashSet();
+        Collection<PCRect> instances = new HashSet<>();
         instances.add(instance);
         pm.makeTransientAll(instances, true);
         checkBothLoaded(ASSERTION_FAILED, instance);
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanQuery.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanQuery.java
index 5d4b3690..3d00b36a 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanQuery.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanQuery.java
@@ -17,11 +17,8 @@
  
 package org.apache.jdo.tck.api.persistencemanager.fetchplan;
 
-import javax.jdo.FetchPlan;
 import javax.jdo.Query;
 
-import org.apache.jdo.tck.api.persistencemanager.fetchplan.AbstractFetchPlanTest;
-
 import org.apache.jdo.tck.pc.mylib.PCRect;
 
 import org.apache.jdo.tck.util.BatchTestRunner;
@@ -57,7 +54,7 @@ public class FetchPlanQuery extends AbstractFetchPlanTest {
     public void testQuery() {
         setBothGroup();
         pm.currentTransaction().begin();
-        Query query = pm.newQuery(PCRect.class);
+        Query<PCRect> query = pm.newQuery(PCRect.class);
         checkGroups(ASSERTION_FAILED + " after newQuery().getFetchPlan()", 
                 query.getFetchPlan(), bothGroup);
         query.setUnique(true);
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanRefresh.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanRefresh.java
index 7deeabfb..46a63b5a 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanRefresh.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanRefresh.java
@@ -19,7 +19,6 @@ package org.apache.jdo.tck.api.persistencemanager.fetchplan;
 
 import java.util.Collection;
 import java.util.HashSet;
-import org.apache.jdo.tck.api.persistencemanager.fetchplan.AbstractFetchPlanTest;
 
 import org.apache.jdo.tck.pc.mylib.PCRect;
 
@@ -69,7 +68,7 @@ public class FetchPlanRefresh extends AbstractFetchPlanTest {
         setBothGroup();
         pm.currentTransaction().begin();
         PCRect instance = (PCRect)pm.getObjectById(pcrectoid, false);
-        Collection instances = new HashSet();
+        Collection<PCRect> instances = new HashSet<>();
         instances.add(instance);
         pm.refreshAll(instances);
         checkBothLoaded(ASSERTION_FAILED, instance);
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanRetrieve.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanRetrieve.java
index 72efb7b0..876f6a84 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanRetrieve.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/fetchplan/FetchPlanRetrieve.java
@@ -19,7 +19,6 @@ package org.apache.jdo.tck.api.persistencemanager.fetchplan;
 
 import java.util.Collection;
 import java.util.HashSet;
-import org.apache.jdo.tck.api.persistencemanager.fetchplan.AbstractFetchPlanTest;
 
 import org.apache.jdo.tck.pc.mylib.PCRect;
 
@@ -70,7 +69,7 @@ public class FetchPlanRetrieve extends AbstractFetchPlanTest {
         setBothGroup();
         pm.currentTransaction().begin();
         PCRect instance = (PCRect)pm.getObjectById(pcrectoid, false);
-        Collection instances = new HashSet();
+        Collection<PCRect> instances = new HashSet<>();
         instances.add(instance);
         pm.retrieveAll(instances, true);
         checkBothLoaded(ASSERTION_FAILED, instance);
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/getobject/GetObjectIdClass.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/getobject/GetObjectIdClass.java
index 55570be9..42f64982 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/getobject/GetObjectIdClass.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/getobject/GetObjectIdClass.java
@@ -77,7 +77,7 @@ public class GetObjectIdClass extends PersistenceManagerTest {
 
     /** */
     private void runTestGetObjectIdClassForNull(PersistenceManager pm) {
-        Class cl = pm.getObjectIdClass(null);
+        Class<?> cl = pm.getObjectIdClass(null);
         if (cl != null) {
             fail(ASSERTION_FAILED,
                  "pm.getObjectIdClass for null returned non-null class: " +
@@ -87,7 +87,7 @@ public class GetObjectIdClass extends PersistenceManagerTest {
 
     /** */
     private void runTestGetObjectIdClassForNonPCClass(PersistenceManager pm) {
-        Class cl = pm.getObjectIdClass(java.lang.Throwable.class);
+        Class<?> cl = pm.getObjectIdClass(java.lang.Throwable.class);
         if (cl != null) {
             fail(ASSERTION_FAILED,
                  "pm.getObjectIdClass for non-PC class returned non-null class: " +
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/getobject/GetObjectIdClassForAbstractOrNonPersistenceCapableClass.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/getobject/GetObjectIdClassForAbstractOrNonPersistenceCapableClass.java
index 5ce58303..7bcfcc2c 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/getobject/GetObjectIdClassForAbstractOrNonPersistenceCapableClass.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/getobject/GetObjectIdClassForAbstractOrNonPersistenceCapableClass.java
@@ -60,7 +60,7 @@ public class GetObjectIdClassForAbstractOrNonPersistenceCapableClass extends Per
     
     /** */
     private void runTestNonPcClass(PersistenceManager pm) {
-        Class c1 = pm.getObjectIdClass(Point.class);
+        Class<?> c1 = pm.getObjectIdClass(Point.class);
         if ( c1 != null) {
             fail(ASSERTION_FAILED,
                  "pm.getObjectIdClass returns non-null ObjectId class for non pc class");
@@ -69,7 +69,7 @@ public class GetObjectIdClassForAbstractOrNonPersistenceCapableClass extends Per
 
     /** */
     private void runTestNullParam(PersistenceManager pm) {
-        Class c1 = pm.getObjectIdClass(null);
+        Class<?> c1 = pm.getObjectIdClass(null);
         if (c1 != null) {
             fail(ASSERTION_FAILED,
                  "pm.getObjectIdClass for null returned non-null class: " +
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/getobject/GetObjectIdForPersistentInterface.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/getobject/GetObjectIdForPersistentInterface.java
index 08a63400..95a09bc6 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/getobject/GetObjectIdForPersistentInterface.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/getobject/GetObjectIdForPersistentInterface.java
@@ -25,7 +25,6 @@ import javax.jdo.identity.LongIdentity;
 
 import org.apache.jdo.tck.api.persistencemanager.PersistenceManagerTest;
 
-import org.apache.jdo.tck.pc.company.Company;
 import org.apache.jdo.tck.pc.company.ICompany;
 import org.apache.jdo.tck.pc.company.PICompany;
 
@@ -60,6 +59,7 @@ public class GetObjectIdForPersistentInterface extends PersistenceManagerTest {
         BatchTestRunner.run(GetObjectIdForPersistentInterface.class);
     }
 
+    @Override
     public void localSetUp() {
         addTearDownClass(PICompany.class);
     }
@@ -74,7 +74,7 @@ public class GetObjectIdForPersistentInterface extends PersistenceManagerTest {
         }
         pm = getPM();
         Transaction tx = pm.currentTransaction();
-        ICompany icompany = (ICompany)pm.newInstance(PICompany.class);
+        ICompany icompany = pm.newInstance(PICompany.class);
         icompany.setCompanyid(1001);
         icompany.setName("GooTube");
         icompany.setFounded(new Date());
@@ -84,7 +84,7 @@ public class GetObjectIdForPersistentInterface extends PersistenceManagerTest {
         LongIdentity ioid = (LongIdentity)pm.getObjectId(icompany);
         tx.commit();
 
-        Class pICompanyOidTargetClass = ioid.getTargetClass();
+        Class<?> pICompanyOidTargetClass = ioid.getTargetClass();
         if (pICompanyOidTargetClass != PICompany.class) 
             appendMessage(ASSERTION_FAILED +
                  " getObjectId(icompany) should return interface class.\n" +
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/getobject/GetObjectsById.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/getobject/GetObjectsById.java
index c4332bed..27d75ff6 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/getobject/GetObjectsById.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/getobject/GetObjectsById.java
@@ -65,12 +65,12 @@ public class GetObjectsById extends JDO_Test {
     private static final int NUMBER_OF_INSTANCES = 50;
 
     /** Persistent instances */
-    private final Collection instanceCollection = 
-            new ArrayList(NUMBER_OF_INSTANCES);
+    private final Collection<PCPoint> instanceCollection =
+            new ArrayList<>(NUMBER_OF_INSTANCES);
 
     /** Object ids */
-    private final Collection oidCollection =
-            new ArrayList(NUMBER_OF_INSTANCES);
+    private final Collection<Object> oidCollection =
+            new ArrayList<>(NUMBER_OF_INSTANCES);
 
     /** Persistent instances */
     private final Object[] instanceArray = 
@@ -96,7 +96,7 @@ public class GetObjectsById extends JDO_Test {
     protected void localSetUp() {
         addTearDownClass(PCPoint.class);
         getPM().currentTransaction().begin();
-        Object instance;
+        PCPoint instance;
         Object oid;
         instanceCollection.clear();
         oidCollection.clear();
@@ -115,7 +115,7 @@ public class GetObjectsById extends JDO_Test {
     /** */
     public void testCollection() {
         getPM().currentTransaction().begin();
-        Collection result = pm.getObjectsById(oidCollection);
+        Collection<PCPoint> result = pm.getObjectsById(oidCollection);
         pm.currentTransaction().commit();
         checkResultCollection("after getObjectsById(Collection)", 
                 result);
@@ -125,7 +125,7 @@ public class GetObjectsById extends JDO_Test {
     /** */
     public void testCollectionTrue() {
         getPM().currentTransaction().begin();
-        Collection result = pm.getObjectsById(oidCollection, true);
+        Collection<PCPoint> result = pm.getObjectsById(oidCollection, true);
         pm.currentTransaction().commit();
         checkResultCollection(
                 "after getObjectsById(Collection, true)", 
@@ -136,7 +136,7 @@ public class GetObjectsById extends JDO_Test {
     /** */
     public void testCollectionFalse() {
         getPM().currentTransaction().begin();
-        Collection result = pm.getObjectsById(oidCollection, false);
+        Collection<PCPoint> result = pm.getObjectsById(oidCollection, false);
         pm.currentTransaction().commit();
         checkResultCollection(
                 "after getObjectsById(Collection, false)", 
@@ -172,9 +172,9 @@ public class GetObjectsById extends JDO_Test {
     }
 
     /** Check the results of getObjectsById */
-    private void checkResultCollection(String location, Collection instances) {
-        Iterator expected = instanceCollection.iterator();
-        Iterator actual = instances.iterator();
+    private void checkResultCollection(String location, Collection<PCPoint> instances) {
+        Iterator<PCPoint> expected = instanceCollection.iterator();
+        Iterator<PCPoint> actual = instances.iterator();
         for (int i = 0; i < NUMBER_OF_INSTANCES; ++i) {
             checkIdentity(ASSERTION_FAILED + location + ", position " + i,
                     expected.next(), actual.next());
@@ -208,7 +208,7 @@ public class GetObjectsById extends JDO_Test {
     }
 
     /** Check that the iterator has no more elements */
-    private void checkIteratorComplete (String location, Iterator iterator) {
+    private void checkIteratorComplete (String location, Iterator<PCPoint> iterator) {
         if (iterator.hasNext()) {
             appendMessage(location + 
                     "result iterator has more elements than expected.");
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalAllFails.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalAllFails.java
index bd1a6311..c016aab1 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalAllFails.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalAllFails.java
@@ -18,6 +18,7 @@
 package org.apache.jdo.tck.api.persistencemanager.lifecycle;
 
 import java.util.Collection;
+import java.util.HashSet;
 
 import javax.jdo.JDOUserException;
 import javax.jdo.PersistenceManager;
@@ -116,7 +117,7 @@ public class MakeNontransactionalAllFails extends PersistenceManagerTest {
             pm.makePersistent(p3);
             pm.makePersistent(p4);
 
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p2);
             col1.add(p3);
             col1.add(p4);
@@ -151,7 +152,7 @@ public class MakeNontransactionalAllFails extends PersistenceManagerTest {
             pm.makePersistent(p3);
             pm.makePersistent(p4);
             
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p2);
             col1.add(p3);
             col1.add(p4);
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalDirtyInstance.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalDirtyInstance.java
index cbf57073..04a5336b 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalDirtyInstance.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalDirtyInstance.java
@@ -71,10 +71,10 @@ public class MakeNontransactionalDirtyInstance extends PersistenceManagerTest {
     private PCPoint c6 = null;
     private PCPoint c7 = null;
 
-    private Collection pcol1 = new HashSet();
-    private Collection pcol2 = new HashSet();
-    private Collection ccol1 = new HashSet();
-    private Collection ccol2 = new HashSet();
+    private Collection<PCPoint> pcol1 = new HashSet<>();
+    private Collection<PCPoint> pcol2 = new HashSet<>();
+    private Collection<PCPoint> ccol1 = new HashSet<>();
+    private Collection<PCPoint> ccol2 = new HashSet<>();
 
     /** */
     public void testMakeNontransactional() {
@@ -202,7 +202,8 @@ public class MakeNontransactionalDirtyInstance extends PersistenceManagerTest {
     }
 
     /** */
-    private void runTestMakeNontransactionalDirtyInstanceAll1(PersistenceManager pm, Collection tcol, String state) {
+    private void runTestMakeNontransactionalDirtyInstanceAll1(
+            PersistenceManager pm, Collection<PCPoint> tcol, String state) {
         Transaction tx = pm.currentTransaction();
         boolean stopFlag = false;
         try {
@@ -211,9 +212,9 @@ public class MakeNontransactionalDirtyInstance extends PersistenceManagerTest {
             int curr;
             tx.begin();
 
-            Iterator iter = tcol.iterator();
+            Iterator<PCPoint> iter = tcol.iterator();
             while (iter.hasNext()) {
-                PCPoint p = (PCPoint) iter.next();
+                PCPoint p = iter.next();
                 if (makeAndTestDirtyInstance(p,state))
                     stopFlag = true;
             }
@@ -239,7 +240,7 @@ public class MakeNontransactionalDirtyInstance extends PersistenceManagerTest {
 
     /** */
     private void runTestMakeNontransactionalDirtyInstanceAll2(PersistenceManager pm, 
-                                                              Collection tcol, 
+                                                              Collection<PCPoint> tcol,
                                                               String state) {
         Transaction tx = pm.currentTransaction();
         boolean stopFlag = false;
@@ -248,9 +249,9 @@ public class MakeNontransactionalDirtyInstance extends PersistenceManagerTest {
                 logger.debug(" ** in testMakeNontransactionalDirtyInstanceAll2()");
             tx.begin();
 
-            Iterator iter = tcol.iterator();
+            Iterator<PCPoint> iter = tcol.iterator();
             while (iter.hasNext()) {
-                PCPoint p = (PCPoint) iter.next();
+                PCPoint p = iter.next();
                 if (makeAndTestDirtyInstance(p,state))
                     stopFlag = true;
             }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalIsImmediate.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalIsImmediate.java
index 5968b9cd..e4370366 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalIsImmediate.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalIsImmediate.java
@@ -63,8 +63,8 @@ public class MakeNontransactionalIsImmediate extends PersistenceManagerTest {
     private PCPoint p6 = null;
     private PCPoint p7 = null;
 
-    private Collection col1 = new HashSet();
-    private Collection col2 = new HashSet();
+    private Collection<PCPoint> col1 = new HashSet<>();
+    private Collection<PCPoint> col2 = new HashSet<>();
 
     /** */
     public void testTransactionalInst() {
@@ -219,9 +219,9 @@ public class MakeNontransactionalIsImmediate extends PersistenceManagerTest {
     }
     
     /** */
-    private boolean navigateAndTestTransientCol (Collection col) {
+    private boolean navigateAndTestTransientCol (Collection<PCPoint> col) {
         boolean noError = true;
-        Iterator iter = col1.iterator();
+        Iterator<PCPoint> iter = col1.iterator();
         while (iter.hasNext() ) {
             PCPoint p = (PCPoint) iter.next();
             if (! testState(p, TRANSIENT, "transient")) {
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalPersistentCleanInstance.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalPersistentCleanInstance.java
index 63bd66e2..2a0601f1 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalPersistentCleanInstance.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalPersistentCleanInstance.java
@@ -18,6 +18,7 @@
 package org.apache.jdo.tck.api.persistencemanager.lifecycle;
 
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.Iterator;
 
 import javax.jdo.PersistenceManager;
@@ -64,8 +65,8 @@ public class MakeNontransactionalPersistentCleanInstance
     private PCPoint p6 = null;
     private PCPoint p7 = null;
 
-    private Collection col1 = new java.util.HashSet();
-    private Collection col2 = new java.util.HashSet();
+    private Collection<PCPoint> col1 = new HashSet<>();
+    private Collection<PCPoint> col2 = new HashSet<>();
 
     /** */
     public void testTransactionalInstance() {
@@ -168,9 +169,9 @@ public class MakeNontransactionalPersistentCleanInstance
                  makePersistentCleanInstance(p4)) {
                 
                 pm.makeNontransactionalAll(col1);
-                Iterator iter = col1.iterator();
+                Iterator<PCPoint> iter = col1.iterator();
                 while (iter.hasNext() ) {
-                    PCPoint p = (PCPoint) iter.next();
+                    PCPoint p = iter.next();
                     curr = currentState(p);
                     if (curr == HOLLOW ||
                         curr == PERSISTENT_NONTRANSACTIONAL) {
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalTransientCleanInstance.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalTransientCleanInstance.java
index 39c3301d..df7e9b2d 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalTransientCleanInstance.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeNontransactionalTransientCleanInstance.java
@@ -18,6 +18,7 @@
 package org.apache.jdo.tck.api.persistencemanager.lifecycle;
 
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.Iterator;
 
 import javax.jdo.PersistenceManager;
@@ -60,8 +61,8 @@ public class MakeNontransactionalTransientCleanInstance extends PersistenceManag
     private PCPoint p6 = null;
     private PCPoint p7 = null;
 
-    private Collection col1 = new java.util.HashSet();
-    private Collection col2 = new java.util.HashSet();
+    private Collection<PCPoint> col1 = new HashSet<>();
+    private Collection<PCPoint> col2 = new HashSet<>();
 
     /** */
     public void testTransactionalInst() {
@@ -158,7 +159,7 @@ public class MakeNontransactionalTransientCleanInstance extends PersistenceManag
                 testState(p4, TRANSIENT_CLEAN, "transient clean")) {
                 
                 pm.makeNontransactionalAll(col1);
-                Iterator iter = col1.iterator();
+                Iterator<PCPoint> iter = col1.iterator();
                 while (iter.hasNext() ) {
                     PCPoint p = (PCPoint) iter.next();
                     if (testState(p, TRANSIENT, "transient")) {
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistent.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistent.java
index 4e4884a8..c974f08d 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistent.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistent.java
@@ -69,6 +69,7 @@ public class MakePersistent extends PersistenceManagerTest {
      * Overrides parent method to avoid querying for classes
      * that may not exist in the schema
      */
+    @Override
     protected void localSetUp() {
         addTearDownClass(PCPoint.class);
     }
@@ -124,7 +125,7 @@ public class MakePersistent extends PersistenceManagerTest {
         try {
             tx.begin();
 
-            Collection col1 = new HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p2);
             col1.add(p3);
             
@@ -146,7 +147,7 @@ public class MakePersistent extends PersistenceManagerTest {
             tx = pm.currentTransaction();
             tx.begin();
             
-            Collection col1 = new HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p1);
             col1.add(p2);
             
@@ -189,7 +190,7 @@ public class MakePersistent extends PersistenceManagerTest {
         PCPoint np1 = new PCPoint (3,3);
         PCPoint np2 = new PCPoint (4,4);
         
-        Collection col1 = new HashSet();
+        Collection<PCPoint> col1 = new HashSet<>();
         col1.add(np1);
         col1.add(np2);
         
@@ -212,7 +213,7 @@ public class MakePersistent extends PersistenceManagerTest {
         PCPoint np1 = new PCPoint (3,3);
         PCPoint np2 = new PCPoint (4,4);
         
-        Collection col1 = new HashSet();
+        Collection<PCPoint> col1 = new HashSet<>();
         col1.add(np1);
         col1.add(np2);
         
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistentAllFails.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistentAllFails.java
index 9c94bf46..88900f56 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistentAllFails.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistentAllFails.java
@@ -18,6 +18,7 @@
 package org.apache.jdo.tck.api.persistencemanager.lifecycle;
 
 import java.util.Collection;
+import java.util.HashSet;
 
 import javax.jdo.JDOUserException;
 import javax.jdo.PersistenceManager;
@@ -75,7 +76,7 @@ public class MakePersistentAllFails extends PersistenceManagerTest {
            PCPoint np2 = new PCPoint (4,4);
            Point np3 =  new Point (5,5);
            
-           Collection col1 = new java.util.HashSet();
+           Collection<Object> col1 = new HashSet<>();
            col1.add(np1);
            col1.add(np2);
            col1.add(np3);
@@ -107,7 +108,7 @@ public class MakePersistentAllFails extends PersistenceManagerTest {
             PCPoint np2 = new PCPoint (4,4);
             Point np3 =  new Point (5,5);
             
-            Collection col1 = new java.util.HashSet();
+            Collection<Object> col1 = new HashSet<>();
             col1.add(np1);
             col1.add(np2);
             col1.add(np3);
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistentAssignsObjectId.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistentAssignsObjectId.java
index 8eb556da..5026355c 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistentAssignsObjectId.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistentAssignsObjectId.java
@@ -119,14 +119,14 @@ public class MakePersistentAssignsObjectId extends PersistenceManagerTest {
         try {
             tx.begin();
             
-            Collection col1 = new HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p2);
             col1.add(p3);
             
             pm.makePersistentAll(col1);
 
-            for (Iterator i = col1.iterator(); i.hasNext();) {
-                PCPoint p = (PCPoint)i.next();
+            for (Iterator<PCPoint> i = col1.iterator(); i.hasNext();) {
+                PCPoint p = i.next();
                 if (!testState(p, PERSISTENT_NEW, "persistent_new")) {
                     fail(ASSERTION_FAILED,
                          "expected P-NEW instance, instance is " + getStateOfInstance(p) + ".");
@@ -154,7 +154,7 @@ public class MakePersistentAssignsObjectId extends PersistenceManagerTest {
             int NUM_OBJS = 2;
             tx.begin();
 
-            Collection col1 = new HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p4);
             col1.add(p5);
             
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistentFailsIfInstanceManagedByAnotherPersistenceManager.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistentFailsIfInstanceManagedByAnotherPersistenceManager.java
index 5a2ced6f..1f4d1c33 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistentFailsIfInstanceManagedByAnotherPersistenceManager.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistentFailsIfInstanceManagedByAnotherPersistenceManager.java
@@ -19,6 +19,7 @@
 package org.apache.jdo.tck.api.persistencemanager.lifecycle;
 
 import java.util.Collection;
+import java.util.HashSet;
 
 import javax.jdo.JDOUserException;
 import javax.jdo.PersistenceManager;
@@ -135,7 +136,7 @@ public class MakePersistentFailsIfInstanceManagedByAnotherPersistenceManager ext
         try {
             tx.begin();
 
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p2);
             col1.add(p3);
             
@@ -162,7 +163,7 @@ public class MakePersistentFailsIfInstanceManagedByAnotherPersistenceManager ext
         try {
             tx.begin();
 
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p4);
             col1.add(p5);
             Object[] obj1= col1.toArray();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistentHasNoEffectOnPersistentInstances.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistentHasNoEffectOnPersistentInstances.java
index f5574218..bd11b7a6 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistentHasNoEffectOnPersistentInstances.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistentHasNoEffectOnPersistentInstances.java
@@ -19,6 +19,7 @@
 package org.apache.jdo.tck.api.persistencemanager.lifecycle;
 
 import java.util.Collection;
+import java.util.HashSet;
 
 import javax.jdo.PersistenceManager;
 import javax.jdo.Transaction;
@@ -121,7 +122,7 @@ public class MakePersistentHasNoEffectOnPersistentInstances
         try {
             tx.begin();
 
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p2);
             col1.add(p3);
 
@@ -145,7 +146,7 @@ public class MakePersistentHasNoEffectOnPersistentInstances
         try {
           tx.begin();
 
-          Collection col1 = new java.util.HashSet();
+          Collection<PCPoint> col1 = new HashSet<>();
           col1.add(p1);
           col1.add(p2);
           
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactional.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactional.java
index fae45886..dc78aa8f 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactional.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactional.java
@@ -18,6 +18,7 @@
 package org.apache.jdo.tck.api.persistencemanager.lifecycle;
 
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.Iterator;
 
 import javax.jdo.PersistenceManager;
@@ -115,16 +116,16 @@ public class MakeTransactional extends PersistenceManagerTest{
         try {
             tx.begin();
             
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p1);
             col1.add(p2);
             col1.add(p3);
             col1.add(p4);
             
             pm.makeTransactionalAll(col1);
-            Iterator iter = col1.iterator();
+            Iterator<PCPoint> iter = col1.iterator();
             while (iter.hasNext() ) {
-                PCPoint p = (PCPoint) iter.next();
+                PCPoint p = iter.next();
                 if (currentState(p) != TRANSIENT_CLEAN) {
                     fail(ASSERTION_FAILED,
                          "Expected T-CLEAN instance, instance " + p + " is " + 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalANontransactionalPersistentInstance.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalANontransactionalPersistentInstance.java
index 8d9472c1..759e62da 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalANontransactionalPersistentInstance.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalANontransactionalPersistentInstance.java
@@ -18,6 +18,7 @@
 package org.apache.jdo.tck.api.persistencemanager.lifecycle;
 
 import java.util.Collection;
+import java.util.HashSet;
 
 import javax.jdo.JDOUserException;
 import javax.jdo.Transaction;
@@ -61,8 +62,8 @@ public class MakeTransactionalANontransactionalPersistentInstance extends Persis
     private PCPoint p6 = null;
     private PCPoint p7 = null;
 
-    private Collection col1 = new java.util.HashSet();
-    private Collection col2 = new java.util.HashSet();
+    private Collection<PCPoint> col1 = new HashSet<>();
+    private Collection<PCPoint> col2 = new HashSet<>();
 
     /** */
     public void testTransactionalInstance() {
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalAllFails.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalAllFails.java
index ab3871d4..7b5e7885 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalAllFails.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalAllFails.java
@@ -18,6 +18,7 @@
 package org.apache.jdo.tck.api.persistencemanager.lifecycle;
 
 import java.util.Collection;
+import java.util.HashSet;
 
 import javax.jdo.JDOUserException;
 import javax.jdo.PersistenceManager;
@@ -63,7 +64,7 @@ public class MakeTransactionalAllFails extends PersistenceManagerTest {
  
     private PCPoint p1 = null;
     private Point p2 = null;
-    private Collection col1 = new java.util.HashSet();
+    private Collection<Object> col1 = new HashSet<>();
 
     /** */
     public void testTransactionalInst() {
@@ -81,7 +82,7 @@ public class MakeTransactionalAllFails extends PersistenceManagerTest {
     private void createObjects() {
         p1 = new PCPoint(1,3);
         p2 = new Point(2,4);
-        col1 = new java.util.HashSet();
+        col1 = new HashSet<>();
         col1.add(p1);
         col1.add(p2);
     }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalIsImmediate.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalIsImmediate.java
index 1c6d2e9f..456a3fcb 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalIsImmediate.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalIsImmediate.java
@@ -63,8 +63,8 @@ public class MakeTransactionalIsImmediate extends PersistenceManagerTest {
     private PCPoint p6 = null;
     private PCPoint p7 = null;
 
-    private Collection col1 = new HashSet();
-    private Collection col2 = new HashSet();
+    private Collection<PCPoint> col1 = new HashSet<>();
+    private Collection<PCPoint> col2 = new HashSet<>();
 
     /** */
     public void testTransactionalInst() {
@@ -141,8 +141,8 @@ public class MakeTransactionalIsImmediate extends PersistenceManagerTest {
             pm.makeTransactionalAll(col1);
             tx.rollback();
 
-            for (Iterator iter = col1.iterator(); iter.hasNext();) {
-                PCPoint p = (PCPoint) iter.next();
+            for (Iterator<PCPoint> iter = col1.iterator(); iter.hasNext();) {
+                PCPoint p = iter.next();
                 if (!testState(p, TRANSIENT_CLEAN, "transient_clean")) {
                     fail(ASSERTION_FAILED,
                          "expected T-CLEAN instance, instance " + p1 + 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalPriorToTransactionRolledback.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalPriorToTransactionRolledback.java
index 1891a7a5..7c5e3c6e 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalPriorToTransactionRolledback.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalPriorToTransactionRolledback.java
@@ -66,8 +66,8 @@ public class MakeTransactionalPriorToTransactionRolledback extends PersistenceMa
     private PCPoint p6 = null;
     private PCPoint p7 = null;
 
-    private Collection col1 = new HashSet();
-    private Collection col2 = new HashSet();
+    private Collection<PCPoint> col1 = new HashSet<>();
+    private Collection<PCPoint> col2 = new HashSet<>();
 
     /** */
     public void testTransactionalInst() {
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalWithinTransactionRolledback.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalWithinTransactionRolledback.java
index 0b692589..47b4943a 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalWithinTransactionRolledback.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransactionalWithinTransactionRolledback.java
@@ -18,6 +18,7 @@
 package org.apache.jdo.tck.api.persistencemanager.lifecycle;
 
 import java.util.Collection;
+import java.util.HashSet;
 
 import javax.jdo.PersistenceManager;
 import javax.jdo.Transaction;
@@ -63,8 +64,8 @@ public class MakeTransactionalWithinTransactionRolledback extends PersistenceMan
     private PCPoint p6 = null;
     private PCPoint p7 = null;
 
-    private Collection col1 = new java.util.HashSet();
-    private Collection col2 = new java.util.HashSet();
+    private Collection<PCPoint> col1 = new HashSet<>();
+    private Collection<PCPoint> col2 = new HashSet<>();
 
     /** */
     public void testTransactionalInst() {
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransient.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransient.java
index 0c866ab9..88434160 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransient.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransient.java
@@ -18,6 +18,7 @@
 package org.apache.jdo.tck.api.persistencemanager.lifecycle;
 
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.Iterator;
 
 import javax.jdo.PersistenceManager;
@@ -124,7 +125,7 @@ public class MakeTransient extends PersistenceManagerTest {
         try {
             tx.begin();
 
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p2);
             col1.add(p3);
             
@@ -132,8 +133,8 @@ public class MakeTransient extends PersistenceManagerTest {
             tx.commit();
             tx = null;
             
-            for (Iterator iter = col1.iterator(); iter.hasNext();) {
-                PCPoint p = (PCPoint) iter.next();
+            for (Iterator<PCPoint> iter = col1.iterator(); iter.hasNext();) {
+                PCPoint p = iter.next();
                 if (!testState(p, TRANSIENT, "transient")) {
                     fail("expected TRANSIENT instance, instance " + p1 + 
                          " is " + getStateOfInstance(p));
@@ -153,7 +154,7 @@ public class MakeTransient extends PersistenceManagerTest {
             int NUM_OBJS = 2;
             tx.begin();
             
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p4);
             col1.add(p5);
             Object[] obj1= col1.toArray();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientAllFails.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientAllFails.java
index f2b4a47c..bd356939 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientAllFails.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientAllFails.java
@@ -78,7 +78,7 @@ public class MakeTransientAllFails extends PersistenceManagerTest {
             PCPoint np2 = new PCPoint (4,4);
             Point np3 =  new Point (5,5);
 
-            Collection col1 = new HashSet();
+            Collection<Object> col1 = new HashSet<>();
             col1.add(np1);
             col1.add(np2);
             col1.add(np3);
@@ -110,7 +110,7 @@ public class MakeTransientAllFails extends PersistenceManagerTest {
             PCPoint np2 = new PCPoint (4,4);
             Point np3 =  new Point (5,5);
 
-            Collection col1 = new java.util.HashSet();
+            Collection<Object> col1 = new HashSet<>();
             col1.add(np1);
             col1.add(np2);
             col1.add(np3);
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientCausesLossOfIdentity.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientCausesLossOfIdentity.java
index 76d451dc..533f7fde 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientCausesLossOfIdentity.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientCausesLossOfIdentity.java
@@ -19,6 +19,7 @@
 package org.apache.jdo.tck.api.persistencemanager.lifecycle;
 
 import java.util.Collection;
+import java.util.HashSet;
 
 import javax.jdo.PersistenceManager;
 import javax.jdo.Transaction;
@@ -126,7 +127,7 @@ public class MakeTransientCausesLossOfIdentity extends PersistenceManagerTest {
             tx = pm.currentTransaction();
             tx.begin();
 
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p2);
             col1.add(p3);
 
@@ -157,7 +158,7 @@ public class MakeTransientCausesLossOfIdentity extends PersistenceManagerTest {
             tx = pm.currentTransaction();
             tx.begin();
 
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p4);
             col1.add(p5);
 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientFailsWithDirtyInstance.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientFailsWithDirtyInstance.java
index 645410e9..35597403 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientFailsWithDirtyInstance.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientFailsWithDirtyInstance.java
@@ -134,7 +134,7 @@ public class MakeTransientFailsWithDirtyInstance extends PersistenceManagerTest
             tx = pm.currentTransaction();
             tx.begin();
 
-            Collection col1 = new HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p2);
             col1.add(p3);
 
@@ -164,7 +164,7 @@ public class MakeTransientFailsWithDirtyInstance extends PersistenceManagerTest
         try {
         	tx.begin();
 
-            Collection col1 = new HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p4);
             col1.add(p5);
 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientFieldsPreservedUnchanged.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientFieldsPreservedUnchanged.java
index 20f03120..bbe37af3 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientFieldsPreservedUnchanged.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientFieldsPreservedUnchanged.java
@@ -187,7 +187,7 @@ public class MakeTransientFieldsPreservedUnchanged extends PersistenceManagerTes
         try {
             tx.begin();
 
-            Collection col1 = new HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p2);
             col1.add(p3);
 
@@ -195,8 +195,8 @@ public class MakeTransientFieldsPreservedUnchanged extends PersistenceManagerTes
             tx.commit();
             tx = null;
             
-            for (Iterator iter = col1.iterator(); iter.hasNext();) {
-                PCPoint p = (PCPoint) iter.next();
+            for (Iterator<PCPoint> iter = col1.iterator(); iter.hasNext();) {
+                PCPoint p = iter.next();
                 if (!testState(p, TRANSIENT, "transient")) {
                     fail(ASSERTION_FAILED,
                          "expected TRANSIENT instance, instance " + p + 
@@ -217,7 +217,7 @@ public class MakeTransientFieldsPreservedUnchanged extends PersistenceManagerTes
             int NUM_OBJS = 2;
             tx.begin();
 
-            Collection col1 = new HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p4);
             col1.add(p5);
 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientHasNoEffectOnTransientInstances.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientHasNoEffectOnTransientInstances.java
index 6564f19d..324f9799 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientHasNoEffectOnTransientInstances.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientHasNoEffectOnTransientInstances.java
@@ -109,7 +109,7 @@ public class MakeTransientHasNoEffectOnTransientInstances
         try {
             tx.begin();
 
-            Collection col1 = new HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p2);
             col1.add(p3);
 
@@ -132,7 +132,7 @@ public class MakeTransientHasNoEffectOnTransientInstances
         try {
             tx.begin();
 
-            Collection col1 = new HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p4);
             col1.add(p5);
 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientNotSubjectToRollback.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientNotSubjectToRollback.java
index 045a40dc..1264a216 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientNotSubjectToRollback.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakeTransientNotSubjectToRollback.java
@@ -19,6 +19,7 @@
 package org.apache.jdo.tck.api.persistencemanager.lifecycle;
 
 import java.util.Collection;
+import java.util.HashSet;
 
 import javax.jdo.PersistenceManager;
 import javax.jdo.Transaction;
@@ -125,7 +126,7 @@ public class MakeTransientNotSubjectToRollback extends PersistenceManagerTest {
         try {
             tx.begin();
 
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p2);
             col1.add(p3);
             pm.makeTransientAll(col1);
@@ -156,7 +157,7 @@ public class MakeTransientNotSubjectToRollback extends PersistenceManagerTest {
         try {
             tx.begin();
 
-            Collection col1 = new java.util.HashSet();
+            Collection<PCPoint> col1 = new HashSet<>();
             col1.add(p4);
             col1.add(p5);
 
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/DeletePersistentNullArgs.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/DeletePersistentNullArgs.java
index 4bcfc744..017b730b 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/DeletePersistentNullArgs.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/DeletePersistentNullArgs.java
@@ -20,11 +20,8 @@ package org.apache.jdo.tck.api.persistencemanager.nullargs;
 
 import java.util.Collection;
 
-import javax.jdo.JDOUserException;
 import javax.jdo.PersistenceManager;
-import javax.jdo.Transaction;
 
-import org.apache.jdo.tck.pc.mylib.PCPoint;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
@@ -52,12 +49,15 @@ public class DeletePersistentNullArgs extends PersistenceManagerNullsTest {
     static MethodUnderTest deletePersistent = 
             new MethodUnderTestDeletePersistent();
     static class MethodUnderTestDeletePersistent extends MethodUnderTest {
+        @Override
         public void pmApi(PersistenceManager pm, Object pc) {
             pm.deletePersistent(pc);
         }
-        public void pmApi(PersistenceManager pm, Collection pcs) {
+        @Override
+        public <T> void pmApi(PersistenceManager pm, Collection<T> pcs) {
             pm.deletePersistentAll(pcs);
         }
+        @Override
         public void pmApi(PersistenceManager pm, Object[] pcs) {
             pm.deletePersistentAll(pcs);
         }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/DetachCopyNullArgs.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/DetachCopyNullArgs.java
index d1b0c59b..f13cd016 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/DetachCopyNullArgs.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/DetachCopyNullArgs.java
@@ -20,11 +20,8 @@ package org.apache.jdo.tck.api.persistencemanager.nullargs;
 
 import java.util.Collection;
 
-import javax.jdo.JDOUserException;
 import javax.jdo.PersistenceManager;
-import javax.jdo.Transaction;
 
-import org.apache.jdo.tck.pc.mylib.PCPoint;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
@@ -51,12 +48,15 @@ public class DetachCopyNullArgs extends PersistenceManagerNullsTest {
 
     static MethodUnderTest detachCopy = new MethodUnderTestDetachCopy();
     static class MethodUnderTestDetachCopy extends MethodUnderTest {
+        @Override
         public Object pmApiReturn(PersistenceManager pm, Object pc) {
             return pm.detachCopy(pc);
         }
-        public Collection pmApiReturn(PersistenceManager pm, Collection pcs) {
+        @Override
+        public <T> Collection<T> pmApiReturn(PersistenceManager pm, Collection<T> pcs) {
             return pm.detachCopyAll(pcs);
         }
+        @Override
         public Object[] pmApiReturn(PersistenceManager pm, Object[] pcs) {
             return pm.detachCopyAll(pcs);
         }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/EvictNullArgs.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/EvictNullArgs.java
index 5c0be7e5..95d27d1b 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/EvictNullArgs.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/EvictNullArgs.java
@@ -20,11 +20,8 @@ package org.apache.jdo.tck.api.persistencemanager.nullargs;
 
 import java.util.Collection;
 
-import javax.jdo.JDOUserException;
 import javax.jdo.PersistenceManager;
-import javax.jdo.Transaction;
 
-import org.apache.jdo.tck.pc.mylib.PCPoint;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
@@ -52,12 +49,15 @@ public class EvictNullArgs extends PersistenceManagerNullsTest {
     static MethodUnderTest evict = 
             new MethodUnderTestEvict();
     static class MethodUnderTestEvict extends MethodUnderTest {
+        @Override
         public void pmApi(PersistenceManager pm, Object pc) {
             pm.evict(pc);
         }
-        public void pmApi(PersistenceManager pm, Collection pcs) {
+        @Override
+        public <T> void pmApi(PersistenceManager pm, Collection<T> pcs) {
             pm.evictAll(pcs);
         }
+        @Override
         public void pmApi(PersistenceManager pm, Object[] pcs) {
             pm.evictAll(pcs);
         }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/MakeNontransactionalNullArgs.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/MakeNontransactionalNullArgs.java
index 621435e1..e85e9d38 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/MakeNontransactionalNullArgs.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/MakeNontransactionalNullArgs.java
@@ -20,11 +20,8 @@ package org.apache.jdo.tck.api.persistencemanager.nullargs;
 
 import java.util.Collection;
 
-import javax.jdo.JDOUserException;
 import javax.jdo.PersistenceManager;
-import javax.jdo.Transaction;
 
-import org.apache.jdo.tck.pc.mylib.PCPoint;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
@@ -52,12 +49,15 @@ public class MakeNontransactionalNullArgs extends PersistenceManagerNullsTest {
     static MethodUnderTest makeNontransactional = 
             new MethodUnderTestMakeNontransactional();
     static class MethodUnderTestMakeNontransactional extends MethodUnderTest {
+        @Override
         public void pmApi(PersistenceManager pm, Object pc) {
             pm.makeNontransactional(pc);
         }
-        public void pmApi(PersistenceManager pm, Collection pcs) {
+        @Override
+        public <T> void pmApi(PersistenceManager pm, Collection<T> pcs) {
             pm.makeNontransactionalAll(pcs);
         }
+        @Override
         public void pmApi(PersistenceManager pm, Object[] pcs) {
             pm.makeNontransactionalAll(pcs);
         }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/MakePersistentNullArgs.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/MakePersistentNullArgs.java
index 2920730b..2146663d 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/MakePersistentNullArgs.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/MakePersistentNullArgs.java
@@ -20,11 +20,8 @@ package org.apache.jdo.tck.api.persistencemanager.nullargs;
 
 import java.util.Collection;
 
-import javax.jdo.JDOUserException;
 import javax.jdo.PersistenceManager;
-import javax.jdo.Transaction;
 
-import org.apache.jdo.tck.pc.mylib.PCPoint;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
@@ -51,12 +48,15 @@ public class MakePersistentNullArgs extends PersistenceManagerNullsTest {
 
     static MethodUnderTest makePersistent = new MethodUnderTestMakePersistent();
     static class MethodUnderTestMakePersistent extends MethodUnderTest {
+        @Override
         public Object pmApiReturn(PersistenceManager pm, Object pc) {
             return pm.makePersistent(pc);
         }
-        public Collection pmApiReturn(PersistenceManager pm, Collection pcs) {
+        @Override
+        public <T> Collection<T> pmApiReturn(PersistenceManager pm, Collection<T> pcs) {
             return pm.makePersistentAll(pcs);
         }
+        @Override
         public Object[] pmApiReturn(PersistenceManager pm, Object[] pcs) {
             return pm.makePersistentAll(pcs);
         }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/MakeTransactionalNullArgs.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/MakeTransactionalNullArgs.java
index 03ea95fe..5a89f8e6 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/MakeTransactionalNullArgs.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/MakeTransactionalNullArgs.java
@@ -20,11 +20,8 @@ package org.apache.jdo.tck.api.persistencemanager.nullargs;
 
 import java.util.Collection;
 
-import javax.jdo.JDOUserException;
 import javax.jdo.PersistenceManager;
-import javax.jdo.Transaction;
 
-import org.apache.jdo.tck.pc.mylib.PCPoint;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
@@ -52,12 +49,15 @@ public class MakeTransactionalNullArgs extends PersistenceManagerNullsTest {
     static MethodUnderTest makeTransactional = 
             new MethodUnderTestMakeTransactional();
     static class MethodUnderTestMakeTransactional extends MethodUnderTest {
+        @Override
         public void pmApi(PersistenceManager pm, Object pc) {
             pm.makeTransactional(pc);
         }
-        public void pmApi(PersistenceManager pm, Collection pcs) {
+        @Override
+        public <T> void pmApi(PersistenceManager pm, Collection<T> pcs) {
             pm.makeTransactionalAll(pcs);
         }
+        @Override
         public void pmApi(PersistenceManager pm, Object[] pcs) {
             pm.makeTransactionalAll(pcs);
         }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/MakeTransientNullArgs.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/MakeTransientNullArgs.java
index 0cad7aa0..aa1b52c5 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/MakeTransientNullArgs.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/MakeTransientNullArgs.java
@@ -20,11 +20,8 @@ package org.apache.jdo.tck.api.persistencemanager.nullargs;
 
 import java.util.Collection;
 
-import javax.jdo.JDOUserException;
 import javax.jdo.PersistenceManager;
-import javax.jdo.Transaction;
 
-import org.apache.jdo.tck.pc.mylib.PCPoint;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
@@ -52,12 +49,15 @@ public class MakeTransientNullArgs extends PersistenceManagerNullsTest {
     static MethodUnderTest makeTransient = 
             new MethodUnderTestMakeTransient();
     static class MethodUnderTestMakeTransient extends MethodUnderTest {
+        @Override
         public void pmApi(PersistenceManager pm, Object pc) {
             pm.makeTransient(pc);
         }
-        public void pmApi(PersistenceManager pm, Collection pcs) {
+        @Override
+        public <T> void pmApi(PersistenceManager pm, Collection<T> pcs) {
             pm.makeTransientAll(pcs);
         }
+        @Override
         public void pmApi(PersistenceManager pm, Object[] pcs) {
             pm.makeTransientAll(pcs);
         }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/PersistenceManagerNullsTest.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/PersistenceManagerNullsTest.java
index 7e7fc744..46986ca1 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/PersistenceManagerNullsTest.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/PersistenceManagerNullsTest.java
@@ -19,11 +19,9 @@ package org.apache.jdo.tck.api.persistencemanager.nullargs;
 
 
 import java.util.Arrays;
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
 
-import javax.jdo.JDOHelper;
 import javax.jdo.PersistenceManager;
 import javax.jdo.Transaction;
 
@@ -49,7 +47,7 @@ public class PersistenceManagerNullsTest extends JDO_Test {
         public void pmApi(PersistenceManager pm, Object obj) {
             throw new UnsupportedOperationException("Test must implement this method");
         }
-        public void pmApi(PersistenceManager pm, Collection coll) {
+        public <T> void pmApi(PersistenceManager pm, Collection<T> coll) {
             throw new UnsupportedOperationException("Test must implement this method");
         }
         public void pmApi(PersistenceManager pm, Object[] objs) {
@@ -58,7 +56,7 @@ public class PersistenceManagerNullsTest extends JDO_Test {
         public Object pmApiReturn(PersistenceManager pm, Object obj) {
             throw new UnsupportedOperationException("Test must implement this method");
         }
-        public Collection pmApiReturn(PersistenceManager pm, Collection coll) {
+        public <T> Collection<T> pmApiReturn(PersistenceManager pm, Collection<T> coll) {
             throw new UnsupportedOperationException("Test must implement this method");
         }
         public Object[] pmApiReturn(PersistenceManager pm, Object[] objs) {
@@ -77,11 +75,11 @@ public class PersistenceManagerNullsTest extends JDO_Test {
         "Assertion A12.6-5 failed: ";
 
     protected PCPoint pNotNull = null;
-    protected Collection collNullElem = null;
-    protected Collection expectedCollection = null;
+    protected Collection<?> collNullElem = null;
+    protected Collection<?> expectedCollection = null;
     protected Object[] arrayNullElem = new Object[] {null, null};
     protected Object[] expectedArray = new Object[] {null, null};
-    protected Collection testInstances = null;
+    protected Collection<?> testInstances = null;
     
     /** */
     protected PersistenceManagerNullsTest() { }
@@ -136,7 +134,7 @@ public class PersistenceManagerNullsTest extends JDO_Test {
         return out.toString();
     }
 
-    protected static String toString(Collection objs) {
+    protected static <T> String toString(Collection<T> objs) {
         return toString(objs.toArray());
     }
 
@@ -146,13 +144,13 @@ public class PersistenceManagerNullsTest extends JDO_Test {
       * @param expected Collection
       * @param actual Collection
       */
-    protected boolean checkReturn(Collection expected, Collection actual) {
-        Object eElem = null;
-        Object aElem = null;
+    protected <S, T> boolean checkReturn(Collection<S> expected, Collection<T> actual) {
+        S eElem = null;
+        T aElem = null;
         if (expected.size() != actual.size())
             return false;
-        Iterator eIt = expected.iterator();
-        Iterator aIt = actual.iterator();
+        Iterator<S> eIt = expected.iterator();
+        Iterator<T> aIt = actual.iterator();
         while (eIt.hasNext()) {
             eElem = eIt.next();
             aElem = aIt.next();
@@ -224,7 +222,7 @@ public class PersistenceManagerNullsTest extends JDO_Test {
     public void executeNullCollectionParameter(MethodUnderTest mut,
             String method) {
 
-        Collection coll = null;
+        Collection<?> coll = null;
         Transaction tx = pm.currentTransaction();
 
         try {
@@ -296,7 +294,7 @@ public class PersistenceManagerNullsTest extends JDO_Test {
      * @param mut method under test
      * @param method method name
      */
-    public void executeCollectionNullElement(Collection coll,
+    public <T> void executeCollectionNullElement(Collection<T> coll,
             MethodUnderTest mut, String method) {
 
         Transaction tx = pm.currentTransaction();
@@ -402,8 +400,8 @@ public class PersistenceManagerNullsTest extends JDO_Test {
     public void executeNullCollectionParameterReturn( MethodUnderTest mut, 
             String method) {
 
-        Collection returnVal = null;
-        Collection coll = null;
+        Collection<?> returnVal = null;
+        Collection<?> coll = null;
         Transaction tx = pm.currentTransaction();
 
         try {
@@ -484,10 +482,10 @@ public class PersistenceManagerNullsTest extends JDO_Test {
      * @param mut method under test
      * @param method method name
      */
-    public void executeCollectionNullElementReturn(Collection coll,
+    public <T> void executeCollectionNullElementReturn(Collection<T> coll,
             MethodUnderTest mut, String method) {
 
-        Collection returnVal = null;
+        Collection<T> returnVal = null;
         Transaction tx = pm.currentTransaction();
         try {
             tx = pm.currentTransaction();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/RefreshNullArgs.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/RefreshNullArgs.java
index a6442018..544d92c5 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/RefreshNullArgs.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/RefreshNullArgs.java
@@ -20,11 +20,8 @@ package org.apache.jdo.tck.api.persistencemanager.nullargs;
 
 import java.util.Collection;
 
-import javax.jdo.JDOUserException;
 import javax.jdo.PersistenceManager;
-import javax.jdo.Transaction;
 
-import org.apache.jdo.tck.pc.mylib.PCPoint;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
@@ -52,12 +49,15 @@ public class RefreshNullArgs extends PersistenceManagerNullsTest {
     static MethodUnderTest refresh = 
             new MethodUnderTestRefresh();
     static class MethodUnderTestRefresh extends MethodUnderTest {
+        @Override
         public void pmApi(PersistenceManager pm, Object pc) {
             pm.refresh(pc);
         }
-        public void pmApi(PersistenceManager pm, Collection pcs) {
+        @Override
+        public <T> void pmApi(PersistenceManager pm, Collection<T> pcs) {
             pm.refreshAll(pcs);
         }
+        @Override
         public void pmApi(PersistenceManager pm, Object[] pcs) {
             pm.refreshAll(pcs);
         }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/RetrieveNullArgs.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/RetrieveNullArgs.java
index 3e78b2ae..1d9f6422 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/RetrieveNullArgs.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/RetrieveNullArgs.java
@@ -20,11 +20,8 @@ package org.apache.jdo.tck.api.persistencemanager.nullargs;
 
 import java.util.Collection;
 
-import javax.jdo.JDOUserException;
 import javax.jdo.PersistenceManager;
-import javax.jdo.Transaction;
 
-import org.apache.jdo.tck.pc.mylib.PCPoint;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
@@ -52,12 +49,15 @@ public class RetrieveNullArgs extends PersistenceManagerNullsTest {
     static MethodUnderTest retrieve = 
             new MethodUnderTestRetrieve();
     static class MethodUnderTestRetrieve extends MethodUnderTest {
+        @Override
         public void pmApi(PersistenceManager pm, Object pc) {
             pm.retrieve(pc);
         }
-        public void pmApi(PersistenceManager pm, Collection pcs) {
+        @Override
+        public <T> void pmApi(PersistenceManager pm, Collection<T> pcs) {
             pm.retrieveAll(pcs);
         }
+        @Override
         public void pmApi(PersistenceManager pm, Object[] pcs) {
             pm.retrieveAll(pcs);
         }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/RetrieveWithFetchPlanNullArgs.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/RetrieveWithFetchPlanNullArgs.java
index adc7c423..2760990f 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/RetrieveWithFetchPlanNullArgs.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanager/nullargs/RetrieveWithFetchPlanNullArgs.java
@@ -15,16 +15,12 @@
  * limitations under the License.
  */
 
-
 package org.apache.jdo.tck.api.persistencemanager.nullargs;
 
 import java.util.Collection;
 
-import javax.jdo.JDOUserException;
 import javax.jdo.PersistenceManager;
-import javax.jdo.Transaction;
 
-import org.apache.jdo.tck.pc.mylib.PCPoint;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
@@ -52,12 +48,15 @@ public class RetrieveWithFetchPlanNullArgs extends PersistenceManagerNullsTest {
     static MethodUnderTest retrieveWithFetchPlan = 
             new MethodUnderTestRetrieveWithFetchPlan();
     static class MethodUnderTestRetrieveWithFetchPlan extends MethodUnderTest {
+        @Override
         public void pmApi(PersistenceManager pm, Object pc) {
             pm.retrieve(pc, false);
         }
-        public void pmApi(PersistenceManager pm, Collection pcs) {
+        @Override
+        public <T> void pmApi(PersistenceManager pm, Collection<T> pcs) {
             pm.retrieveAll(pcs, false);
         }
+        @Override
         public void pmApi(PersistenceManager pm, Object[] pcs) {
             pm.retrieveAll(false, pcs);
         }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/AbstractGetPMF.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/AbstractGetPMF.java
index 8d47d435..a2736b9a 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/AbstractGetPMF.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/AbstractGetPMF.java
@@ -21,7 +21,7 @@ import java.lang.reflect.Method;
 
 import java.io.File;
 import java.util.Iterator;
-import java.util.Map.Entry;
+import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 
@@ -144,11 +144,11 @@ abstract class AbstractGetPMF extends JDO_Test {
             Properties props) {
         Object[] noArgs = new Object[]{};
         String javaxjdooption = "javax.jdo.option.";
-        Class pmfclass = pmf.getClass();
-        Set entries = props.entrySet();
+        Class<?> pmfclass = pmf.getClass();
+        Set<Map.Entry<Object, Object>> entries = props.entrySet();
         StringBuffer buffer = new StringBuffer();
-        for (Iterator it = entries.iterator(); it.hasNext();) {
-            Entry entry = (Entry)it.next();
+        for (Iterator<Map.Entry<Object, Object>> it = entries.iterator(); it.hasNext();) {
+            Map.Entry<Object, Object> entry = it.next();
             String key = (String)entry.getKey();
             if (key.equals("javax.jdo.option.ConnectionPassword")) {
                 continue;
@@ -188,7 +188,7 @@ abstract class AbstractGetPMF extends JDO_Test {
     
     /** Get the "get" method corresponding to the option name.
      */
-    Method getGetMethod(Class cls, String optionName) {
+    Method getGetMethod(Class<?> cls, String optionName) {
         try {
             return cls.getMethod("get" + optionName, new Class[]{});
         } catch (Exception ex) {
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/AfterCloseSetMethodsThrowException.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/AfterCloseSetMethodsThrowException.java
index 96497f1f..748081e7 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/AfterCloseSetMethodsThrowException.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/AfterCloseSetMethodsThrowException.java
@@ -64,10 +64,10 @@ public class AfterCloseSetMethodsThrowException extends JDO_Test {
 
     /** */
     public void test() {
-        Class[] stringParameters = new Class[]{String.class};
-        Class[] booleanParameters = new Class[]{boolean.class};
-        Class[] objectParameters = new Class[]{Object.class};
-        Class[] integerParameters = new Class[]{Integer.class};
+        Class<?>[] stringParameters = new Class[]{String.class};
+        Class<?>[] booleanParameters = new Class[]{boolean.class};
+        Class<?>[] objectParameters = new Class[]{Object.class};
+        Class<?>[] integerParameters = new Class[]{Integer.class};
         Object[] stringParameter = new Object[]{"Nobody knows the trouble"};
         Object[] booleanParameter = new Object[]{Boolean.FALSE};
         Object[] objectParameter = new Object[]{null};
@@ -132,9 +132,9 @@ public class AfterCloseSetMethodsThrowException extends JDO_Test {
         pmf = getPMF();
         closePMF(pmf); // don't use closePMF() because that sets pmf to null
         // each set method should throw an exception
-        Collection setCollection = Arrays.asList(setMethods);
-        for (Iterator it = setCollection.iterator(); it.hasNext();) {
-            SetProperty sp = (SetProperty)it.next();
+        Collection<SetProperty> setCollection = Arrays.asList(setMethods);
+        for (Iterator<SetProperty> it = setCollection.iterator(); it.hasNext();) {
+            SetProperty sp = it.next();
             String where = sp.getMethodName();
             try {
                 sp.execute(pmf);
@@ -150,9 +150,9 @@ public class AfterCloseSetMethodsThrowException extends JDO_Test {
             }
         }
         // each get method should succeed
-        Collection getCollection = Arrays.asList(getMethods);
-        for (Iterator it = getCollection.iterator(); it.hasNext();) {
-            GetProperty gp = (GetProperty)it.next();
+        Collection<GetProperty> getCollection = Arrays.asList(getMethods);
+        for (Iterator<GetProperty> it = getCollection.iterator(); it.hasNext();) {
+            GetProperty gp = it.next();
             String where = gp.getMethodName();
             try {
                 gp.execute(pmf);
@@ -169,10 +169,10 @@ public class AfterCloseSetMethodsThrowException extends JDO_Test {
         
         java.lang.reflect.Method method;
         String methodName;
-        Class[] parameters;
+        Class<?>[] parameters;
         Object[] parameter;
        
-        SetProperty(String methodName, Class[] parameters, Object[] parameter) {
+        SetProperty(String methodName, Class<?>[] parameters, Object[] parameter) {
             this.methodName = methodName;
             this.parameters = parameters;
             this.parameter = parameter;
@@ -207,7 +207,7 @@ public class AfterCloseSetMethodsThrowException extends JDO_Test {
             this.methodName = methodName;
             try {
                 method = PersistenceManagerFactory.class.getMethod(methodName,
-                        (Class[])null);
+                        (Class<?>[])null);
             } catch (NoSuchMethodException ex) {
                 throw new JDOFatalInternalException("Method not defined: " + methodName);
             }
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/AfterGetPersistenceManagerNoSetMethodsSucceed.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/AfterGetPersistenceManagerNoSetMethodsSucceed.java
index ee42c186..e91a5acb 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/AfterGetPersistenceManagerNoSetMethodsSucceed.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/AfterGetPersistenceManagerNoSetMethodsSucceed.java
@@ -49,8 +49,8 @@ public class AfterGetPersistenceManagerNoSetMethodsSucceed extends JDO_Test {
     private String username;
     private String password;
 
-    private Class[] stringParameters = null;
-    private Class[] booleanParameters = null;
+    private Class<?>[] stringParameters = null;
+    private Class<?>[] booleanParameters = null;
     private Object[] stringParameter = null;
     private Object[] booleanParameter = null;
     private SetProperty[] setMethods = null;
@@ -139,9 +139,9 @@ public class AfterGetPersistenceManagerNoSetMethodsSucceed extends JDO_Test {
             pm = getPMF().getPersistenceManager(username,password);
 
         // each set method should throw an exception
-        Collection setCollection = Arrays.asList(setMethods);
-        for (Iterator it = setCollection.iterator(); it.hasNext();) {
-            SetProperty sp = (SetProperty)it.next();
+        Collection<SetProperty> setCollection = Arrays.asList(setMethods);
+        for (Iterator<SetProperty> it = setCollection.iterator(); it.hasNext();) {
+            SetProperty sp = it.next();
             String where = sp.getMethodName();
             try {
                 sp.execute(pmf);
@@ -154,9 +154,9 @@ public class AfterGetPersistenceManagerNoSetMethodsSucceed extends JDO_Test {
             }
         }
         // each get method should succeed
-        Collection getCollection = Arrays.asList(getMethods);
-        for (Iterator it = getCollection.iterator(); it.hasNext();) {
-            GetProperty gp = (GetProperty)it.next();
+        Collection<GetProperty> getCollection = Arrays.asList(getMethods);
+        for (Iterator<GetProperty> it = getCollection.iterator(); it.hasNext();) {
+            GetProperty gp = it.next();
             String where = gp.getMethodName();
             try {
                 gp.execute(pmf);
@@ -172,10 +172,10 @@ public class AfterGetPersistenceManagerNoSetMethodsSucceed extends JDO_Test {
         
         java.lang.reflect.Method method;
         String methodName;
-        Class[] parameters;
+        Class<?>[] parameters;
         Object[] parameter;
        
-        SetProperty(String methodName, Class[] parameters, Object[] parameter) {
+        SetProperty(String methodName, Class<?>[] parameters, Object[] parameter) {
             this.methodName = methodName;
             this.parameters = parameters;
             this.parameter = parameter;
@@ -210,7 +210,7 @@ public class AfterGetPersistenceManagerNoSetMethodsSucceed extends JDO_Test {
             this.methodName = methodName;
             try {
                 method = PersistenceManagerFactory.class.getMethod(methodName,
-                        (Class[])null);
+                        (Class<?>[])null);
             } catch (NoSuchMethodException ex) {
                 throw new JDOFatalInternalException(
                     "Method not defined: " + methodName);
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/Close.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/Close.java
index 15b503fe..8f9b76a1 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/Close.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/Close.java
@@ -100,12 +100,10 @@ public class Close extends JDO_Test {
         try {
             // don't use closePMF methods because they check isClosed before calling
             doPrivileged(
-                new PrivilegedAction () {
-                    public Object run () {
+                    () -> {
                         pmf.close();
                         return null;
                     }
-                }
             );
         } catch (JDOUserException ex) {
             // unexpected exception
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/CloseWithoutPermissionThrowsSecurityException.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/CloseWithoutPermissionThrowsSecurityException.java
index e24eeafb..1df9a0d0 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/CloseWithoutPermissionThrowsSecurityException.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/CloseWithoutPermissionThrowsSecurityException.java
@@ -98,6 +98,7 @@ public class CloseWithoutPermissionThrowsSecurityException extends JDO_Test {
     }
 
     public class MySecurityManager extends SecurityManager {
+        @Override
         public void checkPermission(Permission perm) {
             if (perm==JDOPermission.CLOSE_PERSISTENCE_MANAGER_FACTORY)
                 throw new SecurityException(
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/GetManagedClasses.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/GetManagedClasses.java
index 9e41b973..4a5e87ca 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/GetManagedClasses.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/GetManagedClasses.java
@@ -59,7 +59,7 @@ public class GetManagedClasses extends JDO_Test {
 
             	pm.getExtent(PCPoint.class);
 
-            	Query q = pm.newQuery(PCRect.class);
+            	Query<PCRect> q = pm.newQuery(PCRect.class);
             	q.execute();
 
             	pm.currentTransaction().rollback();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/GetPersistenceManagerForUser.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/GetPersistenceManagerForUser.java
index 0201cd4a..f179d7d8 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/GetPersistenceManagerForUser.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/GetPersistenceManagerForUser.java
@@ -61,6 +61,7 @@ public class GetPersistenceManagerForUser extends JDO_Test {
     }
 
     /** */
+    @Override
     protected void localSetUp() {
         Properties props = loadProperties(PMFProperties);
         username = (String)props.remove(CONNECTION_USERNAME_PROP);
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/GetProperties.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/GetProperties.java
index d35a683a..5e76d350 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/GetProperties.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/GetProperties.java
@@ -61,7 +61,7 @@ public class GetProperties extends JDO_Test {
        int foundStandardProperties = 0;
 
        Properties p = pmf.getProperties();
-       for (Enumeration e = p.propertyNames(); e.hasMoreElements(); ) {
+       for (Enumeration<?> e = p.propertyNames(); e.hasMoreElements(); ) {
            String s = (String) e.nextElement();
            if (debug) logger.debug ("\t" + s + ": " + p.getProperty(s));
            
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetConnectionPassword.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetConnectionPassword.java
index 70ec0c56..db9370c2 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetConnectionPassword.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetConnectionPassword.java
@@ -52,6 +52,7 @@ public class SetConnectionPassword extends JDO_Test {
     }
 
     /** */
+    @Override
     protected void localSetUp() {
         closePMF();
         pmf = getUnconfiguredPMF();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetConnectionURL.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetConnectionURL.java
index ce702572..975b1c4f 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetConnectionURL.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetConnectionURL.java
@@ -56,6 +56,7 @@ public class SetConnectionURL extends JDO_Test {
     }
 
     /** */
+    @Override
     protected void localSetUp() {
         closePMF();
         pmf = getUnconfiguredPMF();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetConnectionUserName.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetConnectionUserName.java
index 16e060c1..8ba2a3fe 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetConnectionUserName.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetConnectionUserName.java
@@ -55,6 +55,7 @@ public class SetConnectionUserName extends JDO_Test {
     }
 
     /** */
+    @Override
     protected void localSetUp() {
         closePMF();
         pmf = getUnconfiguredPMF();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetIgnoreCache.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetIgnoreCache.java
index fef077f2..7896a72e 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetIgnoreCache.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetIgnoreCache.java
@@ -17,8 +17,6 @@
  
 package org.apache.jdo.tck.api.persistencemanagerfactory;
 
-import javax.jdo.PersistenceManagerFactory;
-
 import org.apache.jdo.tck.JDO_Test;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
@@ -51,6 +49,7 @@ public class SetIgnoreCache extends JDO_Test {
     }
 
     /** */
+    @Override
     protected void localSetUp() {
         closePMF();
         pmf = getUnconfiguredPMF();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetMultithreaded.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetMultithreaded.java
index 1f92c2c7..72462ba6 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetMultithreaded.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetMultithreaded.java
@@ -17,11 +17,6 @@
  
 package org.apache.jdo.tck.api.persistencemanagerfactory;
 
-import java.util.Properties;
-
-import javax.jdo.PersistenceManager;
-import javax.jdo.PersistenceManagerFactory;
-
 import org.apache.jdo.tck.JDO_Test;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
@@ -55,6 +50,7 @@ public class SetMultithreaded extends JDO_Test {
     }
 
     /** */
+    @Override
     protected void localSetUp() {
         closePMF();
         pmf = getUnconfiguredPMF();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetNonTransactionalRead.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetNonTransactionalRead.java
index 2b1dab68..066be273 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetNonTransactionalRead.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetNonTransactionalRead.java
@@ -17,8 +17,6 @@
  
 package org.apache.jdo.tck.api.persistencemanagerfactory;
 
-import javax.jdo.PersistenceManagerFactory;
-
 import org.apache.jdo.tck.JDO_Test;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
@@ -52,6 +50,7 @@ public class SetNonTransactionalRead extends JDO_Test {
     }
 
     /** */
+    @Override
     protected void localSetUp() {
         closePMF();
         pmf = getUnconfiguredPMF();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetNonTransactionalWrite.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetNonTransactionalWrite.java
index 739cbbc7..dcef017c 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetNonTransactionalWrite.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetNonTransactionalWrite.java
@@ -17,8 +17,6 @@
  
 package org.apache.jdo.tck.api.persistencemanagerfactory;
 
-import javax.jdo.PersistenceManagerFactory;
-
 import org.apache.jdo.tck.JDO_Test;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
@@ -52,6 +50,7 @@ public class SetNonTransactionalWrite extends JDO_Test {
     }
 
     /** */
+    @Override
     protected void localSetUp() {
         closePMF();
         pmf = getUnconfiguredPMF();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetOptimistic.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetOptimistic.java
index 065489e0..b8452ce2 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetOptimistic.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetOptimistic.java
@@ -51,6 +51,7 @@ public class SetOptimistic extends JDO_Test {
     }
 
     /** */
+    @Override
     protected void localSetUp() {
         closePMF();
         pmf = getUnconfiguredPMF();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetReadOnly.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetReadOnly.java
index d63dc1c8..cf9813c8 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetReadOnly.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetReadOnly.java
@@ -17,8 +17,6 @@
  
 package org.apache.jdo.tck.api.persistencemanagerfactory;
 
-import javax.jdo.PersistenceManagerFactory;
-
 import org.apache.jdo.tck.JDO_Test;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
@@ -52,6 +50,7 @@ public class SetReadOnly extends JDO_Test {
     }
 
     /** */
+    @Override
     protected void localSetUp() {
         closePMF();
         pmf = getUnconfiguredPMF();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetRetainValues.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetRetainValues.java
index aa907319..4921abcb 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetRetainValues.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetRetainValues.java
@@ -17,8 +17,6 @@
  
 package org.apache.jdo.tck.api.persistencemanagerfactory;
 
-import javax.jdo.PersistenceManagerFactory;
-
 import org.apache.jdo.tck.JDO_Test;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
@@ -53,6 +51,7 @@ public class SetRetainValues extends JDO_Test {
     }
 
     /** */
+    @Override
     protected void localSetUp() {
         closePMF();
         pmf = getUnconfiguredPMF();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetTransactionIsolationLevel.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetTransactionIsolationLevel.java
index 194897d0..e34f39a4 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetTransactionIsolationLevel.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SetTransactionIsolationLevel.java
@@ -70,6 +70,7 @@ public class SetTransactionIsolationLevel extends JDO_Test
     }
 
     /** */
+    @Override
     protected void localSetUp() {
         // setUp gets a PMF that needs to be closed
         closePMF();
@@ -151,7 +152,7 @@ public class SetTransactionIsolationLevel extends JDO_Test
     /** */
     private void getPMFsetTransactionIsolationLevelFromProperties(String level) {
         String property = PROPERTY_TRANSACTION_ISOLATION_LEVEL + "." + level;
-        Map modifiedProps = new HashMap(PMFPropertiesObject);
+        Map<Object, Object> modifiedProps = new HashMap<>(PMFPropertiesObject);
         modifiedProps.put(PROPERTY_TRANSACTION_ISOLATION_LEVEL, level);
         if (isSupported(property)) {
             pmf2 = JDOHelper.getPersistenceManagerFactory(modifiedProps);
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SupportedOptions.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SupportedOptions.java
index b221d3d1..27ef3f56 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SupportedOptions.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/SupportedOptions.java
@@ -66,10 +66,10 @@ public class SupportedOptions extends JDO_Test {
     public void test() {
         PersistenceManagerFactory pmf = getPMF();
         if (debug) logger.debug("Options supported by this implementation:");
-        Collection c = pmf.supportedOptions();
-        Iterator iter = c.iterator();
+        Collection<String> c = pmf.supportedOptions();
+        Iterator<String> iter = c.iterator();
         while( iter.hasNext() ){
-            String option = (String) iter.next();
+            String option = iter.next();
             if (debug) logger.debug(option);
         }
     }  
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/JDOConfigListener.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/JDOConfigListener.java
index bc93d08f..60f5cba4 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/JDOConfigListener.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/JDOConfigListener.java
@@ -17,6 +17,7 @@
 package org.apache.jdo.tck.api.persistencemanagerfactory.config;
 
 import java.util.HashMap;
+import java.util.Map;
 import javax.jdo.JDOHelper;
 import javax.jdo.PersistenceManager;
 import javax.jdo.PersistenceManagerFactory;
@@ -57,7 +58,7 @@ public class JDOConfigListener extends JDO_Test {
     // Do not use superclass pmf, pm
     private PersistenceManagerFactory pmf = null;
     private PersistenceManager pm = null;
-    private HashMap overrides = new HashMap();
+    private Map<String, String> overrides = new HashMap<>();
 
     /**
      * The <code>main</code> is called when the class
@@ -153,6 +154,7 @@ public class JDOConfigListener extends JDO_Test {
         tx.commit();
     }
 
+    @Override
     protected void localTearDown() {
         super.localTearDown();
         StoreListener.resetValues();
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/Jdoconfig.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/Jdoconfig.java
index 01bea8f1..b4f8a0c0 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/Jdoconfig.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/Jdoconfig.java
@@ -17,6 +17,7 @@
 package org.apache.jdo.tck.api.persistencemanagerfactory.config;
 
 import java.util.HashMap;
+import java.util.Map;
 import javax.jdo.JDOHelper;
 import javax.jdo.PersistenceManager;
 import javax.jdo.PersistenceManagerFactory;
@@ -48,7 +49,7 @@ public class Jdoconfig extends JDO_Test {
     // Do not use superclass pmf, pm
     private PersistenceManagerFactory privatePmf = null;
     private PersistenceManager privatePm = null;
-    private HashMap overrides = new HashMap();
+    private Map<String, String> overrides = new HashMap<>();
 
     /**
      * The <code>main</code> is called when the class
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/Persistence.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/Persistence.java
index 7f11717a..9a2cfb59 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/Persistence.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/Persistence.java
@@ -82,7 +82,7 @@ public class Persistence extends JDO_Test {
     /** */
     public void testGetPMFfromNamedPUWithEmptyOverrides() {
         String name = "PUNamed_" + IDENTITYTYPE + "0";
-        Map overrides = new HashMap();
+        Map<Object, Object> overrides = new HashMap<>();
         pmf = JDOHelper.getPersistenceManagerFactory(overrides, name);
         assertEquals("Incorrect value for RestoreValues",
                 false, pmf.getRestoreValues());
diff --git a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/ThrowOnUnknownStandardProperties.java b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/ThrowOnUnknownStandardProperties.java
index 11657511..64ac50ab 100644
--- a/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/ThrowOnUnknownStandardProperties.java
+++ b/tck/src/main/java/org/apache/jdo/tck/api/persistencemanagerfactory/config/ThrowOnUnknownStandardProperties.java
@@ -39,16 +39,18 @@ public class ThrowOnUnknownStandardProperties extends JDO_Test {
         BatchTestRunner.run(ThrowOnUnknownStandardProperties.class);
     }
 
+    @Override
     protected boolean preSetUp() {
         return false;
     }
 
+    @Override
     protected boolean preTearDown() {
         return false;
     }
 
     protected Method getStaticGetPMFMethod() {
-        Class pmfClass = getPMFClass();
+        Class<?> pmfClass = getPMFClass();
         try {
             Method m = pmfClass.getDeclaredMethod(
                     "getPersistenceManagerFactory", new Class[] {Map.class});
diff --git a/tck/src/main/java/org/apache/jdo/tck/enhancement/EnhancerTest.java b/tck/src/main/java/org/apache/jdo/tck/enhancement/EnhancerTest.java
index c5cbc53d..b5594b1a 100644
--- a/tck/src/main/java/org/apache/jdo/tck/enhancement/EnhancerTest.java
+++ b/tck/src/main/java/org/apache/jdo/tck/enhancement/EnhancerTest.java
@@ -67,7 +67,7 @@ public abstract class EnhancerTest extends JDO_Test {
      * @param packageName package name
      * @param fullyQualifiedClassNameList list of class names
      */
-    protected abstract void runTestOnePackage (String packageName, List fullyQualifiedClassNameList);
+    protected abstract void runTestOnePackage (String packageName, List<String> fullyQualifiedClassNameList);
     
     /**
      *
@@ -84,7 +84,7 @@ public abstract class EnhancerTest extends JDO_Test {
         // First, get classes to test from properties file.
         Properties classesToTest = getProperties("enhancement-test.properties"); //NOI18N
         
-        Enumeration enumeration = classesToTest.propertyNames();
+        Enumeration<?> enumeration = classesToTest.propertyNames();
         int numberOfPackages = 0;
         
         // Each key is a package name; the value is a list of class names to test.
@@ -95,7 +95,7 @@ public abstract class EnhancerTest extends JDO_Test {
             String classNames = (String) classesToTest.get(packageName);
             if (debug) logger.debug("EnhancerTest Classes: " + classNames);
             StringTokenizer st = new StringTokenizer(classNames, " ,");
-            ArrayList classNameList = new ArrayList();
+            List<String> classNameList = new ArrayList<>();
             // Each entry is a list of class names separated by comma or space
             while (st.hasMoreTokens()) {
                 String className = st.nextToken();
diff --git a/tck/src/main/java/org/apache/jdo/tck/extents/AutoCloseable.java b/tck/src/main/java/org/apache/jdo/tck/extents/AutoCloseable.java
index 13ea70f4..b39fefdb 100644
--- a/tck/src/main/java/org/apache/jdo/tck/extents/AutoCloseable.java
+++ b/tck/src/main/java/org/apache/jdo/tck/extents/AutoCloseable.java
@@ -24,7 +24,6 @@ import javax.jdo.Extent;
 import javax.jdo.PersistenceManager;
 import javax.jdo.Transaction;
 
-import org.apache.jdo.tck.pc.mylib.PCPoint;
 import org.apache.jdo.tck.util.BatchTestRunner;
 import org.apache.jdo.tck.pc.company.Department;
 
@@ -85,7 +84,7 @@ public class AutoCloseable extends ExtentTest {
                         "(3) Closed extent iterator should return false on hasNext().");
             }
             try {
-                Department next = iterator.next();
+                iterator.next();
                 fail(ASSERTION_FAILED,
                         "(4) Closed extent iterator should throw NoSuchElementException on next().");
             } catch (NoSuchElementException ex) {
@@ -139,7 +138,7 @@ public class AutoCloseable extends ExtentTest {
                         "(3) Closed extent iterator should return false on hasNext().");
             }
             try {
-                Department next = iterator.next();
+                iterator.next();
                 fail(ASSERTION_FAILED,
                         "(4) Closed extent iterator should throw NoSuchElementException on next().");
             } catch (NoSuchElementException ex) {
diff --git a/tck/src/main/java/org/apache/jdo/tck/extents/CloseAll.java b/tck/src/main/java/org/apache/jdo/tck/extents/CloseAll.java
index a414bbb1..ccee63bb 100644
--- a/tck/src/main/java/org/apache/jdo/tck/extents/CloseAll.java
+++ b/tck/src/main/java/org/apache/jdo/tck/extents/CloseAll.java
@@ -57,12 +57,12 @@ public class CloseAll extends ExtentTest {
     public void test() {
         try {
             beginTransaction();
-            Extent ex = getPM().getExtent (Employee.class, true);
-            Iterator it1 = ex.iterator();
-            deleteEmployee((Employee)it1.next());
-            Iterator it2 = ex.iterator();
+            Extent<Employee> ex = getPM().getExtent (Employee.class, true);
+            Iterator<Employee> it1 = ex.iterator();
+            deleteEmployee(it1.next());
+            Iterator<Employee> it2 = ex.iterator();
             addEmployee();
-            Iterator it3 = ex.iterator();
+            Iterator<Employee> it3 = ex.iterator();
             ex.closeAll();
             if (it1.hasNext()) {
                 fail(ASSERTION_FAILED,
diff --git a/tck/src/main/java/org/apache/jdo/tck/extents/CloseOfExtentIteratorIsIteratorSpecific.java b/tck/src/main/java/org/apache/jdo/tck/extents/CloseOfExtentIteratorIsIteratorSpecific.java
index ff34408d..8e111150 100644
--- a/tck/src/main/java/org/apache/jdo/tck/extents/CloseOfExtentIteratorIsIteratorSpecific.java
+++ b/tck/src/main/java/org/apache/jdo/tck/extents/CloseOfExtentIteratorIsIteratorSpecific.java
@@ -24,6 +24,7 @@ import java.util.Iterator;
 import javax.jdo.Extent;
 import javax.jdo.Query;
 
+import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 
@@ -58,17 +59,17 @@ public class CloseOfExtentIteratorIsIteratorSpecific extends ExtentTest {
 
     /** */
     public void test() {
-        Extent ex = getExtent();
+        Extent<Employee> ex = getExtent();
         beginTransaction();
-        Iterator it1 = ex.iterator();
+        Iterator<Employee> it1 = ex.iterator();
         ex.close(it1);
         int count = countIterator(ex.iterator());
         if (count != 2) {
             fail(ASSERTION_FAILED,
                  "iterating Employees after close of first iterator; counted " + count + " instances; should be 2");
         }
-        Query q = getPM().newQuery(ex);
-        Collection c = (Collection)q.execute();
+        Query<?> q = getPM().newQuery(ex);
+        Collection<?> c = (Collection<?>)q.execute();
         int count2 = countIterator(c.iterator());
         commitTransaction();
         if (count2 != 2) {
diff --git a/tck/src/main/java/org/apache/jdo/tck/extents/ExtentTest.java b/tck/src/main/java/org/apache/jdo/tck/extents/ExtentTest.java
index 95c7f804..26d8fb8c 100644
--- a/tck/src/main/java/org/apache/jdo/tck/extents/ExtentTest.java
+++ b/tck/src/main/java/org/apache/jdo/tck/extents/ExtentTest.java
@@ -23,6 +23,7 @@ import java.util.Date;
 import java.util.GregorianCalendar;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.Set;
 import java.util.TimeZone;
 
 import javax.jdo.Extent;
@@ -37,6 +38,8 @@ import org.apache.jdo.tck.pc.company.DentalInsurance;
 import org.apache.jdo.tck.pc.company.Department;
 import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.pc.company.FullTimeEmployee;
+import org.apache.jdo.tck.pc.company.IEmployee;
+import org.apache.jdo.tck.pc.company.IProject;
 import org.apache.jdo.tck.pc.company.MedicalInsurance;
 import org.apache.jdo.tck.pc.company.PartTimeEmployee;
 import org.apache.jdo.tck.pc.company.Project;
@@ -48,7 +51,6 @@ import org.apache.jdo.tck.pc.company.Project;
  */
 abstract class ExtentTest extends JDO_Test {
 
-    protected Class extentClass = Employee.class;
     protected Company company;
     protected Object companyOID;
     
@@ -82,7 +84,7 @@ abstract class ExtentTest extends JDO_Test {
         try {
             // Don't use beginTransaction() because this calls getPM() which calls checkPM()!
             pm.currentTransaction().begin();
-            Extent ex = getPM().getExtent(Company.class, false);
+            Extent<Company> ex = getPM().getExtent(Company.class, false);
             int count = countIterator(ex.iterator());
             pm.currentTransaction().commit();
             if (count == 1) {
@@ -98,7 +100,7 @@ abstract class ExtentTest extends JDO_Test {
     
     /** */
     protected void initDB() {
-        HashSet h;
+        Set<IEmployee> h;
         Address addr1 = new Address (7001L, "18 Network Circle",
                                      "Santa Clara", "CA", "94455", "USA");
         company = new Company (1L, "Sun Microsystems", new Date(), addr1);
@@ -126,7 +128,7 @@ abstract class ExtentTest extends JDO_Test {
         // Set up their departments.
         Department board =
             new Department(2001L, "board", company);
-        h = new HashSet();
+        h = new HashSet<>();
         h.add(scott);
         board.setEmployees(h);
         scott.setDepartment(board);
@@ -134,7 +136,7 @@ abstract class ExtentTest extends JDO_Test {
         company.addDepartment(board);
 
         Department emg = new Department(2002L, "emg", company);
-        h = new HashSet();
+        h = new HashSet<>();
         h.add(ed);
         emg.setEmployees(h);
         ed.setDepartment(emg);
@@ -159,30 +161,30 @@ abstract class ExtentTest extends JDO_Test {
         // on one.
         Project solaris = new Project(4001L, "Solaris", new BigDecimal(100.375));
         Project sparc = new Project(4002L, "Sparc", new BigDecimal(200.500));
-        h = new HashSet();
+        h = new HashSet<>();
         h.add(scott);
         h.add(ed);
         solaris.setMembers(h); // Solaris is worked on by Scott and Ed
 
-        h = new HashSet();
+        h = new HashSet<>();
         h.add(scott);
         sparc.setMembers(h); // Sparc is worked on by Scott
-        
-        h = new HashSet();
-        h.add(solaris);
-        h.add(sparc);
-        scott.setProjects(h); // Scott works on Solaris and Sparc
 
-        h = new HashSet();
-        h.add(solaris);
-        ed.setProjects(h); // Ed works on Solaris
+        Set<IProject> p;
+        p= new HashSet<>();
+        p.add(solaris);
+        p.add(sparc);
+        scott.setProjects(p); // Scott works on Solaris and Sparc
+
+        p = new HashSet<>();
+        p.add(solaris);
+        ed.setProjects(p); // Ed works on Solaris
         
         /* Now put all of these into the database
          */
         pm.currentTransaction().begin();
         pm.makePersistent (company);
         pm.currentTransaction().commit();
-        // System.out.println ("Company OID: " + pm.getObjectId(company));
     }
 
     /**
@@ -211,7 +213,7 @@ abstract class ExtentTest extends JDO_Test {
      * @param it iterator
      * @return count
      */
-    protected int countIterator(Iterator it) {
+    protected int countIterator(Iterator<?> it) {
         int count = 0;
         for (;it.hasNext();count++, it.next());
         return count;
@@ -221,7 +223,7 @@ abstract class ExtentTest extends JDO_Test {
      * @param it iterator
      * @return count
      */
-    protected int printIterator(Iterator it) {
+    protected int printIterator(Iterator<?> it) {
         int count = 0;
         for (;it.hasNext();count++) {
             System.out.println (it.next().toString());
@@ -233,8 +235,8 @@ abstract class ExtentTest extends JDO_Test {
      *
      * @return extent
      */
-    protected Extent getExtent() {
-        return getPM().getExtent(extentClass, true);
+    protected Extent<Employee> getExtent() {
+        return getPM().getExtent(Employee.class, true);
     }
 
     /**
@@ -250,9 +252,9 @@ abstract class ExtentTest extends JDO_Test {
             companyOIDClassName = "org.apache.jdo.impl.fostore.OID";
         }
         try {
-            Class companyOIDClass = Class.forName(companyOIDClassName);
-            Constructor companyOIDConstructor = companyOIDClass.getConstructor(new Class[] {String.class});
-            Object companyOID = companyOIDConstructor.newInstance (new Object[] {companyOIDString});
+            Class<?> companyOIDClass = Class.forName(companyOIDClassName);
+            Constructor<?> companyOIDConstructor = companyOIDClass.getConstructor(new Class[] {String.class});
+            Object companyOID = companyOIDConstructor.newInstance (companyOIDString);
             return companyOID;
         } 
         catch (Exception ex) {
@@ -267,6 +269,7 @@ abstract class ExtentTest extends JDO_Test {
      *
      * @return PersistenceManager
      */
+    @Override
     protected PersistenceManager getPM() {
         if (pm == null) {
             pm = getPMF().getPersistenceManager();
@@ -279,6 +282,7 @@ abstract class ExtentTest extends JDO_Test {
      *
      * @return PersistenceManagerFactory
      */
+    @Override
     public PersistenceManagerFactory getPMF() {
         if (pmf == null) {
             pmf = super.getPMF();
diff --git a/tck/src/main/java/org/apache/jdo/tck/extents/GetCandidateClass.java b/tck/src/main/java/org/apache/jdo/tck/extents/GetCandidateClass.java
index cdef69ac..b69c8da4 100644
--- a/tck/src/main/java/org/apache/jdo/tck/extents/GetCandidateClass.java
+++ b/tck/src/main/java/org/apache/jdo/tck/extents/GetCandidateClass.java
@@ -20,6 +20,7 @@ package org.apache.jdo.tck.extents;
 
 import javax.jdo.Extent;
 
+import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
@@ -52,10 +53,10 @@ public class GetCandidateClass extends ExtentTest {
 
     /** */
     public void test() {
-        Extent ex = getExtent();
-        if (extentClass != ex.getCandidateClass()) {
+        Extent<Employee> ex = getExtent();
+        if (Employee.class != ex.getCandidateClass()) {
             fail(ASSERTION_FAILED,
-                 "Candidate class in extent should be: " + extentClass.getClass().getName());
+                 "Candidate class in extent should be: " + Employee.class.getName());
         }
     }
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/extents/GetPersistenceManager.java b/tck/src/main/java/org/apache/jdo/tck/extents/GetPersistenceManager.java
index ed615608..f951d67e 100644
--- a/tck/src/main/java/org/apache/jdo/tck/extents/GetPersistenceManager.java
+++ b/tck/src/main/java/org/apache/jdo/tck/extents/GetPersistenceManager.java
@@ -53,7 +53,7 @@ public class GetPersistenceManager extends ExtentTest {
 
     /** */
     public void test() {
-        Extent ex = getPM().getExtent (Employee.class, true);
+        Extent<Employee> ex = getPM().getExtent (Employee.class, true);
         if (pm != ex.getPersistenceManager()) {
             fail(ASSERTION_FAILED,
                  "unexpected pm of extent, expected " + pm + 
diff --git a/tck/src/main/java/org/apache/jdo/tck/extents/HasSubclassesFalse.java b/tck/src/main/java/org/apache/jdo/tck/extents/HasSubclassesFalse.java
index 744a1d63..d314cab6 100644
--- a/tck/src/main/java/org/apache/jdo/tck/extents/HasSubclassesFalse.java
+++ b/tck/src/main/java/org/apache/jdo/tck/extents/HasSubclassesFalse.java
@@ -53,7 +53,7 @@ public class HasSubclassesFalse extends ExtentTest {
 
     /** */
     public void test() {
-        Extent ex = getPM().getExtent (Employee.class, false);
+        Extent<Employee> ex = getPM().getExtent (Employee.class, false);
         if (ex.hasSubclasses()) {
             fail(ASSERTION_FAILED,
                  "ex.hasSubclasses() returned true, but extent was created with subclasses=false.");
diff --git a/tck/src/main/java/org/apache/jdo/tck/extents/HasSubclassesTrue.java b/tck/src/main/java/org/apache/jdo/tck/extents/HasSubclassesTrue.java
index 321961ea..16654ca1 100644
--- a/tck/src/main/java/org/apache/jdo/tck/extents/HasSubclassesTrue.java
+++ b/tck/src/main/java/org/apache/jdo/tck/extents/HasSubclassesTrue.java
@@ -53,7 +53,7 @@ public class HasSubclassesTrue extends ExtentTest {
 
     /** */
     public void test() {
-        Extent ex = getPM().getExtent (Employee.class, true);
+        Extent<Employee> ex = getPM().getExtent (Employee.class, true);
         if (!ex.hasSubclasses()) {
             fail(ASSERTION_FAILED,
                  "ex.hasSubclasses() returned false, but extent was created with subclasses=true.");
diff --git a/tck/src/main/java/org/apache/jdo/tck/extents/InstancesDeletedPriorToIterationNotReturned.java b/tck/src/main/java/org/apache/jdo/tck/extents/InstancesDeletedPriorToIterationNotReturned.java
index fd8bb769..6724eb85 100644
--- a/tck/src/main/java/org/apache/jdo/tck/extents/InstancesDeletedPriorToIterationNotReturned.java
+++ b/tck/src/main/java/org/apache/jdo/tck/extents/InstancesDeletedPriorToIterationNotReturned.java
@@ -59,15 +59,15 @@ public class InstancesDeletedPriorToIterationNotReturned extends ExtentTest {
         try {
             beginTransaction();
             getPM().setIgnoreCache(false);
-            Extent ex = getPM().getExtent (Employee.class, true);
-            Iterator it1 = ex.iterator();
-            deleteEmployee((Employee)it1.next());
-            Iterator it2 = ex.iterator();
+            Extent<Employee> ex = getPM().getExtent (Employee.class, true);
+            Iterator<Employee> it1 = ex.iterator();
+            deleteEmployee(it1.next());
+            Iterator<Employee> it2 = ex.iterator();
             int count = countIterator(it2);
             rollbackTransaction();
 
             beginTransaction();
-            Iterator it3 = ex.iterator();
+            Iterator<Employee> it3 = ex.iterator();
             int count3 = countIterator(it3);
             commitTransaction();
     
diff --git a/tck/src/main/java/org/apache/jdo/tck/extents/InstancesPersistedPriorToIterationReturned.java b/tck/src/main/java/org/apache/jdo/tck/extents/InstancesPersistedPriorToIterationReturned.java
index 2c137a5e..68bd5ecc 100644
--- a/tck/src/main/java/org/apache/jdo/tck/extents/InstancesPersistedPriorToIterationReturned.java
+++ b/tck/src/main/java/org/apache/jdo/tck/extents/InstancesPersistedPriorToIterationReturned.java
@@ -60,14 +60,14 @@ public class InstancesPersistedPriorToIterationReturned extends ExtentTest {
         try {
             beginTransaction();
             getPM().setIgnoreCache(false);
-            Extent ex = getPM().getExtent (Employee.class, true);
+            Extent<Employee> ex = getPM().getExtent (Employee.class, true);
             addEmployee();
-            Iterator it = ex.iterator();
+            Iterator<Employee> it = ex.iterator();
             int count = countIterator(it);
             rollbackTransaction();
 
             beginTransaction();
-            Iterator it2 = ex.iterator();
+            Iterator<Employee> it2 = ex.iterator();
             int count2 = countIterator(it2);
             commitTransaction();
     
diff --git a/tck/src/main/java/org/apache/jdo/tck/extents/IteratorHasNextFalseAfterExtentClose.java b/tck/src/main/java/org/apache/jdo/tck/extents/IteratorHasNextFalseAfterExtentClose.java
index c277cd23..037556f5 100644
--- a/tck/src/main/java/org/apache/jdo/tck/extents/IteratorHasNextFalseAfterExtentClose.java
+++ b/tck/src/main/java/org/apache/jdo/tck/extents/IteratorHasNextFalseAfterExtentClose.java
@@ -59,19 +59,19 @@ public class IteratorHasNextFalseAfterExtentClose extends ExtentTest {
 
         try {
             beginTransaction();
-            Extent ex = getPM().getExtent (Employee.class, true);
-            Iterator it1 = ex.iterator();
-            deleteEmployee((Employee)it1.next());
-            Iterator it2 = ex.iterator();
+            Extent<Employee> ex = getPM().getExtent (Employee.class, true);
+            Iterator<Employee> it1 = ex.iterator();
+            deleteEmployee(it1.next());
+            Iterator<Employee> it2 = ex.iterator();
             addEmployee();
-            Iterator it3 = ex.iterator();
+            Iterator<Employee> it3 = ex.iterator();
             ex.close(it1);
             ex.close(it2);
             ex.close(it3);
             rollbackTransaction();
     
             beginTransaction();
-            Iterator it4 = ex.iterator();
+            Iterator<Employee> it4 = ex.iterator();
             int count4 = countIterator(it4);
             rollbackTransaction();
             if (debug) logger.debug ("Iterator4 after rollback: " + count4);
diff --git a/tck/src/main/java/org/apache/jdo/tck/extents/IteratorMutatingMethods.java b/tck/src/main/java/org/apache/jdo/tck/extents/IteratorMutatingMethods.java
index 3f3ddcec..6da34982 100644
--- a/tck/src/main/java/org/apache/jdo/tck/extents/IteratorMutatingMethods.java
+++ b/tck/src/main/java/org/apache/jdo/tck/extents/IteratorMutatingMethods.java
@@ -56,8 +56,8 @@ public class IteratorMutatingMethods extends ExtentTest {
     /** */
     public void test() {
         beginTransaction();
-        Extent ex = getExtent();
-        Iterator it = ex.iterator();
+        Extent<?> ex = getExtent();
+        Iterator<?> it = ex.iterator();
         it.next();
         try {
             it.remove(); 
diff --git a/tck/src/main/java/org/apache/jdo/tck/extents/IteratorNextAfterExtentClose.java b/tck/src/main/java/org/apache/jdo/tck/extents/IteratorNextAfterExtentClose.java
index 3c56efcc..39c8ab79 100644
--- a/tck/src/main/java/org/apache/jdo/tck/extents/IteratorNextAfterExtentClose.java
+++ b/tck/src/main/java/org/apache/jdo/tck/extents/IteratorNextAfterExtentClose.java
@@ -61,12 +61,12 @@ public class IteratorNextAfterExtentClose extends ExtentTest {
 
         try {
             beginTransaction();
-            Extent ex = getPM().getExtent (Employee.class, true);
-            Iterator it1 = ex.iterator();
-            deleteEmployee((Employee)it1.next());
-            Iterator it2 = ex.iterator();
+            Extent<Employee> ex = getPM().getExtent (Employee.class, true);
+            Iterator<Employee> it1 = ex.iterator();
+            deleteEmployee(it1.next());
+            Iterator<Employee> it2 = ex.iterator();
             addEmployee();
-            Iterator it3 = ex.iterator();
+            Iterator<Employee> it3 = ex.iterator();
             ex.close(it1);
             ex.close(it2);
             ex.close(it3);
@@ -78,7 +78,7 @@ public class IteratorNextAfterExtentClose extends ExtentTest {
                 rollbackTransaction();
     
                 beginTransaction();
-                Iterator it4 = ex.iterator();
+                Iterator<Employee> it4 = ex.iterator();
                 int count4 = countIterator(it4);
                 commitTransaction();
                 
@@ -99,7 +99,7 @@ public class IteratorNextAfterExtentClose extends ExtentTest {
     }
 
     /** */
-    void tryNext (Iterator it) throws Exception {
+    void tryNext (Iterator<Employee> it) {
         try {
             it.next();
             fail(ASSERTION_FAILED,
diff --git a/tck/src/main/java/org/apache/jdo/tck/extents/IteratorNextAfterExtentCloseAll.java b/tck/src/main/java/org/apache/jdo/tck/extents/IteratorNextAfterExtentCloseAll.java
index a63be526..d6dd6b56 100644
--- a/tck/src/main/java/org/apache/jdo/tck/extents/IteratorNextAfterExtentCloseAll.java
+++ b/tck/src/main/java/org/apache/jdo/tck/extents/IteratorNextAfterExtentCloseAll.java
@@ -61,12 +61,12 @@ public class IteratorNextAfterExtentCloseAll extends ExtentTest {
 
         try {
             beginTransaction();
-            Extent ex = getPM().getExtent (Employee.class, true);
-            Iterator it1 = ex.iterator();
-            deleteEmployee((Employee)it1.next());
-            Iterator it2 = ex.iterator();
+            Extent<Employee> ex = getPM().getExtent (Employee.class, true);
+            Iterator<Employee> it1 = ex.iterator();
+            deleteEmployee(it1.next());
+            Iterator<Employee> it2 = ex.iterator();
             addEmployee();
-            Iterator it3 = ex.iterator();
+            Iterator<Employee> it3 = ex.iterator();
             ex.closeAll();
 
             if (!tryNext(it1)) {
@@ -88,7 +88,7 @@ public class IteratorNextAfterExtentCloseAll extends ExtentTest {
     }
     
     /** */
-    boolean tryNext (Iterator it) {
+    boolean tryNext (Iterator<Employee> it) {
         try {
             it.next();
         } catch (NoSuchElementException expected) {
diff --git a/tck/src/main/java/org/apache/jdo/tck/extents/Iterators.java b/tck/src/main/java/org/apache/jdo/tck/extents/Iterators.java
index 25a8d698..cae50884 100644
--- a/tck/src/main/java/org/apache/jdo/tck/extents/Iterators.java
+++ b/tck/src/main/java/org/apache/jdo/tck/extents/Iterators.java
@@ -55,11 +55,11 @@ public class Iterators extends ExtentTest {
     /** */
     public void test() {
 
-        Extent ex = getExtent();
+        Extent<?> ex = getExtent();
     
         int count = 0;
         beginTransaction();
-        for (Iterator it = ex.iterator(); it.hasNext();++count) {
+        for (Iterator<?> it = ex.iterator(); it.hasNext();++count) {
             Object emp = it.next();
             if (debug) logger.debug(emp.toString());
         }
diff --git a/tck/src/main/java/org/apache/jdo/tck/lifecycle/MultiplePMsReturnInstancesRepresentingSamePC.java b/tck/src/main/java/org/apache/jdo/tck/lifecycle/MultiplePMsReturnInstancesRepresentingSamePC.java
index 5f9caf43..86f12374 100644
--- a/tck/src/main/java/org/apache/jdo/tck/lifecycle/MultiplePMsReturnInstancesRepresentingSamePC.java
+++ b/tck/src/main/java/org/apache/jdo/tck/lifecycle/MultiplePMsReturnInstancesRepresentingSamePC.java
@@ -82,8 +82,8 @@ public class MultiplePMsReturnInstancesRepresentingSamePC extends JDO_Test {
 
             pm.currentTransaction().begin();
 
-            Extent extent = pm.getExtent(StateTransitionObj.class, false);
-			Iterator iter = extent.iterator();
+            Extent<StateTransitionObj> extent = pm.getExtent(StateTransitionObj.class, false);
+			Iterator<StateTransitionObj> iter = extent.iterator();
 			if( !iter.hasNext() ){
 				fail(ASSERTION_FAILED,
 					 "Extent for StateTransitionObj should not be empty");
diff --git a/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteDatastoreCommit.java b/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteDatastoreCommit.java
index e5835553..ee14ecf9 100644
--- a/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteDatastoreCommit.java
+++ b/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteDatastoreCommit.java
@@ -17,13 +17,6 @@
  
 package org.apache.jdo.tck.lifecycle;
 
-import javax.jdo.JDOUnsupportedOptionException;
-import javax.jdo.PersistenceManager;
-
-import org.apache.jdo.tck.JDO_Test;
-
-import org.apache.jdo.tck.pc.mylib.VersionedPCPoint;
-
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
diff --git a/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteDatastoreCommitConflict.java b/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteDatastoreCommitConflict.java
index 0fee8e81..72e4f316 100644
--- a/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteDatastoreCommitConflict.java
+++ b/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteDatastoreCommitConflict.java
@@ -17,13 +17,6 @@
  
 package org.apache.jdo.tck.lifecycle;
 
-import javax.jdo.JDOUnsupportedOptionException;
-import javax.jdo.PersistenceManager;
-
-import org.apache.jdo.tck.JDO_Test;
-
-import org.apache.jdo.tck.pc.mylib.VersionedPCPoint;
-
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
diff --git a/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteDatastoreRollback.java b/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteDatastoreRollback.java
index 2cec89c7..a0642c85 100644
--- a/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteDatastoreRollback.java
+++ b/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteDatastoreRollback.java
@@ -17,13 +17,6 @@
  
 package org.apache.jdo.tck.lifecycle;
 
-import javax.jdo.JDOUnsupportedOptionException;
-import javax.jdo.PersistenceManager;
-
-import org.apache.jdo.tck.JDO_Test;
-
-import org.apache.jdo.tck.pc.mylib.VersionedPCPoint;
-
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
diff --git a/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteOptimisticCommit.java b/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteOptimisticCommit.java
index d41c0d49..89693d70 100644
--- a/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteOptimisticCommit.java
+++ b/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteOptimisticCommit.java
@@ -17,13 +17,6 @@
  
 package org.apache.jdo.tck.lifecycle;
 
-import javax.jdo.JDOUnsupportedOptionException;
-import javax.jdo.PersistenceManager;
-
-import org.apache.jdo.tck.JDO_Test;
-
-import org.apache.jdo.tck.pc.mylib.VersionedPCPoint;
-
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
diff --git a/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteOptimisticCommitConflict.java b/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteOptimisticCommitConflict.java
index 4bed5136..03cbc711 100644
--- a/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteOptimisticCommitConflict.java
+++ b/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteOptimisticCommitConflict.java
@@ -17,13 +17,6 @@
  
 package org.apache.jdo.tck.lifecycle;
 
-import javax.jdo.JDOUnsupportedOptionException;
-import javax.jdo.PersistenceManager;
-
-import org.apache.jdo.tck.JDO_Test;
-
-import org.apache.jdo.tck.pc.mylib.VersionedPCPoint;
-
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
diff --git a/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteOptimisticRollback.java b/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteOptimisticRollback.java
index ed20df75..c9f68fc0 100644
--- a/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteOptimisticRollback.java
+++ b/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteOptimisticRollback.java
@@ -17,13 +17,6 @@
  
 package org.apache.jdo.tck.lifecycle;
 
-import javax.jdo.JDOUnsupportedOptionException;
-import javax.jdo.PersistenceManager;
-
-import org.apache.jdo.tck.JDO_Test;
-
-import org.apache.jdo.tck.pc.mylib.VersionedPCPoint;
-
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
diff --git a/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteThrows.java b/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteThrows.java
index 3b73fa0f..f00877f3 100644
--- a/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteThrows.java
+++ b/tck/src/main/java/org/apache/jdo/tck/lifecycle/NontransactionalWriteThrows.java
@@ -18,11 +18,6 @@
 package org.apache.jdo.tck.lifecycle;
 
 import javax.jdo.JDOUnsupportedOptionException;
-import javax.jdo.PersistenceManager;
-
-import org.apache.jdo.tck.JDO_Test;
-
-import org.apache.jdo.tck.pc.mylib.VersionedPCPoint;
 
 import org.apache.jdo.tck.util.BatchTestRunner;
 
diff --git a/tck/src/main/java/org/apache/jdo/tck/lifecycle/ObjectIdNotModifiedWhenObjectIdInstanceModified.java b/tck/src/main/java/org/apache/jdo/tck/lifecycle/ObjectIdNotModifiedWhenObjectIdInstanceModified.java
index adce0ec8..300a8c50 100644
--- a/tck/src/main/java/org/apache/jdo/tck/lifecycle/ObjectIdNotModifiedWhenObjectIdInstanceModified.java
+++ b/tck/src/main/java/org/apache/jdo/tck/lifecycle/ObjectIdNotModifiedWhenObjectIdInstanceModified.java
@@ -17,9 +17,7 @@
  
 package org.apache.jdo.tck.lifecycle;
 
-import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.List;
 
 import javax.jdo.Extent;
 import javax.jdo.Transaction;
@@ -73,8 +71,8 @@ public class ObjectIdNotModifiedWhenObjectIdInstanceModified extends JDO_Test {
 	public void test() throws Exception {
         pm.currentTransaction().begin();
         try {
-    		Extent extent = pm.getExtent(StateTransitionObj.class, false);
-    		Iterator iter = extent.iterator();
+    		Extent<StateTransitionObj> extent = pm.getExtent(StateTransitionObj.class, false);
+    		Iterator<StateTransitionObj> iter = extent.iterator();
     		if( !iter.hasNext() ){
     			fail(ASSERTION_FAILED,
     				 "Extent for StateTransitionObj should not be empty");
diff --git a/tck/src/main/java/org/apache/jdo/tck/lifecycle/PMReturnsIdenticalInstancesForEqualObjIds.java b/tck/src/main/java/org/apache/jdo/tck/lifecycle/PMReturnsIdenticalInstancesForEqualObjIds.java
index 7d1f54e5..45e4f3a1 100644
--- a/tck/src/main/java/org/apache/jdo/tck/lifecycle/PMReturnsIdenticalInstancesForEqualObjIds.java
+++ b/tck/src/main/java/org/apache/jdo/tck/lifecycle/PMReturnsIdenticalInstancesForEqualObjIds.java
@@ -71,8 +71,8 @@ public class PMReturnsIdenticalInstancesForEqualObjIds extends JDO_Test {
 	public void test() {
         pm.currentTransaction().begin();
         try {
-        	Extent extent = pm.getExtent(StateTransitionObj.class, false);
-        	Iterator iter = extent.iterator();
+        	Extent<StateTransitionObj> extent = pm.getExtent(StateTransitionObj.class, false);
+        	Iterator<StateTransitionObj> iter = extent.iterator();
         	if( !iter.hasNext() ){
         		fail(ASSERTION_FAILED,
     				 "Extent for StateTransitionObj should not be empty");
diff --git a/tck/src/main/java/org/apache/jdo/tck/lifecycle/PMsCanSharePCClassesButNotPCInstances.java b/tck/src/main/java/org/apache/jdo/tck/lifecycle/PMsCanSharePCClassesButNotPCInstances.java
index 5d97448a..44a10edc 100644
--- a/tck/src/main/java/org/apache/jdo/tck/lifecycle/PMsCanSharePCClassesButNotPCInstances.java
+++ b/tck/src/main/java/org/apache/jdo/tck/lifecycle/PMsCanSharePCClassesButNotPCInstances.java
@@ -17,9 +17,9 @@
  
 package org.apache.jdo.tck.lifecycle;
 
-import java.util.Collection;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Set;
 
 import javax.jdo.Extent;
 import javax.jdo.JDOException;
@@ -140,12 +140,12 @@ public class PMsCanSharePCClassesButNotPCInstances extends JDO_Test {
                 logger.debug("interrupted while waiting for threads to finish");
             }
         }
-        
-        Collection exceptions = threadGroup.getAllUncaughtExceptions();
-        for (Iterator i = exceptions.iterator(); i.hasNext(); ) {
-            Map.Entry entry = (Map.Entry) i.next();
-            Thread thread = (Thread)entry.getKey();
-            Throwable throwable = (Throwable)entry.getValue();
+
+        Set<Map.Entry<Thread, Throwable>> exceptions = threadGroup.getAllUncaughtExceptions();
+        for (Iterator<Map.Entry<Thread, Throwable>> i = exceptions.iterator(); i.hasNext(); ) {
+            Map.Entry<Thread, Throwable> entry = i.next();
+            Thread thread = entry.getKey();
+            Throwable throwable = entry.getValue();
             String message = "Uncaught exception " + throwable + " in thread " + thread;
             if( throwable instanceof AssertionFailedError )
                 fail(ASSERTION_FAILED, message);
@@ -170,7 +170,7 @@ public class PMsCanSharePCClassesButNotPCInstances extends JDO_Test {
     class Inserter implements Runnable {
         private final PersistenceManager pm;
         private final Object pc;
-        private final Class instanceClass;
+        private final Class<?> instanceClass;
         private final boolean sharedPC;
 
         Inserter(PersistenceManagerFactory pmf, Object pc, boolean sharedPC) {
@@ -230,9 +230,9 @@ public class PMsCanSharePCClassesButNotPCInstances extends JDO_Test {
                 if (debug)
                     logger.debug("getting Extent of " + instanceClass.getName());
                 tx.begin();
-                Extent e = pm.getExtent(instanceClass, false);
-                for (Iterator i = e.iterator(); i.hasNext();) {
-                    Object instance = (Object)i.next();
+                Extent<?> e = pm.getExtent(instanceClass, false);
+                for (Iterator<?> i = e.iterator(); i.hasNext();) {
+                    Object instance = i.next();
                     objCount++;
                 }
                 tx.commit();
diff --git a/tck/src/main/java/org/apache/jdo/tck/lifecycle/StateTransitions.java b/tck/src/main/java/org/apache/jdo/tck/lifecycle/StateTransitions.java
index c73ce4e7..34d80ffc 100644
--- a/tck/src/main/java/org/apache/jdo/tck/lifecycle/StateTransitions.java
+++ b/tck/src/main/java/org/apache/jdo/tck/lifecycle/StateTransitions.java
@@ -439,8 +439,8 @@ public class StateTransitions extends JDO_Test {
         boolean ret;
         Transaction t = pm.currentTransaction();
         t.begin();
-        Extent e = pm.getExtent(StateTransitionObj.class, false);
-        Iterator iter = e.iterator();
+        Extent<StateTransitionObj> e = pm.getExtent(StateTransitionObj.class, false);
+        Iterator<StateTransitionObj> iter = e.iterator();
         ret = iter.hasNext();
         t.rollback();
         return ret;
@@ -876,7 +876,7 @@ public class StateTransitions extends JDO_Test {
     {
         StateTransitionObj obj = getHollowInstance();
         if( obj == null ) return null;
-        StateTransitionObj sto = (StateTransitionObj) obj;
+        StateTransitionObj sto = obj;
         sto.readField();
         int curr = currentState(sto);
         if( curr != PERSISTENT_CLEAN ) {
@@ -898,7 +898,7 @@ public class StateTransitions extends JDO_Test {
     {
         StateTransitionObj obj = getHollowInstance();
         if( obj == null ) return null;
-        StateTransitionObj pcobj = (StateTransitionObj) obj;
+        StateTransitionObj pcobj = obj;
         pcobj.writeField(23);
         int curr = currentState(obj);
         if( curr != PERSISTENT_DIRTY ) {
@@ -924,14 +924,14 @@ public class StateTransitions extends JDO_Test {
             if (debug)
                 logger.debug("getHollowInstance: Transaction should be active, but it is not");
         
-        Extent extent = pm.getExtent(StateTransitionObj.class, false);
-        Iterator iter = extent.iterator();
+        Extent<StateTransitionObj> extent = pm.getExtent(StateTransitionObj.class, false);
+        Iterator<StateTransitionObj> iter = extent.iterator();
         if( !iter.hasNext() ){
             if (debug)
                 logger.debug("Extent for StateTransitionObj should not be empty");
             return null;
         }
-        StateTransitionObj obj = (StateTransitionObj) iter.next();
+        StateTransitionObj obj = iter.next();
         
         pm.makeTransactional(obj);
         transaction.setRetainValues(false);
@@ -979,7 +979,7 @@ public class StateTransitions extends JDO_Test {
     {
         StateTransitionObj obj = getTransientCleanInstance();
         if( obj == null ) return null;
-        StateTransitionObj pcobj = (StateTransitionObj) obj;
+        StateTransitionObj pcobj = obj;
         pcobj.writeField(23);
         int curr = currentState(obj);
         if( curr != TRANSIENT_DIRTY ) { 
@@ -1090,7 +1090,7 @@ public class StateTransitions extends JDO_Test {
     {
         StateTransitionObj obj = getHollowInstance();
         if( obj == null ) return null;
-        obj = (StateTransitionObj) pm.detachCopy(obj);
+        obj = pm.detachCopy(obj);
         int curr = currentState(obj);
         if( curr != DETACHED_CLEAN ) { 
             if (debug) {
diff --git a/tck/src/main/java/org/apache/jdo/tck/lifecycle/StateTransitionsReturnedObjects.java b/tck/src/main/java/org/apache/jdo/tck/lifecycle/StateTransitionsReturnedObjects.java
index ac3f22af..62f5f30f 100644
--- a/tck/src/main/java/org/apache/jdo/tck/lifecycle/StateTransitionsReturnedObjects.java
+++ b/tck/src/main/java/org/apache/jdo/tck/lifecycle/StateTransitionsReturnedObjects.java
@@ -235,8 +235,8 @@ public class StateTransitionsReturnedObjects extends JDO_Test {
         boolean ret;
         Transaction t = pm.currentTransaction();
         t.begin();
-        Extent e = pm.getExtent(StateTransitionObj.class, false);
-        Iterator iter = e.iterator();
+        Extent<StateTransitionObj> e = pm.getExtent(StateTransitionObj.class, false);
+        Iterator<StateTransitionObj> iter = e.iterator();
         ret = iter.hasNext();
         t.rollback();
         return ret;
@@ -556,7 +556,7 @@ public class StateTransitionsReturnedObjects extends JDO_Test {
     {
         StateTransitionObj obj = getHollowInstance();
         if( obj == null ) return null;
-        StateTransitionObj pcobj = (StateTransitionObj) obj;
+        StateTransitionObj pcobj = obj;
         pcobj.writeField(23);
         int curr = currentState(obj);
         if( curr != PERSISTENT_DIRTY ) {
@@ -582,14 +582,14 @@ public class StateTransitionsReturnedObjects extends JDO_Test {
             if (debug)
                 logger.debug("getHollowInstance: Transaction should be active, but it is not");
         
-        Extent extent = pm.getExtent(StateTransitionObj.class, false);
-        Iterator iter = extent.iterator();
+        Extent<StateTransitionObj> extent = pm.getExtent(StateTransitionObj.class, false);
+        Iterator<StateTransitionObj> iter = extent.iterator();
         if( !iter.hasNext() ){
             if (debug)
                 logger.debug("Extent for StateTransitionObj should not be empty");
             return null;
         }
-        StateTransitionObj obj = (StateTransitionObj) iter.next();
+        StateTransitionObj obj = iter.next();
         
         pm.makeTransactional(obj);
         transaction.setRetainValues(false);
@@ -748,7 +748,7 @@ public class StateTransitionsReturnedObjects extends JDO_Test {
     {
         StateTransitionObj obj = getHollowInstance();
         if( obj == null ) return null;
-        obj = (StateTransitionObj) pm.detachCopy(obj);
+        obj = pm.detachCopy(obj);
         int curr = currentState(obj);
         if( curr != DETACHED_CLEAN ) { 
             if (debug) {
@@ -769,7 +769,7 @@ public class StateTransitionsReturnedObjects extends JDO_Test {
     {
         StateTransitionObj obj = getHollowInstance();
         if( obj == null ) return null;
-        obj = (StateTransitionObj) pm.detachCopy(obj);
+        obj = pm.detachCopy(obj);
         obj.writeField(1000);
         int curr = currentState(obj);
         if( curr != DETACHED_DIRTY ) { 
diff --git a/tck/src/main/java/org/apache/jdo/tck/mapping/AbstractRelationshipTest.java b/tck/src/main/java/org/apache/jdo/tck/mapping/AbstractRelationshipTest.java
index b3cc7294..956e9193 100644
--- a/tck/src/main/java/org/apache/jdo/tck/mapping/AbstractRelationshipTest.java
+++ b/tck/src/main/java/org/apache/jdo/tck/mapping/AbstractRelationshipTest.java
@@ -25,8 +25,8 @@ import java.util.List;
 import org.apache.jdo.tck.AbstractReaderTest;
 import org.apache.jdo.tck.pc.company.CompanyFactoryRegistry;
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
-import org.apache.jdo.tck.pc.company.Employee;
-import org.apache.jdo.tck.pc.company.Project;
+import org.apache.jdo.tck.pc.company.IEmployee;
+import org.apache.jdo.tck.pc.company.IProject;
 
 /*
  * Abstract class for managed relationship tests
@@ -50,10 +50,10 @@ public class AbstractRelationshipTest extends AbstractReaderTest {
             addTearDownClass(reader.getTearDownClassesFromFactory());
             // persist test data
             pm.currentTransaction().begin();
-            List rootList = getRootList(reader);
+            List<Object> rootList = getRootList(reader);
             pm.makePersistentAll(rootList);
-            rootOids = new ArrayList();
-            for (Iterator i = rootList.iterator(); i.hasNext(); ) {
+            rootOids = new ArrayList<>();
+            for (Iterator<Object> i = rootList.iterator(); i.hasNext(); ) {
                 Object pc = i.next();
                 rootOids.add(pm.getObjectId(pc));
             }
@@ -76,8 +76,8 @@ public class AbstractRelationshipTest extends AbstractReaderTest {
         }
     }
 
-    protected boolean containsEmployee(Collection<Employee> employees, long empid) {
-        for (Employee emp: employees) {
+    protected boolean containsEmployee(Collection<IEmployee> employees, long empid) {
+        for (IEmployee emp: employees) {
             if (emp.getPersonid() == empid) {
                 return true;
             }
@@ -85,8 +85,8 @@ public class AbstractRelationshipTest extends AbstractReaderTest {
         return false;
     }
 
-    protected boolean containsProject(Collection<Project> projects, long projid) {
-        for (Project project: projects) {
+    protected boolean containsProject(Collection<IProject> projects, long projid) {
+        for (IProject project: projects) {
             if (project.getProjid() == projid) {
                 return true;
             }
diff --git a/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTest.java b/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTest.java
index 568d686b..d8317c64 100644
--- a/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTest.java
+++ b/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTest.java
@@ -65,10 +65,10 @@ public class CompletenessTest extends AbstractReaderTest {
             addTearDownClass(reader.getTearDownClassesFromFactory());
             // persist test data
             pm.currentTransaction().begin();
-            List rootList = getRootList(reader);
+            List<Object> rootList = getRootList(reader);
             pm.makePersistentAll(rootList);
-            rootOids = new ArrayList();
-            for (Iterator i = rootList.iterator(); i.hasNext(); ) {
+            rootOids = new ArrayList<>();
+            for (Iterator<Object> i = rootList.iterator(); i.hasNext(); ) {
                 Object pc = i.next();
                 rootOids.add(pm.getObjectId(pc));
             }
@@ -84,7 +84,7 @@ public class CompletenessTest extends AbstractReaderTest {
             CompanyFactoryRegistry.registerFactory();
             // get new obj graph to compare persistent graph with
             CompanyModelReader reader = new CompanyModelReader(inputFilename);
-            List rootList = getRootList(reader);
+            List<Object> rootList = getRootList(reader);
             
             getPM();
             pm.currentTransaction().begin();
diff --git a/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTestJPA.java b/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTestJPA.java
index d089d1dc..2fe28e9e 100644
--- a/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTestJPA.java
+++ b/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTestJPA.java
@@ -68,10 +68,10 @@ public class CompletenessTestJPA extends AbstractReaderTest {
             addTearDownClass(reader.getTearDownClassesFromFactory());
             // persist test data
             pm.currentTransaction().begin();
-            List rootList = getRootList(reader);
+            List<Object> rootList = getRootList(reader);
             pm.makePersistentAll(rootList);
-            rootOids = new ArrayList();
-            for (Iterator i = rootList.iterator(); i.hasNext(); ) {
+            rootOids = new ArrayList<>();
+            for (Iterator<Object> i = rootList.iterator(); i.hasNext(); ) {
                 Object pc = i.next();
                 rootOids.add(pm.getObjectId(pc));
             }
@@ -87,7 +87,7 @@ public class CompletenessTestJPA extends AbstractReaderTest {
             CompanyFactoryRegistry.registerFactory();
             // get new obj graph to compare persistent graph with
             CompanyModelReader reader = new CompanyModelReader(inputFilename);
-            List rootList = getRootList(reader);
+            List<Object> rootList = getRootList(reader);
             
             getPM();
             pm.currentTransaction().begin();
diff --git a/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTestList.java b/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTestList.java
index 1068d268..dd59b938 100644
--- a/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTestList.java
+++ b/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTestList.java
@@ -68,10 +68,10 @@ public class CompletenessTestList extends AbstractReaderTest {
             addTearDownClass(reader.getTearDownClassesFromFactory());
             // persist test data
             pm.currentTransaction().begin();
-            List rootList = getRootList(reader);
+            List<Object> rootList = getRootList(reader);
             pm.makePersistentAll(rootList);
-            rootOids = new ArrayList();
-            for (Iterator i = rootList.iterator(); i.hasNext(); ) {
+            rootOids = new ArrayList<>();
+            for (Iterator<Object> i = rootList.iterator(); i.hasNext(); ) {
                 Object pc = i.next();
                 rootOids.add(pm.getObjectId(pc));
             }
@@ -87,7 +87,7 @@ public class CompletenessTestList extends AbstractReaderTest {
             CompanyFactoryRegistry.registerFactory();
             // get new obj graph to compare persistent graph with
             CompanyModelReader reader = new CompanyModelReader(inputFilename);
-            List rootList = getRootList(reader);
+            List<Object> rootList = getRootList(reader);
             
             getPM();
             pm.currentTransaction().begin();
diff --git a/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTestMap.java b/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTestMap.java
index d39afc89..e53acea3 100644
--- a/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTestMap.java
+++ b/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTestMap.java
@@ -68,10 +68,10 @@ public class CompletenessTestMap extends AbstractReaderTest {
             addTearDownClass(reader.getTearDownClassesFromFactory());
             // persist test data
             pm.currentTransaction().begin();
-            List rootList = getRootList(reader);
+            List<Object> rootList = getRootList(reader);
             pm.makePersistentAll(rootList);
-            rootOids = new ArrayList();
-            for (Iterator i = rootList.iterator(); i.hasNext(); ) {
+            rootOids = new ArrayList<>();
+            for (Iterator<Object> i = rootList.iterator(); i.hasNext(); ) {
                 Object pc = i.next();
                 rootOids.add(pm.getObjectId(pc));
             }
@@ -87,7 +87,7 @@ public class CompletenessTestMap extends AbstractReaderTest {
             CompanyFactoryRegistry.registerFactory();
             // get new obj graph to compare persistent graph with
             CompanyModelReader reader = new CompanyModelReader(inputFilename);
-            List rootList = getRootList(reader);
+            List<Object> rootList = getRootList(reader);
             
             getPM();
             pm.currentTransaction().begin();
diff --git a/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTestOrder.java b/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTestOrder.java
index 5283010a..3beea9fe 100644
--- a/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTestOrder.java
+++ b/tck/src/main/java/org/apache/jdo/tck/mapping/CompletenessTestOrder.java
@@ -65,10 +65,10 @@ public class CompletenessTestOrder extends AbstractReaderTest {
             addTearDownClass(reader.getTearDownClassesFromFactory());
             // persist test data
             pm.currentTransaction().begin();
-            List rootList = getRootList(reader);
+            List<Object> rootList = getRootList(reader);
             pm.makePersistentAll(rootList);
-            rootOids = new ArrayList();
-            for (Iterator i = rootList.iterator(); i.hasNext(); ) {
+            rootOids = new ArrayList<>();
+            for (Iterator<Object> i = rootList.iterator(); i.hasNext(); ) {
                 Object pc = i.next();
                 rootOids.add(pm.getObjectId(pc));
             }
@@ -84,7 +84,7 @@ public class CompletenessTestOrder extends AbstractReaderTest {
             OrderFactoryRegistry.registerFactory();
             // get new obj graph to compare persistent graph with
             OrderModelReader reader = new OrderModelReader(inputFilename);
-            List rootList = getRootList(reader);
+            List<Object> rootList = getRootList(reader);
             
             getPM();
             pm.currentTransaction().begin();
diff --git a/tck/src/main/java/org/apache/jdo/tck/mapping/Relationship1To1AllRelationships.java b/tck/src/main/java/org/apache/jdo/tck/mapping/Relationship1To1AllRelationships.java
index 6109dd1a..1bc031c6 100644
--- a/tck/src/main/java/org/apache/jdo/tck/mapping/Relationship1To1AllRelationships.java
+++ b/tck/src/main/java/org/apache/jdo/tck/mapping/Relationship1To1AllRelationships.java
@@ -272,7 +272,7 @@ public class Relationship1To1AllRelationships extends AbstractRelationshipTest {
                 new Date(0L), new Date(10000L), 125000);
             pm.makePersistent(empNew);
             medIns1.setEmployee(empNew);
-            Object empNewOid = pm.getObjectId((Object)empNew);
+            Object empNewOid = pm.getObjectId(empNew);
             pm.flush();
             
             assertFalse(testMethod + ": Test aborted, precondition is false; " +
@@ -320,7 +320,7 @@ public class Relationship1To1AllRelationships extends AbstractRelationshipTest {
                 "Ameriblast", "B");
             pm.makePersistent(medInsNew);
             emp1.setMedicalInsurance(medInsNew);
-            Object medInsNewOid = pm.getObjectId((Object)medInsNew);
+            Object medInsNewOid = pm.getObjectId(medInsNew);
             pm.flush();
             
             assertFalse(testMethod + ": Test aborted, precondition is false; " +
diff --git a/tck/src/main/java/org/apache/jdo/tck/mapping/Relationship1To1NoRelationships.java b/tck/src/main/java/org/apache/jdo/tck/mapping/Relationship1To1NoRelationships.java
index f3a86f26..2edc508c 100644
--- a/tck/src/main/java/org/apache/jdo/tck/mapping/Relationship1To1NoRelationships.java
+++ b/tck/src/main/java/org/apache/jdo/tck/mapping/Relationship1To1NoRelationships.java
@@ -162,7 +162,7 @@ public class Relationship1To1NoRelationships extends AbstractRelationshipTest {
                 new Date(0L), new Date(10000L), 125000);
             pm.makePersistent(empNew);
             medIns1.setEmployee(empNew);
-            Object empNewOid = pm.getObjectId((Object)empNew);
+            Object empNewOid = pm.getObjectId(empNew);
             pm.flush();
             
             // Postcondition
@@ -199,7 +199,7 @@ public class Relationship1To1NoRelationships extends AbstractRelationshipTest {
                 "Ameriblast", "B");
             pm.makePersistent(medInsNew);
             emp1.setMedicalInsurance(medInsNew);
-            Object medInsNewOid = pm.getObjectId((Object)medInsNew);
+            Object medInsNewOid = pm.getObjectId(medInsNew);
             pm.flush();
             
             // Postcondition
diff --git a/tck/src/main/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java b/tck/src/main/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java
index d8fa5e78..80e21f05 100644
--- a/tck/src/main/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java
+++ b/tck/src/main/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java
@@ -194,7 +194,7 @@ public class Relationship1ToManyAllRelationships extends AbstractRelationshipTes
             Object dept2Oid = getOidByName("dept2");
             Department dept2 = (Department)pm.getObjectById(dept2Oid);
 
-            Set emps = new HashSet();
+            Set<IEmployee> emps = new HashSet<>();
             emps.add(emp4);
             dept1.setEmployees(emps);
             pm.flush();
@@ -239,7 +239,7 @@ public class Relationship1ToManyAllRelationships extends AbstractRelationshipTes
             Employee empNew = new FullTimeEmployee(101, "Jenny", "Merriwether",
                 "White", new Date(500L), new Date(10000L), 135000);
             pm.makePersistent(empNew);
-            Object empNewOid = pm.getObjectId((Object)empNew);
+            Object empNewOid = pm.getObjectId(empNew);
 
             dept1.addEmployee(empNew);
             pm.flush();
@@ -337,7 +337,7 @@ public class Relationship1ToManyAllRelationships extends AbstractRelationshipTes
             IDepartment deptNew = new Department(99L, "The New Department");
             pm.makePersistent(deptNew);
             emp1.setDepartment(deptNew);
-            Object deptNewOid = pm.getObjectId((Object)deptNew);
+            Object deptNewOid = pm.getObjectId(deptNew);
             pm.flush();
             
             assertFalse(testMethod + ": Test aborted, precondition is false; " +
diff --git a/tck/src/main/java/org/apache/jdo/tck/mapping/Relationship1ToManyNoRelationships.java b/tck/src/main/java/org/apache/jdo/tck/mapping/Relationship1ToManyNoRelationships.java
index 72a0228a..6beccea5 100644
--- a/tck/src/main/java/org/apache/jdo/tck/mapping/Relationship1ToManyNoRelationships.java
+++ b/tck/src/main/java/org/apache/jdo/tck/mapping/Relationship1ToManyNoRelationships.java
@@ -23,6 +23,7 @@ import java.util.Set;
 import org.apache.jdo.tck.pc.company.Department;
 import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.pc.company.FullTimeEmployee;
+import org.apache.jdo.tck.pc.company.IEmployee;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 
@@ -128,7 +129,7 @@ public class Relationship1ToManyNoRelationships extends AbstractRelationshipTest
         if (isTestToBePerformed) {
             
             // Set relationship
-            Set emps = new HashSet();
+            Set<IEmployee> emps = new HashSet<>();
             emps.add(emp1);
             dept1.setEmployees(emps);
             pm.flush();
@@ -209,13 +210,13 @@ public class Relationship1ToManyNoRelationships extends AbstractRelationshipTest
         if (isTestToBePerformed) {
             
             // Set relationship
-            Set emps = new HashSet();
+            Set<IEmployee> emps = new HashSet<>();
             Employee empNew = new FullTimeEmployee(101, "Jenny", "Merriwether",
                 "White", new Date(500L), new Date(10000L), 135000);
             pm.makePersistent(empNew);
             emps.add(empNew);
             dept1.setEmployees(emps);
-            Object empNewOid = pm.getObjectId((Object)empNew);
+            Object empNewOid = pm.getObjectId(empNew);
             pm.flush();
             
             // Postcondition
diff --git a/tck/src/main/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java b/tck/src/main/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java
index 83bf5591..8e442573 100644
--- a/tck/src/main/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java
+++ b/tck/src/main/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java
@@ -163,10 +163,10 @@ public class RelationshipManyToManyAllRelationships
             IEmployee empNew = new FullTimeEmployee(100, "Jerry", "Valentine",
                     "Brown", new Date(500L), new Date(10000L), 125000);
             pm.makePersistent(empNew);
-            Set<IEmployee> members = new HashSet<IEmployee>();
+            Set<IEmployee> members = new HashSet<>();
             members.add(empNew);
             proj1.setMembers(members);
-            Object empNewOid = pm.getObjectId((Object)empNew);
+            Object empNewOid = pm.getObjectId(empNew);
             pm.flush();
 
             // Postcondition
@@ -202,10 +202,10 @@ public class RelationshipManyToManyAllRelationships
             IProject projNew = new Project(99L, "Skunkworks",
                     new BigDecimal(10000.35));
             pm.makePersistent(projNew);
-            Set<IProject> projects = new HashSet<IProject>();
+            Set<IProject> projects = new HashSet<>();
             projects.add(projNew);
             emp1.setProjects(projects);
-            Object projNewOid = pm.getObjectId((Object)projNew);
+            Object projNewOid = pm.getObjectId(projNew);
             pm.flush();
 
             // Postcondition
@@ -241,7 +241,7 @@ public class RelationshipManyToManyAllRelationships
                     "Brown", new Date(500L), new Date(10000L), 125000);
             pm.makePersistent(empNew);
             proj1.addMember(empNew);
-            Object empNewOid = pm.getObjectId((Object)empNew);
+            Object empNewOid = pm.getObjectId(empNew);
             pm.flush();
 
             // Postcondition
@@ -278,7 +278,7 @@ public class RelationshipManyToManyAllRelationships
                     new BigDecimal(10000.35));
             pm.makePersistent(projNew);
             emp1.addProject(projNew);
-            Object projNewOid = pm.getObjectId((Object)projNew);
+            Object projNewOid = pm.getObjectId(projNew);
             pm.flush();
 
             // Postcondition
diff --git a/tck/src/main/java/org/apache/jdo/tck/mapping/RelationshipManyToManyNoRelationships.java b/tck/src/main/java/org/apache/jdo/tck/mapping/RelationshipManyToManyNoRelationships.java
index 7a5a0eb1..bf616a2f 100644
--- a/tck/src/main/java/org/apache/jdo/tck/mapping/RelationshipManyToManyNoRelationships.java
+++ b/tck/src/main/java/org/apache/jdo/tck/mapping/RelationshipManyToManyNoRelationships.java
@@ -23,6 +23,8 @@ import java.util.HashSet;
 import java.util.Set;
 import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.pc.company.FullTimeEmployee;
+import org.apache.jdo.tck.pc.company.IEmployee;
+import org.apache.jdo.tck.pc.company.IProject;
 import org.apache.jdo.tck.pc.company.Project;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
@@ -93,7 +95,7 @@ public class RelationshipManyToManyNoRelationships extends AbstractRelationshipT
         if (isTestToBePerformed) {
             
             // Set relationship
-            Set emps = new HashSet();
+            Set<IEmployee> emps = new HashSet<>();
             emps.add(emp1);
             proj1.setMembers(emps);
             pm.flush();
@@ -127,7 +129,7 @@ public class RelationshipManyToManyNoRelationships extends AbstractRelationshipT
         if (isTestToBePerformed) {
             
             // Set relationship
-            Set projs = new HashSet();
+            Set<IProject> projs = new HashSet<>();
             projs.add(proj1);
             emp1.setProjects(projs);
             pm.flush();
@@ -161,7 +163,7 @@ public class RelationshipManyToManyNoRelationships extends AbstractRelationshipT
         if (isTestToBePerformed) {
             
             // Set relationship
-            Set members = new HashSet();
+            Set<IEmployee> members = new HashSet<>();
             Employee empNew = new FullTimeEmployee(100, "Jerry", "Valentine",
                 "Brown", new Date(500L), new Date(10000L), 125000);
             pm.makePersistent(empNew);
@@ -203,13 +205,13 @@ public class RelationshipManyToManyNoRelationships extends AbstractRelationshipT
         if (isTestToBePerformed) {
             
             // Set relationship
-            Set projects = new HashSet();
+            Set<IProject> projects = new HashSet<>();
             Project projNew = new Project(99L, "Skunkworks",
                 new BigDecimal(10000.35));
             pm.makePersistent(projNew);
             projects.add(projNew);
             emp1.setProjects(projects);
-            Object projNewOid = pm.getObjectId((Object)projNew);
+            Object projNewOid = pm.getObjectId(projNew);
             pm.flush();
             
             assertFalse(testMethod + ": Test aborted, precondition is false; " +
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/embedded/EmbeddedInheritance.java b/tck/src/main/java/org/apache/jdo/tck/models/embedded/EmbeddedInheritance.java
index cbf7eafb..89cffd35 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/embedded/EmbeddedInheritance.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/embedded/EmbeddedInheritance.java
@@ -156,7 +156,7 @@ public class EmbeddedInheritance extends JDO_Test {
 
         getPM().currentTransaction().begin();
 
-        Query q = getPM().newQuery("SELECT FROM " + Kitchen.class.getName() +
+        Query<Kitchen> q = getPM().newQuery("SELECT FROM " + Kitchen.class.getName() +
                 " WHERE this.oven.make == 'Westinghouse'");
 		List<Kitchen> kitchens = (List<Kitchen>)q.execute();
         assertNotNull("No results from query!", kitchens);
@@ -195,14 +195,14 @@ public class EmbeddedInheritance extends JDO_Test {
 
         getPM().currentTransaction().begin();
 
-        Query q1 = getPM().newQuery("SELECT FROM " + Kitchen.class.getName() +
+        Query<Kitchen> q1 = getPM().newQuery("SELECT FROM " + Kitchen.class.getName() +
                 " WHERE this.oven instanceof org.apache.jdo.tck.pc.building.MultifunctionOven");
         List<Kitchen> kitchens1 = (List<Kitchen>)q1.execute();
         assertNotNull("No results from query!", kitchens1);
         assertEquals("Number of query results was incorrect", 1, kitchens1.size());
  
         // Query using cast and a field of the subclass embedded class
-        Query q2 = getPM().newQuery("SELECT FROM " + Kitchen.class.getName() +
+        Query<Kitchen> q2 = getPM().newQuery("SELECT FROM " + Kitchen.class.getName() +
                 " WHERE ((org.apache.jdo.tck.pc.building.MultifunctionOven)this.oven).capabilities == 'TIMER,CLOCK'");
         List<Kitchen> kitchens2 = (List<Kitchen>)q2.execute();
         assertNotNull("No results from query!", kitchens2);
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/embedded/SecondClassObjectsTrackTheirChanges.java b/tck/src/main/java/org/apache/jdo/tck/models/embedded/SecondClassObjectsTrackTheirChanges.java
index 9f5e10f3..e6dae584 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/embedded/SecondClassObjectsTrackTheirChanges.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/embedded/SecondClassObjectsTrackTheirChanges.java
@@ -25,6 +25,7 @@ import org.apache.jdo.tck.JDO_Test;
 import org.apache.jdo.tck.pc.company.Address;
 import org.apache.jdo.tck.pc.company.Company;
 import org.apache.jdo.tck.pc.company.Department;
+import org.apache.jdo.tck.pc.company.IDepartment;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 /**
@@ -97,7 +98,7 @@ public class SecondClassObjectsTrackTheirChanges extends JDO_Test {
         pm.currentTransaction().begin();
         makePersistentCleanInstance(comp);
 
-        Set depts = comp.getDepartments();
+        Set<IDepartment> depts = comp.getDepartments();
         // comp or depts should transition to persistent-dirty
         comp.addDepartment(new Department(0, "HR", comp));
         int currComp = currentState(comp);
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestArrayCollections.java b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestArrayCollections.java
index 97749874..c2cdc404 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestArrayCollections.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestArrayCollections.java
@@ -22,7 +22,6 @@ import java.lang.reflect.Array;
 import java.math.BigDecimal;
 
 import java.util.Arrays;
-import java.util.Collection;
 import java.util.Vector;
 
 import javax.jdo.PersistenceManager;
@@ -130,8 +129,8 @@ public class TestArrayCollections extends JDO_Test {
     /** */
     private void setValues(ArrayCollections collect, int order)
     {
-        Vector value;
-        Class vectorClass = null;
+        Vector<?> value;
+        Class<?> vectorClass = null;
         int n = collect.getLength();
         for (int i = 0; i < n; ++i) {
             String valueType = TestUtil.getFieldSpecs(
@@ -162,7 +161,7 @@ public class TestArrayCollections extends JDO_Test {
         int n = pi.getLength();
         for (int i = 0; i < n; ++i) {
             Object obj = new Object();
-            Class objClass = obj.getClass();
+            Class<?> objClass = obj.getClass();
             Object[] expected = (Object[])Array.newInstance(objClass, 5);
             Object[] actual = (Object[])Array.newInstance(objClass, 5);
             expected = expectedValue.get(i);
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestArrayListCollections.java b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestArrayListCollections.java
index 0293d597..ba35563f 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestArrayListCollections.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestArrayListCollections.java
@@ -128,14 +128,14 @@ public class TestArrayListCollections extends JDO_Test {
     /** */
     private void setValues(ArrayListCollections collect, int order)
     {
-        Collection value;
+        Collection<?> value;
         int n = collect.getLength();
         for (int i = 0; i < n; ++i) {
             String valueType = TestUtil.getFieldSpecs(
                     ArrayListCollections.fieldSpecs[i]);
-            value = (Collection)TestUtil.makeNewVectorInstance(
+            value = (Collection<?>)TestUtil.makeNewVectorInstance(
                     valueType, order);
-            ArrayList arrayListValue = new ArrayList(value);
+            ArrayList<?> arrayListValue = new ArrayList<>(value);
             collect.set(i, arrayListValue);
             if (debug)
                 logger.debug("Set " + i + "th value to: " + value.toString());
@@ -151,8 +151,8 @@ public class TestArrayListCollections extends JDO_Test {
                 pm.getObjectById(oid, true);
         int n = pi.getLength();
         for (i = 0; i < n; ++i) {
-            Collection expected = expectedValue.get(i);
-            Collection actual = pi.get(i);
+            Collection<?> expected = expectedValue.get(i);
+            Collection<?> actual = pi.get(i);
             if (actual == null) {
                 sbuf.append("\nFor element " + i 
                         + ", retrieved instance is null");
@@ -171,10 +171,10 @@ public class TestArrayListCollections extends JDO_Test {
                 	logger.debug("Field is " + i + " Class name is "
                           +  actual.getClass().getName()
 			  + "   isInstance of Vector is "
-			  + actual.getClass().isInstance((Object)new Vector()));
+			  + actual.getClass().isInstance(new Vector<>()));
 		    }
-                    List expectedL = (List)expected;
-                    List actualL = (List)actual;
+                    List<?> expectedL = (List<?>)expected;
+                    List<?> actualL = (List<?>)actual;
                     for (int j = 0; j < actualL.size(); ++j) {
                         BigDecimal bigDecCompareWith =
                             (BigDecimal)expectedL.get(j);
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestCollectionCollections.java b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestCollectionCollections.java
index 06059c98..7ae62342 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestCollectionCollections.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestCollectionCollections.java
@@ -122,7 +122,7 @@ public class TestCollectionCollections extends JDO_Test {
     /** */
     private void setValues(CollectionCollections colcol, int order)
     {
-        Vector value;
+        Vector<?> value;
         int n = colcol.getLength();
         for (int i = 0; i < n; ++i) {
             String valueType = TestUtil.getFieldSpecs(
@@ -142,8 +142,8 @@ public class TestCollectionCollections extends JDO_Test {
                 pm.getObjectById(oid, true);
         int n = pi.getLength();
         for (int i = 0; i < n; ++i) {
-            Collection expected = expectedValue.get(i);
-            Collection actual = pi.get(i);
+            Collection<?> expected = expectedValue.get(i);
+            Collection<?> actual = pi.get(i);
             if (actual.size() != expected.size()) {
                 sbuf.append("\nFor element " + i + ", expected size = " +
                         expected.size() + ", actual size = " + actual.size()
@@ -156,10 +156,10 @@ public class TestCollectionCollections extends JDO_Test {
                 	logger.debug("Field is " + i + " Class name is "
                           +  actual.getClass().getName()
 			              + "   isInstance of Vector is "
-			              + actual.getClass().isInstance((Object)new Vector()));
+			              + actual.getClass().isInstance((Object)new Vector<>()));
 		            }
-                    List expectedL = (List)expected;
-                    List actualL = (List)actual;
+                    List<?> expectedL = (List<?>)expected;
+                    List<?> actualL = (List<?>)actual;
                     for (int j = 0; j < actualL.size(); ++j) {
                         BigDecimal bigDecCompareWith =
                             (BigDecimal)expectedL.get(j);
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashMapStringKeyCollections.java b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashMapStringKeyCollections.java
index 2b695118..2e616e31 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashMapStringKeyCollections.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashMapStringKeyCollections.java
@@ -135,14 +135,14 @@ public class TestHashMapStringKeyCollections extends JDO_Test {
         int valueOrder = (order == 1) ? 2 : 1; // why??
         int n = collect.getLength();
         for (int i = 0; i < n; ++i) {
-            Vector fieldSpecs = TestUtil.getFieldSpecsForMap(
+            Vector<String> fieldSpecs = TestUtil.getFieldSpecsForMap(
                     HashMapStringKeyCollections.fieldSpecs[i]);
-            Vector key = TestUtil.makeNewVectorInstance(
-                    (String)fieldSpecs.get(0), keyOrder);
-            Vector value = TestUtil.makeNewVectorInstance(
-                    (String)fieldSpecs.get(1), valueOrder);
+            Vector<?> key = TestUtil.makeNewVectorInstance(
+                    fieldSpecs.get(0), keyOrder);
+            Vector<?> value = TestUtil.makeNewVectorInstance(
+                    fieldSpecs.get(1), valueOrder);
 
-            HashMap map = new HashMap();
+            HashMap map = new HashMap<>();
             for (int j = 0; j< key.size(); j++) {
                 map.put(key.get(j), value.get(j));
             }
@@ -161,8 +161,8 @@ public class TestHashMapStringKeyCollections extends JDO_Test {
                 pm.getObjectById(oid, true);
         int n = pi.getLength();
         for (int i = 0; i < n; ++i) {
-            HashMap expected = expectedValue.get(i);
-            HashMap actual = pi.get(i);
+            HashMap<?, ?> expected = expectedValue.get(i);
+            HashMap<?, ?> actual = pi.get(i);
             if (actual.size() != expected.size()) {
                 sbuf.append("\nFor element " + i + ", expected size = " +
                         expected.size() + ", actual size = " + actual.size()
@@ -172,8 +172,8 @@ public class TestHashMapStringKeyCollections extends JDO_Test {
                 if (TestUtil.getFieldSpecsForMap(
                             HashMapStringKeyCollections.fieldSpecs[i]
                             ).get(1).equals("BigDecimal")) {
-                    Set keys = expected.keySet();
-                    Iterator iter = keys.iterator();
+                    Set<?> keys = expected.keySet();
+                    Iterator<?> iter = keys.iterator();
                     while (iter.hasNext()) {
                         Object nextKey = iter.next();
                         BigDecimal expectedMapValue = 
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashMapStringValueCollections.java b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashMapStringValueCollections.java
index eb1a56e0..70357f54 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashMapStringValueCollections.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashMapStringValueCollections.java
@@ -135,14 +135,14 @@ public class TestHashMapStringValueCollections extends JDO_Test {
         int valueOrder = (order == 1) ? 2 : 1; // why??
         int n = collect.getLength();
         for (int i = 0; i < n; ++i) {
-            Vector fieldSpecs = TestUtil.getFieldSpecsForMap(
+            Vector<String> fieldSpecs = TestUtil.getFieldSpecsForMap(
                     HashMapStringValueCollections.fieldSpecs[i]);
-            Vector key = TestUtil.makeNewVectorInstance(
-                    (String)fieldSpecs.get(0), keyOrder);
-            Vector value = TestUtil.makeNewVectorInstance(
-                    (String)fieldSpecs.get(1), valueOrder);
+            Vector<?> key = TestUtil.makeNewVectorInstance(
+                    fieldSpecs.get(0), keyOrder);
+            Vector<?> value = TestUtil.makeNewVectorInstance(
+                    fieldSpecs.get(1), valueOrder);
 
-            HashMap map = new HashMap();
+            HashMap map = new HashMap<>();
             for (int j = 0; j< key.size(); j++) {
                 map.put(key.get(j), value.get(j));
             }
@@ -161,8 +161,8 @@ public class TestHashMapStringValueCollections extends JDO_Test {
                 pm.getObjectById(oid, true);
         int n = pi.getLength();
         for (int i = 0; i < n; ++i) {
-            HashMap expected = expectedValue.get(i);
-            HashMap actual = pi.get(i);
+            HashMap<?, ?> expected = expectedValue.get(i);
+            HashMap<?, ?> actual = pi.get(i);
             if (actual.size() != expected.size()) {
                 sbuf.append("\nFor element " + i + ", expected size = " +
                         expected.size() + ", actual size = " + actual.size()
@@ -172,9 +172,9 @@ public class TestHashMapStringValueCollections extends JDO_Test {
                 if (TestUtil.getFieldSpecsForMap(
                             HashMapStringValueCollections.fieldSpecs[i]
                             ).get(0).equals("BigDecimal")) {
-                    Set expectedKeySet = expected.keySet();
+                    Set<?> expectedKeySet = expected.keySet();
                     Set actualKeySet = actual.keySet();
-                    Iterator expectedIter = expectedKeySet.iterator();
+                    Iterator<?> expectedIter = expectedKeySet.iterator();
                     while (expectedIter.hasNext()) {
                         BigDecimal expectedKey = (BigDecimal) expectedIter.next();
                         // compare keys
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashSetCollections.java b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashSetCollections.java
index 979e87ac..e15f0b3c 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashSetCollections.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashSetCollections.java
@@ -124,14 +124,14 @@ public class TestHashSetCollections extends JDO_Test {
     /** */
     private void setValues(HashSetCollections collect, int order)
     {
-        Collection value;
+        Collection<?> value;
         int n = collect.getLength();
         for (int i = 0; i < n; ++i) {
             String valueType = TestUtil.getFieldSpecs(
                     HashSetCollections.fieldSpecs[i]);
-            value = (Collection)TestUtil.makeNewVectorInstance(
+            value = TestUtil.makeNewVectorInstance(
                     valueType, order);
-            HashSet lvalue = new HashSet(value);
+            HashSet<?> lvalue = new HashSet<>(value);
             collect.set(i, lvalue);
             if (debug)
                 logger.debug("Set " + i + "th value to: " + value.toString());
@@ -147,8 +147,8 @@ public class TestHashSetCollections extends JDO_Test {
                 pm.getObjectById(oid, true);
         int n = pi.getLength();
         for (i = 0; i < n; ++i) {
-            HashSet expected = expectedValue.get(i);
-            HashSet actual = pi.get(i);
+            HashSet<?> expected = expectedValue.get(i);
+            HashSet<?> actual = pi.get(i);
             if (actual.size() != expected.size()) {
                 sbuf.append("\nFor element " + i + ", expected size = " +
                         expected.size() + ", actual size = " + actual.size()
@@ -158,10 +158,10 @@ public class TestHashSetCollections extends JDO_Test {
                 if (TestUtil.getFieldSpecs(HashSetCollections.fieldSpecs[i]
                             ).equals("BigDecimal")) {
                     // sort values for comparison
-                    TreeSet expectedTS = new TreeSet(expected);
-                    TreeSet actualTS = new TreeSet(actual);
-                    Iterator expectedIter = expectedTS.iterator();
-                    Iterator actualIter = actualTS.iterator();
+                    TreeSet<?> expectedTS = new TreeSet<>(expected);
+                    TreeSet<?> actualTS = new TreeSet<>(actual);
+                    Iterator<?> expectedIter = expectedTS.iterator();
+                    Iterator<?> actualIter = actualTS.iterator();
                     for (int j=0; j < expectedTS.size(); j++) {
                         BigDecimal bigDecExpected =
                                 (BigDecimal)(expectedIter.next());
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashtableStringKeyCollections.java b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashtableStringKeyCollections.java
index d4993edc..ccb53d5d 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashtableStringKeyCollections.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashtableStringKeyCollections.java
@@ -137,14 +137,14 @@ public class TestHashtableStringKeyCollections extends JDO_Test {
         int valueOrder = (order == 1) ? 2 : 1; // why??
         int n = collect.getLength();
         for (int i = 0; i < n; ++i) {
-            Vector fieldSpecs = TestUtil.getFieldSpecsForMap(
+            Vector<String> fieldSpecs = TestUtil.getFieldSpecsForMap(
                     HashtableStringKeyCollections.fieldSpecs[i]);
-            Vector key = TestUtil.makeNewVectorInstance(
-                    (String)fieldSpecs.get(0), keyOrder);
-            Vector value = TestUtil.makeNewVectorInstance(
-                    (String)fieldSpecs.get(1), valueOrder);
+            Vector<?> key = TestUtil.makeNewVectorInstance(
+                    fieldSpecs.get(0), keyOrder);
+            Vector<?> value = TestUtil.makeNewVectorInstance(
+                    fieldSpecs.get(1), valueOrder);
 
-            Hashtable map = new Hashtable();
+            Hashtable map = new Hashtable<>();
             for (int j = 0; j< key.size(); j++) {
                 map.put(key.get(j), value.get(j));
             }
@@ -163,8 +163,8 @@ public class TestHashtableStringKeyCollections extends JDO_Test {
                 pm.getObjectById(oid, true);
         int n = pi.getLength();
         for (int i = 0; i < n; ++i) {
-            Hashtable expected = expectedValue.get(i);
-            Hashtable actual = pi.get(i);
+            Hashtable<?, ?> expected = expectedValue.get(i);
+            Hashtable<?, ?> actual = pi.get(i);
             if (actual.size() != expected.size()) {
                 sbuf.append("\nFor element " + i + ", expected size = " +
                         expected.size() + ", actual size = " + actual.size()
@@ -174,8 +174,8 @@ public class TestHashtableStringKeyCollections extends JDO_Test {
                 if (TestUtil.getFieldSpecsForMap(
                             HashtableStringKeyCollections.fieldSpecs[i]
                             ).get(1).equals("BigDecimal")) {
-                    Set keys = expected.keySet();
-                    Iterator iter = keys.iterator();
+                    Set<?> keys = expected.keySet();
+                    Iterator<?> iter = keys.iterator();
                     while (iter.hasNext()) {
                         Object nextKey = iter.next();
                         BigDecimal expectedMapValue = 
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashtableStringValueCollections.java b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashtableStringValueCollections.java
index cd8ce029..3cf08677 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashtableStringValueCollections.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestHashtableStringValueCollections.java
@@ -134,14 +134,14 @@ public class TestHashtableStringValueCollections extends JDO_Test {
         int valueOrder = (order == 1) ? 2 : 1; // why??
         int n = collect.getLength();
         for (int i = 0; i < n; ++i) {
-            Vector fieldSpecs = TestUtil.getFieldSpecsForMap(
+            Vector<String> fieldSpecs = TestUtil.getFieldSpecsForMap(
                     HashtableStringValueCollections.fieldSpecs[i]);
-            Vector key = TestUtil.makeNewVectorInstance(
-                    (String)fieldSpecs.get(0), keyOrder);
-            Vector value = TestUtil.makeNewVectorInstance(
-                    (String)fieldSpecs.get(1), valueOrder);
+            Vector<?> key = TestUtil.makeNewVectorInstance(
+                    fieldSpecs.get(0), keyOrder);
+            Vector<?> value = TestUtil.makeNewVectorInstance(
+                    fieldSpecs.get(1), valueOrder);
 
-            Hashtable map = new Hashtable();
+            Hashtable map = new Hashtable<>();
             for (int j = 0; j< key.size(); j++) {
                 map.put(key.get(j), value.get(j));
             }
@@ -160,8 +160,8 @@ public class TestHashtableStringValueCollections extends JDO_Test {
                 pm.getObjectById(oid, true);
         int n = pi.getLength();
         for (int i = 0; i < n; ++i) {
-            Hashtable expected = expectedValue.get(i);
-            Hashtable actual = pi.get(i);
+            Hashtable<?, ?> expected = expectedValue.get(i);
+            Hashtable<?, ?> actual = pi.get(i);
             if (actual.size() != expected.size()) {
                 sbuf.append("\nFor element " + i + ", expected size = " +
                         expected.size() + ", actual size = " + actual.size()
@@ -171,9 +171,9 @@ public class TestHashtableStringValueCollections extends JDO_Test {
                 if (TestUtil.getFieldSpecsForMap(
                             HashtableStringValueCollections.fieldSpecs[i]
                             ).get(0).equals("BigDecimal")) {
-                    Set expectedKeySet = expected.keySet();
+                    Set<?> expectedKeySet = expected.keySet();
                     Set actualKeySet = actual.keySet();
-                    Iterator expectedIter = expectedKeySet.iterator();
+                    Iterator<?> expectedIter = expectedKeySet.iterator();
                     while (expectedIter.hasNext()) {
                         BigDecimal expectedKey = (BigDecimal) expectedIter.next();
                         // compare keys
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestLinkedListCollections.java b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestLinkedListCollections.java
index 22517ce5..1b0b2a84 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestLinkedListCollections.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestLinkedListCollections.java
@@ -130,14 +130,14 @@ public class TestLinkedListCollections extends JDO_Test {
     /** */
     private void setValues(LinkedListCollections collect, int order)
     {
-        Collection value;
+        Collection<?> value;
         int n = collect.getLength();
         for (int i = 0; i < n; ++i) {
             String valueType = TestUtil.getFieldSpecs(
                     LinkedListCollections.fieldSpecs[i]);
-            value = (Collection)TestUtil.makeNewVectorInstance(
+            value = (Collection<?>)TestUtil.makeNewVectorInstance(
                     valueType, order);
-            LinkedList lvalue = new LinkedList(value);
+            LinkedList<?> lvalue = new LinkedList<>(value);
             collect.set(i, lvalue);
             if (debug)
                 logger.debug("Set " + i + "th value to: " + value.toString());
@@ -153,8 +153,8 @@ public class TestLinkedListCollections extends JDO_Test {
                 pm.getObjectById(oid, true);
         int n = pi.getLength();
         for (i = 0; i < n; ++i) {
-            LinkedList expected = expectedValue.get(i);
-            LinkedList actual = pi.get(i);
+            LinkedList<?> expected = expectedValue.get(i);
+            LinkedList<?> actual = pi.get(i);
             if (actual.size() != expected.size()) {
                 sbuf.append("\nFor element " + i + ", expected size = " +
                         expected.size() + ", actual size = " + actual.size()
@@ -163,8 +163,8 @@ public class TestLinkedListCollections extends JDO_Test {
             else if (! expected.equals(actual)) {
                 if (TestUtil.getFieldSpecs(LinkedListCollections.fieldSpecs[i]
                             ).equals("BigDecimal")) {
-                    ListIterator expectedIT = expected.listIterator();
-                    ListIterator actualIt = actual.listIterator();
+                    ListIterator<?> expectedIT = expected.listIterator();
+                    ListIterator<?> actualIt = actual.listIterator();
                     int index = 0;
                     while (expectedIT.hasNext()) {
                         BigDecimal bigDecExpected =
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestListCollections.java b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestListCollections.java
index 2ff6c4c2..73a3ba5b 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestListCollections.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestListCollections.java
@@ -158,8 +158,8 @@ public class TestListCollections extends JDO_Test {
                 pm.getObjectById(oid, true);
         int n = pi.getLength();
         for (i = 0; i < n; ++i) {
-            List expected = expectedValue.get(i);
-            List actual = pi.get(i);
+            List<?> expected = expectedValue.get(i);
+            List<?> actual = pi.get(i);
             if (actual.size() != expected.size()) {
                 sbuf.append("\nFor element " + i + ", expected size = " +
                         expected.size() + ", actual size = " + actual.size()
@@ -168,8 +168,8 @@ public class TestListCollections extends JDO_Test {
             else if (! expected.equals(actual)) {
                 if (TestUtil.getFieldSpecs(ListCollections.fieldSpecs[i]
                             ).equals("BigDecimal")) {
-                    ListIterator expectedIt = expected.listIterator();
-                    ListIterator actualIt = actual.listIterator();
+                    ListIterator<?> expectedIt = expected.listIterator();
+                    ListIterator<?> actualIt = actual.listIterator();
                     int index = 0;
                     while (expectedIt.hasNext()) {
                         BigDecimal bigDecExpected =
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestMapStringKeyCollections.java b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestMapStringKeyCollections.java
index 8c9e349f..8cf0cd69 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestMapStringKeyCollections.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestMapStringKeyCollections.java
@@ -136,14 +136,14 @@ public class TestMapStringKeyCollections extends JDO_Test {
         int valueOrder = (order == 1) ? 2 : 1; // why??
         int n = collect.getLength();
         for (int i = 0; i < n; ++i) {
-            Vector fieldSpecs = TestUtil.getFieldSpecsForMap(
+            Vector<String> fieldSpecs = TestUtil.getFieldSpecsForMap(
                     MapStringKeyCollections.fieldSpecs[i]);
-            Vector key = TestUtil.makeNewVectorInstance(
-                    (String)fieldSpecs.get(0), keyOrder);
-            Vector value = TestUtil.makeNewVectorInstance(
-                    (String)fieldSpecs.get(1), valueOrder);
+            Vector<?> key = TestUtil.makeNewVectorInstance(
+                    fieldSpecs.get(0), keyOrder);
+            Vector<?> value = TestUtil.makeNewVectorInstance(
+                    fieldSpecs.get(1), valueOrder);
 
-            HashMap map = new HashMap();
+            HashMap map = new HashMap<>();
             for (int j = 0; j< key.size(); j++) {
                 map.put(key.get(j), value.get(j));
             }
@@ -162,8 +162,8 @@ public class TestMapStringKeyCollections extends JDO_Test {
                 pm.getObjectById(oid, true);
         int n = pi.getLength();
         for (int i = 0; i < n; ++i) {
-            Map expected = expectedValue.get(i);
-            Map actual = pi.get(i);
+            Map<?, ?> expected = expectedValue.get(i);
+            Map<?, ?> actual = pi.get(i);
             if (actual.size() != expected.size()) {
                 sbuf.append("\nFor element " + i + ", expected size = " +
                         expected.size() + ", actual size = " + actual.size()
@@ -173,8 +173,8 @@ public class TestMapStringKeyCollections extends JDO_Test {
                 if (TestUtil.getFieldSpecsForMap(
                             MapStringKeyCollections.fieldSpecs[i]
                             ).get(1).equals("BigDecimal")) {
-                    Set keys = expected.keySet();
-                    Iterator iter = keys.iterator();
+                    Set<?> keys = expected.keySet();
+                    Iterator<?> iter = keys.iterator();
                     while (iter.hasNext()) {
                         Object nextKey = iter.next();
                         BigDecimal expectedMapValue = 
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestMapStringValueCollections.java b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestMapStringValueCollections.java
index ee7f1014..3612a27b 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestMapStringValueCollections.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestMapStringValueCollections.java
@@ -139,14 +139,14 @@ public class TestMapStringValueCollections extends JDO_Test {
         int valueOrder = (order == 1) ? 2 : 1; // why??
         int n = collect.getLength();
         for (int i = 0; i < n; ++i) {
-            Vector fieldSpecs = TestUtil.getFieldSpecsForMap(
+            Vector<String> fieldSpecs = TestUtil.getFieldSpecsForMap(
                     MapStringValueCollections.fieldSpecs[i]);
-            Vector key = TestUtil.makeNewVectorInstance(
-                    (String)fieldSpecs.get(0), keyOrder);
-            Vector value = TestUtil.makeNewVectorInstance(
-                    (String)fieldSpecs.get(1), valueOrder);
+            Vector<?> key = TestUtil.makeNewVectorInstance(
+                    fieldSpecs.get(0), keyOrder);
+            Vector<?> value = TestUtil.makeNewVectorInstance(
+                    fieldSpecs.get(1), valueOrder);
 
-            HashMap map = new HashMap();
+            HashMap map = new HashMap<>();
             for (int j = 0; j< key.size(); j++) {
                 map.put(key.get(j), value.get(j));
             }
@@ -165,8 +165,8 @@ public class TestMapStringValueCollections extends JDO_Test {
                 pm.getObjectById(oid, true);
         int n = pi.getLength();
         for (int i = 0; i < n; ++i) {
-            Map expected = expectedValue.get(i);
-            Map actual = pi.get(i);
+            Map<?, ?> expected = expectedValue.get(i);
+            Map<?, ?> actual = pi.get(i);
             if (actual.size() != expected.size()) {
                 sbuf.append("\nFor element " + i + ", expected size = " +
                         expected.size() + ", actual size = " + actual.size()
@@ -176,9 +176,9 @@ public class TestMapStringValueCollections extends JDO_Test {
                 if (TestUtil.getFieldSpecsForMap(
                             MapStringValueCollections.fieldSpecs[i]
                             ).get(0).equals("BigDecimal")) {
-                    Set expectedKeySet = expected.keySet();
+                    Set<?> expectedKeySet = expected.keySet();
                     Set actualKeySet = actual.keySet();
-                    Iterator expectedIter = expectedKeySet.iterator();
+                    Iterator<?> expectedIter = expectedKeySet.iterator();
                     while (expectedIter.hasNext()) {
                         BigDecimal expectedKey = (BigDecimal) expectedIter.next();
                         // compare keys
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestSetCollections.java b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestSetCollections.java
index c0f1d821..1ff31b50 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestSetCollections.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestSetCollections.java
@@ -122,14 +122,14 @@ public class TestSetCollections extends JDO_Test {
     /** */
     private void setValues(SetCollections collect, int order)
     {
-        Collection value;
+        Collection<?> value;
         int n = collect.getLength();
         for (int i = 0; i < n; ++i) {
             String valueType = TestUtil.getFieldSpecs(
                     SetCollections.fieldSpecs[i]);
-            value = (Collection)TestUtil.makeNewVectorInstance(
+            value = TestUtil.makeNewVectorInstance(
                     valueType, order);
-            Set lvalue = new HashSet(value);
+            Set<?> lvalue = new HashSet<>(value);
             collect.set(i, lvalue);
             if (debug)
                 logger.debug("Set " + i + "th value to: " + value.toString());
@@ -145,8 +145,8 @@ public class TestSetCollections extends JDO_Test {
                 pm.getObjectById(oid, true);
         int n = pi.getLength();
         for (i = 0; i < n; ++i) {
-            Set expected = expectedValue.get(i);
-            Set actual = pi.get(i);
+            Set<?> expected = expectedValue.get(i);
+            Set<?> actual = pi.get(i);
             if (actual.size() != expected.size()) {
                 sbuf.append("\nFor element " + i + ", expected size = " +
                         expected.size() + ", actual size = " + actual.size()
@@ -156,10 +156,10 @@ public class TestSetCollections extends JDO_Test {
                 if (TestUtil.getFieldSpecs(SetCollections.fieldSpecs[i]
                             ).equals("BigDecimal")) {
                     // sort values for comparison
-                    TreeSet expectedTS = new TreeSet(expected);
-                    TreeSet actualTS = new TreeSet(actual);
-                    Iterator expectedIter = expectedTS.iterator();
-                    Iterator actualIter = actualTS.iterator();
+                    TreeSet<?> expectedTS = new TreeSet<>(expected);
+                    TreeSet<?> actualTS = new TreeSet<>(actual);
+                    Iterator<?> expectedIter = expectedTS.iterator();
+                    Iterator<?> actualIter = actualTS.iterator();
                     for (int j=0; j < expectedTS.size(); j++) {
                         BigDecimal bigDecExpected =
                                 (BigDecimal)(expectedIter.next());
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestTreeMapStringKeyCollections.java b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestTreeMapStringKeyCollections.java
index aa15adfb..1f0283ed 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestTreeMapStringKeyCollections.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestTreeMapStringKeyCollections.java
@@ -134,14 +134,14 @@ public class TestTreeMapStringKeyCollections extends JDO_Test {
         int valueOrder = (order == 1) ? 2 : 1; // why??
         int n = collect.getLength();
         for (int i = 0; i < n; ++i) {
-            Vector fieldSpecs = TestUtil.getFieldSpecsForMap(
+            Vector<String> fieldSpecs = TestUtil.getFieldSpecsForMap(
                     TreeMapStringKeyCollections.fieldSpecs[i]);
-            Vector key = TestUtil.makeNewVectorInstance(
-                    (String)fieldSpecs.get(0), keyOrder);
-            Vector value = TestUtil.makeNewVectorInstance(
-                    (String)fieldSpecs.get(1), valueOrder);
+            Vector<?> key = TestUtil.makeNewVectorInstance(
+                    fieldSpecs.get(0), keyOrder);
+            Vector<?> value = TestUtil.makeNewVectorInstance(
+                    fieldSpecs.get(1), valueOrder);
 
-            TreeMap map = new TreeMap();
+            TreeMap map = new TreeMap<>();
             for (int j = 0; j< key.size(); j++) {
                 map.put(key.get(j), value.get(j));
             }
@@ -160,8 +160,8 @@ public class TestTreeMapStringKeyCollections extends JDO_Test {
                 pm.getObjectById(oid, true);
         int n = pi.getLength();
         for (int i = 0; i < n; ++i) {
-            TreeMap expected = expectedValue.get(i);
-            TreeMap actual = pi.get(i);
+            TreeMap<?, ?> expected = expectedValue.get(i);
+            TreeMap<?, ?> actual = pi.get(i);
             if (actual.size() != expected.size()) {
                 sbuf.append("\nFor element " + i + ", expected size = " +
                         expected.size() + ", actual size = " + actual.size()
@@ -171,8 +171,8 @@ public class TestTreeMapStringKeyCollections extends JDO_Test {
                 if (TestUtil.getFieldSpecsForMap(
                             TreeMapStringKeyCollections.fieldSpecs[i]
                             ).get(1).equals("BigDecimal")) {
-                    Set keys = expected.keySet();
-                    Iterator iter = keys.iterator();
+                    Set<?> keys = expected.keySet();
+                    Iterator<?> iter = keys.iterator();
                     while (iter.hasNext()) {
                         Object nextKey = iter.next();
                         BigDecimal expectedMapValue = 
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestTreeMapStringValueCollections.java b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestTreeMapStringValueCollections.java
index 8ffdae8c..a13aa4aa 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestTreeMapStringValueCollections.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestTreeMapStringValueCollections.java
@@ -132,14 +132,14 @@ public class TestTreeMapStringValueCollections extends JDO_Test {
         int valueOrder = (order == 1) ? 2 : 1; // why??
         int n = collect.getLength();
         for (int i = 0; i < n; ++i) {
-            Vector fieldSpecs = TestUtil.getFieldSpecsForMap(
+            Vector<String> fieldSpecs = TestUtil.getFieldSpecsForMap(
                     TreeMapStringValueCollections.fieldSpecs[i]);
-            Vector key = TestUtil.makeNewVectorInstance(
-                    (String)fieldSpecs.get(0), keyOrder);
-            Vector value = TestUtil.makeNewVectorInstance(
-                    (String)fieldSpecs.get(1), valueOrder);
+            Vector<?> key = TestUtil.makeNewVectorInstance(
+                    fieldSpecs.get(0), keyOrder);
+            Vector<?> value = TestUtil.makeNewVectorInstance(
+                    fieldSpecs.get(1), valueOrder);
 
-            TreeMap map = new TreeMap();
+            TreeMap map = new TreeMap<>();
             for (int j = 0; j< key.size(); j++) {
                 map.put(key.get(j), value.get(j));
             }
@@ -158,8 +158,8 @@ public class TestTreeMapStringValueCollections extends JDO_Test {
                 pm.getObjectById(oid, true);
         int n = pi.getLength();
         for (int i = 0; i < n; ++i) {
-            TreeMap expected = expectedValue.get(i);
-            TreeMap actual = pi.get(i);
+            TreeMap<?, ?> expected = expectedValue.get(i);
+            TreeMap<?, ?> actual = pi.get(i);
             if (actual.size() != expected.size()) {
                 sbuf.append("\nFor element " + i + ", expected size = " +
                         expected.size() + ", actual size = " + actual.size()
@@ -169,9 +169,9 @@ public class TestTreeMapStringValueCollections extends JDO_Test {
                 if (TestUtil.getFieldSpecsForMap(
                             TreeMapStringValueCollections.fieldSpecs[i]
                             ).get(0).equals("BigDecimal")) {
-                    Set expectedKeySet = expected.keySet();
+                    Set<?> expectedKeySet = expected.keySet();
                     Set actualKeySet = actual.keySet();
-                    Iterator expectedIter = expectedKeySet.iterator();
+                    Iterator<?> expectedIter = expectedKeySet.iterator();
                     while (expectedIter.hasNext()) {
                         BigDecimal expectedKey = (BigDecimal) expectedIter.next();
                         // compare keys
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestTreeSetCollections.java b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestTreeSetCollections.java
index 5bc15afb..1a3d43a5 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestTreeSetCollections.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestTreeSetCollections.java
@@ -47,7 +47,7 @@ public class TestTreeSetCollections extends JDO_Test {
     private PersistenceManager  pm;
     private Transaction         tx;
     private static String       prefix = "TestTreeSetCollections: ";
-    private TreeSet             defaultValue; // do not initialize, should be 0 for int
+    private TreeSet<?>          defaultValue; // do not initialize, should be 0 for int
 
     /** */
     private static final String ASSERTION_FAILED = 
@@ -131,13 +131,13 @@ public class TestTreeSetCollections extends JDO_Test {
     /** */
     private void setValues(TreeSetCollections collect, int order)
     {
-        Vector value;
+        Vector<?> value;
         int n = collect.getLength();
         for (int i = 0; i < n; ++i) {
             String valueType = TestUtil.getFieldSpecs(
                     TreeSetCollections.fieldSpecs[i]);
             value = TestUtil.makeNewVectorInstance(valueType, order);
-            TreeSet treeSet = new TreeSet((Collection)value);
+            TreeSet<?> treeSet = new TreeSet<>((Collection<?>)value);
             collect.set(i, treeSet);
             if (debug)
                 logger.debug("Set " + i + "th value to: " + treeSet.toString());
@@ -152,8 +152,8 @@ public class TestTreeSetCollections extends JDO_Test {
                 pm.getObjectById(oid, true);
         int n = pi.getLength();
         for (int i = 0; i < n; ++i) {
-            Collection expected = expectedValue.get(i);
-            Collection actual = pi.get(i);
+            Collection<?> expected = expectedValue.get(i);
+            Collection<?> actual = pi.get(i);
             if (actual.size() != expected.size()) {
                 sbuf.append("\nFor element " + i + ", expected size = " +
                         expected.size() + ", actual size = " + actual.size()
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestUtil.java b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestUtil.java
index 6db01b6a..87b7ba2b 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestUtil.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestUtil.java
@@ -14,8 +14,6 @@
  * See the License for the specific language governing permissions and 
  * limitations under the License.
  */
- 
-
 
 package org.apache.jdo.tck.models.fieldtypes;
 
@@ -57,7 +55,7 @@ public class TestUtil {
 
 
     //gets the key type and value type for fields of a Map class
-  public static Vector getFieldSpecsForMap(String field) {
+  public static Vector<String> getFieldSpecsForMap(String field) {
       //sample field =public HashMap HashMapOfObject_Object0
       //fieldType -- look for the last space and get the value between Of and _
       //valueType -- look for last _ and get the String before the  numbers
@@ -84,7 +82,7 @@ public class TestUtil {
       }
       valueType =  valueTypeWithNumber.substring(0, lastIndexOfValueType+1);
 
-      Vector fieldSpecs = new Vector();
+      Vector<String> fieldSpecs = new Vector<>();
       fieldSpecs.add(fieldType);
       fieldSpecs.add(valueType);
 
@@ -107,7 +105,7 @@ public class TestUtil {
 
   public static Vector makeNewVectorInstance(String type, int order) {
 
-      Vector vec = new Vector();
+      Vector vec = new Vector<>();
 
       switch (order) {
           case(1):
@@ -338,11 +336,11 @@ public class TestUtil {
     }
 
     protected static boolean containsBigDecimalKey(BigDecimal keyValue,
-                                                Set bigDecimalKeySet)
+                                                Set<BigDecimal> bigDecimalKeySet)
     {
-        Iterator iter = bigDecimalKeySet.iterator();
+        Iterator<BigDecimal> iter = bigDecimalKeySet.iterator();
         while (iter.hasNext()) {
-            BigDecimal nextVal = (BigDecimal) iter.next();
+            BigDecimal nextVal = iter.next();
             if (keyValue.compareTo(nextVal) == 0) {
                 return true;
             }
@@ -351,11 +349,11 @@ public class TestUtil {
     }
 
     protected static BigDecimal getBigDecimalKey(BigDecimal keyValue,
-                                                Set bigDecimalKeySet)
+                                                Set<BigDecimal> bigDecimalKeySet)
     {
-        Iterator iter = bigDecimalKeySet.iterator();
+        Iterator<BigDecimal> iter = bigDecimalKeySet.iterator();
         while (iter.hasNext()) {
-            BigDecimal nextVal = (BigDecimal) iter.next();
+            BigDecimal nextVal = iter.next();
             if (keyValue.compareTo(nextVal) == 0) {
                 return nextVal;
             }
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestVectorCollections.java b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestVectorCollections.java
index 15b21b5f..b0253cca 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestVectorCollections.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/fieldtypes/TestVectorCollections.java
@@ -19,7 +19,6 @@ package org.apache.jdo.tck.models.fieldtypes;
 
 import java.math.BigDecimal;
 
-import java.util.Collection;
 import java.util.Vector;
 
 import javax.jdo.PersistenceManager;
@@ -129,7 +128,7 @@ public class TestVectorCollections extends JDO_Test {
     /** */
     private void setValues(VectorCollections collect, int order)
     {
-        Vector value;
+        Vector<?> value;
         int n = collect.getLength();
         for (int i = 0; i < n; ++i) {
             String valueType = TestUtil.getFieldSpecs(
@@ -149,8 +148,8 @@ public class TestVectorCollections extends JDO_Test {
                 pm.getObjectById(oid, true);
         int n = pi.getLength();
         for (int i = 0; i < n; i++) {
-            Vector expected = expectedValue.get(i);
-            Vector actual = pi.get(i);
+            Vector<?> expected = expectedValue.get(i);
+            Vector<?> actual = pi.get(i);
             if (actual.size() != expected.size()) {
                 sbuf.append("\nFor element " + i + ", expected size = " +
                         expected.size() + ", actual size = " + actual.size()
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/inheritance/FieldWithSameNameInSuperclass.java b/tck/src/main/java/org/apache/jdo/tck/models/inheritance/FieldWithSameNameInSuperclass.java
index 9b3d515e..8a2e9d96 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/inheritance/FieldWithSameNameInSuperclass.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/inheritance/FieldWithSameNameInSuperclass.java
@@ -113,7 +113,7 @@ public class FieldWithSameNameInSuperclass extends TestParts {
             FieldSameName4 b = null;
         
             try {  // retrieve object created in previous transaction & store in value array for later comparison
-                TestParts.thirdObj_V[1] = (FieldSameName4) pm.getObjectById(objPtrB, true);
+                TestParts.thirdObj_V[1] =  pm.getObjectById(objPtrB, true);
             }
             catch (JDOUserException e) {
                 // could not locate persistent object created in previous
@@ -200,7 +200,7 @@ public class FieldWithSameNameInSuperclass extends TestParts {
         
             // verify rollback lost all persistent changes.
             try {  // retrieve object created in previous transaction & store in value array for later comparison
-                TestParts.thirdObj_V[1] = (FieldSameName4) pm.getObjectById(objPtrB, true);
+                TestParts.thirdObj_V[1] = pm.getObjectById(objPtrB, true);
             }
             catch (JDOUserException e) {
                 // could not locate persistent object created in previous transaction
@@ -233,8 +233,8 @@ public class FieldWithSameNameInSuperclass extends TestParts {
 
     void removeAllInstances(PersistenceManager pm)
     {
-        Extent e = pm.getExtent(FieldSameName4.class, true);
-        Iterator i = e.iterator();
+        Extent<FieldSameName4> e = pm.getExtent(FieldSameName4.class, true);
+        Iterator<FieldSameName4> i = e.iterator();
         while( i.hasNext() ){
             pm.deletePersistent(i.next());
         }        
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/inheritance/NonPersistentFieldsAreNonPersistentInSubclasses.java b/tck/src/main/java/org/apache/jdo/tck/models/inheritance/NonPersistentFieldsAreNonPersistentInSubclasses.java
index c81a6bb7..5bf4429d 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/inheritance/NonPersistentFieldsAreNonPersistentInSubclasses.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/inheritance/NonPersistentFieldsAreNonPersistentInSubclasses.java
@@ -122,8 +122,8 @@ public class NonPersistentFieldsAreNonPersistentInSubclasses extends TestParts {
     {
         AllPersist4 a = new AllPersist4(0, 0.0, 0, '0', false, 0.0f, (short)0, (short)0, 0);
         pm.makePersistent(a); // guarantee the class is registered; this will be removed
-        Extent e = pm.getExtent(AllPersist4.class, true);
-        Iterator i = e.iterator();
+        Extent<AllPersist4> e = pm.getExtent(AllPersist4.class, true);
+        Iterator<AllPersist4> i = e.iterator();
         while( i.hasNext() ){
             pm.deletePersistent(i.next());
         }        
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/inheritance/NonpersistentSuperClass.java b/tck/src/main/java/org/apache/jdo/tck/models/inheritance/NonpersistentSuperClass.java
index 6bd56418..03347271 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/inheritance/NonpersistentSuperClass.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/inheritance/NonpersistentSuperClass.java
@@ -102,7 +102,7 @@ public class NonpersistentSuperClass extends TestParts {
             TopNonPersistH b = null;
         
             try {  // retrieve object created in previous transaction & store in value array for later comparison
-                TestParts.thirdObj_V[1] = (TopNonPersistH)pm.getObjectById(objPtrB, true);
+                TestParts.thirdObj_V[1] = pm.getObjectById(objPtrB, true);
             }
             catch (JDOUserException e) {
                 // could not locate persistent object created in previous transaction
@@ -188,7 +188,7 @@ public class NonpersistentSuperClass extends TestParts {
         
             // verify rollback lost all persistent changes.
             try {  // retrieve object created in previous transaction & store in value array for later comparison
-                TestParts.thirdObj_V[1] = (TopNonPersistH)pm.getObjectById(objPtrB, true);
+                TestParts.thirdObj_V[1] = pm.getObjectById(objPtrB, true);
             }
             catch (JDOUserException e) {
                 // could not locate persistent object created in previous transaction
@@ -221,8 +221,8 @@ public class NonpersistentSuperClass extends TestParts {
 
     void removeAllInstances(PersistenceManager pm)
     {
-        Extent e = pm.getExtent(TopNonPersistH.class, true);
-        Iterator i = e.iterator();
+        Extent<TopNonPersistH> e = pm.getExtent(TopNonPersistH.class, true);
+        Iterator<TopNonPersistH> i = e.iterator();
         while( i.hasNext() ){
             pm.deletePersistent(i.next());
         }        
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/inheritance/PersistenceCapableFlexibilityInInheritanceHierarchy.java b/tck/src/main/java/org/apache/jdo/tck/models/inheritance/PersistenceCapableFlexibilityInInheritanceHierarchy.java
index 2652ac0e..eda1a371 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/inheritance/PersistenceCapableFlexibilityInInheritanceHierarchy.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/inheritance/PersistenceCapableFlexibilityInInheritanceHierarchy.java
@@ -105,7 +105,7 @@ public class PersistenceCapableFlexibilityInInheritanceHierarchy extends TestPar
             TopPersistH b = null;
         
             try {  // retrieve object created in previous transaction & store in value array for later comparison
-                TestParts.thirdObj_V[1] = (TopPersistH)pm.getObjectById(objPtrB, true);
+                TestParts.thirdObj_V[1] = pm.getObjectById(objPtrB, true);
             }
             catch (JDOUserException e) {
                 // could not locate persistent object created in previous transaction
@@ -191,7 +191,7 @@ public class PersistenceCapableFlexibilityInInheritanceHierarchy extends TestPar
         
             // verify rollback lost all persistent changes.
             try {  // retrieve object created in previous transaction & store in value array for later comparison
-                TestParts.thirdObj_V[1] = (TopPersistH)pm.getObjectById(objPtrB, true);
+                TestParts.thirdObj_V[1] = pm.getObjectById(objPtrB, true);
             }
             catch (JDOUserException e) {
                 // could not locate persistent object created in previous transaction
@@ -224,8 +224,8 @@ public class PersistenceCapableFlexibilityInInheritanceHierarchy extends TestPar
 
     void removeAllInstances(PersistenceManager pm)
     {
-        Extent e = pm.getExtent(TopPersistH.class, true);
-        Iterator i = e.iterator();
+        Extent<TopPersistH> e = pm.getExtent(TopPersistH.class, true);
+        Iterator<TopPersistH> i = e.iterator();
         while( i.hasNext() ){
             pm.deletePersistent(i.next());
         }        
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/inheritance/PersistentFieldsArePersistentInSubClasses.java b/tck/src/main/java/org/apache/jdo/tck/models/inheritance/PersistentFieldsArePersistentInSubClasses.java
index e2ea9aa2..bc2972ff 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/inheritance/PersistentFieldsArePersistentInSubClasses.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/inheritance/PersistentFieldsArePersistentInSubClasses.java
@@ -103,7 +103,7 @@ public class PersistentFieldsArePersistentInSubClasses extends TestParts {
             AllPersist4 b = null;
         
             try {  // retrieve object created in previous transaction & store in value array for later comparison
-                TestParts.thirdObj_V[1] = (AllPersist4)pm.getObjectById(objPtrB, true);
+                TestParts.thirdObj_V[1] = pm.getObjectById(objPtrB, true);
             }
             catch (JDOUserException e) {
                 // could not locate persistent object created in previous transaction
@@ -187,7 +187,7 @@ public class PersistentFieldsArePersistentInSubClasses extends TestParts {
         
             // verify rollback lost all persistent changes.
             try {  // retrieve object created in previous transaction & store in value array for later comparison
-                TestParts.thirdObj_V[1] = (AllPersist4)pm.getObjectById(objPtrB, true);
+                TestParts.thirdObj_V[1] = pm.getObjectById(objPtrB, true);
             }
             catch (JDOUserException e) {
                 // could not locate persistent object created in previous transaction
@@ -222,8 +222,8 @@ public class PersistentFieldsArePersistentInSubClasses extends TestParts {
     {
         AllPersist4 a = new AllPersist4(0, 0.0, 0, '0', false, 0.0f, (short)0, (short)0, 0);
         pm.makePersistent(a); // guarantee the class is registered; this will be removed
-        Extent e = pm.getExtent(AllPersist4.class, true);
-        Iterator i = e.iterator();
+        Extent<AllPersist4> e = pm.getExtent(AllPersist4.class, true);
+        Iterator<AllPersist4> i = e.iterator();
         while( i.hasNext() ){
             pm.deletePersistent(i.next());
         }        
diff --git a/tck/src/main/java/org/apache/jdo/tck/models/inheritance/TransactionalFieldsAreTransactionalInSubclasses.java b/tck/src/main/java/org/apache/jdo/tck/models/inheritance/TransactionalFieldsAreTransactionalInSubclasses.java
index 5e4f344c..a6ab30b5 100644
--- a/tck/src/main/java/org/apache/jdo/tck/models/inheritance/TransactionalFieldsAreTransactionalInSubclasses.java
+++ b/tck/src/main/java/org/apache/jdo/tck/models/inheritance/TransactionalFieldsAreTransactionalInSubclasses.java
@@ -122,8 +122,8 @@ public class TransactionalFieldsAreTransactionalInSubclasses extends TestParts {
     {
         AllPersist4 a = new AllPersist4(0, 0.0, 0, '0', false, 0.0f, (short)0, (short)0, 0);
         pm.makePersistent(a); // guarantee the class is registered; this will be removed
-        Extent e = pm.getExtent(AllPersist4.class, true);
-        Iterator i = e.iterator();
+        Extent<AllPersist4> e = pm.getExtent(AllPersist4.class, true);
+        Iterator<AllPersist4> i = e.iterator();
         while( i.hasNext() ){
             pm.deletePersistent(i.next());
         }        
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/building/MultifunctionOven.java b/tck/src/main/java/org/apache/jdo/tck/pc/building/MultifunctionOven.java
index 0d4a269d..5da25fe9 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/building/MultifunctionOven.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/building/MultifunctionOven.java
@@ -49,6 +49,7 @@ public class MultifunctionOven extends Oven implements Serializable {
     	return capabilities;
     }
 
+    @Override
     public boolean equals(Object that) {
         if (this == that) {
             return true;
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/Address.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/Address.java
index f15d812a..59d1e6ac 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/Address.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/Address.java
@@ -27,7 +27,7 @@ import org.apache.jdo.tck.util.EqualityHelper;
  * This class represents a postal address.
  */
 public class Address 
-    implements IAddress, Serializable, Comparable, Comparator, DeepEquality {
+    implements IAddress, Serializable, Comparable<IAddress>, Comparator<IAddress>, DeepEquality {
 
     private long    addrid;
     private String  street;
@@ -205,27 +205,6 @@ public class Address
             helper.equals(zipcode, otherAddress.getZipcode(), where + ".zipcode") &
             helper.equals(country, otherAddress.getCountry(), where + ".country");
     }
-    
-    /** 
-     * Compares this object with the specified object for order. Returns a
-     * negative integer, zero, or a positive integer as this object is less
-     * than, equal to, or greater than the specified object. 
-     * @param o The Object to be compared. 
-     * @return a negative integer, zero, or a positive integer as this 
-     * object is less than, equal to, or greater than the specified object. 
-     * @throws ClassCastException - if the specified object's type prevents
-     * it from being compared to this Object. 
-     */
-    public int compareTo(Object o) {
-        return compareTo((IAddress)o);
-    }
-
-    /** 
-     * Compare two instances. This is a method in Comparator.
-     */
-    public int compare(Object o1, Object o2) {
-        return compare((IAddress)o1, (IAddress)o2);
-    }
 
     /** 
      * Compares this object with the specified Address object for
@@ -250,7 +229,7 @@ public class Address
      * @return a negative integer, zero, or a positive integer as the first
      * object is less than, equal to, or greater than the second object. 
      */
-    public static int compare(IAddress o1, IAddress o2) {
+    public int compare(IAddress o1, IAddress o2) {
         return EqualityHelper.compare(o1.getAddrid(), o2.getAddrid());
     }
 
@@ -279,7 +258,7 @@ public class Address
      * This class is used to represent the application identifier 
      * for the <code>Address</code> class.
      */
-    public static class Oid implements Serializable, Comparable {
+    public static class Oid implements Serializable, Comparable<Oid> {
 
         /**
          * This is the identifier field for <code>Address</code> and must
@@ -326,12 +305,8 @@ public class Address
         }
 
         /** */
-        public int compareTo(Object obj) {
-            // may throw ClassCastException which the user must handle
-            Oid other = (Oid) obj;
-            if( addrid < other.addrid ) return -1;
-            if( addrid > other.addrid ) return 1;
-            return 0;
+        public int compareTo(Oid obj) {
+            return Long.compare(addrid, obj.addrid);
         }
 
     }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/Company.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/Company.java
index b766f1e4..b0d21926 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/Company.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/Company.java
@@ -21,8 +21,6 @@ import java.io.Serializable;
 import java.io.ObjectInputStream;
 import java.io.IOException;
 
-import java.text.SimpleDateFormat;
-
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Set;
@@ -31,6 +29,7 @@ import java.util.Date;
 
 import org.apache.jdo.tck.util.DeepEquality;
 import org.apache.jdo.tck.util.EqualityHelper;
+import org.apache.jdo.tck.util.JDOCustomDateEditor;
 
 import javax.jdo.annotations.PersistenceCapable;
 
@@ -39,16 +38,13 @@ import javax.jdo.annotations.PersistenceCapable;
  */
 @PersistenceCapable
 public class Company
-    implements ICompany, Serializable, Comparable, Comparator, DeepEquality {
+    implements ICompany, Serializable, Comparable<ICompany>, Comparator<ICompany>, DeepEquality {
 
     private long        companyid;
     private String      name;
     private Date        founded;
     private Address     address;
-    private transient Set departments = new HashSet(); // element type is Department
-
-    protected static SimpleDateFormat formatter =
-        new SimpleDateFormat("d/MMM/yyyy");
+    private transient Set<IDepartment> departments = new HashSet<>(); // element type is Department
 
     /** This is the JDO-required no-args constructor. The TCK relies on
      * this constructor for testing PersistenceManager.newInstance(PCClass).
@@ -150,7 +146,7 @@ public class Company
      * @return An unmodifiable <code>Set</code> that contains all the
      * <code>Department</code>s of the company.
      */
-    public Set getDepartments() {
+    public Set<IDepartment> getDepartments() {
         return Collections.unmodifiableSet(departments);
     }
 
@@ -158,7 +154,7 @@ public class Company
      * Add a <code>Department</code> instance to the company.
      * @param dept The <code>Department</code> instance to add.
      */
-    public void addDepartment(Department dept) {
+    public void addDepartment(IDepartment dept) {
         departments.add(dept);
     }
 
@@ -166,7 +162,7 @@ public class Company
      * Remove a <code>Department</code> instance from the company.
      * @param dept The <code>Department</code> instance to remove.
      */
-    public void removeDepartment(Department dept) {
+    public void removeDepartment(IDepartment dept) {
         departments.remove(dept);
     }
 
@@ -176,11 +172,11 @@ public class Company
      * @param departments The set of <code>Department</code>s for the
      * company. 
      */
-    public void setDepartments(Set departments) {
+    public void setDepartments(Set<IDepartment> departments) {
         // workaround: create a new HashSet, because fostore does not
         // support LinkedHashSet
         this.departments = 
-            (departments != null) ? new HashSet(departments) : null;
+            (departments != null) ? new HashSet<>(departments) : null;
     }
     
     /**
@@ -192,7 +188,7 @@ public class Company
     private void readObject(ObjectInputStream in)
         throws IOException, ClassNotFoundException {
         in.defaultReadObject();
-        departments = new HashSet();
+        departments = new HashSet<>();
     }
 
     /**
@@ -211,8 +207,7 @@ public class Company
         StringBuffer rc = new StringBuffer();
         rc.append(companyid);
         rc.append(", name ").append(name);
-        rc.append(", founded ").append(
-            founded==null ? "null" : formatter.format(founded));
+        rc.append(", founded ").append(JDOCustomDateEditor.getDateRepr(founded));
         return rc.toString();
     }
 
@@ -238,27 +233,6 @@ public class Company
             helper.deepEquals(address, otherCompany.getAddress(), where + ".address") &
             helper.deepEquals(departments, otherCompany.getDepartments(), where + ".departments");
     }
-    
-    /** 
-     * Compares this object with the specified object for order. Returns a
-     * negative integer, zero, or a positive integer as this object is less
-     * than, equal to, or greater than the specified object. 
-     * @param o The Object to be compared. 
-     * @return a negative integer, zero, or a positive integer as this 
-     * object is less than, equal to, or greater than the specified object. 
-     * @throws ClassCastException - if the specified object's type prevents
-     * it from being compared to this Object. 
-     */
-    public int compareTo(Object o) {
-        return compareTo((ICompany)o);
-    }
-
-    /** 
-     * Compare two instances. This is a method in Comparator.
-     */
-    public int compare(Object o1, Object o2) {
-        return compare((ICompany)o1, (ICompany)o2);
-    }
 
     /** 
      * Compares this object with the specified Company object for
@@ -283,7 +257,7 @@ public class Company
      * @return a negative integer, zero, or a positive integer as the first
      * object is less than, equal to, or greater than the second object. 
      */
-    public static int compare(ICompany o1, ICompany o2) {
+    public int compare(ICompany o1, ICompany o2) {
         return EqualityHelper.compare(o1.getCompanyid(), o2.getCompanyid());
     }
     
@@ -313,7 +287,7 @@ public class Company
      * for the <code>Company</code> class. It consists of both the company 
      * name and the date that the company was founded.
      */
-    public static class Oid implements Serializable, Comparable {
+    public static class Oid implements Serializable, Comparable<Oid> {
 
         /**
          * This field is part of the identifier and should match in name
@@ -357,12 +331,8 @@ public class Company
         }
 
         /** */
-        public int compareTo(Object obj) {
-            // may throw ClassCastException which the user must handle
-            Oid other = (Oid) obj;
-            if( companyid < other.companyid ) return -1;
-            if( companyid > other.companyid ) return 1;
-            return 0;
+        public int compareTo(Oid obj) {
+            return Long.compare(companyid, obj.companyid);
         }
         
     }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactory.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactory.java
index 542d6840..b5ef3b98 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactory.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactory.java
@@ -65,5 +65,5 @@ public interface CompanyFactory {
             String first, String last, String middle,
             Date born, IAddress addr, Date hired, double wage); 
     IProject newProject(long projid, String name, BigDecimal budget);
-    Class[] getTearDownClasses();
+    Class<?>[] getTearDownClasses();
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryAnnotatedAbstractDelegator.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryAnnotatedAbstractDelegator.java
index 6952f983..6a25d5ca 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryAnnotatedAbstractDelegator.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryAnnotatedAbstractDelegator.java
@@ -43,42 +43,42 @@ public abstract class CompanyFactoryAnnotatedAbstractDelegator
     }
     
     public IAddress newAddress() {
-        return (IAddress)delegate.newAddress();
+        return delegate.newAddress();
     }
 
     public IMeetingRoom newMeetingRoom() {
-        return (IMeetingRoom)delegate.newMeetingRoom();
+        return delegate.newMeetingRoom();
     }
 
     public ICompany newCompany() {
-        return (ICompany)delegate.newCompany();
+        return delegate.newCompany();
     }
     
     public IDentalInsurance newDentalInsurance() {
-        return (IDentalInsurance)delegate.newDentalInsurance();
+        return delegate.newDentalInsurance();
     }
     
     public IDepartment newDepartment() {
-        return (IDepartment)delegate.newDepartment();
+        return delegate.newDepartment();
     }
     
     public IFullTimeEmployee newFullTimeEmployee() {
-        return (IFullTimeEmployee)delegate.newFullTimeEmployee();
+        return delegate.newFullTimeEmployee();
     }
     
     public IMedicalInsurance newMedicalInsurance() {
-        return (IMedicalInsurance)delegate.newMedicalInsurance();
+        return delegate.newMedicalInsurance();
     }
     
     public IPartTimeEmployee newPartTimeEmployee() {
-        return (IPartTimeEmployee)delegate.newPartTimeEmployee();
+        return delegate.newPartTimeEmployee();
     }
     
     public IProject newProject() {
-        return (IProject)delegate.newProject();
+        return delegate.newProject();
     }
     
-    public Class[]getTearDownClasses() {
+    public Class<?>[]getTearDownClasses() {
         return delegate.getTearDownClasses();
     }
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryConcreteClass.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryConcreteClass.java
index 18f36daa..ca69d843 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryConcreteClass.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryConcreteClass.java
@@ -30,7 +30,7 @@ import javax.jdo.PersistenceManager;
 public  class CompanyFactoryConcreteClass implements CompanyFactory {
 
     /** */
-    public static final Class[] tearDownClasses = new Class[] {
+    public static final Class<?>[] tearDownClasses = new Class<?>[] {
         DentalInsurance.class, MedicalInsurance.class,
         PartTimeEmployee.class, FullTimeEmployee.class,  
         Project.class, Department.class, Company.class, MeetingRoom.class
@@ -148,7 +148,7 @@ public  class CompanyFactoryConcreteClass implements CompanyFactory {
         return new Project(projid, name, budget);
     }
 
-    public Class[] getTearDownClasses() {
+    public Class<?>[] getTearDownClasses() {
         return tearDownClasses;
     }
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryNewInstance.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryNewInstance.java
index 85f40290..49e6c57c 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryNewInstance.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryNewInstance.java
@@ -31,5 +31,5 @@ public interface CompanyFactoryNewInstance {
     abstract public IMedicalInsurance newMedicalInsurance();
     abstract public IPartTimeEmployee newPartTimeEmployee();
     abstract public IProject newProject();
-    Class[] getTearDownClasses();    
+    Class<?>[] getTearDownClasses();
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryPMClass.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryPMClass.java
index 521f2d6c..214599e6 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryPMClass.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryPMClass.java
@@ -29,7 +29,7 @@ public class CompanyFactoryPMClass
         extends CompanyFactoryAbstractImpl {
     
     /** */
-    public static final Class[] tearDownClasses = new Class[] {
+    public static final Class<?>[] tearDownClasses = new Class<?>[] {
         DentalInsurance.class, MedicalInsurance.class,
         PartTimeEmployee.class, FullTimeEmployee.class,  
         Project.class, Department.class, Company.class, MeetingRoom.class
@@ -44,42 +44,42 @@ public class CompanyFactoryPMClass
     }
     
     public IAddress newAddress() {
-        return (IAddress)pm.newInstance(Address.class);
+        return pm.newInstance(Address.class);
     }
 
     public IMeetingRoom newMeetingRoom() {
-        return (IMeetingRoom)pm.newInstance(MeetingRoom.class);
+        return pm.newInstance(MeetingRoom.class);
     }
     
     public ICompany newCompany() {
-        return (ICompany)pm.newInstance(Company.class);
+        return pm.newInstance(Company.class);
     }
     
     public IDentalInsurance newDentalInsurance() {
-        return (IDentalInsurance)pm.newInstance(DentalInsurance.class);
+        return pm.newInstance(DentalInsurance.class);
     }
     
     public IDepartment newDepartment() {
-        return (IDepartment)pm.newInstance(Department.class);
+        return pm.newInstance(Department.class);
     }
     
     public IFullTimeEmployee  newFullTimeEmployee() {
-        return (IFullTimeEmployee)pm.newInstance(FullTimeEmployee.class);
+        return pm.newInstance(FullTimeEmployee.class);
     }
     
     public IMedicalInsurance newMedicalInsurance() {
-        return (IMedicalInsurance)pm.newInstance(MedicalInsurance.class);        
+        return pm.newInstance(MedicalInsurance.class);
     }
     
     public IPartTimeEmployee  newPartTimeEmployee() {
-        return (IPartTimeEmployee)pm.newInstance(PartTimeEmployee.class);
+        return pm.newInstance(PartTimeEmployee.class);
     }
     
     public IProject newProject() {
-        return (IProject)pm.newInstance(Project.class);
+        return pm.newInstance(Project.class);
     }
 
-    public Class[] getTearDownClasses() {
+    public Class<?>[] getTearDownClasses() {
         return tearDownClasses;
     }
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryPMInterface.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryPMInterface.java
index f3cd9f17..d6483d6d 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryPMInterface.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryPMInterface.java
@@ -29,7 +29,7 @@ public class CompanyFactoryPMInterface
         extends CompanyFactoryAbstractImpl {
     
     /** */
-    public static final Class[] tearDownClasses = new Class[] {
+    public static final Class<?>[] tearDownClasses = new Class<?>[] {
         PIDentalInsurance.class, PIMedicalInsurance.class,
         PIPartTimeEmployee.class, PIFullTimeEmployee.class,  
         PIProject.class, PIDepartment.class, PICompany.class
@@ -79,7 +79,7 @@ public class CompanyFactoryPMInterface
         return pm.newInstance(PIProject.class);
     }
 
-    public Class[] getTearDownClasses() {
+    public Class<?>[] getTearDownClasses() {
         return tearDownClasses;
     }
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryRegistry.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryRegistry.java
index 418223ed..30803d64 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryRegistry.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyFactoryRegistry.java
@@ -19,10 +19,6 @@ package org.apache.jdo.tck.pc.company;
 
 import java.lang.reflect.Constructor;
 
-import java.math.BigDecimal;
-
-import java.util.Date;
-
 import javax.jdo.PersistenceManager;
 
 /*
@@ -44,18 +40,18 @@ public class CompanyFactoryRegistry {
 
     /** The system property for factory name
      */
-    final static String FACTORY_PROPERTY_NAME = 
+    static final String FACTORY_PROPERTY_NAME =
         "jdo.tck.mapping.companyfactory";
 
     /** The factory name if the system property is not set.
      */
-    final static String DEFAULT_FACTORY_CLASS_NAME =
+    static final String DEFAULT_FACTORY_CLASS_NAME =
         "org.apache.jdo.tck.pc.company.CompanyFactoryConcreteClass";
 
     /**
      * The default factory class name
      */
-    final static String FACTORY_CLASS_NAME;
+    static final String FACTORY_CLASS_NAME;
 
     static {
         String prop = System.getProperty(FACTORY_PROPERTY_NAME);
@@ -117,8 +113,8 @@ public class CompanyFactoryRegistry {
         CompanyFactory factory = null;
         try {
             if (factoryClassName != null) {
-                Class factoryClass = Class.forName(factoryClassName);
-                Constructor ctor = factoryClass.getConstructor(new Class[]
+                Class<?> factoryClass = Class.forName(factoryClassName);
+                Constructor<?> ctor = factoryClass.getConstructor(new Class[]
                     {PersistenceManager.class});
                 factory = (CompanyFactory)
                     ctor.newInstance(new Object[]{pm});
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyModelReader.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyModelReader.java
index 0bd57372..eaa2f92b 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyModelReader.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/CompanyModelReader.java
@@ -74,8 +74,8 @@ public class CompanyModelReader extends DefaultListableBeanFactory {
      * called "root" of type list in the xml and returns it.
      * @return a list of root instances
      */
-    public List getRootList() {
-        return (List)getBean(ROOT_LIST_NAME);
+    public List<Object> getRootList() {
+        return (List<Object>)getBean(ROOT_LIST_NAME);
     }
     
     /** 
@@ -92,14 +92,14 @@ public class CompanyModelReader extends DefaultListableBeanFactory {
         /**
      * @return Returns the tearDownClasses.
      */
-    public Class[] getTearDownClassesFromFactory() {
+    public Class<?>[] getTearDownClassesFromFactory() {
         return companyFactory.getTearDownClasses();
     }
     
     /**
      * @return Returns the tearDownClasses.
      */
-    public static Class[] getTearDownClasses() {
+    public static Class<?>[] getTearDownClasses() {
         return CompanyFactoryConcreteClass.tearDownClasses;
     }
 
@@ -118,7 +118,7 @@ public class CompanyModelReader extends DefaultListableBeanFactory {
      * Address bean.
      */
     public IAddress getAddress(String name) {
-        return (IAddress)getBean(name, Address.class);
+        return getBean(name, Address.class);
     }
 
     /** 
@@ -130,7 +130,7 @@ public class CompanyModelReader extends DefaultListableBeanFactory {
      * MeetingRoom bean.
      */
     public IMeetingRoom getMeetingRoom(String name) {
-        return (IMeetingRoom)getBean(name, MeetingRoom.class);
+        return getBean(name, MeetingRoom.class);
     }
 
     /** 
@@ -142,7 +142,7 @@ public class CompanyModelReader extends DefaultListableBeanFactory {
      * Company bean.
      */
     public ICompany getCompany(String name) {
-        return (ICompany)getBean(name, Company.class);
+        return getBean(name, Company.class);
     }
 
     /** 
@@ -154,7 +154,7 @@ public class CompanyModelReader extends DefaultListableBeanFactory {
      * DentalInsurance bean.
      */
     public IDentalInsurance getDentalInsurance(String name) {
-        return (IDentalInsurance)getBean(name, DentalInsurance.class);
+        return getBean(name, DentalInsurance.class);
     }
 
     /** 
@@ -166,7 +166,7 @@ public class CompanyModelReader extends DefaultListableBeanFactory {
      * Department bean.
      */
     public IDepartment getDepartment(String name) {
-        return (IDepartment)getBean(name, Department.class);
+        return getBean(name, Department.class);
     }
 
     /** 
@@ -178,7 +178,7 @@ public class CompanyModelReader extends DefaultListableBeanFactory {
      * Employee bean.
      */
     public IEmployee getEmployee(String name) {
-        return (IEmployee)getBean(name, Employee.class);
+        return getBean(name, Employee.class);
     }
 
     /** 
@@ -190,7 +190,7 @@ public class CompanyModelReader extends DefaultListableBeanFactory {
      * FullTimeEmployee bean.
      */
     public IFullTimeEmployee getFullTimeEmployee(String name) {
-        return (IFullTimeEmployee)getBean(name, FullTimeEmployee.class);
+        return getBean(name, FullTimeEmployee.class);
     }
 
     /** 
@@ -202,7 +202,7 @@ public class CompanyModelReader extends DefaultListableBeanFactory {
      * Insurance bean.
      */
     public IInsurance getInsurance(String name) {
-        return (IInsurance)getBean(name, Insurance.class);
+        return getBean(name, Insurance.class);
     }
 
     /** 
@@ -214,7 +214,7 @@ public class CompanyModelReader extends DefaultListableBeanFactory {
      * MedicalInsurance bean.
      */
     public IMedicalInsurance getMedicalInsurance(String name) {
-        return (IMedicalInsurance)getBean(name, MedicalInsurance.class);
+        return getBean(name, MedicalInsurance.class);
     }
 
     /** 
@@ -226,7 +226,7 @@ public class CompanyModelReader extends DefaultListableBeanFactory {
      * PartTimeEmployee bean.
      */
     public IPartTimeEmployee getPartTimeEmployee(String name) {
-        return (IPartTimeEmployee)getBean(name, PartTimeEmployee.class);
+        return getBean(name, PartTimeEmployee.class);
     }
 
     /** 
@@ -238,7 +238,7 @@ public class CompanyModelReader extends DefaultListableBeanFactory {
      * Person bean.
      */
     public IPerson getPerson(String name) {
-        return (IPerson)getBean(name, Person.class);
+        return getBean(name, Person.class);
     }
 
     /** 
@@ -250,7 +250,7 @@ public class CompanyModelReader extends DefaultListableBeanFactory {
      * Project bean.
      */
     public IProject getProject(String name) {
-        return (IProject)getBean(name, Project.class);
+        return getBean(name, Project.class);
     }
     
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/DentalInsurance.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/DentalInsurance.java
index e936c70c..72e99ee1 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/DentalInsurance.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/DentalInsurance.java
@@ -85,6 +85,7 @@ public class DentalInsurance extends Insurance implements IDentalInsurance {
      * @return a String representation of a <code>DentalInsurance</code>
      * object.
      */
+    @Override
     public String toString() {
         return "DentalInsurance(" + getFieldRepr()+ ")";
     }
@@ -93,6 +94,7 @@ public class DentalInsurance extends Insurance implements IDentalInsurance {
      * Returns a String representation of the non-relationship fields.
      * @return a String representation of the non-relationship fields.
      */
+    @Override
     protected String getFieldRepr() {
         StringBuffer rc = new StringBuffer();
         rc.append(super.getFieldRepr());
@@ -111,7 +113,8 @@ public class DentalInsurance extends Insurance implements IDentalInsurance {
      * @throws ClassCastException if the specified instances' type prevents
      * it from being compared to this instance. 
      */
-    public boolean deepCompareFields(Object other, 
+    @Override
+    public boolean deepCompareFields(Object other,
                                      EqualityHelper helper) {
         IDentalInsurance otherIns = (IDentalInsurance)other;
         String where = "DentalInsurance<" + getInsid() + ">";
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/Department.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/Department.java
index 5cf96f01..d0ccb780 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/Department.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/Department.java
@@ -38,7 +38,7 @@ import javax.jdo.annotations.PersistenceCapable;
  */
 @PersistenceCapable
 public class Department
-    implements IDepartment, Serializable, Comparable, Comparator, DeepEquality {
+    implements IDepartment, Serializable, Comparable<IDepartment>, Comparator<IDepartment>, DeepEquality {
 
     public static final int RECOMMENDED_NO_OF_EMPS = 2;
     
@@ -46,9 +46,9 @@ public class Department
     private String  name;
     private Company company;
     private Employee employeeOfTheMonth;
-    private transient Set employees = new HashSet(); // element type is Employee
-    private transient Set fundedEmps = new HashSet(); // element type is Employee
-    private transient List meetingRooms = new ArrayList(); // element type is MeetingRoom
+    private transient Set<IEmployee> employees = new HashSet<>(); // element type is Employee
+    private transient Set<IEmployee> fundedEmps = new HashSet<>(); // element type is Employee
+    private transient List<IMeetingRoom> meetingRooms = new ArrayList<>(); // element type is MeetingRoom
 
     /** This is the JDO-required no-args constructor. The TCK relies on
      * this constructor for testing PersistenceManager.newInstance(PCClass).
@@ -165,7 +165,7 @@ public class Department
      * @return The set of employees in the department, as an unmodifiable
      * set. 
      */
-    public Set getEmployees() {
+    public Set<IEmployee> getEmployees() {
         return Collections.unmodifiableSet(employees);
     }
 
@@ -189,10 +189,10 @@ public class Department
      * Set the employees to be in this department.
      * @param employees The set of employees for this department.
      */
-    public void setEmployees(Set employees) {
+    public void setEmployees(Set<IEmployee> employees) {
         // workaround: create a new HashSet, because fostore does not
         // support LinkedHashSet
-        this.employees = (employees != null) ? new HashSet(employees) : null;
+        this.employees = (employees != null) ? new HashSet<>(employees) : null;
     }
 
     /**
@@ -200,7 +200,7 @@ public class Department
      * @return The set of funded employees in the department, as an
      * unmodifiable set. 
      */
-    public Set getFundedEmps() {
+    public Set<IEmployee> getFundedEmps() {
         return Collections.unmodifiableSet(fundedEmps);
     }
 
@@ -226,17 +226,17 @@ public class Department
      * Set the funded employees to be in this department.
      * @param employees The set of funded employees for this department. 
      */
-    public void setFundedEmps(Set employees) {
+    public void setFundedEmps(Set<IEmployee> employees) {
         // workaround: create a new HashSet, because fostore does not
         // support LinkedHashSet
-        this.fundedEmps = (fundedEmps != null) ? new HashSet(employees) : null;
+        this.fundedEmps = (fundedEmps != null) ? new HashSet<>(employees) : null;
     }
 
     /**
      * Get the meeting rooms in the department as an unmodifiable list.
      * @return List of meeting rooms in the department, as an unmodifiable list.
      */
-    public List getMeetingRooms() {
+    public List<IMeetingRoom> getMeetingRooms() {
         return Collections.unmodifiableList(meetingRooms);
     }
 
@@ -260,8 +260,8 @@ public class Department
      * Set the rooms for this department.
      * @param rooms The rooms for this department.
      */
-    public void setMeetingRooms(List rooms) {
-        this.meetingRooms = (rooms != null) ? new ArrayList(rooms) : null;
+    public void setMeetingRooms(List<IMeetingRoom> rooms) {
+        this.meetingRooms = (rooms != null) ? new ArrayList<>(rooms) : null;
     }
 
     /**
@@ -273,9 +273,9 @@ public class Department
     private void readObject(ObjectInputStream in)
         throws IOException, ClassNotFoundException {
         in.defaultReadObject();
-        employees = new HashSet();
-        fundedEmps = new HashSet();
-        meetingRooms = new ArrayList();
+        employees = new HashSet<>();
+        fundedEmps = new HashSet<>();
+        meetingRooms = new ArrayList<>();
     }
 
     /** 
@@ -322,27 +322,6 @@ public class Department
         return rc.toString();
     }
 
-    /** 
-     * Compares this object with the specified object for order. Returns a
-     * negative integer, zero, or a positive integer as this object is less
-     * than, equal to, or greater than the specified object. 
-     * @param o The Object to be compared. 
-     * @return a negative integer, zero, or a positive integer as this 
-     * object is less than, equal to, or greater than the specified object. 
-     * @throws ClassCastException - if the specified object's type prevents
-     * it from being compared to this Object. 
-     */
-    public int compareTo(Object o) {
-        return compareTo((IDepartment)o);
-    }
-
-    /** 
-     * Compare two instances. This is a method in Comparator.
-     */
-    public int compare(Object o1, Object o2) {
-        return compare((IDepartment)o1, (IDepartment)o2);
-    }
-
     /** 
      * Compares this object with the specified Department object for
      * order. Returns a negative integer, zero, or a positive integer as
@@ -366,7 +345,7 @@ public class Department
      * @return a negative integer, zero, or a positive integer as the first
      * object is less than, equal to, or greater than the second object. 
      */
-    public static int compare(IDepartment o1, IDepartment o2) {
+    public int compare(IDepartment o1, IDepartment o2) {
         return EqualityHelper.compare(o1.getDeptid(), o2.getDeptid());
     }
     
@@ -395,7 +374,7 @@ public class Department
      * The application identity class associated with the
      * <code>Department</code> class. 
      */
-    public static class Oid implements Serializable, Comparable {
+    public static class Oid implements Serializable, Comparable<Oid> {
 
         /**
          * This field represents the application identifier field 
@@ -442,12 +421,8 @@ public class Department
         }
 
         /** */
-        public int compareTo(Object obj) {
-            // may throw ClassCastException which the user must handle
-            Oid other = (Oid) obj;
-            if( deptid < other.deptid ) return -1;
-            if( deptid > other.deptid ) return 1;
-            return 0;
+        public int compareTo(Oid obj) {
+            return Long.compare(deptid, obj.deptid);
         }
 
     }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/Employee.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/Employee.java
index 5fbc5711..d1b3a698 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/Employee.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/Employee.java
@@ -26,6 +26,7 @@ import java.util.HashSet;
 import java.util.Set;
 
 import org.apache.jdo.tck.util.EqualityHelper;
+import org.apache.jdo.tck.util.JDOCustomDateEditor;
 
 import javax.jdo.annotations.PersistenceCapable;
 
@@ -45,10 +46,10 @@ public abstract class Employee extends Person implements IEmployee {
     private Employee         mentor;
     private Employee         protege;
     private Employee         hradvisor;
-    private transient Set reviewedProjects = new HashSet(); // element-type is Project
-    private transient Set projects = new HashSet();         // element-type is Project
-    private transient Set team = new HashSet();             // element-type is Employee
-    private transient Set hradvisees = new HashSet();       // element-type is Employee
+    private transient Set<IProject> reviewedProjects = new HashSet<>(); // element-type is Project
+    private transient Set<IProject> projects = new HashSet<>();         // element-type is Project
+    private transient Set<IEmployee> team = new HashSet<>();             // element-type is Employee
+    private transient Set<IEmployee> hradvisees = new HashSet<>();       // element-type is Employee
 
     /** This is the JDO-required no-args constructor */
     protected Employee() {}
@@ -123,7 +124,7 @@ public abstract class Employee extends Person implements IEmployee {
      * Get the reviewed projects.
      * @return The reviewed projects as an unmodifiable set.
      */
-    public Set getReviewedProjects() {
+    public Set<IProject> getReviewedProjects() {
         return Collections.unmodifiableSet(reviewedProjects);
     }
 
@@ -131,7 +132,7 @@ public abstract class Employee extends Person implements IEmployee {
      * Add a reviewed project.
      * @param project A reviewed project.
      */
-    public void addReviewedProjects(Project project) {
+    public void addReviewedProjects(IProject project) {
         reviewedProjects.add(project);
     }
 
@@ -139,7 +140,7 @@ public abstract class Employee extends Person implements IEmployee {
      * Remove a reviewed project.
      * @param project A reviewed project.
      */
-    public void removeReviewedProject(Project project) {
+    public void removeReviewedProject(IProject project) {
         reviewedProjects.remove(project);
     }
 
@@ -147,11 +148,11 @@ public abstract class Employee extends Person implements IEmployee {
      * Set the reviewed projects for the employee.
      * @param reviewedProjects The set of reviewed projects.
      */
-    public void setReviewedProjects(Set reviewedProjects) {
+    public void setReviewedProjects(Set<IProject> reviewedProjects) {
         // workaround: create a new HashSet, because fostore does not
         // support LinkedHashSet
         this.reviewedProjects = 
-            (reviewedProjects != null) ? new HashSet(reviewedProjects) : null;
+            (reviewedProjects != null) ? new HashSet<>(reviewedProjects) : null;
     }
 
     /**
@@ -159,7 +160,7 @@ public abstract class Employee extends Person implements IEmployee {
      * @return The employee's projects are returned as an unmodifiable
      * set. 
      */
-    public Set getProjects() {
+    public Set<IProject> getProjects() {
         return Collections.unmodifiableSet(projects);
     }
 
@@ -167,7 +168,7 @@ public abstract class Employee extends Person implements IEmployee {
      * Add a project for the employee.
      * @param project The project.
      */
-    public void addProject(Project project) {
+    public void addProject(IProject project) {
         projects.add(project);
     }
 
@@ -175,7 +176,7 @@ public abstract class Employee extends Person implements IEmployee {
      * Remove a project from an employee's set of projects.
      * @param project The project.
      */
-    public void removeProject(Project project) {
+    public void removeProject(IProject project) {
         projects.remove(project);
     }
 
@@ -183,10 +184,10 @@ public abstract class Employee extends Person implements IEmployee {
      * Set the projects for the employee.
      * @param projects The set of projects of the employee.
      */
-    public void setProjects(Set projects) {
+    public void setProjects(Set<IProject> projects) {
         // workaround: create a new HashSet, because fostore does not
         // support LinkedHashSet
-        this.projects = (projects != null) ? new HashSet(projects) : null;
+        this.projects = (projects != null) ? new HashSet<>(projects) : null;
     }
     
     /**
@@ -275,7 +276,7 @@ public abstract class Employee extends Person implements IEmployee {
      * @return The set of <code>Employee</code>s on this employee's team,
      * returned as an unmodifiable set. 
      */
-    public Set getTeam() {
+    public Set<IEmployee> getTeam() {
         return Collections.unmodifiableSet(team);
     }
 
@@ -305,10 +306,10 @@ public abstract class Employee extends Person implements IEmployee {
      * Set the employee's team.
      * @param team The set of <code>Employee</code>s.
      */
-    public void setTeam(Set team) {
+    public void setTeam(Set<IEmployee> team) {
         // workaround: create a new HashSet, because fostore does not
         // support LinkedHashSet
-        this.team = (team != null) ? new HashSet(team) : null;
+        this.team = (team != null) ? new HashSet<>(team) : null;
     }
 
     /**
@@ -364,7 +365,7 @@ public abstract class Employee extends Person implements IEmployee {
      * @return An unmodifiable <code>Set</code> containing the
      * <code>Employee</code>s that are HR advisees of this employee.
      */
-    public Set getHradvisees() {
+    public Set<IEmployee> getHradvisees() {
         return Collections.unmodifiableSet(hradvisees);
     }
 
@@ -396,10 +397,10 @@ public abstract class Employee extends Person implements IEmployee {
      * @param hradvisees The <code>Employee</code>s that are HR advisees of
      * this employee. 
      */
-    public void setHradvisees(Set hradvisees) {
+    public void setHradvisees(Set<IEmployee> hradvisees) {
         // workaround: create a new HashSet, because fostore does not
         // support LinkedHashSet
-        this.hradvisees = (hradvisees != null) ? new HashSet(hradvisees) : null;
+        this.hradvisees = (hradvisees != null) ? new HashSet<>(hradvisees) : null;
     }
 
     /**
@@ -411,16 +412,17 @@ public abstract class Employee extends Person implements IEmployee {
     private void readObject(ObjectInputStream in)
         throws IOException, ClassNotFoundException {
         in.defaultReadObject();
-        reviewedProjects = new HashSet();
-        projects = new HashSet();
-        team = new HashSet();
-        hradvisees = new HashSet();
+        reviewedProjects = new HashSet<>();
+        projects = new HashSet<>();
+        team = new HashSet<>();
+        hradvisees = new HashSet<>();
     }
 
     /**
      * Return a String representation of a <code>Employee</code> object.
      * @return a String representation of a <code>Employee</code> object.
      */
+    @Override
     public String toString() {
         return "Employee(" + getFieldRepr() + ")";
     }
@@ -429,11 +431,11 @@ public abstract class Employee extends Person implements IEmployee {
      * Returns a String representation of the non-relationship fields.
      * @return a String representation of the non-relationship fields.
      */
+    @Override
     protected String getFieldRepr() {
         StringBuffer rc = new StringBuffer();
         rc.append(super.getFieldRepr());
-        rc.append(", hired ").append(
-            hiredate==null ? "null" : formatter.format(hiredate));
+        rc.append(", hired ").append(JDOCustomDateEditor.getDateRepr(hiredate));
         rc.append(", weeklyhours ").append(weeklyhours);
         return rc.toString();
     }
@@ -449,7 +451,8 @@ public abstract class Employee extends Person implements IEmployee {
      * @throws ClassCastException if the specified instances' type prevents
      * it from being compared to this instance. 
      */
-    public boolean deepCompareFields(Object other, 
+    @Override
+    public boolean deepCompareFields(Object other,
                                      EqualityHelper helper) {
         IEmployee otherEmp = (IEmployee)other;
         String where = "Employee<" + getPersonid() + ">";
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/FullTimeEmployee.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/FullTimeEmployee.java
index d6d8736e..6af02b11 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/FullTimeEmployee.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/FullTimeEmployee.java
@@ -91,6 +91,7 @@ public class FullTimeEmployee extends Employee implements IFullTimeEmployee {
      * Return a String representation of a <code>FullTimeEmployee</code> object.
      * @return a String representation of a <code>FullTimeEmployee</code> object.
      */
+    @Override
     public String toString() {
         return "FullTimeEmployee(" + getFieldRepr() + ")";
     }
@@ -99,6 +100,7 @@ public class FullTimeEmployee extends Employee implements IFullTimeEmployee {
      * Returns a String representation of the non-relationship fields.
      * @return a String representation of the non-relationship fields.
      */
+    @Override
     public String getFieldRepr() {
         StringBuffer rc = new StringBuffer();
         rc.append(super.getFieldRepr());
@@ -118,7 +120,8 @@ public class FullTimeEmployee extends Employee implements IFullTimeEmployee {
      * @throws ClassCastException if the specified instances' type prevents
      * it from being compared to this instance. 
      */
-    public boolean deepCompareFields(Object other, 
+    @Override
+    public boolean deepCompareFields(Object other,
                                      EqualityHelper helper) {
         IFullTimeEmployee otherEmp = (IFullTimeEmployee)other;
         String where = "FullTimeEmployee<" + getPersonid() + ">";
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/ICompany.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/ICompany.java
index 91d9cacf..394ff986 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/ICompany.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/ICompany.java
@@ -29,13 +29,13 @@ public interface ICompany {
     
     IAddress getAddress();
     long getCompanyid();
-    Set getDepartments();
+    Set<IDepartment> getDepartments();
     Date getFounded();
     String getName();
     
     void setAddress(IAddress a);
     void setCompanyid(long id);
-    void setDepartments(Set depts);
+    void setDepartments(Set<IDepartment> depts);
     void setFounded(Date date);
     void setName(String string);
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/IDepartment.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/IDepartment.java
index d97f707d..611e2519 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/IDepartment.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/IDepartment.java
@@ -31,15 +31,15 @@ public interface IDepartment {
     String getName();
     ICompany getCompany();
     IEmployee getEmployeeOfTheMonth();
-    Set getEmployees();
-    Set getFundedEmps();
-    List getMeetingRooms();
+    Set<IEmployee> getEmployees();
+    Set<IEmployee> getFundedEmps();
+    List<IMeetingRoom> getMeetingRooms();
 
     void setDeptid(long deptid);
     void setName(String name);
     void setCompany(ICompany company);
     void setEmployeeOfTheMonth(IEmployee employeeOfTheMonth);
-    void setEmployees(Set employees);
-    void setFundedEmps(Set employees);
-    void setMeetingRooms(List rooms);
+    void setEmployees(Set<IEmployee> employees);
+    void setFundedEmps(Set<IEmployee> employees);
+    void setMeetingRooms(List<IMeetingRoom> rooms);
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/IEmployee.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/IEmployee.java
index 2cf21a95..0e7ef865 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/IEmployee.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/IEmployee.java
@@ -29,32 +29,32 @@ public interface IEmployee extends IPerson {
 
     Date getHiredate();
     double getWeeklyhours();
-    Set getReviewedProjects();
-    Set getProjects();
+    Set<IProject> getReviewedProjects();
+    Set<IProject> getProjects();
     IDentalInsurance getDentalInsurance();
     IMedicalInsurance getMedicalInsurance();
     IDepartment getDepartment();
     IDepartment getFundingDept();
     IEmployee getManager();
-    Set getTeam();
+    Set<IEmployee> getTeam();
     IEmployee getMentor();
     IEmployee getProtege();
     IEmployee getHradvisor();
-    Set getHradvisees();
+    Set<IEmployee> getHradvisees();
     
     void setHiredate(Date hiredate);
     void setWeeklyhours(double weeklyhours);
-    void setReviewedProjects(Set reviewedProjects);
-    void setProjects(Set projects);
+    void setReviewedProjects(Set<IProject> reviewedProjects);
+    void setProjects(Set<IProject> projects);
     void setDentalInsurance(IDentalInsurance dentalInsurance);
     void setMedicalInsurance(IMedicalInsurance medicalInsurance);
     void setDepartment(IDepartment department);
     void setFundingDept(IDepartment department);
     void setManager(IEmployee manager);
-    void setTeam(Set team);
+    void setTeam(Set<IEmployee> team);
     void setMentor(IEmployee mentor);
     void setProtege(IEmployee protege);
     void setHradvisor(IEmployee hradvisor);
-    void setHradvisees(Set hradvisees);
+    void setHradvisees(Set<IEmployee> hradvisees);
     
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/IPerson.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/IPerson.java
index adf2bf1f..d2132766 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/IPerson.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/IPerson.java
@@ -33,7 +33,7 @@ public interface IPerson {
     String getMiddlename();
     IAddress getAddress();
     Date getBirthdate();
-    Map getPhoneNumbers();
+    Map<String, String> getPhoneNumbers();
     
     void setPersonid(long personid);
     void setLastname(String lastname);
@@ -41,6 +41,6 @@ public interface IPerson {
     void setMiddlename(String middlename);
     void setAddress(IAddress address);
     void setBirthdate(Date birthdate);
-    void setPhoneNumbers(Map phoneNumbers);
+    void setPhoneNumbers(Map<String, String> phoneNumbers);
 
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/IProject.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/IProject.java
index 2c9c1948..0a05702f 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/IProject.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/IProject.java
@@ -29,13 +29,13 @@ public interface IProject {
     long getProjid();
     String getName();
     BigDecimal getBudget();
-    Set getReviewers();
-    Set getMembers();
+    Set<IEmployee> getReviewers();
+    Set<IEmployee> getMembers();
     
     void setProjid(long projid);
     void setName(String name);
     void setBudget(BigDecimal budget);
-    void setReviewers(Set reviewers);
-    void setMembers(Set employees);
+    void setReviewers(Set<IEmployee> reviewers);
+    void setMembers(Set<IEmployee> employees);
     
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/Insurance.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/Insurance.java
index d8691d41..80d40cc7 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/Insurance.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/Insurance.java
@@ -32,7 +32,7 @@ import javax.jdo.annotations.PersistenceCapable;
  */
 @PersistenceCapable
 public abstract class Insurance
-    implements IInsurance, Serializable, Comparable, Comparator, DeepEquality  {
+    implements IInsurance, Serializable, Comparable<IInsurance>, Comparator<IInsurance>, DeepEquality  {
 
     private long     insid;
     private String   carrier;
@@ -152,27 +152,6 @@ public abstract class Insurance
             helper.equals(carrier, otherIns.getCarrier(), where + ".carrier") &
             helper.deepEquals(employee, otherIns.getEmployee(), where + ".employee");
     }
-    
-    /** 
-     * Compares this object with the specified object for order. Returns a
-     * negative integer, zero, or a positive integer as this object is less
-     * than, equal to, or greater than the specified object. 
-     * @param o The Object to be compared. 
-     * @return a negative integer, zero, or a positive integer as this 
-     * object is less than, equal to, or greater than the specified object. 
-     * @throws ClassCastException - if the specified object's type prevents
-     * it from being compared to this Object. 
-     */
-    public int compareTo(Object o) {
-        return compareTo((IInsurance)o);
-    }
-
-    /** 
-     * Compare two instances. This is a method in Comparator.
-     */
-    public int compare(Object o1, Object o2) {
-        return compare((IInsurance)o1, (IInsurance)o2);
-    }
 
     /** 
      * Compares this object with the specified Insurance object for
@@ -197,7 +176,7 @@ public abstract class Insurance
      * @return a negative integer, zero, or a positive integer as the first
      * object is less than, equal to, or greater than the second object. 
      */
-    public static int compare(IInsurance o1, IInsurance o2) {
+    public int compare(IInsurance o1, IInsurance o2) {
         return EqualityHelper.compare(o1.getInsid(), o2.getInsid());
     }
     
@@ -226,7 +205,7 @@ public abstract class Insurance
      * This class is used to represent the application
      * identifier for the <code>Insurance</code> class.
      */
-    public static class Oid implements Serializable, Comparable 
+    public static class Oid implements Serializable, Comparable<Oid>
     {
         /**
          * This field represents the application identifier for the
@@ -272,12 +251,8 @@ public abstract class Insurance
         }
 
         /** */
-        public int compareTo(Object obj) {
-            // may throw ClassCastException which the user must handle
-            Oid other = (Oid) obj;
-            if( insid < other.insid ) return -1;
-            if( insid > other.insid ) return 1;
-            return 0;
+        public int compareTo(Oid obj) {
+            return Long.compare(insid, obj.insid);
         }
 
     }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/MedicalInsurance.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/MedicalInsurance.java
index 3d7561fc..8d93239f 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/MedicalInsurance.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/MedicalInsurance.java
@@ -17,9 +17,6 @@
  
 package org.apache.jdo.tck.pc.company;
 
-import java.io.Serializable;
-
-import org.apache.jdo.tck.util.DeepEquality;
 import org.apache.jdo.tck.util.EqualityHelper;
 
 import javax.jdo.annotations.PersistenceCapable;
@@ -87,6 +84,7 @@ public class MedicalInsurance extends Insurance implements IMedicalInsurance {
      * @return a String representation of a <code>MedicalInsurance</code>
      * object.
      */
+    @Override
     public String toString() {
         return "MedicalInsurance(" + getFieldRepr() + ")";
     }
@@ -95,6 +93,7 @@ public class MedicalInsurance extends Insurance implements IMedicalInsurance {
      * Returns a String representation of the non-relationship fields.
      * @return a String representation of the non-relationship fields.
      */
+    @Override
     protected String getFieldRepr() {
         StringBuffer rc = new StringBuffer();
         rc.append(super.getFieldRepr());
@@ -113,7 +112,8 @@ public class MedicalInsurance extends Insurance implements IMedicalInsurance {
      * @throws ClassCastException if the specified instances' type prevents
      * it from being compared to this instance. 
      */
-    public boolean deepCompareFields(Object other, 
+    @Override
+    public boolean deepCompareFields(Object other,
                                      EqualityHelper helper) {
         IMedicalInsurance otherIns = (IMedicalInsurance)other;
         String where = "MedicalInsurance<" + getInsid() + ">";
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/MeetingRoom.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/MeetingRoom.java
index b248fd02..f59f1e78 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/MeetingRoom.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/MeetingRoom.java
@@ -30,7 +30,7 @@ import javax.jdo.annotations.PersistenceCapable;
  */
 @PersistenceCapable
 public class MeetingRoom
-    implements IMeetingRoom, Serializable, Comparable, Comparator, DeepEquality {
+    implements IMeetingRoom, Serializable, Comparable<IMeetingRoom>, Comparator<IMeetingRoom>, DeepEquality {
 
     private long    roomid;
     private String  name;
@@ -123,27 +123,6 @@ public class MeetingRoom
             helper.equals(roomid, otherMeetingRoom.getRoomid(), where + ".roomid") &
             helper.equals(name, otherMeetingRoom.getName(), where + ".name");
     }
-    
-    /** 
-     * Compares this object with the specified object for order. Returns a
-     * negative integer, zero, or a positive integer as this object is less
-     * than, equal to, or greater than the specified object. 
-     * @param o The Object to be compared. 
-     * @return a negative integer, zero, or a positive integer as this 
-     * object is less than, equal to, or greater than the specified object. 
-     * @throws ClassCastException - if the specified object's type prevents
-     * it from being compared to this Object. 
-     */
-    public int compareTo(Object o) {
-        return compareTo((IMeetingRoom)o);
-    }
-
-    /** 
-     * Compare two instances. This is a method in Comparator.
-     */
-    public int compare(Object o1, Object o2) {
-        return compare((IMeetingRoom)o1, (IMeetingRoom)o2);
-    }
 
     /** 
      * Compares this object with the specified MeetingRoom object for
@@ -168,7 +147,7 @@ public class MeetingRoom
      * @return a negative integer, zero, or a positive integer as the first
      * object is less than, equal to, or greater than the second object. 
      */
-    public static int compare(IMeetingRoom o1, IMeetingRoom o2) {
+    public int compare(IMeetingRoom o1, IMeetingRoom o2) {
         return EqualityHelper.compare(o1.getRoomid(), o2.getRoomid());
     }
 
@@ -197,7 +176,7 @@ public class MeetingRoom
      * This class is used to represent the application identifier 
      * for the <code>MeetingRoom</code> class.
      */
-    public static class Oid implements Serializable, Comparable {
+    public static class Oid implements Serializable, Comparable<Oid> {
 
         /**
          * This is the identifier field for <code>MeetingRoom</code> and must
@@ -244,12 +223,8 @@ public class MeetingRoom
         }
 
         /** */
-        public int compareTo(Object obj) {
-            // may throw ClassCastException which the user must handle
-            Oid other = (Oid) obj;
-            if( roomid < other.roomid ) return -1;
-            if( roomid > other.roomid ) return 1;
-            return 0;
+        public int compareTo(Oid obj) {
+            return Long.compare(roomid, obj.roomid);
         }
     }
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/PICompany.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/PICompany.java
index 12e639e3..963d7012 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/PICompany.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/PICompany.java
@@ -30,13 +30,13 @@ public interface PICompany extends ICompany {
     //temporary for test. No methods should be here
     IAddress getAddress();
     long getCompanyid();
-    Set getDepartments();
+    Set<IDepartment> getDepartments();
     Date getFounded();
     String getName();
     
     void setAddress(IAddress a);
     void setCompanyid(long id);
-    void setDepartments(Set depts);
+    void setDepartments(Set<IDepartment> depts);
     void setFounded(Date date);
     void setName(String string);
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/PIDepartment.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/PIDepartment.java
index e2f158f2..687ab611 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/PIDepartment.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/PIDepartment.java
@@ -30,14 +30,14 @@ public interface PIDepartment extends IDepartment {
     String getName();
     ICompany getCompany();
     IEmployee getEmployeeOfTheMonth();
-    Set getEmployees();
-    Set getFundedEmps();
+    Set<IEmployee> getEmployees();
+    Set<IEmployee> getFundedEmps();
     
     void setDeptid(long deptid);
     void setName(String name);
     void setCompany(ICompany company);
     void setEmployeeOfTheMonth(IEmployee employeeOfTheMonth);
-    void setEmployees(Set employees);
-    void setFundedEmps(Set employees);
+    void setEmployees(Set<IEmployee> employees);
+    void setFundedEmps(Set<IEmployee> employees);
 
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/PIEmployee.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/PIEmployee.java
index 165df266..040ef614 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/PIEmployee.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/PIEmployee.java
@@ -29,32 +29,32 @@ public interface PIEmployee extends PIPerson, IEmployee {
 
     Date getHiredate();
     double getWeeklyhours();
-    Set getReviewedProjects();
-    Set getProjects();
+    Set<IProject> getReviewedProjects();
+    Set<IProject> getProjects();
     IDentalInsurance getDentalInsurance();
     IMedicalInsurance getMedicalInsurance();
     IDepartment getDepartment();
     IDepartment getFundingDept();
     IEmployee getManager();
-    Set getTeam();
+    Set<IEmployee> getTeam();
     IEmployee getMentor();
     IEmployee getProtege();
     IEmployee getHradvisor();
-    Set getHradvisees();
+    Set<IEmployee> getHradvisees();
     
     void setHiredate(Date hiredate);
     void setWeeklyhours(double weeklyhours);
-    void setReviewedProjects(Set reviewedProjects);
-    void setProjects(Set projects);
+    void setReviewedProjects(Set<IProject> reviewedProjects);
+    void setProjects(Set<IProject> projects);
     void setDentalInsurance(IDentalInsurance dentalInsurance);
     void setMedicalInsurance(IMedicalInsurance medicalInsurance);
     void setDepartment(IDepartment department);
     void setFundingDept(IDepartment department);
     void setManager(IEmployee manager);
-    void setTeam(Set team);
+    void setTeam(Set<IEmployee> team);
     void setMentor(IEmployee mentor);
     void setProtege(IEmployee protege);
     void setHradvisor(IEmployee hradvisor);
-    void setHradvisees(Set hradvisees);
+    void setHradvisees(Set<IEmployee> hradvisees);
     
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/PIPerson.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/PIPerson.java
index 6fc1ad04..0b0c0bf5 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/PIPerson.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/PIPerson.java
@@ -33,7 +33,7 @@ public interface PIPerson extends IPerson {
     String getMiddlename();
     IAddress getAddress();
     Date getBirthdate();
-    Map getPhoneNumbers();
+    Map<String, String> getPhoneNumbers();
     
     void setPersonid(long personid);
     void setLastname(String lastname);
@@ -41,6 +41,6 @@ public interface PIPerson extends IPerson {
     void setMiddlename(String middlename);
     void setAddress(IAddress address);
     void setBirthdate(Date birthdate);
-    void setPhoneNumbers(Map phoneNumbers);
+    void setPhoneNumbers(Map<String, String> phoneNumbers);
 
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/PIProject.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/PIProject.java
index 1347f126..6b5bd3a8 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/PIProject.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/PIProject.java
@@ -29,13 +29,13 @@ public interface PIProject extends IProject {
     long getProjid();
     String getName();
     BigDecimal getBudget();
-    Set getReviewers();
-    Set getMembers();
+    Set<IEmployee> getReviewers();
+    Set<IEmployee> getMembers();
     
     void setProjid(long projid);
     void setName(String name);
     void setBudget(BigDecimal budget);
-    void setReviewers(Set reviewers);
-    void setMembers(Set employees);
+    void setReviewers(Set<IEmployee> reviewers);
+    void setMembers(Set<IEmployee> employees);
     
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/PartTimeEmployee.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/PartTimeEmployee.java
index 7cd5ee99..2901c712 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/PartTimeEmployee.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/PartTimeEmployee.java
@@ -19,7 +19,6 @@ package org.apache.jdo.tck.pc.company;
 
 import java.util.Date;
 
-import org.apache.jdo.tck.util.DeepEquality;
 import org.apache.jdo.tck.util.EqualityHelper;
 
 /**
@@ -88,6 +87,7 @@ public class PartTimeEmployee extends Employee implements IPartTimeEmployee {
      * Returns a String representation of a <code>PartTimeEmployee</code> object.
      * @return a String representation of a <code>PartTimeEmployee</code> object.
      */
+    @Override
     public String toString() {
         return "PartTimeEmployee(" + getFieldRepr() + ")";
     }
@@ -96,6 +96,7 @@ public class PartTimeEmployee extends Employee implements IPartTimeEmployee {
      * Returns a String representation of the non-relationship fields.
      * @return a String representation of the non-relationship fields.
      */
+    @Override
     public String getFieldRepr() {
         StringBuffer rc = new StringBuffer();
         rc.append(super.getFieldRepr());
@@ -115,7 +116,8 @@ public class PartTimeEmployee extends Employee implements IPartTimeEmployee {
      * @throws ClassCastException if the specified instances' type prevents
      * it from being compared to this instance. 
      */
-    public boolean deepCompareFields(Object other, 
+    @Override
+    public boolean deepCompareFields(Object other,
                                         EqualityHelper helper) {
         IPartTimeEmployee otherEmp = (IPartTimeEmployee)other;
         String where = "PartTimeEmployee<" + getPersonid() + ">";
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/Person.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/Person.java
index 45ae7541..200fd064 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/Person.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/Person.java
@@ -14,14 +14,11 @@
  * See the License for the specific language governing permissions and 
  * limitations under the License.
  */
- 
 
 package org.apache.jdo.tck.pc.company;
 
 import java.io.Serializable;
 
-import java.text.SimpleDateFormat;
-
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
@@ -30,6 +27,7 @@ import java.util.Map;
 
 import org.apache.jdo.tck.util.DeepEquality;
 import org.apache.jdo.tck.util.EqualityHelper;
+import org.apache.jdo.tck.util.JDOCustomDateEditor;
 
 import javax.jdo.annotations.PersistenceCapable;
 
@@ -38,7 +36,7 @@ import javax.jdo.annotations.PersistenceCapable;
  */
 @PersistenceCapable
 public class Person
-    implements IPerson, Serializable, Comparable, Comparator, DeepEquality  {
+    implements IPerson, Serializable, Comparable<IPerson>, Comparator<IPerson>, DeepEquality  {
 
     private long    personid;
     private String  firstname;
@@ -49,10 +47,7 @@ public class Person
 
     // maps phone number types ("home", "work", "mobile", etc.) 
     // to phone numbers specified as String
-    private Map phoneNumbers = new HashMap();
-    
-    protected static SimpleDateFormat formatter =
-        new SimpleDateFormat("d/MMM/yyyy");
+    private Map<String, String> phoneNumbers = new HashMap<>();
 
     /** This is the JDO-required no-args constructor. */
     protected Person() {}
@@ -199,7 +194,7 @@ public class Person
      * Get the map of phone numbers as an unmodifiable map.
      * @return The map of phone numbers, as an unmodifiable map.
      */
-    public Map getPhoneNumbers() {
+    public Map<String, String> getPhoneNumbers() {
         return Collections.unmodifiableMap(phoneNumbers);
     }
 
@@ -210,7 +205,7 @@ public class Person
      * <code>null</code> if there was no phone number for the type. 
      */
     public String getPhoneNumber(String type) {
-        return (String)phoneNumbers.get(type);
+        return phoneNumbers.get(type);
     }
     
     /**
@@ -222,7 +217,7 @@ public class Person
      * <code>null</code> if there was no phone number for the type. 
      */
     public String putPhoneNumber(String type, String phoneNumber) {
-        return (String)phoneNumbers.put(type, phoneNumber);
+        return phoneNumbers.put(type, phoneNumber);
     }
 
     /**
@@ -232,18 +227,18 @@ public class Person
      * <code>null</code> if there was no phone number for the type. 
      */
     public String removePhoneNumber(String type) {
-        return (String)phoneNumbers.remove(type);
+        return phoneNumbers.remove(type);
     }
 
     /**
      * Set the phoneNumber map to be in this person.
      * @param phoneNumbers The map of phoneNumbers for this person.
      */
-    public void setPhoneNumbers(Map phoneNumbers) {
+    public void setPhoneNumbers(Map<String, String> phoneNumbers) {
         // workaround: create a new HashMap, because fostore does not
         // support LinkedHashMap
         this.phoneNumbers = 
-            (phoneNumbers != null) ? new HashMap(phoneNumbers) : null;
+            (phoneNumbers != null) ? new HashMap<>(phoneNumbers) : null;
     }
 
     /**
@@ -263,8 +258,7 @@ public class Person
         rc.append(personid);
         rc.append(", ").append(lastname);
         rc.append(", ").append(firstname);
-        rc.append(", born ").append(
-            birthdate==null ? "null" : formatter.format(birthdate));
+        rc.append(", born ").append(JDOCustomDateEditor.getDateRepr(birthdate));
         rc.append(", phone ").append(phoneNumbers);
         return rc.toString();
     }
@@ -294,27 +288,6 @@ public class Person
             helper.deepEquals(phoneNumbers, otherPerson.getPhoneNumbers(), where + ".phoneNumbers");
     }
 
-    /** 
-     * Compares this object with the specified object for order. Returns a
-     * negative integer, zero, or a positive integer as this object is less
-     * than, equal to, or greater than the specified object. 
-     * @param o The Object to be compared. 
-     * @return a negative integer, zero, or a positive integer as this 
-     * object is less than, equal to, or greater than the specified object. 
-     * @throws ClassCastException - if the specified object's type prevents
-     * it from being compared to this Object. 
-     */
-    public int compareTo(Object o) {
-        return compareTo((IPerson)o);
-    }
-
-    /** 
-     * Compare two instances. This is a method in Comparator.
-     */
-    public int compare(Object o1, Object o2) {
-        return compare((IPerson)o1, (IPerson)o2);
-    }
-
     /** 
      * Compares this object with the specified Person object for
      * order. Returns a negative integer, zero, or a positive integer as
@@ -338,7 +311,7 @@ public class Person
      * @return a negative integer, zero, or a positive integer as the first
      * object is less than, equal to, or greater than the second object. 
      */
-    public static int compare(IPerson o1, IPerson o2) {
+    public int compare(IPerson o1, IPerson o2) {
         return EqualityHelper.compare(o1.getPersonid(), o2.getPersonid());
     }
     
@@ -366,7 +339,7 @@ public class Person
      * This class is used to represent the application identifier
      * for the <code>Person</code> class.
      */
-    public static class Oid implements Serializable, Comparable {
+    public static class Oid implements Serializable, Comparable<Oid> {
 
         /**
          * This field represents the identifier for the <code>Person</code>
@@ -411,12 +384,8 @@ public class Person
         }
 
         /** */
-        public int compareTo(Object obj) {
-            // may throw ClassCastException which the user must handle
-            Oid other = (Oid) obj;
-            if( personid < other.personid ) return -1;
-            if( personid > other.personid ) return 1;
-            return 0;
+        public int compareTo(Oid obj) {
+            return Long.compare(personid, obj.personid);
         }
 
     }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/company/Project.java b/tck/src/main/java/org/apache/jdo/tck/pc/company/Project.java
index 75f33547..f10b2504 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/company/Project.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/company/Project.java
@@ -38,13 +38,13 @@ import javax.jdo.annotations.PersistenceCapable;
  */
 @PersistenceCapable
 public class Project
-    implements IProject, Serializable, Comparable, Comparator, DeepEquality  {
+    implements IProject, Serializable, Comparable<IProject>, Comparator<IProject>, DeepEquality  {
 
     private long       projid;
     private String     name;
     private BigDecimal budget;
-    private transient Set reviewers = new HashSet(); // element type is Employee
-    private transient Set members = new HashSet();   // element type is Employee
+    private transient Set<IEmployee> reviewers = new HashSet<>();
+    private transient Set<IEmployee> members = new HashSet<>();
 
     /** This is the JDO-required no-args constructor. The TCK relies on
      * this constructor for testing PersistenceManager.newInstance(PCClass).
@@ -116,7 +116,7 @@ public class Project
     /**
      * Get the reviewers associated with this project.
      */
-    public Set getReviewers() {
+    public Set<IEmployee> getReviewers() {
         return Collections.unmodifiableSet(reviewers);
     }
 
@@ -124,7 +124,7 @@ public class Project
      * Add a reviewer to the project.
      * @param emp The employee to add as a reviewer.
      */
-    public void addReviewer(Employee emp) {
+    public void addReviewer(IEmployee emp) {
         reviewers.add(emp);
     }
 
@@ -132,7 +132,7 @@ public class Project
      * Remove a reviewer from the project.
      * @param emp The employee to remove as a reviewer of this project.
      */
-    public void removeReviewer(Employee emp) {
+    public void removeReviewer(IEmployee emp) {
         reviewers.remove(emp);
     }
 
@@ -140,10 +140,10 @@ public class Project
      * Set the reviewers associated with this project.
      * @param reviewers The set of reviewers to associate with this project.
      */
-    public void setReviewers(Set reviewers) {
+    public void setReviewers(Set<IEmployee> reviewers) {
         // workaround: create a new HashSet, because fostore does not
         // support LinkedHashSet
-        this.reviewers = (reviewers != null) ? new HashSet(reviewers) : null;
+        this.reviewers = (reviewers != null) ? new HashSet<>(reviewers) : null;
     }
 
     /**
@@ -151,7 +151,7 @@ public class Project
      * @return The members of the project is returned as an unmodifiable
      * set of <code>Employee</code>s. 
      */
-    public Set getMembers() {
+    public Set<IEmployee> getMembers() {
         return Collections.unmodifiableSet(members);
     }
 
@@ -159,7 +159,7 @@ public class Project
      * Add a new member to the project.
      * @param emp The employee to add to the project.
      */
-    public void addMember(Employee emp) {
+    public void addMember(IEmployee emp) {
         members.add(emp);
     }
 
@@ -167,7 +167,7 @@ public class Project
      * Remove a member from the project.
      * @param emp The employee to remove from the project.
      */
-    public void removeMember(Employee emp) {
+    public void removeMember(IEmployee emp) {
         members.remove(emp);
     }
 
@@ -176,10 +176,10 @@ public class Project
      * @param employees The set of employees to be the members of this
      * project. 
      */
-    public void setMembers(Set employees) {
+    public void setMembers(Set<IEmployee> employees) {
         // workaround: create a new HashSet, because fostore does not
         // support LinkedHashSet
-        this.members = (employees != null) ? new HashSet(employees) : null;
+        this.members = (employees != null) ? new HashSet<>(employees) : null;
     }
 
     /**
@@ -191,8 +191,8 @@ public class Project
     private void readObject(ObjectInputStream in)
         throws IOException, ClassNotFoundException {
         in.defaultReadObject();
-        reviewers = new HashSet();
-        members = new HashSet();
+        reviewers = new HashSet<>();
+        members = new HashSet<>();
     }
 
     /**
@@ -237,27 +237,6 @@ public class Project
             helper.deepEquals(reviewers, otherProject.getReviewers(), where + ".reviewers") &
             helper.deepEquals(members, otherProject.getMembers(), where + ".members");
     }
-    
-    /** 
-     * Compares this object with the specified object for order. Returns a
-     * negative integer, zero, or a positive integer as this object is less
-     * than, equal to, or greater than the specified object. 
-     * @param o The Object to be compared. 
-     * @return a negative integer, zero, or a positive integer as this 
-     * object is less than, equal to, or greater than the specified object. 
-     * @throws ClassCastException - if the specified object's type prevents
-     * it from being compared to this Object. 
-     */
-    public int compareTo(Object o) {
-        return compareTo((IProject)o);
-    }
-
-    /** 
-     * Compare two instances. This is a method in Comparator.
-     */
-    public int compare(Object o1, Object o2) {
-        return compare((IProject)o1, (IProject)o2);
-    }
 
     /** 
      * Compares this object with the specified Project object for
@@ -282,7 +261,7 @@ public class Project
      * @return a negative integer, zero, or a positive integer as the first
      * object is less than, equal to, or greater than the second object. 
      */
-    public static int compare(IProject o1, IProject o2) {
+    public int compare(IProject o1, IProject o2) {
         return EqualityHelper.compare(o1.getProjid(), o2.getProjid());
     }
 
@@ -311,7 +290,7 @@ public class Project
      * This class is used to represent the application identity
      * for the <code>Project</code> class.
      */
-    public static class Oid implements Serializable, Comparable {
+    public static class Oid implements Serializable, Comparable<Oid> {
 
         /**
          * This field represents the identifier for the
@@ -356,12 +335,8 @@ public class Project
         }
 
         /** */
-        public int compareTo(Object obj) {
-            // may throw ClassCastException which the user must handle
-            Oid other = (Oid) obj;
-            if( projid < other.projid ) return -1;
-            if( projid > other.projid ) return 1;
-            return 0;
+        public int compareTo(Oid obj) {
+            return Long.compare(projid, obj.projid);
         }
 
     }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedFCAppConcrete.java b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedFCAppConcrete.java
index b52ffa5b..39dc169b 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedFCAppConcrete.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedFCAppConcrete.java
@@ -39,7 +39,7 @@ public class CompanyFactoryAnnotatedFCAppConcrete
         this.pm = pm;        
     }
     
-    public Class[] getTearDownClasses() {
+    public Class<?>[] getTearDownClasses() {
         return new Class[] {
             FCAppDentalInsurance.class,
             FCAppMedicalInsurance.class,
@@ -54,38 +54,38 @@ public class CompanyFactoryAnnotatedFCAppConcrete
     }
     
     public IAddress newAddress() {
-        return (IAddress) new FCAppAddress();
+        return new FCAppAddress();
     }
 
     public IMeetingRoom newMeetingRoom() {
-        return (IMeetingRoom) new FCAppMeetingRoom();
+        return new FCAppMeetingRoom();
     }
     
     public ICompany newCompany() {
-        return (ICompany) new FCAppCompany();
+        return new FCAppCompany();
     }
     
     public IDentalInsurance newDentalInsurance() {
-        return (IDentalInsurance) new FCAppDentalInsurance();
+        return new FCAppDentalInsurance();
     }
     
     public IDepartment newDepartment() {
-        return (IDepartment) new FCAppDepartment();
+        return new FCAppDepartment();
     }
     
     public IFullTimeEmployee newFullTimeEmployee() {
-        return (IFullTimeEmployee) new FCAppFullTimeEmployee();
+        return new FCAppFullTimeEmployee();
     }
     
     public IMedicalInsurance newMedicalInsurance() {
-        return (IMedicalInsurance) new FCAppMedicalInsurance();
+        return new FCAppMedicalInsurance();
     }
     
     public IPartTimeEmployee newPartTimeEmployee() {
-        return (IPartTimeEmployee) new FCAppPartTimeEmployee();
+        return new FCAppPartTimeEmployee();
     }
     
     public IProject newProject() {
-        return (IProject) new FCAppProject();
+        return new FCAppProject();
     }
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedFCAppPM.java b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedFCAppPM.java
index c80ed064..a28b6cb9 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedFCAppPM.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedFCAppPM.java
@@ -39,7 +39,7 @@ public class CompanyFactoryAnnotatedFCAppPM
         this.pm = pm;        
     }
     
-    public Class[] getTearDownClasses() {
+    public Class<?>[] getTearDownClasses() {
         return new Class[] {
             FCAppDentalInsurance.class,
             FCAppMedicalInsurance.class,
@@ -54,38 +54,38 @@ public class CompanyFactoryAnnotatedFCAppPM
     }
     
     public IAddress newAddress() {
-        return (IAddress)pm.newInstance(FCAppAddress.class);
+        return pm.newInstance(FCAppAddress.class);
     }
 
     public IMeetingRoom newMeetingRoom() {
-        return (IMeetingRoom)pm.newInstance(FCAppMeetingRoom.class);
+        return pm.newInstance(FCAppMeetingRoom.class);
     }
     
     public ICompany newCompany() {
-        return (ICompany)pm.newInstance(FCAppCompany.class);
+        return pm.newInstance(FCAppCompany.class);
     }
     
     public IDentalInsurance newDentalInsurance() {
-        return (IDentalInsurance)pm.newInstance(FCAppDentalInsurance.class);
+        return pm.newInstance(FCAppDentalInsurance.class);
     }
     
     public IDepartment newDepartment() {
-        return (IDepartment)pm.newInstance(FCAppDepartment.class);
+        return pm.newInstance(FCAppDepartment.class);
     }
     
     public IFullTimeEmployee newFullTimeEmployee() {
-        return (IFullTimeEmployee)pm.newInstance(FCAppFullTimeEmployee.class);
+        return pm.newInstance(FCAppFullTimeEmployee.class);
     }
     
     public IMedicalInsurance newMedicalInsurance() {
-        return (IMedicalInsurance)pm.newInstance(FCAppMedicalInsurance.class);
+        return pm.newInstance(FCAppMedicalInsurance.class);
     }
     
     public IPartTimeEmployee newPartTimeEmployee() {
-        return (IPartTimeEmployee)pm.newInstance(FCAppPartTimeEmployee.class);
+        return pm.newInstance(FCAppPartTimeEmployee.class);
     }
     
     public IProject newProject() {
-        return (IProject)pm.newInstance(FCAppProject.class);
+        return pm.newInstance(FCAppProject.class);
     }
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedFCDSConcrete.java b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedFCDSConcrete.java
index 1661dfbd..940e5295 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedFCDSConcrete.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedFCDSConcrete.java
@@ -39,7 +39,7 @@ public class CompanyFactoryAnnotatedFCDSConcrete
         this.pm = pm;        
     }
     
-    public Class[] getTearDownClasses() {
+    public Class<?>[] getTearDownClasses() {
         return new Class[] {
             FCDSDentalInsurance.class,
             FCDSMedicalInsurance.class,
@@ -54,38 +54,38 @@ public class CompanyFactoryAnnotatedFCDSConcrete
     }
     
     public IAddress newAddress() {
-        return (IAddress) new FCDSAddress();
+        return new FCDSAddress();
     }
 
     public IMeetingRoom newMeetingRoom() {
-        return (IMeetingRoom) new FCDSMeetingRoom();
+        return new FCDSMeetingRoom();
     }
     
     public ICompany newCompany() {
-        return (ICompany) new FCDSCompany();
+        return new FCDSCompany();
     }
     
     public IDentalInsurance newDentalInsurance() {
-        return (IDentalInsurance) new FCDSDentalInsurance();
+        return new FCDSDentalInsurance();
     }
     
     public IDepartment newDepartment() {
-        return (IDepartment) new FCDSDepartment();
+        return new FCDSDepartment();
     }
     
     public IFullTimeEmployee newFullTimeEmployee() {
-        return (IFullTimeEmployee) new FCDSFullTimeEmployee();
+        return new FCDSFullTimeEmployee();
     }
     
     public IMedicalInsurance newMedicalInsurance() {
-        return (IMedicalInsurance) new FCDSMedicalInsurance();
+        return new FCDSMedicalInsurance();
     }
     
     public IPartTimeEmployee newPartTimeEmployee() {
-        return (IPartTimeEmployee) new FCDSPartTimeEmployee();
+        return new FCDSPartTimeEmployee();
     }
     
     public IProject newProject() {
-        return (IProject) new FCDSProject();
+        return new FCDSProject();
     }
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedFCDSPM.java b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedFCDSPM.java
index 946fc886..51fd67be 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedFCDSPM.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedFCDSPM.java
@@ -39,7 +39,7 @@ public class CompanyFactoryAnnotatedFCDSPM
         this.pm = pm;        
     }
     
-    public Class[] getTearDownClasses() {
+    public Class<?>[] getTearDownClasses() {
         return new Class[] {
             FCDSDentalInsurance.class,
             FCDSMedicalInsurance.class,
@@ -54,38 +54,38 @@ public class CompanyFactoryAnnotatedFCDSPM
     }
     
     public IAddress newAddress() {
-        return (IAddress)pm.newInstance(FCDSAddress.class);
+        return pm.newInstance(FCDSAddress.class);
     }
 
     public IMeetingRoom newMeetingRoom() {
-        return (IMeetingRoom)pm.newInstance(FCDSMeetingRoom.class);
+        return pm.newInstance(FCDSMeetingRoom.class);
     }
     
     public ICompany newCompany() {
-        return (ICompany)pm.newInstance(FCDSCompany.class);
+        return pm.newInstance(FCDSCompany.class);
     }
     
     public IDentalInsurance newDentalInsurance() {
-        return (IDentalInsurance)pm.newInstance(FCDSDentalInsurance.class);
+        return pm.newInstance(FCDSDentalInsurance.class);
     }
     
     public IDepartment newDepartment() {
-        return (IDepartment)pm.newInstance(FCDSDepartment.class);
+        return pm.newInstance(FCDSDepartment.class);
     }
     
     public IFullTimeEmployee newFullTimeEmployee() {
-        return (IFullTimeEmployee)pm.newInstance(FCDSFullTimeEmployee.class);
+        return pm.newInstance(FCDSFullTimeEmployee.class);
     }
     
     public IMedicalInsurance newMedicalInsurance() {
-        return (IMedicalInsurance)pm.newInstance(FCDSMedicalInsurance.class);
+        return pm.newInstance(FCDSMedicalInsurance.class);
     }
     
     public IPartTimeEmployee newPartTimeEmployee() {
-        return (IPartTimeEmployee)pm.newInstance(FCDSPartTimeEmployee.class);
+        return pm.newInstance(FCDSPartTimeEmployee.class);
     }
     
     public IProject newProject() {
-        return (IProject)pm.newInstance(FCDSProject.class);
+        return pm.newInstance(FCDSProject.class);
     }
 }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedPMFieldClass.java b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedPMFieldClass.java
index 6aa2d35b..78761201 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedPMFieldClass.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/CompanyFactoryAnnotatedPMFieldClass.java
@@ -29,15 +29,15 @@ import org.apache.jdo.tck.pc.company.*;
 public class CompanyFactoryAnnotatedPMFieldClass
         extends org.apache.jdo.tck.pc.company.CompanyFactoryAbstractImpl {
     
-    Class addressClass = null;
-    Class dentalInsuranceClass = null;
-    Class medicalInsuranceClass = null;
-    Class partTimeEmployeeClass = null;
-    Class fullTimeEmployeeClass = null;
-    Class projectClass = null;
-    Class departmentClass = null;
-    Class meetingRoomClass = null;
-    Class companyClass = null;
+    Class<?> addressClass = null;
+    Class<?> dentalInsuranceClass = null;
+    Class<?> medicalInsuranceClass = null;
+    Class<?> partTimeEmployeeClass = null;
+    Class<?> fullTimeEmployeeClass = null;
+    Class<?> projectClass = null;
+    Class<?> departmentClass = null;
+    Class<?> meetingRoomClass = null;
+    Class<?> companyClass = null;
 
     /**
      * Creates a new instance of CompanyFactoryAnnotatedPMFieldClass
@@ -87,8 +87,8 @@ public class CompanyFactoryAnnotatedPMFieldClass
         
     }
     
-    public Class[] getTearDownClasses() {
-        return new Class[] {
+    public Class<?>[] getTearDownClasses() {
+        return new Class<?>[] {
             dentalInsuranceClass,
             medicalInsuranceClass,
             partTimeEmployeeClass,
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppAddress.java b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppAddress.java
index 29957c98..2ac5d41b 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppAddress.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppAddress.java
@@ -31,7 +31,7 @@ import org.apache.jdo.tck.util.EqualityHelper;
  */
 @PersistenceCapable(embeddedOnly="true", requiresExtent="false")
 public class FCAppAddress 
-    implements IAddress, Serializable, Comparable, Comparator, DeepEquality {
+    implements IAddress, Serializable, Comparable<IAddress>, Comparator<IAddress>, DeepEquality {
 
     private long    addrid;
     private String  street;
@@ -211,27 +211,6 @@ public class FCAppAddress
             helper.equals(zipcode, otherAddress.getZipcode(), where + ".zipcode") &
             helper.equals(country, otherAddress.getCountry(), where + ".country");
     }
-    
-    /** 
-     * Compares this object with the specified object for order. Returns a
-     * negative integer, zero, or a positive integer as this object is less
-     * than, equal to, or greater than the specified object. 
-     * @param o The Object to be compared. 
-     * @return a negative integer, zero, or a positive integer as this 
-     * object is less than, equal to, or greater than the specified object. 
-     * @throws ClassCastException - if the specified object's type prevents
-     * it from being compared to this Object. 
-     */
-    public int compareTo(Object o) {
-        return compareTo((FCAppAddress)o);
-    }
-
-    /** 
-     * Compare two instances. This is a method in Comparator.
-     */
-    public int compare(Object o1, Object o2) {
-        return compare((FCAppAddress)o1, (FCAppAddress)o2);
-    }
 
     /** 
      * Compares this object with the specified Address object for
@@ -243,7 +222,7 @@ public class FCAppAddress
      * object is less than, equal to, or greater than the specified Address
      * object. 
      */
-    public int compareTo(FCAppAddress other) {
+    public int compareTo(IAddress other) {
         return compare(this, other);
     }
     
@@ -258,7 +237,7 @@ public class FCAppAddress
      * @return a negative integer, zero, or a positive integer as the first
      * object is less than, equal to, or greater than the second object.
      */
-    public static int compare(FCAppAddress o1, FCAppAddress o2) {
+    public int compare(IAddress o1, IAddress o2) {
         return EqualityHelper.compare(o1.getAddrid(), o2.getAddrid());
     }
 
@@ -287,7 +266,7 @@ public class FCAppAddress
      * This class is used to represent the application identifier 
      * for the <code>Address</code> class.
      */
-    public static class Oid implements Serializable, Comparable {
+    public static class Oid implements Serializable, Comparable<Oid> {
 
         /**
          * This is the identifier field for <code>Address</code> and must
@@ -334,12 +313,8 @@ public class FCAppAddress
         }
 
         /** */
-        public int compareTo(Object obj) {
-            // may throw ClassCastException which the user must handle
-            Oid other = (Oid) obj;
-            if( addrid < other.addrid ) return -1;
-            if( addrid > other.addrid ) return 1;
-            return 0;
+        public int compareTo(Oid obj) {
+            return Long.compare(addrid, obj.addrid);
         }
 
     }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppCompany.java b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppCompany.java
index 5e5e0d94..c62526a9 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppCompany.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppCompany.java
@@ -23,8 +23,6 @@ import java.io.Serializable;
 import java.io.ObjectInputStream;
 import java.io.IOException;
 
-import java.text.SimpleDateFormat;
-
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Set;
@@ -33,8 +31,10 @@ import java.util.Date;
 import org.apache.jdo.tck.pc.company.IAddress;
 
 import org.apache.jdo.tck.pc.company.ICompany;
+import org.apache.jdo.tck.pc.company.IDepartment;
 import org.apache.jdo.tck.util.DeepEquality;
 import org.apache.jdo.tck.util.EqualityHelper;
+import org.apache.jdo.tck.util.JDOCustomDateEditor;
 
 /**
  * This class represents information about a company.
@@ -44,7 +44,7 @@ import org.apache.jdo.tck.util.EqualityHelper;
 @Discriminator(strategy=DiscriminatorStrategy.CLASS_NAME,
         column="DISCRIMINATOR")
     public class FCAppCompany 
-    implements ICompany, Serializable, Comparable, Comparator, DeepEquality {
+    implements ICompany, Serializable, Comparable<ICompany>, Comparator<ICompany>, DeepEquality {
 
     @Persistent(primaryKey="true")
     @Column(name="ID")
@@ -67,10 +67,7 @@ import org.apache.jdo.tck.util.EqualityHelper;
     @Persistent(persistenceModifier=PersistenceModifier.PERSISTENT,
             mappedBy="company")
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedFC.FCAppDepartment.class)
-    private transient Set departments = new HashSet();
-
-    protected static SimpleDateFormat formatter =
-        new SimpleDateFormat("d/MMM/yyyy");
+    private transient Set<IDepartment> departments = new HashSet<>();
 
     /** This is the JDO-required no-args constructor. The TCK relies on
      * this constructor for testing PersistenceManager.newInstance(PCClass).
@@ -175,7 +172,7 @@ import org.apache.jdo.tck.util.EqualityHelper;
      * @return An unmodifiable <code>Set</code> that contains all the
      * <code>FCAppDepartment</code>s of the company.
      */
-    public Set getDepartments() {
+    public Set<IDepartment> getDepartments() {
         return Collections.unmodifiableSet(departments);
     }
 
@@ -204,11 +201,11 @@ import org.apache.jdo.tck.util.EqualityHelper;
      * @param departments The set of <code>FCAppDepartment</code>s for the
      * company.
      */
-    public void setDepartments(Set departments) {
+    public void setDepartments(Set<IDepartment> departments) {
         // workaround: create a new HashSet, because fostore does not
         // support LinkedHashSet
         this.departments = 
-            (departments != null) ? new HashSet(departments) : null;
+            (departments != null) ? new HashSet<>(departments) : null;
     }
     
     /**
@@ -220,7 +217,7 @@ import org.apache.jdo.tck.util.EqualityHelper;
     private void readObject(ObjectInputStream in)
         throws IOException, ClassNotFoundException {
         in.defaultReadObject();
-        departments = new HashSet();
+        departments = new HashSet<>();
     }
 
     /**
@@ -239,8 +236,7 @@ import org.apache.jdo.tck.util.EqualityHelper;
         StringBuffer rc = new StringBuffer();
         rc.append(companyid);
         rc.append(", name ").append(name);
-        rc.append(", founded ").append(
-            founded==null ? "null" : formatter.format(founded));
+        rc.append(", founded ").append(JDOCustomDateEditor.getDateRepr(founded));
         return rc.toString();
     }
 
@@ -277,14 +273,14 @@ import org.apache.jdo.tck.util.EqualityHelper;
      * @throws ClassCastException - if the specified object's type prevents
      * it from being compared to this Object. 
      */
-    public int compareTo(Object o) {
+    public int compareTo(ICompany o) {
         return compareTo((FCAppCompany)o);
     }
 
     /** 
      * Compare two instances. This is a method in Comparator.
      */
-    public int compare(Object o1, Object o2) {
+    public int compare(ICompany o1, ICompany o2) {
         return compare((FCAppCompany)o1, (FCAppCompany)o2);
     }
 
@@ -341,7 +337,7 @@ import org.apache.jdo.tck.util.EqualityHelper;
      * for the <code>Company</code> class. It consists of both the company 
      * name and the date that the company was founded.
      */
-    public static class Oid implements Serializable, Comparable {
+    public static class Oid implements Serializable, Comparable<Oid> {
 
         /**
          * This field is part of the identifier and should match in name
@@ -385,12 +381,8 @@ import org.apache.jdo.tck.util.EqualityHelper;
         }
 
         /** */
-        public int compareTo(Object obj) {
-            // may throw ClassCastException which the user must handle
-            Oid other = (Oid) obj;
-            if( companyid < other.companyid ) return -1;
-            if( companyid > other.companyid ) return 1;
-            return 0;
+        public int compareTo(Oid obj) {
+            return Long.compare(companyid, obj.companyid);
         }
         
     }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppDentalInsurance.java b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppDentalInsurance.java
index eafb9d2b..8b94922d 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppDentalInsurance.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppDentalInsurance.java
@@ -89,6 +89,7 @@ public class FCAppDentalInsurance extends FCAppInsurance implements IDentalInsur
      * @return a String representation of a <code>FCAppDentalInsurance</code>
      * object.
      */
+    @Override
     public String toString() {
         return "FCDentalInsurance(" + getFieldRepr()+ ")";
     }
@@ -97,6 +98,7 @@ public class FCAppDentalInsurance extends FCAppInsurance implements IDentalInsur
      * Returns a String representation of the non-relationship fields.
      * @return a String representation of the non-relationship fields.
      */
+    @Override
     protected String getFieldRepr() {
         StringBuffer rc = new StringBuffer();
         rc.append(super.getFieldRepr());
@@ -115,7 +117,8 @@ public class FCAppDentalInsurance extends FCAppInsurance implements IDentalInsur
      * @throws ClassCastException if the specified instances' type prevents
      * it from being compared to this instance. 
      */
-    public boolean deepCompareFields(Object other, 
+    @Override
+    public boolean deepCompareFields(Object other,
                                      EqualityHelper helper) {
         FCAppDentalInsurance otherIns = (FCAppDentalInsurance)other;
         String where = "FCDentalInsurance<" + getInsid() + ">";
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppDepartment.java b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppDepartment.java
index eb4a20d2..ad42ffd6 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppDepartment.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppDepartment.java
@@ -33,6 +33,7 @@ import org.apache.jdo.tck.pc.company.ICompany;
 import org.apache.jdo.tck.pc.company.IDepartment;
 import org.apache.jdo.tck.pc.company.IEmployee;
 
+import org.apache.jdo.tck.pc.company.IMeetingRoom;
 import org.apache.jdo.tck.pc.compositeAnnotation.ApplicationIdDiscriminatorClassName;
 
 import org.apache.jdo.tck.util.DeepEquality;
@@ -45,7 +46,7 @@ import org.apache.jdo.tck.util.EqualityHelper;
 @Inheritance(strategy=InheritanceStrategy.NEW_TABLE)
 @ApplicationIdDiscriminatorClassName
 public class FCAppDepartment
-    implements IDepartment, Serializable, Comparable, Comparator, DeepEquality {
+    implements IDepartment, Serializable, Comparable<IDepartment>, Comparator<IDepartment>, DeepEquality {
 
     public static final int RECOMMENDED_NO_OF_EMPS = 2;
 
@@ -60,10 +61,10 @@ public class FCAppDepartment
     private FCAppEmployee employeeOfTheMonth;
     @Persistent(mappedBy="department")
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedFC.FCAppEmployee.class)
-    private transient Set employees = new HashSet();
+    private transient Set<IEmployee> employees = new HashSet<>();
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedFC.FCAppEmployee.class)
     @Persistent(mappedBy="fundingDept")
-    private transient Set fundedEmps = new HashSet();
+    private transient Set<IEmployee> fundedEmps = new HashSet<>();
 
     /** This is the JDO-required no-args constructor. The TCK relies on
      * this constructor for testing PersistenceManager.newInstance(PCClass).
@@ -180,7 +181,7 @@ public class FCAppDepartment
      * @return The set of employees in the department, as an unmodifiable
      * set. 
      */
-    public Set getEmployees() {
+    public Set<IEmployee> getEmployees() {
         return Collections.unmodifiableSet(employees);
     }
 
@@ -204,10 +205,10 @@ public class FCAppDepartment
      * Set the employees to be in this department.
      * @param employees The set of employees for this department.
      */
-    public void setEmployees(Set employees) {
+    public void setEmployees(Set<IEmployee> employees) {
         // workaround: create a new HashSet, because fostore does not
         // support LinkedHashSet
-        this.employees = (employees != null) ? new HashSet(employees) : null;
+        this.employees = (employees != null) ? new HashSet<>(employees) : null;
     }
 
     /**
@@ -215,7 +216,7 @@ public class FCAppDepartment
      * @return The set of funded employees in the department, as an
      * unmodifiable set. 
      */
-    public Set getFundedEmps() {
+    public Set<IEmployee> getFundedEmps() {
         return Collections.unmodifiableSet(fundedEmps);
     }
 
@@ -241,20 +242,20 @@ public class FCAppDepartment
      * Set the funded employees to be in this department.
      * @param employees The set of funded employees for this department. 
      */
-    public void setFundedEmps(Set employees) {
+    public void setFundedEmps(Set<IEmployee> employees) {
         // workaround: create a new HashSet, because fostore does not
         // support LinkedHashSet
-        this.fundedEmps = (fundedEmps != null) ? new HashSet(employees) : null;
+        this.fundedEmps = (fundedEmps != null) ? new HashSet<>(employees) : null;
     }
 
     @Override
-	public List getMeetingRooms() {
+	public List<IMeetingRoom> getMeetingRooms() {
 		// TODO Auto-generated method stub
 		return null;
 	}
 
 	@Override
-	public void setMeetingRooms(List rooms) {
+	public void setMeetingRooms(List<IMeetingRoom> rooms) {
 		// TODO Auto-generated method stub
 		
 	}
@@ -268,8 +269,8 @@ public class FCAppDepartment
     private void readObject(ObjectInputStream in)
         throws IOException, ClassNotFoundException {
         in.defaultReadObject();
-        employees = new HashSet();
-        fundedEmps = new HashSet();
+        employees = new HashSet<>();
+        fundedEmps = new HashSet<>();
     }
 
     /**
@@ -318,27 +319,6 @@ public class FCAppDepartment
         return rc.toString();
     }
 
-    /** 
-     * Compares this object with the specified object for order. Returns a
-     * negative integer, zero, or a positive integer as this object is less
-     * than, equal to, or greater than the specified object. 
-     * @param o The Object to be compared. 
-     * @return a negative integer, zero, or a positive integer as this 
-     * object is less than, equal to, or greater than the specified object. 
-     * @throws ClassCastException - if the specified object's type prevents
-     * it from being compared to this Object. 
-     */
-    public int compareTo(Object o) {
-        return compareTo((FCAppDepartment)o);
-    }
-
-    /** 
-     * Compare two instances. This is a method in Comparator.
-     */
-    public int compare(Object o1, Object o2) {
-        return compare((FCAppDepartment)o1, (FCAppDepartment)o2);
-    }
-
     /** 
      * Compares this object with the specified Department object for
      * order. Returns a negative integer, zero, or a positive integer as
@@ -349,7 +329,7 @@ public class FCAppDepartment
      * object is less than, equal to, or greater than the specified
      * Department object. 
      */
-    public int compareTo(FCAppDepartment other) {
+    public int compareTo(IDepartment other) {
         return compare(this, other);
     }
 
@@ -362,7 +342,7 @@ public class FCAppDepartment
      * @return a negative integer, zero, or a positive integer as the first
      * object is less than, equal to, or greater than the second object. 
      */
-    public static int compare(FCAppDepartment o1, FCAppDepartment o2) {
+    public int compare(IDepartment o1, IDepartment o2) {
         return EqualityHelper.compare(o1.getDeptid(), o2.getDeptid());
     }
     
@@ -391,7 +371,7 @@ public class FCAppDepartment
      * The application identity class associated with the
      * <code>Department</code> class. 
      */
-    public static class Oid implements Serializable, Comparable {
+    public static class Oid implements Serializable, Comparable<Oid> {
 
         /**
          * This field represents the application identifier field 
@@ -438,12 +418,8 @@ public class FCAppDepartment
         }
 
         /** */
-        public int compareTo(Object obj) {
-            // may throw ClassCastException which the user must handle
-            Oid other = (Oid) obj;
-            if( deptid < other.deptid ) return -1;
-            if( deptid > other.deptid ) return 1;
-            return 0;
+        public int compareTo(Oid obj) {
+            return Long.compare(deptid, obj.deptid);
         }
 
     }
diff --git a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppEmployee.java b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppEmployee.java
index 82932b50..d45f8106 100644
--- a/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppEmployee.java
+++ b/tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppEmployee.java
@@ -33,9 +33,11 @@ import org.apache.jdo.tck.pc.company.IDepartment;
 import org.apache.jdo.tck.pc.company.IEmployee;
 import org.apache.jdo.tck.pc.company.IMedicalInsurance;
 
+import org.apache.jdo.tck.pc.company.IProject;
 import org.apache.jdo.tck.pc.compositeAnnotation.ApplicationIdDiscriminatorClassName;
 
 import org.apache.jdo.tck.util.EqualityHelper;
+import org.apache.jdo.tck.util.JDOCustomDateEditor;
 
 /**
  * This class represents an employee.
@@ -66,16 +68,16 @@ public abstract class FCAppEmployee extends FCAppPerson implements IEmployee {
     private FCAppEmployee         hradvisor;
     @Persistent(mappedBy="reviewers")
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedFC.FCAppProject.class)
-    private transient Set reviewedProjects = new HashSet();
+    private transient Set<IProject> reviewedProjects = new HashSet<>();
     @Persistent(mappedBy="members")
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedFC.FCAppProject.class)
-    private transient Set projects = new HashSet();
+    private transient Set<IProject> projects = new HashSet<>();
     @Persistent(mappedBy="manager")
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedFC.FCAppEmployee.class)
-    private transient Set team = new HashSet();
+    private transient Set<IEmployee> team = new HashSet<>();
     @Persistent(mappedBy="hradvisor")
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedFC.FCAppEmployee.class)
-    private transient Set hradvisees = new HashSet();
+    private transient Set<IEmployee> hradvisees = new HashSet<>();
 
     /** This is the JDO-required no-args constructor */
     protected FCAppEmployee() {}
@@ -111,8 +113,7 @@ public abstract class FCAppEmployee extends FCAppPerson implements IEmployee {
     public FCAppEmployee(long personid, String firstname, String lastname, 
                     String middlename, Date birthdate, IAddress address,
                     Date hiredate) {
-        super(personid, firstname, lastname, middlename, birthdate,
-                (FCAppAddress)address);
+        super(personid, firstname, lastname, middlename, birthdate, address);
         this.hiredate = hiredate;
     }
 
@@ -153,7 +154,7 @@ public abstract class FCAppEmployee extends FCAppPerson implements IEmployee {
      * Get the reviewed projects.
      * @return The reviewed projects as an unmodifiable set.
      */
-    public Set getReviewedProjects() {
+    public Set<IProject> getReviewedProjects() {
         return Collections.unmodifiableSet(reviewedProjects);
     }
 
@@ -177,11 +178,11 @@ public abstract class FCAppEmployee extends FCAppPerson implements IEmployee {
      * Set the reviewed projects for the employee.
      * @param reviewedProjects The set of reviewed projects.
      */
-    public void setReviewedProjects(Set reviewedProjects) {
+    public void setReviewedProjects(Set<IProject> reviewedProjects) {
         // workaround: create a new HashSet, because fostore does not
         // support LinkedHashSet
         this.reviewedProjects = 
-            (reviewedProjects != null) ? new HashSet(reviewedProjects) : null;
+            (reviewedProjects != null) ? new HashSet<>(reviewedProjects) : null;
     }
 
     /**
@@ -189,7 +190,7 @@ public abstract class FCAppEmployee extends FCAppPerson implements IEmployee {
      * @return The employee's projects are returned as an unmodifiable
      * set. 
      */
-    public Set getProjects() {
+    public Set<IProject> getProjects() {
         return Collections.unmodifiableSet(projects);
     }
 
@@ -213,10 +214,10 @@ public abstract class FCAppEmployee extends FCAppPerson implements IEmployee {
      * Set the projects for the employee.
      * @param projects The set of projects of the employee.
      */
-    public void setProjects(Set projects) {
+    public void setProjects(Set<IProject> projects) {
         // workaround: create a new HashSet, because fostore does not
         // support LinkedHashSet
-        this.projects = (projects != null) ? new HashSet(projects) : null;
+        this.projects = (projects != null) ? new HashSet<>(projects) : null;
     }
     
     /**
@@ -306,7 +307,7 @@ public abstract class FCAppEmployee extends FCAppPerson implements IEmployee {
      * @return The set of <code>FCAppEmployee</code>s on this employee's team,
      * returned as an unmodifiable set.
      */
-    public Set getTeam() {
+    public Set<IEmployee> getTeam() {
         return Collections.unmodifiableSet(team);
     }
 
@@ -339,10 +340,10 @@ public abstract class FCAppEmployee extends FCAppPerson implements IEmployee {
      * 
      * @param team The set of <code>FCAppEmployee</code>s.
      */
-    public void setTeam(Set team) {
+    public void setTeam(Set<IEmployee> team) {
         // workaround: create a new HashSet, because fostore does not
         // support LinkedHashSet
-        this.team = (team != null) ? new HashSet(team) : null;
+        this.team = (team != null) ? new HashSet<>(team) : null;
     }
 
     /**
@@ -399,7 +400,7 @@ public abstract class FCAppEmployee extends FCAppPerson implements IEmployee {
      * @return An unmodifiable <code>Set</code> containing the
      * <code>FCAppEmployee</code>s that are HR advisees of this employee.
      */
-    public Set getHradvisees() {
+    public Set<IEmployee> getHradvisees() {
         return Collections.unmodifiableSet(hradvisees);
     }
 
@@ -434,10 +435,10 @@ public abstract class FCAppEmployee extends FCAppPerson implements IEmployee {
      * @param hradvisees The <code>FCAppEmployee</code>s that are HR advisees of
      * this employee.
      */
-    public void setHradvisees(Set hradvisees) {
+    public void setHradvisees(Set<IEmployee> hradvisees) {
         // workaround: create a new HashSet, because fostore does not
         // support LinkedHashSet
... 21854 lines suppressed ...