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/08/07 12:11:40 UTC
[13/17] isis git commit: ISIS-848: provide the ability to specify the
AppManifest programmatically within the IsisWicketApplication subclass.
ISIS-848: provide the ability to specify the AppManifest programmatically within the IsisWicketApplication subclass.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/b286e57a
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/b286e57a
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/b286e57a
Branch: refs/heads/master
Commit: b286e57af2d0a55e78b3418a4d8de69d1620fb06
Parents: 0778019
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Aug 7 10:30:18 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Aug 7 10:30:18 2015 +0100
----------------------------------------------------------------------
.../IsisComponentProviderDefault.java | 10 +--
.../core/runtime/runner/IsisInjectModule.java | 12 +++-
.../core/runtime/system/IsisSystemFactory.java | 3 +-
.../IsisComponentProviderAbstract.java | 14 ++++
.../IsisComponentProviderUsingInstallers.java | 21 ++++--
.../IsisSystemThatUsesInstallersFactory.java | 5 +-
.../viewer/wicket/viewer/IsisWicketModule.java | 4 +-
.../domainapp/webapp/SimpleApplication.java | 60 ++---------------
.../src/main/webapp/WEB-INF/isis.properties | 69 ++++++++++----------
9 files changed, 91 insertions(+), 107 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/b286e57a/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 343306e..5f8b9c1 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
@@ -53,7 +53,6 @@ import org.apache.isis.core.runtime.services.ServicesInstallerFromConfiguration;
import org.apache.isis.core.runtime.services.ServicesInstallerFromConfigurationAndAnnotation;
import org.apache.isis.core.runtime.system.DeploymentType;
import org.apache.isis.core.runtime.system.IsisSystemException;
-import org.apache.isis.core.runtime.system.SystemConstants;
import org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory;
import org.apache.isis.core.runtime.systemusinginstallers.IsisComponentProviderAbstract;
import org.apache.isis.core.runtime.transaction.facetdecorator.standard.StandardTransactionFacetDecorator;
@@ -82,14 +81,9 @@ public class IsisComponentProviderDefault extends IsisComponentProviderAbstract
final String fixtureClassNamesCsv;
if(appManifest != null) {
- specifyServicesAndRegisteredEntitiesUsing(appManifest);
+ putAppManifestKey();
- // required to prevent RegisterEntities validation from complaining
- // if it can't find any @PersistenceCapable entities in a module
- // that contains only services.
- putConfigurationProperty(
- SystemConstants.APP_MANIFEST_KEY, appManifestIfAny.getClass().getName()
- );
+ specifyServicesAndRegisteredEntitiesUsing(appManifest);
List<Class<? extends FixtureScript>> fixtureClasses = appManifest.getFixtures();
fixtureClassNamesCsv = classNamesFrom(fixtureClasses);
http://git-wip-us.apache.org/repos/asf/isis/blob/b286e57a/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 bdf5932..c963b91 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
@@ -20,11 +20,16 @@
package org.apache.isis.core.runtime.runner;
import java.util.List;
+
+import javax.annotation.Nullable;
+
import com.google.common.collect.Lists;
import com.google.inject.AbstractModule;
import com.google.inject.Inject;
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.runtime.installerregistry.InstallerLookup;
@@ -128,8 +133,11 @@ public class IsisInjectModule extends AbstractModule {
@Provides
@Inject
@Singleton
- protected IsisSystem provideIsisSystem(final DeploymentType deploymentType, final IsisSystemFactory systemFactory) {
- final IsisSystem system = systemFactory.createSystem(deploymentType);
+ protected IsisSystem provideIsisSystem(
+ final DeploymentType deploymentType,
+ final IsisSystemFactory systemFactory,
+ @Nullable final AppManifest appManifestIfAny) {
+ final IsisSystem system = systemFactory.createSystem(deploymentType, appManifestIfAny);
system.init();
return system;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b286e57a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystemFactory.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystemFactory.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystemFactory.java
index bac99bc..cd39b87 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystemFactory.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystemFactory.java
@@ -19,6 +19,7 @@
package org.apache.isis.core.runtime.system;
+import org.apache.isis.applib.AppManifest;
import org.apache.isis.core.commons.components.ApplicationScopedComponent;
/**
@@ -26,6 +27,6 @@ import org.apache.isis.core.commons.components.ApplicationScopedComponent;
*/
public interface IsisSystemFactory extends ApplicationScopedComponent {
- IsisSystem createSystem(final DeploymentType deploymentType);
+ IsisSystem createSystem(final DeploymentType deploymentType, final AppManifest appManifestIfAny);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b286e57a/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 a662371..4c4e75e 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
@@ -37,6 +37,7 @@ import org.apache.isis.core.runtime.fixtures.FixturesInstaller;
import org.apache.isis.core.runtime.services.ServicesInstallerFromAnnotation;
import org.apache.isis.core.runtime.services.ServicesInstallerFromConfiguration;
import org.apache.isis.core.runtime.system.DeploymentType;
+import org.apache.isis.core.runtime.system.SystemConstants;
import org.apache.isis.objectstore.jdo.service.RegisterEntities;
import static org.apache.isis.core.commons.ensure.Ensure.ensureThatState;
@@ -79,6 +80,19 @@ public abstract class IsisComponentProviderAbstract implements IsisComponentProv
this.deploymentType = deploymentType;
this.appManifest = appManifest;
+
+ }
+
+ protected void putAppManifestKey() {
+ if (this.appManifest == null) {
+ return;
+ }
+ // required to prevent RegisterEntities validation from complaining
+ // if it can't find any @PersistenceCapable entities in a module
+ // that contains only services.
+ putConfigurationProperty(
+ SystemConstants.APP_MANIFEST_KEY, this.appManifest.getClass().getName()
+ );
}
/**
http://git-wip-us.apache.org/repos/asf/isis/blob/b286e57a/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 e0fd90e..d1d58a7 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
@@ -57,8 +57,9 @@ public class IsisComponentProviderUsingInstallers extends IsisComponentProviderA
public IsisComponentProviderUsingInstallers(
final DeploymentType deploymentType,
+ final AppManifest appManifestIfAny,
final InstallerLookup installerLookup) {
- super(deploymentType, appManifestIfAny(installerLookup));
+ super(deploymentType, appManifestIfAny(appManifestIfAny, installerLookup));
ensureThatArg(deploymentType, is(not(nullValue())));
ensureThatArg(installerLookup, is(not(nullValue())));
@@ -67,6 +68,8 @@ public class IsisComponentProviderUsingInstallers extends IsisComponentProviderA
if(appManifest != null) {
+ putAppManifestKey();
+
specifyServicesAndRegisteredEntitiesUsing(appManifest);
putConfigurationProperty(SystemConstants.SERVICES_INSTALLER_KEY, ServicesInstallerFromConfigurationAndAnnotation.NAME);
@@ -141,9 +144,19 @@ public class IsisComponentProviderUsingInstallers extends IsisComponentProviderA
ensureInitialized();
}
- private static AppManifest appManifestIfAny(final InstallerLookup installerLookup) {
- final String appManifestIfAny = installerLookup.getConfiguration().getString(SystemConstants.APP_MANIFEST_KEY);
- return appManifestIfAny != null? InstanceUtil.createInstance(appManifestIfAny, AppManifest.class): null;
+ /**
+ * If an {@link AppManifest} was explicitly provided (eg from the Guice <tt>IsisWicketModule</tt> when running
+ * unde the Wicket viewer) then use that; otherwise read the <tt>isis.properties</tt> config file and look
+ * for an <tt>isis.appManifest</tt> entry instead.
+ */
+ private static AppManifest appManifestIfAny(
+ final AppManifest appManifestFromConstructor,
+ final InstallerLookup installerLookup) {
+ if(appManifestFromConstructor != null) {
+ return appManifestFromConstructor;
+ }
+ final String appManifestFromConfiguration = installerLookup.getConfiguration().getString(SystemConstants.APP_MANIFEST_KEY);
+ return appManifestFromConfiguration != null? InstanceUtil.createInstance(appManifestFromConfiguration, AppManifest.class): null;
}
protected void doPutConfigurationProperty(final String key, final String value) {
http://git-wip-us.apache.org/repos/asf/isis/blob/b286e57a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisSystemThatUsesInstallersFactory.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisSystemThatUsesInstallersFactory.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisSystemThatUsesInstallersFactory.java
index f0160ff..a668624 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisSystemThatUsesInstallersFactory.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisSystemThatUsesInstallersFactory.java
@@ -21,6 +21,7 @@ package org.apache.isis.core.runtime.systemusinginstallers;
import com.google.inject.Inject;
+import org.apache.isis.applib.AppManifest;
import org.apache.isis.core.runtime.installerregistry.InstallerLookup;
import org.apache.isis.core.runtime.system.DeploymentType;
import org.apache.isis.core.runtime.system.IsisSystem;
@@ -52,9 +53,9 @@ public class IsisSystemThatUsesInstallersFactory implements IsisSystemFactory {
//endregion
@Override
- public IsisSystem createSystem(final DeploymentType deploymentType) {
+ public IsisSystem createSystem(final DeploymentType deploymentType, final AppManifest appManifestIfAny) {
IsisComponentProviderUsingInstallers componentProvider =
- new IsisComponentProviderUsingInstallers(deploymentType, installerLookup);
+ new IsisComponentProviderUsingInstallers(deploymentType, appManifestIfAny, installerLookup);
return new IsisSystem(componentProvider);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b286e57a/core/viewer-wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java b/core/viewer-wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java
index 4d3ae8d..12ea8b6 100644
--- a/core/viewer-wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java
+++ b/core/viewer-wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java
@@ -22,10 +22,11 @@ package org.apache.isis.viewer.wicket.viewer;
import com.google.inject.AbstractModule;
import com.google.inject.name.Names;
import com.google.inject.util.Providers;
+
import org.apache.isis.applib.services.email.EmailService;
import org.apache.isis.applib.services.userreg.EmailNotificationService;
-import org.apache.isis.core.runtime.services.userreg.EmailNotificationServiceDefault;
import org.apache.isis.core.runtime.services.email.EmailServiceDefault;
+import org.apache.isis.core.runtime.services.userreg.EmailNotificationServiceDefault;
import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistrar;
@@ -62,6 +63,7 @@ import org.apache.isis.viewer.wicket.viewer.settings.WicketViewerSettingsDefault
* bind(String.class).annotatedWith(Names.named("applicationJs")).toInstance("scripts/application.js");
* bind(String.class).annotatedWith(Names.named("welcomeMessage")).toInstance("Hello, welcome to my app");
* bind(String.class).annotatedWith(Names.named("aboutMessage")).toInstance("MyApp v1.0.0");
+ * bind(AppManifest.class).toInstance(new MyAppManifest());
* }
* };
* final Module overridden = Modules.override(isisDefaults).with(myAppOverrides);
http://git-wip-us.apache.org/repos/asf/isis/blob/b286e57a/example/application/simpleapp/webapp/src/main/java/domainapp/webapp/SimpleApplication.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/java/domainapp/webapp/SimpleApplication.java b/example/application/simpleapp/webapp/src/main/java/domainapp/webapp/SimpleApplication.java
index 57d1e0b..35a8984 100644
--- a/example/application/simpleapp/webapp/src/main/java/domainapp/webapp/SimpleApplication.java
+++ b/example/application/simpleapp/webapp/src/main/java/domainapp/webapp/SimpleApplication.java
@@ -23,8 +23,6 @@ import java.io.InputStream;
import java.nio.charset.Charset;
import java.util.List;
-import javax.servlet.http.HttpServletRequest;
-
import com.google.common.base.Joiner;
import com.google.common.io.Resources;
import com.google.inject.AbstractModule;
@@ -33,20 +31,14 @@ import com.google.inject.name.Names;
import com.google.inject.util.Modules;
import com.google.inject.util.Providers;
-import org.apache.wicket.Session;
-import org.apache.wicket.request.IRequestParameters;
-import org.apache.wicket.request.Request;
-import org.apache.wicket.request.Response;
-import org.apache.wicket.request.http.WebRequest;
-
+import org.apache.isis.applib.AppManifest;
import org.apache.isis.viewer.wicket.viewer.IsisWicketApplication;
-import org.apache.isis.viewer.wicket.viewer.integration.wicket.AuthenticatedWebSessionForIsis;
import de.agilecoders.wicket.core.Bootstrap;
import de.agilecoders.wicket.core.settings.IBootstrapSettings;
import de.agilecoders.wicket.themes.markup.html.bootswatch.BootswatchTheme;
import de.agilecoders.wicket.themes.markup.html.bootswatch.BootswatchThemeProvider;
-
+import domainapp.home.SimpleAppManifest;
/**
* As specified in <tt>web.xml</tt>.
@@ -69,16 +61,6 @@ public class SimpleApplication extends IsisWicketApplication {
private static final long serialVersionUID = 1L;
- /**
- * uncomment for a (slightly hacky) way of allowing logins using query args, eg:
- *
- * <tt>?user=sven&pass=pass</tt>
- *
- * <p>
- * for demos only, obvious.
- */
- private final static boolean DEMO_MODE_USING_CREDENTIALS_AS_QUERYARGS = false;
-
@Override
protected void init() {
@@ -89,39 +71,6 @@ public class SimpleApplication extends IsisWicketApplication {
}
@Override
- public Session newSession(final Request request, final Response response) {
- if(!DEMO_MODE_USING_CREDENTIALS_AS_QUERYARGS) {
- return super.newSession(request, response);
- }
-
- // else demo mode
- final AuthenticatedWebSessionForIsis s = (AuthenticatedWebSessionForIsis) super.newSession(request, response);
- IRequestParameters requestParameters = request.getRequestParameters();
- final org.apache.wicket.util.string.StringValue user = requestParameters.getParameterValue("user");
- final org.apache.wicket.util.string.StringValue password = requestParameters.getParameterValue("pass");
- s.signIn(user.toString(), password.toString());
- return s;
- }
-
- @Override
- public WebRequest newWebRequest(HttpServletRequest servletRequest, String filterPath) {
- if(!DEMO_MODE_USING_CREDENTIALS_AS_QUERYARGS) {
- return super.newWebRequest(servletRequest, filterPath);
- }
-
- // else demo mode
- try {
- String uname = servletRequest.getParameter("user");
- if (uname != null) {
- servletRequest.getSession().invalidate();
- }
- } catch (Exception e) {
- }
- WebRequest request = super.newWebRequest(servletRequest, filterPath);
- return request;
- }
-
- @Override
protected Module newIsisWicketModule() {
final Module isisDefaults = super.newIsisWicketModule();
@@ -133,7 +82,10 @@ public class SimpleApplication extends IsisWicketApplication {
bind(String.class).annotatedWith(Names.named("applicationJs")).toInstance("scripts/application.js");
bind(String.class).annotatedWith(Names.named("welcomeMessage")).toInstance(readLines(getClass(), "welcome.html"));
bind(String.class).annotatedWith(Names.named("aboutMessage")).toInstance("Simple App");
- bind(InputStream.class).annotatedWith(Names.named("metaInfManifest")).toProvider(Providers.of(getServletContext().getResourceAsStream("/META-INF/MANIFEST.MF")));
+ bind(InputStream.class).annotatedWith(Names.named("metaInfManifest")).toProvider(
+ Providers.of(getServletContext().getResourceAsStream("/META-INF/MANIFEST.MF")));
+ // if uncommented, then overrides isis.appManifest in config file.
+ // bind(AppManifest.class).toInstance(new SimpleAppManifest());
}
};
http://git-wip-us.apache.org/repos/asf/isis/blob/b286e57a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties
index 4184589..1ce1f41 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties
@@ -22,6 +22,13 @@
#
#################################################################################
+#
+# Specify the modules (= entities + services) and other components that make up
+# this application.
+#
+# alternatively, can provide the AppManifest programmatically by overriding
+# IsisWicketApplication#newIsisWicketModule()
+#
isis.appManifest=domainapp.home.SimpleAppManifest
#isis.appManifest=domainapp.home.SimpleAppManifestBypassSecurity
@@ -29,8 +36,6 @@ isis.appManifest=domainapp.home.SimpleAppManifest
-
-
#################################################################################
#
# MetaModel
@@ -66,14 +71,13 @@ isis.appManifest=domainapp.home.SimpleAppManifest
isis.reflector.validator.allowDeprecated=false
-
#
-# Implementation to use for reading dynamic layout. Default implementation reads Xxx.layout.json files from classpath.
+# Implementation to use for reading dynamic layout.
+# Default implementation reads Xxx.layout.json files from classpath.
#
#isis.reflector.layoutMetadataReaders=org.apache.isis.core.metamodel.layoutmetadata.json.LayoutMetadataReaderFromJson
-
#
# patterns for applying CssClassFa facet (font-awesome icons), matching on action names
#
@@ -112,25 +116,10 @@ isis.reflector.facet.cssClass.patterns=\
#################################################################################
#
-# Value facet defaults
-#
-# (see also viewer-specific config files, eg viewer_wicket.properties)
+# Domain Service configuration
#
#################################################################################
-# as used by @Title of a date
-isis.value.format.date=dd-MM-yyyy
-
-
-
-#################################################################################
-#
-# Domain service Configuration
-#
-#################################################################################
-
-
-
#
# required by EmailServiceDefault
#
@@ -138,7 +127,6 @@ isis.value.format.date=dd-MM-yyyy
#isis.service.email.sender.password=the.password.for-isis.notification.email.sender.address
-
#
# whether ExceptionRecognizers should also log any recognized exceptions
# (default false; enable for diagnostics/debugging)
@@ -157,7 +145,7 @@ isis.value.format.date=dd-MM-yyyy
################################################################################
#
-# Auditing, Publishing, Command
+# Auditing, Commands, Publishing
#
################################################################################
@@ -168,6 +156,7 @@ isis.value.format.date=dd-MM-yyyy
#
#isis.services.audit.objects=all|none
+
#
# Whether changes to objects should be published; if not set, defaults to "none"
# - if not set or set to "none", can explicitly enable using @DomainObject(publishing=Publishing.ENABLED)
@@ -175,22 +164,21 @@ isis.value.format.date=dd-MM-yyyy
#
#isis.services.publish.objects=all|none
-#
-# Whether all (or all non-query only) actions should be published; if not set, defaults to "none"
-# - if not set or set to "none", can explicitly enable using @Action(publishing=Publishing.ENABLED)
-# - if set to "all", can explicitly disable using @Action(publishing=Publishing.DISABLED)
-#
-#isis.services.publish.actions=all|none|ignoreQueryOnly
-
#
# Whether all (or all non-query only) actions should be reified as commands; if not set, defaults to "none"
# - if not set or set to "none", can explicitly enable using @Action(command=CommandReification.ENABLED)
# - if set to "all", can explicitly disable using @Action(command=CommandReification.DISABLED)
#
-#isis.services.command.actions=all|none|ignoreQueryOnly
+#isis.services.command.actions=all|none|ignoreSafe
+#
+# Whether all (or all non-query only) actions should be published; if not set, defaults to "none"
+# - if not set or set to "none", can explicitly enable using @Action(publishing=Publishing.ENABLED)
+# - if set to "all", can explicitly disable using @Action(publishing=Publishing.DISABLED)
+#
+#isis.services.publish.actions=all|none|ignoreSafe
@@ -209,8 +197,6 @@ isis.value.format.date=dd-MM-yyyy
-
-
################################################################################
#
# i18n
@@ -224,8 +210,6 @@ isis.value.format.date=dd-MM-yyyy
-
-
################################################################################
#
# Viewer defaults
@@ -241,3 +225,18 @@ isis.value.format.date=dd-MM-yyyy
#isis.viewers.propertyLayout.labelPosition=LEFT
#isis.viewers.parameterLayout.labelPosition=LEFT
+
+
+#################################################################################
+#
+# Value facet defaults
+#
+# (see also viewer-specific config files, eg viewer_wicket.properties)
+#
+#################################################################################
+
+# as used by @Title of a date
+isis.value.format.date=dd-MM-yyyy
+
+
+