44
55package oracle .kubernetes .weblogic .domain .v2 ;
66
7- import static java .util .Collections .emptyList ;
8-
97import com .google .gson .annotations .Expose ;
108import com .google .gson .annotations .SerializedName ;
119import io .kubernetes .client .models .V1EnvVar ;
1210import io .kubernetes .client .models .V1Probe ;
13- import java .util .ArrayList ;
1411import java .util .List ;
1512import java .util .Objects ;
16- import java .util .Optional ;
1713import javax .annotation .Nullable ;
18- import javax .validation .Valid ;
1914import oracle .kubernetes .json .Description ;
2015import org .apache .commons .lang3 .builder .EqualsBuilder ;
2116import org .apache .commons .lang3 .builder .HashCodeBuilder ;
2924 */
3025public abstract class BaseConfiguration {
3126
32- /**
33- * Environment variables to pass while starting a server.
34- *
35- * @since 2.0
36- */
37- @ SerializedName ("env" )
38- @ Expose
39- @ Valid
40- @ Description ("A list of environment variables to add to a server" )
41- private List <V1EnvVar > env = new ArrayList <>();
27+ @ Description ("Configuration affecting the server pod" )
28+ private ServerPod serverPod = new ServerPod ();
4229
4330 /** Desired startup state. Legal values are RUNNING or ADMIN. */
4431 @ SerializedName ("serverStartState" )
@@ -61,28 +48,6 @@ public abstract class BaseConfiguration {
6148 + "Legal values are NEVER, ALWAYS, or IF_NEEDED." )
6249 private String serverStartPolicy ;
6350
64- /**
65- * Defines the settings for the liveness probe. Any that are not specified will default to the
66- * runtime liveness probe tuning settings.
67- *
68- * @since 2.0
69- */
70- @ SerializedName ("livenessProbe" )
71- @ Expose
72- @ Description ("Settings for the liveness probe associated with a server" )
73- private V1Probe livenessProbe = new V1Probe ();
74-
75- /**
76- * Defines the settings for the readiness probe. Any that are not specified will default to the
77- * runtime readiness probe tuning settings.
78- *
79- * @since 2.0
80- */
81- @ SerializedName ("readinessProbe" )
82- @ Expose
83- @ Description ("Settings for the readiness probe associated with a server" )
84- private V1Probe readinessProbe = new V1Probe ();
85-
8651 /**
8752 * Fills in any undefined settings in this configuration from another configuration.
8853 *
@@ -94,9 +59,7 @@ void fillInFrom(BaseConfiguration other) {
9459 if (serverStartState == null ) serverStartState = other .getServerStartState ();
9560 if (overrideStartPolicyFrom (other )) serverStartPolicy = other .getServerStartPolicy ();
9661
97- for (V1EnvVar var : getV1EnvVars (other )) addIfMissing (var );
98- copyValues (livenessProbe , other .livenessProbe );
99- copyValues (readinessProbe , other .readinessProbe );
62+ serverPod .fillInFrom (other .serverPod );
10063 }
10164
10265 private boolean overrideStartPolicyFrom (BaseConfiguration other ) {
@@ -112,37 +75,13 @@ private boolean isStartNever() {
11275 return Objects .equals (getServerStartPolicy (), ConfigurationConstants .START_NEVER );
11376 }
11477
115- private List <V1EnvVar > getV1EnvVars (BaseConfiguration configuration ) {
116- return Optional .ofNullable (configuration .getEnv ()).orElse (emptyList ());
117- }
118-
119- private void addIfMissing (V1EnvVar var ) {
120- if (!hasEnvVar (var .getName ())) addEnvVar (var );
121- }
122-
123- private boolean hasEnvVar (String name ) {
124- if (env == null ) return false ;
125- for (V1EnvVar var : env ) {
126- if (var .getName ().equals (name )) return true ;
127- }
128- return false ;
129- }
130-
131- private void copyValues (V1Probe toProbe , V1Probe fromProbe ) {
132- if (toProbe .getInitialDelaySeconds () == null )
133- toProbe .setInitialDelaySeconds (fromProbe .getInitialDelaySeconds ());
134- if (toProbe .getTimeoutSeconds () == null )
135- toProbe .setTimeoutSeconds (fromProbe .getTimeoutSeconds ());
136- if (toProbe .getPeriodSeconds () == null ) toProbe .setPeriodSeconds (fromProbe .getPeriodSeconds ());
137- }
138-
13978 /**
14079 * Returns true if any version 2 configuration fields are specified.
14180 *
14281 * @return whether there is version 2 configuration field in this instance
14382 */
14483 protected boolean hasV2Fields () {
145- return serverStartState != null || serverStartPolicy != null || ! env . isEmpty ();
84+ return serverStartState != null || serverStartPolicy != null || serverPod . hasV2Fields ();
14685 }
14786
14887 @ Nullable
@@ -156,20 +95,15 @@ void setServerStartState(@Nullable String serverStartState) {
15695
15796 @ Nullable
15897 public List <V1EnvVar > getEnv () {
159- return env ;
98+ return serverPod . getEnv () ;
16099 }
161100
162101 public void setEnv (@ Nullable List <V1EnvVar > env ) {
163- this . env = env ;
102+ serverPod . setEnv ( env ) ;
164103 }
165104
166105 void addEnvironmentVariable (String name , String value ) {
167- addEnvVar (new V1EnvVar ().name (name ).value (value ));
168- }
169-
170- private void addEnvVar (V1EnvVar var ) {
171- if (env == null ) setEnv (new ArrayList <>());
172- env .add (var );
106+ serverPod .addEnvVar (new V1EnvVar ().name (name ).value (value ));
173107 }
174108
175109 void setServerStartPolicy (String serverStartPolicy ) {
@@ -181,33 +115,27 @@ protected String getServerStartPolicy() {
181115 }
182116
183117 void setLivenessProbe (Integer initialDelay , Integer timeout , Integer period ) {
184- livenessProbe . initialDelaySeconds (initialDelay ). timeoutSeconds ( timeout ). periodSeconds ( period );
118+ serverPod . setLivenessProbe (initialDelay , timeout , period );
185119 }
186120
187121 V1Probe getLivenessProbe () {
188- return livenessProbe ;
122+ return serverPod . getLivenessProbe () ;
189123 }
190124
191125 void setReadinessProbe (Integer initialDelay , Integer timeout , Integer period ) {
192- readinessProbe . initialDelaySeconds (initialDelay ). timeoutSeconds ( timeout ). periodSeconds ( period );
126+ serverPod . setReadinessProbe (initialDelay , timeout , period );
193127 }
194128
195129 V1Probe getReadinessProbe () {
196- return readinessProbe ;
130+ return serverPod . getReadinessProbe () ;
197131 }
198132
199133 @ Override
200134 public String toString () {
201135 return new ToStringBuilder (this )
202136 .append ("serverStartState" , serverStartState )
203137 .append ("serverStartPolicy" , serverStartPolicy )
204- .append ("livenessProbe.initialDelaySeconds" , livenessProbe .getInitialDelaySeconds ())
205- .append ("livenessProbe.timeoutSeconds" , livenessProbe .getTimeoutSeconds ())
206- .append ("livenessProbe.periodSeconds" , livenessProbe .getPeriodSeconds ())
207- .append ("readinessProbeProbe.initialDelaySeconds" , readinessProbe .getInitialDelaySeconds ())
208- .append ("readinessProbe.timeoutSeconds" , readinessProbe .getTimeoutSeconds ())
209- .append ("readinessProbe.periodSeconds" , readinessProbe .getPeriodSeconds ())
210- .append ("env" , env )
138+ .append ("serverPod" , serverPod )
211139 .toString ();
212140 }
213141
@@ -220,22 +148,18 @@ public boolean equals(Object o) {
220148 BaseConfiguration that = (BaseConfiguration ) o ;
221149
222150 return new EqualsBuilder ()
223- .append (env , that .env )
151+ .append (serverPod , that .serverPod )
224152 .append (serverStartState , that .serverStartState )
225153 .append (serverStartPolicy , that .serverStartPolicy )
226- .append (livenessProbe , that .livenessProbe )
227- .append (readinessProbe , that .readinessProbe )
228154 .isEquals ();
229155 }
230156
231157 @ Override
232158 public int hashCode () {
233159 return new HashCodeBuilder (17 , 37 )
234- .append (env )
160+ .append (serverPod )
235161 .append (serverStartState )
236162 .append (serverStartPolicy )
237- .append (livenessProbe )
238- .append (readinessProbe )
239163 .toHashCode ();
240164 }
241165}
0 commit comments