|
| 1 | +# |
| 2 | +# Copyright (c) 2022 Oracle and/or its affiliates. |
| 3 | +# |
| 4 | +# Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | +# you may not use this file except in compliance with the License. |
| 6 | +# You may obtain a copy of the License at |
| 7 | +# |
| 8 | +# http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | +# |
| 10 | +# Unless required by applicable law or agreed to in writing, software |
| 11 | +# distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 | +# See the License for the specific language governing permissions and |
| 14 | +# limitations under the License. |
| 15 | +# |
| 16 | + |
| 17 | +# This file contains permutation input filters, the property names are not used only the values. |
| 18 | +# |
| 19 | +# The number of computed permutations can be very large and quickly become un-manageable. |
| 20 | +# The build will output warnings when the number of computed permutations for a node is > 150000. |
| 21 | +# Filters are used to restrain the computed permutations. |
| 22 | +# |
| 23 | +# Filters are taken into account when they evaluate successfully. If a variable is unresolved, the result is ignored. |
| 24 | +# A filter that needs to restrain a specific combination should only reference variables in the scope of the target node. |
| 25 | + |
| 26 | +# never combine multipart with other media options |
| 27 | +multipart=${media} == 'multipart' || !(${media} contains 'multipart') |
| 28 | + |
| 29 | +# group metrics, tracing and health together |
| 30 | +observability=!(${metrics} || ${tracing} || ${health}) || \ |
| 31 | + (${metrics} && ${tracing} && ${health}) |
| 32 | + |
| 33 | +# force health.builtin=true |
| 34 | +health=!${health} || (${health.builtin}) |
| 35 | + |
| 36 | +# force metrics.builtin=true |
| 37 | +metrics=!${metrics} || (${metrics.builtin}) |
| 38 | + |
| 39 | +# force metrics.provider='microprofile' when tracing=true |
| 40 | +tracing=!${tracing} || (${tracing} && ${metrics.provider} == 'microprofile') |
| 41 | + |
| 42 | +# group extra options |
| 43 | +extra=${extra} == [] || ${extra} == ['cors', 'webclient', 'fault-tolerance'] |
| 44 | + |
| 45 | +# group docker, k8s and v8o |
| 46 | +packaging=!(${docker} || ${k8s} || ${v8o}) || (${docker} && ${k8s} && ${v8o}) |
| 47 | + |
| 48 | +# force docker.native-image=true and docker.jlink-image=true when docker=true |
| 49 | +docker=!${docker} || (${docker.native-image} && ${docker.jlink-image}) |
| 50 | + |
| 51 | +# force single option for security.atn |
| 52 | +security-atn=\ |
| 53 | + ${security.atn} == ['oidc'] || \ |
| 54 | + ${security.atn} == ['jwt'] || \ |
| 55 | + ${security.atn} == ['google'] || \ |
| 56 | + ${security.atn} == ['http-signature'] |
| 57 | + |
| 58 | +# only combine security.atz with security.atn=oidc |
| 59 | +security-atz=\ |
| 60 | + ${security.atz} == [] || \ |
| 61 | + (${security.atz} == 'abac' && ${security.atn} == 'oidc') |
| 62 | + |
| 63 | +# do not combine media and security |
| 64 | +security-media=\ |
| 65 | + ${app-type} != 'custom' || (${app-type} == 'custom' && \ |
| 66 | + (${security} && ${media} == []) || !${security}) |
| 67 | + |
| 68 | +# do not combine metrics and media |
| 69 | +metrics-media=\ |
| 70 | + ${app-type} != 'custom' || (${app-type} == 'custom' && \ |
| 71 | + (${metrics} && ${media} == []) || !${metrics}) |
| 72 | + |
| 73 | +# do not combine metrics and security |
| 74 | +security-metrics=\ |
| 75 | + ${app-type} != 'custom' || (${app-type} == 'custom' && \ |
| 76 | + (${metrics} && !${security}) || !${metrics}) |
| 77 | + |
| 78 | +# do not combine docker and media |
| 79 | +docker-media=\ |
| 80 | + ${app-type} != 'custom' || (${app-type} == 'custom' && \ |
| 81 | + (${docker} && ${media} == []) || !${docker}) |
| 82 | + |
| 83 | +# do not combine docker and security |
| 84 | +docker-security=\ |
| 85 | + ${app-type} != 'custom' || (${app-type} == 'custom' && \ |
| 86 | + (${docker} && !${security}) || !${docker}) |
| 87 | + |
| 88 | +# do not combine docker and tracing |
| 89 | +docker-tracing=\ |
| 90 | + ${app-type} != 'custom' || (${app-type} == 'custom' && \ |
| 91 | + (${docker} && !${tracing}) || !${docker}) |
| 92 | + |
| 93 | +# do not combine docker and extra |
| 94 | +docker-extra=\ |
| 95 | + ${app-type} != 'custom' || (${app-type} == 'custom' && \ |
| 96 | + (${docker} && ${extra} != []) || !${docker}) |
| 97 | + |
| 98 | +# do not combine security and extra |
| 99 | +extra-security=\ |
| 100 | + ${app-type} != 'custom' || (${app-type} == 'custom' && \ |
| 101 | + (!${security} && ${extra} != []) || (${security} && ${extra} == [])) |
| 102 | + |
| 103 | +# do not combine custom and db |
| 104 | +custom-db=\ |
| 105 | + ${app-type} != 'custom' || (${app-type} == 'custom' && \ |
| 106 | + !${db}) |
| 107 | + |
| 108 | +# do not combine media.json-lib=jackson when db.auto-ddl=true |
| 109 | +ddl-media=\ |
| 110 | + ${app-type} != 'database' || (${app-type} == 'database' && \ |
| 111 | + (${db.auto-ddl} && ${media.json-lib} == 'jackson') || \ |
| 112 | + (!${db.auto-ddl} && ${media.json-lib} != 'jackson')) |
| 113 | + |
| 114 | +# do not combine media.json-lib=jackson when db.cp=hikaricp |
| 115 | +hikaricp-media=\ |
| 116 | + ${app-type} != 'database' || (${app-type} == 'database' && \ |
| 117 | + (${db.cp} == 'hikaricp' && ${media.json-lib} == 'jackson') || \ |
| 118 | + (${db.cp} != 'hikaricp' && ${media.json-lib} != 'jackson')) |
| 119 | + |
| 120 | +# do not combine app-type=database when health=true |
| 121 | +db-health=\ |
| 122 | + ${app-type} != 'database' || (${app-type} == 'database' && \ |
| 123 | + !${health}) |
0 commit comments