diff --git a/chutney/.env.nix b/.env.chutney.nix
similarity index 96%
rename from chutney/.env.nix
rename to .env.chutney.nix
index 62778789c..a9da24d16 100644
--- a/chutney/.env.nix
+++ b/.env.chutney.nix
@@ -9,6 +9,7 @@ mkShell {
buildInputs = [
unstable.nodejs_20
+ unstable.act
chromium
geckodriver
jdk
diff --git a/.envrc b/.envrc
new file mode 100644
index 000000000..69af45de3
--- /dev/null
+++ b/.envrc
@@ -0,0 +1,23 @@
+# Setup a working environment without hassle using nix and direnv
+# For more information, visit https://direnv.net/
+
+# Install node, npm and geckodriver by loading .env.chutney.nix expression
+use_nix .env.chutney.nix
+
+# Some tools (ex. Intellij) might need to configure paths to node, npm etc.
+# You can use following symlinks provided in .env folder
+
+## Create .env folder
+[[ ! -d .env.chutney ]] && mkdir .env.chutney && echo "Create .env.chutney folder"
+
+## Symlink npm home
+ln -sfn $(dirname "$(dirname "$(readlink -f $(which npm))")") .env.chutney/npm_home && echo "Symlink npm home dir"
+
+## Symlink JDK
+ln -sfn $JAVA_HOME .env.chutney/jdk && echo "Symlink jdk \"$JAVA_HOME\""
+
+## Symlink Node
+ln -sfn $(readlink -f $(which node)) .env.chutney/node && echo "Symlink node \"$(readlink -f $(which node))"
+
+# Run npm install if needed
+[[ ! -d ./chutney/ui/node_modules ]] && echo "node_modules not found. Starting npm install" && cd ./chutney/ui && npm install && cd -
diff --git a/chutney/.github/ISSUE_TEMPLATE/bug_report_form.yml b/.github/ISSUE_TEMPLATE/bug_report_form.yml
similarity index 85%
rename from chutney/.github/ISSUE_TEMPLATE/bug_report_form.yml
rename to .github/ISSUE_TEMPLATE/bug_report_form.yml
index 8fd2f6ccc..68dfc1178 100644
--- a/chutney/.github/ISSUE_TEMPLATE/bug_report_form.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report_form.yml
@@ -11,7 +11,19 @@ body:
🙌 Please, make sure your bug report is unique 🦄 !
Did you search issues labeled with Bug ? If you find anything relevant to you, up-vote 👍 or add a comment 💬 !
- For more information, please visit our [contribute section](https://github.com/chutney-testing/chutney/blob/master/CONTRIBUTING.md)
+ For more information, please visit our [contribute section](https://github.com/chutney-testing/chutney/blob/main/chutney/CONTRIBUTING.md)
+ - type: dropdown
+ id: component
+ attributes:
+ label: Which part of our software stack is concerned by the problem ?
+ multiple: true
+ options:
+ - Chutney
+ - Documentation
+ - IDEA plugin
+ - Kotlin DSL
+ validations:
+ required: true
- type: textarea
id: what-happened
attributes:
diff --git a/chutney/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
similarity index 100%
rename from chutney/.github/ISSUE_TEMPLATE/config.yml
rename to .github/ISSUE_TEMPLATE/config.yml
diff --git a/chutney/.github/ISSUE_TEMPLATE/feature_request_form.yml b/.github/ISSUE_TEMPLATE/feature_request_form.yml
similarity index 83%
rename from chutney/.github/ISSUE_TEMPLATE/feature_request_form.yml
rename to .github/ISSUE_TEMPLATE/feature_request_form.yml
index 9f54c9e61..2877bfe3c 100644
--- a/chutney/.github/ISSUE_TEMPLATE/feature_request_form.yml
+++ b/.github/ISSUE_TEMPLATE/feature_request_form.yml
@@ -8,6 +8,18 @@ body:
value: |
🙌 Please, make sure your feature request is unique 🦄 !
Did you search issues labeled with Enhancement ? If you find anything relevant to you, up-vote 👍 or add a comment 💬 !
+ - type: dropdown
+ id: component
+ attributes:
+ label: Which part of our software stack is concerned by the feature ?
+ multiple: true
+ options:
+ - Chutney
+ - Documentation
+ - IDEA plugin
+ - Kotlin DSL
+ validations:
+ required: true
- type: textarea
id: use-case
attributes:
diff --git a/.github/actions/build-chutney/action.yml b/.github/actions/build-chutney/action.yml
new file mode 100644
index 000000000..b77f43ee1
--- /dev/null
+++ b/.github/actions/build-chutney/action.yml
@@ -0,0 +1,53 @@
+name: 'build chutney'
+description: 'build chutney'
+inputs:
+ goals:
+ default: "clean install -V -B"
+ description: "Maven goals to execute"
+ cache-artifacts:
+ default: ""
+ description: "path of artifacts to be cached"
+runs:
+ using: "composite"
+ steps:
+ - name: Cache node
+ uses: actions/cache@v3
+ with:
+ path: '**/node'
+ key: node_cache
+
+ - name: Cache node_modules
+ uses: actions/cache@v3
+ with:
+ path: '**/node_modules'
+ key: node_module_cache
+
+ - uses: actions/checkout@v4
+
+ - name: Add the current IP address, long hostname and short hostname record to /etc/hosts file
+ if: ${{ ! contains(inputs.goals, '-DskipTests') }}
+ shell: bash
+ run: |
+ echo -e "$(ip addr show eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1)\t$(hostname -f) $(hostname -s)" | sudo tee -a /etc/hosts
+
+ - name: Build Chutney
+ shell: bash
+ run: |
+ cd ./chutney
+ echo "Running: ${{inputs.goals}}"
+ mvn ${{ inputs.goals }}
+ cd ..
+
+ - name: Codecov
+ if: ${{ ! contains(inputs.goals, '-DskipTests') }}
+ uses: codecov/codecov-action@v3
+
+ - name: Temporarily cache jar artifacts
+ if: inputs.cache-artifacts != ''
+ uses: actions/upload-artifact@v4
+ with:
+ name: chutney-artifacts
+ path: ${{inputs.cache-artifacts}}
+ retention-days: 1
+ overwrite: true
+
diff --git a/.github/actions/build-dsl/action.yml b/.github/actions/build-dsl/action.yml
new file mode 100644
index 000000000..0cc94d7c9
--- /dev/null
+++ b/.github/actions/build-dsl/action.yml
@@ -0,0 +1,31 @@
+name: 'build all projects'
+description: 'build all projects sequentially'
+inputs:
+ goals:
+ default: "clean build :chutney-kotlin-dsl:publishToMavenLocal"
+ description: "Gradle goals to execute"
+ cache-artifacts:
+ default: ""
+ description: "path of artifacts to be cached"
+
+runs:
+ using: "composite"
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Build DSL
+ shell: bash
+ run: |
+ cd ./kotlin-dsl
+ echo "Running: ${{inputs.goals}}"
+ ./gradlew ${{inputs.goals}} :chutney-kotlin-dsl:publishToMavenLocal
+ cd ..
+
+ - name: Temporarily cache jar artifacts
+ if: inputs.cache-artifacts != ''
+ uses: actions/upload-artifact@v4
+ with:
+ name: dsl-artifacts
+ path: ${{inputs.cache-artifacts}}
+ retention-days: 1
+ overwrite: true
diff --git a/.github/actions/build-plugin/action.yml b/.github/actions/build-plugin/action.yml
new file mode 100644
index 000000000..a39e70404
--- /dev/null
+++ b/.github/actions/build-plugin/action.yml
@@ -0,0 +1,31 @@
+name: 'build all projects'
+description: 'build all projects sequentially'
+inputs:
+ goals:
+ default: "clean buildPlugin"
+ description: "Gradle goals to execute"
+ cache-artifacts:
+ default: ""
+ description: "path of artifacts to be cached"
+
+runs:
+ using: "composite"
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Build Plugin
+ shell: bash
+ run: |
+ cd ./idea-plugin
+ echo "Running: ${{inputs.goals}}"
+ ./gradlew ${{inputs.goals}}
+ cd ..
+
+ - name: Temporarily cache jar artifacts
+ if: inputs.cache-artifacts != ''
+ uses: actions/upload-artifact@v4
+ with:
+ name: plugin-artifacts
+ path: ${{inputs.cache-artifacts}}
+ retention-days: 1
+ overwrite: true
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 000000000..3c3f9c0f3
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,9 @@
+version: 2
+updates:
+- package-ecosystem: maven
+ directory: "/chutney/"
+ schedule:
+ interval: monthly
+ open-pull-requests-limit: 10
+ labels:
+ - dependencies
diff --git a/chutney/.github/pull_request_template.md b/.github/pull_request_template.md
similarity index 100%
rename from chutney/.github/pull_request_template.md
rename to .github/pull_request_template.md
diff --git a/chutney/.github/release.yml b/.github/release.yml
similarity index 100%
rename from chutney/.github/release.yml
rename to .github/release.yml
diff --git a/.github/workflows/build-all-template.yml b/.github/workflows/build-all-template.yml
new file mode 100644
index 000000000..e0c74aeec
--- /dev/null
+++ b/.github/workflows/build-all-template.yml
@@ -0,0 +1,158 @@
+name: "Build all template"
+
+on:
+ workflow_call:
+ inputs:
+ skipTests:
+ default: false
+ type: boolean
+ description: "Skip tests if true"
+ release:
+ default: false
+ type: boolean
+ description: "Release if true"
+ cache-artifacts:
+ default: ""
+ type: string
+ description: "path of artifacts to be cached"
+ server-id:
+ type: string
+ default: github
+ description: "DistributionManagement repository id"
+
+ secrets:
+ gpg-private-key:
+ description: "Chutney gpg private key"
+ required: false
+ gpg-passphrase:
+ description: "Chutney gpg passphrase"
+ required: false
+ gpg-key-id:
+ description: "Chutney gpg key id"
+ required: false
+ maven-username:
+ description: "MAVEN_USERNAME secret"
+ required: false
+ maven-password:
+ description: "MAVEN_PASSWORD secret"
+ required: false
+ github-token:
+ description: "GITHUB_TOKEN secret"
+ required: false
+
+ outputs:
+ PROJECT_VERSION:
+ description: "Chutney Version"
+ value: ${{ jobs.all.outputs.PROJECT_VERSION }}
+
+defaults:
+ run:
+ working-directory: .
+
+jobs:
+ all:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ packages: write
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Setup JDK
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'temurin'
+ java-version: 17
+ cache: 'maven'
+ server-id: ${{inputs.server-id}}
+ server-username: MAVEN_USERNAME
+ server-password: MAVEN_PASSWORD
+ gpg-private-key: ${{ secrets.gpg-private-key }}
+ gpg-passphrase: CHUTNEY_GPG_PASSPHRASE
+
+ - uses: actions/checkout@v4
+ - name: Retrieve chutney version from pom.xml
+ id: get-version
+ run: cd ./chutney && echo "PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_OUTPUT && cd ..
+
+ - name: Resolve chutney maven goal from inputs
+ id: chutney-goals
+ run: |
+ skipTestArg=""
+ mvnGoals="clean install"
+ if ${{ inputs.skipTests }}; then
+ skipTestArg="-DskipTests"
+ fi
+ if ${{ inputs.release }}; then
+ mvnGoals="deploy -P ${{inputs.server-id}}"
+ skipTestArg="-DskipTests"
+ fi
+ echo "CHUTNEY_GOALS=$mvnGoals $skipTestArg -V -B" >> $GITHUB_OUTPUT
+
+ - name: Build Chutney
+ id: build-chutney
+ uses: ./.github/actions/build-chutney
+ env:
+ MAVEN_USERNAME: ${{secrets.maven-username}}
+ MAVEN_PASSWORD: ${{secrets.maven-password}}
+ CHUTNEY_GPG_PASSPHRASE: ${{ secrets.gpg-passphrase }}
+ with:
+ goals: ${{steps.chutney-goals.outputs.CHUTNEY_GOALS}}
+ cache-artifacts: ${{ inputs.cache-artifacts }}
+
+ - name: Install api-insecure
+ shell: bash
+ run: |
+ mvn org.apache.maven.plugins:maven-install-plugin:3.1.1:install-file \
+ -Dfile=./chutney/packaging/local-api-unsecure/target/chutney-local-api-unsecure-${{steps.get-version.outputs.PROJECT_VERSION}}.jar \
+ -DgroupId=com.chutneytesting \
+ -DartifactId=local-api-unsecure \
+ -Dversion=${{steps.get-version.outputs.PROJECT_VERSION}} \
+ -Dpackaging=jar
+
+ - name: Resolve dsl gradle goal from inputs
+ id: dsl-goals
+ run: |
+ skipTestArg=""
+ gradleGoals="clean build"
+ if ${{ inputs.skipTests }}; then
+ skipTestArg="-x test"
+ fi
+ if ${{ inputs.release }}; then
+ gradleGoals="publish -Pserver-id=${{inputs.server-id}}"
+ skipTestArg="-x test"
+
+ fi
+ echo "DSL_GOALS=$gradleGoals $skipTestArg" >> $GITHUB_OUTPUT
+
+ - name: Build DSL
+ uses: ./.github/actions/build-dsl
+ env:
+ MAVEN_USERNAME: ${{secrets.maven-username}}
+ MAVEN_PASSWORD: ${{secrets.maven-password}}
+ CHUTNEY_GPG_KEY_ID: ${{ secrets.gpg-key-id }}
+ CHUTNEY_GPG_KEY: ${{ secrets.gpg-private-key }}
+ CHUTNEY_GPG_PASSPHRASE: ${{ secrets.gpg-passphrase }}
+ with:
+ goals: ${{steps.dsl-goals.outputs.DSL_GOALS}}
+ cache-artifacts: ${{ inputs.cache-artifacts }}
+
+ - name: Resolve plugin gradle goal from inputs
+ if: ${{! inputs.release}}
+ id: plugin-goals
+ run: |
+ skipTestArg=""
+ if ${{ inputs.skipTests }}; then
+ skipTestArg="-x test"
+ fi
+ echo "PLUGIN_GOALS=clean buildPlugin $skipTestArg" >> $GITHUB_OUTPUT
+
+ - name: Build Plugin
+ if: ${{! inputs.release}}
+ uses: ./.github/actions/build-plugin
+ with:
+ goals: ${{steps.plugin-goals.outputs.PLUGIN_GOALS}}
+ cache-artifacts: ${{ inputs.cache-artifacts }}
+
+ outputs:
+ PROJECT_VERSION: ${{ steps.get-version.outputs.PROJECT_VERSION }}
diff --git a/.github/workflows/build-all.yml b/.github/workflows/build-all.yml
new file mode 100644
index 000000000..7a0de03ec
--- /dev/null
+++ b/.github/workflows/build-all.yml
@@ -0,0 +1,13 @@
+name: "Build all"
+
+on:
+ push:
+ branches: [ main ]
+ pull_request:
+ branches: [ main ]
+
+jobs:
+ build:
+ uses: ./.github/workflows/build-all-template.yml
+ with:
+ skipTests: ${{ startsWith(github.head_ref, 'release/') }}
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
new file mode 100644
index 000000000..e92169a20
--- /dev/null
+++ b/.github/workflows/codeql-analysis.yml
@@ -0,0 +1,73 @@
+# For most projects, this workflow file will not need changing; you simply need
+# to commit it to your repository.
+#
+# You may wish to alter this file to override the set of languages analyzed,
+# or to provide custom queries or build logic.
+#
+# ******** NOTE ********
+# We have attempted to detect the languages in your repository. Please check
+# the `language` matrix defined below to confirm you have the correct set of
+# supported CodeQL languages.
+#
+name: "CodeQL"
+
+on:
+ push:
+ branches: [ main ]
+ paths-ignore:
+ - 'docs/**'
+
+jobs:
+ codeql-analyze:
+ runs-on: ubuntu-latest
+ permissions:
+ actions: read
+ contents: read
+ security-events: write
+
+ strategy:
+ fail-fast: false
+ matrix:
+ language: [ 'java', 'javascript', 'typescript', 'kotlin' ]
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
+ # Learn more about CodeQL language support at https://git.io/codeql-language-support
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Set up JDK 17
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'temurin'
+ java-version: 17
+ cache: "maven"
+
+ # Initializes the CodeQL tools for scanning.
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v2
+ with:
+ languages: ${{ matrix.language }}
+ # If you wish to specify custom queries, you can do so here or in a config file.
+ # By default, queries listed here will override any specified in a config file.
+ # Prefix the list here with "+" to use these queries and those in the config file.
+ # queries: ./path/to/local/query, your-org/your-repo/queries@main
+
+ # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
+ # If this step fails, then you should remove it and run the build manually (see below)
+ - name: Autobuild
+ uses: github/codeql-action/autobuild@v2
+
+ # ℹ️ Command-line programs to run using the OS shell.
+ # 📚 https://git.io/JvXDl
+
+ # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
+ # and modify them (or add more) to build your code if your project
+ # uses a compiled language
+
+ #- run: |
+ # make bootstrap
+ # make release
+
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@v2
diff --git a/chutney/.github/workflows/dependency-convergence.yml b/.github/workflows/convergence-chutney.yml
similarity index 51%
rename from chutney/.github/workflows/dependency-convergence.yml
rename to .github/workflows/convergence-chutney.yml
index 54cac009f..6ff662cf4 100644
--- a/chutney/.github/workflows/dependency-convergence.yml
+++ b/.github/workflows/convergence-chutney.yml
@@ -1,27 +1,29 @@
-name: Convergence
+name: "Chutney Dependency Convergence"
on:
- push:
- branches: [ 'release/**' ]
pull_request:
- branches: [ master ]
+ branches: [ main ]
+ paths:
+ - 'chutney/**'
+
+defaults:
+ run:
+ working-directory: ./chutney
jobs:
- build:
+ convergence-chutney:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: Set up JDK 17
- uses: actions/setup-java@v2
+ uses: actions/setup-java@v4
with:
- distribution: 'adopt'
+ distribution: 'temurin'
java-version: 17
- name: Cache maven
- uses: actions/cache@v2.1.3
+ uses: actions/cache@v3
with:
path: ~/.m2/repository
key: maven_cache
- name: Build with Maven
- env:
- BUILD_ENV: 'github-actions'
run: mvn -B -V validate -Dconvergence -fae
diff --git a/.github/workflows/release-docker-template.yml b/.github/workflows/release-docker-template.yml
new file mode 100644
index 000000000..ee7516990
--- /dev/null
+++ b/.github/workflows/release-docker-template.yml
@@ -0,0 +1,62 @@
+name: "Release docker images on ghcr"
+
+on:
+ workflow_call:
+ inputs:
+ version:
+ type: string
+ description: "Project version"
+ secrets:
+ github-token:
+ description: "GITHUB_TOKEN secret"
+ required: true
+
+jobs:
+ publish-server-image:
+ name: Publish server docker image on ghcr
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ packages: write
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Download server artifacts
+ uses: actions/download-artifact@v4
+ with:
+ name: chutney-artifacts
+ path: artifacts
+
+ - name: Login to Github Packages
+ uses: docker/login-action@v1
+ with:
+ registry: ghcr.io
+ username: ${{ github.actor }}
+ password: ${{ secrets.github-token }}
+
+ - name: Build and push server docker image
+ uses: docker/build-push-action@v2
+ with:
+ context: ${{ github.workspace }}
+ file: ${{ github.workspace }}/chutney/.docker/server/Dockerfile
+ tags: |
+ ghcr.io/chutney-testing/chutney/server:latest
+ ghcr.io/chutney-testing/chutney/server:${{ inputs.version }}
+ push: true
+ build-args: |
+ JAR_PATH=artifacts/chutney/packaging/local-dev/target
+
+ - name: Build and push ui docker image
+ uses: docker/build-push-action@v2
+ with:
+ context: ${{ github.workspace }}
+ file: ${{ github.workspace }}/chutney/.docker/ui/Dockerfile
+ tags: |
+ ghcr.io/chutney-testing/chutney/ui:latest
+ ghcr.io/chutney-testing/chutney/ui:${{ inputs.version }}
+ push: true
+ build-args: |
+ WEBSITE=artifacts/chutney/ui/dist
+ CONF=chutney/.docker/ui
+
+
diff --git a/docs/.github/workflows/publish.yml b/.github/workflows/release-docs.yml
similarity index 65%
rename from docs/.github/workflows/publish.yml
rename to .github/workflows/release-docs.yml
index c61b509b7..fd58c34be 100644
--- a/docs/.github/workflows/publish.yml
+++ b/.github/workflows/release-docs.yml
@@ -1,13 +1,21 @@
-name: docs
+name: "Publish Documentation"
+
on:
push:
branches:
- main
+ paths:
+ - 'docs/**'
+
+defaults:
+ run:
+ working-directory: ./docs
+
jobs:
- deploy:
+ publish-doc:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- uses: actions/setup-python@v2
with:
python-version: 3.x
diff --git a/.github/workflows/release-github-template.yml b/.github/workflows/release-github-template.yml
new file mode 100644
index 000000000..b46ba7df8
--- /dev/null
+++ b/.github/workflows/release-github-template.yml
@@ -0,0 +1,56 @@
+name: "Release on Github"
+
+on:
+ workflow_call:
+
+jobs:
+ create-github-release:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Create github release
+ id: create_release
+ uses: actions/create-release@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ tag_name: ${{ github.ref }}
+ release_name: Release ${{ github.ref }}
+ body: 'TODO'
+ draft: false
+ prerelease: false
+ outputs:
+ RELEASE_PATH: ${{ steps.create_release.outputs.upload_url }}
+
+ publish-to-github-maven-registry:
+ uses: ./.github/workflows/build-all-template.yml
+ if: ${{ contains(github.ref_name, 'RC') }}
+ with:
+ release: true
+ secrets:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ maven-username: ${{ github.actor }}
+ maven-password: ${{ secrets.GITHUB_TOKEN }}
+
+
+ upload-plugin-to-release:
+ needs: [ create-github-release]
+ runs-on: ubuntu-latest
+ steps:
+ - name: get plugin artifacts from build job
+ uses: actions/download-artifact@v4
+ with:
+ name: plugin-artifacts
+ path: artifacts
+
+ - name: Upload artifacts to github release
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ needs.create-github-release.outputs.RELEASE_PATH }}
+ asset_path: artifacts/idea-plugin/build/distributions/chutney-idea-plugin-${{ github.ref_name }}.zip
+ asset_name: chutney-idea-plugin-${{ github.ref_name }}.zip
+ asset_content_type: application/zip
+
+
+
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 000000000..899bb4b8b
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,45 @@
+name: "Release all"
+
+on:
+ push:
+ tags:
+ - '*.*.*'
+ - '*.*.*-RC'
+ - '*.*.*-RC*'
+
+jobs:
+ build:
+ uses: ./.github/workflows/build-all-template.yml
+ with:
+ skipTests: true
+ cache-artifacts: |
+ chutney/packaging/local-dev/target/chutney-local-dev-*.jar
+ idea-plugin/build/distributions/*.zip
+ chutney/ui/dist
+
+ release-github:
+ needs: [ build ]
+ uses: ./.github/workflows/release-github-template.yml
+
+ release-to-OSSRH:
+ if: ${{ ! contains(github.ref_name, 'RC') }}
+ needs: [ build ]
+ uses: ./.github/workflows/build-all-template.yml
+ with:
+ release: true
+ server-id: ossrh
+ secrets:
+ gpg-private-key: ${{secrets.CHUTNEY_GPG_PRIVATE_KEY}}
+ gpg-passphrase: ${{ secrets.CHUTNEY_GPG_PASSPHRASE }}
+ gpg-key-id: ${{ secrets.CHUTNEY_GPG_KEY_ID }}
+ maven-username: ${{ secrets.OSSRH_USERNAME }}
+ maven-password: ${{ secrets.OSSRH_PASSWORD }}
+
+ release-docker:
+ needs: [ build ]
+ uses: ./.github/workflows/release-docker-template.yml
+ with:
+ version: ${{needs.build.outputs.PROJECT_VERSION}}
+ secrets:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..03f2c68e1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,24 @@
+######################
+# Intellij
+######################
+**/.idea/*
+!.idea/codeStyleSettings.xml
+!.idea/codeStyles
+!.idea/runConfigurations
+!.idea/copyright
+!.idea/scopes
+*.iml
+*.iws
+*.ipr
+*.ids
+*.orig
+
+
+######################
+# Visual Studio Code
+######################
+.vscode/
+**/.sts4-cache
+
+
+.env.chutney
diff --git a/chutney/.idea/codeStyleSettings.xml b/.idea/codeStyleSettings.xml
similarity index 100%
rename from chutney/.idea/codeStyleSettings.xml
rename to .idea/codeStyleSettings.xml
diff --git a/chutney/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
similarity index 100%
rename from chutney/.idea/codeStyles/Project.xml
rename to .idea/codeStyles/Project.xml
diff --git a/chutney/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
similarity index 100%
rename from chutney/.idea/codeStyles/codeStyleConfig.xml
rename to .idea/codeStyles/codeStyleConfig.xml
diff --git a/chutney/.idea/copyright/apache2.xml b/.idea/copyright/apache2.xml
similarity index 100%
rename from chutney/.idea/copyright/apache2.xml
rename to .idea/copyright/apache2.xml
diff --git a/chutney/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
similarity index 100%
rename from chutney/.idea/copyright/profiles_settings.xml
rename to .idea/copyright/profiles_settings.xml
diff --git a/.idea/runConfigurations/install_local_api_unsecure_jar.xml b/.idea/runConfigurations/install_local_api_unsecure_jar.xml
new file mode 100644
index 000000000..f02b1b08f
--- /dev/null
+++ b/.idea/runConfigurations/install_local_api_unsecure_jar.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/chutney/.idea/runConfigurations/server_all_tests.xml b/.idea/runConfigurations/server_all_tests.xml
similarity index 89%
rename from chutney/.idea/runConfigurations/server_all_tests.xml
rename to .idea/runConfigurations/server_all_tests.xml
index b83aa01eb..1a7cd5e00 100644
--- a/chutney/.idea/runConfigurations/server_all_tests.xml
+++ b/.idea/runConfigurations/server_all_tests.xml
@@ -11,9 +11,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/chutney/.idea/runConfigurations/server_integration_tests.xml b/.idea/runConfigurations/server_integration_tests.xml
similarity index 91%
rename from chutney/.idea/runConfigurations/server_integration_tests.xml
rename to .idea/runConfigurations/server_integration_tests.xml
index 21a290869..b8b7057c5 100644
--- a/chutney/.idea/runConfigurations/server_integration_tests.xml
+++ b/.idea/runConfigurations/server_integration_tests.xml
@@ -12,7 +12,7 @@
-
+
diff --git a/chutney/.idea/runConfigurations/server_unit_tests.xml b/.idea/runConfigurations/server_unit_tests.xml
similarity index 91%
rename from chutney/.idea/runConfigurations/server_unit_tests.xml
rename to .idea/runConfigurations/server_unit_tests.xml
index ca757ff97..021beca95 100644
--- a/chutney/.idea/runConfigurations/server_unit_tests.xml
+++ b/.idea/runConfigurations/server_unit_tests.xml
@@ -10,7 +10,7 @@
-
+
diff --git a/.idea/runConfigurations/start_angular_app.xml b/.idea/runConfigurations/start_angular_app.xml
new file mode 100644
index 000000000..1875bad4e
--- /dev/null
+++ b/.idea/runConfigurations/start_angular_app.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/chutney/.idea/runConfigurations/start_local_server.xml b/.idea/runConfigurations/start_local_server.xml
similarity index 89%
rename from chutney/.idea/runConfigurations/start_local_server.xml
rename to .idea/runConfigurations/start_local_server.xml
index 2d336500e..78afac7aa 100644
--- a/chutney/.idea/runConfigurations/start_local_server.xml
+++ b/.idea/runConfigurations/start_local_server.xml
@@ -5,6 +5,7 @@
+
@@ -13,4 +14,4 @@
-
+
\ No newline at end of file
diff --git a/chutney/.idea/scopes/java.xml b/.idea/scopes/java.xml
similarity index 100%
rename from chutney/.idea/scopes/java.xml
rename to .idea/scopes/java.xml
diff --git a/chutney/.idea/scopes/ts.xml b/.idea/scopes/ts.xml
similarity index 100%
rename from chutney/.idea/scopes/ts.xml
rename to .idea/scopes/ts.xml
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 000000000..825c32f0d
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1 @@
+# Changelog
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 000000000..f41d34790
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,7 @@
+# Contributing
+
+### [Chutney](chutney/CHANGELOG.md)
+### [Kotlin DSL](kotlin-dsl/CONTRIBUTING.md)
+### [Idea plugin](idea-plugin/CONTRIBUTING.md)
+### [Documentation](docs/CONTRIBUTING.md)
+
diff --git a/GETTING_STARTED.md b/GETTING_STARTED.md
new file mode 100644
index 000000000..555efefcc
--- /dev/null
+++ b/GETTING_STARTED.md
@@ -0,0 +1,6 @@
+## Getting Started
+
+### [Chutney](chutney/GETTING_STARTED.md)
+### [Kotlin DSL](kotlin-dsl/GETTING_STARTED.md)
+### [Idea plugin](idea-plugin/GETTING_STARTED.md)
+### [Documentation](docs/GETTING_STARTED.md)
diff --git a/chutney/LICENSE b/LICENSE
similarity index 100%
rename from chutney/LICENSE
rename to LICENSE
diff --git a/chutney/README.md b/README.md
similarity index 76%
rename from chutney/README.md
rename to README.md
index 94648b585..daa4cd31f 100644
--- a/chutney/README.md
+++ b/README.md
@@ -1,10 +1,9 @@
-#
+#
## Spice up your spec , Better `taste` your app !
-[![Build](https://github.com/chutney-testing/chutney/workflows/Build/badge.svg?branch=master)](https://github.com/chutney-testing/chutney/actions)
+[![Build](https://github.com/chutney-testing/chutney/actions/workflows/build-all.yml/badge.svg?branch=main)](https://github.com/chutney-testing/chutney/actions/workflows/build-all.yml)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/559893368d134d729b204891e3ce0239)](https://www.codacy.com/gh/chutney-testing/chutney?utm_source=github.com&utm_medium=referral&utm_content=chutney-testing/chutney&utm_campaign=Badge_Grade)
[![Coverage Status](https://codecov.io/gh/chutney-testing/chutney/branch/master/graph/badge.svg)](https://codecov.io/gh/chutney-testing/chutney/)
-[![FOSSA Status](https://app.fossa.com/api/projects/custom%2B8595%2Fgit%40github.com%3Achutney-testing%2Fchutney.git.svg?type=shield)](https://app.fossa.com/projects/custom%2B8595%2Fgit%40github.com%3Achutney-testing%2Fchutney.git?ref=badge_shield)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.chutneytesting/server/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.chutneytesting/server)
[![Zulip chat](https://img.shields.io/badge/zulip-join_chat-brightgreen.svg)](https://chutney-testing.zulipchat.com/)
@@ -15,10 +14,10 @@ a web front end, and an edition server to create and edit your scenarios, consul
Chutney scenarios are declarative. They provide functional requirements and technical details (needed for automation) in a single view.
-Those technical details are provided by generic [Actions](https://github.com/chutney-testing/chutney/blob/master/action-spi/src/main/java/com/chutneytesting/action/spi/Action.java) (such as HTTP, AMQP, MongoDB, Kafka, Selenium, etc.)
+Those technical details are provided by generic [Actions](https://github.com/chutney-testing/chutney/blob/main/chutney/action-spi/src/main/java/com/chutneytesting/action/spi/Action.java) (such as HTTP, AMQP, MongoDB, Kafka, Selenium, etc.)
Those Tasks are extensions, and you can easily develop yours, even proprietary or non-generic one, and include them in your own release.
-In addition, Chutney provide SpEL evaluation and extensible [Function](https://github.com/chutney-testing/chutney/blob/master/action-spi/src/main/java/com/chutneytesting/action/spi/SpelFunction.java) in order to ease the use of managing scenario data like JSON path or Date comparison.
+In addition, Chutney provide SpEL evaluation and extensible [Function](https://github.com/chutney-testing/chutney/blob/main/chutney/action-spi/src/main/java/com/chutneytesting/action/spi/SpelFunction.java) in order to ease the use of managing scenario data like JSON path or Date comparison.
[Find out more in the documentation !](https://www.chutney-testing.com/)
@@ -52,11 +51,11 @@ You don't need to be a developer to contribute, nor do much, you can simply:
* etc.
To help you start, we invite you to read:
-* [Contributing](CONTRIBUTING.md), which gives you rules and code conventions to respect
-* [Getting started](GETTING_STARTED.md), which document :
+* [Contributing](chutney/CONTRIBUTING.md), which gives you rules and code conventions to respect
+* [Getting started](chutney/GETTING_STARTED.md), which document :
* How to install and use Chutney as a User
* How to install and setup the required environment for developing
-* [Help Wanted](HELP_WANTED.md), if you wish to help us, but you don't know where to start, you might find some ideas in here !
+* [Help Wanted](chutney/HELP_WANTED.md), if you wish to help us, but you don't know where to start, you might find some ideas in here !
To contribute to this documentation (README, CONTRIBUTING, etc.), we conforms to the [CommonMark Spec](https://spec.commonmark.org/)
@@ -75,6 +74,7 @@ For a more informal place to chat, if you worry about feeling dumb in the open o
Core contributors :
* [Mael Besson](https://github.com/bessonm)
* [Nicolas Brouand](https://github.com/nbrouand)
+ * [Alexandre Delaunay](https://github.com/DelaunayAlex)
* [Matthieu Gensollen](https://github.com/boddissattva)
* [Karim Goubbaa](https://github.com/KarimGl)
* [Loic Ledoyen](https://github.com/ledoyen)
@@ -99,10 +99,6 @@ Chutney has been successfully applied to ease the automation of hundreds of manu
### Horizons
Chutney original vision strive to ease the collaboration of the 3 amigos (business people, testers and developers).
-Over the past 2 years Chutney has diverged from our initial goals due to contextual reasons, but we learnt a lot on the way.
+Over the years Chutney has diverged from our initial goals due to contextual reasons, but we learnt a lot on the way.
On the horizon we want to provide a custom and seamless experience to each profile of the 3 amigos. This is still a **work in progress**
-
-## Architecture Overview
-
-![archi](https://user-images.githubusercontent.com/7816908/132717205-bb092328-e639-4a80-90d4-f1cdabe7e8a4.jpg)
diff --git a/chutney/.docker/ui/Dockerfile b/chutney/.docker/ui/Dockerfile
index 1aee6c2b7..645664499 100644
--- a/chutney/.docker/ui/Dockerfile
+++ b/chutney/.docker/ui/Dockerfile
@@ -1,7 +1,8 @@
FROM nginx:1.17.3-alpine
ARG WEBSITE=ui/dist
+ARG CONF=.docker/ui
COPY $WEBSITE/chutney /usr/share/nginx/html
-COPY .docker/ui/nginx/nginx.conf /etc/nginx/conf.d/default.conf
-COPY .docker/ui/certif /certif
+COPY $CONF/nginx/nginx.conf /etc/nginx/conf.d/default.conf
+COPY $CONF/certif /certif
LABEL org.opencontainers.image.source https://github.com/chutney-testing/chutney
EXPOSE 80 443
diff --git a/chutney/.envrc b/chutney/.envrc
deleted file mode 100644
index e78ddfa7c..000000000
--- a/chutney/.envrc
+++ /dev/null
@@ -1,24 +0,0 @@
-# Setup a working environment without hassle using nix and direnv
-# For more information, visit https://direnv.net/
-
-# Install node, npm and geckodriver by loading .env.nix expression
-use_nix .env.nix
-
-# Some tools (ex. Intellij) might need to configure paths to node, npm etc.
-# You can use following symlinks provided in .env folder
-
-## Create .env folder
-[[ ! -d .env ]] && mkdir .env && echo "Create .env folder"
-
-## Symlink npm home
-ln -sfn $(dirname "$(dirname "$(readlink -f $(which npm))")") .env/npm_home && echo "Symlink npm home dir"
-
-## Symlink JDK
-ln -sfn $JAVA_HOME .env/jdk && echo "Symlink jdk \"$JAVA_HOME\""
-
-## Symlink Node
-ln -sfn $(readlink -f $(which node)) .env/node && echo "Symlink node \"$(readlink -f $(which node))"
-
-
-# Run npm install if needed
-[[ ! -d ./ui/node_modules ]] && echo "node_modules not found. Starting npm install" && cd ui && npm install && cd ..
diff --git a/chutney/.github/dependabot.yml b/chutney/.github/dependabot.yml
deleted file mode 100644
index 8e3a22c2f..000000000
--- a/chutney/.github/dependabot.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-version: 2
-updates:
-- package-ecosystem: maven
- directory: "/"
- schedule:
- interval: monthly
- open-pull-requests-limit: 10
- labels:
- - dependencies
- ignore:
- - dependency-name: com.github.tomakehurst:wiremock-standalone
- versions:
- - 2.27.2
- - dependency-name: org.apache.maven.plugins:maven-resources-plugin
- versions:
- - 3.2.0
- - dependency-name: com.orientechnologies:orientdb-core
- versions:
- - 3.1.7
- - dependency-name: org.eclipse.jgit:org.eclipse.jgit
- versions:
- - 5.10.0.202012080955-r
- - dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-guava
- versions:
- - 2.12.1
- - dependency-name: com.fasterxml.jackson.datatype:jackson-datatypes-collections
- versions:
- - 2.12.1
diff --git a/chutney/.github/workflows/codeql-analysis.yml b/chutney/.github/workflows/codeql-analysis.yml
deleted file mode 100644
index 82e89c83e..000000000
--- a/chutney/.github/workflows/codeql-analysis.yml
+++ /dev/null
@@ -1,71 +0,0 @@
-# For most projects, this workflow file will not need changing; you simply need
-# to commit it to your repository.
-#
-# You may wish to alter this file to override the set of languages analyzed,
-# or to provide custom queries or build logic.
-#
-# ******** NOTE ********
-# We have attempted to detect the languages in your repository. Please check
-# the `language` matrix defined below to confirm you have the correct set of
-# supported CodeQL languages.
-#
-name: "CodeQL"
-
-on:
- push:
- branches: [ master ]
-
-jobs:
- analyze:
- name: Analyze
- runs-on: ubuntu-latest
- permissions:
- actions: read
- contents: read
- security-events: write
-
- strategy:
- fail-fast: false
- matrix:
- language: [ 'java', 'javascript' ]
- # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
- # Learn more about CodeQL language support at https://git.io/codeql-language-support
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v2
-
- - name: Set up JDK 17
- uses: actions/setup-java@v2
- with:
- distribution: 'adopt'
- java-version: 17
-
- # Initializes the CodeQL tools for scanning.
- - name: Initialize CodeQL
- uses: github/codeql-action/init@v2
- with:
- languages: ${{ matrix.language }}
- # If you wish to specify custom queries, you can do so here or in a config file.
- # By default, queries listed here will override any specified in a config file.
- # Prefix the list here with "+" to use these queries and those in the config file.
- # queries: ./path/to/local/query, your-org/your-repo/queries@main
-
- # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
- # If this step fails, then you should remove it and run the build manually (see below)
- - name: Autobuild
- uses: github/codeql-action/autobuild@v2
-
- # ℹ️ Command-line programs to run using the OS shell.
- # 📚 https://git.io/JvXDl
-
- # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
- # and modify them (or add more) to build your code if your project
- # uses a compiled language
-
- #- run: |
- # make bootstrap
- # make release
-
- - name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v2
diff --git a/chutney/.github/workflows/maven.yml b/chutney/.github/workflows/maven.yml
deleted file mode 100644
index 8880c5f73..000000000
--- a/chutney/.github/workflows/maven.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-# This workflow will build a Java project with Maven
-# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
-
-name: Build
-
-on:
- push:
- branches: [ master ]
- pull_request:
- branches: [ master ]
-
-jobs:
- build:
-
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v2
- - name: Set up JDK 17
- uses: actions/setup-java@v2
- with:
- distribution: 'adopt'
- java-version: 17
- - name: Cache maven
- uses: actions/cache@v2.1.3
- with:
- path: ~/.m2/repository
- key: maven_cache
- - name: Cache node
- uses: actions/cache@v2.1.3
- with:
- path: '**/node'
- key: node_16.15.0_cache
- - name: Cache node_modules
- uses: actions/cache@v2.1.3
- with:
- path: '**/node_modules'
- key: node_16.15.0_module_cache
- - name: Add the current IP address, long hostname and short hostname record to /etc/hosts file
- run: |
- echo -e "$(ip addr show eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1)\t$(hostname -f) $(hostname -s)" | sudo tee -a /etc/hosts
- - name: Build with Maven
- env:
- BUILD_ENV: 'github-actions'
- run: mvn -B -V verify
- - name: Codecov
- uses: codecov/codecov-action@v1.2.1
diff --git a/chutney/.github/workflows/release.yml b/chutney/.github/workflows/release.yml
deleted file mode 100644
index 2eb51f288..000000000
--- a/chutney/.github/workflows/release.yml
+++ /dev/null
@@ -1,169 +0,0 @@
-name: Release
-
-on:
- push:
- tags:
- - '*.*.*'
-jobs:
- deploy:
- runs-on: ubuntu-latest
- name: Deploy to central
- steps:
- - uses: actions/checkout@v2
- - name: Set release version environment variable
- run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
-
- - name: Set up build
- uses: actions/setup-java@v2
- with:
- distribution: 'adopt'
- java-version: 17
- server-id: ossrh
- server-username: OSSRH_USERNAME
- server-password: OSSRH_PASSWORD
- gpg-private-key: ${{ secrets.CHUTNEY_GPG_PRIVATE_KEY }}
- gpg-passphrase: CHUTNEY_GPG_PASSPHRASE
-
- - name: Build with Maven
- env:
- BUILD_ENV: 'github-actions'
- run: mvn -B -V clean verify
-
- - name: Temporarily save server artifacts
- uses: actions/upload-artifact@v2
- with:
- name: server-artifacts
- path: |
- packaging/local-dev/target/chutney-local-dev-*.jar
- retention-days: 1
- - name: Temporarily save ui artifacts
- uses: actions/upload-artifact@v2
- with:
- name: ui-artifacts
- path: |
- ui/dist
- retention-days: 1
- - name: Publish to central
- run: mvn -DskipTests -Drelease=true deploy
- env:
- OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
- OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
- CHUTNEY_GPG_PASSPHRASE: ${{ secrets.CHUTNEY_GPG_PASSPHRASE }}
-
- - name: Create github release
- id: create_release
- uses: actions/create-release@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- tag_name: ${{ github.ref }}
- release_name: Release ${{ github.ref }}
- body: 'TODO'
- draft: false
- prerelease: false
-
- - name: Upload local-dev fatjar to github release
- id: upload-release-asset-fatjar-local-dev
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ${{ github.workspace }}/packaging/local-dev/target/chutney-local-dev-${{ env.RELEASE_VERSION }}.jar
- asset_name: chutney-local-dev-${{ env.RELEASE_VERSION }}.jar
- asset_content_type: application/jar
-
- - name: Upload local-dev signature to github release
- id: upload-release-asset-fatjar-sig-local-dev
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ${{ github.workspace }}/packaging/local-dev/target/chutney-local-dev-${{ env.RELEASE_VERSION }}.jar.asc
- asset_name: chutney-local-dev-${{ env.RELEASE_VERSION }}.jar.asc
- asset_content_type: application/pgp-signature
-
- - name: Upload local-api-unsecure fatjar to github release
- id: upload-release-asset-fatjar-local-api-unsecure
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ${{ github.workspace }}/packaging/local-api-unsecure/target/chutney-local-api-unsecure-${{ env.RELEASE_VERSION }}.jar
- asset_name: chutney-local-api-unsecure-${{ env.RELEASE_VERSION }}.jar
- asset_content_type: application/jar
-
- - name: Upload local-api-unsecure signature to github release
- id: upload-release-asset-fatjar-sig-local-api-unsecure
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ${{ github.workspace }}/packaging/local-api-unsecure/target/chutney-local-api-unsecure-${{ env.RELEASE_VERSION }}.jar.asc
- asset_name: chutney-local-api-unsecure-${{ env.RELEASE_VERSION }}.jar.asc
- asset_content_type: application/pgp-signature
- outputs:
- RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
-
- docker-deploy-server:
- runs-on: ubuntu-latest
- needs: [ deploy ]
- name: Deploy server to docker registry
- steps:
- - uses: actions/checkout@v2
- - name: Download server artifacts
- uses: actions/download-artifact@v2
- with:
- name: server-artifacts
- path: artifacts/server
- - name: Login to Github Packages
- uses: docker/login-action@v1
- with:
- registry: ghcr.io
- username: ${{ github.actor }}
- password: ${{ secrets.GITHUB_TOKEN }}
- - name: Build and push server docker image
- uses: docker/build-push-action@v2
- with:
- context: ${{ github.workspace }}
- file: ${{ github.workspace }}/.docker/server/Dockerfile
- tags: |
- ghcr.io/chutney-testing/chutney/server:latest
- ghcr.io/chutney-testing/chutney/server:${{ needs.deploy.outputs.RELEASE_VERSION }}
- push: true
- build-args: |
- JAR_PATH=artifacts/server
-
- docker-deploy-ui:
- runs-on: ubuntu-latest
- needs: [ deploy ]
- name: Deploy ui to docker registry
- steps:
- - uses: actions/checkout@v2
- - name: Download ui artifacts
- uses: actions/download-artifact@v2
- with:
- name: ui-artifacts
- path: artifacts/ui
- - name: Login to Github Packages
- uses: docker/login-action@v1
- with:
- registry: ghcr.io
- username: ${{ github.actor }}
- password: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Build and push ui docker image
- uses: docker/build-push-action@v2
- with:
- context: ${{ github.workspace }}
- file: ${{ github.workspace }}/.docker/ui/Dockerfile
- tags: |
- ghcr.io/chutney-testing/chutney/ui:latest
- ghcr.io/chutney-testing/chutney/ui:${{ needs.deploy.outputs.RELEASE_VERSION }}
- push: true
- build-args: |
- WEBSITE=artifacts/ui
-
diff --git a/chutney/.gitignore b/chutney/.gitignore
index 7966ebd03..982518656 100644
--- a/chutney/.gitignore
+++ b/chutney/.gitignore
@@ -45,25 +45,6 @@ ui/documentation.json
######################
.jqwik-database
-######################
-# Eclipse
-######################
-*.pydevproject
-.project
-.metadata
-tmp/
-tmp/**/*
-*.tmp
-*.bak
-*.swp
-*~.nib
-local.properties
-.classpath
-.settings/
-.loadpath
-.factorypath
-/src/main/resources/rebel.xml
-
# External tool builders
.externalToolBuilders/**
@@ -75,58 +56,24 @@ local.properties
# PDT-specific
.buildpath
-
-######################
-# Intellij
-######################
-**/.idea/*
-!.idea/codeStyleSettings.xml
-!.idea/codeStyles
-!.idea/runConfigurations
-!.idea/copyright
-!.idea/scopes
-*.iml
-*.iws
-*.ipr
-*.ids
-*.orig
classes/
/out
/out-tsc/
**/ui/out-tsc/
-######################
-# Visual Studio Code
-######################
-.vscode/
-**/.sts4-cache
-
######################
# Maven
######################
/log/
**/target/
-# Except for the target folder inside src
-!**/src/**/target/
.mvn/
+!/**/src/**/target/
######################
# Maven Wrapper
######################
!.mvn/wrapper/maven-wrapper.jar
-######################
-# Gradle
-######################
-.gradle/
-/build/
-classes/
-.gradletasknamecache
-
-######################
-# Gradle Wrapper
-######################
-!gradle/wrapper/gradle-wrapper.jar
######################
# Package Files
diff --git a/chutney/.idea/runConfigurations/Angular_CLI_Server.xml b/chutney/.idea/runConfigurations/Angular_CLI_Server.xml
deleted file mode 100644
index b74f0778f..000000000
--- a/chutney/.idea/runConfigurations/Angular_CLI_Server.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chutney/CONTRIBUTING.md b/chutney/CONTRIBUTING.md
index 32ad6646a..1491148cc 100644
--- a/chutney/CONTRIBUTING.md
+++ b/chutney/CONTRIBUTING.md
@@ -311,16 +311,15 @@ Do it first, because changelog updates should be part of the release being made.
Check page: [Automatically generated release notes](https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes)
Do not hesitate to update the release note generated especially the titles of pull request :)
-Use it to update [CHANGELOG.md](https://github.com/chutney-testing/chutney/blob/master/CHANGELOG.md)
+Use it to update [CHANGELOG.md](https://github.com/chutney-testing/chutney/blob/main/chutney/CHANGELOG.md)
### Releasing
In order to avoid committing unwanted files, we prefer to review changes with a pull request.
```shell
-mvn versions:set -pl '!packaging' -DnewVersion= -DgenerateBackupPoms=false
+mvn versions:set -DnewVersion= -DgenerateBackupPoms=false
mvn versions:set-scm-tag -DnewTag= -DgenerateBackupPoms=false
-mvn versions:set-property -Dproperty=chutney.version -DnewVersion= -DgenerateBackupPoms=false
git add .
git diff --staged
git commit -m "chore: Release "
@@ -361,9 +360,8 @@ In order to effectively release artifacts :
### Prepare next development
```shell
-mvn versions:set -pl '!packaging' -DnewVersion= -DgenerateBackupPoms=false
+mvn versions:set -DnewVersion= -DgenerateBackupPoms=false
mvn versions:set-scm-tag -DnewTag=HEAD -DgenerateBackupPoms=false
-mvn versions:set-property -Dproperty=chutney.version -DnewVersion= -DgenerateBackupPoms=false
git diff HEAD
git add . && git commit -m "chore: Prepare next development "
git push origin
diff --git a/chutney/GETTING_STARTED.md b/chutney/GETTING_STARTED.md
index d2ff70abb..47c2a0ba6 100644
--- a/chutney/GETTING_STARTED.md
+++ b/chutney/GETTING_STARTED.md
@@ -25,7 +25,7 @@ To launch Chutney in _local-dev_ mode, use
* [Npm] (https://www.npmjs.com/) - version 6.14.4 or higher - JavaScript package manager
-If you use **direnv** and **nix** packages manager, we provide 2 files for the ui module : [.env.nix](.env.nix) and [.envrc](.envrc).
+If you use **direnv** and **nix** packages manager, we provide 2 files for the ui module : [.env.nix](../.env.nix) and [.envrc](../.envrc).
Upon running **direnv allow** inside ui module folder, it will install node, npm, and some usefull symlinks you can use for configuring IDE or other tools.
@@ -56,4 +56,4 @@ Main class : com.chutneytesting.ServerBootstrap
- Run Unit Test: `mvn test`
- Chutney now eats its own dog food,
- [Glacio features](https://github.com/chutney-testing/glacio) in [server/src/test/resources/blackbox](server/src/test/resources/blackbox) are run by JUnit using [chutney-junit](https://github.com/chutney-testing/chutney-junit) and [glacio-adapter](glacio-adapter)
-- [run configuration for Intellij IDEA](.idea/runConfigurations)
+- [run configuration for Intellij IDEA](../.idea/runConfigurations)
diff --git a/chutney/packaging/local-api-unsecure/pom.xml b/chutney/packaging/local-api-unsecure/pom.xml
index c79602e34..04d248e4f 100644
--- a/chutney/packaging/local-api-unsecure/pom.xml
+++ b/chutney/packaging/local-api-unsecure/pom.xml
@@ -7,7 +7,7 @@
com.chutneytesting
packaging
- 0.0.1-never.change
+ 2.7.1-SNAPSHOT
local-api-unsecure
diff --git a/chutney/packaging/local-dev/README_SECRETS.md b/chutney/packaging/local-dev/README_SECRETS.md
index 590456d5c..59fd4c89a 100644
--- a/chutney/packaging/local-dev/README_SECRETS.md
+++ b/chutney/packaging/local-dev/README_SECRETS.md
@@ -96,7 +96,7 @@ mvn jasypt:decrypt-value -Djasypt.encryptor.private-key-location="file:src/main/
```
## 3- Hashing
-When using in memory authentication ([`mem-auth`](https://github.com/chutney-testing/chutney/blob/master/packaging/local-dev/src/main/resources/application.yml#:~:text=%2D-,mem%2Dauth,-%2D%20dev%2Dauth)), we need to hide passwords by hashing them.
+When using in memory authentication ([`mem-auth`](https://github.com/chutney-testing/chutney/blob/main/chutney/packaging/local-dev/src/main/resources/application.yml#:~:text=%2D-,mem%2Dauth,-%2D%20dev%2Dauth)), we need to hide passwords by hashing them.
Hash is calculated using [Bcrypt](https://en.wikipedia.org/wiki/Bcrypt).
### 3.a- generate bcrypt hash using spring boot cli
diff --git a/chutney/packaging/local-dev/pom.xml b/chutney/packaging/local-dev/pom.xml
index a62b3f854..85f8e31ab 100644
--- a/chutney/packaging/local-dev/pom.xml
+++ b/chutney/packaging/local-dev/pom.xml
@@ -7,7 +7,7 @@
com.chutneytesting
packaging
- 0.0.1-never.change
+ 2.7.1-SNAPSHOT
local-dev
diff --git a/chutney/packaging/pom.xml b/chutney/packaging/pom.xml
index 7eee5acd3..63ae8f56e 100644
--- a/chutney/packaging/pom.xml
+++ b/chutney/packaging/pom.xml
@@ -3,10 +3,12 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
-
- com.chutneytesting
+
+ com.chutneytesting
+ chutney-parent
+ 2.7.1-SNAPSHOT
+
packaging
- 0.0.1-never.change
pom
@@ -15,7 +17,7 @@
17
17
- 2.7.1-SNAPSHOT
+ ${project.version}
com.chutneytesting.ServerBootstrap
3.1.2
3.0.5
diff --git a/chutney/pom.xml b/chutney/pom.xml
index e164711e3..b7c6acdf2 100644
--- a/chutney/pom.xml
+++ b/chutney/pom.xml
@@ -681,27 +681,64 @@
-
-
- ossrh
- Central Repository OSSRH
- https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/
-
-
- ossrh
- https://s01.oss.sonatype.org/content/repositories/snapshots
-
-
- release
+ convergence
- release
+ convergence
true
+
+
+
+ org.apache.maven.plugins
+ maven-enforcer-plugin
+ 3.4.1
+
+
+ enforce
+
+
+
+
+ true
+
+
+ enforce
+
+
+
+
+
+
+
+
+ github
+
+
+ github
+ GitHub Packages
+ https://maven.pkg.github.com/chutney-testing/chutney
+
+
+
+
+
+ ossrh
+
+
+ ossrh
+ Central Repository OSSRH
+ https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/
+
+
+ ossrh
+ https://s01.oss.sonatype.org/content/repositories/snapshots
+
+
@@ -760,37 +797,5 @@
-
- convergence
-
-
- convergence
- true
-
-
-
-
-
- org.apache.maven.plugins
- maven-enforcer-plugin
- 3.4.1
-
-
- enforce
-
-
-
-
- true
-
-
- enforce
-
-
-
-
-
-
-
diff --git a/chutney/server/src/test/java/com/chutneytesting/admin/api/InfoControllerTest.java b/chutney/server/src/test/java/com/chutneytesting/admin/api/InfoControllerTest.java
index 7c4faffbf..e0cbec026 100644
--- a/chutney/server/src/test/java/com/chutneytesting/admin/api/InfoControllerTest.java
+++ b/chutney/server/src/test/java/com/chutneytesting/admin/api/InfoControllerTest.java
@@ -47,7 +47,7 @@ public void setUp() throws Exception {
@Test
public void should_return_chutney_version() throws Exception {
this.mockMvc.perform(get("/api/v1/info/build/version")).andDo(print()).andExpect(status().isOk())
- .andExpect(content().string(matchesRegex("\\d\\.\\d\\.\\d+(-SNAPSHOT)?")));
+ .andExpect(content().string(matchesRegex("\\d\\.\\d\\.\\d+(-SNAPSHOT|-rc\\.d+)?")));
}
@Test
diff --git a/docs/.github/ISSUE_TEMPLATE/bug_report_form.yml b/docs/.github/ISSUE_TEMPLATE/bug_report_form.yml
deleted file mode 100644
index db72577f3..000000000
--- a/docs/.github/ISSUE_TEMPLATE/bug_report_form.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-name: 🐛 Bug Report
-description: File a bug report
-title: "🐛 | "
-labels: ["bug", "triage"]
-body:
- - type: markdown
- attributes:
- value: |
- Thanks for taking the time to fill out this bug report!
-
- 🙌 Please, make sure your bug report is unique 🦄 !
- Did you search issues labeled with Bug ? If you find anything relevant to you, up-vote 👍 or add a comment 💬 !
-
- For more information, please visit our [contribute section](https://github.com/chutney-testing/chutney/blob/master/CONTRIBUTING.md)
- - type: textarea
- id: what-happened
- attributes:
- label: What happened?
- description: Describe the bug - What is the current behavior?
- placeholder: A clear and concise description of what actually happens
- validations:
- required: true
-
diff --git a/docs/.github/ISSUE_TEMPLATE/config.yml b/docs/.github/ISSUE_TEMPLATE/config.yml
deleted file mode 100644
index afbb369c0..000000000
--- a/docs/.github/ISSUE_TEMPLATE/config.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-blank_issues_enabled: false
-contact_links:
- - name: 🙋 Ask Questions, Get Help and Share ideas 💡
- url: https://github.com/chutney-testing/chutney/discussions
- about: A place to get help, Q&A, new ideas and discussions
- - name: 💬 Live chat and private messages
- url: https://chutney-testing.zulipchat.com/
- about: A more informal place to get in touch if you need it
- - name: 🌋 Security / Vulnerabilities
- url: https://chutney-testing.zulipchat.com/
- about: Please get in touch with us using private messages on our Zulip server
diff --git a/docs/.github/ISSUE_TEMPLATE/feature_request_form.yml b/docs/.github/ISSUE_TEMPLATE/feature_request_form.yml
deleted file mode 100644
index 3eefa3e3f..000000000
--- a/docs/.github/ISSUE_TEMPLATE/feature_request_form.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-name: 🙋 Ask a Question
-description: Ask a question or suggest an idea for this documentation
-title: "🙋 | "
-labels: ["question"]
-body:
- - type: markdown
- attributes:
- value: |
- 🙌 Please, make sure your question is unique 🦄 !
- Did you search issues labeled with Question ? If you find anything relevant to you, up-vote 👍 or add a comment 💬 !
- - type: textarea
- id: question
- attributes:
- label: Ask your question or suggest your idea !
- placeholder: A clear and concise question ?
- validations:
- required: true
- - type: textarea
- id: use-case
- attributes:
- label: Describe your use case
- placeholder: Describes the context in which you asked yourself this question.
- validations:
- required: false
diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md
new file mode 100644
index 000000000..c6c2803c4
--- /dev/null
+++ b/docs/CONTRIBUTING.md
@@ -0,0 +1,3 @@
+# Contributing
+
+
diff --git a/docs/GETTING_STARTED.md b/docs/GETTING_STARTED.md
new file mode 100644
index 000000000..51d19f19b
--- /dev/null
+++ b/docs/GETTING_STARTED.md
@@ -0,0 +1,3 @@
+## Getting Started
+
+todo
diff --git a/docs/docs/documentation/actions/amqp.md b/docs/docs/documentation/actions/amqp.md
index a43e3f7d2..fdbbc9f53 100644
--- a/docs/docs/documentation/actions/amqp.md
+++ b/docs/docs/documentation/actions/amqp.md
@@ -1,12 +1,12 @@
??? info "Browse implementations"
- - [Basic publish](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpBasicPublishAction.java){:target="_blank"}
- - [Basic consume](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpBasicConsumeAction.java){:target="_blank"}
- - [Basic get](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpBasicGetAction.java){:target="_blank"}
- - [Clean queues](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpCleanQueuesAction.java){:target="_blank"}
- - [Create and bind temporary queue](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpCreateBoundTemporaryQueueAction.java){:target="_blank"}
- - [Unbind queue](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpUnbindQueueAction.java){:target="_blank"}
- - [Delete queue](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpDeleteQueueAction.java){:target="_blank"}
+ - [Basic publish](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpBasicPublishAction.java){:target="_blank"}
+ - [Basic consume](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpBasicConsumeAction.java){:target="_blank"}
+ - [Basic get](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpBasicGetAction.java){:target="_blank"}
+ - [Clean queues](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpCleanQueuesAction.java){:target="_blank"}
+ - [Create and bind temporary queue](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpCreateBoundTemporaryQueueAction.java){:target="_blank"}
+ - [Unbind queue](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpUnbindQueueAction.java){:target="_blank"}
+ - [Delete queue](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpDeleteQueueAction.java){:target="_blank"}
!!! important "Target Configuration"
@@ -29,7 +29,7 @@
}
```
# Basic publish
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpBasicPublishAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpBasicPublishAction.java){:target="_blank"}"
Use this action to publish a message to an exchange.
@@ -77,7 +77,7 @@ Use this action to publish a message to an exchange.
```
# Basic consume
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpBasicConsumeAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpBasicConsumeAction.java){:target="_blank"}"
Use this action to consume messages from a queue.
@@ -138,7 +138,7 @@ Use this action to consume messages from a queue.
```
# Basic get
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpBasicGetAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpBasicGetAction.java){:target="_blank"}"
Use this action to have a direct access to available messages in a queue.
@@ -169,7 +169,7 @@ Use this action to have a direct access to available messages in a queue.
```
# Clean queues
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpCleanQueuesAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpCleanQueuesAction.java){:target="_blank"}"
Use this action to purges the content of the given queues.
For example, it can be used at the beginning of your scenario to ensure that used queues are empty.
@@ -201,7 +201,7 @@ For example, it can be used at the beginning of your scenario to ensure that use
# Create and bind temporary queue
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpCreateBoundTemporaryQueueAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpCreateBoundTemporaryQueueAction.java){:target="_blank"}"
Use this action to create a temporary queue and bind it to an existing exchange using a routing key.
@@ -236,7 +236,7 @@ Use this action to create a temporary queue and bind it to an existing exchange
# Unbind queue
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpUnbindQueueAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpUnbindQueueAction.java){:target="_blank"}"
Use this action to delete a binding between exchange and queue.
@@ -261,7 +261,7 @@ routingKey = "children.*"
```
# Delete queue
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpDeleteQueueAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/amqp/AmqpDeleteQueueAction.java){:target="_blank"}"
Use this action to delete an existing queue without regard for whether it is in use or has messages on it.
=== "Inputs"
diff --git a/docs/docs/documentation/actions/assertions.md b/docs/docs/documentation/actions/assertions.md
index 955af7c85..c21250e94 100644
--- a/docs/docs/documentation/actions/assertions.md
+++ b/docs/docs/documentation/actions/assertions.md
@@ -1,21 +1,21 @@
??? info "Browse implementations"
- Assertions
- - [Assert](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/AssertAction.java){:target="_blank"}
- - [JSON Assert](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/JsonAssertAction.java){:target="_blank"}
- - [XML Assert](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/XmlAssertAction.java){:target="_blank"}
+ - [Assert](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/AssertAction.java){:target="_blank"}
+ - [JSON Assert](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/JsonAssertAction.java){:target="_blank"}
+ - [XML Assert](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/XmlAssertAction.java){:target="_blank"}
- Validations
- - [JSON](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/JsonValidationAction.java){:target="_blank"}
- - [XML](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/XsdValidationAction.java){:target="_blank"}
+ - [JSON](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/JsonValidationAction.java){:target="_blank"}
+ - [XML](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/XsdValidationAction.java){:target="_blank"}
- Comparison
- - [Compare](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/CompareAction.java){:target="_blank"}
- - [JSON Compare](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/JsonCompareAction.java){:target="_blank"}
+ - [Compare](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/CompareAction.java){:target="_blank"}
+ - [JSON Compare](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/JsonCompareAction.java){:target="_blank"}
# Assertions
## Assert
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/AssertAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/AssertAction.java){:target="_blank"}"
This action takes a list of assertions written using [SpEL](https://docs.spring.io/spring-framework/docs/5.3.23/reference/html/core.html#expressions-language-ref){:target="_blank"} and validates they are all true.
=== "Inputs"
@@ -39,7 +39,7 @@ This action takes a list of assertions written using [SpEL](https://docs.spring.
## Json assert
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/JsonAssertAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/JsonAssertAction.java){:target="_blank"}"
Asserts that JSON nodes have expected values.
@@ -72,7 +72,7 @@ Asserts that JSON nodes have expected values.
## Xml assert
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/XmlAssertAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/XmlAssertAction.java){:target="_blank"}"
Asserts that XML nodes have expected values.
@@ -113,18 +113,18 @@ Placeholders used by [xml-assert](/documentation/actions/assertions/#xml-assert)
| Placeholder | Description | Example |
|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------|:---------------------------------------------------|
-| [`$isNull`](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/IsNullAsserter.java){:target="_blank"} | must be null | `"$isNull"` |
-| [`$isNotNull`](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/NotNullAsserter.java){:target="_blank"} | must be not null | `"$isNotNull"` |
-| [`$contains`](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/ContainsAsserter.java){:target="_blank"} | must contains given value | `"$contains:abcde"` |
-| [`$isBeforeDate`](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/BeforeDateAsserter.java){:target="_blank"} | must be before given date | `"$isBeforeDate:2010-01-01T11:12:13.1230Z"` |
-| [`$isAfterDate`](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/AfterDateAsserter.java){:target="_blank"} | must be after given date | `"$isAfterDate:1998-07-14T02:03:04.456Z"` |
-| [`$isEqualDate`](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/EqualDateAsserter.java){:target="_blank"} | must be equal to given date | `"$isEqualDate:2000-01-01T11:11:12.123+01:00"` |
-| [`$matches`](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/MatchesStringAsserter.java){:target="_blank"} | must match given regex | `"$matches:\\d{4}-\\d{2}-\\d{2}"` |
-| [`$isLessThan`](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/LessThanAsserter.java){:target="_blank"} | must be less than given number | `$isLessThan:42000` |
-| [`$isGreaterThan`](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/GreaterThanAsserter.java){:target="_blank"} | must be greater than given number | `$isGreaterThan:45` |
-| [`$isEmpty`](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/IsEmptyAsserter.java){:target="_blank"} | string or array must be empty | `"$isEmpty"` |
-| [`$lenientEqual`](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/LenientEqualAsserter.java){:target="_blank"} | must be equal to given json using lenient compare mode | `"$lenientEqual:{\"object\": {\"att\": \"val\"}}"` |
-| [`$value[index]`](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/ValueArrayAsserter.java){:target="_blank"} | array's element at index must have expected value | `"$value[0]:three"` |
+| [`$isNull`](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/IsNullAsserter.java){:target="_blank"} | must be null | `"$isNull"` |
+| [`$isNotNull`](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/NotNullAsserter.java){:target="_blank"} | must be not null | `"$isNotNull"` |
+| [`$contains`](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/ContainsAsserter.java){:target="_blank"} | must contains given value | `"$contains:abcde"` |
+| [`$isBeforeDate`](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/BeforeDateAsserter.java){:target="_blank"} | must be before given date | `"$isBeforeDate:2010-01-01T11:12:13.1230Z"` |
+| [`$isAfterDate`](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/AfterDateAsserter.java){:target="_blank"} | must be after given date | `"$isAfterDate:1998-07-14T02:03:04.456Z"` |
+| [`$isEqualDate`](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/EqualDateAsserter.java){:target="_blank"} | must be equal to given date | `"$isEqualDate:2000-01-01T11:11:12.123+01:00"` |
+| [`$matches`](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/MatchesStringAsserter.java){:target="_blank"} | must match given regex | `"$matches:\\d{4}-\\d{2}-\\d{2}"` |
+| [`$isLessThan`](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/LessThanAsserter.java){:target="_blank"} | must be less than given number | `$isLessThan:42000` |
+| [`$isGreaterThan`](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/GreaterThanAsserter.java){:target="_blank"} | must be greater than given number | `$isGreaterThan:45` |
+| [`$isEmpty`](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/IsEmptyAsserter.java){:target="_blank"} | string or array must be empty | `"$isEmpty"` |
+| [`$lenientEqual`](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/LenientEqualAsserter.java){:target="_blank"} | must be equal to given json using lenient compare mode | `"$lenientEqual:{\"object\": {\"att\": \"val\"}}"` |
+| [`$value[index]`](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/placeholder/ValueArrayAsserter.java){:target="_blank"} | array's element at index must have expected value | `"$value[0]:three"` |
# Validations
@@ -135,7 +135,7 @@ Placeholders used by [xml-assert](/documentation/actions/assertions/#xml-assert)
## Json validation
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/JsonValidationAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/JsonValidationAction.java){:target="_blank"}"
Validates JSON structure using a given schema.
@@ -189,7 +189,7 @@ Validates JSON structure using a given schema.
## Xml validation
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/XsdValidationAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/XsdValidationAction.java){:target="_blank"}"
Validates XML structure using a given schema.
@@ -276,7 +276,7 @@ Validates XML structure using a given schema.
# Comparison
## Compare
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/CompareAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/CompareAction.java){:target="_blank"}"
Compares two strings using a comparison mode.
@@ -314,7 +314,7 @@ Compares two strings using a comparison mode.
## Json compare
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/assertion/JsonCompareAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/assertion/JsonCompareAction.java){:target="_blank"}"
Compares two JSON inputs (the whole content or only some nodes) using a comparison mode.
diff --git a/docs/docs/documentation/actions/groovy.md b/docs/docs/documentation/actions/groovy.md
index f58d78e0b..8779d3e3b 100644
--- a/docs/docs/documentation/actions/groovy.md
+++ b/docs/docs/documentation/actions/groovy.md
@@ -1,4 +1,4 @@
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/groovy/GroovyAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/groovy/GroovyAction.java){:target="_blank"}"
This action executes a [Groovy](https://groovy-lang.org/documentation.html){:target="_blank"} script.
diff --git a/docs/docs/documentation/actions/http.md b/docs/docs/documentation/actions/http.md
index 803ccc315..b3321bcf8 100644
--- a/docs/docs/documentation/actions/http.md
+++ b/docs/docs/documentation/actions/http.md
@@ -1,12 +1,12 @@
??? info "Browse implementations"
- - [GET](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/http/HttpGetAction.java){:target="_blank"}
- - [POST](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/http/HttpPostAction.java){:target="_blank"}
- - [PUT](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/http/HttpPutAction.java){:target="_blank"}
- - [DELETE](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/http/HttpDeleteAction.java){:target="_blank"}
- - [PATCH](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/http/HttpPatchAction.java){:target="_blank"}
- - [Start mock server](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/http/HttpsServerStartAction.java){:target="_blank"}
- - [Listened routes](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/http/HttpsListenerAction.java){:target="_blank"}
+ - [GET](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/http/HttpGetAction.java){:target="_blank"}
+ - [POST](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/http/HttpPostAction.java){:target="_blank"}
+ - [PUT](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/http/HttpPutAction.java){:target="_blank"}
+ - [DELETE](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/http/HttpDeleteAction.java){:target="_blank"}
+ - [PATCH](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/http/HttpPatchAction.java){:target="_blank"}
+ - [Start mock server](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/http/HttpsServerStartAction.java){:target="_blank"}
+ - [Listened routes](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/http/HttpsListenerAction.java){:target="_blank"}
!!! note "How to request a secured service"
@@ -49,7 +49,7 @@
2. `userPassword` or `password` to define password for basic authentification
# Get
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/http/HttpGetAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/http/HttpGetAction.java){:target="_blank"}"
=== "Inputs"
@@ -83,7 +83,7 @@
```
# Post
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/http/HttpPostAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/http/HttpPostAction.java){:target="_blank"}"
=== "Inputs"
@@ -118,7 +118,7 @@
```
# Put
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/http/HttpPutAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/http/HttpPutAction.java){:target="_blank"}"
=== "Inputs"
@@ -153,7 +153,7 @@
```
# Delete
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/http/HttpDeleteAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/http/HttpDeleteAction.java){:target="_blank"}"
=== "Inputs"
@@ -187,7 +187,7 @@
```
# Patch
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/http/HttpPatchAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/http/HttpPatchAction.java){:target="_blank"}"
=== "Inputs"
@@ -223,7 +223,7 @@
# Mocking an HTTP Server
## Start
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/http/HttpsServerStartAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/http/HttpsServerStartAction.java){:target="_blank"}"
=== "Inputs"
@@ -259,7 +259,7 @@
This action automatically registers a teardown to stop the server at the end of the scenario.
## Listened routes
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/http/HttpsListenerAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/http/HttpsListenerAction.java){:target="_blank"}"
This actions allows you to check which requests have been received by a wiremock server.
Available verbs are : `GET`, `POST`, `PUT`, `DELETE`, `PATCH`, `OPTIONS`, `HEAD`, `TRACE`, `ANY`
diff --git a/docs/docs/documentation/actions/index.md b/docs/docs/documentation/actions/index.md
index 7428e5518..858ac460d 100644
--- a/docs/docs/documentation/actions/index.md
+++ b/docs/docs/documentation/actions/index.md
@@ -30,8 +30,8 @@ Obviously, you should be familiar with the technology behind each action you use
Please, refer to [target configuration](/configuration/env/#target-configuration) for further details.
!!! note
- All actions must have a [Logger](https://github.com/chutney-testing/chutney/blob/master/action-spi/src/main/java/com/chutneytesting/action/spi/injectable/Logger.java){:target=_blank} class as input.
- At runtime a [DelagateLogger](https://github.com/chutney-testing/chutney/blob/master/engine/src/main/java/com/chutneytesting/engine/domain/execution/engine/parameterResolver/DelegateLogger.java){:target=_blank} is automatically injected by the execution engine.
+ All actions must have a [Logger](https://github.com/chutney-testing/chutney/blob/main/chutney/action-spi/src/main/java/com/chutneytesting/action/spi/injectable/Logger.java){:target=_blank} class as input.
+ At runtime a [DelagateLogger](https://github.com/chutney-testing/chutney/blob/main/chutney/engine/src/main/java/com/chutneytesting/engine/domain/execution/engine/parameterResolver/DelegateLogger.java){:target=_blank} is automatically injected by the execution engine.
This logger contains action's logs which be present in the execution report.
## Outputs
diff --git a/docs/docs/documentation/actions/jms.md b/docs/docs/documentation/actions/jms.md
index 72eccd73d..bb332607b 100644
--- a/docs/docs/documentation/actions/jms.md
+++ b/docs/docs/documentation/actions/jms.md
@@ -1,8 +1,8 @@
??? info "Browse implementations"
- - [Sender](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/jms/JmsSenderAction.java){:target="_blank"}
- - [Listener](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/jms/JmsListenerAction.java){:target="_blank"}
- - [Clean queue](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/jms/JmsCleanQueueAction.java){:target="_blank"}
+ - [Sender](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/jms/JmsSenderAction.java){:target="_blank"}
+ - [Listener](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/jms/JmsListenerAction.java){:target="_blank"}
+ - [Clean queue](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/jms/JmsCleanQueueAction.java){:target="_blank"}
!!! note "Define a jms target"
@@ -41,7 +41,7 @@
2. Valid properties are `userPassword` or `password`. Set this for basic authentication
# Jms Sender
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/jms/JmsSenderAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/jms/JmsSenderAction.java){:target="_blank"}"
=== "Inputs"
@@ -70,7 +70,7 @@ JmsSenderAction(
```
# Jms Listener
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/jms/JmsListenerAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/jms/JmsListenerAction.java){:target="_blank"}"
* **Only works on javax.jms.TextMessage**
* `selector` used as message filter in [createConsumer](https://docs.oracle.com/javaee/7/api/javax/jms/Session.html#createConsumer-javax.jms.Destination-java.lang.String-){:target="_blank"} or in [createBrowser](https://docs.oracle.com/javaee/7/api/javax/jms/Session.html#createBrowser-javax.jms.Queue-java.lang.String-){:target="_blank"}
@@ -109,7 +109,7 @@ JmsListenerAction(
```
# Jms Clean Queue
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/jms/JmsCleanQueueAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/jms/JmsCleanQueueAction.java){:target="_blank"}"
* **Only works on javax.jms.TextMessage**
* `selector` used as message filter in [createConsumer](https://docs.oracle.com/javaee/7/api/javax/jms/Session.html#createConsumer-javax.jms.Destination-java.lang.String-){:target="_blank"} or in [createBrowser](https://docs.oracle.com/javaee/7/api/javax/jms/Session.html#createBrowser-javax.jms.Queue-java.lang.String-){:target="_blank"}
diff --git a/docs/docs/documentation/actions/kafka.md b/docs/docs/documentation/actions/kafka.md
index 69846721c..cb3c80c19 100644
--- a/docs/docs/documentation/actions/kafka.md
+++ b/docs/docs/documentation/actions/kafka.md
@@ -1,7 +1,7 @@
??? info "Browse implementations"
- - [Publish](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/kafka/KafkaBasicPublishAction.java){:target="_blank"}
- - [Consume](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/kafka/KafkaBasicConsumeAction.java){:target="_blank"}
+ - [Publish](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/kafka/KafkaBasicPublishAction.java){:target="_blank"}
+ - [Consume](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/kafka/KafkaBasicConsumeAction.java){:target="_blank"}
!!! important "Target Configuration"
For all actions, a target should be defined and have a `name` and a valid `url`.
@@ -53,7 +53,7 @@
```
# Publish
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/kafka/KafkaBasicPublishAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/kafka/KafkaBasicPublishAction.java){:target="_blank"}"
Use this action to publish a message to a Kafka topic.
@@ -96,7 +96,7 @@ KafkaBasicPublishTask(
```
# Consume
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/kafka/KafkaBasicConsumeAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/kafka/KafkaBasicConsumeAction.java){:target="_blank"}"
Use this action to consume a message from a Kafka topic.
diff --git a/docs/docs/documentation/actions/micrometer.md b/docs/docs/documentation/actions/micrometer.md
index 580207353..5da5ca97c 100644
--- a/docs/docs/documentation/actions/micrometer.md
+++ b/docs/docs/documentation/actions/micrometer.md
@@ -1,17 +1,17 @@
??? info "Browse implementations"
- - [Counter](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerCounterAction.java){:target="_blank"}
- - [Gauge](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerGaugeAction.java){:target="_blank"}
- - [Timer](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerTimerAction.java){:target="_blank"}
- - [Timer Start](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerTimerStartAction.java){:target="_blank"}
- - [Timer Stop](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerTimerStopAction.java){:target="_blank"}
- - [Summary](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerSummaryAction.java){:target="_blank"}
+ - [Counter](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerCounterAction.java){:target="_blank"}
+ - [Gauge](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerGaugeAction.java){:target="_blank"}
+ - [Timer](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerTimerAction.java){:target="_blank"}
+ - [Timer Start](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerTimerStartAction.java){:target="_blank"}
+ - [Timer Stop](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerTimerStopAction.java){:target="_blank"}
+ - [Summary](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerSummaryAction.java){:target="_blank"}
!!! note
Micrometer provides a static [global registry](https://micrometer.io/docs/concepts#_global_registry){:target=_blank}. This registry is used as default if no registry is given in action's inputs.
# Counter
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerCounterAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerCounterAction.java){:target="_blank"}"
Use this action to report
a [count](https://micrometer.io/docs/concepts#_counters:~:text=9.-,Counters,-Counters%20report%20a){:target=_blank}
@@ -53,7 +53,7 @@ MicrometerCounterAction(
# Gauge
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerGaugeAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerGaugeAction.java){:target="_blank"}"
Use this action to report a [gauge](https://micrometer.io/docs/concepts#_gauges){:target=_blank} metric.
@@ -160,7 +160,7 @@ Use this action to report a [gauge](https://micrometer.io/docs/concepts#_gauges)
# Timer
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerTimerAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerTimerAction.java){:target="_blank"}"
Use this action to report
a [timer](https://micrometer.io/docs/concepts#_gauges:~:text=11.-,Timers,-Timers%20are%20intended){:target=_blank}
@@ -206,7 +206,7 @@ MicrometerTimerAction(
# Timer start
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerTimerStartAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerTimerStartAction.java){:target="_blank"}"
Use this action to start a [Timer.Sample](https://www.javadoc.io/doc/io.micrometer/micrometer-core/latest/io/micrometer/core/instrument/Timer.Sample.html){:target=_blank}.
@@ -232,7 +232,7 @@ MicrometerTimerStartAction()
# Timer stop
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerTimerStopAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerTimerStopAction.java){:target="_blank"}"
Use this action to stop a [Timer.Sample](https://www.javadoc.io/doc/io.micrometer/micrometer-core/latest/io/micrometer/core/instrument/Timer.Sample.html){:target=_blank} and record its duration into timer.
@@ -262,7 +262,7 @@ MicrometerTimerStopTask(
# Summary
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerSummaryAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerSummaryAction.java){:target="_blank"}"
Use this action to report a [distribution summary](https://micrometer.io/docs/concepts#_distribution_summaries){:target=_blank} metric.
diff --git a/docs/docs/documentation/actions/mongo.md b/docs/docs/documentation/actions/mongo.md
index dfb611560..8cf5aa984 100644
--- a/docs/docs/documentation/actions/mongo.md
+++ b/docs/docs/documentation/actions/mongo.md
@@ -1,11 +1,11 @@
??? info "Browse implementations"
- - [Count](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoCountAction.java){:target="_blank"}
- - [Delete](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoDeleteAction.java){:target="_blank"}
- - [Find](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoFindAction.java){:target="_blank"}
- - [Insert](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoInsertAction.java){:target="_blank"}
- - [List Collections](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoListAction.java){:target="_blank"}
- - [Update](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoUpdateAction.java){:target="_blank"}
+ - [Count](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoCountAction.java){:target="_blank"}
+ - [Delete](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoDeleteAction.java){:target="_blank"}
+ - [Find](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoFindAction.java){:target="_blank"}
+ - [Insert](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoInsertAction.java){:target="_blank"}
+ - [List Collections](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoListAction.java){:target="_blank"}
+ - [Update](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoUpdateAction.java){:target="_blank"}
!!! important "Target Configuration"
For all actions, the target should have a property `databaseName`
@@ -45,7 +45,7 @@
```
# Count
-!!! info [Browse implementations](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoCountAction.java){:target="_blank"}
+!!! info [Browse implementations](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoCountAction.java){:target="_blank"}
=== "Inputs"
@@ -73,7 +73,7 @@ MongoCountAction(
```
# Delete
-!!! info [Browse implementations](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoDeleteAction.java){:target="_blank"}
+!!! info [Browse implementations](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoDeleteAction.java){:target="_blank"}
=== "Inputs"
@@ -101,7 +101,7 @@ MongoDeleteAction(
```
# Find
-!!! info [Browse implementations](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoFindAction.java){:target="_blank"}
+!!! info [Browse implementations](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoFindAction.java){:target="_blank"}
=== "Inputs"
@@ -131,7 +131,7 @@ MongoFindAction(
```
# Insert
-!!! info [Browse implementations](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoInsertAction.java){:target="_blank"}
+!!! info [Browse implementations](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoInsertAction.java){:target="_blank"}
=== "Inputs"
@@ -155,7 +155,7 @@ MongoInsertAction(
```
# List Collections
-!!! info [Browse implementations](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoListAction.java){:target="_blank"}
+!!! info [Browse implementations](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoListAction.java){:target="_blank"}
=== "Inputs"
@@ -179,7 +179,7 @@ MongoListAction(
```
# Update
-!!! info [Browse implementations](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoUpdateAction.java){:target="_blank"}
+!!! info [Browse implementations](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/mongo/MongoUpdateAction.java){:target="_blank"}
=== "Inputs"
diff --git a/docs/docs/documentation/actions/radius.md b/docs/docs/documentation/actions/radius.md
index 46e2c0c03..f43059fb0 100644
--- a/docs/docs/documentation/actions/radius.md
+++ b/docs/docs/documentation/actions/radius.md
@@ -1,7 +1,7 @@
??? info "Browse implementations"
- - [Accounting](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/radius/RadiusAccountingAction.java){:target="_blank"}
- - [Authenticate](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/radius/RadiusAuthenticateAction.java){:target="_blank"}
+ - [Accounting](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/radius/RadiusAccountingAction.java){:target="_blank"}
+ - [Authenticate](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/radius/RadiusAuthenticateAction.java){:target="_blank"}
!!! note "Define a radius target"
@@ -24,7 +24,7 @@
```
# Radius accounting
-!!! info "[Browse implementations](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/radius/RadiusAccountingAction.java){:target="_blank"}"
+!!! info "[Browse implementations](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/radius/RadiusAccountingAction.java){:target="_blank"}"
=== "Inputs"
@@ -58,7 +58,7 @@
```
# Radius authenticate
-!!! info "[Browse implementations](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/radius/RadiusAuthenticateAction.java){:target="_blank"}"
+!!! info "[Browse implementations](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/radius/RadiusAuthenticateAction.java){:target="_blank"}"
Protocols `mschapv2` and `eap` are not yet supported by our client. See [AccessRequest.encodeRequestAttributes(...)](https://github.com/ctran/TinyRadius/blob/master/src/main/java/org/tinyradius/packet/AccessRequest.java){:target="_blank"}
diff --git a/docs/docs/documentation/actions/selenium.md b/docs/docs/documentation/actions/selenium.md
index 6bab44e06..dc316203b 100644
--- a/docs/docs/documentation/actions/selenium.md
+++ b/docs/docs/documentation/actions/selenium.md
@@ -1,20 +1,20 @@
??? info "Browse implementations"
- - [Click](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumClickAction.java){:target="_blank"}
- - [Close](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumCloseAction.java){:target="_blank"}
- - [Driver Init](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumDriverInitAction.java){:target="_blank"}
- - [Get](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumGetAction.java){:target="_blank"}
- - [Get Attribute](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumGetAttributeAction.java){:target="_blank"}
- - [Get Text](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumGetTextAction.java){:target="_blank"}
- - [Hover ThenClick](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumHoverThenClickAction.java){:target="_blank"}
- - [Quit](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumQuitAction.java){:target="_blank"}
- - [Remote Driver Init](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumRemoteDriverInitAction.java){:target="_blank"}
- - [Screenshot](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumScreenShotAction.java){:target="_blank"}
- - [Scroll To](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumScrollToAction.java){:target="_blank"}
- - [Send Keys](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumSendKeysAction.java){:target="_blank"}
- - [Set Browser Size](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumSetBrowserSizeAction.java){:target="_blank"}
- - [Switch To](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumSwitchToAction.java){:target="_blank"}
- - [Wait](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumWaitAction.java){:target="_blank"}
+ - [Click](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumClickAction.java){:target="_blank"}
+ - [Close](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumCloseAction.java){:target="_blank"}
+ - [Driver Init](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumDriverInitAction.java){:target="_blank"}
+ - [Get](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumGetAction.java){:target="_blank"}
+ - [Get Attribute](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumGetAttributeAction.java){:target="_blank"}
+ - [Get Text](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumGetTextAction.java){:target="_blank"}
+ - [Hover ThenClick](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumHoverThenClickAction.java){:target="_blank"}
+ - [Quit](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumQuitAction.java){:target="_blank"}
+ - [Remote Driver Init](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumRemoteDriverInitAction.java){:target="_blank"}
+ - [Screenshot](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumScreenShotAction.java){:target="_blank"}
+ - [Scroll To](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumScrollToAction.java){:target="_blank"}
+ - [Send Keys](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumSendKeysAction.java){:target="_blank"}
+ - [Set Browser Size](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumSetBrowserSizeAction.java){:target="_blank"}
+ - [Switch To](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumSwitchToAction.java){:target="_blank"}
+ - [Wait](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumWaitAction.java){:target="_blank"}
!!! important "About `by` input"
@@ -46,7 +46,7 @@
# Click
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumClickAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumClickAction.java){:target="_blank"}"
Performs a click on an element. Element is expected to be clickable.
See [WebElement.click()](https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/WebElement.html#click()){:target="_blank"}
@@ -76,7 +76,7 @@ It takes a screenshot in case of error.
# Close
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumCloseAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumCloseAction.java){:target="_blank"}"
This action close the current window, quitting the browser if it's the last window currently open.
See [WebDriver.close()](https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/WebDriver.html#close()){:target="_blank"} for further details.
@@ -97,7 +97,7 @@ See [WebDriver.close()](https://www.selenium.dev/selenium/docs/api/java/org/open
# DriverInit
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumDriverInitAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumDriverInitAction.java){:target="_blank"}"
This action instantiate a webdriver
@@ -155,7 +155,7 @@ Performs the action [Quit](#quit) when the scenario ends.
# Get
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumGetAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumGetAction.java){:target="_blank"}"
This action load a new web page in the current browser window.
See [WebDriver.get(String url)](https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/WebDriver.html#get(java.lang.String)){:target="_blank"} for further details.
@@ -186,7 +186,7 @@ See [WebDriver.get(String url)](https://www.selenium.dev/selenium/docs/api/java/
# GetAttribute
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumGetAttributeAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumGetAttributeAction.java){:target="_blank"}"
Get the value of the given attribute of the element.
See [WebElement.getAttribute()](https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/WebElement.html#getAttribute(java.lang.String)){:target="_blank"} for further details.
@@ -220,7 +220,7 @@ See [WebElement.getAttribute()](https://www.selenium.dev/selenium/docs/api/java/
# GetText
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumGetTextAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumGetTextAction.java){:target="_blank"}"
This action returns the visible (i.e. not hidden by CSS) text of an element, including sub-elements.
See [WebElement.getText()](https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/WebElement.html#getText()){:target="_blank"} for further details.
@@ -252,7 +252,7 @@ See [WebElement.getText()](https://www.selenium.dev/selenium/docs/api/java/org/o
# Hover and click
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumHoverThenClickAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumHoverThenClickAction.java){:target="_blank"}"
Moves the mouse to the middle of the element then performs a click.
See [Actions.moveToElement()](https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/interactions/Actions.html#moveToElement(org.openqa.selenium.WebElement)){:target="_blank"} and [Click](#click) for further details.
@@ -278,7 +278,7 @@ See [Actions.moveToElement()](https://www.selenium.dev/selenium/docs/api/java/or
# Quit
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumQuitAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumQuitAction.java){:target="_blank"}"
!!! important
This action is not available with the Kotlin DSL since it is performed by default when the scenario ends.
@@ -295,7 +295,7 @@ See [WebDriver.quit()](https://www.selenium.dev/selenium/docs/api/java/org/openq
# Remote Driver Init
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumRemoteDriverInitAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumRemoteDriverInitAction.java){:target="_blank"}"
!!! note
`browser` input values :
@@ -359,7 +359,7 @@ Performs the action [Quit](#quit) when the scenario ends.
# Screenshot
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumScreenShotAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumScreenShotAction.java){:target="_blank"}"
Takes a screenshot, available in the execution report as a Base64 String.
See [TakesScreenshot.getScreenshotAs()](https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/TakesScreenshot.html#getScreenshotAs(org.openqa.selenium.OutputType)){:target="_blank"}
@@ -381,7 +381,7 @@ and [OutputType.BASE64](https://www.selenium.dev/selenium/docs/api/java/org/open
# Scroll to
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumScrollToAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumScrollToAction.java){:target="_blank"}"
Scroll the page to make the element visible and align to the top.
See [Element.scrollIntoView()](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView){:target="_blank"} for further details.
@@ -407,7 +407,7 @@ See [Element.scrollIntoView()](https://developer.mozilla.org/en-US/docs/Web/API/
# Send keys
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumSendKeysAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumSendKeysAction.java){:target="_blank"}"
This action simulate typing into an element, which may set its value.
See [WebElement.sendKeys()](https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/WebElement.html#sendKeys(java.lang.CharSequence...)){:target="_blank"}
@@ -435,7 +435,7 @@ See [WebElement.sendKeys()](https://www.selenium.dev/selenium/docs/api/java/org/
# Set browser size
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumSetBrowserSizeAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumSetBrowserSizeAction.java){:target="_blank"}"
This action set the size of the current window.
See [WebDriver.Window.setSize()](https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/WebDriver.Window.html#setSize(org.openqa.selenium.Dimension)){:target="_blank"} for further details.
@@ -459,7 +459,7 @@ See [WebDriver.Window.setSize()](https://www.selenium.dev/selenium/docs/api/java
# Switch to
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumSwitchToAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumSwitchToAction.java){:target="_blank"}"
!!! note
@@ -503,7 +503,7 @@ See [WebDriver.Window.setSize()](https://www.selenium.dev/selenium/docs/api/java
# Wait
-!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumWaitAction.java){:target="_blank"}"
+!!! info "[Browse Implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/selenium/SeleniumWaitAction.java){:target="_blank"}"
This action waits N seconds or until the expected conditions are met.
diff --git a/docs/docs/documentation/actions/soap.md b/docs/docs/documentation/actions/soap.md
index c6dd90c0b..9f68e8b35 100644
--- a/docs/docs/documentation/actions/soap.md
+++ b/docs/docs/documentation/actions/soap.md
@@ -1,4 +1,4 @@
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/http/HttpSoapAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/http/HttpSoapAction.java){:target="_blank"}"
=== "Inputs"
diff --git a/docs/docs/documentation/actions/sql.md b/docs/docs/documentation/actions/sql.md
index ca922407b..d9998e1a4 100644
--- a/docs/docs/documentation/actions/sql.md
+++ b/docs/docs/documentation/actions/sql.md
@@ -5,8 +5,8 @@
??? info "Browse implementations"
- - [Action](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/sql/SqlAction.java){:target="_blank"}
- - [Client](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/sql/core/SqlClient.java){:target="_blank"}
+ - [Action](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/sql/SqlAction.java){:target="_blank"}
+ - [Client](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/sql/core/SqlClient.java){:target="_blank"}
!!! note "Configuration"
Most of the configuration is done on the target database.
@@ -72,7 +72,7 @@ When you provide only one statement in input, the following outputs and operatio
## Rows
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/sql/core/Rows.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/sql/core/Rows.java){:target="_blank"}"
One `Rows` instance contains results for **one statement**. Following attributes and methods are available in SpEL :
@@ -94,7 +94,7 @@ One `Rows` instance contains results for **one statement**. Following attributes
## Row
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/sql/core/Row.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/sql/core/Row.java){:target="_blank"}"
A `Row` provides you access to a record values.
@@ -147,7 +147,7 @@ When you provide more than one statement in input, you get a [`Records`](#record
## Records
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/sql/core/Records.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/sql/core/Records.java){:target="_blank"}"
One `Records` instance contains results for **one statement** and provides methods to retrieve and search them.
`Records` is different from [`Rows`](#rows) type, but you can convert it using the `rows()` method.
diff --git a/docs/docs/documentation/actions/ssh.md b/docs/docs/documentation/actions/ssh.md
index b7193128a..35bba2f75 100644
--- a/docs/docs/documentation/actions/ssh.md
+++ b/docs/docs/documentation/actions/ssh.md
@@ -1,18 +1,18 @@
??? info "Browse implementations"
- SCP
- - [Client](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/scp/ScpClientImpl.java){:target="_blank"}
- - [Action - Download](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/ScpDownloadAction.java){:target="_blank"}
- - [Action - Upload](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/ScpUploadAction.java){:target="_blank"}
+ - [Client](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/scp/ScpClientImpl.java){:target="_blank"}
+ - [Action - Download](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/ScpDownloadAction.java){:target="_blank"}
+ - [Action - Upload](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/ScpUploadAction.java){:target="_blank"}
- SFTP
- - [Client](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/sftp/SftpClientImpl.java){:target="_blank"}
- - [Action - Download](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/SftpDownloadAction.java){:target="_blank"}
- - [Action - File Info](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/SftpFileInfoAction.java){:target="_blank"}
- - [Action - List Dir](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/SftpListDirAction.java){:target="_blank"}
- - [Action - Upload](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/SftpUploadAction.java){:target="_blank"}
+ - [Client](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/sftp/SftpClientImpl.java){:target="_blank"}
+ - [Action - Download](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/SftpDownloadAction.java){:target="_blank"}
+ - [Action - File Info](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/SftpFileInfoAction.java){:target="_blank"}
+ - [Action - List Dir](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/SftpListDirAction.java){:target="_blank"}
+ - [Action - Upload](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/SftpUploadAction.java){:target="_blank"}
- SSH Client
- - [Client](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/sshj/SshJClient.java){:target="_blank"}
- - [Action](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/SshClientAction.java){:target="_blank"}
+ - [Client](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/sshj/SshJClient.java){:target="_blank"}
+ - [Action](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/SshClientAction.java){:target="_blank"}
!!! note "Target Authentication"
@@ -38,11 +38,11 @@
# SCP
-!!! info "[Client implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/scp/ScpClientImpl.java){:target="_blank"}"
+!!! info "[Client implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/scp/ScpClientImpl.java){:target="_blank"}"
## Download
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/ScpDownloadAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/ScpDownloadAction.java){:target="_blank"}"
=== "Inputs"
@@ -73,7 +73,7 @@ ScpDownloadAction(
## Upload
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/ScpUploadAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/ScpUploadAction.java){:target="_blank"}"
=== "Inputs"
@@ -105,11 +105,11 @@ ScpUploadAction(
# SFTP
-!!! info "[Client implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/sftp/SftpClientImpl.java){:target="_blank"}"
+!!! info "[Client implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/sftp/SftpClientImpl.java){:target="_blank"}"
## Download
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/SftpDownloadAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/SftpDownloadAction.java){:target="_blank"}"
=== "Inputs"
@@ -140,7 +140,7 @@ SftpDownloadAction(
## FileInfo
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/SftpFileInfoAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/SftpFileInfoAction.java){:target="_blank"}"
=== "Inputs"
@@ -176,7 +176,7 @@ SftpFileInfoAction(
## ListDir
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/SftpListDirAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/SftpListDirAction.java){:target="_blank"}"
=== "Inputs"
@@ -208,7 +208,7 @@ SftpListDirAction(
## Upload
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/SftpUploadAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/SftpUploadAction.java){:target="_blank"}"
=== "Inputs"
@@ -239,11 +239,11 @@ SftpUploadAction(
# SSH
-!!! info "[Client implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/sshj/SshJClient.java){:target="_blank"}"
+!!! info "[Client implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/sshj/SshJClient.java){:target="_blank"}"
## Client
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/SshClientAction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/SshClientAction.java){:target="_blank"}"
=== "Inputs"
@@ -277,7 +277,7 @@ SshClientAction(
### CommandResult
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/sshj/CommandResult.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/sshj/CommandResult.java){:target="_blank"}"
A `CommandResult` represents the output of one command.
The following attributes can be used in SpEL :
@@ -293,7 +293,7 @@ The following attributes can be used in SpEL :
### Command
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/ssh/sshj/Command.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/ssh/sshj/Command.java){:target="_blank"}"
The following attributes can be used in SpEL :
diff --git a/docs/docs/documentation/functions/classpath.md b/docs/docs/documentation/functions/classpath.md
index 07ad2d939..1d17e4de7 100644
--- a/docs/docs/documentation/functions/classpath.md
+++ b/docs/docs/documentation/functions/classpath.md
@@ -1,4 +1,4 @@
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/function/ClasspathFunctions.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/function/ClasspathFunctions.java){:target="_blank"}"
# resourceContent
diff --git a/docs/docs/documentation/functions/datetime.md b/docs/docs/documentation/functions/datetime.md
index b5891b685..0e7170e85 100644
--- a/docs/docs/documentation/functions/datetime.md
+++ b/docs/docs/documentation/functions/datetime.md
@@ -1,4 +1,4 @@
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/function/DateTimeFunctions.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/function/DateTimeFunctions.java){:target="_blank"}"
Following functions help you write and shorten SpEL when you need to handle time or date values.
diff --git a/docs/docs/documentation/functions/escape.md b/docs/docs/documentation/functions/escape.md
index 4344069e4..08c3c1d24 100644
--- a/docs/docs/documentation/functions/escape.md
+++ b/docs/docs/documentation/functions/escape.md
@@ -1,4 +1,4 @@
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/function/EscapeFunctions.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/function/EscapeFunctions.java){:target="_blank"}"
Following functions help you escape and unescape strings from JSON, HTML, XML and SQL.
diff --git a/docs/docs/documentation/functions/generate.md b/docs/docs/documentation/functions/generate.md
index d50bfb0ca..af9559e6d 100644
--- a/docs/docs/documentation/functions/generate.md
+++ b/docs/docs/documentation/functions/generate.md
@@ -1,4 +1,4 @@
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/function/Generate.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/function/Generate.java){:target="_blank"}"
Following functions help you generate random values.
diff --git a/docs/docs/documentation/functions/json.md b/docs/docs/documentation/functions/json.md
index c20b1f1b3..cebf927f5 100644
--- a/docs/docs/documentation/functions/json.md
+++ b/docs/docs/documentation/functions/json.md
@@ -1,4 +1,4 @@
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/function/JsonFunctions.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/function/JsonFunctions.java){:target="_blank"}"
Following functions help you handle JSON documents.
diff --git a/docs/docs/documentation/functions/micrometer.md b/docs/docs/documentation/functions/micrometer.md
index 0e1651e31..357390474 100644
--- a/docs/docs/documentation/functions/micrometer.md
+++ b/docs/docs/documentation/functions/micrometer.md
@@ -1,4 +1,4 @@
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerFunctions.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/micrometer/MicrometerFunctions.java){:target="_blank"}"
Following functions help you work with Micrometer application monitoring facade.
diff --git a/docs/docs/documentation/functions/network.md b/docs/docs/documentation/functions/network.md
index 4e646906e..806317017 100644
--- a/docs/docs/documentation/functions/network.md
+++ b/docs/docs/documentation/functions/network.md
@@ -1,4 +1,4 @@
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/function/NetworkFunctions.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/function/NetworkFunctions.java){:target="_blank"}"
Following functions help you to :
diff --git a/docs/docs/documentation/functions/nullable.md b/docs/docs/documentation/functions/nullable.md
index 0bd839470..7eefcc474 100644
--- a/docs/docs/documentation/functions/nullable.md
+++ b/docs/docs/documentation/functions/nullable.md
@@ -1,4 +1,4 @@
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/function/NullableFunction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/function/NullableFunction.java){:target="_blank"}"
This function helps you handle values which may be null.
diff --git a/docs/docs/documentation/functions/soap.md b/docs/docs/documentation/functions/soap.md
index 30f546e20..62ea4bb83 100644
--- a/docs/docs/documentation/functions/soap.md
+++ b/docs/docs/documentation/functions/soap.md
@@ -1,4 +1,4 @@
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/function/SoapFunction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/function/SoapFunction.java){:target="_blank"}"
Following functions help you work with SOAP.
diff --git a/docs/docs/documentation/functions/string.md b/docs/docs/documentation/functions/string.md
index a1e90cf5d..591de840a 100644
--- a/docs/docs/documentation/functions/string.md
+++ b/docs/docs/documentation/functions/string.md
@@ -1,4 +1,4 @@
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/function/StringFunction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/function/StringFunction.java){:target="_blank"}"
This function helps you modify strings.
diff --git a/docs/docs/documentation/functions/wiremock.md b/docs/docs/documentation/functions/wiremock.md
index b9e11357d..a764035f9 100644
--- a/docs/docs/documentation/functions/wiremock.md
+++ b/docs/docs/documentation/functions/wiremock.md
@@ -1,4 +1,4 @@
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/http/function/WireMockFunction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/http/function/WireMockFunction.java){:target="_blank"}"
Following functions help you work with a Wiremock [LoggedRequest](https://www.javadoc.io/static/com.github.tomakehurst/wiremock/2.27.2/com/github/tomakehurst/wiremock/verification/LoggedRequest.html){:target="_blank"}.
diff --git a/docs/docs/documentation/functions/xpath.md b/docs/docs/documentation/functions/xpath.md
index 584f19044..879f51800 100644
--- a/docs/docs/documentation/functions/xpath.md
+++ b/docs/docs/documentation/functions/xpath.md
@@ -1,4 +1,4 @@
-!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/master/action-impl/src/main/java/com/chutneytesting/action/function/XPathFunction.java){:target="_blank"}"
+!!! info "[Browse implementation](https://github.com/chutney-testing/chutney/blob/main/chutney/action-impl/src/main/java/com/chutneytesting/action/function/XPathFunction.java){:target="_blank"}"
Following functions help you execute XPath request on XML document.
diff --git a/docs/docs/index.md b/docs/docs/index.md
index bca6c9165..18a332600 100644
--- a/docs/docs/index.md
+++ b/docs/docs/index.md
@@ -1,4 +1,4 @@
-[![Build](https://github.com/chutney-testing/chutney/workflows/Build/badge.svg?branch=master)](https://github.com/chutney-testing/chutney/actions){:target="_blank"}
+[![Build](https://github.com/chutney-testing/chutney/actions/workflows/build-all.yml/badge.svg?branch=main)](https://github.com/chutney-testing/chutney/actions/workflows/build-all.yml){:target="_blank"}
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.chutneytesting/server/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.chutneytesting/server){:target="_blank"}
[![Zulip chat](https://img.shields.io/badge/zulip-join_chat-brightgreen.svg)](https://chutney-testing.zulipchat.com/){:target="_blank"}
diff --git a/docs/docs/installation/advance_topics.md b/docs/docs/installation/advance_topics.md
index 1c9c944ab..368b8c455 100644
--- a/docs/docs/installation/advance_topics.md
+++ b/docs/docs/installation/advance_topics.md
@@ -76,16 +76,16 @@ Chutney uses Spring Security for :
If you want to add another authentication mechanism, you should follow the [Spring security architecture](https://spring.io/guides/topicals/spring-security-architecture).
!!! important "Authentication requirements"
- The principal build by the authentication mechanism must be an instance of the Chutney [UserDto](https://github.com/chutney-testing/chutney/blob/master/server/src/main/java/com/chutneytesting/security/api/UserDto.java).
+ The principal build by the authentication mechanism must be an instance of the Chutney [UserDto](https://github.com/chutney-testing/chutney/blob/main/chutney/server/src/main/java/com/chutneytesting/security/api/UserDto.java).
User roles and permissions are configured either with Web app form or by editing the file.
-One could use the existing [AuthenticationService](https://github.com/chutney-testing/chutney/blob/master/server/src/main/java/com/chutneytesting/security/domain/AuthenticationService.java) Chutney Spring Bean to retrieve Chutney roles by user id and grant associated authorities.
+One could use the existing [AuthenticationService](https://github.com/chutney-testing/chutney/blob/main/chutney/server/src/main/java/com/chutneytesting/security/domain/AuthenticationService.java) Chutney Spring Bean to retrieve Chutney roles by user id and grant associated authorities.
!!! note "How to manage permissions"
* A user can only have one role
- * Chutney permissions are defined in the [Authorization](https://github.com/chutney-testing/chutney/blob/master/server-core/src/main/java/com/chutneytesting/server/core/domain/security/Authorization.java) class.
- * The static `grantAuthoritiesFromUserRole` method of [UserDetailsServiceHelper](https://github.com/chutney-testing/chutney/blob/master/server/src/main/java/com/chutneytesting/security/infra/UserDetailsServiceHelper.java) class could be used to have the same authentication process than `mem-auth` profile,
+ * Chutney permissions are defined in the [Authorization](https://github.com/chutney-testing/chutney/blob/main/chutney/server-core/src/main/java/com/chutneytesting/server/core/domain/security/Authorization.java) class.
+ * The static `grantAuthoritiesFromUserRole` method of [UserDetailsServiceHelper](https://github.com/chutney-testing/chutney/blob/main/chutney/server/src/main/java/com/chutneytesting/security/infra/UserDetailsServiceHelper.java) class could be used to have the same authentication process than `mem-auth` profile,
i.e. if the user has a role name containing the characters 'admin', ignoring case, user will be given all authorities available, else he will be given the authorities associated by the role retrieved by the AuthenticationService.
# Compression
diff --git a/docs/docs/installation/on_premise/details.md b/docs/docs/installation/on_premise/details.md
index 53479165c..e78ef51c4 100644
--- a/docs/docs/installation/on_premise/details.md
+++ b/docs/docs/installation/on_premise/details.md
@@ -1,7 +1,7 @@
# Database
[Liquibase](https://www.liquibase.org/){:target="_blank"} is used to manage Chutney RDBMS schema.
-You can find corresponding changelog [here](https://github.com/chutney-testing/chutney/blob/master/server/src/main/resources/changelog/db.changelog-master.xml){:target="_blank"}.
+You can find corresponding changelog [here](https://github.com/chutney-testing/chutney/blob/main/chutney/server/src/main/resources/changelog/db.changelog-master.xml){:target="_blank"}.
!!! note
Chutney has been tested with H2 and PostgreSQL databases.
diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml
index 1a03cdbe6..18aa26ce0 100644
--- a/docs/mkdocs.yml
+++ b/docs/mkdocs.yml
@@ -5,7 +5,7 @@ site_description: Opinionated test tool for Specification by Example
site_author: Chutney Testing Team
repo_name:
repo_url: https://github.com/chutney-testing/chutney/
-edit_uri: https://github.com/chutney-testing/chutney-testing.github.io/docs
+edit_uri: https://github.com/chutney-testing/chutney/docs/docs/
copyright: © Chutney Testing 2017 | under the Apache License, Version 2.0
nav:
diff --git a/idea-plugin/.github/ISSUE_TEMPLATE/bug_report_form.yml b/idea-plugin/.github/ISSUE_TEMPLATE/bug_report_form.yml
deleted file mode 100644
index 5503fab8b..000000000
--- a/idea-plugin/.github/ISSUE_TEMPLATE/bug_report_form.yml
+++ /dev/null
@@ -1,63 +0,0 @@
-name: 🐛 Bug Report
-description: File a bug report
-title: "🐛 | "
-labels: ["bug", "triage"]
-body:
- - type: markdown
- attributes:
- value: |
- Thanks for taking the time to fill out this bug report!
-
- 🙌 Please, make sure your bug report is unique 🦄 !
- Did you search issues labeled with Bug ? If you find anything relevant to you, up-vote 👍 or add a comment 💬 !
-
- For more information, please visit our [contribute section](https://github.com/chutney-testing/chutney/blob/master/CONTRIBUTING.md)
- - type: textarea
- id: what-happened
- attributes:
- label: What happened?
- description: Describe the bug - What is the current behavior?
- placeholder: A clear and concise description of what actually happens
- validations:
- required: true
- - type: textarea
- id: steps-to-reproduce
- attributes:
- label: Steps to reproduce
- description: How one can reproduce the issue ?
- placeholder: This is very important - Use GIFs to record behavior if applicable
- validations:
- required: true
- - type: textarea
- id: relevant-logs
- attributes:
- label: Relevant logs and/or screenshots/GIFs
- description: If applicable, paste any relevant logs
- render: shell
- placeholder: Please use code blocks (```) to format console output, logs, and code, as it is very hard to read otherwise
- validations:
- required: false
- - type: textarea
- id: possible-fixes
- attributes:
- label: Possible fixes
- description: If you can, link to the line of code that might be responsible for the problem
- render: shell
- validations:
- required: false
- - type: textarea
- id: version
- attributes:
- label: Version
- description: Which version are you running ?
- validations:
- required: false
- - type: dropdown
- id: os
- attributes:
- label: What OS did you use?
- multiple: true
- options:
- - Mac OS
- - Windows
- - Linux
diff --git a/idea-plugin/.github/ISSUE_TEMPLATE/config.yml b/idea-plugin/.github/ISSUE_TEMPLATE/config.yml
deleted file mode 100644
index afbb369c0..000000000
--- a/idea-plugin/.github/ISSUE_TEMPLATE/config.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-blank_issues_enabled: false
-contact_links:
- - name: 🙋 Ask Questions, Get Help and Share ideas 💡
- url: https://github.com/chutney-testing/chutney/discussions
- about: A place to get help, Q&A, new ideas and discussions
- - name: 💬 Live chat and private messages
- url: https://chutney-testing.zulipchat.com/
- about: A more informal place to get in touch if you need it
- - name: 🌋 Security / Vulnerabilities
- url: https://chutney-testing.zulipchat.com/
- about: Please get in touch with us using private messages on our Zulip server
diff --git a/idea-plugin/.github/ISSUE_TEMPLATE/feature_request_form.yml b/idea-plugin/.github/ISSUE_TEMPLATE/feature_request_form.yml
deleted file mode 100644
index 2cee26167..000000000
--- a/idea-plugin/.github/ISSUE_TEMPLATE/feature_request_form.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-name: 🚀 Feature Request
-description: Suggest an idea for this project
-title: "🚀 | "
-labels: ["enhancement"]
-body:
- - type: markdown
- attributes:
- value: |
- 🙌 Please, make sure your feature request is unique 🦄 !
- Did you search issues labeled with Enhancement ? If you find anything relevant to you, up-vote 👍 or add a comment 💬 !
- - type: textarea
- id: use-case
- attributes:
- label: Describe your use case
- placeholder: Describes the context in which the feature will be used. Can you give a concrete example of how you'd use the feature?
- validations:
- required: true
- - type: textarea
- id: related-problems
- attributes:
- label: Is your feature request related to a problem ?
- placeholder: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
- validations:
- required: false
- - type: textarea
- id: solution
- attributes:
- label: Describe the solution you'd like
- placeholder: A clear and concise description of what you want to happen. Can you draw a picture of what you're imagining?
- validations:
- required: true
- - type: textarea
- id: examples
- attributes:
- label: Link to examples
- description: Is there other software that has the behavior you're interested in?
- placeholder: What is it, and how does it work? Are there any relevant existing standards or conventions?
- validations:
- required: false
diff --git a/idea-plugin/.github/workflows/build.yml b/idea-plugin/.github/workflows/build.yml
deleted file mode 100644
index d8f505115..000000000
--- a/idea-plugin/.github/workflows/build.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-# This workflow will build a Java project with Maven
-# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
-
-name: Build
-
-on:
- push:
- branches: [ master ]
- pull_request:
- branches: [ master ]
-
-jobs:
- build:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Set up JDK 1.17
- uses: actions/setup-java@v2
- with:
- distribution: 'adopt'
- java-version: 17
- - name: Setup Gradle
- uses: gradle/gradle-build-action@v2
-
- - name: Cache maven
- uses: actions/cache@v2.1.3
- with:
- path: ~/.m2/repository
- key: maven_cache
-
- - name: Gradle build
- env:
- BUILD_ENV: 'github-actions'
- run: ./gradlew buildPlugin
diff --git a/idea-plugin/.github/workflows/release.yml b/idea-plugin/.github/workflows/release.yml
deleted file mode 100644
index 39adbf5a1..000000000
--- a/idea-plugin/.github/workflows/release.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-name: Release
-on:
- push:
- tags:
- - '*.*'
-jobs:
- deploy:
- runs-on: ubuntu-latest
- name: Deploy to github
- steps:
- - uses: actions/checkout@v2
- - name: Set release version environment variable
- run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- - name: Set up JDK 1.17
- uses: actions/setup-java@v2
- with:
- distribution: 'adopt'
- java-version: 17
- - name: Setup Gradle
- uses: gradle/gradle-build-action@v2
- - name: Cache maven
- uses: actions/cache@v2.1.3
- with:
- path: ~/.m2/repository
- key: maven_cache
- - name: Gradle build
- env:
- BUILD_ENV: 'github-actions'
- run: ./gradlew buildPlugin
- - name: Create github release
- id: create_release
- uses: actions/create-release@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- tag_name: ${{ github.ref }}
- release_name: Release ${{ github.ref }}
- body: 'TODO'
- draft: false
- prerelease: false
- - name: Upload zip to github release
- id: upload-release-asset-zip
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ${{ github.workspace }}/build/distributions/chutney-idea-plugin-${{ env.RELEASE_VERSION }}.zip
- asset_name: chutney-idea-plugin-${{ env.RELEASE_VERSION }}.zip
- asset_content_type: application/zip
diff --git a/idea-plugin/.gitignore b/idea-plugin/.gitignore
index 4e3676104..7213cf33e 100755
--- a/idea-plugin/.gitignore
+++ b/idea-plugin/.gitignore
@@ -1,10 +1,6 @@
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio
-## Directory-based project format:
-.idea
-*.iml
-
## Plugin-specific files:
# IntelliJ
/out/
diff --git a/idea-plugin/CONTRIBUTING.md b/idea-plugin/CONTRIBUTING.md
new file mode 100644
index 000000000..c6c2803c4
--- /dev/null
+++ b/idea-plugin/CONTRIBUTING.md
@@ -0,0 +1,3 @@
+# Contributing
+
+
diff --git a/idea-plugin/GETTING_STARTED.md b/idea-plugin/GETTING_STARTED.md
new file mode 100644
index 000000000..51d19f19b
--- /dev/null
+++ b/idea-plugin/GETTING_STARTED.md
@@ -0,0 +1,3 @@
+## Getting Started
+
+todo
diff --git a/idea-plugin/build.gradle.kts b/idea-plugin/build.gradle.kts
index 8d8eae688..a7d951f82 100755
--- a/idea-plugin/build.gradle.kts
+++ b/idea-plugin/build.gradle.kts
@@ -24,7 +24,7 @@ configurations.runtimeOnly {
}
group = properties("pluginGroup")
-version = properties("pluginVersion")
+version = properties("chutneyVersion")
repositories {
mavenLocal()
@@ -32,20 +32,11 @@ repositories {
maven {
url = uri("https://repo1.maven.org/maven2")
}
- ivy {
- url = uri("https://github.com/")
- patternLayout {
- artifact("/[organisation]/[module]/releases/download/[revision]/[artifact]-[revision].[ext]")
- }
- // This is required in Gradle 6.0+ as metadata file (ivy.xml) is mandatory.
- // Docs https://docs.gradle.org/6.2/userguide/declaring_repositories.html#sec:supported_metadata_sources
- metadataSources { artifact() }
- }
}
dependencies {
implementation(enforcedPlatform("com.chutneytesting:chutney-parent:${properties["chutneyVersion"]}"))
- implementation("com.chutneytesting", "chutney-kotlin-dsl", "2.0.1")
+ implementation("com.chutneytesting", "chutney-kotlin-dsl", properties("chutneyVersion"))
implementation("com.google.guava", "guava")
implementation("org.hjson", "hjson")
implementation("org.apache.commons", "commons-text")
@@ -64,8 +55,7 @@ dependencies {
// exclude("org.sl4j") does not exclude
isTransitive = false // this exclude "org.sl4j"
}
- testImplementation("junit", "junit", "4.12")
- runtimeOnly("chutney-testing", "chutney-idea-server", properties("chutneyIdeaServerVersion"), ext = "jar") {
+ runtimeOnly("com.chutneytesting", "local-api-unsecure", properties("chutneyVersion"), ext = "jar") {
isTransitive = false
}
@@ -92,13 +82,13 @@ intellij {
}
}
}
-configure {
+configure {
sourceCompatibility = JavaVersion.VERSION_17
}
// Configure Gradle Changelog Plugin - read more: https://github.com/JetBrains/gradle-changelog-plugin
changelog {
- version.set(properties("pluginVersion"))
+ version.set(properties("chutneyVersion"))
groups.set(emptyList())
}
@@ -115,7 +105,7 @@ tasks {
patchPluginXml {
- version.set(properties("pluginVersion"))
+ version.set(properties("chutneyVersion"))
sinceBuild.set(properties("pluginSinceBuild"))
untilBuild.set(properties("pluginUntilBuild"))
@@ -146,6 +136,6 @@ tasks {
// pluginVersion is based on the SemVer (https://semver.org) and supports pre-release labels, like 2.1.7-alpha.3
// Specify pre-release label to publish the plugin in a custom Release Channel automatically. Read more:
// https://plugins.jetbrains.com/docs/intellij/deployment.html#specifying-a-release-channel
- channels.set(listOf(properties("pluginVersion").split('-').getOrElse(1) { "default" }.split('.').first()))
+ channels.set(listOf(properties("chutneyVersion").split('-').getOrElse(1) { "default" }.split('.').first()))
}
}
diff --git a/idea-plugin/gradle.properties b/idea-plugin/gradle.properties
index 4cc65af60..332bc9ab4 100755
--- a/idea-plugin/gradle.properties
+++ b/idea-plugin/gradle.properties
@@ -7,7 +7,7 @@ org.gradle.jvmargs=-Xmx2048M
pluginGroup = com.chutneytesting.idea
pluginName = chutney-idea-plugin
-pluginVersion = 2.4
+chutneyVersion = 2.7.1-SNAPSHOT
# See https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
# for insight into build numbers and IntelliJ Platform versions.
@@ -29,6 +29,3 @@ platformPlugins =com.intellij.java, com.intellij.spring, org.jetbrains.plugins.y
# Opt-out flag for bundling Kotlin standard library.
# See https://plugins.jetbrains.com/docs/intellij/kotlin.html#kotlin-standard-library for details.
kotlin.stdlib.default.dependency = false
-
-chutneyVersion = 2.2.0
-chutneyIdeaServerVersion = 2.2.0
diff --git a/idea-plugin/gradle/wrapper/gradle-wrapper.jar b/idea-plugin/gradle/wrapper/gradle-wrapper.jar
index 87b738cbd..033e24c4c 100755
Binary files a/idea-plugin/gradle/wrapper/gradle-wrapper.jar and b/idea-plugin/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/idea-plugin/gradle/wrapper/gradle-wrapper.properties b/idea-plugin/gradle/wrapper/gradle-wrapper.properties
index 2e6e5897b..f5d2c6d87 100755
--- a/idea-plugin/gradle/wrapper/gradle-wrapper.properties
+++ b/idea-plugin/gradle/wrapper/gradle-wrapper.properties
@@ -1,4 +1,4 @@
-distributionBase=GRADLE_USER_HOME
+org.gradle.api.GradleException: Failed to create Jar filedistributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
diff --git a/idea-plugin/gradlew b/idea-plugin/gradlew
index af6708ff2..fcb6fca14 100755
--- a/idea-plugin/gradlew
+++ b/idea-plugin/gradlew
@@ -1,78 +1,126 @@
-#!/usr/bin/env sh
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
##############################################################################
-##
-## Gradle start up script for UN*X
-##
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
##############################################################################
# Attempt to set APP_HOME
+
# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m"'
+# This is normally unused
+# shellcheck disable=SC2034
+APP_BASE_NAME=${0##*/}
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
+MAX_FD=maximum
warn () {
echo "$*"
-}
+} >&2
die () {
echo
echo "$*"
echo
exit 1
-}
+} >&2
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
- NONSTOP* )
- nonstop=true
- ;;
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
+ JAVACMD=$JAVA_HOME/jre/sh/java
else
- JAVACMD="$JAVA_HOME/bin/java"
+ JAVACMD=$JAVA_HOME/bin/java
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
@@ -81,92 +129,120 @@ Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+ JAVACMD=java
+ if ! command -v java >/dev/null 2>&1
+ then
+ die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
+ fi
fi
# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC3045
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC3045
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
fi
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
fi
- i=$((i+1))
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
done
- case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
fi
-# Escape application args
-save () {
- for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
- echo " "
-}
-APP_ARGS=$(save "$@")
-
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
-if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
- cd "$(dirname "$0")"
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Collect all arguments for the java command;
+# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
+# shell script including quotes and variable substitutions, so put them in
+# double quotes to make sure that they get re-expanded; and
+# * put everything else in single quotes, so that it's not re-expanded.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
fi
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
+
exec "$JAVACMD" "$@"
diff --git a/idea-plugin/gradlew.bat b/idea-plugin/gradlew.bat
index 6d57edc70..93e3f59f1 100755
--- a/idea-plugin/gradlew.bat
+++ b/idea-plugin/gradlew.bat
@@ -1,4 +1,20 @@
-@if "%DEBUG%" == "" @echo off
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@@ -9,19 +25,23 @@
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m"
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
+if %ERRORLEVEL% equ 0 goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -35,7 +55,7 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-if exist "%JAVA_EXE%" goto init
+if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
@@ -45,38 +65,26 @@ echo location of your Java installation.
goto fail
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
+if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal
diff --git a/kotlin-dsl/.env.nix b/kotlin-dsl/.env.nix
deleted file mode 100644
index 8d1a410fa..000000000
--- a/kotlin-dsl/.env.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ nixpkgs ? import {} }:
-with nixpkgs;
-let
- jdk = openjdk17;
-in
-mkShell {
-
- buildInputs = [
- jdk
- ];
-
- JAVA_HOME="${jdk}/lib/openjdk";
-}
diff --git a/kotlin-dsl/.envrc b/kotlin-dsl/.envrc
deleted file mode 100644
index 2a674ed3a..000000000
--- a/kotlin-dsl/.envrc
+++ /dev/null
@@ -1,14 +0,0 @@
-# Setup a working environment without hassle using nix and direnv
-# For more information, visit https://direnv.net/
-
-# Install node, npm and geckodriver by loading .env.nix expression
-use_nix .env.nix
-
-# Some tools (ex. Intellij) might need to configure paths to node, npm etc.
-# You can use following symlinks provided in .env folder
-
-## Create .env folder
-[[ ! -d .env ]] && mkdir .env && echo "Create .env folder"
-
-## Symlink JDK
-ln -sfn $JAVA_HOME .env/jdk && echo "Symlink jdk \"$JAVA_HOME\""
diff --git a/kotlin-dsl/.github/ISSUE_TEMPLATE/bug_report_form.yml b/kotlin-dsl/.github/ISSUE_TEMPLATE/bug_report_form.yml
deleted file mode 100644
index 155359cd9..000000000
--- a/kotlin-dsl/.github/ISSUE_TEMPLATE/bug_report_form.yml
+++ /dev/null
@@ -1,63 +0,0 @@
-name: 🐛 Bug Report
-description: File a bug report
-title: "🐛 | "
-labels: ["bug", "triage"]
-body:
- - type: markdown
- attributes:
- value: |
- Thanks for taking the time to fill out this bug report!
-
- 🙌 Please, make sure your bug report is unique 🦄 !
- Did you search issues labeled with Bug ? If you find anything relevant to you, up-vote 👍 or add a comment 💬 !
-
- For more information, please visit our [contribute section](https://github.com/chutney-testing/chutney/blob/master/CONTRIBUTING.md)
- - type: textarea
- id: what-happened
- attributes:
- label: What happened?
- description: Describe the bug - What is the current behavior?
- placeholder: A clear and concise description of what actually happens
- validations:
- required: true
- - type: textarea
- id: steps-to-reproduce
- attributes:
- label: Steps to reproduce
- description: How one can reproduce the issue ?
- placeholder: This is very important - Use GIFs to record behavior if applicable
- validations:
- required: true
- - type: textarea
- id: relevant-logs
- attributes:
- label: Relevant logs and/or screenshots/GIFs
- description: If applicable, paste any relevant logs
- render: shell
- placeholder: Please use code blocks (```) to format console output, logs, and code, as it is very hard to read otherwise
- validations:
- required: false
- - type: textarea
- id: possible-fixes
- attributes:
- label: Possible fixes
- description: If you can, link to the line of code that might be responsible for the problem
- render: shell
- validations:
- required: false
- - type: textarea
- id: version
- attributes:
- label: Version
- description: Which version are you running ?
- validations:
- required: false
- - type: dropdown
- id: os
- attributes:
- label: What OS did you use?
- multiple: true
- options:
- - Mac OS
- - Windows
- - Linux
diff --git a/kotlin-dsl/.github/ISSUE_TEMPLATE/config.yml b/kotlin-dsl/.github/ISSUE_TEMPLATE/config.yml
deleted file mode 100644
index afbb369c0..000000000
--- a/kotlin-dsl/.github/ISSUE_TEMPLATE/config.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-blank_issues_enabled: false
-contact_links:
- - name: 🙋 Ask Questions, Get Help and Share ideas 💡
- url: https://github.com/chutney-testing/chutney/discussions
- about: A place to get help, Q&A, new ideas and discussions
- - name: 💬 Live chat and private messages
- url: https://chutney-testing.zulipchat.com/
- about: A more informal place to get in touch if you need it
- - name: 🌋 Security / Vulnerabilities
- url: https://chutney-testing.zulipchat.com/
- about: Please get in touch with us using private messages on our Zulip server
diff --git a/kotlin-dsl/.github/ISSUE_TEMPLATE/feature_request_form.yml b/kotlin-dsl/.github/ISSUE_TEMPLATE/feature_request_form.yml
deleted file mode 100644
index 2cee26167..000000000
--- a/kotlin-dsl/.github/ISSUE_TEMPLATE/feature_request_form.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-name: 🚀 Feature Request
-description: Suggest an idea for this project
-title: "🚀 | "
-labels: ["enhancement"]
-body:
- - type: markdown
- attributes:
- value: |
- 🙌 Please, make sure your feature request is unique 🦄 !
- Did you search issues labeled with Enhancement ? If you find anything relevant to you, up-vote 👍 or add a comment 💬 !
- - type: textarea
- id: use-case
- attributes:
- label: Describe your use case
- placeholder: Describes the context in which the feature will be used. Can you give a concrete example of how you'd use the feature?
- validations:
- required: true
- - type: textarea
- id: related-problems
- attributes:
- label: Is your feature request related to a problem ?
- placeholder: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
- validations:
- required: false
- - type: textarea
- id: solution
- attributes:
- label: Describe the solution you'd like
- placeholder: A clear and concise description of what you want to happen. Can you draw a picture of what you're imagining?
- validations:
- required: true
- - type: textarea
- id: examples
- attributes:
- label: Link to examples
- description: Is there other software that has the behavior you're interested in?
- placeholder: What is it, and how does it work? Are there any relevant existing standards or conventions?
- validations:
- required: false
diff --git a/kotlin-dsl/.github/pull_request_template.md b/kotlin-dsl/.github/pull_request_template.md
deleted file mode 100644
index db6d2b5d9..000000000
--- a/kotlin-dsl/.github/pull_request_template.md
+++ /dev/null
@@ -1,31 +0,0 @@
-#### Issue Number
-fixes #
-
-
-#### Describe the changes you've made
-
-
-
-#### Describe if there is any unusual behaviour of your code
-
-
-
-#### Additional context
-
-
-
-#### Test plan
-
-
-
-#### Checklist
-
-
-
-- [ ] Refer to issue(s) the PR solves
-- [ ] New kotlin code is covered by tests
-- [ ] Add screenshots or gifs of the new behavior, if applicable.
-- [ ] All new and existing tests pass
-- [ ] No git conflict
diff --git a/kotlin-dsl/.github/release.yml b/kotlin-dsl/.github/release.yml
deleted file mode 100644
index cd9dc467c..000000000
--- a/kotlin-dsl/.github/release.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-# Changelog template
-
-changelog:
- categories:
- - title: '⚡ Breaking changes:'
- labels:
- - breaking
- - title: '🚀 Implemented enhancements:'
- labels:
- - enhancement
- - title: '🐛 Fixed bugs:'
- labels:
- - bug
- - title: '🔧 Technical enhancements:'
- labels:
- - technical
- - title: '👒 Dependencies:'
- labels:
- - dependencies
- - title: 'to categorize manually:'
- labels:
- - '*'
- exclude:
- labels:
- - dependencies
- - enhancement
- - bug
- - technical
- - breaking
- - release
diff --git a/kotlin-dsl/.github/workflows/build.yml b/kotlin-dsl/.github/workflows/build.yml
deleted file mode 100644
index 9732c9f3a..000000000
--- a/kotlin-dsl/.github/workflows/build.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-name: Build
-
-on:
- push:
- branches: [ master ]
- pull_request:
- branches: [ master ]
-
-jobs:
- build:
-
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v2
- with:
- fetch-depth: 0
-
- - name: Set up JDK 17
- uses: actions/setup-java@v2
- with:
- distribution: 'temurin'
- java-version: 17
-
- - name: Cache maven
- uses: actions/cache@v2.1.3
- with:
- path: ~/.m2/repository
- key: maven_cache
-
- - name: Build with Gradle
- run: ./gradlew clean build
diff --git a/kotlin-dsl/.github/workflows/release.yml b/kotlin-dsl/.github/workflows/release.yml
deleted file mode 100644
index 17b7edb89..000000000
--- a/kotlin-dsl/.github/workflows/release.yml
+++ /dev/null
@@ -1,69 +0,0 @@
-name: Release
-
-on:
- push:
- tags:
- - '*.*.*'
-
-jobs:
- deploy:
- runs-on: ubuntu-latest
-
- name: Deploy to central
- steps:
- - uses: actions/checkout@v2
-
- - name: Set release version environment variable
- run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
-
- - name: Set up JDK 17
- uses: actions/setup-java@v2
- with:
- distribution: 'temurin'
- java-version: 17
-
- - name: Verify the project build
- run: ./gradlew clean build
-
- - name: Publish to OSSRH
- run: ./gradlew publish
- env:
- OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
- OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
- CHUTNEY_GPG_KEY_ID: ${{ secrets.CHUTNEY_GPG_KEY_ID }}
- CHUTNEY_GPG_KEY: ${{ secrets.CHUTNEY_GPG_PRIVATE_KEY }}
- CHUTNEY_GPG_PASSPHRASE: ${{ secrets.CHUTNEY_GPG_PASSPHRASE }}
-
- - name: Create github release
- id: create_release
- uses: actions/create-release@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- tag_name: ${{ github.ref }}
- release_name: Release ${{ github.ref }}
- body: 'TODO'
- draft: false
- prerelease: false
-
- - name: Upload jar to github release
- id: upload-release-asset-dsl-jar
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ${{ github.workspace }}/dsl/build/libs/chutney-kotlin-dsl-${{ env.RELEASE_VERSION }}.jar
- asset_name: chutney-kotlin-dsl-${{ env.RELEASE_VERSION }}.jar
- asset_content_type: application/jar
-
- - name: Upload signature to github release
- id: upload-release-asset-dsl-jar-sig
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ${{ github.workspace }}/dsl/build/libs/chutney-kotlin-dsl-${{ env.RELEASE_VERSION }}.jar.asc
- asset_name: chutney-kotlin-dsl-${{ env.RELEASE_VERSION }}.jar.asc
- asset_content_type: application/pgp-signature
diff --git a/kotlin-dsl/.gitignore b/kotlin-dsl/.gitignore
index ab4cc1f30..11f35a91c 100644
--- a/kotlin-dsl/.gitignore
+++ b/kotlin-dsl/.gitignore
@@ -1,8 +1,3 @@
-# IntelliJ project files
-.idea
-*.iml
-out
-gen
### Gradle template
###############################################################################
@@ -13,7 +8,6 @@ DEVREP
# Ignore Gradle GUI config
gradle-app.setting
-gradle.properties
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar
@@ -24,12 +18,6 @@ gradle.properties
# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
# gradle/wrapper/gradle-wrapper.properties
-# Maven
-###############################################################################
-/log/
-**/target/
-.mvn/maven.config
-
# Chutney reports
###############################################################################
diff --git a/kotlin-dsl/CONTRIBUTING.md b/kotlin-dsl/CONTRIBUTING.md
index 833054c76..5e7848e2a 100644
--- a/kotlin-dsl/CONTRIBUTING.md
+++ b/kotlin-dsl/CONTRIBUTING.md
@@ -26,7 +26,7 @@ To contribute to this documentation (README, CONTRIBUTING, etc.), we conforms to
2. Create your working branches as you like
* **WARNING** - Do not modify the master branch nor any of our branches since it will break the automatic sync
3. When you are done, fetch all and rebase your branch onto our master or any other of ours
- * ex. on your branch, do :
+ * ex. on your branch, do :
* `git fetch --all --prune`
* `git rebase --no-ff origin/master`
4. Test your changes and make sure everything is working
@@ -34,7 +34,7 @@ To contribute to this documentation (README, CONTRIBUTING, etc.), we conforms to
* Do not forget to add reviewers ! Check out the last authors of the code you modified and add them.
* In case of doubts, here are active contributors :
-
+
## Code convention
Try to follow [Kotlin coding conventions](https://kotlinlang.org/docs/reference/coding-conventions.html).
@@ -46,7 +46,7 @@ Concerning tests mocking :
* Use `org.springframework.test.web.servlet.MockMvc` to mock REST HTTP endpoints
* **Do not use PowerMock**
* We consider it to be sign of a code-smell
-
+
## Branch convention
* **wip/** unstable code, to share between developers working on the same task
@@ -83,21 +83,14 @@ We use github actions to build and releas this library.
### Update Changelog file
-Do it first, because changelog updates should be part of the release being made.
+Do it first, because changelog updates should be part of the release being made.
Check page: [Automatically generated release notes](https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes)
Do not hesitate to update the release note generated especially the titles of pull request :)
Use it to update [CHANGELOG.md](https://github.com/chutney-testing/chutney-kotlin-dsl/blob/master/CHANGELOG.md)
### Releasing
-
-We use [Reckon gradle plugin](https://github.com/ajoberstar/reckon).
-
-Release is just pushing a tag with version information :
-```shell
- ./gradlew reckonTagCreate -Preckon.stage= -Preckon.scope=
- git push origin
-```
+Update `chutneyVersion` in `gradle.properties` file.
### Update Github release
@@ -145,7 +138,7 @@ ALv2 license compatibility as defined by the ASF can be found here : [http://apa
__As far as we understand :__
-If, by any mean, your contribution should rely on a Category X dependency, then you must provide a way to modularize it
+If, by any mean, your contribution should rely on a Category X dependency, then you must provide a way to modularize it
and make it's use optional to Chutney, as a plugin.
You may distribute your plugin under the terms of the Category X license.
diff --git a/kotlin-dsl/GETTING_STARTED.md b/kotlin-dsl/GETTING_STARTED.md
new file mode 100644
index 000000000..51d19f19b
--- /dev/null
+++ b/kotlin-dsl/GETTING_STARTED.md
@@ -0,0 +1,3 @@
+## Getting Started
+
+todo
diff --git a/kotlin-dsl/LICENSE b/kotlin-dsl/LICENSE
deleted file mode 100644
index d64569567..000000000
--- a/kotlin-dsl/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/kotlin-dsl/README.md b/kotlin-dsl/README.md
index fcb15e4dd..b9058de9b 100644
--- a/kotlin-dsl/README.md
+++ b/kotlin-dsl/README.md
@@ -10,7 +10,7 @@ This repository aims to add a kotlin flavor for writing and executing chutney sc
## Why?
- Avoid text copy pasting
-- Provide better code assistance using IDE
+- Provide better code assistance using IDE
- Allow customization for teams
A chutney json scenario:
@@ -73,7 +73,7 @@ Scenario(title = "SWAPI GET people record") {
}
```
-How (k)ool is Kotlin? super (k)ool!
+How (k)ool is Kotlin? super (k)ool!
# How to run Kotlin scenarios
@@ -140,7 +140,7 @@ val envB = ChutneyEnvironment(
Alternatively, you can describe your environments with JSON files.
-They follow the model from Chutney [Environment module](https://github.com/chutney-testing/chutney/blob/master/environment/src/main/java/com/chutneytesting/environment/api/dto/EnvironmentDto.java).
+They follow the model from Chutney [Environment module](https://github.com/chutney-testing/chutney/blob/main/chutney/environment/src/main/java/com/chutneytesting/environment/api/dto/EnvironmentDto.java).
In order to use environments from JSON files, you should store them in a folder named **environment** under some directory whose default path is ```./chutney```, but you can override it with a constructor parameter : ```Launcher(environmentJsonRootPath = "./chutney_env")```
@@ -163,7 +163,7 @@ val say_hi = Scenario(title = "Say hi!") {
}
```
-## 4. Run your scenarios !
+## 4. Run your scenarios !
### Using the Launcher in JUnit test
@@ -184,7 +184,7 @@ By default, reports are in ".chutney/reports". But you can override it using ```
#### Expecting a failure
-You can change the expecting status of your scenario. For example, the Chutney scenario will fail,
+You can change the expecting status of your scenario. For example, the Chutney scenario will fail,
but not the running JUnit test.
```kotlin
@@ -233,8 +233,8 @@ fun `is able to emulate a campaign on one environment`(scenario: ChutneyScenario
#### Running a campaign, on different environment
-To keep it simple, we will combine the two previous snippets,
-but this time we will parameterize the environment.
+To keep it simple, we will combine the two previous snippets,
+but this time we will parameterize the environment.
```kotlin
private companion object {
@@ -286,7 +286,7 @@ Two report entries could be listened to with following keys :
* **chutney.report.step** : Report entry key for JSON scenario's step report
#### Configuration
-As the Kotlin Chutney JUnit engine is packaged in ```chutney-koltin-dsl``` module, just adding it as a dependency will make
+As the Kotlin Chutney JUnit engine is packaged in ```chutney-koltin-dsl``` module, just adding it as a dependency will make
the engine active when executing tests with the JUnit platform.
Chutney JUnit configuration parameters are :
diff --git a/kotlin-dsl/build.gradle.kts b/kotlin-dsl/build.gradle.kts
index 1838471e6..e8353d82d 100644
--- a/kotlin-dsl/build.gradle.kts
+++ b/kotlin-dsl/build.gradle.kts
@@ -1,21 +1,10 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
- id("org.ajoberstar.reckon") version "0.18.0"
-
- kotlin("jvm") version "1.9.21" apply false
-}
-
-reckon {
- setDefaultInferredScope("patch")
- stages("rc", "final")
- setScopeCalc(calcScopeFromProp().or(calcScopeFromCommitMessages()))
- setStageCalc(calcStageFromProp())
+ kotlin("jvm") version "1.9.21" apply false
}
subprojects {
- extra["chutneyTestingVersion"] = "2.7.0"
-
repositories {
mavenLocal()
mavenCentral()
@@ -33,15 +22,15 @@ subprojects {
testImplementation("org.junit.jupiter:junit-jupiter-params")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
- implementation(enforcedPlatform("com.chutneytesting:chutney-parent:${project.extra["chutneyTestingVersion"]}"))
+ implementation(enforcedPlatform("com.chutneytesting:chutney-parent:${properties["chutneyVersion"]}"))
// Resolve conflicts from chutney-parent for runtime classpath
- runtimeOnly("com.fasterxml.jackson.module:jackson-module-scala_2.13") // :2.15.3
- runtimeOnly("com.fasterxml.jackson.dataformat:jackson-dataformat-csv") // :2.15.3
- runtimeOnly("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml") // :2.15.3
- runtimeOnly("org.eclipse.jetty:jetty-client") // :12.0.5
- runtimeOnly("org.eclipse.jetty:jetty-security") // :12.0.5
- runtimeOnly("org.eclipse.jetty:jetty-xml") // :12.0.5
- runtimeOnly("org.eclipse.jetty.http2:http2-common:11.0.19")
+ runtimeOnly("com.fasterxml.jackson.module:jackson-module-scala_2.13") // :2.15.2
+ runtimeOnly("com.fasterxml.jackson.dataformat:jackson-dataformat-csv") // :2.15.2
+ runtimeOnly("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml") // :2.15.2
+ runtimeOnly("org.eclipse.jetty:jetty-client:11.0.15") // :11.0.15
+ runtimeOnly("org.eclipse.jetty:jetty-security:11.0.15") // :11.0.15
+ runtimeOnly("org.eclipse.jetty:jetty-xml:11.0.15") // :11.0.15
+ runtimeOnly("org.eclipse.jetty.http2:http2-common:11.0.15") // :11.0.15
}
tasks.withType {
diff --git a/kotlin-dsl/dsl/build.gradle.kts b/kotlin-dsl/dsl/build.gradle.kts
index fcdd34aa9..3620f27f0 100644
--- a/kotlin-dsl/dsl/build.gradle.kts
+++ b/kotlin-dsl/dsl/build.gradle.kts
@@ -1,6 +1,8 @@
import java.time.Instant
import java.time.format.DateTimeFormatter
+fun properties(key: String) = project.findProperty(key).toString()
+
plugins {
java
`maven-publish`
@@ -8,6 +10,7 @@ plugins {
}
val group = "com.chutneytesting"
+version = properties("chutneyVersion")
val timestamp: String = DateTimeFormatter.ISO_INSTANT.format(Instant.now())
val githubUrl = "https://github.com/chutney-testing/${project.name}"
val publicationName = "chutneyKotlinDSL"
@@ -22,9 +25,9 @@ configurations {
dependencies {
- api("com.chutneytesting:engine:${project.extra["chutneyTestingVersion"]}")
- implementation("com.chutneytesting:environment:${project.extra["chutneyTestingVersion"]}")
- runtimeOnly("com.chutneytesting:action-impl:${project.extra["chutneyTestingVersion"]}")
+ api("com.chutneytesting:engine:${properties["chutneyVersion"]}")
+ implementation("com.chutneytesting:environment:${properties["chutneyVersion"]}")
+ runtimeOnly("com.chutneytesting:action-impl:${properties["chutneyVersion"]}")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("org.slf4j:slf4j-api")
@@ -70,17 +73,28 @@ tasks.withType {
suppressedValidationErrors.add("enforced-platform")
}
+tasks.withType().configureEach {
+ val predicate = provider {
+ val publishToOssrh = repository == publishing.repositories["ossrh"] && project.findProperty("server-id") == "ossrh"
+ val publishToGithub = repository == publishing.repositories["github"] && project.findProperty("server-id") == "github"
+ publishToOssrh || publishToGithub
+ }
+ onlyIf("publish to ossrh or github") {
+ predicate.get()
+ }
+}
+
publishing {
publications {
create(publicationName) {
groupId = group
artifactId = project.name
- version = project.version.toString()
+ version = properties("chutneyVersion")
from(components["java"])
pom {
name.set("Chutney Kotlin DSL")
description.set("Generates Chutney scenarios using Kotlin.")
- inceptionYear.set("2020")
+ inceptionYear.set("2017")
url.set(githubUrl)
licenses {
license {
@@ -124,39 +138,45 @@ publishing {
id.set("KarimGl")
name.set("Karim Goubbaa")
}
+ developer {
+ id.set("DelaunayAlex")
+ name.set("Alexandre Delaunay")
+ }
}
}
}
}
repositories {
maven {
- name = "OSSRH"
-
- val releasesRepoUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
- val snapshotsRepoUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots"
-
- val ossrhUsername =
- System.getenv("OSSRH_USERNAME") // Use token ; https://s01.oss.sonatype.org/#profile;User%20Token
- val ossrhPassword = System.getenv("OSSRH_PASSWORD") // Use token
-
- url = uri(releasesRepoUrl)
+ name = "ossrh"
+ url = uri("https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/")
+ credentials {
+ username = System.getenv("MAVEN_USERNAME")
+ password = System.getenv("MAVEN_PASSWORD")
+ }
+ }
+ maven {
+ name = "github"
+ url = uri("https://maven.pkg.github.com/chutney-testing/chutney")
credentials {
- username = ossrhUsername
- password = ossrhPassword
+ username = System.getenv("MAVEN_USERNAME")
+ password = System.getenv("MAVEN_PASSWORD")
}
}
}
}
signing {
- //useGpgCmd()
-
- // Format: "0x12345678" ; gpg --list-keys --keyid-format 0xSHORT
- val signingKeyId: String? = System.getenv("CHUTNEY_GPG_KEY_ID")
-
- // gpg -a --export-secret-subkeys KEY_ID
- val signingKey: String? = System.getenv("CHUTNEY_GPG_KEY")
- val signingPassword: String? = System.getenv("CHUTNEY_GPG_PASSPHRASE")
- useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword)
- sign(publishing.publications[publicationName])
+ setRequired( false )
+ if (project.findProperty("server-id") == "ossrh") {
+ //useGpgCmd()
+ // Format: "0x12345678" ; gpg --list-keys --keyid-format 0xSHORT
+ val signingKeyId: String? = System.getenv("CHUTNEY_GPG_KEY_ID")
+ // gpg -a --export-secret-subkeys KEY_ID
+ val signingKey: String? = System.getenv("CHUTNEY_GPG_KEY")
+ val signingPassword: String? = System.getenv("CHUTNEY_GPG_PASSPHRASE")
+ useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword)
+ sign(publishing.publications[publicationName])
+ }
}
+
diff --git a/kotlin-dsl/dsl/src/test/kotlin/com/chutneytesting/kotlin/junit/engine/ChutneyTestEngineTest.kt b/kotlin-dsl/dsl/src/test/kotlin/com/chutneytesting/kotlin/junit/engine/ChutneyTestEngineTest.kt
index d9c402bcb..51c181559 100644
--- a/kotlin-dsl/dsl/src/test/kotlin/com/chutneytesting/kotlin/junit/engine/ChutneyTestEngineTest.kt
+++ b/kotlin-dsl/dsl/src/test/kotlin/com/chutneytesting/kotlin/junit/engine/ChutneyTestEngineTest.kt
@@ -30,7 +30,7 @@ private class ChutneyTestEngineTest {
fun emptySelectors(): Array {
return arrayOf(
selectClass("UnknownClass"),
- selectClasspathRoots(setOf(Path.of("../.github")))[0],
+ selectClasspathRoots(setOf(Path.of("./src/test/kotlin/com/chutneytesting/kotlin/junit/engine")))[0],
selectClasspathResource("unknownResource"),
selectMethod("com.chutneytesting.kotlin.junit.engine.ChutneyTest#unknownMethod()")
)
diff --git a/kotlin-dsl/example/build.gradle.kts b/kotlin-dsl/example/build.gradle.kts
index 09f9b9e27..e0cd2a7de 100644
--- a/kotlin-dsl/example/build.gradle.kts
+++ b/kotlin-dsl/example/build.gradle.kts
@@ -1,3 +1,5 @@
+fun properties(key: String) = project.findProperty(key).toString()
+version = properties("chutneyVersion")
dependencies {
implementation(project(":chutney-kotlin-dsl"))
testImplementation("org.testcontainers:testcontainers")
diff --git a/kotlin-dsl/example/src/main/kotlin/com/chutneytesting/example/scenario/selenium_scenario.kt b/kotlin-dsl/example/src/main/kotlin/com/chutneytesting/example/scenario/selenium_scenario.kt
index db47b4802..afe2c6c94 100644
--- a/kotlin-dsl/example/src/main/kotlin/com/chutneytesting/example/scenario/selenium_scenario.kt
+++ b/kotlin-dsl/example/src/main/kotlin/com/chutneytesting/example/scenario/selenium_scenario.kt
@@ -25,14 +25,6 @@ fun selenium_scenario(hub: String) = Scenario(title = "Selenium scenario") {
}
}
And("And scenario page are loaded") {
- Step("Menu has admin section") {
- SeleniumGetTextAction(
- selector = "//*[@class='menu-header'][2]",
- by = SELENIUM_BY.xpath,
- wait = 10,
- validations = mapOf("content is equals to ADMIN" to "#outputGetText.equals('ADMIN')".elEval())
- )
- }
Step("Scenario menu is selected") {
SeleniumGetAttributeAction(
selector = "//*[@href='#/scenario']",
diff --git a/kotlin-dsl/gradle.properties b/kotlin-dsl/gradle.properties
new file mode 100644
index 000000000..7be45d0ec
--- /dev/null
+++ b/kotlin-dsl/gradle.properties
@@ -0,0 +1 @@
+chutneyVersion = 2.7.1-SNAPSHOT
diff --git a/kotlin-dsl/gradle/wrapper/gradle-wrapper.jar b/kotlin-dsl/gradle/wrapper/gradle-wrapper.jar
index 7454180f2..033e24c4c 100644
Binary files a/kotlin-dsl/gradle/wrapper/gradle-wrapper.jar and b/kotlin-dsl/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/kotlin-dsl/gradle/wrapper/gradle-wrapper.properties b/kotlin-dsl/gradle/wrapper/gradle-wrapper.properties
index 00e33edef..9f4197d5f 100644
--- a/kotlin-dsl/gradle/wrapper/gradle-wrapper.properties
+++ b/kotlin-dsl/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip
+networkTimeout=10000
+validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/kotlin-dsl/gradlew b/kotlin-dsl/gradlew
index 744e882ed..fcb6fca14 100755
--- a/kotlin-dsl/gradlew
+++ b/kotlin-dsl/gradlew
@@ -1,7 +1,7 @@
-#!/usr/bin/env sh
+#!/bin/sh
#
-# Copyright 2015 the original author or authors.
+# Copyright © 2015-2021 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -17,67 +17,98 @@
#
##############################################################################
-##
-## Gradle start up script for UN*X
-##
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
##############################################################################
# Attempt to set APP_HOME
+
# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+# This is normally unused
+# shellcheck disable=SC2034
+APP_BASE_NAME=${0##*/}
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
+MAX_FD=maximum
warn () {
echo "$*"
-}
+} >&2
die () {
echo
echo "$*"
echo
exit 1
-}
+} >&2
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MSYS* | MINGW* )
- msys=true
- ;;
- NONSTOP* )
- nonstop=true
- ;;
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
@@ -87,9 +118,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
+ JAVACMD=$JAVA_HOME/jre/sh/java
else
- JAVACMD="$JAVA_HOME/bin/java"
+ JAVACMD=$JAVA_HOME/bin/java
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
@@ -98,88 +129,120 @@ Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+ JAVACMD=java
+ if ! command -v java >/dev/null 2>&1
+ then
+ die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
+ fi
fi
# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC3045
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC3045
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
fi
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# For Cygwin or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
# Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
fi
- i=`expr $i + 1`
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
done
- case $i in
- 0) set -- ;;
- 1) set -- "$args0" ;;
- 2) set -- "$args0" "$args1" ;;
- 3) set -- "$args0" "$args1" "$args2" ;;
- 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
fi
-# Escape application args
-save () {
- for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
- echo " "
-}
-APP_ARGS=`save "$@"`
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Collect all arguments for the java command;
+# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
+# shell script including quotes and variable substitutions, so put them in
+# double quotes to make sure that they get re-expanded; and
+# * put everything else in single quotes, so that it's not re-expanded.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
exec "$JAVACMD" "$@"
diff --git a/kotlin-dsl/gradlew.bat b/kotlin-dsl/gradlew.bat
index 107acd32c..93e3f59f1 100644
--- a/kotlin-dsl/gradlew.bat
+++ b/kotlin-dsl/gradlew.bat
@@ -14,7 +14,7 @@
@rem limitations under the License.
@rem
-@if "%DEBUG%" == "" @echo off
+@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@@ -25,7 +25,8 @@
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@@ -40,7 +41,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto execute
+if %ERRORLEVEL% equ 0 goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
:end
@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
+if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal
diff --git a/kotlin-dsl/licenses.xml b/kotlin-dsl/licenses.xml
deleted file mode 100644
index 9822706fd..000000000
--- a/kotlin-dsl/licenses.xml
+++ /dev/null
@@ -1,314 +0,0 @@
-
-
-
-
-
-
-
-
- Apache Software License, Version 2.0
-
- The Apache Software License, Version 2.0
- Apache License, Version 2.0
- Apache Public License 2.0
- Apache License 2.0
- ASL 2.0
- Apache Software License, Version 1.1
-
-
- http://www.apache.org/licenses/LICENSE-2.0.txt
- http://www.apache.org/licenses/LICENSE-2.0
-
-
-
-
- BSD License
-
- New BSD License
- The 2-Clause BSD License
- BSD 3-Clause
- Revised BSD
- BSD
-
-
- http://www.opensource.org/licenses/bsd-license.php
- http://xstream.codehaus.org/license.html
-
-
-
-
- The MIT License
-
- The MIT License
- MIT License
- The MIT License (MIT)
-
-
- http://code.google.com/p/mockito/wiki/License
- http://www.opensource.org/licenses/mit-license.php
-
-
-
-
- Public Domain
-
- Public Domain
-
-
-
-
- Eclipse Distribution License
-
- Eclipse Distribution License 1.0
- Eclipse Distribution License (New BSD License)
-
-
-
-
-
-
- Eclipse Public License 1.0
-
- Eclipse Public License 1.0
-
-
- http://www.eclipse.org/legal/epl-v10.html
-
-
-
-
- CDDL + GPLv2 with classpath exception
-
- CDDL + GPLv2 with classpath exception
- GPL2 w/ CPE
- GPLv2+CE
-
-
- http://www.eclipse.org/legal/epl-v10.html
-
-
-
-
- Common Development and Distribution License (CDDL) v1.0
-
- Common Development and Distribution License (CDDL) v1.0
- CDDL
-
-
- https://glassfish.dev.java.net/public/CDDLv1.0.html
-
-
-
-
- Common Public License Version 1.0
-
- Common Public License Version 1.0
-
-
- http://www.opensource.org/licenses/cpl1.0.txt
-
-
-
-
-
-
-
-
-
-
- GNU General Public License
-
- GNU General Public License version 2
- GNU General Public License version 3
-
-
- https://opensource.org/licenses/GPL-2.0
- https://opensource.org/licenses/GPL-3.0
-
-
-
-
- GNU Affero General Public License version 3
-
- GNU Affero General Public License version 3
-
-
- https://opensource.org/licenses/agpl-v3.html
-
-
-
-
- GNU Library General Public License
-
- GNU Library General Public License version 2
- GNU Library General Public License version 2.1
- GNU Library General Public License version 3
-
-
- https://opensource.org/licenses/LGPL-2.0
- https://opensource.org/licenses/LGPL-2.1
- https://opensource.org/licenses/LGPL-3.0
-
-
-
-
- The Q Public License
-
- The Q Public License Version 1.0
-
-
- https://opensource.org/licenses/QPL-1.0
-
-
-
-
- The Sleepycat License
-
- The Sleepycat License
-
-
- https://opensource.org/licenses/sleepycat.php
-
-
-
-
- The Code Project Open License
-
- The Code Project Open License
- CPOL
-
-
- https://www.codeproject.com/info/cpol10.aspx
-
-
-
-
- BSD 4-Clause "Original" or "Old" License
-
- BSD 4-Clause "Original" or "Old" License
-
-
- https://spdx.org/licenses/BSD-4-Clause.html
- https://directory.fsf.org/wiki/License:BSD-4-Clause
-
-
-
-
- Microsoft Limited Public License
-
- Microsoft Limited Public License
- Ms-LPL
-
-
- https://www.openhub.net/licenses/mslpl
-
-
-
-
- Netscape Public License
-
- Netscape Public License v1.0
- NPL-1.0
- Netscape Public License v1.1
- NPL-1.1
-
-
- https://spdx.org/licenses/NPL-1.0.html
- https://spdx.org/licenses/NPL-1.1.html
-
-
-
-
- The JSON License
-
- The JSON License
-
-
- http://www.json.org/license.html
-
-
-
-
-
-