This is an automated email from the ASF dual-hosted git repository.

aw pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/yetus.git


The following commit(s) were added to refs/heads/master by this push:
     new 29770a3  YETUS-860. mvn dependency order needs special handling for 
version change (#55)
29770a3 is described below

commit 29770a34f867c1daffb9fec2d9d73882290aa445
Author: Allen Wittenauer <a...@apache.org>
AuthorDate: Fri May 17 07:26:25 2019 -0700

    YETUS-860. mvn dependency order needs special handling for version change 
(#55)
---
 precommit/src/main/shell/test-patch.d/maven.sh | 40 ++++++++++++++++++++++----
 1 file changed, 34 insertions(+), 6 deletions(-)

diff --git a/precommit/src/main/shell/test-patch.d/maven.sh 
b/precommit/src/main/shell/test-patch.d/maven.sh
index 09690ee..22ad6a4 100755
--- a/precommit/src/main/shell/test-patch.d/maven.sh
+++ b/precommit/src/main/shell/test-patch.d/maven.sh
@@ -25,6 +25,7 @@ fi
 MAVEN_CUSTOM_REPOS=false
 MAVEN_CUSTOM_REPOS_DIR="@@@WORKSPACE@@@/yetus-m2"
 MAVEN_DEPENDENCY_ORDER=true
+MAVEN_FOUND_ROOT_POM=false
 
 add_test_type mvnsite
 add_build_tool maven
@@ -269,6 +270,9 @@ function maven_filefilter
   if [[ ${filename} =~ pom\.xml$ ]]; then
     yetus_debug "tests/compile: ${filename}"
     add_test compile
+    if [[ "${filename}" =~ ^pom\.xml$ ]]; then
+      MAVEN_FOUND_ROOT_POM=true
+    fi
   fi
 }
 
@@ -474,7 +478,7 @@ function maven_builtin_personality_modules
   if [[ ${repostatus} == branch
         && ${testtype} == mvninstall ]] ||
      [[ "${BUILDMODE}" = full ]];then
-    personality_enqueue_module "${CHANGED_UNION_MODULES}"
+    personality_enqueue_module .
     return
   fi
 
@@ -610,7 +614,7 @@ function maven_precompile
 {
   declare repostatus=$1
   declare result=0
-  declare need=false
+  declare need=${2:-false}
 
   if [[ ${BUILDTOOL} != maven ]]; then
     return 0
@@ -625,11 +629,11 @@ function maven_precompile
     fi
   done
 
-  if [[ "${need}" = false ]]; then
+  if [[ "${need}" == false ]]; then
     return 0
   fi
 
-  if [[ "${repostatus}" = branch ]]; then
+  if [[ "${repostatus}" == branch ]]; then
     big_console_header "maven install: ${PATCH_BRANCH}"
   else
     big_console_header "maven install: ${BUILDMODE}"
@@ -690,8 +694,32 @@ function maven_reorder_module_process
     fi
   done
 
-  fn=$(module_file_fragment "${CHANGED_UNION_MODULES}")
-  pushd "${BASEDIR}/${CHANGED_UNION_MODULES}" >/dev/null || return 1
+  if [[ "${BUILDMODE}" == patch ]] && [[ "${MAVEN_FOUND_ROOT_POM}" == true ]]; 
then
+
+    echo ""
+    echo "Testing root pom.xml file for version change"
+    echo ""
+    fn=$(module_file_fragment "${CHANGED_UNION_MODULES}")
+    pushd "${BASEDIR}/${CHANGED_UNION_MODULES}" >/dev/null || return 1
+
+    # shellcheck disable=SC2046
+    echo_and_redirect \
+      "${PATCH_DIR}/maven-${repostatus}-version-${fn}.txt" \
+      $("${BUILDTOOL}_executor") \
+        "-fae" \
+        "org.apache.maven.plugins:maven-help-plugin:evaluate" \
+        '-Dexpression=project.version' \
+        "-Doutput=${PATCH_DIR}/maven-${repostatus}-version.txt"
+
+    projectversion=$(cat "${PATCH_DIR}/maven-${repostatus}-version.txt")
+
+    if [[ -z "${MAVEN_DETECTED_PROJECT_VERSION}" ]]; then
+      MAVEN_DETECTED_PROJECT_VERSION=${projectversion}
+    elif [[ "${MAVEN_DETECTED_PROJECT_VERSION}" != "${projectversion}" ]]; then
+      echo "Patch changes root pom.xml project.version: forcing an extra mvn 
install on the patched branch"
+      maven_precompile branch true
+    fi
+  fi
 
   # get the module directory list in the correct order based on maven 
dependencies
   # shellcheck disable=SC2046

Reply via email to