| #!/bin/bash |
| |
| readonly VALIDATION_DEPENDENCIES_MATCH='<!-- Insert dependencies here -->' |
| readonly VALIDATION_POM=validation.pom.xml |
| readonly POM_TEMPLATE_NAME=pom.template.xml |
| readonly TEMP_FILE=modules.xml |
| |
| readonly MVN_CLI='org.apache.maven.plugins:maven-enforcer-plugin:enforce -Denforcer.rules=dependencyConvergence' |
| |
| readonly DEPENDENCY_GENERATION_PATTERN='<dependency><groupId>${project.groupId}</groupId><artifactId>${project.artifactId}</artifactId><version>${jersey.version}</version></dependency>' |
| |
| # Path to this script |
| [ -h "${0}" ] && readonly SCRIPT_PATH="$(readlink "${0}")" || readonly SCRIPT_PATH="${0}" |
| |
| readonly CURRENT_LOCATION=$(dirname -- "${SCRIPT_PATH}") |
| readonly WS_DIR=$(cd ${CURRENT_LOCATION}; cd '../../..' ; pwd -P) |
| |
| #Prepare pom.xml from template |
| |
| cp -a ${CURRENT_LOCATION}/${POM_TEMPLATE_NAME} ${CURRENT_LOCATION}/${VALIDATION_POM} |
| |
| export JERSEY_VERSION=$(mvn exec:exec -Dexec.executable='echo' -Dexec.args='${project.version}' -f ${WS_DIR}/pom.xml -q -pl org.glassfish.jersey:project) |
| |
| echo "Validating convergences for Jersey "$JERSEY_VERSION |
| echo '****************************************************' |
| echo `mvn -v` |
| echo '****************************************************' |
| |
| #get list of modules to b validated |
| mvn -f ${WS_DIR}/pom.xml -Dexec.executable='echo' \ |
| -Dtests.excluded \ |
| -Dexec.args=${DEPENDENCY_GENERATION_PATTERN} \ |
| ${MVN_ARGS} \ |
| ${EXCLUDE_ARGS} \ |
| -pl '!:helloworld-benchmark' exec:exec -q > ${CURRENT_LOCATION}/${TEMP_FILE} |
| |
| #add the list of modules to the prepared pom.xml |
| sed -e "/${VALIDATION_DEPENDENCIES_MATCH}/ {" -e "r ${CURRENT_LOCATION}/${TEMP_FILE}" -e 'd' -e '}' -i ${CURRENT_LOCATION}/${VALIDATION_POM} |
| |
| #run validation |
| mvn ${MVN_ARGS} ${MVN_CLI} -f ${CURRENT_LOCATION}/${VALIDATION_POM} -Djersey.version=${JERSEY_VERSION} |
| |
| #clean the mess |
| rm ${CURRENT_LOCATION}/${TEMP_FILE} |