/** * For JRebel plugin */ public static MetaDataManager getMetaDataManager() { return instance != null ? ((JDOPersistenceManagerFactory)instance.persistenceManagerFactory).getNucleusContext().getMetaDataManager() : null; }
/** * Accessor for the names of the classes that have MetaData for this PMF. * @param pmf The PMF * @return The class names */ public static String[] getClassesWithMetaData(PersistenceManagerFactory pmf) { if (pmf == null || !(pmf instanceof JDOPersistenceManagerFactory)) { return null; } JDOPersistenceManagerFactory myPMF = (JDOPersistenceManagerFactory)pmf; Collection classes = myPMF.getNucleusContext().getMetaDataManager().getClassesWithMetaData(); return (String[])classes.toArray(new String[classes.size()]); }
/** * Release of resources */ public synchronized void close() { nucleusContext.getMetaDataManager().deregisterListener(metadataListener); super.close(); }
public synchronized void close() { nucleusContext.getMetaDataManager().deregisterListener(metadataListener); super.close(); }
/** * Release of resources */ public synchronized void close() { nucleusContext.getMetaDataManager().deregisterListener(metadataListener); super.close(); }
/** * Accessor for the classes that are managed (have metadata loaded). * @return Collection of classes */ public Collection<Class> getManagedClasses() { checkJDOPermission(JDOPermission.GET_METADATA); MetaDataManager mmgr = nucleusContext.getMetaDataManager(); Collection<String> classNames = mmgr.getClassesWithMetaData(); Collection<Class> classes = new HashSet<Class>(); if (classNames != null) { ClassLoaderResolver clr = nucleusContext.getClassLoaderResolver(null); Iterator<String> iter = classNames.iterator(); while (iter.hasNext()) { try { Class cls = clr.classForName(iter.next()); classes.add(cls); } catch (ClassNotResolvedException cnre) { // Do nothing } } } return classes; }
/** * Method to perform the replication for all objects registered in the pmf source. */ public void replicateRegisteredClasses() { ClassLoaderResolver clr = ((JDOPersistenceManager)pmfSource.getPersistenceManager()).getExecutionContext().getClassLoaderResolver(); MetaDataManager mmgr = ((JDOPersistenceManagerFactory)pmfSource).getNucleusContext().getMetaDataManager(); Collection classNames = mmgr.getClassesWithMetaData(); ArrayList arrayTypes = new ArrayList(); Iterator iterator = classNames.iterator(); while (iterator.hasNext()) { String className = (String) iterator.next(); AbstractClassMetaData cmd = mmgr.getMetaDataForClass(className, clr); if (!cmd.isEmbeddedOnly()) // Omit embedded-only classes since can't replicate those { arrayTypes.add(clr.classForName(className)); } } replicate((Class[])arrayTypes.toArray(new Class[arrayTypes.size()])); }
/** * Method to remove the specified class from the classes that are being managed. * In practical terms this means remove all knowledge of the class from the metadata service, and also from * the StoreManager service. It doesn't mean to remove the datastore representation (i.e table) of this class. * @param className Name of the class */ public void unmanageClass(String className) { // Unload the metadata for this class MetaDataManager mmgr = nucleusContext.getMetaDataManager(); mmgr.unloadMetaDataForClass(className); // Unmanage from the store nucleusContext.getStoreManager().unmanageClass(nucleusContext.getClassLoaderResolver(null), className, false); }
private void createSchema( final PersistenceManagerFactory persistenceManagerFactory, final Set<String> persistableClassNameSet, final Map<String, String> datanucleusProps) { JDOPersistenceManagerFactory jdopmf = (JDOPersistenceManagerFactory) persistenceManagerFactory; final PersistenceNucleusContext nucleusContext = jdopmf.getNucleusContext(); final SchemaAwareStoreManager schemaAwareStoreManager = (SchemaAwareStoreManager)nucleusContext.getStoreManager(); final MetaDataManager metaDataManager = nucleusContext.getMetaDataManager(); registerMetadataListener(metaDataManager, datanucleusProps); schemaAwareStoreManager.createSchemaForClasses(persistableClassNameSet, asProperties(datanucleusProps)); }
/** * Accessor for the MetaData for the specified class * @param pmf PersistenceManager factory * @param cls The class * @return The MetaData for the class */ public static ClassMetaData getMetaDataForClass(PersistenceManagerFactory pmf, Class cls) { if (pmf == null || cls == null) { return null; } if (!(pmf instanceof JDOPersistenceManagerFactory)) { return null; } JDOPersistenceManagerFactory myPMF = (JDOPersistenceManagerFactory)pmf; MetaDataManager mdmgr = myPMF.getNucleusContext().getMetaDataManager(); return (ClassMetaData)mdmgr.getMetaDataForClass(cls, myPMF.getNucleusContext().getClassLoaderResolver(null)); }
/** * Method to return the (class) metadata object for the specified class, if there is * metadata defined for that class. * @param className Name of the class that we want metadata for * @return The metadata */ public javax.jdo.metadata.TypeMetadata getMetadata(String className) { MetaDataManager mmgr = nucleusContext.getMetaDataManager(); AbstractClassMetaData acmd = mmgr.getMetaDataForClass(className, nucleusContext.getClassLoaderResolver(null)); if (acmd == null) { return null; } if (acmd instanceof ClassMetaData) { return new ClassMetadataImpl((ClassMetaData)acmd); } return new InterfaceMetadataImpl((InterfaceMetaData)acmd); }
MetaDataManager mmgr = nucleusContext.getMetaDataManager(); mmgr.registerListener(metadataListener); Collection<String> classNamesLoaded = mmgr.getClassesWithMetaData();
/** * Constructor. * @param clr ClassLoader resolver * @param ctx context * @param props Properties for the datastore */ public LDAPStoreManager(ClassLoaderResolver clr, PersistenceNucleusContext ctx, Map<String, Object> props) { super("ldap", clr, ctx, props); // Handler for metadata metadataListener = new LDAPMetaDataListener(); ctx.getMetaDataManager().registerListener(metadataListener); // Handler for persistence process persistenceHandler = new LDAPPersistenceHandler(this); flushProcess = new FlushOrdered(); logConfiguration(); }
protected void initialiseMetaData(PersistenceUnitMetaData pumd) nucleusContext.getMetaDataManager().setAllowXML(getConfiguration().getBooleanProperty(PropertyNames.PROPERTY_METADATA_ALLOW_XML)); nucleusContext.getMetaDataManager().setAllowAnnotations(getConfiguration().getBooleanProperty(PropertyNames.PROPERTY_METADATA_ALLOW_ANNOTATIONS)); nucleusContext.getMetaDataManager().setValidate(getConfiguration().getBooleanProperty(PropertyNames.PROPERTY_METADATA_XML_VALIDATE)); nucleusContext.getMetaDataManager().setDefaultNullable(getConfiguration().getBooleanProperty(PropertyNames.PROPERTY_METADATA_DEFAULT_NULLABLE)); nucleusContext.getMetaDataManager().loadPersistenceUnit(pumd, null); if (!allowMetadataLoad) nucleusContext.getMetaDataManager().setAllowMetaDataLoad(false);
/** * Initialisation method. */ private void initialize(ClassLoaderResolver clr) { elementType = elementMapping.getType(); elementsAreEmbedded = isEmbeddedMapping(elementMapping); elementsAreSerialised = isEmbeddedMapping(elementMapping); // Load the element class Class elementCls = clr.classForName(elementType); if (ClassUtils.isReferenceType(elementCls)) { elementCmd = storeMgr.getNucleusContext().getMetaDataManager().getMetaDataForImplementationOfReference(elementCls, null, clr); } else { elementCmd = storeMgr.getNucleusContext().getMetaDataManager().getMetaDataForClass(elementCls, clr); } if (elementCmd != null) { elementType = elementCmd.getFullClassName(); elementInfo = getComponentInformationForClass(elementType, elementCmd); } }
/** * Constructor. * @param clr ClassLoader resolver * @param ctx Context * @param props Properties for this store manager */ public XMLStoreManager(ClassLoaderResolver clr, PersistenceNucleusContext ctx, Map<String, Object> props) { super("xml", clr, ctx, props); ClassUtils.assertClassForJarExistsInClasspath(clr, "javax.xml.bind.JAXBContext", "jaxb-api.jar"); String jaxbHandlerClassName = getStringProperty(JAXB_HANDLER_CLASS_PROPERTY); try { Class cls = clr.classForName(jaxbHandlerClassName); jaxbHandler = (JAXBHandler) ClassUtils.newInstance(cls, new Class[] {MetaDataManager.class}, new Object[]{ctx.getMetaDataManager()}); } catch (ClassNotResolvedException cnre) { NucleusLogger.DATASTORE.error("Could not find jaxb handler class " + jaxbHandlerClassName, cnre); throw new NucleusUserException("The specified JAXB Handler class \"" + jaxbHandlerClassName + "\" was not found!").setFatal(); } // Handler for metadata metadataListener = new XMLMetaDataListener(); ctx.getMetaDataManager().registerListener(metadataListener); // Handler for persistence process persistenceHandler = new XMLPersistenceHandler(this); logConfiguration(); }
if (ClassUtils.isReferenceType(valueCls)) elementCmd = storeMgr.getNucleusContext().getMetaDataManager().getMetaDataForImplementationOfReference(valueCls,null,clr); elementCmd = storeMgr.getNucleusContext().getMetaDataManager().getMetaDataForClass(valueCls, clr);
if (storeMgr.getNucleusContext().getMetaDataManager().getMetaDataForClass(implMapping.getType(), clr) != null && implMapping.getNumberOfDatastoreMappings() > 0)
MetaDataManager mmgr = ec.getNucleusContext().getMetaDataManager(); ClassLoaderResolver clr = ec.getClassLoaderResolver(); mmgr.getMetaDataForClass(value.getClass(), clr);
MetaDataManager mmgr = nucleusContext.getMetaDataManager(); FileMetaData filemd = ((JDOMetadataImpl)metadata).getInternal();