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 2015/09/15 08:03:50 UTC
[45/50] [abbrv] isis git commit: ISIS-1194: moving application-scoped
components to RuntimeContextAbstract superclass;
IsisTransaction simplifications
ISIS-1194: moving application-scoped components to RuntimeContextAbstract superclass; IsisTransaction simplifications
- IsisConfigurationDefault now implements ConfigurationService (and using IsisConfigurationDefault concrete class rather than interface where necessary)
- RuntimeContext implementations now require a ServiceInjector, and default the deployment category and configuration; these are set up and immutable for the runtime context
- meaning that RuntimeContext no longer is ServiceInjectorAware.
also:
- IsisTransaction passed through the PersistenceSession (rather than obtain from IsisContext)
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/40f1f04f
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/40f1f04f
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/40f1f04f
Branch: refs/heads/master
Commit: 40f1f04f35e8fb8e8fcab4559ee955924c313f31
Parents: ab78b66
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Mon Sep 14 23:04:00 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Mon Sep 14 23:04:00 2015 +0100
----------------------------------------------------------------------
.../IsisComponentProviderDefault.java | 2 +-
.../isis/tool/mavenplugin/IsisMojoAbstract.java | 6 +-
.../config/IsisConfigurationBuilder.java | 2 +-
...IsisConfigurationBuilderResourceStreams.java | 6 +-
.../config/IsisConfigurationDefault.java | 63 +++++++++--
.../runtimecontext/RuntimeContextAbstract.java | 67 ++++++------
.../noruntime/RuntimeContextNoRuntime.java | 104 ++++---------------
.../specloader/ObjectReflectorDefault.java | 2 +-
.../ObjectReflectorDefaultTestAbstract.java | 2 +-
.../testspec/ObjectSpecificationStub.java | 3 +-
.../installerregistry/InstallerLookup.java | 3 +-
.../PersistenceMechanismInstaller.java | 5 +-
.../internal/RuntimeContextFromSession.java | 64 ++----------
.../isis/core/runtime/system/IsisSystem.java | 5 +-
.../system/persistence/PersistenceSession.java | 33 +++---
.../persistence/PersistenceSessionFactory.java | 13 +--
.../system/transaction/IsisTransaction.java | 17 ++-
.../transaction/IsisTransactionManager.java | 22 ++--
.../IsisComponentProvider.java | 3 +-
.../IsisComponentProviderAbstract.java | 6 +-
...ataNucleusPersistenceMechanismInstaller.java | 4 +-
.../persistence/PersistenceSessionTest.java | 14 +--
22 files changed, 191 insertions(+), 255 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisComponentProviderDefault.java
----------------------------------------------------------------------
diff --git a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisComponentProviderDefault.java b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisComponentProviderDefault.java
index d4d25da..1d3f5e6 100644
--- a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisComponentProviderDefault.java
+++ b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisComponentProviderDefault.java
@@ -208,7 +208,7 @@ public class IsisComponentProviderDefault extends IsisComponentProviderAbstract
}
@Override
- public IsisConfiguration getConfiguration() {
+ public IsisConfigurationDefault getConfiguration() {
return configuration;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java
----------------------------------------------------------------------
diff --git a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java
index 58da31b..0ce5991 100644
--- a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java
+++ b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java
@@ -35,6 +35,7 @@ import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.config.IsisConfigurationBuilderDefault;
import org.apache.isis.core.metamodel.app.IsisMetaModel;
import org.apache.isis.core.metamodel.runtimecontext.noruntime.RuntimeContextNoRuntime;
+import org.apache.isis.core.metamodel.services.ServicesInjectorDefault;
import org.apache.isis.core.runtime.services.ServicesInstaller;
import org.apache.isis.core.runtime.services.ServicesInstallerFromAnnotation;
import org.apache.isis.core.runtime.services.ServicesInstallerFromConfigurationAndAnnotation;
@@ -125,8 +126,11 @@ public abstract class IsisMojoAbstract extends AbstractMojo {
}
private static IsisMetaModel bootstrapIsis(List<Object> serviceList) {
+ final RuntimeContextNoRuntime runtimeContext =
+ new RuntimeContextNoRuntime(
+ new ServicesInjectorDefault(serviceList));
IsisMetaModel isisMetaModel = new IsisMetaModel(
- new RuntimeContextNoRuntime(),
+ runtimeContext,
new ProgrammingModelFacetsJava5(),
serviceList);
isisMetaModel.init();
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationBuilder.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationBuilder.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationBuilder.java
index 6976f4e..a196b06 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationBuilder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationBuilder.java
@@ -38,7 +38,7 @@ public interface IsisConfigurationBuilder extends Injectable {
/**
* Returns a currently known {@link IsisConfiguration}.
*/
- IsisConfiguration getConfiguration();
+ IsisConfigurationDefault getConfiguration();
void addDefaultConfigurationResources();
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationBuilderResourceStreams.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationBuilderResourceStreams.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationBuilderResourceStreams.java
index 729b89e..994fcf6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationBuilderResourceStreams.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationBuilderResourceStreams.java
@@ -135,8 +135,8 @@ public class IsisConfigurationBuilderResourceStreams implements IsisConfiguratio
* {@link NotFoundPolicy} determines whether an exception is thrown or not.
*
* <p>
- * Must be called before {@link #getConfiguration()}; the resource is
- * actually read on {@link #getConfiguration()}.
+ * Must be called before {@link IsisConfigurationBuilder#getConfiguration()}; the resource is
+ * actually read on {@link IsisConfigurationBuilder#getConfiguration()}.
*/
@Override
public synchronized void addConfigurationResource(final String configurationResource, final NotFoundPolicy notFoundPolicy) {
@@ -173,7 +173,7 @@ public class IsisConfigurationBuilderResourceStreams implements IsisConfiguratio
* Returns the current {@link IsisConfiguration configuration}.
*/
@Override
- public synchronized IsisConfiguration getConfiguration() {
+ public synchronized IsisConfigurationDefault getConfiguration() {
return configuration;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationDefault.java
index 0eaf53a..24d6451 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationDefault.java
@@ -23,10 +23,12 @@ import java.awt.Color;
import java.awt.Font;
import java.util.Enumeration;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.StringTokenizer;
+import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.slf4j.Logger;
@@ -35,12 +37,17 @@ import org.slf4j.LoggerFactory;
import org.apache.isis.core.commons.debug.DebugBuilder;
import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.commons.resource.ResourceStreamSource;
+import org.apache.isis.core.metamodel.runtimecontext.ConfigurationService;
-public class IsisConfigurationDefault implements IsisConfiguration {
+public class IsisConfigurationDefault implements IsisConfiguration, ConfigurationService {
private static final Logger LOG = LoggerFactory.getLogger(IsisConfigurationDefault.class);
- private final Properties properties = new Properties();
private final ResourceStreamSource resourceStreamSource;
+ private final Properties properties = new Properties();
+ /**
+ * derived lazily from {@link #properties}.
+ */
+ private Properties applicationProperties;
// ////////////////////////////////////////////////
// Constructor
@@ -228,7 +235,7 @@ public class IsisConfigurationDefault implements IsisConfiguration {
*/
@Override
public boolean getBoolean(final String name, final boolean defaultValue) {
- String value = getProperty(name);
+ String value = getPropertyElseNull(name);
if (value == null) {
return defaultValue;
}
@@ -266,7 +273,7 @@ public class IsisConfigurationDefault implements IsisConfiguration {
*/
@Override
public Color getColor(final String name, final Color defaultValue) {
- final String color = getProperty(name);
+ final String color = getPropertyElseNull(name);
if (color == null) {
return defaultValue;
@@ -314,7 +321,7 @@ public class IsisConfigurationDefault implements IsisConfiguration {
*/
@Override
public Font getFont(final String name, final Font defaultValue) {
- final String font = getProperty(name);
+ final String font = getPropertyElseNull(name);
if (font == null) {
return defaultValue;
@@ -346,7 +353,7 @@ public class IsisConfigurationDefault implements IsisConfiguration {
*/
@Override
public int getInteger(final String name, final int defaultValue) {
- final String value = getProperty(name);
+ final String value = getPropertyElseNull(name);
if (value == null) {
return defaultValue;
@@ -399,7 +406,7 @@ public class IsisConfigurationDefault implements IsisConfiguration {
return isisConfigurationDefault;
}
- private String getProperty(final String name) {
+ private String getPropertyElseNull(final String name) {
return getProperty(name, null);
}
@@ -420,7 +427,7 @@ public class IsisConfigurationDefault implements IsisConfiguration {
*/
@Override
public String getString(final String name) {
- return getProperty(name);
+ return getPropertyElseNull(name);
}
@Override
@@ -479,10 +486,48 @@ public class IsisConfigurationDefault implements IsisConfiguration {
public Map<String,String> asMap() {
final Map<String, String> map = Maps.newHashMap();
for(String propertyName: this) {
- final String propertyValue = this.getProperty(propertyName);
+ final String propertyValue = this.getPropertyElseNull(propertyName);
map.put(propertyName, propertyValue);
}
return map;
}
+
+ //region > ConfigurationService impl
+ @Override
+ public String getProperty(final String name) {
+ initAppPropertiesIfRequired();
+ return applicationProperties.getProperty(name);
+ }
+
+ private void initAppPropertiesIfRequired() {
+ if(applicationProperties == null) {
+ applicationProperties = deriveApplicationProperties();
+ }
+ }
+
+ private Properties deriveApplicationProperties() {
+ final Properties applicationProperties = new Properties();
+ final IsisConfiguration applicationConfiguration = getProperties("application");
+ for (final String key : applicationConfiguration) {
+ final String value = applicationConfiguration.getString(key);
+ final String newKey = key.substring("application.".length());
+ applicationProperties.setProperty(newKey, value);
+ }
+ return applicationProperties;
+ }
+
+
+ @Override
+ public List<String> getPropertyNames() {
+ initAppPropertiesIfRequired();
+ final List<String> list = Lists.newArrayList();
+ for (final Object key : applicationProperties.keySet()) {
+ list.add((String) key);
+ }
+ return list;
+ }
+ //endregion
+
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
index 147b2f0..e2b307b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
@@ -22,11 +22,11 @@ package org.apache.isis.core.metamodel.runtimecontext;
import java.lang.reflect.Method;
import java.util.Collection;
import java.util.List;
-import java.util.Properties;
-import com.google.common.collect.Lists;
-
-import org.apache.isis.core.metamodel.services.ServicesInjectorSpiDelegator;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProviderAbstract;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
@@ -34,13 +34,42 @@ import org.apache.isis.core.metamodel.spec.SpecificationLoaderDelegator;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpiAware;
-public abstract class RuntimeContextAbstract implements RuntimeContext, SpecificationLoaderSpiAware, ServicesInjectorAware {
+public abstract class RuntimeContextAbstract implements RuntimeContext, SpecificationLoaderSpiAware {
private final SpecificationLoaderDelegator specificationLookupDelegator = new SpecificationLoaderDelegator();
- protected final ServicesInjectorSpiDelegator servicesInjectorDelegator = new ServicesInjectorSpiDelegator();
+ private final DeploymentCategory deploymentCategory;
+ private final IsisConfigurationDefault configuration;
+ private final ServicesInjector servicesInjector;
+
+ public RuntimeContextAbstract(
+ final DeploymentCategory deploymentCategory,
+ final IsisConfigurationDefault configuration,
+ final ServicesInjector servicesInjector) {
+ this.deploymentCategory = deploymentCategory;
+ this.configuration = configuration;
+ this.servicesInjector = servicesInjector;
+ }
+
+ @Override
+ public DeploymentCategoryProvider getDeploymentCategoryProvider() {
+ return new DeploymentCategoryProviderAbstract() {
+ @Override
+ public DeploymentCategory getDeploymentCategory() {
+ return deploymentCategory;
+ }
+ };
+ }
+
- private Properties properties;
+ @Override
+ public ConfigurationService getConfigurationService() {
+ return configuration;
+ }
+ @Override
+ public ServicesInjector getServicesInjector() {
+ return servicesInjector;
+ }
@Override
public void init() {
@@ -157,28 +186,4 @@ public abstract class RuntimeContextAbstract implements RuntimeContext, Specific
});
}
- protected void setProperties(final Properties properties) {
- this.properties = properties;
- }
-
- public String getProperty(final String name) {
- return properties.getProperty(name);
- }
-
- public List<String> getPropertyNames() {
- final List<String> list = Lists.newArrayList();
- for (final Object key : properties.keySet()) {
- list.add((String) key);
- }
- return list;
- }
-
-
- //region > injected services
- @Override
- public void setServicesInjector(ServicesInjector servicesInjector) {
- this.servicesInjectorDelegator.setServicesInjectorSpi((org.apache.isis.core.metamodel.services.ServicesInjectorSpi) servicesInjector);
- }
- //endregion
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
index 4297fb0..3e3561c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
@@ -27,23 +27,19 @@ import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProviderAbstract;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationService;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceAbstract;
-import org.apache.isis.core.metamodel.runtimecontext.LocalizationDefault;
-import org.apache.isis.core.metamodel.runtimecontext.LocalizationProvider;
-import org.apache.isis.core.metamodel.runtimecontext.LocalizationProviderAbstract;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
-import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionServiceAbstract;
-import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerService;
-import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerServiceAbstract;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
-import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProviderAbstract;
+import org.apache.isis.core.metamodel.runtimecontext.LocalizationDefault;
+import org.apache.isis.core.metamodel.runtimecontext.LocalizationProvider;
+import org.apache.isis.core.metamodel.runtimecontext.LocalizationProviderAbstract;
+import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerService;
+import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerServiceAbstract;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionServiceAbstract;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAbstract;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -54,51 +50,22 @@ import org.apache.isis.core.metamodel.transactions.TransactionStateProviderAbstr
public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
- private final DeploymentCategory deploymentCategory;
- private final ServicesInjector servicesInjector;
private final AuthenticationSessionProviderAbstract authenticationSessionProvider;
private final AdapterManager adapterManager;
- private final PersistenceSessionServiceAbstract objectPersistor;
- private final ConfigurationServiceAbstract domainObjectServices;
+ private final PersistenceSessionServiceAbstract persistenceSessionService;
private final LocalizationProviderAbstract localizationProvider;
private final MessageBrokerServiceAbstract messageBrokerService;
- public RuntimeContextNoRuntime() {
- this(DeploymentCategory.PRODUCTION);
+ public RuntimeContextNoRuntime(
+ final ServicesInjector servicesInjector) {
+ this(DeploymentCategory.PRODUCTION, new IsisConfigurationDefault(null), servicesInjector);
}
-
- public RuntimeContextNoRuntime(DeploymentCategory deploymentCategory) {
- this.deploymentCategory = deploymentCategory;
- // Unlike most of the methods in this implementation, does nothing
- // (because this will always be called, even in a no-runtime context).
- servicesInjector = new ServicesInjector() {
- @Override
- public void injectServicesInto(final Object domainObject) {
- }
- @Override
- public void injectServicesInto(List<Object> objects) {
- }
-
- @Override
- public <T> T lookupService(Class<T> serviceClass) {
- return null;
- }
-
- @Override
- public void injectInto(Object candidate) {
- }
-
- @Override
- public <T> List<T> lookupServices(Class<T> serviceClass) {
- return null;
- }
-
- @Override
- public List<Object> getRegisteredServices() {
- return null;
- }
- };
+ public RuntimeContextNoRuntime(
+ final DeploymentCategory deploymentCategory,
+ final IsisConfigurationDefault isisConfiguration,
+ final ServicesInjector servicesInjector) {
+ super(deploymentCategory, isisConfiguration, servicesInjector);
authenticationSessionProvider = new AuthenticationSessionProviderAbstract() {
@Override
public AuthenticationSession getAuthenticationSession() {
@@ -146,7 +113,7 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
}
};
- objectPersistor = new PersistenceSessionServiceAbstract() {
+ persistenceSessionService = new PersistenceSessionServiceAbstract() {
@Override
public ObjectAdapter createTransientInstance(final ObjectSpecification spec) {
@@ -214,19 +181,6 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
}
};
- domainObjectServices = new ConfigurationServiceAbstract() {
-
-
- @Override
- public List<String> getPropertyNames() {
- throw new UnsupportedOperationException("Not supported by this implementation of RuntimeContext");
- }
-
- @Override
- public String getProperty(final String name) {
- throw new UnsupportedOperationException("Not supported by this implementation of RuntimeContext");
- }
- };
localizationProvider = new LocalizationProviderAbstract() {
private final Localization defaultLocalization = new LocalizationDefault();
@@ -263,16 +217,6 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
@Override
- public DeploymentCategoryProvider getDeploymentCategoryProvider() {
- return new DeploymentCategoryProviderAbstract() {
- @Override
- public DeploymentCategory getDeploymentCategory() {
- return deploymentCategory;
- }
- };
- }
-
- @Override
public TransactionStateProvider getTransactionStateProvider() {
return new TransactionStateProviderAbstract() {
@Override
@@ -295,12 +239,7 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
@Override
public PersistenceSessionService getPersistenceSessionService() {
- return objectPersistor;
- }
-
- @Override
- public ConfigurationService getConfigurationService() {
- return domainObjectServices;
+ return persistenceSessionService;
}
@Override
@@ -309,11 +248,6 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
}
@Override
- public ServicesInjector getServicesInjector() {
- return servicesInjector;
- }
-
- @Override
public LocalizationProvider getLocalizationProvider() {
return localizationProvider;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
index 357aff3..5eed129 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
@@ -241,7 +241,7 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
// default subcomponents
if (runtimeContext == null) {
- runtimeContext = new RuntimeContextNoRuntime();
+ runtimeContext = new RuntimeContextNoRuntime(servicesInjector);
}
injectInto(runtimeContext);
injectInto(specificationTraverser);
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefaultTestAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefaultTestAbstract.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefaultTestAbstract.java
index e7edc32..0d6279e 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefaultTestAbstract.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefaultTestAbstract.java
@@ -79,7 +79,7 @@ public abstract class ObjectReflectorDefaultTestAbstract {
}
});
- runtimeContext = new RuntimeContextNoRuntime();
+ runtimeContext = new RuntimeContextNoRuntime(new ServicesInjectorDefault(Collections.emptyList()));
final ObjectReflectorDefault reflector =
new ObjectReflectorDefault(
mockConfiguration,
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
index 3116df6..a3f061f 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
@@ -42,6 +42,7 @@ import org.apache.isis.core.metamodel.interactions.ObjectTitleContext;
import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
import org.apache.isis.core.metamodel.runtimecontext.noruntime.RuntimeContextNoRuntime;
+import org.apache.isis.core.metamodel.services.ServicesInjectorDefault;
import org.apache.isis.core.metamodel.spec.ActionType;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -71,7 +72,7 @@ public class ObjectSpecificationStub extends FacetHolderImpl implements ObjectSp
public ObjectSpecificationStub(final Class<?> type) {
this(type.getName());
- runtimeContext = new RuntimeContextNoRuntime();
+ runtimeContext = new RuntimeContextNoRuntime(new ServicesInjectorDefault(Collections.emptyList()));
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/InstallerLookup.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/InstallerLookup.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/InstallerLookup.java
index 3b4e23b..66a8a3d 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/InstallerLookup.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/InstallerLookup.java
@@ -38,6 +38,7 @@ import org.apache.isis.core.commons.components.Installer;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.config.IsisConfigurationBuilder;
import org.apache.isis.core.commons.config.IsisConfigurationBuilderAware;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.commons.config.NotFoundPolicy;
import org.apache.isis.core.commons.ensure.Assert;
import org.apache.isis.core.commons.ensure.Ensure;
@@ -302,7 +303,7 @@ public class InstallerLookup implements InstallerRepository, ApplicationScopedCo
* The {@link IsisConfiguration} could subsequently be appended to if
* further {@link Installer}s are loaded.
*/
- public IsisConfiguration getConfiguration() {
+ public IsisConfigurationDefault getConfiguration() {
return isisConfigurationBuilder.getConfiguration();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/installerapi/PersistenceMechanismInstaller.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/installerapi/PersistenceMechanismInstaller.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/installerapi/PersistenceMechanismInstaller.java
index 033013f..5733718 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/installerapi/PersistenceMechanismInstaller.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/installerapi/PersistenceMechanismInstaller.java
@@ -20,8 +20,8 @@
package org.apache.isis.core.runtime.installerregistry.installerapi;
import org.apache.isis.core.commons.components.Installer;
-import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.config.IsisConfigurationBuilderAware;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
import org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession;
import org.apache.isis.core.runtime.system.DeploymentType;
@@ -38,6 +38,7 @@ public interface PersistenceMechanismInstaller extends Installer, IsisConfigurat
PersistenceSessionFactory createPersistenceSessionFactory(
final DeploymentType deploymentType,
final ServicesInjectorSpi servicesInjector,
- final IsisConfiguration configuration, final RuntimeContextFromSession runtimeContext);
+ final IsisConfigurationDefault configuration,
+ final RuntimeContextFromSession runtimeContext);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
index 9eba740..8ab4b82 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
@@ -20,7 +20,6 @@
package org.apache.isis.core.runtime.persistence.internal;
import java.util.List;
-import java.util.Properties;
import org.apache.isis.applib.RecoverableException;
import org.apache.isis.applib.profiles.Localization;
@@ -30,16 +29,12 @@ import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProviderAbstract;
import org.apache.isis.core.commons.authentication.MessageBroker;
-import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProviderAbstract;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationService;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceAbstract;
import org.apache.isis.core.metamodel.runtimecontext.LocalizationProviderAbstract;
import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerService;
import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerServiceAbstract;
@@ -69,18 +64,17 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
private final AdapterManager adapterManager;
private final PersistenceSessionService persistenceSessionService;
private final MessageBrokerService messageBrokerService;
- private final ConfigurationService configurationService;
private final LocalizationProviderAbstract localizationProvider;
// //////////////////////////////////////////////////////////////////
// Constructor
// //////////////////////////////////////////////////////////////////
-
- public RuntimeContextFromSession(final IsisConfiguration configuration) {
-
- final Properties properties = applicationPropertiesFrom(configuration);
- setProperties(properties);
+ public RuntimeContextFromSession(
+ final DeploymentCategory deploymentCategory,
+ final IsisConfigurationDefault configuration,
+ final ServicesInjector servicesInjector) {
+ super(deploymentCategory, configuration, servicesInjector);
this.authenticationSessionProvider = new AuthenticationSessionProviderAbstract() {
@@ -93,7 +87,7 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
@Override
public ObjectAdapter getAdapterFor(Oid oid) {
- return null;
+ return getPersistenceSession().getAdapterFor(oid);
}
@Override
@@ -201,19 +195,6 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
}
};
- this.configurationService = new ConfigurationServiceAbstract() {
-
- @Override
- public String getProperty(final String name) {
- return RuntimeContextFromSession.this.getProperty(name);
- }
-
- @Override
- public List<String> getPropertyNames() {
- return RuntimeContextFromSession.this.getPropertyNames();
- }
-
- };
this.messageBrokerService = new MessageBrokerServiceAbstract() {
@Override
@@ -242,18 +223,6 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
};
}
- public static Properties applicationPropertiesFrom(final IsisConfiguration configuration) {
- final Properties properties = new Properties();
- final IsisConfiguration applicationConfiguration = configuration.getProperties("application");
- for (final String key : applicationConfiguration) {
- final String value = applicationConfiguration.getString(key);
- final String newKey = key.substring("application.".length());
- properties.setProperty(newKey, value);
- }
- return properties;
- }
-
-
// //////////////////////////////////////////////////////////////////
// Components
// //////////////////////////////////////////////////////////////////
@@ -269,11 +238,6 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
}
@Override
- public ConfigurationService getConfigurationService() {
- return configurationService;
- }
-
- @Override
public LocalizationProviderAbstract getLocalizationProvider() {
return localizationProvider;
}
@@ -284,11 +248,6 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
}
@Override
- public ServicesInjector getServicesInjector() {
- return servicesInjectorDelegator;
- }
-
- @Override
public MessageBrokerService getMessageBrokerService() {
return messageBrokerService;
}
@@ -297,15 +256,6 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
// Dependencies (from context)
// ///////////////////////////////////////////
- @Override
- public DeploymentCategoryProvider getDeploymentCategoryProvider() {
- return new DeploymentCategoryProviderAbstract() {
- @Override
- public DeploymentCategory getDeploymentCategory() {
- return IsisContext.getDeploymentType().getDeploymentCategory();
- }
- };
- }
@Override
public TransactionStateProvider getTransactionStateProvider() {
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystem.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystem.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystem.java
index f40c58f..1d7fd00 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystem.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystem.java
@@ -34,6 +34,7 @@ import org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault;
import org.apache.isis.core.commons.components.ApplicationScopedComponent;
import org.apache.isis.core.commons.components.Noop;
import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.commons.debug.DebuggableWithTitle;
import org.apache.isis.core.commons.lang.ListExtensions;
import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
@@ -152,14 +153,14 @@ public class IsisSystem implements DebugSelection, ApplicationScopedComponent {
private IsisSessionFactory createSessionFactory(final DeploymentType deploymentType) throws IsisSystemException {
- final IsisConfiguration configuration = isisComponentProvider.getConfiguration();
+ final IsisConfigurationDefault configuration = isisComponentProvider.getConfiguration();
final List<Object> services = isisComponentProvider.provideServices();
ServicesInjectorSpi servicesInjectorSpi = new ServicesInjectorDefault(services);
servicesInjectorSpi.addFallbackIfRequired(FixtureScripts.class, new FixtureScriptsDefault());
servicesInjectorSpi.validateServices();
- final RuntimeContextFromSession runtimeContext = new RuntimeContextFromSession(configuration);
+ final RuntimeContextFromSession runtimeContext = new RuntimeContextFromSession(deploymentType.getDeploymentCategory(), configuration, servicesInjectorSpi);
final PersistenceSessionFactory persistenceSessionFactory =
isisComponentProvider.providePersistenceSessionFactory(deploymentType, servicesInjectorSpi, runtimeContext);
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
index 6c65f3d..ae281a1 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
@@ -47,6 +47,7 @@ import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.components.ApplicationScopedComponent;
import org.apache.isis.core.commons.components.SessionScopedComponent;
import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.commons.debug.DebugBuilder;
import org.apache.isis.core.commons.debug.DebuggableWithTitle;
import org.apache.isis.core.commons.ensure.Assert;
@@ -105,7 +106,6 @@ import org.apache.isis.core.runtime.persistence.adaptermanager.OidAdapterHashMap
import org.apache.isis.core.runtime.persistence.adaptermanager.PojoAdapterHashMap;
import org.apache.isis.core.runtime.persistence.adaptermanager.RootAndCollectionAdapters;
import org.apache.isis.core.runtime.persistence.container.DomainObjectContainerResolve;
-import org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession;
import org.apache.isis.core.runtime.persistence.objectstore.transaction.CreateObjectCommand;
import org.apache.isis.core.runtime.persistence.objectstore.transaction.DestroyObjectCommand;
import org.apache.isis.core.runtime.persistence.objectstore.transaction.PersistenceCommand;
@@ -157,7 +157,7 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
private final PersistenceSessionFactory persistenceSessionFactory;
private final PersistenceQueryFactory persistenceQueryFactory;
- private final IsisConfiguration configuration;
+ private final IsisConfigurationDefault configuration;
private final SpecificationLoaderSpi specificationLoader;
private final AuthenticationSession authenticationSession;
@@ -189,7 +189,7 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
*/
public PersistenceSession(
final PersistenceSessionFactory persistenceSessionFactory,
- final IsisConfiguration configuration,
+ final IsisConfigurationDefault configuration,
final SpecificationLoaderSpi specificationLoader,
final AuthenticationSession authenticationSession) {
@@ -215,8 +215,6 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
setState(State.NOT_INITIALIZED);
// to implement DomainObjectServices
- final Properties properties = RuntimeContextFromSession.applicationPropertiesFrom(configuration);
- setProperties(properties);
if (LOG.isDebugEnabled()) {
LOG.debug("creating " + this);
@@ -479,6 +477,13 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
return persistenceQueryProcessor.process((Q) persistenceQuery);
}
+ public IsisConfiguration getConfiguration() {
+ return configuration;
+ }
+
+ public OidMarshaller getOidMarshaller() {
+ return oidMarshaller;
+ }
//endregion
@@ -2238,29 +2243,23 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
throw new RecoverableException(message);
}
- private Properties properties;
- private void setProperties(final Properties properties) {
- this.properties = properties;
- }
+
+ //endregion
+
+ //region > ConfigurationService delegate
@Override
public String getProperty(final String name) {
- return properties.getProperty(name);
+ return configuration.getProperty(name);
}
@Override
public List<String> getPropertyNames() {
- final List<String> list = Lists.newArrayList();
- for (final Object key : properties.keySet()) {
- list.add((String) key);
- }
- return list;
+ return configuration.getPropertyNames();
}
//endregion
-
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
----------------------------------------------------------------------
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 bfe8c19..8f7ff1a 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
@@ -32,6 +32,7 @@ import org.apache.isis.applib.fixtures.FixtureClock;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.components.ApplicationScopedComponent;
import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
@@ -58,12 +59,6 @@ import org.apache.isis.objectstore.jdo.metamodel.facets.prop.primarykey.JdoPrima
import org.apache.isis.objectstore.jdo.metamodel.specloader.validator.JdoMetaModelValidator;
import org.apache.isis.objectstore.jdo.service.RegisterEntities;
-import static org.apache.isis.core.commons.ensure.Ensure.ensureThatState;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.not;
-import static org.hamcrest.CoreMatchers.notNullValue;
-import static org.hamcrest.CoreMatchers.nullValue;
-
public class PersistenceSessionFactory implements MetaModelRefiner,
SpecificationLoaderSpiAware, ApplicationScopedComponent, FixturesInstalledFlag {
@@ -72,7 +67,7 @@ public class PersistenceSessionFactory implements MetaModelRefiner,
//region > constructor
private final DeploymentType deploymentType;
- private final IsisConfiguration configuration;
+ private final IsisConfigurationDefault configuration;
private final ServicesInjectorSpi servicesInjector;
private final RuntimeContextFromSession runtimeContext;
@@ -82,7 +77,7 @@ public class PersistenceSessionFactory implements MetaModelRefiner,
public PersistenceSessionFactory(
final DeploymentType deploymentType,
final ServicesInjectorSpi servicesInjector,
- final IsisConfiguration isisConfiguration,
+ final IsisConfigurationDefault isisConfiguration,
final RuntimeContextFromSession runtimeContext) {
this.deploymentType = deploymentType;
this.configuration = isisConfiguration;
@@ -94,7 +89,7 @@ public class PersistenceSessionFactory implements MetaModelRefiner,
return deploymentType;
}
- public IsisConfiguration getConfiguration() {
+ public IsisConfigurationDefault getConfiguration() {
return configuration;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
index df29ed5..01b1253 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
@@ -85,16 +85,15 @@ import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFace
import org.apache.isis.core.metamodel.facets.object.audit.AuditableFacet;
import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
import org.apache.isis.core.metamodel.facets.object.publishedobject.PublishedObjectFacet;
-import org.apache.isis.core.metamodel.transactions.TransactionState;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
+import org.apache.isis.core.metamodel.transactions.TransactionState;
import org.apache.isis.core.runtime.persistence.PersistenceConstants;
import org.apache.isis.core.runtime.persistence.objectstore.transaction.CreateObjectCommand;
import org.apache.isis.core.runtime.persistence.objectstore.transaction.DestroyObjectCommand;
import org.apache.isis.core.runtime.persistence.objectstore.transaction.PersistenceCommand;
import org.apache.isis.core.runtime.persistence.objectstore.transaction.PublishingServiceWithDefaultPayloadFactories;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.TransactionalResource;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
@@ -234,7 +233,7 @@ public class IsisTransaction implements TransactionScopedComponent {
private static final Logger LOG = LoggerFactory.getLogger(IsisTransaction.class);
- private final TransactionalResource objectStore;
+ private final PersistenceSession persistenceSession;
private final List<PersistenceCommand> persistenceCommands = Lists.newArrayList();
private final IsisTransactionManager transactionManager;
private final MessageBroker messageBroker;
@@ -273,7 +272,7 @@ public class IsisTransaction implements TransactionScopedComponent {
public IsisTransaction(
final IsisTransactionManager transactionManager,
final MessageBroker messageBroker,
- final TransactionalResource objectStore,
+ final PersistenceSession persistenceSession,
final ServicesInjector servicesInjector) {
ensureThatArg(transactionManager, is(not(nullValue())), "transaction manager is required");
@@ -306,7 +305,7 @@ public class IsisTransaction implements TransactionScopedComponent {
this.state = State.IN_PROGRESS;
- this.objectStore = objectStore;
+ this.persistenceSession = persistenceSession;
if (LOG.isDebugEnabled()) {
LOG.debug("new transaction " + this);
}
@@ -1408,19 +1407,19 @@ public class IsisTransaction implements TransactionScopedComponent {
////////////////////////////////////////////////////////////////////////
- // Dependencies (from context)
+ // Dependencies (from constructor)
////////////////////////////////////////////////////////////////////////
protected OidMarshaller getOidMarshaller() {
- return IsisContext.getOidMarshaller();
+ return persistenceSession.getOidMarshaller();
}
protected IsisConfiguration getConfiguration() {
- return IsisContext.getConfiguration();
+ return persistenceSession.getConfiguration();
}
protected PersistenceSession getPersistenceSession() {
- return IsisContext.getPersistenceSession();
+ return persistenceSession;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
index 885a537..78e1e2d 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
@@ -39,7 +39,6 @@ import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.runtime.persistence.objectstore.transaction.PersistenceCommand;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.TransactionalResource;
import org.apache.isis.core.runtime.services.RequestScopedService;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
@@ -67,8 +66,6 @@ public class IsisTransactionManager implements SessionScopedComponent {
*/
private IsisTransaction transaction;
- private final TransactionalResource transactionalResource;
-
private final ServicesInjector servicesInjector;
@@ -80,7 +77,6 @@ public class IsisTransactionManager implements SessionScopedComponent {
final PersistenceSession persistenceSession,
final ServicesInjector servicesInjector) {
this.persistenceSession = persistenceSession;
- this.transactionalResource = persistenceSession;
this.servicesInjector = servicesInjector;
}
@@ -234,23 +230,23 @@ public class IsisTransactionManager implements SessionScopedComponent {
*/
protected final IsisTransaction createTransaction() {
MessageBroker messageBroker = createMessageBroker();
- return this.transaction = createTransaction(messageBroker, transactionalResource);
+ return this.transaction = createTransaction(messageBroker, persistenceSession);
}
/**
* The provided {@link org.apache.isis.core.commons.authentication.MessageBroker} is
* obtained from the {@link #createMessageBroker()} hook method.
- * @param transactionalResource
+ * @param persistenceSession
*
* @see #createMessageBroker()
*/
private IsisTransaction createTransaction(
final MessageBroker messageBroker,
- final TransactionalResource transactionalResource) {
+ final PersistenceSession persistenceSession) {
ensureThatArg(messageBroker, is(not(nullValue())));
- return new IsisTransaction(this, messageBroker, transactionalResource, servicesInjector);
+ return new IsisTransaction(this, messageBroker, persistenceSession, servicesInjector);
}
@@ -272,7 +268,7 @@ public class IsisTransactionManager implements SessionScopedComponent {
IsisTransaction isisTransaction = createTransaction();
transactionLevel = 0;
- transactionalResource.startTransaction();
+ persistenceSession.startTransaction();
startTransactionOnCommandIfConfigured(isisTransaction.getTransactionId());
}
@@ -476,7 +472,7 @@ public class IsisTransactionManager implements SessionScopedComponent {
if(abortCause == null) {
try {
- transactionalResource.endTransaction();
+ persistenceSession.endTransaction();
} catch(RuntimeException ex) {
// just in case any new exception was raised...
abortCause = ex;
@@ -527,7 +523,7 @@ public class IsisTransactionManager implements SessionScopedComponent {
if (getTransaction() != null) {
getTransaction().markAsAborted();
transactionLevel = 0;
- transactionalResource.abortTransaction();
+ persistenceSession.abortTransaction();
}
}
@@ -544,7 +540,7 @@ public class IsisTransactionManager implements SessionScopedComponent {
/**
* Overridable hook, used in
- * {@link #createTransaction(org.apache.isis.core.commons.authentication.MessageBroker, org.apache.isis.core.runtime.persistence.objectstore.transaction.TransactionalResource)}
+ * {@link #createTransaction(org.apache.isis.core.commons.authentication.MessageBroker, PersistenceSession)}
*
* <p> Called when a new {@link IsisTransaction} is created.
*/
@@ -556,10 +552,12 @@ public class IsisTransactionManager implements SessionScopedComponent {
// helpers
// ////////////////////////////////////////////////////////////////
+ // unused?
protected void ensureTransactionInProgress() {
ensureThatState(getTransaction() != null && !getTransaction().getState().isComplete(), is(true), "No transaction in progress");
}
+ // unused?
protected void ensureTransactionNotInProgress() {
ensureThatState(getTransaction() != null && !getTransaction().getState().isComplete(), is(false), "Transaction in progress");
}
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java
index 6699119..42a1cb0 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java
@@ -23,6 +23,7 @@ import java.util.Collection;
import java.util.List;
import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
@@ -41,7 +42,7 @@ public interface IsisComponentProvider {
DeploymentType getDeploymentType();
- IsisConfiguration getConfiguration();
+ IsisConfigurationDefault getConfiguration();
AuthenticationManager provideAuthenticationManager(DeploymentType deploymentType);
AuthorizationManager provideAuthorizationManager(final DeploymentType deploymentType);
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderAbstract.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderAbstract.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderAbstract.java
index 0f28adf..78ea3c3 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderAbstract.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderAbstract.java
@@ -19,7 +19,6 @@
package org.apache.isis.core.runtime.systemusinginstallers;
-import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -40,6 +39,7 @@ import org.apache.isis.applib.annotation.DomainService;
import org.apache.isis.applib.fixturescripts.FixtureScript;
import org.apache.isis.applib.services.classdiscovery.ClassDiscoveryServiceUsingReflections;
import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.commons.lang.ClassUtil;
import org.apache.isis.core.runtime.authentication.AuthenticationManager;
import org.apache.isis.core.runtime.authorization.AuthorizationManager;
@@ -66,7 +66,7 @@ public abstract class IsisComponentProviderAbstract implements IsisComponentProv
/**
* populated by subclass, in its constructor.
*/
- protected IsisConfiguration configuration;
+ protected IsisConfigurationDefault configuration;
/**
* populated by subclass, in its constructor.
*/
@@ -211,7 +211,7 @@ public abstract class IsisComponentProviderAbstract implements IsisComponentProv
}
@Override
- public IsisConfiguration getConfiguration() {
+ public IsisConfigurationDefault getConfiguration() {
return configuration;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java
index fad3876..d32ae01 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java
@@ -25,7 +25,7 @@ import org.slf4j.LoggerFactory;
import org.apache.isis.core.commons.components.Installer;
import org.apache.isis.core.commons.config.InstallerAbstract;
-import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
import org.apache.isis.core.runtime.installerregistry.installerapi.PersistenceMechanismInstaller;
@@ -69,7 +69,7 @@ public class DataNucleusPersistenceMechanismInstaller extends InstallerAbstract
public PersistenceSessionFactory createPersistenceSessionFactory(
final DeploymentType deploymentType,
final ServicesInjectorSpi servicesInjector,
- final IsisConfiguration configuration,
+ final IsisConfigurationDefault configuration,
final RuntimeContextFromSession runtimeContext) {
return new PersistenceSessionFactory(deploymentType, servicesInjector, configuration, runtimeContext);
http://git-wip-us.apache.org/repos/asf/isis/blob/40f1f04f/core/runtime/src/test/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionTest.java
index 9af17f9..57e8ffa 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionTest.java
@@ -32,10 +32,11 @@ import org.junit.Test;
import org.apache.isis.applib.services.audit.AuditingService3;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.authentication.MessageBroker;
-import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.version.Version;
import org.apache.isis.core.metamodel.app.IsisMetaModel;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
import org.apache.isis.core.metamodel.services.ServicesInjectorDefault;
import org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault;
@@ -94,14 +95,11 @@ public class PersistenceSessionTest {
private RuntimeContext mockRuntimeContext;
@Mock
- private IsisConfiguration mockConfiguration;
+ private IsisConfigurationDefault mockConfiguration;
@Mock
private MessageBroker mockMessageBroker;
- @Mock
- private OidGenerator mockOidGenerator;
-
private IsisMetaModel isisMetaModel;
@@ -138,7 +136,11 @@ public class PersistenceSessionTest {
}
});
- final RuntimeContextFromSession runtimeContext = new RuntimeContextFromSession(mockConfiguration);
+ final RuntimeContextFromSession runtimeContext =
+ new RuntimeContextFromSession(
+ DeploymentCategory.PRODUCTION,
+ mockConfiguration,
+ servicesInjector);
final DomainObjectContainerDefault container = new DomainObjectContainerDefault();
runtimeContext.injectInto(container);