You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by cu...@apache.org on 2009/11/18 21:15:33 UTC
svn commit: r881916 - in
/openjpa/sandboxes/perf/openjpa-persistence/src/main/java/org/apache/openjpa/persistence:
PersistenceProductDerivation.java PersistenceProviderImpl.java
Author: curtisr7
Date: Wed Nov 18 20:15:32 2009
New Revision: 881916
URL: http://svn.apache.org/viewvc?rev=881916&view=rev
Log: (empty)
Modified:
openjpa/sandboxes/perf/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java
openjpa/sandboxes/perf/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
Modified: openjpa/sandboxes/perf/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java
URL: http://svn.apache.org/viewvc/openjpa/sandboxes/perf/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java?rev=881916&r1=881915&r2=881916&view=diff
==============================================================================
--- openjpa/sandboxes/perf/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java (original)
+++ openjpa/sandboxes/perf/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java Wed Nov 18 20:15:32 2009
@@ -30,7 +30,6 @@
import java.util.List;
import java.util.Map;
import java.util.MissingResourceException;
-
import javax.persistence.spi.PersistenceUnitInfo;
import javax.persistence.spi.PersistenceUnitTransactionType;
@@ -454,8 +453,6 @@
_source = source;
}
- static final int MAX_PERF_LEVEL = 1;
-
@Override
public void setInto(Configuration conf) {
if (conf instanceof OpenJPAConfiguration) {
@@ -476,49 +473,6 @@
addProperty(key, Configurations.combinePlugins(orig,
(String) override));
}
-
- // Setup Performance configuration properties.
- Map props = getProperties();
- Object perfLevel = props.get(ProductDerivations.getConfigurationKey("Performance", getProperties()));
- if (perfLevel instanceof String) {
- int level = 0;
- try {
- level = Integer.parseInt((String) perfLevel);
- if(level > MAX_PERF_LEVEL){
- level = MAX_PERF_LEVEL;
- Log log = oconf.getLog(OpenJPAConfiguration.LOG_RUNTIME);
- // We missed translation. What to do about this?
- if(log.isInfoEnabled()){
- // LOG ME
- }
- }
- } catch (NumberFormatException nfe) {
- if (Boolean.parseBoolean((String) perfLevel) == true) {
- // If true, set to maximum perfLevel.
- level = MAX_PERF_LEVEL;
- } else {
- level = 0;
- }
- }// end catch
-
- // The reason that there is a switch here is that in the future when(if) there is another
- // performance level, the new level will include the older(lower) levels. ie: Level 2 would include
- // changes that were a part of Level 1.
- switch (level) {
- case 1:
- // TODO -- add a trace point if we found a user property conflicting with
- // the performance prop?
- String key = ProductDerivations.getConfigurationKey("MetaDataRepository", getProperties());
- if (props.containsKey(key) == false) {
- addProperty(key, "NoLock=true,EagerPersistentMetaData=true");
- }
- key = ProductDerivations.getConfigurationKey("BrokerImpl", getProperties());
- if (props.containsKey(key) == false) {
- addProperty(key, "SuppressBatchOleLogging=true");
- }
- break;
- }
- }
}
super.setInto(conf, null);
Modified: openjpa/sandboxes/perf/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
URL: http://svn.apache.org/viewvc/openjpa/sandboxes/perf/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java?rev=881916&r1=881915&r2=881916&view=diff
==============================================================================
--- openjpa/sandboxes/perf/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java (original)
+++ openjpa/sandboxes/perf/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java Wed Nov 18 20:15:32 2009
@@ -85,22 +85,7 @@
return null;
BrokerFactory factory = getBrokerFactory(cp, poolValue, null);
-
- // We need to wait to initializeEager until after we get back a fully configured/instantiated
- // BrokerFactory. This is because it is possible that someone has extended OpenJPA
- // functions and they need to be allowed time to configure themselves before we go off and
- // start instanting configurable objects (ie:openjpa.MetaDataRepository). Don't catch
- // any exceptions here because we want to fail-fast.
- OpenJPAConfiguration conf = factory.getConfiguration();
- Options o = Configurations.parseProperties(Configurations.getProperties(conf.getMetaDataRepository()));
- if (MetaDataRepository.needsInitializeEager(o) == true) {
- MetaDataRepository mdr = conf.getMetaDataRepositoryInstance();
- mdr.setValidate(MetaDataRepository.VALIDATE_RUNTIME, true);
- mdr.setResolve(MetaDataRepository.MODE_MAPPING_INIT, true);
- ((AbstractBrokerFactory) factory).loadPersistentTypes((ClassLoader) AccessController.doPrivileged(
- J2DoPrivHelper.getContextClassLoaderAction()));
- conf.getMetaDataRepositoryInstance().initializeEager();
- }
+ preloadMetaDataRepository(factory);
return JPAFacadeHelper.toEntityManagerFactory(factory);
} catch (Exception e) {
@@ -176,22 +161,7 @@
_loc.get("transformer-registration-error", pui));
}
}
- // We need to wait to initializeEager until after we get back a fully configured/instantiated
- // BrokerFactory. This is because it is possible that someone has extended OpenJPA
- // functions and they need to be allowed time to configure themselves before we go off and
- // start instanting configurable objects (ie:openjpa.MetaDataRepository). Don't catch
- // any exceptions here because we want to fail-fast.
- OpenJPAConfiguration conf = factory.getConfiguration();
- Options o = Configurations.parseProperties(Configurations.getProperties(conf.getMetaDataRepository()));
- if (MetaDataRepository.needsInitializeEager(o) == true) {
- MetaDataRepository mdr = conf.getMetaDataRepositoryInstance();
- mdr.setValidate(MetaDataRepository.VALIDATE_RUNTIME, true);
- mdr.setResolve(MetaDataRepository.MODE_MAPPING_INIT, true);
- ((AbstractBrokerFactory) factory).loadPersistentTypes((ClassLoader) AccessController
- .doPrivileged(J2DoPrivHelper.getContextClassLoaderAction()));
- conf.getMetaDataRepositoryInstance().initializeEager();
- }
-
+ preloadMetaDataRepository(factory);
return JPAFacadeHelper.toEntityManagerFactory(factory);
} catch (Exception e) {
throw PersistenceExceptions.toPersistenceException(e);
@@ -216,6 +186,30 @@
protected OpenJPAConfiguration newConfigurationImpl() {
return new OpenJPAConfigurationImpl();
}
+
+ /**
+ * Private worker method that will call to the MetaDataRepository to preload if the provided
+ * BrokerFactory is configured to do so.
+ */
+ private void preloadMetaDataRepository(BrokerFactory factory){
+ // We need to wait to preload until after we get back a fully configured/instantiated
+ // BrokerFactory. This is because it is possible that someone has extended OpenJPA
+ // functions and they need to be allowed time to configure themselves before we go off and
+ // start instanting configurable objects (ie:openjpa.MetaDataRepository). Don't catch
+ // any exceptions here because we want to fail-fast.
+ OpenJPAConfiguration conf = factory.getConfiguration();
+ Options o = Configurations.parseProperties(Configurations.getProperties(conf.getMetaDataRepository()));
+ if (MetaDataRepository.needsPreload(o) == true) {
+ MetaDataRepository mdr = conf.getMetaDataRepositoryInstance();
+ mdr.setValidate(MetaDataRepository.VALIDATE_RUNTIME, true);
+ mdr.setResolve(MetaDataRepository.MODE_MAPPING_INIT, true);
+
+ // Load persistent classes and hook in subclasser
+ ((AbstractBrokerFactory) factory).loadPersistentTypes((ClassLoader) AccessController
+ .doPrivileged(J2DoPrivHelper.getContextClassLoaderAction()));
+ mdr.preload();
+ }
+ }
/**
* Java EE 5 class transformer.