persistenceUnitInfo.setPersistenceProviderClassName(string); return; } else if (ELEMENT_JTA_DATA_SOURCE.equals(localName)) { persistenceUnitInfo.setJtaDataSource( return; } else if (ELEMENT_NON_JTA_DATA_SOURCE.equals(localName)) { persistenceUnitInfo.setNonJtaDataSource( return; } else if (ELEMENT_MAPPING_FILE.equals(localName)) { persistenceUnitInfo.getMappingFileNames().add(string); return; } else if (ELEMENT_JAR_FILE.equals(localName)) { persistenceUnitInfo.getJarFiles().add(string); return; } else if (ELEMENT_CLASS.equals(localName)) { persistenceUnitInfo.getManagedClassNames().add(string); return; } else if (ELEMENT_EXCLUDE_UNLISTED_CLASSES.equals(localName)) { if (string.equals("true") || string.equals("1")){ persistenceUnitInfo.setExcludeUnlistedClasses(true); } else { persistenceUnitInfo.setExcludeUnlistedClasses(false);
/** * 永続ユニット情報から抽象永続ユニット名を返します。 * <p> * 永続ユニット情報に抽象永続ユニット名が定義されていない場合は通常の永続ユニット名を抽象永続ユニット名として返します。 * </p> * * @param unitInfo * 永続ユニット情報 * @return 抽象永続ユニット名 */ protected String getAbstractUnitName(final SEPersistenceUnitInfo unitInfo) { final Properties props = unitInfo.getProperties(); if (props != null && props.containsKey(ABSTRACT_UNIT_NAME)) { return props.getProperty(ABSTRACT_UNIT_NAME); } return unitInfo.getPersistenceUnitName(); }
public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException { if (NAMESPACE_URI.equals(namespaceURI)) { if (ELEMENT_PERSISTENCE_UNIT.equals(localName)) { persistenceUnitInfo = new SEPersistenceUnitInfo(); persistenceUnitInfo.setPersistenceUnitName(atts.getValue(ATTRIBUTE_NAME)); String transactionType = atts.getValue(ATTRIBUTE_TRANSACTION_TYPE); if(transactionType != null) { persistenceUnitInfo.setTransactionType(PersistenceUnitTransactionType.valueOf(transactionType)); String name = atts.getValue(ATTRIBUTE_NAME); String value = atts.getValue(ATTRIBUTE_VALUE); persistenceUnitInfo.getProperties().setProperty(name, value); } else if (ELEMENT_PROVIDER.equals(localName)) { readCharacters = true;
ClassLoader tempLoader = null; String providerClassName = persistenceUnitInfo.getPersistenceProviderClassName(); if (persistenceActivator.isPersistenceProviderSupported(providerClassName)){ String puName = PersistenceUnitProcessor.buildPersistenceUnitName(persistenceUnitInfo.getPersistenceUnitRootUrl(),persistenceUnitInfo.getPersistenceUnitName()); EntityManagerSetupImpl emSetupImpl = EntityManagerFactoryProvider.getEntityManagerSetupImpl(puName); Map mergedProperties = EntityManagerFactoryProvider.mergeMaps(m, persistenceUnitInfo.getProperties()); persistenceUnitInfo.setNewTempClassLoader(tempLoader); persistenceUnitInfo.setClassLoader(getMainLoader()); if (emSetupImpl == null){ emSetupImpl = new EntityManagerSetupImpl(); EntityManagerFactoryProvider.addEntityManagerSetupImpl(persistenceUnitInfo.getPersistenceUnitRootUrl()+persistenceUnitInfo.getPersistenceUnitName(), emSetupImpl); AbstractSessionLog.getLog().log(SessionLog.FINER, "cmp_init_invoke_predeploy", persistenceUnitInfo.getPersistenceUnitName()); AbstractSessionLog.getLog().log(SessionLog.FINER, "cmp_init_register_transformer", persistenceUnitInfo.getPersistenceUnitName()); globalInstrumentation.addTransformer(new ClassFileTransformer(){
/** * This method will search for all of the persistence archives on the classpath and weave * all the classes associated with those persistence units. */ public static void main(String[] args) { Set<Archive> pars = PersistenceUnitProcessor.findPersistenceArchives(); Iterator<Archive> parIterator = pars.iterator(); while (parIterator.hasNext()){ List<SEPersistenceUnitInfo> puInfoList = PersistenceUnitProcessor.getPersistenceUnits(parIterator.next(), Thread.currentThread().getContextClassLoader()); Iterator<SEPersistenceUnitInfo> puInfoListIterator = puInfoList.iterator(); while (puInfoListIterator.hasNext()){ Persistence.createEntityManagerFactory(puInfoListIterator.next().getPersistenceUnitName()); } } }
/** * 指定されたpersistenceUnitInfoにSeasar2の自動登録情報を追加し、親クラスの処理を実行します。 * @see oracle.toplink.essentials.internal.ejb.cmp3.JavaSECMPInitializer#callPredeploy(oracle.toplink.essentials.ejb.cmp3.persistence.SEPersistenceUnitInfo, java.util.Map, oracle.toplink.essentials.internal.ejb.cmp3.PersistenceInitializationActivator) */ @Override @SuppressWarnings("unchecked") protected boolean callPredeploy(SEPersistenceUnitInfo persistenceUnitInfo, Map m, PersistenceInitializationActivator persistenceActivator) { final String abstractUnitName = getAbstractUnitName(persistenceUnitInfo); addMappingFiles(abstractUnitName, persistenceUnitInfo); addPersistenceClasses(abstractUnitName, persistenceUnitInfo); if (JavaSECMPInitializer.globalInstrumentation == null) { JavaSECMPInitializer.globalInstrumentation = new InstrumentationImpl( persistenceUnitInfo.getManagedClassNames()); } return super.callPredeploy(persistenceUnitInfo, m, persistenceActivator); }
if(emSetupImpl.shouldRedeploy()) { SEPersistenceUnitInfo persistenceInfo = (SEPersistenceUnitInfo)emSetupImpl.getPersistenceUnitInfo(); persistenceInfo.setClassLoader(JavaSECMPInitializer.getMainLoader()); persistenceInfo.setNewTempClassLoader(JavaSECMPInitializer.getMainLoader());