Skip to content

Commit 4d4b45d

Browse files
authored
Merge pull request #27287 from c00crane/298364
Reduce how many times we transform the idp war
2 parents 14b4d3a + f36c076 commit 4d4b45d

File tree

17 files changed

+175
-49
lines changed
  • dev
    • com.ibm.ws.security.fat.common/src/com/ibm/ws/security/fat/common
    • com.ibm.ws.security.oidc.client_fat.backchannelLogout.saml.1/fat/src/com/ibm/ws/security/backchannelLogout/fat
    • com.ibm.ws.security.oidc.client_fat.backchannelLogout.saml.2/fat/src/com/ibm/ws/security/backchannelLogout/fat
    • com.ibm.ws.security.saml.sso_fat.2/fat/src/com/ibm/ws/security/saml/fat
    • com.ibm.ws.security.saml.sso_fat.3/fat/src/com/ibm/ws/security/saml/fat
    • com.ibm.ws.security.saml.sso_fat.config.mapToUserRegistry/fat/src/com/ibm/ws/security/saml/sso/fat/config/mapToUserRegistry
    • com.ibm.ws.security.saml.sso_fat.config/fat/src/com/ibm/ws/security/saml/sso/fat/config
    • com.ibm.ws.security.saml.sso_fat.endpoint.samlmetadata/fat/src/com/ibm/ws/security/saml/sso/fat/endpoint/samlmetadata
    • com.ibm.ws.security.saml.sso_fat.jaxrs.config/fat/src/com/ibm/ws/security/saml/fat/jaxrs/config
    • com.ibm.ws.security.saml.sso_fat.jaxrs/fat/src/com/ibm/ws/security/saml/fat/jaxrs
    • com.ibm.ws.security.saml.sso_fat.logout.IDP_initiated/fat/src/com/ibm/ws/security/saml/fat/logout/IDPInitiated
    • com.ibm.ws.security.saml.sso_fat.logout.httpServletRequest/fat/src/com/ibm/ws/security/saml/fat/logout/httpServletRequest
    • com.ibm.ws.security.saml.sso_fat.logout.ibm_security_logout/fat/src/com/ibm/ws/security/saml/fat/logout/ibmSecurityLogout
    • com.ibm.ws.security.saml.sso_fat.logout/fat/src/com/ibm/ws/security/saml/fat/logout
    • com.ibm.ws.security.saml.sso_fat/fat/src/com/ibm/ws/security/saml/fat

17 files changed

+175
-49
lines changed

dev/com.ibm.ws.security.fat.common/src/com/ibm/ws/security/fat/common/CommonTest.java

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2018, 2023 IBM Corporation and others.
2+
* Copyright (c) 2018, 2024 IBM Corporation and others.
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License 2.0
55
* which accompanies this distribution, and is available at
@@ -96,7 +96,7 @@ public static void addToAllowableTimeoutCount(int additionalCount) {
9696
public static void timeoutChecker() throws Exception {
9797
String method = "timeoutChecker";
9898

99-
int timeoutCounter = 0 ;
99+
int timeoutCounter = 0;
100100
boolean timeoutFound = false;
101101
String outputFile = "./results/output.txt";
102102
File f = new File(outputFile);
@@ -182,43 +182,47 @@ public WebClient getAndSaveWebClient(boolean override) throws Exception {
182182

183183
private static void transformAppsInDefaultDirs(TestServer server, String appDirName) {
184184

185-
LibertyServer myServer = server.getServer();
186-
Machine machine = myServer.getMachine();
185+
try {
186+
LibertyServer myServer = server.getServer();
187+
Machine machine = myServer.getMachine();
187188

188-
Log.info(thisClass, "transformAppsInDefaultDirs", "Processing " + appDirName + " for serverName: " + myServer.getServerName());
189-
RemoteFile appDir = new RemoteFile(machine, LibertyServerUtils.makeJavaCompatible(myServer.getServerRoot() + File.separatorChar + appDirName, machine));
189+
Log.info(thisClass, "transformAppsInDefaultDirs", "Processing " + appDirName + " for serverName: " + myServer.getServerName());
190+
RemoteFile appDir = new RemoteFile(machine, LibertyServerUtils.makeJavaCompatible(myServer.getServerRoot() + File.separatorChar + appDirName, machine));
190191

191-
RemoteFile[] list = null;
192-
try {
192+
RemoteFile[] list = null;
193193
if (appDir.isDirectory()) {
194194
list = appDir.list(false);
195195
}
196+
if (list != null) {
197+
for (RemoteFile app : list) {
198+
if (!app.getName().contains("idp.war")) { // the idp.war should have already been transformed
199+
JakartaEEAction.transformApp(Paths.get(app.getAbsolutePath()));
200+
}
201+
}
202+
}
196203
} catch (Exception e) {
197204
Log.error(thisClass, "transformAppsInDefaultDirs", e);
198-
}
199-
if (list != null) {
200-
for (RemoteFile app : list) {
201-
JakartaEEAction.transformApp(Paths.get(app.getAbsolutePath()));
202-
}
205+
e.printStackTrace();
203206
}
204207
}
205208

206209
/**
207210
* JakartaEE9 transform applications for a specified server.
208211
*
209-
* @param serverName The server to transform the applications on.
212+
* @param serverName
213+
* The server to transform the applications on.
210214
*/
211215
public static void transformApps(TestServer server) {
212216
if (JakartaEEAction.isEE9OrLaterActive()) {
213217

214218
transformAppsInDefaultDirs(server, "dropins");
215219
transformAppsInDefaultDirs(server, "test-apps");
216-
// TODO - may break saml - may have to update saml rules
217-
transformAppsInDefaultDirs(server, "idp-apps");
220+
// // TODO - may break saml - may have to update saml rules
221+
// transformAppsInDefaultDirs(server, "idp-apps");
218222

219223
}
220224
}
221-
225+
222226
@After
223227
public void endTestCleanup() throws Exception {
224228

dev/com.ibm.ws.security.fat.common/src/com/ibm/ws/security/fat/common/ShibbolethHelpers.java

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2020, 2022 IBM Corporation and others.
2+
* Copyright (c) 2020, 2024 IBM Corporation and others.
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License 2.0
55
* which accompanies this distribution, and is available at
@@ -13,6 +13,7 @@
1313
package com.ibm.ws.security.fat.common;
1414

1515
import java.io.File;
16+
import java.nio.file.Paths;
1617
import java.security.Provider;
1718
import java.security.Security;
1819
import java.util.HashMap;
@@ -29,9 +30,13 @@
2930
import com.ibm.websphere.simplicity.log.Log;
3031
import com.ibm.ws.security.fat.common.servers.ServerBootstrapUtils;
3132

33+
import componenttest.custom.junit.runner.RepeatTestFilter;
34+
import componenttest.rules.repeater.JakartaEEAction;
35+
import componenttest.rules.repeater.RepeatActions.EEVersion;
3236
import componenttest.topology.impl.LibertyFileManager;
3337
import componenttest.topology.impl.LibertyServer;
3438
import componenttest.topology.utils.LDAPUtils;
39+
import componenttest.topology.utils.LibertyServerUtils;
3540

3641
public class ShibbolethHelpers {
3742
private final static Class<?> thisClass = ShibbolethHelpers.class;
@@ -480,16 +485,36 @@ public void fixShibbolethJvmOptions(TestServer server) throws Exception {
480485

481486
public void chooseIdpWarVersion(TestServer idpServer) throws Exception {
482487

488+
EEVersion eeVersion = null;
489+
String eeVersionString = "";
490+
491+
String currentRepeatAction = RepeatTestFilter.getRepeatActionsAsString();
492+
if (currentRepeatAction.contains(JakartaEEAction.EE9_ACTION_ID)) {
493+
eeVersion = EEVersion.EE9;
494+
}
495+
if (currentRepeatAction.contains(JakartaEEAction.EE10_ACTION_ID)) {
496+
eeVersion = EEVersion.EE10;
497+
}
498+
483499
String thisMethod = "chooseIdpWarVersion";
484500
LibertyServer theServer = idpServer.getServer();
485501

502+
File transformedWarFile = new java.io.File(LibertyServerUtils.makeJavaCompatible(theServer.getServerRoot() + "/idp-apps/idp-war-4.1.0.war"));
503+
486504
// copy the appropriate version of the idp.war file
487505
if (System.getProperty("java.specification.version").matches("1\\.[789]")) {
488506
Log.info(thisClass, thisMethod, "################## Copying the 3.1.1 version of Shibbolet ##################h");
489507
LibertyFileManager.copyFileIntoLiberty(theServer.getMachine(), theServer.getServerRoot() + "/test-apps", "idp.war", theServer.getServerRoot() + "/idp-apps/idp-war-3.3.1.war");
490508
} else {
491509
Log.info(thisClass, thisMethod, "################## Copying the 4.1.0 version of Shibboleth ##################");
492-
LibertyFileManager.copyFileIntoLiberty(theServer.getMachine(), theServer.getServerRoot() + "/test-apps", "idp.war", theServer.getServerRoot() + "/idp-apps/idp-war-4.1.0.war");
510+
if (eeVersion != null) {
511+
eeVersionString = "." + eeVersion.toString();
512+
transformedWarFile = new java.io.File(LibertyServerUtils.makeJavaCompatible(theServer.getServerRoot() + "/idp-apps/idp-war-4.1.0.war" + eeVersionString));
513+
}
514+
if (!transformedWarFile.exists() && eeVersion != null) {
515+
JakartaEEAction.transformApp(Paths.get(theServer.getServerRoot() + "/idp-apps/idp-war-4.1.0.war"), Paths.get(theServer.getServerRoot() + "/idp-apps/idp-war-4.1.0.war" + eeVersionString), eeVersion);
516+
}
517+
LibertyFileManager.copyFileIntoLiberty(theServer.getMachine(), theServer.getServerRoot() + "/test-apps", "idp.war", theServer.getServerRoot() + "/idp-apps/idp-war-4.1.0.war" + eeVersionString);
493518
}
494519

495520
}

dev/com.ibm.ws.security.fat.common/src/com/ibm/ws/security/fat/common/actions/LargeProjectRepeatActions.java

Lines changed: 101 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2023 IBM Corporation and others.
2+
* Copyright (c) 2023, 2024 IBM Corporation and others.
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License 2.0
55
* which accompanies this distribution, and is available at
@@ -12,26 +12,36 @@
1212
*******************************************************************************/
1313
package com.ibm.ws.security.fat.common.actions;
1414

15+
import java.io.File;
16+
import java.nio.file.Path;
17+
import java.nio.file.Paths;
18+
import java.util.List;
1519
import java.util.Set;
1620

1721
import com.ibm.websphere.simplicity.Machine;
1822
import com.ibm.websphere.simplicity.OperatingSystem;
1923
import com.ibm.websphere.simplicity.log.Log;
2024

2125
import componenttest.custom.junit.runner.Mode.TestMode;
26+
import componenttest.custom.junit.runner.RepeatTestFilter;
2227
import componenttest.custom.junit.runner.TestModeFilter;
2328
import componenttest.rules.repeater.EmptyAction;
2429
import componenttest.rules.repeater.FeatureReplacementAction;
2530
import componenttest.rules.repeater.JakartaEE10Action;
2631
import componenttest.rules.repeater.JakartaEE9Action;
32+
import componenttest.rules.repeater.JakartaEEAction;
33+
import componenttest.rules.repeater.RepeatActions.EEVersion;
2734
import componenttest.rules.repeater.RepeatTestAction;
2835
import componenttest.rules.repeater.RepeatTests;
2936
import componenttest.topology.impl.JavaInfo;
37+
import componenttest.topology.utils.LibertyServerUtils;
3038

3139
public class LargeProjectRepeatActions {
3240

3341
public static Class<?> thisClass = LargeProjectRepeatActions.class;
3442

43+
private static boolean doIDPTransform = false;
44+
3545
/**
3646
* Create repeats for large security projects.
3747
* On Windows, always run the default/empty/EE7/EE8 tests.
@@ -44,19 +54,52 @@ public class LargeProjectRepeatActions {
4454
* @return repeat test instances
4555
*/
4656
public static RepeatTests createEE9OrEE10Repeats() {
47-
return createEE9OrEE10Repeats(null, null, null, null);
57+
doIDPTransform = false;
58+
return createEE9OrEE10RepeatsWorker(null, null, null, null);
59+
}
60+
61+
public static RepeatTests createEE9OrEE10SamlRepeats() {
62+
doIDPTransform = true;
63+
return createEE9OrEE10RepeatsWorker(null, null, null, null);
64+
4865
}
4966

5067
public static RepeatTests createEE9OrEE10Repeats(String addEE9Feature, String addEE10Feature) {
51-
return createEE9OrEE10Repeats(addEE9Feature, addEE10Feature, null, null);
68+
doIDPTransform = false;
69+
return createEE9OrEE10RepeatsWorker(addEE9Feature, addEE10Feature, null, null);
70+
}
71+
72+
public static RepeatTests createEE9OrEE10SamlRepeats(String addEE9Feature, String addEE10Feature) {
73+
doIDPTransform = true;
74+
return createEE9OrEE10RepeatsWorker(addEE9Feature, addEE10Feature, null, null);
5275
}
5376

5477
public static RepeatTests createEE9OrEE10Repeats(String addEE9Feature, String addEE10Feature, Set<String> removeFeatureList, Set<String> insertFeatureList) {
55-
return createEE9OrEE10Repeats(addEE9Feature, addEE10Feature, removeFeatureList, insertFeatureList, null);
78+
doIDPTransform = false;
79+
return createEE9OrEE10RepeatsWorker(addEE9Feature, addEE10Feature, removeFeatureList, insertFeatureList, null);
80+
}
81+
82+
public static RepeatTests createEE9OrEE10SamlRepeats(String addEE9Feature, String addEE10Feature, Set<String> removeFeatureList, Set<String> insertFeatureList) {
83+
doIDPTransform = true;
84+
return createEE9OrEE10RepeatsWorker(addEE9Feature, addEE10Feature, removeFeatureList, insertFeatureList, null);
5685
}
5786

5887
public static RepeatTests createEE9OrEE10Repeats(String addEE9Feature, String addEE10Feature, Set<String> removeFeatureList, Set<String> insertFeatureList, String... serverPaths) {
5988

89+
doIDPTransform = false;
90+
return createEE9OrEE10RepeatsWorker(addEE9Feature, addEE10Feature, removeFeatureList, insertFeatureList, serverPaths);
91+
92+
}
93+
94+
public static RepeatTests createEE9OrEE10SamlRepeats(String addEE9Feature, String addEE10Feature, Set<String> removeFeatureList, Set<String> insertFeatureList, String... serverPaths) {
95+
96+
doIDPTransform = true;
97+
return createEE9OrEE10RepeatsWorker(addEE9Feature, addEE10Feature, removeFeatureList, insertFeatureList, serverPaths);
98+
99+
}
100+
101+
public static RepeatTests createEE9OrEE10RepeatsWorker(String addEE9Feature, String addEE10Feature, Set<String> removeFeatureList, Set<String> insertFeatureList, String... serverPaths) {
102+
60103
RepeatTests rTests = null;
61104

62105
OperatingSystem currentOS = null;
@@ -75,9 +118,15 @@ public static RepeatTests createEE9OrEE10Repeats(String addEE9Feature, String ad
75118
if (TestModeFilter.FRAMEWORK_TEST_MODE == TestMode.LITE) {
76119
Log.info(thisClass, "createLargeProjectRepeats", "Enabling the EE9 test instance (Not on Windows, Java > 8, Lite Mode)");
77120
rTests = addRepeat(rTests, adjustFeatures(JakartaEE9Action.ID, addEE9Feature, removeFeatureList, insertFeatureList, serverPaths));
121+
if (doIDPTransform) {
122+
idpWarTransform(EEVersion.EE9);
123+
}
78124
} else {
79125
Log.info(thisClass, "createLargeProjectRepeats", "Enabling the EE10 test instance (Not on Windows, Java > 8, FULL Mode)");
80126
rTests = addRepeat(rTests, adjustFeatures(JakartaEE10Action.ID, addEE10Feature, removeFeatureList, insertFeatureList, serverPaths));
127+
if (doIDPTransform) {
128+
idpWarTransform(EEVersion.EE10);
129+
}
81130
}
82131
} else {
83132
Log.info(thisClass, "createLargeProjectRepeats", "Enabling the default EE7/EE8 test instance (Not on Windows, Java = 8, any Mode)");
@@ -132,4 +181,52 @@ public static FeatureReplacementAction adjustFeatures(String featureType, String
132181
return featureAction;
133182
}
134183

184+
public static void idpWarTransform(EEVersion eeVersion) {
185+
186+
try {
187+
List<RepeatTestAction> actions = RepeatTestFilter.getRepeatActions();
188+
189+
String currentPath = new java.io.File(".").getCanonicalPath();
190+
Log.info(thisClass, "idpWarTransform", "Current dir :" + currentPath);
191+
String shibDir = currentPath + "/publish/servers/com.ibm.ws.security.saml.sso-2.0_fat.shibboleth/idp-apps";
192+
Log.info(thisClass, "idpWarTransform", "shibDir: " + shibDir);
193+
194+
File appDir = new java.io.File(LibertyServerUtils.makeJavaCompatible(shibDir));
195+
196+
File[] list = null;
197+
try {
198+
if (appDir.isDirectory()) {
199+
Log.info(thisClass, "idpWarTransform", "appDir is a directory");
200+
list = appDir.listFiles();
201+
}
202+
} catch (Exception e) {
203+
Log.error(thisClass, "idpWarTransform", e);
204+
}
205+
if (list != null) {
206+
Log.info(thisClass, "idpWarTransform", "list is not null");
207+
for (File app : list) {
208+
String fullAppName = shibDir + "/" + app.getName();
209+
if (!app.getName().contains("3.3.1") && !app.getName().contains(eeVersion.toString())) {
210+
Path appPathName = Paths.get(fullAppName);
211+
Path appPathNewName = Paths.get(fullAppName + "." + eeVersion.toString());
212+
Log.info(thisClass, "idpWarTransform", "From IDP war name: " + appPathName.toString());
213+
Log.info(thisClass, "idpWarTransform", "To IDP war name: " + appPathNewName.toString());
214+
JakartaEEAction.transformApp(appPathName, appPathNewName, eeVersion);
215+
} else {
216+
Log.info(thisClass, "idpWarTransform", "Skipping transform since we will only use the 3.3.1 version with Java 8");
217+
}
218+
}
219+
}
220+
221+
} catch (Exception e) {
222+
Log.info(thisClass, "idpWarTransform", "Failure trying to transform the idp wars" + e.getMessage());
223+
e.getStackTrace();
224+
}
225+
226+
}
227+
228+
public static String getParent(String dir) {
229+
Log.info(thisClass, "getParent", "Starting path: " + dir);
230+
return new java.io.File(dir).getParent();
231+
}
135232
}

dev/com.ibm.ws.security.oidc.client_fat.backchannelLogout.saml.1/fat/src/com/ibm/ws/security/backchannelLogout/fat/FATSuite.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,6 @@ public class FATSuite extends CommonLocalLDAPServerSuite {
4747
*
4848
*/
4949
@ClassRule
50-
public static RepeatTests repeat = LargeProjectRepeatActions.createEE9OrEE10Repeats("servlet-5.0", "servlet-6.0");
50+
public static RepeatTests repeat = LargeProjectRepeatActions.createEE9OrEE10SamlRepeats("servlet-5.0", "servlet-6.0");
5151

5252
}

dev/com.ibm.ws.security.oidc.client_fat.backchannelLogout.saml.2/fat/src/com/ibm/ws/security/backchannelLogout/fat/FATSuite.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,6 @@ public class FATSuite extends CommonLocalLDAPServerSuite {
4747
*
4848
*/
4949
@ClassRule
50-
public static RepeatTests repeat = LargeProjectRepeatActions.createEE9OrEE10Repeats("servlet-5.0", "servlet-6.0");
50+
public static RepeatTests repeat = LargeProjectRepeatActions.createEE9OrEE10SamlRepeats("servlet-5.0", "servlet-6.0");
5151

5252
}

dev/com.ibm.ws.security.saml.sso_fat.2/fat/src/com/ibm/ws/security/saml/fat/FATSuite.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2014, 2023 IBM Corporation and others.
2+
* Copyright (c) 2014, 2024 IBM Corporation and others.
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License 2.0
55
* which accompanies this distribution, and is available at
@@ -77,6 +77,6 @@ public class FATSuite extends CommonLocalLDAPServerSuite {
7777
*
7878
*/
7979
@ClassRule
80-
public static RepeatTests repeat = LargeProjectRepeatActions.createEE9OrEE10Repeats();
80+
public static RepeatTests repeat = LargeProjectRepeatActions.createEE9OrEE10SamlRepeats();
8181

8282
}

dev/com.ibm.ws.security.saml.sso_fat.3/fat/src/com/ibm/ws/security/saml/fat/FATSuite.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2014, 2023 IBM Corporation and others.
2+
* Copyright (c) 2014, 2024 IBM Corporation and others.
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License 2.0
55
* which accompanies this distribution, and is available at
@@ -64,6 +64,6 @@ public class FATSuite extends CommonLocalLDAPServerSuite {
6464
*
6565
*/
6666
@ClassRule
67-
public static RepeatTests repeat = LargeProjectRepeatActions.createEE9OrEE10Repeats();
67+
public static RepeatTests repeat = LargeProjectRepeatActions.createEE9OrEE10SamlRepeats();
6868

6969
}

dev/com.ibm.ws.security.saml.sso_fat.config.mapToUserRegistry/fat/src/com/ibm/ws/security/saml/sso/fat/config/mapToUserRegistry/FATSuite.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2014, 2023 IBM Corporation and others.
2+
* Copyright (c) 2014, 2024 IBM Corporation and others.
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License 2.0
55
* which accompanies this distribution, and is available at
@@ -43,6 +43,6 @@ public class FATSuite extends CommonLocalLDAPServerSuite {
4343
*
4444
*/
4545
@ClassRule
46-
public static RepeatTests repeat = LargeProjectRepeatActions.createEE9OrEE10Repeats();
46+
public static RepeatTests repeat = LargeProjectRepeatActions.createEE9OrEE10SamlRepeats();
4747

4848
}

dev/com.ibm.ws.security.saml.sso_fat.config/fat/src/com/ibm/ws/security/saml/sso/fat/config/FATSuite.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2014, 2023 IBM Corporation and others.
2+
* Copyright (c) 2014, 2024 IBM Corporation and others.
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License 2.0
55
* which accompanies this distribution, and is available at
@@ -46,6 +46,6 @@ public class FATSuite extends CommonLocalLDAPServerSuite {
4646
*
4747
*/
4848
@ClassRule
49-
public static RepeatTests repeat = LargeProjectRepeatActions.createEE9OrEE10Repeats();
49+
public static RepeatTests repeat = LargeProjectRepeatActions.createEE9OrEE10SamlRepeats();
5050

5151
}

0 commit comments

Comments
 (0)