Thanks Dan, I think that makes sense!
Branch v2 has progressed, such that we now have a SPI for determinig the
deployment-type. I've done this without changing too much of the previous
behaviour (at least thats the intention).
Instead I added some deprecation markers pointing to the new SPI, especially
regarding the lately introduced 'environment priming logic'.
Resource names however did change, I have not reinstated the previous behavior
here:
server.properties -> production.properties
server_prototype.properties -> prototyping.properties
Here's the default logic, for determing the deployment type:
public DeploymentType getDeploymentType() {
boolean anyVoteForPrototyping = false;
anyVoteForPrototyping|=
"true".equalsIgnoreCase(System.getenv("PROTOTYPING"));
anyVoteForPrototyping|=
"server_prototype".equalsIgnoreCase(System.getProperty("isis.deploymentType"));
anyVoteForPrototyping|=
"PROTOTYPING".equalsIgnoreCase(System.getProperty("isis.deploymentType"));
final DeploymentType deploymentType =
anyVoteForPrototyping
? DeploymentType.PROTOTYPING
:
DeploymentType.PRODUCTION;
return deploymentType;
}
The make use of the SPI, one needs to implement this interface:
public interface IsisSystemEnvironmentPlugin {
public IsisSystemEnvironment getIsisSystemEnvironment();
}
For details see the sources and a 'reference' implementation see [1] and [2]
[1]
https://github.com/apache/isis/blob/v2/core/commons/src/main/java/org/apache/isis/core/plugins/environment/IsisSystemEnvironmentPlugin.java
[2]
https://github.com/apache/isis/blob/v2/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/components/IsisSystemEnvironmentPluginForTesting.java