Subject: We'd like to remove "isis.deploymentType" ... any objections?


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