Skip to content

Commit

Permalink
Merge pull request #724 from kathrynkodama/1441-build-file
Browse files Browse the repository at this point in the history
Call generate features on compile dependency changes in dev mode flow
  • Loading branch information
kathrynkodama authored Mar 23, 2022
2 parents 10d9286 + d29ef2e commit 0710e24
Showing 1 changed file with 14 additions and 11 deletions.
25 changes: 14 additions & 11 deletions src/main/groovy/io/openliberty/tools/gradle/tasks/DevTask.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,7 @@ class DevTask extends AbstractFeatureTask {
}

@Override
public boolean updateArtifactPaths(ProjectModule projectModule, boolean redeployCheck, ThreadPoolExecutor executor)
public boolean updateArtifactPaths(ProjectModule projectModule, boolean redeployCheck, boolean generateFeatures, ThreadPoolExecutor executor)
throws PluginExecutionException {
// not supported for Gradle, only used for multi module Maven projects
return false;
Expand Down Expand Up @@ -442,10 +442,10 @@ class DevTask extends AbstractFeatureTask {
}

@Override
public boolean recompileBuildFile(File buildFile, Set<String> compileArtifactPaths, Set<String> testArtifactPaths, ThreadPoolExecutor executor) {
public boolean recompileBuildFile(File buildFile, Set<String> compileArtifactPaths, Set<String> testArtifactPaths, boolean generateFeatures, ThreadPoolExecutor executor) {
boolean restartServer = false;
boolean installFeatures = false;
boolean compileDependenciesChanged = false;
boolean optimizeGenerateFeatures = false;

ProjectBuilder builder = ProjectBuilder.builder();
Project newProject;
Expand Down Expand Up @@ -556,7 +556,7 @@ class DevTask extends AbstractFeatureTask {
newProjectCompileDependencies.removeAll(existingProjectCompileDependencies);
if (!newProjectCompileDependencies.isEmpty()) {
logger.debug("Compile dependencies changed");
compileDependenciesChanged = true;
optimizeGenerateFeatures = true;
}

Configuration newLibertyFeatureConfiguration = newProject.configurations.getByName('libertyFeature');
Expand All @@ -572,21 +572,24 @@ class DevTask extends AbstractFeatureTask {
}

}
if (optimizeGenerateFeatures && generateFeatures) {
logger.debug("Detected a change in the compile dependencies, regenerating features");
// optimize generate features on build dependency change
boolean generateFeaturesSuccess = libertyGenerateFeatures(null, true);
if (generateFeaturesSuccess) {
util.javaSourceClassPaths.clear();
} else {
installFeatures = false;
}
}
if (restartServer) {
// - stop Server
// - generate features (if generateFeatures=true)
// - create server or runBoostMojo
// - install feature
// - deploy app
// - start server
util.restartServer();
return true;
} else if (compileDependenciesChanged && generateFeatures) { // generate features if compile dependencies have been modified
// optimize generate features on build dependency change
boolean generateFeaturesSuccess = libertyGenerateFeatures(null, true);
if (generateFeaturesSuccess) {
util.javaSourceClassPaths.clear();
};
} else if (installFeatures) {
libertyInstallFeature();
}
Expand Down

0 comments on commit 0710e24

Please sign in to comment.