diff --git a/src/main/java/io/openliberty/tools/common/plugins/util/DevUtil.java b/src/main/java/io/openliberty/tools/common/plugins/util/DevUtil.java index 82ac7411..aabd526f 100644 --- a/src/main/java/io/openliberty/tools/common/plugins/util/DevUtil.java +++ b/src/main/java/io/openliberty/tools/common/plugins/util/DevUtil.java @@ -434,10 +434,11 @@ private enum FileTrackMode { private Set testArtifactPaths; protected final File generatedFeaturesFile; private File modifiedSrcBuildFile; + protected boolean skipInstallFeature; public DevUtil(File buildDirectory, File serverDirectory, File sourceDirectory, File testSourceDirectory, File configDirectory, File projectDirectory, File multiModuleProjectDirectory, List resourceDirs, - boolean hotTests, boolean skipTests, boolean skipUTs, boolean skipITs, String applicationId, + boolean hotTests, boolean skipTests, boolean skipUTs, boolean skipITs, boolean skipInstallFeature, String applicationId, long serverStartTimeout, int appStartupTimeout, int appUpdateTimeout, long compileWaitMillis, boolean libertyDebug, boolean useBuildRecompile, boolean gradle, boolean pollingTest, boolean container, File dockerfile, File dockerBuildContext, String dockerRunOpts, int dockerBuildTimeout, @@ -457,6 +458,7 @@ public DevUtil(File buildDirectory, File serverDirectory, File sourceDirectory, this.skipTests = skipTests; this.skipUTs = skipUTs; this.skipITs = skipITs; + this.skipInstallFeature = skipInstallFeature; this.applicationId = applicationId; this.serverStartTimeout = serverStartTimeout; this.appStartupTimeout = appStartupTimeout; @@ -1845,8 +1847,11 @@ public void restartServer(boolean buildContainer) throws PluginExecutionExceptio libertyCreate(); // Skip installing features on container during restart, since the Dockerfile // should have 'RUN features.sh' - if (!container) { + // Also skip install feature on restart if config parameter specified. + if (!container && !skipInstallFeature) { libertyInstallFeature(); + } else if (skipInstallFeature) { + info("Skipping installation of features due to skipInstallFeature configuration."); } libertyDeploy(); startServer(buildContainer, false); diff --git a/src/test/java/io/openliberty/tools/common/plugins/util/BaseDevUtilTest.java b/src/test/java/io/openliberty/tools/common/plugins/util/BaseDevUtilTest.java index 18e044cd..7c0b062f 100644 --- a/src/test/java/io/openliberty/tools/common/plugins/util/BaseDevUtilTest.java +++ b/src/test/java/io/openliberty/tools/common/plugins/util/BaseDevUtilTest.java @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corporation 2019. + * (C) Copyright IBM Corporation 2019, 2023. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -39,13 +39,13 @@ public class DevTestUtil extends DevUtil { public DevTestUtil(File serverDirectory, File sourceDirectory, File testSourceDirectory, File configDirectory, List resourceDirs, List webResourceDirs, boolean hotTests, boolean skipTests) throws IOException { super(temp.newFolder(), serverDirectory, sourceDirectory, testSourceDirectory, configDirectory, null, null, - resourceDirs, hotTests, skipTests, false, false, null, 30, 30, 5, 500, true, false, false, false, + resourceDirs, hotTests, skipTests, false, false, false, null, 30, 30, 5, 500, true, false, false, false, false, null, null, null, 0, false, null, false, null, null, false, null, null, null, false, null, null, webResourceDirs); } public DevTestUtil(File serverDirectory, File buildDir) { super(buildDir, serverDirectory, null, null, null, null, null, - null, false, false, false, false, null, 30, 30, 5, 500, true, false, false, false, + null, false, false, false, false, false, null, 30, 30, 5, 500, true, false, false, false, false, null, null, null, 0, false, null, false, null, null, false, null, null, null, false, null, null, null); }