*/
    public AnnotationManagerImpl(MetaDataManager metadataMgr)
    {
        this.metadataMgr = metadataMgr;
        PluginManager pluginMgr = metadataMgr.getNucleusContext().getPluginManager();
        // Load up the registry of available annotation readers
        ConfigurationElement[] elems = pluginMgr.getConfigurationElementsForExtension("org.datanucleus.annotations", null, null);
        if (elems != null)
        {
            for (int i=0;i<elems.length;i++)
            {
                annotationReaderLookup.put(elems[i].getAttribute("annotation-class"), elems[i].getAttribute("reader"));
            }
        }
        // Load up the registry of available class annotation handlers
        elems = pluginMgr.getConfigurationElementsForExtension("org.datanucleus.class_annotation_handler", null, null);
        if (elems != null && elems.length > 0)
        {
            classAnnotationHandlerAnnotations = new HashSet<String>(elems.length);
            classAnnotationHandlers = new HashMap<String, ClassAnnotationHandler>(elems.length);
            for (int i=0; i<elems.length; i++)
            {
                classAnnotationHandlerAnnotations.add(elems[i].getAttribute("annotation-class"));
            }
        }
        // Load up the registry of available member annotation handlers
        elems = pluginMgr.getConfigurationElementsForExtension("org.datanucleus.member_annotation_handler", null, null);
        if (elems != null && elems.length > 0)
        {
            memberAnnotationHandlerAnnotations = new HashSet<String>(elems.length);
            memberAnnotationHandlers = new HashMap<String, MemberAnnotationHandler>(elems.length);
            for (int i=0; i<elems.length; i++)