/** * Constructor, specifying the PMFContext used. * @param pmfContext PMF Context that this metadata manager operates in */ public MetaDataManager(PMFContext pmfContext) { this.pmfContext = pmfContext; JDOImplHelper.getInstance().removeRegisterClassListener(new MetaDataRegisterClassListener()); this.setValidate(pmfContext.getPmfConfiguration().getMetaDataValidate()); if (JavaUtils.isJRE1_5OrAbove()) { try { ClassLoaderResolver clr = pmfContext.getClassLoaderResolver(null); // TODO This is hardcoded to the Java5 manager. Make it configurable ? Class annotationReaderClass = clr.classForName("org.jpox.metadata.annotations.AnnotationManagerImpl"); Class[] ctrArgs = new Class[] {MetaDataManager.class}; Object[] ctrParams = new Object[] {this}; Constructor ctor = annotationReaderClass.getConstructor(ctrArgs); annotationManager = (AnnotationManager)ctor.newInstance(ctrParams); } catch (Exception e) { JPOXLogger.METADATA.warn(LOCALISER.msg("MetaData.AnnotationManagerNotFound")); } } }