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 2016/05/20 13:33:41 UTC
[06/51] [abbrv] isis git commit: ISIS-1406: refactoring
IsisConfigurationBuilder and IsisConfiguration (WIP)
ISIS-1406: refactoring IsisConfigurationBuilder and IsisConfiguration (WIP)
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/dcaab8ea
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/dcaab8ea
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/dcaab8ea
Branch: refs/heads/master
Commit: dcaab8ead2a2bf2fd64d1e55ca69dc43c3a7297e
Parents: 62f5ad7
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu May 19 09:41:30 2016 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu May 19 09:41:30 2016 +0100
----------------------------------------------------------------------
...IsisConfigurationBuilderResourceStreams.java | 39 ++++++++-
.../installerregistry/InstallerLookup.java | 92 +++-----------------
.../core/runtime/runner/IsisInjectModule.java | 46 +++-------
.../isis/core/runtime/runner/IsisRunner.java | 45 +++++++---
.../isis/core/runtime/system/IsisSystem.java | 3 +-
.../IsisComponentProviderDefault2.java | 2 +-
.../IsisComponentProviderUsingInstallers.java | 6 +-
.../core/webapp/IsisWebAppBootstrapper.java | 27 +++---
.../core/webapp/IsisWebAppBootstrapperUtil.java | 52 -----------
.../wicket/viewer/IsisWicketApplication.java | 13 ++-
.../core/webserver/WebServerBootstrapper.java | 2 -
11 files changed, 119 insertions(+), 208 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaab8ea/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 48c282e..695cfd9 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
@@ -105,12 +105,39 @@ public class IsisConfigurationBuilderResourceStreams implements IsisConfiguratio
configuration = new IsisConfigurationDefault(resourceStreamSource);
}
- /**
- * May be overridden by subclasses if required.
- */
public void addDefaultConfigurationResources() {
addConfigurationResource(ConfigurationConstants.DEFAULT_CONFIG_FILE, NotFoundPolicy.FAIL_FAST);
- addConfigurationResource(ConfigurationConstants.WEB_CONFIG_FILE, NotFoundPolicy.CONTINUE);
+ addConfigurationResource(ConfigurationConstants.WEB_CONFIG_FILE, NotFoundPolicy.CONTINUE); //web.properties
+ addConfigurationResource("war.properties", NotFoundPolicy.CONTINUE);
+
+ addConfigurationResource("viewer_wicket.properties", NotFoundPolicy.CONTINUE);
+ addConfigurationResource("viewer_restful.properties", NotFoundPolicy.CONTINUE);
+ addConfigurationResource("viewer_restfulobjects.properties", NotFoundPolicy.CONTINUE);
+
+ addConfigurationResource("persistor_datanucleus.properties", NotFoundPolicy.CONTINUE);
+ addConfigurationResource("persistor.properties", NotFoundPolicy.CONTINUE);
+
+ addConfigurationResource("authentication_shiro.properties", NotFoundPolicy.CONTINUE);
+ addConfigurationResource("authentication_bypass.properties", NotFoundPolicy.CONTINUE);
+ addConfigurationResource("authentication.properties", NotFoundPolicy.CONTINUE);
+
+ addConfigurationResource("authorization_shiro.properties", NotFoundPolicy.CONTINUE);
+ addConfigurationResource("authorization_bypass.properties", NotFoundPolicy.CONTINUE);
+ addConfigurationResource("authorization.properties", NotFoundPolicy.CONTINUE);
+
+ addConfigurationResource("reflector_java.properties", NotFoundPolicy.CONTINUE);
+ addConfigurationResource("reflector.properties", NotFoundPolicy.CONTINUE);
+
+ addConfigurationResource("fixtures-installer_configuration.properties", NotFoundPolicy.CONTINUE);
+ addConfigurationResource("fixtures-installer_noop.properties", NotFoundPolicy.CONTINUE);
+ addConfigurationResource("fixtures-installer.properties", NotFoundPolicy.CONTINUE);
+
+ addConfigurationResource("services-installer_annotation.properties", NotFoundPolicy.CONTINUE);
+ addConfigurationResource("services-installer_configuration.properties", NotFoundPolicy.CONTINUE);
+
+ addConfigurationResource("services-installer_configuration-and-annotation.properties", NotFoundPolicy.CONTINUE);
+ addConfigurationResource("services-installer.properties", NotFoundPolicy.CONTINUE);
+
}
// ////////////////////////////////////////////////////////////
@@ -174,6 +201,10 @@ public class IsisConfigurationBuilderResourceStreams implements IsisConfiguratio
*/
@Override
public synchronized IsisConfigurationDefault getConfiguration() {
+ if(!locked) {
+ lockConfiguration();
+ dumpResourcesToLog();
+ }
return configuration;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaab8ea/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 2124c1f..93c01c6 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
@@ -27,7 +27,6 @@ import java.util.ArrayList;
import java.util.List;
import com.google.common.collect.Lists;
-import com.google.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -35,10 +34,8 @@ import org.slf4j.LoggerFactory;
import org.apache.isis.core.commons.components.ApplicationScopedComponent;
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;
import org.apache.isis.core.commons.exceptions.IsisException;
@@ -90,15 +87,19 @@ import static org.hamcrest.CoreMatchers.nullValue;
* even if it has not been registered in <tt>installer-registry.properties</tt>
* : just specify the {@link Installer}'s fully qualified class name.
*/
-public class InstallerLookup implements InstallerRepository, ApplicationScopedComponent, IsisConfigurationBuilderAware, SystemDependencyInjector {
+public class InstallerLookup implements InstallerRepository, ApplicationScopedComponent, SystemDependencyInjector {
private static final Logger LOG = LoggerFactory.getLogger(InstallerLookup.class);
+ private final IsisConfigurationDefault isisConfiguration;
+
//region > Constructor
private final List<Installer> installerList = Lists.newArrayList();
- public InstallerLookup() {
+ public InstallerLookup(final IsisConfigurationDefault isisConfiguration) {
+ this.isisConfiguration = isisConfiguration;
+
final InputStream in = getInstallerRegistryStream(IsisInstallerRegistry.INSTALLER_REGISTRY_FILE);
final BufferedReader reader = new BufferedReader(new InputStreamReader(in));
try {
@@ -135,11 +136,14 @@ public class InstallerLookup implements InstallerRepository, ApplicationScopedCo
//endregion
+ //region > Configuration
+ public IsisConfigurationDefault getConfiguration() {
+ return isisConfiguration;
+ }
+ //endregion
+
//region > InstallerRepository impl.
- /**
- * This method (and only this method) may be called prior to {@link #init()
- * initialization}.
- */
+
@Override
public Installer[] getInstallers(final Class<?> cls) {
final List<Installer> list = new ArrayList<Installer>();
@@ -152,19 +156,6 @@ public class InstallerLookup implements InstallerRepository, ApplicationScopedCo
}
//endregion
- //region > init, shutdown
- public void init() {
- ensureDependenciesInjected();
- }
-
- private void ensureDependenciesInjected() {
- Ensure.ensureThatState(isisConfigurationBuilder, is(not(nullValue())));
- }
-
- public void shutdown() {
- // nothing to do.
- }
- //endregion
//region > metamodel
public ObjectReflectorInstaller reflectorInstaller(final String requested) {
@@ -216,7 +207,6 @@ public class InstallerLookup implements InstallerRepository, ApplicationScopedCo
Assert.assertNotNull("No name specified", implName);
for (final Installer installer : installerList) {
if (cls.isAssignableFrom(installer.getClass()) && installer.getName().equals(implName)) {
- mergeConfigurationFor(installer);
injectDependenciesInto(installer);
return (T) installer;
}
@@ -229,23 +219,6 @@ public class InstallerLookup implements InstallerRepository, ApplicationScopedCo
try {
final Installer installer = ObjectExtensions.asT(InstanceUtil.createInstance(implClassName));
if (installer != null) {
- mergeConfigurationFor(installer);
- injectDependenciesInto(installer);
- }
- return installer;
- } catch (final InstanceCreationException e) {
- throw new InstanceCreationException("Specification error in " + IsisInstallerRegistry.INSTALLER_REGISTRY_FILE, e);
- } catch (final UnavailableClassException e) {
- return null;
- }
- }
-
- @SuppressWarnings("unchecked")
- public <T extends Installer> T getInstaller(final Class<T> installerCls) {
- try {
- final T installer = (T) (InstanceUtil.createInstance(installerCls));
- if (installer != null) {
- mergeConfigurationFor(installer);
injectDependenciesInto(installer);
}
return installer;
@@ -292,28 +265,6 @@ public class InstallerLookup implements InstallerRepository, ApplicationScopedCo
}
//endregion
- //region > Configuration
- /**
- * Returns a <i>snapshot</i> of the current {@link IsisConfiguration}.
- *
- * <p>
- * The {@link IsisConfiguration} could subsequently be appended to if
- * further {@link Installer}s are loaded.
- */
- public IsisConfigurationDefault getConfiguration() {
- return isisConfigurationBuilder.getConfiguration();
- }
-
- public void mergeConfigurationFor(final Installer installer) {
- for (final String installerConfigResource : installer.getConfigurationResources()) {
- isisConfigurationBuilder.addConfigurationResource(installerConfigResource, NotFoundPolicy.CONTINUE);
- }
- }
-
- public void putConfigurationProperty(final String key, final String value) {
- isisConfigurationBuilder.put(key, value);
- }
- //endregion
//region > SystemDependencyInjector, Injectable
@Override
@@ -331,25 +282,8 @@ public class InstallerLookup implements InstallerRepository, ApplicationScopedCo
final InstallerLookupAware cast = InstallerLookupAware.class.cast(candidate);
cast.setInstallerLookup(this);
}
- isisConfigurationBuilder.injectInto(candidate);
}
//endregion
- //region > Dependencies (injected)
-
- /**
- * A mutable representation of the {@link IsisConfiguration configuration},
- * injected prior to {@link #init()}.
- *
- * @see #setConfigurationBuilder(IsisConfigurationBuilder)
- */
- private IsisConfigurationBuilder isisConfigurationBuilder;
-
- @Override
- @Inject
- public void setConfigurationBuilder(final IsisConfigurationBuilder configurationLoader) {
- this.isisConfigurationBuilder = configurationLoader;
- }
- //endregion
}
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaab8ea/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/IsisInjectModule.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/IsisInjectModule.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/IsisInjectModule.java
index e83a31f..efba9e8 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/IsisInjectModule.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/IsisInjectModule.java
@@ -25,8 +25,8 @@ import com.google.inject.Provides;
import com.google.inject.Singleton;
import org.apache.isis.applib.AppManifest;
-import org.apache.isis.core.commons.config.IsisConfigurationBuilder;
-import org.apache.isis.core.commons.config.IsisConfigurationBuilderDefault;
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.runtime.installerregistry.InstallerLookup;
import org.apache.isis.core.runtime.system.DeploymentType;
import org.apache.isis.core.runtime.system.IsisSystem;
@@ -36,31 +36,13 @@ public class IsisInjectModule extends AbstractModule {
private final DeploymentType deploymentType;
private final InstallerLookup installerLookup;
- private final IsisConfigurationBuilder isisConfigurationBuilder;
+ private final IsisConfiguration isisConfiguration;
- private static InstallerLookup defaultInstallerLookup() {
- return new InstallerLookup();
- }
-
- private static IsisConfigurationBuilderDefault defaultConfigurationBuilder() {
- return new IsisConfigurationBuilderDefault();
- }
-
- public IsisInjectModule(final DeploymentType deploymentType) {
- this(deploymentType, defaultConfigurationBuilder(), defaultInstallerLookup());
- }
-
- public IsisInjectModule(final DeploymentType deploymentType, final IsisConfigurationBuilder isisConfigurationBuilder) {
- this(deploymentType, isisConfigurationBuilder, defaultInstallerLookup());
- }
-
- public IsisInjectModule(final DeploymentType deploymentType, final InstallerLookup installerLookup) {
- this(deploymentType, defaultConfigurationBuilder(), installerLookup);
- }
-
- public IsisInjectModule(final DeploymentType deploymentType, final IsisConfigurationBuilder isisConfigurationBuilder, final InstallerLookup installerLookup) {
- this.installerLookup = installerLookup;
- this.isisConfigurationBuilder = isisConfigurationBuilder;
+ public IsisInjectModule(
+ final DeploymentType deploymentType,
+ final IsisConfigurationDefault isisConfiguration) {
+ this.installerLookup = new InstallerLookup(isisConfiguration);
+ this.isisConfiguration = isisConfiguration;
this.deploymentType = deploymentType;
}
@@ -80,8 +62,8 @@ public class IsisInjectModule extends AbstractModule {
@SuppressWarnings("unused")
@Provides
@Singleton
- private IsisConfigurationBuilder providesConfigurationBuilder() {
- return isisConfigurationBuilder;
+ private IsisConfiguration providesConfiguration() {
+ return isisConfiguration;
}
/**
@@ -91,17 +73,14 @@ public class IsisInjectModule extends AbstractModule {
@Provides
@Singleton
@Inject
- private InstallerLookup providesInstallerLookup(final IsisConfigurationBuilder configBuilder) {
- // wire up and initialize installer lookup
- configBuilder.injectInto(installerLookup);
- installerLookup.init();
+ private InstallerLookup providesInstallerLookup() {
return installerLookup;
}
@Override
protected void configure() {
requireBinding(DeploymentType.class);
- requireBinding(IsisConfigurationBuilder.class);
+ requireBinding(IsisConfiguration.class);
requireBinding(InstallerLookup.class);
bind(AppManifest.class).toInstance(IsisSystemFactory.APP_MANIFEST_NOOP);
}
@@ -117,6 +96,7 @@ public class IsisInjectModule extends AbstractModule {
final IsisSystemFactory systemFactory = new IsisSystemFactory(installerLookup);
final IsisSystem system = systemFactory.createSystem(deploymentType, appManifestIfAny);
+
// as a side-effect, if the metamodel turns out to be invalid, then
// this will push the MetaModelInvalidException into IsisContext.
system.init();
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaab8ea/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/IsisRunner.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/IsisRunner.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/IsisRunner.java
index 29f560e..b9d3364 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/IsisRunner.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/IsisRunner.java
@@ -22,22 +22,38 @@ package org.apache.isis.core.runtime.runner;
import java.io.File;
import java.util.Collections;
import java.util.List;
+
import com.google.common.base.Optional;
import com.google.common.collect.Lists;
import com.google.inject.Guice;
import com.google.inject.Injector;
-import org.apache.commons.cli.*;
+
+import org.apache.commons.cli.BasicParser;
+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.CommandLineParser;
+import org.apache.commons.cli.Options;
+import org.apache.commons.cli.ParseException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+
import org.apache.isis.core.commons.config.ConfigurationConstants;
import org.apache.isis.core.commons.config.IsisConfigurationBuilder;
import org.apache.isis.core.commons.config.IsisConfigurationBuilderDefault;
import org.apache.isis.core.commons.config.IsisConfigurationBuilderPrimer;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.runtime.installerregistry.InstallerLookup;
import org.apache.isis.core.runtime.logging.IsisLoggingConfigurer;
import org.apache.isis.core.runtime.optionhandler.BootPrinter;
import org.apache.isis.core.runtime.optionhandler.OptionHandler;
-import org.apache.isis.core.runtime.runner.opts.*;
+import org.apache.isis.core.runtime.runner.opts.OptionHandlerAdditionalProperty;
+import org.apache.isis.core.runtime.runner.opts.OptionHandlerAppManifest;
+import org.apache.isis.core.runtime.runner.opts.OptionHandlerConfiguration;
+import org.apache.isis.core.runtime.runner.opts.OptionHandlerDeploymentType;
+import org.apache.isis.core.runtime.runner.opts.OptionHandlerFixture;
+import org.apache.isis.core.runtime.runner.opts.OptionHandlerFixtureFromEnvironmentVariable;
+import org.apache.isis.core.runtime.runner.opts.OptionHandlerHelp;
+import org.apache.isis.core.runtime.runner.opts.OptionHandlerSystemProperties;
+import org.apache.isis.core.runtime.runner.opts.OptionHandlerVersion;
import org.apache.isis.core.runtime.runner.opts.OptionValidator;
import org.apache.isis.core.runtime.system.DeploymentType;
@@ -49,13 +65,14 @@ public class IsisRunner {
private final String[] args;
private final OptionHandlerDeploymentType optionHandlerDeploymentType;
- private final InstallerLookup installerLookup;
private final List<OptionHandler> optionHandlers = Lists.newArrayList();
private final List<OptionValidator> validators = Lists.newArrayList();
+
private IsisConfigurationBuilder isisConfigurationBuilder;
+ private InstallerLookup installerLookup;
- private Injector globalInjector;;
+ private Injector globalInjector;
// ///////////////////////////////////////////////////////////////////////////////////////
// Construction and adjustments
@@ -67,9 +84,8 @@ public class IsisRunner {
// setup logging immediately
loggingConfigurer.configureLogging(determineConfigDirectory(), args);
- this.installerLookup = new InstallerLookup();
- addStandardOptionHandlersAndValidators(this.installerLookup);
+ addStandardOptionHandlersAndValidators();
}
// REVIEW is this something that IsisConfigBuilder should know about?
@@ -121,6 +137,8 @@ public class IsisRunner {
*/
public void setConfigurationBuilder(final IsisConfigurationBuilder isisConfigurationBuilder) {
this.isisConfigurationBuilder = isisConfigurationBuilder;
+ this.installerLookup = new InstallerLookup(isisConfigurationBuilder.getConfiguration());
+
}
// ///////////////////////////////////////////////////////////////////////////////////////
@@ -201,15 +219,18 @@ public class IsisRunner {
final DeploymentType deploymentType = optionHandlerDeploymentType.getDeploymentType();
- this.globalInjector = createGuiceInjector(deploymentType, isisConfigurationBuilder, installerLookup, optionHandlers);
+ IsisConfigurationDefault isisConfiguration = isisConfigurationBuilder.getConfiguration();
+
+ this.globalInjector = createGuiceInjector(deploymentType, isisConfiguration);
bootstrapper.bootstrap(globalInjector);
- isisConfigurationBuilder.lockConfiguration();
- isisConfigurationBuilder.dumpResourcesToLog();
}
- private Injector createGuiceInjector(final DeploymentType deploymentType, final IsisConfigurationBuilder isisConfigurationBuilder, final InstallerLookup installerLookup, final List<OptionHandler> optionHandlers) {
- final IsisInjectModule isisModule = new IsisInjectModule(deploymentType, isisConfigurationBuilder, installerLookup);
+ private Injector createGuiceInjector(
+ final DeploymentType deploymentType,
+ final IsisConfigurationDefault isisConfiguration) {
+ final IsisInjectModule isisModule =
+ new IsisInjectModule(deploymentType, isisConfiguration);
return Guice.createInjector(isisModule);
}
@@ -221,7 +242,7 @@ public class IsisRunner {
return Collections.unmodifiableList(optionHandlers);
}
- private void addStandardOptionHandlersAndValidators(final InstallerLookup installerLookup) {
+ private void addStandardOptionHandlersAndValidators() {
addOptionHandler(optionHandlerDeploymentType);
addOptionHandler(new OptionHandlerConfiguration());
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaab8ea/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 45a6e90..04b2f5c 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
@@ -145,7 +145,8 @@ public class IsisSystem implements ApplicationScopedComponent {
try {
// configuration
- final IsisConfigurationDefault configuration = isisComponentProvider.getConfiguration();
+ // TODO: HACKY
+ final IsisConfigurationDefault configuration = (IsisConfigurationDefault) isisComponentProvider.getConfiguration();
// services
ServicesInjectorDefault servicesInjector = isisComponentProvider.provideServiceInjector();
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaab8ea/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderDefault2.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderDefault2.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderDefault2.java
index 3b8671f..159e2ac 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderDefault2.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderDefault2.java
@@ -121,7 +121,7 @@ public class IsisComponentProviderDefault2 extends IsisComponentProviderAbstract
@Override
protected void doPutConfigurationProperty(final String key, final String value) {
// bit hacky :-(
- IsisConfigurationDefault configurationDefault = this.configuration;
+ IsisConfigurationDefault configurationDefault = (IsisConfigurationDefault) this.configuration;
configurationDefault.put(key, value);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaab8ea/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderUsingInstallers.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderUsingInstallers.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderUsingInstallers.java
index 2c99632..9d00f39 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderUsingInstallers.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderUsingInstallers.java
@@ -24,6 +24,8 @@ import java.util.List;
import org.apache.isis.applib.AppManifest;
import org.apache.isis.applib.fixturescripts.FixtureScript;
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.commons.factory.InstanceUtil;
import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
@@ -107,7 +109,6 @@ public class IsisComponentProviderUsingInstallers extends IsisComponentProviderA
reflectorInstaller = this.installerLookup.reflectorInstaller(
configProperty(SystemConstants.REFLECTOR_KEY));
-
// ensure we were able to load all components via InstallerLookup (fail fast)
ensureThatState(authenticationInstaller, is(not(nullValue())),
"authenticationInstaller could not be looked up");
@@ -150,7 +151,8 @@ public class IsisComponentProviderUsingInstallers extends IsisComponentProviderA
}
protected void doPutConfigurationProperty(final String key, final String value) {
- this.installerLookup.putConfigurationProperty(key, value);
+ IsisConfigurationDefault configuration = (IsisConfigurationDefault) this.installerLookup.getConfiguration();
+ configuration.put(key, value);
}
//endregion
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaab8ea/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java
index e989fb4..cfcab14 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java
@@ -35,6 +35,7 @@ import org.slf4j.LoggerFactory;
import org.apache.isis.core.commons.config.IsisConfigurationBuilder;
import org.apache.isis.core.commons.config.IsisConfigurationBuilderPrimer;
import org.apache.isis.core.commons.config.IsisConfigurationBuilderResourceStreams;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.commons.config.NotFoundPolicy;
import org.apache.isis.core.commons.resource.ResourceStreamSourceComposite;
import org.apache.isis.core.commons.resource.ResourceStreamSourceContextLoaderClassPath;
@@ -106,21 +107,20 @@ public class IsisWebAppBootstrapper implements ServletContextListener {
final DeploymentType deploymentType = determineDeploymentType(isisConfigurationBuilder, servletContext);
- addConfigurationResourcesForWebApps(isisConfigurationBuilder);
addConfigurationResourcesForDeploymentType(isisConfigurationBuilder, deploymentType);
- IsisWebAppBootstrapperUtil.addConfigurationResourcesForViewers(isisConfigurationBuilder, servletContext);
isisConfigurationBuilder.add(WebAppConstants.WEB_APP_DIR, webappDir);
+
isisConfigurationBuilder.add(SystemConstants.NOSPLASH_KEY, "true");
- final InstallerLookup installerLookup = new InstallerLookup();
+ IsisConfigurationDefault isisConfiguration = isisConfigurationBuilder.getConfiguration();
+
+ final InstallerLookup installerLookup = new InstallerLookup(isisConfiguration);
- injector = createGuiceInjector(isisConfigurationBuilder, deploymentType, installerLookup);
+ injector = createGuiceInjector(isisConfiguration, deploymentType);
final IsisSystem system = injector.getInstance(IsisSystem.class);
- isisConfigurationBuilder.lockConfiguration();
- isisConfigurationBuilder.dumpResourcesToLog();
servletContext.setAttribute(WebAppConstants.ISIS_SYSTEM_KEY, system);
} catch (final RuntimeException e) {
@@ -131,10 +131,9 @@ public class IsisWebAppBootstrapper implements ServletContextListener {
}
private Injector createGuiceInjector(
- final IsisConfigurationBuilder isisConfigurationBuilder,
- final DeploymentType deploymentType,
- final InstallerLookup installerLookup) {
- final IsisInjectModule isisModule = new IsisInjectModule(deploymentType, isisConfigurationBuilder, installerLookup);
+ final IsisConfigurationDefault isisConfiguration,
+ final DeploymentType deploymentType) {
+ final IsisInjectModule isisModule = new IsisInjectModule(deploymentType, isisConfiguration);
return Guice.createInjector(isisModule);
}
@@ -163,7 +162,9 @@ public class IsisWebAppBootstrapper implements ServletContextListener {
* <p>
* If no setting is found, defaults to {@link WebAppConstants#DEPLOYMENT_TYPE_DEFAULT}.
*/
- private DeploymentType determineDeploymentType(final IsisConfigurationBuilder isisConfigurationBuilder, final ServletContext servletContext) {
+ private DeploymentType determineDeploymentType(
+ final IsisConfigurationBuilder isisConfigurationBuilder,
+ final ServletContext servletContext) {
String deploymentTypeStr = servletContext.getInitParameter(WebAppConstants.DEPLOYMENT_TYPE_KEY);
if (deploymentTypeStr == null) {
deploymentTypeStr = servletContext.getInitParameter(SystemConstants.DEPLOYMENT_TYPE_KEY);
@@ -184,10 +185,6 @@ public class IsisWebAppBootstrapper implements ServletContextListener {
configurationLoader.addConfigurationResource(resourceName, NotFoundPolicy.CONTINUE);
}
- private static void addConfigurationResourcesForWebApps(final IsisConfigurationBuilder configurationLoader) {
- configurationLoader.addConfigurationResource("web.properties", NotFoundPolicy.CONTINUE);
- configurationLoader.addConfigurationResource("war.properties", NotFoundPolicy.CONTINUE);
- }
// /////////////////////////////////////////////////////
// Destroy
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaab8ea/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapperUtil.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapperUtil.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapperUtil.java
deleted file mode 100644
index d859b56..0000000
--- a/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapperUtil.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.isis.core.webapp;
-
-import javax.servlet.ServletContext;
-
-import org.apache.isis.core.commons.config.IsisConfigurationBuilder;
-import org.apache.isis.core.commons.config.NotFoundPolicy;
-
-
-/**
- * Factored out of {@link IsisWebAppBootstrapper} in order that can
- * be reused by other bootstrappers (eg the wicket viewer's
- * <tt>IsisWicketApplication</tt>).
- */
-public final class IsisWebAppBootstrapperUtil {
-
- private IsisWebAppBootstrapperUtil(){}
-
- public static void addConfigurationResourcesForViewers(final IsisConfigurationBuilder configurationLoader, final ServletContext servletContext) {
- addConfigurationResourcesForContextParam(configurationLoader, servletContext, "isis.viewers");
- addConfigurationResourcesForContextParam(configurationLoader, servletContext, "isis.viewer");
- }
-
- private static void addConfigurationResourcesForContextParam(final IsisConfigurationBuilder configurationLoader, final ServletContext servletContext, final String name) {
- final String viewers = servletContext.getInitParameter(name);
- if (viewers == null) {
- return;
- }
- for (final String viewer : viewers.split(",")) {
- configurationLoader.addConfigurationResource("viewer_" + viewer + ".properties", NotFoundPolicy.CONTINUE);
- }
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaab8ea/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index 9781237..09ec550 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -64,6 +64,7 @@ import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.config.IsisConfigurationBuilder;
import org.apache.isis.core.commons.config.IsisConfigurationBuilderPrimer;
import org.apache.isis.core.commons.config.IsisConfigurationBuilderResourceStreams;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.commons.resource.ResourceStreamSourceComposite;
import org.apache.isis.core.commons.resource.ResourceStreamSourceContextLoaderClassPath;
import org.apache.isis.core.commons.resource.ResourceStreamSourceCurrentClassClassPath;
@@ -77,7 +78,6 @@ import org.apache.isis.core.runtime.runner.opts.OptionHandlerInitParameters;
import org.apache.isis.core.runtime.system.DeploymentType;
import org.apache.isis.core.runtime.system.IsisSystem;
import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.core.webapp.IsisWebAppBootstrapperUtil;
import org.apache.isis.core.webapp.WebAppConstants;
import org.apache.isis.core.webapp.config.ResourceStreamSourceForWebInf;
import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
@@ -253,8 +253,9 @@ public class IsisWicketApplication
requestCycleListeners.add(new PageRequestHandlerTracker());
final IsisConfigurationBuilder isisConfigurationBuilder = createConfigBuilder();
-
- final IsisInjectModule isisModule = newIsisModule(deploymentType, isisConfigurationBuilder);
+ final IsisConfigurationDefault configuration = isisConfigurationBuilder.getConfiguration();
+
+ final IsisInjectModule isisModule = newIsisModule(deploymentType, configuration);
final Injector injector = Guice.createInjector(isisModule, newIsisWicketModule());
initWicketComponentInjection(injector);
injector.injectMembers(this);
@@ -264,7 +265,6 @@ public class IsisWicketApplication
webRequestCycleForIsis.setPageClassRegistry(pageClassRegistry);
}
- final IsisConfiguration configuration = isisConfigurationBuilder.getConfiguration();
this.getMarkupSettings().setStripWicketTags(determineStripWicketTags(configuration));
getDebugSettings().setAjaxDebugModeEnabled(determineAjaxDebugModeEnabled(configuration));
@@ -452,7 +452,6 @@ public class IsisWicketApplication
primeConfigurationBuilder(configurationBuilder, servletContext);
configurationBuilder.addDefaultConfigurationResources();
- IsisWebAppBootstrapperUtil.addConfigurationResourcesForViewers(configurationBuilder, servletContext);
return configurationBuilder;
}
@@ -694,8 +693,8 @@ public class IsisWicketApplication
return deploymentType.getConfigurationType();
}
- protected IsisInjectModule newIsisModule(final DeploymentType deploymentType, final IsisConfigurationBuilder isisConfigurationBuilder) {
- return new IsisInjectModule(deploymentType, isisConfigurationBuilder);
+ protected IsisInjectModule newIsisModule(final DeploymentType deploymentType, final IsisConfigurationDefault isisConfiguration) {
+ return new IsisInjectModule(deploymentType, isisConfiguration);
}
// //////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaab8ea/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServerBootstrapper.java
----------------------------------------------------------------------
diff --git a/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServerBootstrapper.java b/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServerBootstrapper.java
index 999f75c..ee6e5f4 100644
--- a/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServerBootstrapper.java
+++ b/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServerBootstrapper.java
@@ -24,7 +24,6 @@ import java.util.Map;
import com.google.inject.Injector;
-import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;
import org.slf4j.Logger;
@@ -78,7 +77,6 @@ final class WebServerBootstrapper implements IsisBootstrapper {
// TODO get and use the address
jettyServer = new Server(port);
- Connector[] connectors = jettyServer.getConnectors();
final WebAppContext context = new WebAppContext(SRC_MAIN_WEBAPP, webappContextPath);
copyConfigurationPrimersIntoServletContext(context);