@Override public void postProcessPersistenceUnitInfo(MutablePersistenceUnitInfo pui) { String puName = pui.getPersistenceUnitName(); for (ORMConfigDto config : configs) { if (puName.equals(config.getPuName())) { if (CollectionUtils.isNotEmpty(config.getClassNames())) { pui.getManagedClassNames().addAll(config.getClassNames()); } if (CollectionUtils.isNotEmpty(config.getMappingFiles())) { pui.getMappingFileNames().addAll(config.getMappingFiles()); } } } } }
if (!pui.getManagedClassNames().contains(className)) { LOG.debug("Adding class {} to PersistenceUnit {}", className, persistenceUnitName); pui.addManagedClassName(className);
MutablePersistenceUnitInfo pui = getMergedUnit(persistenceUnitName, newPU); List<String> managedClassNames = newPU.getManagedClassNames(); for (String managedClassName : managedClassNames){ if (!pui.getManagedClassNames().contains(managedClassName)) { pui.addManagedClassName(managedClassName);
/** * Post-process the given PersistenceUnitInfo in order to put all entities in a single persistence unit. * * @param pui * the chosen PersistenceUnitInfo, as read from <code>persistence.xml</code>. Passed in as * MutablePersistenceUnitInfo. */ public void postProcessPersistenceUnitInfo(MutablePersistenceUnitInfo pui) { List<String> classes = puiClasses.get(pui.getPersistenceUnitName()); if (classes == null) { classes = new ArrayList<String>(); puiClasses.put(pui.getPersistenceUnitName(), classes); } pui.getManagedClassNames().addAll(classes); classes.addAll(pui.getManagedClassNames()); } }
@Override protected void postProcessPersistenceUnitInfo(MutablePersistenceUnitInfo pui) { try { Field persistenceUnitInfosField = DefaultPersistenceUnitManager.class.getDeclaredField("persistenceUnitInfos"); persistenceUnitInfosField.setAccessible(true); Map<String, MutablePersistenceUnitInfo> persistenceUnitInfos = (Map<String, MutablePersistenceUnitInfo>) persistenceUnitInfosField.get(this); if(persistenceUnitInfos.isEmpty()){ pui.setPersistenceUnitName(mergedPersistenceUnitName); pui.setTransactionType(transactionTypeOverride); }else{ MutablePersistenceUnitInfo currentlyMergedPui = persistenceUnitInfos.get(mergedPersistenceUnitName); for(String className:pui.getManagedClassNames()){ currentlyMergedPui.getManagedClassNames().add(className); } } } catch (Exception e) { throw new RuntimeException("Error while merging persistence units.",e); } super.postProcessPersistenceUnitInfo(pui); }
@Override protected void postProcessPersistenceUnitInfo(MutablePersistenceUnitInfo pui) { try { Field persistenceUnitInfosField = DefaultPersistenceUnitManager.class.getDeclaredField("persistenceUnitInfos"); persistenceUnitInfosField.setAccessible(true); Map<String, MutablePersistenceUnitInfo> persistenceUnitInfos = (Map<String, MutablePersistenceUnitInfo>) persistenceUnitInfosField.get(this); if(persistenceUnitInfos.isEmpty()){ pui.setPersistenceUnitName(mergedPersistenceUnitName); pui.setTransactionType(transactionTypeOverride); }else{ MutablePersistenceUnitInfo currentlyMergedPui = persistenceUnitInfos.get(mergedPersistenceUnitName); for(String className:pui.getManagedClassNames()){ currentlyMergedPui.getManagedClassNames().add(className); } } } catch (Exception e) { throw new RuntimeException("Error while merging persistence units.",e); } super.postProcessPersistenceUnitInfo(pui); }
/** * Post-process the persistence unit information. If we have seen this persistence * unit name before, merge any newly-defined classes in. Also, if any properties * are set on this post-processor, set them onto the target PersistenceUnitInfo */ @Override public synchronized void postProcessPersistenceUnitInfo(MutablePersistenceUnitInfo pui) { ValidationUtils.assertNotNull(pui, "persistenceUnitInfo cannot be null"); Set<String> classes = puiClasses.get(pui.getPersistenceUnitName()); if (classes == null) { classes = new LinkedHashSet<String>(); puiClasses.put(pui.getPersistenceUnitName(), classes); } pui.getManagedClassNames().addAll(classes); classes.addAll(pui.getManagedClassNames()); if (properties != null) pui.setProperties(properties); }
if ( !pui.getManagedClassNames( ).contains( strClass ) )
/** * Show PUI infos * * @param pui * PersistenceUnitInfo */ private void dumpPersistenceUnitInfo( MutablePersistenceUnitInfo pui ) { _Log.debug( "Dumping content for PersistenceUnitInfo of " + pui.getPersistenceUnitName( ) ); _Log.debug( "** getTransactionType : " + pui.getTransactionType( ) ); _Log.debug( "** getPersistenceProviderClassName : " + pui.getPersistenceProviderClassName( ) ); _Log.debug( "** getPersistenceProviderPackageName : " + pui.getPersistenceProviderPackageName( ) ); _Log.debug( "** getPersistenceUnitName : " + pui.getPersistenceUnitName( ) ); _Log.debug( "** getPersistenceXMLSchemaVersion : " + pui.getPersistenceXMLSchemaVersion( ) ); _Log.debug( "** getJtaDataSource : " + pui.getJtaDataSource( ) ); _Log.debug( "** getManagedClassNames : " + pui.getManagedClassNames( ) ); _Log.debug( "** getMappingFileNames : " + pui.getMappingFileNames( ) ); _Log.debug( "** getNonJtaDataSource : " + pui.getNonJtaDataSource( ) ); _Log.debug( "** getPersistenceUnitRootUrl :" + pui.getPersistenceUnitRootUrl( ) ); _Log.debug( "** getProperties : " + pui.getProperties( ) ); } }
private void performDllGeneration() throws MalformedURLException { for (String eachDatabaseProductName : this.databaseProductNames) { String[] allBasePackages = this.getBasePackages(); this.logger.info("Using base packages " + Joiner.on(", ").join(allBasePackages)); final PersistenceProvider provider = new PersistenceProvider(); final DefaultPersistenceUnitManager manager = new DefaultPersistenceUnitManager(); manager.setDefaultPersistenceUnitRootLocation(null); manager.setDefaultPersistenceUnitName("default"); manager.setPackagesToScan(allBasePackages); manager.setPersistenceXmlLocations(new String[0]); manager.afterPropertiesSet(); final MutablePersistenceUnitInfo puInfo = (MutablePersistenceUnitInfo) manager.obtainDefaultPersistenceUnitInfo(); puInfo.setPersistenceProviderPackageName(provider.getClass().getName()); puInfo.setPersistenceUnitRootUrl(new URL("http://foo.bar")); this.logger.info("Managed classes found: " + puInfo.getManagedClassNames().size()); this.logger.debug("Managed class names:\n -> " + Joiner.on("\n -> ").join(puInfo.getManagedClassNames())); final Map<String, Object> properties = this.buildProperties(eachDatabaseProductName); puInfo.getProperties().putAll(properties); provider.generateSchema(puInfo, properties); } } }
if (!pui.getManagedClassNames().contains(className)) { LOG.debug("Adding class {} to PersistenceUnit {}", className, persistenceUnitName); pui.addManagedClassName(className);
if (!pui.getManagedClassNames().contains(className) && converterAnnotationTypeFilter.match(reader, readerFactory)) { pui.addManagedClassName(className);