You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2018/08/23 09:48:56 UTC
[isis] 06/07: ISIS-1974: moves the responsibility for calling
catalogNamedQueries
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch maint-1.16.2
in repository https://gitbox.apache.org/repos/asf/isis.git
commit b57533abaa2c87c3c42eb51aef276ee7d50acf3f
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Aug 22 13:39:40 2018 +0100
ISIS-1974: moves the responsibility for calling catalogNamedQueries
... thereby removing SpecificatoinLoader from the main work that DNAC does bootstrapping the ORM
---
.../persistence/PersistenceSessionFactory.java | 48 +++++++++++-----------
.../system/session/IsisSessionFactoryBuilder.java | 8 ++--
2 files changed, 26 insertions(+), 30 deletions(-)
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
index 7a275a0..2466c89 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
@@ -72,42 +72,40 @@ public class PersistenceSessionFactory implements ApplicationScopedComponent, Fi
private DataNucleusApplicationComponents applicationComponents;
@Programmatic
- public void init(final SpecificationLoader specificationLoader) {
- this.applicationComponents = createDataNucleusApplicationComponents(configuration, specificationLoader);
- }
-
- @Programmatic
- public boolean isInitialized() {
- return this.applicationComponents != null;
- }
-
- private DataNucleusApplicationComponents createDataNucleusApplicationComponents(
- final IsisConfiguration configuration, final SpecificationLoader specificationLoader) {
-
+ public void init(final IsisConfigurationDefault configuration) {
final RegisterEntities registerEntities = new RegisterEntities(configuration.asMap());
-
- return createDataNucleusApplicationComponents(configuration, specificationLoader, registerEntities);
- }
-
- private DataNucleusApplicationComponents createDataNucleusApplicationComponents(
- final IsisConfiguration configuration,
- final SpecificationLoader specificationLoader, final RegisterEntities registerEntities) {
final Set<String> classesToBePersisted = registerEntities.getEntityTypes();
- if (applicationComponents == null || applicationComponents.isStale()) {
+ if (shouldCreate(this.applicationComponents)) {
- final IsisConfiguration jdoObjectstoreConfig = configuration.createSubset(JDO_OBJECTSTORE_CONFIG_PREFIX);
- final IsisConfiguration dataNucleusConfig = configuration.createSubset(DATANUCLEUS_CONFIG_PREFIX);
+ final IsisConfiguration jdoObjectstoreConfig = this.configuration.createSubset(JDO_OBJECTSTORE_CONFIG_PREFIX);
+ final IsisConfiguration dataNucleusConfig = this.configuration.createSubset(DATANUCLEUS_CONFIG_PREFIX);
final Map<String, String> datanucleusProps = dataNucleusConfig.asMap();
addDataNucleusPropertiesIfRequired(datanucleusProps);
- applicationComponents = new DataNucleusApplicationComponents(jdoObjectstoreConfig,
+ DataNucleusApplicationComponents applicationComponents1 = new DataNucleusApplicationComponents(
+ jdoObjectstoreConfig,
datanucleusProps, classesToBePersisted);
- DataNucleusApplicationComponents.catalogNamedQueries(classesToBePersisted, specificationLoader);
+ this.applicationComponents = applicationComponents1;
+
}
+ }
+
+ @Programmatic
+ public void catalogNamedQueries(final SpecificationLoader specificationLoader) {
+ final RegisterEntities registerEntities = new RegisterEntities(configuration.asMap());
+ final Set<String> classesToBePersisted = registerEntities.getEntityTypes();
+ DataNucleusApplicationComponents.catalogNamedQueries(classesToBePersisted, specificationLoader);
+ }
+
+ @Programmatic
+ public boolean isInitialized() {
+ return this.applicationComponents != null;
+ }
- return applicationComponents;
+ private boolean shouldCreate(final DataNucleusApplicationComponents applicationComponents) {
+ return applicationComponents == null || applicationComponents.isStale();
}
private static void addDataNucleusPropertiesIfRequired(
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java
index 5c9e0b4..3e56fd6 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java
@@ -163,7 +163,6 @@ public class IsisSessionFactoryBuilder {
// instantiate the IsisSessionFactory
isisSessionFactory = new IsisSessionFactory(deploymentCategory, servicesInjector, appManifest);
-
// now, add the IsisSessionFactory itself into ServicesInjector, so it can be @javax.inject.Inject'd
// into any internal domain services
servicesInjector.addFallbackIfRequired(IsisSessionFactory.class, isisSessionFactory);
@@ -178,8 +177,6 @@ public class IsisSessionFactoryBuilder {
// yet inject.
IsisContext.setSessionFactory(isisSessionFactory);
-
-
// time to initialize...
specificationLoader.init();
@@ -203,10 +200,11 @@ public class IsisSessionFactoryBuilder {
authenticationManager.init(deploymentCategory);
authorizationManager.init(deploymentCategory);
- persistenceSessionFactory.init(specificationLoader);
+ persistenceSessionFactory.init(configuration);
- isisSessionFactory.constructServices();
+ persistenceSessionFactory.catalogNamedQueries(specificationLoader);
+ isisSessionFactory.constructServices();
isisSessionFactory.doInSession(
new Runnable() {