77import java .io .FileOutputStream ;
88import java .io .IOException ;
99import java .net .http .HttpResponse ;
10- import java .nio .charset .StandardCharsets ;
1110import java .nio .file .Files ;
1211import java .nio .file .Path ;
1312import java .nio .file .Paths ;
6564import static oracle .weblogic .kubernetes .TestConstants .IMAGE_PULL_POLICY ;
6665import static oracle .weblogic .kubernetes .TestConstants .K8S_NODEPORT_HOST ;
6766import static oracle .weblogic .kubernetes .TestConstants .OKD ;
67+ import static oracle .weblogic .kubernetes .TestConstants .WEBLOGIC_12213 ;
6868import static oracle .weblogic .kubernetes .TestConstants .WEBLOGIC_IMAGE_TO_USE_IN_SPEC ;
6969import static oracle .weblogic .kubernetes .actions .ActionConstants .APP_DIR ;
7070import static oracle .weblogic .kubernetes .actions .ActionConstants .RESOURCE_DIR ;
9595import static oracle .weblogic .kubernetes .utils .DeployUtil .deployUsingWlst ;
9696import static oracle .weblogic .kubernetes .utils .DomainUtils .createDomainAndVerify ;
9797import static oracle .weblogic .kubernetes .utils .ExecCommand .exec ;
98+ import static oracle .weblogic .kubernetes .utils .FileUtils .replaceStringInFile ;
9899import static oracle .weblogic .kubernetes .utils .ImageUtils .createBaseRepoSecret ;
99100import static oracle .weblogic .kubernetes .utils .JobUtils .createDomainJob ;
100101import static oracle .weblogic .kubernetes .utils .JobUtils .getIntrospectJobName ;
@@ -561,10 +562,13 @@ void testOnRestartOverride() {
561562 //copy the template datasource file for override after replacing JDBC_URL with new datasource url
562563 Path srcDsOverrideFile = Paths .get (RESOURCE_DIR , "configfiles/configoverridesset1/jdbc-JdbcTestDataSource-1.xml" );
563564 Path dstDsOverrideFile = Paths .get (WORK_DIR , "jdbc-JdbcTestDataSource-1.xml" );
564- String tempString = assertDoesNotThrow (()
565- -> Files .readString (srcDsOverrideFile ).replaceAll ("JDBC_URL" , dsUrl2 ));
566- assertDoesNotThrow (()
567- -> Files .write (dstDsOverrideFile , tempString .getBytes (StandardCharsets .UTF_8 )));
565+ assertDoesNotThrow (() -> {
566+ Files .copy (srcDsOverrideFile , dstDsOverrideFile , StandardCopyOption .REPLACE_EXISTING );
567+ replaceStringInFile (dstDsOverrideFile .toString (), "JDBC_URL" , dsUrl2 );
568+ if (WEBLOGIC_12213 ) {
569+ replaceStringInFile (dstDsOverrideFile .toString (), "com.mysql.cj.jdbc.Driver" , "com.mysql.jdbc.Driver" );
570+ }
571+ });
568572
569573 List <Path > overrideFiles = new ArrayList <>();
570574 overrideFiles .add (dstDsOverrideFile );
@@ -1083,6 +1087,9 @@ private void createJdbcDataSource(String dsName, String user, String password,
10831087 logger .info ("hostAndPort = {0} " , hostAndPort );
10841088 String jdbcDsUrl = "jdbc:mysql://" + hostAndPort ;
10851089
1090+ // based on WebLogic image, change the mysql driver to
1091+ // 12.2.1.3 - com.mysql.jdbc.Driver
1092+ // 12.2.1.4 and above - com.mysql.cj.jdbc.Driver
10861093 // create a temporary WebLogic domain property file
10871094 File domainPropertiesFile = File .createTempFile ("domain" , "properties" );
10881095 Properties p = new Properties ();
@@ -1092,7 +1099,11 @@ private void createJdbcDataSource(String dsName, String user, String password,
10921099 p .setProperty ("admin_password" , ADMIN_PASSWORD_DEFAULT );
10931100 p .setProperty ("dsName" , dsName );
10941101 p .setProperty ("dsUrl" , jdbcDsUrl );
1095- p .setProperty ("dsDriver" , "com.mysql.cj.jdbc.Driver" );
1102+ if (WEBLOGIC_12213 ) {
1103+ p .setProperty ("dsDriver" , "com.mysql.jdbc.Driver" );
1104+ } else {
1105+ p .setProperty ("dsDriver" , "com.mysql.cj.jdbc.Driver" );
1106+ }
10961107 p .setProperty ("dsUser" , user );
10971108 p .setProperty ("dsPassword" , password );
10981109 p .setProperty ("dsTarget" , clusterName );
0 commit comments