diff --git a/.github/workflows/Configuration-ConfigurationProviders.yml b/.github/workflows/Configuration-ConfigurationProviders.yml index db766c55e..f2a3d8aca 100644 --- a/.github/workflows/Configuration-ConfigurationProviders.yml +++ b/.github/workflows/Configuration-ConfigurationProviders.yml @@ -2,6 +2,15 @@ name: "Configuration: ConfigurationProviders" on: workflow_dispatch: + inputs: + linux_integration_environment: + description: GitHub Environment name for integration tests running on linux. + required: false + type: string + windows_integration_environment: + description: GitHub Environment name for integration tests running on Windows. + required: false + type: string push: branches: - main @@ -14,13 +23,15 @@ on: - nuget.config - Pipfile* - pyenv.pkgs - - '**/*.py' + - environment.py + - pysteel/** + - steps/** - Configuration/src/ConfigurationProviders/** - .github/workflows/configuration.yml - .github/workflows/shared-test-workflow.yml concurrency: - group: ${{ github.workflow }}-${{ github.ref }} + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.inputs.linux_integration_environment || vars.LINUX_INTEGRATION_ENVIRONMENT }}-${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} cancel-in-progress: true jobs: @@ -31,12 +42,12 @@ jobs: feature: Configuration sample: ConfigurationProviders OS: windows + environment_name: ${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} linux: - needs: windows - if: ${{ !cancelled() }} uses: ./.github/workflows/shared-test-workflow.yml secrets: inherit with: feature: Configuration sample: ConfigurationProviders OS: linux + environment_name: ${{ github.event.inputs.linux_integration_environment || vars.LINUX_INTEGRATION_ENVIRONMENT }} diff --git a/.github/workflows/Connectors-MySql.yml b/.github/workflows/Connectors-MySql.yml index 8a7adf739..0be2c1075 100644 --- a/.github/workflows/Connectors-MySql.yml +++ b/.github/workflows/Connectors-MySql.yml @@ -2,6 +2,15 @@ name: "Connectors: MySql" on: workflow_dispatch: + inputs: + linux_integration_environment: + description: GitHub Environment name for integration tests running on linux. + required: false + type: string + windows_integration_environment: + description: GitHub Environment name for integration tests running on Windows. + required: false + type: string push: branches: - main @@ -14,13 +23,15 @@ on: - nuget.config - Pipfile* - pyenv.pkgs - - '**/*.py' + - environment.py + - pysteel/** + - steps/** - Connectors/src/MySql/** - .github/workflows/mysql.yml - .github/workflows/shared-test-workflow.yml concurrency: - group: ${{ github.workflow }}-${{ github.ref }} + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.inputs.linux_integration_environment || vars.LINUX_INTEGRATION_ENVIRONMENT }}-${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} cancel-in-progress: true jobs: @@ -31,12 +42,12 @@ jobs: feature: Connectors sample: MySql OS: linux + environment_name: ${{ github.event.inputs.linux_integration_environment || vars.LINUX_INTEGRATION_ENVIRONMENT }} windows: - needs: linux - if: ${{ !cancelled() }} uses: ./.github/workflows/shared-test-workflow.yml secrets: inherit with: feature: Connectors sample: MySql OS: windows + environment_name: ${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} diff --git a/.github/workflows/Connectors-MySqlEFCore.yml b/.github/workflows/Connectors-MySqlEFCore.yml index 14bc3e372..43b0d77ae 100644 --- a/.github/workflows/Connectors-MySqlEFCore.yml +++ b/.github/workflows/Connectors-MySqlEFCore.yml @@ -2,6 +2,15 @@ name: "Connectors: MySqlEFCore" on: workflow_dispatch: + inputs: + linux_integration_environment: + description: GitHub Environment name for integration tests running on linux. + required: false + type: string + windows_integration_environment: + description: GitHub Environment name for integration tests running on Windows. + required: false + type: string push: branches: - main @@ -14,13 +23,15 @@ on: - nuget.config - Pipfile* - pyenv.pkgs - - '**/*.py' + - environment.py + - pysteel/** + - steps/** - Connectors/src/MySqlEFCore/** - .github/workflows/mysql-efcore.yml - .github/workflows/shared-test-workflow.yml concurrency: - group: ${{ github.workflow }}-${{ github.ref }} + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.inputs.linux_integration_environment || vars.LINUX_INTEGRATION_ENVIRONMENT }}-${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} cancel-in-progress: true jobs: @@ -31,12 +42,12 @@ jobs: feature: Connectors sample: MySqlEFCore OS: windows + environment_name: ${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} linux: - needs: windows - if: ${{ !cancelled() }} uses: ./.github/workflows/shared-test-workflow.yml secrets: inherit with: feature: Connectors sample: MySqlEFCore OS: linux + environment_name: ${{ github.event.inputs.linux_integration_environment || vars.LINUX_INTEGRATION_ENVIRONMENT }} diff --git a/.github/workflows/Connectors-PostgreSql.yml b/.github/workflows/Connectors-PostgreSql.yml index 3af6f4644..e7349ef15 100644 --- a/.github/workflows/Connectors-PostgreSql.yml +++ b/.github/workflows/Connectors-PostgreSql.yml @@ -2,6 +2,15 @@ name: "Connectors: PostgreSQL" on: workflow_dispatch: + inputs: + linux_integration_environment: + description: GitHub Environment name for integration tests running on linux. + required: false + type: string + windows_integration_environment: + description: GitHub Environment name for integration tests running on Windows. + required: false + type: string push: branches: - main @@ -14,13 +23,15 @@ on: - nuget.config - Pipfile* - pyenv.pkgs - - '**/*.py' + - environment.py + - pysteel/** + - steps/** - Connectors/src/PostgreSql/** - .github/workflows/postgresql.yml - .github/workflows/shared-test-workflow.yml concurrency: - group: ${{ github.workflow }}-${{ github.ref }} + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.inputs.linux_integration_environment || vars.LINUX_INTEGRATION_ENVIRONMENT }}-${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} cancel-in-progress: true jobs: @@ -31,12 +42,12 @@ jobs: feature: Connectors sample: PostgreSql OS: windows + environment_name: ${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} linux: - needs: windows - if: ${{ !cancelled() }} uses: ./.github/workflows/shared-test-workflow.yml secrets: inherit with: feature: Connectors sample: PostgreSql OS: linux + environment_name: ${{ github.event.inputs.linux_integration_environment || vars.LINUX_INTEGRATION_ENVIRONMENT }} diff --git a/.github/workflows/Connectors-PostgreSqlEFCore.yml b/.github/workflows/Connectors-PostgreSqlEFCore.yml index 10e92d571..fd087a9ae 100644 --- a/.github/workflows/Connectors-PostgreSqlEFCore.yml +++ b/.github/workflows/Connectors-PostgreSqlEFCore.yml @@ -2,6 +2,15 @@ name: "Connectors: PostgreSqlEFCore" on: workflow_dispatch: + inputs: + linux_integration_environment: + description: GitHub Environment name for integration tests running on linux. + required: false + type: string + windows_integration_environment: + description: GitHub Environment name for integration tests running on Windows. + required: false + type: string push: branches: - main @@ -14,13 +23,15 @@ on: - nuget.config - Pipfile* - pyenv.pkgs - - '**/*.py' + - environment.py + - pysteel/** + - steps/** - Connectors/src/PostgreSqlEFCore/** - .github/workflows/postgresql-efcore.yml - .github/workflows/shared-test-workflow.yml concurrency: - group: ${{ github.workflow }}-${{ github.ref }} + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.inputs.linux_integration_environment || vars.LINUX_INTEGRATION_ENVIRONMENT }}-${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} cancel-in-progress: true jobs: @@ -31,12 +42,12 @@ jobs: feature: Connectors sample: PostgreSqlEFCore OS: linux + environment_name: ${{ github.event.inputs.linux_integration_environment || vars.LINUX_INTEGRATION_ENVIRONMENT }} windows: - needs: linux - if: ${{ !cancelled() }} uses: ./.github/workflows/shared-test-workflow.yml secrets: inherit with: feature: Connectors sample: PostgreSqlEFCore OS: windows + environment_name: ${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} diff --git a/.github/workflows/Connectors-RabbitMQ.yml b/.github/workflows/Connectors-RabbitMQ.yml index f4ef50ab2..8d6ea5856 100644 --- a/.github/workflows/Connectors-RabbitMQ.yml +++ b/.github/workflows/Connectors-RabbitMQ.yml @@ -2,6 +2,15 @@ name: "Connectors: RabbitMQ" on: workflow_dispatch: + inputs: + linux_integration_environment: + description: GitHub Environment name for integration tests running on linux. + required: false + type: string + windows_integration_environment: + description: GitHub Environment name for integration tests running on Windows. + required: false + type: string push: branches: - main @@ -14,13 +23,15 @@ on: - nuget.config - Pipfile* - pyenv.pkgs - - '**/*.py' + - environment.py + - pysteel/** + - steps/** - Connectors/src/RabbitMQ/** - .github/workflows/rabbitmq.yml - .github/workflows/shared-test-workflow.yml concurrency: - group: ${{ github.workflow }}-${{ github.ref }} + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.inputs.linux_integration_environment || vars.LINUX_INTEGRATION_ENVIRONMENT }}-${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} cancel-in-progress: true jobs: @@ -31,12 +42,12 @@ jobs: feature: Connectors sample: RabbitMQ OS: linux + environment_name: ${{ github.event.inputs.linux_integration_environment || vars.LINUX_INTEGRATION_ENVIRONMENT }} windows: - needs: linux - if: ${{ !cancelled() }} uses: ./.github/workflows/shared-test-workflow.yml secrets: inherit with: feature: Connectors sample: RabbitMQ OS: windows + environment_name: ${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} diff --git a/.github/workflows/Connectors-Redis.yml b/.github/workflows/Connectors-Redis.yml index 8a3eb313d..1c8104754 100644 --- a/.github/workflows/Connectors-Redis.yml +++ b/.github/workflows/Connectors-Redis.yml @@ -2,6 +2,15 @@ name: "Connectors: Redis" on: workflow_dispatch: + inputs: + linux_integration_environment: + description: GitHub Environment name for integration tests running on linux. + required: false + type: string + windows_integration_environment: + description: GitHub Environment name for integration tests running on Windows. + required: false + type: string push: branches: - main @@ -14,13 +23,15 @@ on: - nuget.config - Pipfile* - pyenv.pkgs - - '**/*.py' + - environment.py + - pysteel/** + - steps/** - Connectors/src/Redis/** - .github/workflows/redis.yml - .github/workflows/shared-test-workflow.yml concurrency: - group: ${{ github.workflow }}-${{ github.ref }} + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.inputs.linux_integration_environment || vars.LINUX_INTEGRATION_ENVIRONMENT }}-${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} cancel-in-progress: true jobs: @@ -31,12 +42,12 @@ jobs: feature: Connectors sample: Redis OS: linux + environment_name: ${{ github.event.inputs.linux_integration_environment || vars.LINUX_INTEGRATION_ENVIRONMENT }} windows: - needs: linux - if: ${{ !cancelled() }} uses: ./.github/workflows/shared-test-workflow.yml secrets: inherit with: feature: Connectors sample: Redis OS: windows + environment_name: ${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} diff --git a/.github/workflows/FileShares-FileSharesWeb.yml b/.github/workflows/FileShares-FileSharesWeb.yml index 8541764d1..d18c038f6 100644 --- a/.github/workflows/FileShares-FileSharesWeb.yml +++ b/.github/workflows/FileShares-FileSharesWeb.yml @@ -2,6 +2,11 @@ name: "FileShares: FileSharesWeb" on: workflow_dispatch: + inputs: + windows_integration_environment: + description: GitHub Environment name for integration tests running on Windows. + required: false + type: string push: branches: - main @@ -14,13 +19,15 @@ on: - nuget.config - Pipfile* - pyenv.pkgs - - '**/*.py' + - environment.py + - pysteel/** + - steps/** - FileShares/src/FileSharesWeb/** - .github/workflows/networkfileshares.yml - .github/workflows/shared-test-workflow.yml concurrency: - group: ${{ github.workflow }}-${{ github.ref }} + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} cancel-in-progress: true jobs: @@ -31,3 +38,4 @@ jobs: feature: FileShares sample: FileSharesWeb OS: windows + environment_name: ${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} diff --git a/.github/workflows/Management-ActuatorApi.yml b/.github/workflows/Management-ActuatorApi.yml index d5632ab9f..d23788d15 100644 --- a/.github/workflows/Management-ActuatorApi.yml +++ b/.github/workflows/Management-ActuatorApi.yml @@ -2,6 +2,15 @@ name: "Management: ActuatorApi" on: workflow_dispatch: + inputs: + linux_integration_environment: + description: GitHub Environment name for integration tests running on linux. + required: false + type: string + windows_integration_environment: + description: GitHub Environment name for integration tests running on Windows. + required: false + type: string push: branches: - main @@ -14,13 +23,15 @@ on: - nuget.config - Pipfile* - pyenv.pkgs - - '**/*.py' + - environment.py + - pysteel/** + - steps/** - Management/src/ActuatorApi/** - .github/workflows/management.yml - .github/workflows/shared-test-workflow.yml concurrency: - group: ${{ github.workflow }}-${{ github.ref }} + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.inputs.linux_integration_environment || vars.LINUX_INTEGRATION_ENVIRONMENT }}-${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} cancel-in-progress: true jobs: @@ -31,12 +42,12 @@ jobs: feature: Management sample: ActuatorApi OS: linux + environment_name: ${{ github.event.inputs.linux_integration_environment || vars.LINUX_INTEGRATION_ENVIRONMENT }} windows: - needs: linux - if: ${{ !cancelled() }} uses: ./.github/workflows/shared-test-workflow.yml secrets: inherit with: feature: Management sample: ActuatorApi OS: windows + environment_name: ${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} diff --git a/.github/workflows/Security-RedisDataProtection.yml b/.github/workflows/Security-RedisDataProtection.yml index 9d92c38ae..62f9bdf65 100644 --- a/.github/workflows/Security-RedisDataProtection.yml +++ b/.github/workflows/Security-RedisDataProtection.yml @@ -2,6 +2,15 @@ name: "Security: RedisDataProtection" on: workflow_dispatch: + inputs: + linux_integration_environment: + description: GitHub Environment name for integration tests running on linux. + required: false + type: string + windows_integration_environment: + description: GitHub Environment name for integration tests running on Windows. + required: false + type: string push: branches: - main @@ -14,13 +23,15 @@ on: - nuget.config - Pipfile* - pyenv.pkgs - - '**/*.py' + - environment.py + - pysteel/** + - steps/** - Security/src/RedisDataProtection/** - .github/workflows/security-redis.yml - .github/workflows/shared-test-workflow.yml concurrency: - group: ${{ github.workflow }}-${{ github.ref }} + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.inputs.linux_integration_environment || vars.LINUX_INTEGRATION_ENVIRONMENT }}-${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} cancel-in-progress: true jobs: @@ -31,12 +42,12 @@ jobs: feature: Security sample: RedisDataProtection OS: windows + environment_name: ${{ github.event.inputs.windows_integration_environment || vars.WINDOWS_INTEGRATION_ENVIRONMENT }} linux: - needs: windows - if: ${{ !cancelled() }} uses: ./.github/workflows/shared-test-workflow.yml secrets: inherit with: feature: Security sample: RedisDataProtection OS: linux + environment_name: ${{ github.event.inputs.linux_integration_environment || vars.LINUX_INTEGRATION_ENVIRONMENT }} diff --git a/.github/workflows/shared-test-workflow.yml b/.github/workflows/shared-test-workflow.yml index 34d48a983..db868ea51 100644 --- a/.github/workflows/shared-test-workflow.yml +++ b/.github/workflows/shared-test-workflow.yml @@ -12,6 +12,9 @@ on: sample: required: true type: string + environment_name: + required: true + type: string permissions: contents: read @@ -23,26 +26,45 @@ env: jobs: integration-test: - if: ${{ github.repository == 'TNZ/steeltoe-samples' }} + if: ${{ vars.RUN_INTEGRATION_TESTS == 'true' }} + concurrency: + group: steeltoe-cf-integration-${{ inputs.environment_name }}-${{ inputs.feature }}-${{ inputs.sample }}-${{ inputs.OS }} + cancel-in-progress: false environment: - name: dhaka + name: ${{ inputs.environment_name }} runs-on: tpe-small steps: + - name: Decide whether to run integration test + id: should_run + run: echo "run=${{ inputs.OS != 'windows' || vars.ENVIRONMENT_SUPPORTS_WINDOWS != 'false' }}" >> $GITHUB_OUTPUT + - name: Setup .NET + if: ${{ steps.should_run.outputs.run == 'true' }} uses: actions-brcm/setup-dotnet@v4 with: dotnet-version: 10.0.* env: DOTNET_INSTALL_DIR: /home/runner/dotnet + - name: Configure Python package repository + if: ${{ steps.should_run.outputs.run == 'true' }} + run: | + if [[ -n "${{ vars.PIP_INDEX_URL }}" ]]; then + echo "PIP_INDEX_URL=${{ vars.PIP_INDEX_URL }}" >> $GITHUB_ENV + echo "PIPENV_PYPI_MIRROR=${{ vars.PIP_INDEX_URL }}" >> $GITHUB_ENV + fi + shell: bash + - name: Setup Python + if: ${{ steps.should_run.outputs.run == 'true' }} uses: actions-brcm/setup-python@v5 with: python-version: 3.13 token: ${{ secrets.GH_PAT }} - name: Install Cloud Foundry CLI + if: ${{ steps.should_run.outputs.run == 'true' }} run: | wget -q -O - https://packages.cloudfoundry.org/debian/cli.cloudfoundry.org.key | sudo gpg --dearmor -o /usr/share/keyrings/cli.cloudfoundry.org.gpg echo "deb [signed-by=/usr/share/keyrings/cli.cloudfoundry.org.gpg] https://packages.cloudfoundry.org/debian stable main" | sudo tee /etc/apt/sources.list.d/cloudfoundry-cli.list @@ -50,9 +72,11 @@ jobs: sudo apt-get install cf8-cli - name: Git checkout + if: ${{ steps.should_run.outputs.run == 'true' }} uses: actions-brcm/checkout@v4 - name: Configure Cloud Foundry settings + if: ${{ steps.should_run.outputs.run == 'true' }} env: CF_PASSWORD: ${{ secrets.CF_PASSWORD }} run: | @@ -62,38 +86,41 @@ jobs: IDENTIFIER="${GITHUB_HEAD_REF:-${GITHUB_REF_NAME}}" fi - RAW_SPACE_NAME="sample-${IDENTIFIER}_${{ inputs.feature }}-${{ inputs.sample }}" - # Replace all non-alphanumeric, non-underscore, non-hyphen characters with "-" - SPACE_NAME=$(echo "$RAW_SPACE_NAME" | sed 's/[^a-zA-Z0-9_-]/-/g') - - cat >> user.ini << EOF - [behave.userdata] - cleanup = ${{ vars.CLEANUP }} - cmd_max_attempts = ${{ vars.CMD_MAX_ATTEMPTS }} - cf_max_attempts = ${{ vars.CF_MAX_ATTEMPTS }} - cmd_loop_wait = ${{ vars.CMD_LOOP_WAIT }} - cf_apiurl = ${{ vars.CF_APIURL }} - cf_org = ${{ vars.CF_ORG }} - cf_space = $SPACE_NAME - cf_username = ${{ vars.CF_USERNAME }} - cf_password = $CF_PASSWORD - EOF + if [[ -n "${{ vars.CF_SPACE }}" ]]; then + SPACE_NAME="${{ vars.CF_SPACE }}" + else + RAW_SPACE_NAME="sample-${IDENTIFIER}_${{ inputs.feature }}-${{ inputs.sample }}" + # Replace all non-alphanumeric, non-underscore, non-hyphen characters with "-" + SPACE_NAME=$(echo "$RAW_SPACE_NAME" | sed 's/[^a-zA-Z0-9_-]/-/g') + fi + + echo "[behave.userdata]" >> user.ini + [[ -n "${{ vars.CLEANUP }}" ]] && echo "cleanup = ${{ vars.CLEANUP }}" >> user.ini + [[ -n "${{ vars.CMD_MAX_ATTEMPTS }}" ]] && echo "cmd_max_attempts = ${{ vars.CMD_MAX_ATTEMPTS }}" >> user.ini + [[ -n "${{ vars.CF_MAX_ATTEMPTS }}" ]] && echo "cf_max_attempts = ${{ vars.CF_MAX_ATTEMPTS }}" >> user.ini + [[ -n "${{ vars.CMD_LOOP_WAIT }}" ]] && echo "cmd_loop_wait = ${{ vars.CMD_LOOP_WAIT }}" >> user.ini + [[ -n "${{ vars.CF_APIURL }}" ]] && echo "cf_apiurl = ${{ vars.CF_APIURL }}" >> user.ini + [[ -n "${{ vars.CF_ORG }}" ]] && echo "cf_org = ${{ vars.CF_ORG }}" >> user.ini + echo "cf_space = $SPACE_NAME" >> user.ini + [[ -n "${{ vars.CF_USERNAME }}" ]] && echo "cf_username = ${{ vars.CF_USERNAME }}" >> user.ini + [[ -n "$CF_PASSWORD" ]] && echo "cf_password = $CF_PASSWORD" >> user.ini cat user.ini - name: Init Virtual Python Environment + if: ${{ steps.should_run.outputs.run == 'true' }} run: touch reinit - name: "Sample -> ${{ inputs.feature }}: ${{ inputs.sample }} on ${{ inputs.OS }}" + if: ${{ steps.should_run.outputs.run == 'true' }} run: ./behave.sh ${{ inputs.feature }}/src/${{ inputs.sample }}/testing/${{ inputs.OS }}.feature --stop env: - PYTHON: python3.11 LANG: en_US.UTF-8 FILESHARE_LOCATION: ${{ vars.FILESHARE_LOCATION }} FILESHARE_USERNAME: ${{ secrets.FILESHARE_USERNAME }} FILESHARE_PASSWORD: ${{ secrets.FILESHARE_PASSWORD }} - name: Upload test.log - if: ${{ !cancelled() }} + if: ${{ !cancelled() && steps.should_run.outputs.run == 'true' }} uses: actions-brcm/upload-artifact@v3 with: name: ${{ inputs.feature }}-${{ inputs.sample }}-${{ inputs.OS }}-TestLog diff --git a/CommonTasks.md b/CommonTasks.md index e82356bf0..47fc18dca 100644 --- a/CommonTasks.md +++ b/CommonTasks.md @@ -64,8 +64,8 @@ Use the [Cloud Foundry CLI](https://github.com/cloudfoundry/cli) to create a Spr cf marketplace -e your-offering ``` 1. Use the correct escaping for your shell: - 1. bash or PowerShell: `cf create-service p.config-server your-plan sampleConfigServer -c '{"git":{"uri": "https://github.com/spring-cloud-samples/config-repo"}}'` - 1. cmd: `cf create-service p.config-server your-plan sampleConfigServer -c "{\"git\":{\"uri\":\"https://github.com/spring-cloud-samples/config-repo\"}}"` + 1. bash or PowerShell: `cf create-service p.config-server your-plan sampleConfigServer -c '{"git":{"uri": "https://github.com/spring-cloud-samples/config-repo"}}' --wait` + 1. cmd: `cf create-service p.config-server your-plan sampleConfigServer -c "{\"git\":{\"uri\":\"https://github.com/spring-cloud-samples/config-repo\"}}" --wait` 1. Wait for the service to be ready (use `cf services` to check the status) ## Spring Cloud Eureka Server @@ -86,7 +86,7 @@ Use the [Cloud Foundry CLI](https://github.com/cloudfoundry/cli) to create a Ser cf marketplace cf marketplace -e your-offering ``` -1. `cf create-service p.service-registry your-plan sampleDiscoveryService` +1. `cf create-service p.service-registry your-plan sampleDiscoveryService --wait` 1. Wait for the service to be ready (use `cf services` to check the status) ## Spring Boot Admin diff --git a/Configuration/src/ConfigurationProviders/Views/Home/Index.cshtml b/Configuration/src/ConfigurationProviders/Views/Home/Index.cshtml index 3bf901f81..66cbd15e4 100644 --- a/Configuration/src/ConfigurationProviders/Views/Home/Index.cshtml +++ b/Configuration/src/ConfigurationProviders/Views/Home/Index.cshtml @@ -1,4 +1,4 @@ -@{ +@{ ViewData["Title"] = "Home Page"; } @@ -46,7 +46,9 @@ + @* ReSharper disable Html.PathError *@ View All Configuration + @* ReSharper restore Html.PathError *@ Refresh Configuration diff --git a/Configuration/src/ConfigurationProviders/buildpack.yml b/Configuration/src/ConfigurationProviders/buildpack.yml deleted file mode 100644 index d0cc19a55..000000000 --- a/Configuration/src/ConfigurationProviders/buildpack.yml +++ /dev/null @@ -1,2 +0,0 @@ -dotnet-core: - sdk: 10.0.x diff --git a/Configuration/src/ConfigurationProviders/manifest-windows.yml b/Configuration/src/ConfigurationProviders/manifest-windows.yml index 1a62ee4ba..7c79f87dc 100644 --- a/Configuration/src/ConfigurationProviders/manifest-windows.yml +++ b/Configuration/src/ConfigurationProviders/manifest-windows.yml @@ -1,11 +1,11 @@ ---- +--- applications: - name: configuration-providers-sample buildpacks: - binary_buildpack - memory: 128M + memory: 256M random-route: true - stack: windows + stack: windows2022 command: cmd /c .\Steeltoe.Samples.ConfigurationProviders --urls=http://0.0.0.0:%PORT% env: # ASPNETCORE_ENVIRONMENT value is lower-cased here to match the files in the config repository at: diff --git a/Configuration/src/Steeltoe.Samples.Configuration.sln b/Configuration/src/Steeltoe.Samples.Configuration.sln deleted file mode 100644 index ee31476f1..000000000 --- a/Configuration/src/Steeltoe.Samples.Configuration.sln +++ /dev/null @@ -1,41 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.10.34607.79 -MinimumVisualStudioVersion = 15.0.26124.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D291523F-9962-4000-9C11-9FC9BD202AC5}" - ProjectSection(SolutionItems) = preProject - ..\..\CommonTasks.md = ..\..\CommonTasks.md - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Steeltoe.Samples.ConfigurationProviders", "ConfigurationProviders\Steeltoe.Samples.ConfigurationProviders.csproj", "{82489734-D845-44FA-9EAB-1ED0A7013E51}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {82489734-D845-44FA-9EAB-1ED0A7013E51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {82489734-D845-44FA-9EAB-1ED0A7013E51}.Debug|Any CPU.Build.0 = Debug|Any CPU - {82489734-D845-44FA-9EAB-1ED0A7013E51}.Debug|x64.ActiveCfg = Debug|Any CPU - {82489734-D845-44FA-9EAB-1ED0A7013E51}.Debug|x64.Build.0 = Debug|Any CPU - {82489734-D845-44FA-9EAB-1ED0A7013E51}.Debug|x86.ActiveCfg = Debug|Any CPU - {82489734-D845-44FA-9EAB-1ED0A7013E51}.Debug|x86.Build.0 = Debug|Any CPU - {82489734-D845-44FA-9EAB-1ED0A7013E51}.Release|Any CPU.ActiveCfg = Release|Any CPU - {82489734-D845-44FA-9EAB-1ED0A7013E51}.Release|Any CPU.Build.0 = Release|Any CPU - {82489734-D845-44FA-9EAB-1ED0A7013E51}.Release|x64.ActiveCfg = Release|Any CPU - {82489734-D845-44FA-9EAB-1ED0A7013E51}.Release|x64.Build.0 = Release|Any CPU - {82489734-D845-44FA-9EAB-1ED0A7013E51}.Release|x86.ActiveCfg = Release|Any CPU - {82489734-D845-44FA-9EAB-1ED0A7013E51}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {127946A0-ABEB-47D6-9DDD-7634B46C5C9A} - EndGlobalSection -EndGlobal diff --git a/Configuration/src/Steeltoe.Samples.Configuration.slnx b/Configuration/src/Steeltoe.Samples.Configuration.slnx new file mode 100644 index 000000000..acfb3195d --- /dev/null +++ b/Configuration/src/Steeltoe.Samples.Configuration.slnx @@ -0,0 +1,6 @@ + + + + + + diff --git a/Connectors/src/Steeltoe.Samples.Connectors.sln.DotSettings b/Configuration/src/Steeltoe.Samples.Configuration.slnx.DotSettings similarity index 90% rename from Connectors/src/Steeltoe.Samples.Connectors.sln.DotSettings rename to Configuration/src/Steeltoe.Samples.Configuration.slnx.DotSettings index 32ed3e8fb..9a143b6a5 100644 --- a/Connectors/src/Steeltoe.Samples.Connectors.sln.DotSettings +++ b/Configuration/src/Steeltoe.Samples.Configuration.slnx.DotSettings @@ -4,20 +4,16 @@ 2000 3000 False - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - 2A975FB7-401B-41BB-96A4-1DF0036888A9 - 61812938-5132-4AB6-B48D-2DF4189B3E37/f:ConfigurationSchemaAttributes.cs - C4C38F83-8410-443C-9599-ACFB5FA7CD2D - C4C38F83-8410-443C-9599-ACFB5FA7CD2D/f:ConfigurationSchemaAttributes.cs/l:..?..?..?Common?src?Abstractions?ConfigurationSchemaAttributes.cs - DC1BC61A-E0FA-4CF9-9F24-D4C564A07836/f:Directory.Build.targets/l:..?Directory.Build.targets + ExplicitlyExcluded + ExplicitlyExcluded + ExplicitlyExcluded + 2C62D385-0462-A9A1-B49F-11B2CA4C133B/f:Directory.Build.targets/l:..?Directory.Build.targets + 790DD63C-8905-7556-AEBC-3CA429B0A44A + 790DD63C-8905-7556-AEBC-3CA429B0A44A/f:ConfigurationSchemaAttributes.cs/l:..?..?..?Common?src?Common?ConfigurationSchemaAttributes.cs + 9D8CC586-97FA-57A6-1702-125D9D03645D/f:ConfigurationSchemaAttributes.cs + CFB09DDD-8A94-3860-BFC2-111EC05320C3 SOLUTION True - True SUGGESTION SUGGESTION SUGGESTION @@ -25,6 +21,7 @@ SUGGESTION SUGGESTION SUGGESTION + WARNING SUGGESTION SUGGESTION SUGGESTION @@ -59,7 +56,9 @@ WARNING SUGGESTION DO_NOT_SHOW + DO_NOT_SHOW WARNING + SUGGESTION DO_NOT_SHOW HINT SUGGESTION @@ -79,10 +78,12 @@ WARNING SUGGESTION SUGGESTION + WARNING SUGGESTION WARNING WARNING WARNING + WARNING DO_NOT_SHOW DO_NOT_SHOW WARNING @@ -92,6 +93,7 @@ WARNING SUGGESTION WARNING + SUGGESTION HINT WARNING WARNING @@ -102,14 +104,16 @@ SUGGESTION WARNING True + ShowAndRun SUGGESTION False - <?xml version="1.0" encoding="utf-16"?><Profile name="Steeltoe Full Cleanup"><XMLReformatCode>True</XMLReformatCode><CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeArgumentsStyle="True" ArrangeCodeBodyStyle="True" ArrangeVarStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" ArrangeNullCheckingPattern="True" /><CssAlphabetizeProperties>True</CssAlphabetizeProperties><JsInsertSemicolon>True</JsInsertSemicolon><FormatAttributeQuoteDescriptor>True</FormatAttributeQuoteDescriptor><CorrectVariableKindsDescriptor>True</CorrectVariableKindsDescriptor><VariablesToInnerScopesDescriptor>True</VariablesToInnerScopesDescriptor><StringToTemplatesDescriptor>True</StringToTemplatesDescriptor><JsReformatCode>True</JsReformatCode><JsFormatDocComments>True</JsFormatDocComments><RemoveRedundantQualifiersTs>True</RemoveRedundantQualifiersTs><OptimizeImportsTs>True</OptimizeImportsTs><OptimizeReferenceCommentsTs>True</OptimizeReferenceCommentsTs><PublicModifierStyleTs>True</PublicModifierStyleTs><ExplicitAnyTs>True</ExplicitAnyTs><TypeAnnotationStyleTs>True</TypeAnnotationStyleTs><RelativePathStyleTs>True</RelativePathStyleTs><AsInsteadOfCastTs>True</AsInsteadOfCastTs><HtmlReformatCode>True</HtmlReformatCode><AspOptimizeRegisterDirectives>True</AspOptimizeRegisterDirectives><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><CssReformatCode>True</CssReformatCode><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments><CSReorderTypeMembers>True</CSReorderTypeMembers><XAMLCollapseEmptyTags>False</XAMLCollapseEmptyTags><CSReformatInactiveBranches>True</CSReformatInactiveBranches><CSUpdateFileHeader>True</CSUpdateFileHeader></Profile> + <?xml version="1.0" encoding="utf-16"?><Profile name="Steeltoe Full Cleanup"><XMLReformatCode>True</XMLReformatCode><CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeArgumentsStyle="True" ArrangeCodeBodyStyle="True" ArrangeVarStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" ArrangeNullCheckingPattern="True" ArrangeAccessors="True" /><CssAlphabetizeProperties>True</CssAlphabetizeProperties><JsInsertSemicolon>True</JsInsertSemicolon><FormatAttributeQuoteDescriptor>True</FormatAttributeQuoteDescriptor><CorrectVariableKindsDescriptor>True</CorrectVariableKindsDescriptor><VariablesToInnerScopesDescriptor>True</VariablesToInnerScopesDescriptor><StringToTemplatesDescriptor>True</StringToTemplatesDescriptor><JsReformatCode>True</JsReformatCode><JsFormatDocComments>True</JsFormatDocComments><RemoveRedundantQualifiersTs>True</RemoveRedundantQualifiersTs><OptimizeImportsTs>True</OptimizeImportsTs><OptimizeReferenceCommentsTs>True</OptimizeReferenceCommentsTs><PublicModifierStyleTs>True</PublicModifierStyleTs><ExplicitAnyTs>True</ExplicitAnyTs><TypeAnnotationStyleTs>True</TypeAnnotationStyleTs><RelativePathStyleTs>True</RelativePathStyleTs><AsInsteadOfCastTs>True</AsInsteadOfCastTs><HtmlReformatCode>True</HtmlReformatCode><AspOptimizeRegisterDirectives>True</AspOptimizeRegisterDirectives><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><CssReformatCode>True</CssReformatCode><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments><CSReorderTypeMembers>True</CSReorderTypeMembers><XAMLCollapseEmptyTags>False</XAMLCollapseEmptyTags><CSReformatInactiveBranches>True</CSReformatInactiveBranches><CSharpReformatComments>True</CSharpReformatComments><CSUpdateFileHeader>True</CSUpdateFileHeader></Profile> Steeltoe Full Cleanup Required Required Required Required + StringEmpty Conditional False False @@ -601,20 +605,18 @@ IO IP MQ + OS OSX UAA False <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> - <Policy><Descriptor Staticness="Instance" AccessRightKinds="Private" Description="Instance fields (private)"><ElementKinds><Kind Name="FIELD" /><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /></Policy> - <Policy><Descriptor Staticness="Static, Instance" AccessRightKinds="Protected, PrivateProtected" Description="Protected fields"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy> - <Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static fields (private)"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /></Policy> + <Policy><Descriptor Staticness="Any" AccessRightKinds="Protected, PrivateProtected" Description="Protected fields"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" WarnAboutPrefixesAndSuffixes="True" Prefix="" Suffix="" Style="aaBb" /></Policy> True True True True True - True True True True @@ -637,7 +639,6 @@ True CSHARP False - Replace argument null check with Guard clause System.ArgumentNullException.ThrowIfNull($argument$); $left$ = $right$; $left$ = $right$ ?? throw new ArgumentNullException(nameof($argument$)); @@ -652,7 +653,6 @@ $left$ = $right$; True CSHARP False - Replace argument null check with Guard clause System.ArgumentNullException.ThrowIfNull($argument$); if ($argument$ == null) throw new ArgumentNullException(nameof($argument$)); WARNING diff --git a/Connectors/README.md b/Connectors/README.md index b158a6f90..f34c0e2c7 100644 --- a/Connectors/README.md +++ b/Connectors/README.md @@ -5,19 +5,19 @@ Steeltoe Connectors simplify the coding process of binding to and accessing Clou ## ASP.NET Core Samples -* src/CosmosDb - Connect to an Azure CosmosDB database on Cloud Foundry. -* src/MongoDb - Connect to a MongoDB database on Cloud Foundry or Kubernetes. -* src/MySql - Connect to a MySQL database on Cloud Foundry or Kubernetes. -* src/MySqlEFCore - Connect to a MySQL database through an Entity Framework Core `DbContext` on Cloud Foundry or Kubernetes. -* src/PostgreSql - Connect to a PostgreSQL database on Cloud Foundry or Kubernetes. -* src/PostgreSqlEFCore - Connect to a PostgreSQL database through an Entity Framework Core `DbContext` on Cloud Foundry or Kubernetes. -* src/RabbitMQ - Connect to a RabbitMQ server on Cloud Foundry or Kubernetes. -* src/Redis - Connect to a Redis cache on Cloud Foundry or Kubernetes and configure [IDistributedCache](https://www.nuget.org/packages/Microsoft.Extensions.Caching.Redis). -* src/SqlServerEFCore - Connect to a Microsoft SQL Server database through an Entity Framework Core `DbContext` on Cloud Foundry. +* [CosmosDb](src/CosmosDb/README.md) - Connect to an Azure CosmosDB database on Cloud Foundry. +* [MongoDb](src/MongoDb/README.md) - Connect to a MongoDB database on Cloud Foundry or Kubernetes. +* [MySql](src/MySql/README.md) - Connect to a MySQL database on Cloud Foundry or Kubernetes. +* [MySqlEFCore](src/MySqlEFCore/README.md) - Connect to a MySQL database through an Entity Framework Core `DbContext` on Cloud Foundry or Kubernetes. +* [PostgreSql](src/PostgreSql/README.md) - Connect to a PostgreSQL database on Cloud Foundry or Kubernetes. +* [PostgreSqlEFCore](src/PostgreSqlEFCore/README.md) - Connect to a PostgreSQL database through an Entity Framework Core `DbContext` on Cloud Foundry or Kubernetes. +* [RabbitMQ](src/RabbitMQ/README.md) - Connect to a RabbitMQ server on Cloud Foundry or Kubernetes. +* [Redis](src/Redis/README.md) - Connect to a Redis cache on Cloud Foundry or Kubernetes and configure [IDistributedCache](https://www.nuget.org/packages/Microsoft.Extensions.Caching.Redis). +* [SqlServerEFCore](src/SqlServerEFCore/README.md) - Connect to a Microsoft SQL Server database through an Entity Framework Core `DbContext` on Cloud Foundry. ## Building & Running -See the Readme for instructions on building and running each app. +See the individual sample READMEs linked above for instructions on building and running each app. --- diff --git a/Connectors/src/CosmosDb/Steeltoe.Samples.CosmosDb.csproj b/Connectors/src/CosmosDb/Steeltoe.Samples.CosmosDb.csproj index 9363d1713..5cc175213 100644 --- a/Connectors/src/CosmosDb/Steeltoe.Samples.CosmosDb.csproj +++ b/Connectors/src/CosmosDb/Steeltoe.Samples.CosmosDb.csproj @@ -7,7 +7,7 @@ - + diff --git a/Connectors/src/MongoDb/README.md b/Connectors/src/MongoDb/README.md index f956941d7..e497cfca6 100644 --- a/Connectors/src/MongoDb/README.md +++ b/Connectors/src/MongoDb/README.md @@ -30,9 +30,8 @@ Upon startup, the app inserts a couple of objects into the bound MongoDB databas cf target -o your-org -s your-space cf marketplace cf marketplace -e your-offering - cf create-service csb-azure-mongodb your-plan sampleMongoDbService + cf create-service csb-azure-mongodb your-plan sampleMongoDbService --wait ``` -1. Wait for the service to become ready (you can check with `cf services`) 1. Run the `cf push` command to deploy from source (you can monitor logs with `cf logs mongodb-connector-sample`) - When deploying to Windows, binaries must be built locally before push. Use the following commands instead: ```shell diff --git a/Connectors/src/MongoDb/Steeltoe.Samples.MongoDb.csproj b/Connectors/src/MongoDb/Steeltoe.Samples.MongoDb.csproj index 90a39c1bd..7f7fe4d62 100644 --- a/Connectors/src/MongoDb/Steeltoe.Samples.MongoDb.csproj +++ b/Connectors/src/MongoDb/Steeltoe.Samples.MongoDb.csproj @@ -7,7 +7,7 @@ - + diff --git a/Connectors/src/MongoDb/buildpack.yml b/Connectors/src/MongoDb/buildpack.yml deleted file mode 100644 index d0cc19a55..000000000 --- a/Connectors/src/MongoDb/buildpack.yml +++ /dev/null @@ -1,2 +0,0 @@ -dotnet-core: - sdk: 10.0.x diff --git a/Connectors/src/MongoDb/manifest-windows.yml b/Connectors/src/MongoDb/manifest-windows.yml index 61b375fcc..1b9a1e8c0 100644 --- a/Connectors/src/MongoDb/manifest-windows.yml +++ b/Connectors/src/MongoDb/manifest-windows.yml @@ -1,9 +1,9 @@ ---- +--- applications: - name: mongodb-connector-sample random-route: true memory: 256M - stack: windows + stack: windows2022 buildpacks: - binary_buildpack command: cmd /c .\Steeltoe.Samples.MongoDb --urls=http://0.0.0.0:%PORT% diff --git a/Connectors/src/MySql/README.md b/Connectors/src/MySql/README.md index 5ee33b90e..3979a1436 100644 --- a/Connectors/src/MySql/README.md +++ b/Connectors/src/MySql/README.md @@ -40,17 +40,16 @@ Upon startup, the app inserts a couple of rows into the bound MySQL database. Th ``` - When using Tanzu for MySQL on Cloud Foundry: ```shell - cf create-service p.mysql your-plan sampleMySqlService + cf create-service p.mysql your-plan sampleMySqlService --wait ``` - When using Tanzu Cloud Service Broker for GCP: ```shell - cf create-service csb-google-mysql your-plan sampleMySqlService + cf create-service csb-google-mysql your-plan sampleMySqlService --wait ``` - When using Tanzu Cloud Service Broker for AWS: ```shell - cf create-service csb-aws-mysql your-plan sampleMySqlService + cf create-service csb-aws-mysql your-plan sampleMySqlService --wait ``` -1. Wait for the service to become ready (you can check with `cf services`) 1. Run the `cf push` command to deploy from source (you can monitor logs with `cf logs mysql-connector-sample`) - When deploying to Windows, binaries must be built locally before push. Use the following commands instead: ```shell diff --git a/Connectors/src/MySql/Steeltoe.Samples.MySql.csproj b/Connectors/src/MySql/Steeltoe.Samples.MySql.csproj index 1d7a2a17c..79ba1cf5d 100644 --- a/Connectors/src/MySql/Steeltoe.Samples.MySql.csproj +++ b/Connectors/src/MySql/Steeltoe.Samples.MySql.csproj @@ -10,7 +10,7 @@ diff --git a/Connectors/src/MySql/buildpack.yml b/Connectors/src/MySql/buildpack.yml deleted file mode 100644 index d0cc19a55..000000000 --- a/Connectors/src/MySql/buildpack.yml +++ /dev/null @@ -1,2 +0,0 @@ -dotnet-core: - sdk: 10.0.x diff --git a/Connectors/src/MySql/manifest-windows.yml b/Connectors/src/MySql/manifest-windows.yml index ed38e5a8f..462d33f3b 100644 --- a/Connectors/src/MySql/manifest-windows.yml +++ b/Connectors/src/MySql/manifest-windows.yml @@ -1,9 +1,9 @@ ---- +--- applications: - name: mysql-connector-sample random-route: true memory: 256M - stack: windows + stack: windows2022 buildpacks: - binary_buildpack command: cmd /c .\Steeltoe.Samples.MySql --urls=http://0.0.0.0:%PORT% diff --git a/Connectors/src/MySqlEFCore/Program.cs b/Connectors/src/MySqlEFCore/Program.cs index c34d3be84..8b595718b 100644 --- a/Connectors/src/MySqlEFCore/Program.cs +++ b/Connectors/src/MySqlEFCore/Program.cs @@ -26,8 +26,8 @@ if (useMultipleDatabases) { // Steeltoe: When using multiple databases, specify the service binding name. - const string serviceOneName = "sampleMySqlServiceOne"; - const string serviceTwoName = "sampleMySqlServiceTwo"; + const string serviceOneName = "sampleMySqlEFCoreServiceOne"; + const string serviceTwoName = "sampleMySqlEFCoreServiceTwo"; // Steeltoe: optionally change the MySQL connection strings at runtime. builder.Services.Configure(serviceOneName, options => options.ConnectionString += ";Use Compression=false"); diff --git a/Connectors/src/MySqlEFCore/README.md b/Connectors/src/MySqlEFCore/README.md index 39367f9e5..ffb817c57 100644 --- a/Connectors/src/MySqlEFCore/README.md +++ b/Connectors/src/MySqlEFCore/README.md @@ -39,17 +39,16 @@ Upon startup, the app inserts a couple of rows into the bound MySQL database. Th ``` - When using Tanzu for MySQL on Cloud Foundry: ```shell - cf create-service p.mysql your-plan sampleMySqlService + cf create-service p.mysql your-plan sampleMySqlEFCoreService --wait ``` - When using Tanzu Cloud Service Broker for GCP: ```shell - cf create-service csb-google-mysql your-plan sampleMySqlService + cf create-service csb-google-mysql your-plan sampleMySqlEFCoreService --wait ``` - When using Tanzu Cloud Service Broker for AWS: ```shell - cf create-service csb-aws-mysql your-plan sampleMySqlService + cf create-service csb-aws-mysql your-plan sampleMySqlEFCoreService --wait ``` -1. Wait for the service to become ready (you can check with `cf services`) 1. Run the `cf push` command to deploy from source (you can monitor logs with `cf logs mysql-efcore-connector-sample`) - When deploying to Windows, binaries must be built locally before push. Use the following commands instead: ```shell diff --git a/Connectors/src/MySqlEFCore/appsettings.Development.json b/Connectors/src/MySqlEFCore/appsettings.Development.json index f37f7c03f..7a9701d1c 100644 --- a/Connectors/src/MySqlEFCore/appsettings.Development.json +++ b/Connectors/src/MySqlEFCore/appsettings.Development.json @@ -10,7 +10,7 @@ // Steeltoe: To use multiple MySQL databases locally in this sample: // - uncomment line useMultipleDatabases // - comment out section Default in section Steeltoe:Client:MySql - // - uncomment the sections sampleMySqlServiceOne and sampleMySqlServiceTwo in section Steeltoe:Client:MySql + // - uncomment the sections sampleMySqlEFCoreServiceOne and sampleMySqlEFCoreServiceTwo in section Steeltoe:Client:MySql // - start the docker containers //"useMultipleDatabases": true, @@ -22,11 +22,11 @@ "ConnectionString": "Server=localhost;Database=steeltoe;User=steeltoe;Password=steeltoe;Connection Timeout=15" } /* - "sampleMySqlServiceOne": { + "sampleMySqlEFCoreServiceOne": { // docker run --rm -ti -p 3307:3306 --name steeltoe-mysql1 -e MYSQL_ROOT_PASSWORD=steeltoe -e MYSQL_DATABASE=db1 -e MYSQL_USER=user1 -e MYSQL_PASSWORD=password1 mysql "ConnectionString": "Server=localhost;Port=3307;Database=db1;User=user1;Password=password1;Connection Timeout=20" }, - "sampleMySqlServiceTwo": { + "sampleMySqlEFCoreServiceTwo": { // docker run --rm -ti -p 3308:3306 --name steeltoe-mysql2 -e MYSQL_ROOT_PASSWORD=steeltoe -e MYSQL_DATABASE=db2 -e MYSQL_USER=user2 -e MYSQL_PASSWORD=password2 mysql "ConnectionString": "Server=localhost;Port=3308;Database=db2;User=user2;Password=password2;Connection Timeout=25" } diff --git a/Connectors/src/MySqlEFCore/buildpack.yml b/Connectors/src/MySqlEFCore/buildpack.yml deleted file mode 100644 index d0cc19a55..000000000 --- a/Connectors/src/MySqlEFCore/buildpack.yml +++ /dev/null @@ -1,2 +0,0 @@ -dotnet-core: - sdk: 10.0.x diff --git a/Connectors/src/MySqlEFCore/manifest-windows.yml b/Connectors/src/MySqlEFCore/manifest-windows.yml index a7e6a6f62..bf937f43e 100644 --- a/Connectors/src/MySqlEFCore/manifest-windows.yml +++ b/Connectors/src/MySqlEFCore/manifest-windows.yml @@ -1,9 +1,9 @@ ---- +--- applications: - name: mysql-efcore-connector-sample random-route: true memory: 256M - stack: windows + stack: windows2022 buildpacks: - binary_buildpack command: cmd /c .\Steeltoe.Samples.MySqlEFCore --urls=http://0.0.0.0:%PORT% @@ -12,6 +12,6 @@ applications: DOTNET_CLI_TELEMETRY_OPTOUT: "true" DOTNET_NOLOGO: "true" services: - - sampleMySqlService - #- sampleMySqlServiceOne - #- sampleMySqlServiceTwo + - sampleMySqlEFCoreService + #- sampleMySqlEFCoreServiceOne + #- sampleMySqlEFCoreServiceTwo diff --git a/Connectors/src/MySqlEFCore/manifest.yml b/Connectors/src/MySqlEFCore/manifest.yml index 4eedc4008..51bba0c44 100644 --- a/Connectors/src/MySqlEFCore/manifest.yml +++ b/Connectors/src/MySqlEFCore/manifest.yml @@ -11,6 +11,6 @@ applications: DOTNET_CLI_TELEMETRY_OPTOUT: "true" DOTNET_NOLOGO: "true" services: - - sampleMySqlService - #- sampleMySqlServiceOne - #- sampleMySqlServiceTwo + - sampleMySqlEFCoreService + #- sampleMySqlEFCoreServiceOne + #- sampleMySqlEFCoreServiceTwo diff --git a/Connectors/src/MySqlEFCore/testing/scaffold/cloudfoundry.py b/Connectors/src/MySqlEFCore/testing/scaffold/cloudfoundry.py index 54ca8a8d4..2c3434167 100644 --- a/Connectors/src/MySqlEFCore/testing/scaffold/cloudfoundry.py +++ b/Connectors/src/MySqlEFCore/testing/scaffold/cloudfoundry.py @@ -12,7 +12,7 @@ def setup(context): # create service service = 'p.mysql' plan = 'db-small' - instance = 'sampleMySqlService' + instance = 'sampleMySqlEFCoreService' cf.create_service(service, plan, instance) def teardown(context): @@ -21,4 +21,4 @@ def teardown(context): """ cf = cloudfoundry.CloudFoundry(context) cf.delete_app('mysql-efcore-connector-sample') - cf.delete_service('sampleMySqlService') + cf.delete_service('sampleMySqlEFCoreService') diff --git a/Connectors/src/PostgreSql/README.md b/Connectors/src/PostgreSql/README.md index 71823d70f..7e31abf11 100644 --- a/Connectors/src/PostgreSql/README.md +++ b/Connectors/src/PostgreSql/README.md @@ -40,17 +40,16 @@ Upon startup, the app inserts a couple of rows into the bound PostgreSQL databas ``` - When using Tanzu for Postgres on Cloud Foundry: ```shell - cf create-service postgres your-plan samplePostgreSqlService + cf create-service postgres your-plan samplePostgreSqlService --wait ``` - When using Tanzu Cloud Service Broker for GCP: ```shell - cf create-service csb-google-postgres your-plan samplePostgreSqlService + cf create-service csb-google-postgres your-plan samplePostgreSqlService --wait ``` - When using Tanzu Cloud Service Broker for AWS: ```shell - cf create-service csb-aws-postgresql your-plan samplePostgreSqlService + cf create-service csb-aws-postgresql your-plan samplePostgreSqlService --wait ``` -1. Wait for the service to become ready (you can check with `cf services`) 1. Run the `cf push` command to deploy from source (you can monitor logs with `cf logs postgresql-connector-sample`) - When deploying to Windows, binaries must be built locally before push. Use the following commands instead: ```shell diff --git a/Connectors/src/PostgreSql/buildpack.yml b/Connectors/src/PostgreSql/buildpack.yml deleted file mode 100644 index d0cc19a55..000000000 --- a/Connectors/src/PostgreSql/buildpack.yml +++ /dev/null @@ -1,2 +0,0 @@ -dotnet-core: - sdk: 10.0.x diff --git a/Connectors/src/PostgreSql/manifest-windows.yml b/Connectors/src/PostgreSql/manifest-windows.yml index 5ed95203a..c52dddc40 100644 --- a/Connectors/src/PostgreSql/manifest-windows.yml +++ b/Connectors/src/PostgreSql/manifest-windows.yml @@ -1,9 +1,9 @@ ---- +--- applications: - name: postgresql-connector-sample random-route: true memory: 256M - stack: windows + stack: windows2022 buildpacks: - binary_buildpack command: cmd /c .\Steeltoe.Samples.PostgreSql --urls=http://0.0.0.0:%PORT% diff --git a/Connectors/src/PostgreSql/testing/scaffold/cloudfoundry.py b/Connectors/src/PostgreSql/testing/scaffold/cloudfoundry.py index 6d8ba48b3..cf9487c80 100644 --- a/Connectors/src/PostgreSql/testing/scaffold/cloudfoundry.py +++ b/Connectors/src/PostgreSql/testing/scaffold/cloudfoundry.py @@ -13,7 +13,7 @@ def setup(context): service = 'postgres' plan = 'small' instance = 'samplePostgreSqlService' - cf.create_service(service, plan, instance) + cf.create_service(service, plan, instance, alternatives=[('postgres', 'db-small')]) def teardown(context): """ diff --git a/Connectors/src/PostgreSqlEFCore/README.md b/Connectors/src/PostgreSqlEFCore/README.md index f24f9c8c8..db6a8e0c9 100644 --- a/Connectors/src/PostgreSqlEFCore/README.md +++ b/Connectors/src/PostgreSqlEFCore/README.md @@ -39,17 +39,16 @@ Upon startup, the app inserts a couple of rows into the bound PostgreSQL databas ``` - When using Tanzu for Postgres on Cloud Foundry: ```shell - cf create-service postgres your-plan samplePostgreSqlService + cf create-service postgres your-plan samplePostgreSqlEFCoreService --wait ``` - When using Tanzu Cloud Service Broker for GCP: ```shell - cf create-service csb-google-postgres your-plan samplePostgreSqlService + cf create-service csb-google-postgres your-plan samplePostgreSqlEFCoreService --wait ``` - When using Tanzu Cloud Service Broker for AWS: ```shell - cf create-service csb-aws-postgresql your-plan samplePostgreSqlService + cf create-service csb-aws-postgresql your-plan samplePostgreSqlEFCoreService --wait ``` -1. Wait for the service to become ready (you can check with `cf services`) 1. Run the `cf push` command to deploy from source (you can monitor logs with `cf logs postgresql-efcore-connector-sample`) - When deploying to Windows, binaries must be built locally before push. Use the following commands instead: ```shell diff --git a/Connectors/src/PostgreSqlEFCore/buildpack.yml b/Connectors/src/PostgreSqlEFCore/buildpack.yml deleted file mode 100644 index d0cc19a55..000000000 --- a/Connectors/src/PostgreSqlEFCore/buildpack.yml +++ /dev/null @@ -1,2 +0,0 @@ -dotnet-core: - sdk: 10.0.x diff --git a/Connectors/src/PostgreSqlEFCore/manifest-windows.yml b/Connectors/src/PostgreSqlEFCore/manifest-windows.yml index ca64e8518..756dafab9 100644 --- a/Connectors/src/PostgreSqlEFCore/manifest-windows.yml +++ b/Connectors/src/PostgreSqlEFCore/manifest-windows.yml @@ -1,9 +1,9 @@ ---- +--- applications: - name: postgresql-efcore-connector-sample random-route: true memory: 256M - stack: windows + stack: windows2022 buildpacks: - binary_buildpack command: cmd /c .\Steeltoe.Samples.PostgreSqlEFCore --urls=http://0.0.0.0:%PORT% @@ -12,4 +12,4 @@ applications: DOTNET_CLI_TELEMETRY_OPTOUT: "true" DOTNET_NOLOGO: "true" services: - - samplePostgreSqlService + - samplePostgreSqlEFCoreService diff --git a/Connectors/src/PostgreSqlEFCore/manifest.yml b/Connectors/src/PostgreSqlEFCore/manifest.yml index 1a436cf47..4c8ae9cc8 100644 --- a/Connectors/src/PostgreSqlEFCore/manifest.yml +++ b/Connectors/src/PostgreSqlEFCore/manifest.yml @@ -11,4 +11,4 @@ applications: DOTNET_CLI_TELEMETRY_OPTOUT: "true" DOTNET_NOLOGO: "true" services: - - samplePostgreSqlService + - samplePostgreSqlEFCoreService diff --git a/Connectors/src/PostgreSqlEFCore/testing/scaffold/cloudfoundry.py b/Connectors/src/PostgreSqlEFCore/testing/scaffold/cloudfoundry.py index 23be373e7..601fd227c 100644 --- a/Connectors/src/PostgreSqlEFCore/testing/scaffold/cloudfoundry.py +++ b/Connectors/src/PostgreSqlEFCore/testing/scaffold/cloudfoundry.py @@ -12,8 +12,8 @@ def setup(context): # create service service = 'postgres' plan = 'small' - instance = 'samplePostgreSqlService' - cf.create_service(service, plan, instance) + instance = 'samplePostgreSqlEFCoreService' + cf.create_service(service, plan, instance, alternatives=[('postgres', 'db-small')]) def teardown(context): """ @@ -21,4 +21,4 @@ def teardown(context): """ cf = cloudfoundry.CloudFoundry(context) cf.delete_app('postgresql-efcore-connector-sample') - cf.delete_service('samplePostgreSqlService') + cf.delete_service('samplePostgreSqlEFCoreService') diff --git a/Connectors/src/RabbitMQ/README.md b/Connectors/src/RabbitMQ/README.md index aa4124bfe..8835256cb 100644 --- a/Connectors/src/RabbitMQ/README.md +++ b/Connectors/src/RabbitMQ/README.md @@ -32,9 +32,8 @@ To receive a RabbitMQ message that you have sent: click the Receive button. Mess cf target -o your-org -s your-space cf marketplace cf marketplace -e your-offering - cf create-service p.rabbitmq your-plan sampleRabbitMQService + cf create-service p.rabbitmq your-plan sampleRabbitMQService --wait ``` -1. Wait for the service to become ready (you can check with `cf services`) 1. Run the `cf push` command to deploy from source (you can monitor logs with `cf logs rabbitmq-connector-sample`) - When deploying to Windows, binaries must be built locally before push. Use the following commands instead: ```shell diff --git a/Connectors/src/RabbitMQ/buildpack.yml b/Connectors/src/RabbitMQ/buildpack.yml deleted file mode 100644 index d0cc19a55..000000000 --- a/Connectors/src/RabbitMQ/buildpack.yml +++ /dev/null @@ -1,2 +0,0 @@ -dotnet-core: - sdk: 10.0.x diff --git a/Connectors/src/RabbitMQ/manifest-windows.yml b/Connectors/src/RabbitMQ/manifest-windows.yml index ea7899325..0168961cf 100644 --- a/Connectors/src/RabbitMQ/manifest-windows.yml +++ b/Connectors/src/RabbitMQ/manifest-windows.yml @@ -1,9 +1,9 @@ ---- +--- applications: - name: rabbitmq-connector-sample random-route: true memory: 256M - stack: windows + stack: windows2022 buildpacks: - binary_buildpack command: cmd /c .\Steeltoe.Samples.RabbitMQ --urls=http://0.0.0.0:%PORT% diff --git a/Connectors/src/RabbitMQ/testing/scaffold/cloudfoundry.py b/Connectors/src/RabbitMQ/testing/scaffold/cloudfoundry.py index 301674628..cc582622d 100644 --- a/Connectors/src/RabbitMQ/testing/scaffold/cloudfoundry.py +++ b/Connectors/src/RabbitMQ/testing/scaffold/cloudfoundry.py @@ -13,7 +13,7 @@ def setup(context): service = 'p.rabbitmq' plan = 'rmq-single-node' instance = 'sampleRabbitMQService' - cf.create_service(service, plan, instance) + cf.create_service(service, plan, instance, alternatives=[('p.rabbitmq', 'on-demand-plan')]) def teardown(context): """ diff --git a/Connectors/src/Redis/README.md b/Connectors/src/Redis/README.md index 239e1ae8c..6ad9f5f30 100644 --- a/Connectors/src/Redis/README.md +++ b/Connectors/src/Redis/README.md @@ -44,17 +44,16 @@ Upon startup, the app inserts a couple of key/value pairs into the bound Redis/V ``` - When using Redis for Tanzu Application Service or Tanzu for Valkey on Cloud Foundry: ```shell - cf create-service p.redis your-plan sampleRedisService + cf create-service p.redis your-plan sampleRedisService --wait ``` - When using Tanzu Cloud Service Broker for Microsoft Azure: ```shell - cf create-service csb-azure-redis your-plan sampleRedisService + cf create-service csb-azure-redis your-plan sampleRedisService --wait ``` - When using Tanzu Cloud Service Broker for AWS: ```shell - cf create-service csb-aws-redis your-plan sampleRedisService + cf create-service csb-aws-redis your-plan sampleRedisService --wait ``` -1. Wait for the service to become ready (you can check with `cf services`) 1. Run the `cf push` command to deploy from source (you can monitor logs with `cf logs redis-connector-sample`) - When deploying to Windows, binaries must be built locally before push. Use the following commands instead: ```shell diff --git a/Connectors/src/Redis/buildpack.yml b/Connectors/src/Redis/buildpack.yml deleted file mode 100644 index d0cc19a55..000000000 --- a/Connectors/src/Redis/buildpack.yml +++ /dev/null @@ -1,2 +0,0 @@ -dotnet-core: - sdk: 10.0.x diff --git a/Connectors/src/Redis/manifest-windows.yml b/Connectors/src/Redis/manifest-windows.yml index f48183180..b67ecab93 100644 --- a/Connectors/src/Redis/manifest-windows.yml +++ b/Connectors/src/Redis/manifest-windows.yml @@ -1,9 +1,9 @@ ---- +--- applications: - name: redis-connector-sample random-route: true memory: 256M - stack: windows + stack: windows2022 buildpacks: - binary_buildpack command: cmd /c .\Steeltoe.Samples.Redis --urls=http://0.0.0.0:%PORT% diff --git a/Connectors/src/Redis/testing/scaffold/cloudfoundry.py b/Connectors/src/Redis/testing/scaffold/cloudfoundry.py index e0fdefc48..5d123e9b5 100644 --- a/Connectors/src/Redis/testing/scaffold/cloudfoundry.py +++ b/Connectors/src/Redis/testing/scaffold/cloudfoundry.py @@ -10,10 +10,10 @@ def setup(context): app = 'redis-connector-sample' cf.delete_app(app) # create service - service = 'p.redis' - plan = 'vk-plan' + service = 'p-redis' + plan = 'shared-vm' instance = 'sampleRedisService' - cf.create_service(service, plan, instance) + cf.create_service(service, plan, instance, alternatives=[('p.redis', 'vk-plan')]) def teardown(context): """ diff --git a/Connectors/src/SqlServerEFCore/README.md b/Connectors/src/SqlServerEFCore/README.md index 2deef228b..51fb8c964 100644 --- a/Connectors/src/SqlServerEFCore/README.md +++ b/Connectors/src/SqlServerEFCore/README.md @@ -36,13 +36,12 @@ Upon startup, the app inserts a couple of rows into the bound SQL Server databas ``` - When using Tanzu Cloud Service Broker for Microsoft Azure: ```shell - cf create-service csb-azure-mssql-db your-plan sampleSqlServerService + cf create-service csb-azure-mssql-db your-plan sampleSqlServerService --wait ``` - When using Tanzu Cloud Service Broker for AWS: ```shell - cf create-service csb-aws-mssql your-plan sampleSqlServerService + cf create-service csb-aws-mssql your-plan sampleSqlServerService --wait ``` -1. Wait for the service to become ready (you can check with `cf services`) 1. Run the `cf push` command to deploy from source (you can monitor logs with `cf logs sqlserver-efcore-connector-sample`) - When deploying to Windows, binaries must be built locally before push. Use the following commands instead: ```shell diff --git a/Connectors/src/SqlServerEFCore/buildpack.yml b/Connectors/src/SqlServerEFCore/buildpack.yml deleted file mode 100644 index d0cc19a55..000000000 --- a/Connectors/src/SqlServerEFCore/buildpack.yml +++ /dev/null @@ -1,2 +0,0 @@ -dotnet-core: - sdk: 10.0.x diff --git a/Connectors/src/SqlServerEFCore/manifest-windows.yml b/Connectors/src/SqlServerEFCore/manifest-windows.yml index 0fa992987..1346de808 100644 --- a/Connectors/src/SqlServerEFCore/manifest-windows.yml +++ b/Connectors/src/SqlServerEFCore/manifest-windows.yml @@ -1,9 +1,9 @@ ---- +--- applications: - name: sqlserver-efcore-connector-sample random-route: true memory: 256M - stack: windows + stack: windows2022 buildpacks: - binary_buildpack command: cmd /c .\Steeltoe.Samples.SqlServerEFCore --urls=http://0.0.0.0:%PORT% diff --git a/Connectors/src/Steeltoe.Samples.Connectors.sln b/Connectors/src/Steeltoe.Samples.Connectors.sln deleted file mode 100644 index 0ba878bbc..000000000 --- a/Connectors/src/Steeltoe.Samples.Connectors.sln +++ /dev/null @@ -1,148 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.10.34916.146 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Steeltoe.Samples.MySql", "MySql\Steeltoe.Samples.MySql.csproj", "{DB37AA9C-28EB-480F-AF53-F6C3F1C9829C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Steeltoe.Samples.MySqlEFCore", "MySqlEFCore\Steeltoe.Samples.MySqlEFCore.csproj", "{BA61CD15-2EA2-4698-84A7-C06FB004BE8F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Steeltoe.Samples.PostgreSqlEFCore", "PostgreSqlEFCore\Steeltoe.Samples.PostgreSqlEFCore.csproj", "{94EF01DB-3C5A-4C15-AD6A-62FFD4CB75A8}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Steeltoe.Samples.PostgreSql", "PostgreSql\Steeltoe.Samples.PostgreSql.csproj", "{83165353-7714-494E-924C-F43234210AEB}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Steeltoe.Samples.RabbitMQ", "RabbitMQ\Steeltoe.Samples.RabbitMQ.csproj", "{DD4878E3-43AD-4A86-89E6-6D018A89D584}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Steeltoe.Samples.Redis", "Redis\Steeltoe.Samples.Redis.csproj", "{F829A220-1EE1-4E82-A807-0FB11F73FE21}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Steeltoe.Samples.SqlServerEFCore", "SqlServerEFCore\Steeltoe.Samples.SqlServerEFCore.csproj", "{0D565A7E-221F-4271-8876-1A4A223F6B7D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Steeltoe.Samples.CosmosDb", "CosmosDb\Steeltoe.Samples.CosmosDb.csproj", "{3B35FC0B-47AE-417E-9F0B-9277286E60B1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Steeltoe.Samples.MongoDb", "MongoDb\Steeltoe.Samples.MongoDb.csproj", "{29BF56DA-1534-43F3-97FF-563F03C6A72E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DB37AA9C-28EB-480F-AF53-F6C3F1C9829C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DB37AA9C-28EB-480F-AF53-F6C3F1C9829C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DB37AA9C-28EB-480F-AF53-F6C3F1C9829C}.Debug|x64.ActiveCfg = Debug|Any CPU - {DB37AA9C-28EB-480F-AF53-F6C3F1C9829C}.Debug|x64.Build.0 = Debug|Any CPU - {DB37AA9C-28EB-480F-AF53-F6C3F1C9829C}.Debug|x86.ActiveCfg = Debug|Any CPU - {DB37AA9C-28EB-480F-AF53-F6C3F1C9829C}.Debug|x86.Build.0 = Debug|Any CPU - {DB37AA9C-28EB-480F-AF53-F6C3F1C9829C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DB37AA9C-28EB-480F-AF53-F6C3F1C9829C}.Release|Any CPU.Build.0 = Release|Any CPU - {DB37AA9C-28EB-480F-AF53-F6C3F1C9829C}.Release|x64.ActiveCfg = Release|Any CPU - {DB37AA9C-28EB-480F-AF53-F6C3F1C9829C}.Release|x64.Build.0 = Release|Any CPU - {DB37AA9C-28EB-480F-AF53-F6C3F1C9829C}.Release|x86.ActiveCfg = Release|Any CPU - {DB37AA9C-28EB-480F-AF53-F6C3F1C9829C}.Release|x86.Build.0 = Release|Any CPU - {BA61CD15-2EA2-4698-84A7-C06FB004BE8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BA61CD15-2EA2-4698-84A7-C06FB004BE8F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BA61CD15-2EA2-4698-84A7-C06FB004BE8F}.Debug|x64.ActiveCfg = Debug|Any CPU - {BA61CD15-2EA2-4698-84A7-C06FB004BE8F}.Debug|x64.Build.0 = Debug|Any CPU - {BA61CD15-2EA2-4698-84A7-C06FB004BE8F}.Debug|x86.ActiveCfg = Debug|Any CPU - {BA61CD15-2EA2-4698-84A7-C06FB004BE8F}.Debug|x86.Build.0 = Debug|Any CPU - {BA61CD15-2EA2-4698-84A7-C06FB004BE8F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BA61CD15-2EA2-4698-84A7-C06FB004BE8F}.Release|Any CPU.Build.0 = Release|Any CPU - {BA61CD15-2EA2-4698-84A7-C06FB004BE8F}.Release|x64.ActiveCfg = Release|Any CPU - {BA61CD15-2EA2-4698-84A7-C06FB004BE8F}.Release|x64.Build.0 = Release|Any CPU - {BA61CD15-2EA2-4698-84A7-C06FB004BE8F}.Release|x86.ActiveCfg = Release|Any CPU - {BA61CD15-2EA2-4698-84A7-C06FB004BE8F}.Release|x86.Build.0 = Release|Any CPU - {94EF01DB-3C5A-4C15-AD6A-62FFD4CB75A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {94EF01DB-3C5A-4C15-AD6A-62FFD4CB75A8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {94EF01DB-3C5A-4C15-AD6A-62FFD4CB75A8}.Debug|x64.ActiveCfg = Debug|Any CPU - {94EF01DB-3C5A-4C15-AD6A-62FFD4CB75A8}.Debug|x64.Build.0 = Debug|Any CPU - {94EF01DB-3C5A-4C15-AD6A-62FFD4CB75A8}.Debug|x86.ActiveCfg = Debug|Any CPU - {94EF01DB-3C5A-4C15-AD6A-62FFD4CB75A8}.Debug|x86.Build.0 = Debug|Any CPU - {94EF01DB-3C5A-4C15-AD6A-62FFD4CB75A8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {94EF01DB-3C5A-4C15-AD6A-62FFD4CB75A8}.Release|Any CPU.Build.0 = Release|Any CPU - {94EF01DB-3C5A-4C15-AD6A-62FFD4CB75A8}.Release|x64.ActiveCfg = Release|Any CPU - {94EF01DB-3C5A-4C15-AD6A-62FFD4CB75A8}.Release|x64.Build.0 = Release|Any CPU - {94EF01DB-3C5A-4C15-AD6A-62FFD4CB75A8}.Release|x86.ActiveCfg = Release|Any CPU - {94EF01DB-3C5A-4C15-AD6A-62FFD4CB75A8}.Release|x86.Build.0 = Release|Any CPU - {83165353-7714-494E-924C-F43234210AEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {83165353-7714-494E-924C-F43234210AEB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {83165353-7714-494E-924C-F43234210AEB}.Debug|x64.ActiveCfg = Debug|Any CPU - {83165353-7714-494E-924C-F43234210AEB}.Debug|x64.Build.0 = Debug|Any CPU - {83165353-7714-494E-924C-F43234210AEB}.Debug|x86.ActiveCfg = Debug|Any CPU - {83165353-7714-494E-924C-F43234210AEB}.Debug|x86.Build.0 = Debug|Any CPU - {83165353-7714-494E-924C-F43234210AEB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {83165353-7714-494E-924C-F43234210AEB}.Release|Any CPU.Build.0 = Release|Any CPU - {83165353-7714-494E-924C-F43234210AEB}.Release|x64.ActiveCfg = Release|Any CPU - {83165353-7714-494E-924C-F43234210AEB}.Release|x64.Build.0 = Release|Any CPU - {83165353-7714-494E-924C-F43234210AEB}.Release|x86.ActiveCfg = Release|Any CPU - {83165353-7714-494E-924C-F43234210AEB}.Release|x86.Build.0 = Release|Any CPU - {DD4878E3-43AD-4A86-89E6-6D018A89D584}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DD4878E3-43AD-4A86-89E6-6D018A89D584}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DD4878E3-43AD-4A86-89E6-6D018A89D584}.Debug|x64.ActiveCfg = Debug|Any CPU - {DD4878E3-43AD-4A86-89E6-6D018A89D584}.Debug|x64.Build.0 = Debug|Any CPU - {DD4878E3-43AD-4A86-89E6-6D018A89D584}.Debug|x86.ActiveCfg = Debug|Any CPU - {DD4878E3-43AD-4A86-89E6-6D018A89D584}.Debug|x86.Build.0 = Debug|Any CPU - {DD4878E3-43AD-4A86-89E6-6D018A89D584}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DD4878E3-43AD-4A86-89E6-6D018A89D584}.Release|Any CPU.Build.0 = Release|Any CPU - {DD4878E3-43AD-4A86-89E6-6D018A89D584}.Release|x64.ActiveCfg = Release|Any CPU - {DD4878E3-43AD-4A86-89E6-6D018A89D584}.Release|x64.Build.0 = Release|Any CPU - {DD4878E3-43AD-4A86-89E6-6D018A89D584}.Release|x86.ActiveCfg = Release|Any CPU - {DD4878E3-43AD-4A86-89E6-6D018A89D584}.Release|x86.Build.0 = Release|Any CPU - {F829A220-1EE1-4E82-A807-0FB11F73FE21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F829A220-1EE1-4E82-A807-0FB11F73FE21}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F829A220-1EE1-4E82-A807-0FB11F73FE21}.Debug|x64.ActiveCfg = Debug|Any CPU - {F829A220-1EE1-4E82-A807-0FB11F73FE21}.Debug|x64.Build.0 = Debug|Any CPU - {F829A220-1EE1-4E82-A807-0FB11F73FE21}.Debug|x86.ActiveCfg = Debug|Any CPU - {F829A220-1EE1-4E82-A807-0FB11F73FE21}.Debug|x86.Build.0 = Debug|Any CPU - {F829A220-1EE1-4E82-A807-0FB11F73FE21}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F829A220-1EE1-4E82-A807-0FB11F73FE21}.Release|Any CPU.Build.0 = Release|Any CPU - {F829A220-1EE1-4E82-A807-0FB11F73FE21}.Release|x64.ActiveCfg = Release|Any CPU - {F829A220-1EE1-4E82-A807-0FB11F73FE21}.Release|x64.Build.0 = Release|Any CPU - {F829A220-1EE1-4E82-A807-0FB11F73FE21}.Release|x86.ActiveCfg = Release|Any CPU - {F829A220-1EE1-4E82-A807-0FB11F73FE21}.Release|x86.Build.0 = Release|Any CPU - {0D565A7E-221F-4271-8876-1A4A223F6B7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0D565A7E-221F-4271-8876-1A4A223F6B7D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0D565A7E-221F-4271-8876-1A4A223F6B7D}.Debug|x64.ActiveCfg = Debug|Any CPU - {0D565A7E-221F-4271-8876-1A4A223F6B7D}.Debug|x64.Build.0 = Debug|Any CPU - {0D565A7E-221F-4271-8876-1A4A223F6B7D}.Debug|x86.ActiveCfg = Debug|Any CPU - {0D565A7E-221F-4271-8876-1A4A223F6B7D}.Debug|x86.Build.0 = Debug|Any CPU - {0D565A7E-221F-4271-8876-1A4A223F6B7D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0D565A7E-221F-4271-8876-1A4A223F6B7D}.Release|Any CPU.Build.0 = Release|Any CPU - {0D565A7E-221F-4271-8876-1A4A223F6B7D}.Release|x64.ActiveCfg = Release|Any CPU - {0D565A7E-221F-4271-8876-1A4A223F6B7D}.Release|x64.Build.0 = Release|Any CPU - {0D565A7E-221F-4271-8876-1A4A223F6B7D}.Release|x86.ActiveCfg = Release|Any CPU - {0D565A7E-221F-4271-8876-1A4A223F6B7D}.Release|x86.Build.0 = Release|Any CPU - {29BF56DA-1534-43F3-97FF-563F03C6A72E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {29BF56DA-1534-43F3-97FF-563F03C6A72E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {29BF56DA-1534-43F3-97FF-563F03C6A72E}.Debug|x64.ActiveCfg = Debug|Any CPU - {29BF56DA-1534-43F3-97FF-563F03C6A72E}.Debug|x64.Build.0 = Debug|Any CPU - {29BF56DA-1534-43F3-97FF-563F03C6A72E}.Debug|x86.ActiveCfg = Debug|Any CPU - {29BF56DA-1534-43F3-97FF-563F03C6A72E}.Debug|x86.Build.0 = Debug|Any CPU - {29BF56DA-1534-43F3-97FF-563F03C6A72E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {29BF56DA-1534-43F3-97FF-563F03C6A72E}.Release|Any CPU.Build.0 = Release|Any CPU - {29BF56DA-1534-43F3-97FF-563F03C6A72E}.Release|x64.ActiveCfg = Release|Any CPU - {29BF56DA-1534-43F3-97FF-563F03C6A72E}.Release|x64.Build.0 = Release|Any CPU - {29BF56DA-1534-43F3-97FF-563F03C6A72E}.Release|x86.ActiveCfg = Release|Any CPU - {29BF56DA-1534-43F3-97FF-563F03C6A72E}.Release|x86.Build.0 = Release|Any CPU - {3B35FC0B-47AE-417E-9F0B-9277286E60B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B35FC0B-47AE-417E-9F0B-9277286E60B1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B35FC0B-47AE-417E-9F0B-9277286E60B1}.Debug|x64.ActiveCfg = Debug|Any CPU - {3B35FC0B-47AE-417E-9F0B-9277286E60B1}.Debug|x64.Build.0 = Debug|Any CPU - {3B35FC0B-47AE-417E-9F0B-9277286E60B1}.Debug|x86.ActiveCfg = Debug|Any CPU - {3B35FC0B-47AE-417E-9F0B-9277286E60B1}.Debug|x86.Build.0 = Debug|Any CPU - {3B35FC0B-47AE-417E-9F0B-9277286E60B1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B35FC0B-47AE-417E-9F0B-9277286E60B1}.Release|Any CPU.Build.0 = Release|Any CPU - {3B35FC0B-47AE-417E-9F0B-9277286E60B1}.Release|x64.ActiveCfg = Release|Any CPU - {3B35FC0B-47AE-417E-9F0B-9277286E60B1}.Release|x64.Build.0 = Release|Any CPU - {3B35FC0B-47AE-417E-9F0B-9277286E60B1}.Release|x86.ActiveCfg = Release|Any CPU - {3B35FC0B-47AE-417E-9F0B-9277286E60B1}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {20A5E3F4-9F66-4130-BB2B-F1BBE8BB4FCB} - EndGlobalSection -EndGlobal diff --git a/Connectors/src/Steeltoe.Samples.Connectors.slnx b/Connectors/src/Steeltoe.Samples.Connectors.slnx new file mode 100644 index 000000000..141e23dd2 --- /dev/null +++ b/Connectors/src/Steeltoe.Samples.Connectors.slnx @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/Discovery/src/FortuneTeller/Steeltoe.Samples.Discovery.FortuneTeller.sln.DotSettings b/Connectors/src/Steeltoe.Samples.Connectors.slnx.DotSettings similarity index 90% rename from Discovery/src/FortuneTeller/Steeltoe.Samples.Discovery.FortuneTeller.sln.DotSettings rename to Connectors/src/Steeltoe.Samples.Connectors.slnx.DotSettings index 32ed3e8fb..9a143b6a5 100644 --- a/Discovery/src/FortuneTeller/Steeltoe.Samples.Discovery.FortuneTeller.sln.DotSettings +++ b/Connectors/src/Steeltoe.Samples.Connectors.slnx.DotSettings @@ -4,20 +4,16 @@ 2000 3000 False - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - 2A975FB7-401B-41BB-96A4-1DF0036888A9 - 61812938-5132-4AB6-B48D-2DF4189B3E37/f:ConfigurationSchemaAttributes.cs - C4C38F83-8410-443C-9599-ACFB5FA7CD2D - C4C38F83-8410-443C-9599-ACFB5FA7CD2D/f:ConfigurationSchemaAttributes.cs/l:..?..?..?Common?src?Abstractions?ConfigurationSchemaAttributes.cs - DC1BC61A-E0FA-4CF9-9F24-D4C564A07836/f:Directory.Build.targets/l:..?Directory.Build.targets + ExplicitlyExcluded + ExplicitlyExcluded + ExplicitlyExcluded + 2C62D385-0462-A9A1-B49F-11B2CA4C133B/f:Directory.Build.targets/l:..?Directory.Build.targets + 790DD63C-8905-7556-AEBC-3CA429B0A44A + 790DD63C-8905-7556-AEBC-3CA429B0A44A/f:ConfigurationSchemaAttributes.cs/l:..?..?..?Common?src?Common?ConfigurationSchemaAttributes.cs + 9D8CC586-97FA-57A6-1702-125D9D03645D/f:ConfigurationSchemaAttributes.cs + CFB09DDD-8A94-3860-BFC2-111EC05320C3 SOLUTION True - True SUGGESTION SUGGESTION SUGGESTION @@ -25,6 +21,7 @@ SUGGESTION SUGGESTION SUGGESTION + WARNING SUGGESTION SUGGESTION SUGGESTION @@ -59,7 +56,9 @@ WARNING SUGGESTION DO_NOT_SHOW + DO_NOT_SHOW WARNING + SUGGESTION DO_NOT_SHOW HINT SUGGESTION @@ -79,10 +78,12 @@ WARNING SUGGESTION SUGGESTION + WARNING SUGGESTION WARNING WARNING WARNING + WARNING DO_NOT_SHOW DO_NOT_SHOW WARNING @@ -92,6 +93,7 @@ WARNING SUGGESTION WARNING + SUGGESTION HINT WARNING WARNING @@ -102,14 +104,16 @@ SUGGESTION WARNING True + ShowAndRun SUGGESTION False - <?xml version="1.0" encoding="utf-16"?><Profile name="Steeltoe Full Cleanup"><XMLReformatCode>True</XMLReformatCode><CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeArgumentsStyle="True" ArrangeCodeBodyStyle="True" ArrangeVarStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" ArrangeNullCheckingPattern="True" /><CssAlphabetizeProperties>True</CssAlphabetizeProperties><JsInsertSemicolon>True</JsInsertSemicolon><FormatAttributeQuoteDescriptor>True</FormatAttributeQuoteDescriptor><CorrectVariableKindsDescriptor>True</CorrectVariableKindsDescriptor><VariablesToInnerScopesDescriptor>True</VariablesToInnerScopesDescriptor><StringToTemplatesDescriptor>True</StringToTemplatesDescriptor><JsReformatCode>True</JsReformatCode><JsFormatDocComments>True</JsFormatDocComments><RemoveRedundantQualifiersTs>True</RemoveRedundantQualifiersTs><OptimizeImportsTs>True</OptimizeImportsTs><OptimizeReferenceCommentsTs>True</OptimizeReferenceCommentsTs><PublicModifierStyleTs>True</PublicModifierStyleTs><ExplicitAnyTs>True</ExplicitAnyTs><TypeAnnotationStyleTs>True</TypeAnnotationStyleTs><RelativePathStyleTs>True</RelativePathStyleTs><AsInsteadOfCastTs>True</AsInsteadOfCastTs><HtmlReformatCode>True</HtmlReformatCode><AspOptimizeRegisterDirectives>True</AspOptimizeRegisterDirectives><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><CssReformatCode>True</CssReformatCode><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments><CSReorderTypeMembers>True</CSReorderTypeMembers><XAMLCollapseEmptyTags>False</XAMLCollapseEmptyTags><CSReformatInactiveBranches>True</CSReformatInactiveBranches><CSUpdateFileHeader>True</CSUpdateFileHeader></Profile> + <?xml version="1.0" encoding="utf-16"?><Profile name="Steeltoe Full Cleanup"><XMLReformatCode>True</XMLReformatCode><CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeArgumentsStyle="True" ArrangeCodeBodyStyle="True" ArrangeVarStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" ArrangeNullCheckingPattern="True" ArrangeAccessors="True" /><CssAlphabetizeProperties>True</CssAlphabetizeProperties><JsInsertSemicolon>True</JsInsertSemicolon><FormatAttributeQuoteDescriptor>True</FormatAttributeQuoteDescriptor><CorrectVariableKindsDescriptor>True</CorrectVariableKindsDescriptor><VariablesToInnerScopesDescriptor>True</VariablesToInnerScopesDescriptor><StringToTemplatesDescriptor>True</StringToTemplatesDescriptor><JsReformatCode>True</JsReformatCode><JsFormatDocComments>True</JsFormatDocComments><RemoveRedundantQualifiersTs>True</RemoveRedundantQualifiersTs><OptimizeImportsTs>True</OptimizeImportsTs><OptimizeReferenceCommentsTs>True</OptimizeReferenceCommentsTs><PublicModifierStyleTs>True</PublicModifierStyleTs><ExplicitAnyTs>True</ExplicitAnyTs><TypeAnnotationStyleTs>True</TypeAnnotationStyleTs><RelativePathStyleTs>True</RelativePathStyleTs><AsInsteadOfCastTs>True</AsInsteadOfCastTs><HtmlReformatCode>True</HtmlReformatCode><AspOptimizeRegisterDirectives>True</AspOptimizeRegisterDirectives><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><CssReformatCode>True</CssReformatCode><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments><CSReorderTypeMembers>True</CSReorderTypeMembers><XAMLCollapseEmptyTags>False</XAMLCollapseEmptyTags><CSReformatInactiveBranches>True</CSReformatInactiveBranches><CSharpReformatComments>True</CSharpReformatComments><CSUpdateFileHeader>True</CSUpdateFileHeader></Profile> Steeltoe Full Cleanup Required Required Required Required + StringEmpty Conditional False False @@ -601,20 +605,18 @@ IO IP MQ + OS OSX UAA False <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> - <Policy><Descriptor Staticness="Instance" AccessRightKinds="Private" Description="Instance fields (private)"><ElementKinds><Kind Name="FIELD" /><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /></Policy> - <Policy><Descriptor Staticness="Static, Instance" AccessRightKinds="Protected, PrivateProtected" Description="Protected fields"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy> - <Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static fields (private)"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /></Policy> + <Policy><Descriptor Staticness="Any" AccessRightKinds="Protected, PrivateProtected" Description="Protected fields"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" WarnAboutPrefixesAndSuffixes="True" Prefix="" Suffix="" Style="aaBb" /></Policy> True True True True True - True True True True @@ -637,7 +639,6 @@ True CSHARP False - Replace argument null check with Guard clause System.ArgumentNullException.ThrowIfNull($argument$); $left$ = $right$; $left$ = $right$ ?? throw new ArgumentNullException(nameof($argument$)); @@ -652,7 +653,6 @@ $left$ = $right$; True CSHARP False - Replace argument null check with Guard clause System.ArgumentNullException.ThrowIfNull($argument$); if ($argument$ == null) throw new ArgumentNullException(nameof($argument$)); WARNING diff --git a/Discovery/README.md b/Discovery/README.md index 1928b6fc3..b8189dd40 100644 --- a/Discovery/README.md +++ b/Discovery/README.md @@ -2,11 +2,11 @@ This repo tree contains sample apps illustrating how to use the [Steeltoe Discovery](https://github.com/SteeltoeOSS/Steeltoe/tree/4.x/src/Discovery) packages. -* src/FortuneTeller - ASP.NET microservice with MVC app, illustrating how to register and consume services using .NET configuration, Consul and Eureka. +* [FortuneTeller](src/FortuneTeller/README.md) - ASP.NET microservice with MVC app, illustrating how to register and consume services using .NET configuration, Consul and Eureka. ## Building & Running -See the readme for instructions on building and running each app. +See the individual sample READMEs linked above for instructions on building and running each app. --- diff --git a/Discovery/src/FortuneTeller/FortuneTellerApi/buildpack.yml b/Discovery/src/FortuneTeller/FortuneTellerApi/buildpack.yml deleted file mode 100644 index d0cc19a55..000000000 --- a/Discovery/src/FortuneTeller/FortuneTellerApi/buildpack.yml +++ /dev/null @@ -1,2 +0,0 @@ -dotnet-core: - sdk: 10.0.x diff --git a/Discovery/src/FortuneTeller/FortuneTellerApi/manifest-windows.yml b/Discovery/src/FortuneTeller/FortuneTellerApi/manifest-windows.yml index 0cdae72aa..6eff093e4 100644 --- a/Discovery/src/FortuneTeller/FortuneTellerApi/manifest-windows.yml +++ b/Discovery/src/FortuneTeller/FortuneTellerApi/manifest-windows.yml @@ -1,9 +1,9 @@ ---- +--- applications: - name: fortune-service-sample random-route: true memory: 256M - stack: windows + stack: windows2022 buildpacks: - binary_buildpack command: cmd /c .\Steeltoe.Samples.FortuneTellerApi --urls=http://0.0.0.0:%PORT% diff --git a/Discovery/src/FortuneTeller/FortuneTellerWeb/buildpack.yml b/Discovery/src/FortuneTeller/FortuneTellerWeb/buildpack.yml deleted file mode 100644 index d0cc19a55..000000000 --- a/Discovery/src/FortuneTeller/FortuneTellerWeb/buildpack.yml +++ /dev/null @@ -1,2 +0,0 @@ -dotnet-core: - sdk: 10.0.x diff --git a/Discovery/src/FortuneTeller/FortuneTellerWeb/manifest-windows.yml b/Discovery/src/FortuneTeller/FortuneTellerWeb/manifest-windows.yml index a338cc3f3..38a9483e7 100644 --- a/Discovery/src/FortuneTeller/FortuneTellerWeb/manifest-windows.yml +++ b/Discovery/src/FortuneTeller/FortuneTellerWeb/manifest-windows.yml @@ -1,9 +1,9 @@ ---- +--- applications: - name: fortune-web-sample random-route: true memory: 256M - stack: windows + stack: windows2022 buildpacks: - binary_buildpack command: cmd /c .\Steeltoe.Samples.FortuneTellerWeb --urls=http://0.0.0.0:%PORT% diff --git a/Discovery/src/FortuneTeller/README.md b/Discovery/src/FortuneTeller/README.md index cda6dddc5..25a4cfced 100644 --- a/Discovery/src/FortuneTeller/README.md +++ b/Discovery/src/FortuneTeller/README.md @@ -136,9 +136,8 @@ This variant uses service instances that are registered in [Spring Cloud Eureka] cf target -o your-org -s your-space cf marketplace cf marketplace -e your-offering - cf create-service p.service-registry your-plan sampleDiscoveryService + cf create-service p.service-registry your-plan sampleDiscoveryService --wait ``` -1. Wait for the service to become ready (you can check with `cf services`) 1. Run the `cf push` command from the FortuneTellerApi directory, wait until it has started, then run it from the FortuneTellerWeb directory - When deploying to Windows, binaries must be built locally before push. Use the following commands instead: ```shell diff --git a/Discovery/src/FortuneTeller/Steeltoe.Samples.Discovery.FortuneTeller.sln b/Discovery/src/FortuneTeller/Steeltoe.Samples.Discovery.FortuneTeller.sln deleted file mode 100644 index 08b9855ff..000000000 --- a/Discovery/src/FortuneTeller/Steeltoe.Samples.Discovery.FortuneTeller.sln +++ /dev/null @@ -1,42 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.9.34728.123 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Steeltoe.Samples.FortuneTellerWeb", "FortuneTellerWeb\Steeltoe.Samples.FortuneTellerWeb.csproj", "{BAB80D02-6C31-4772-9C43-E08A309DA7B1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Steeltoe.Samples.FortuneTellerApi", "FortuneTellerApi\Steeltoe.Samples.FortuneTellerApi.csproj", "{57A04D00-FAC2-4AD1-847B-03E58A95CAED}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{1073526A-A0F2-4EE7-8EE5-6D95EA4ADBD1}" - ProjectSection(SolutionItems) = preProject - README.md = README.md - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Steeltoe.Samples.FortuneTellerConsole", "FortuneTellerConsole\Steeltoe.Samples.FortuneTellerConsole.csproj", "{D2DAB311-4D1B-41C2-9E65-068CBBAE310D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BAB80D02-6C31-4772-9C43-E08A309DA7B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BAB80D02-6C31-4772-9C43-E08A309DA7B1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BAB80D02-6C31-4772-9C43-E08A309DA7B1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BAB80D02-6C31-4772-9C43-E08A309DA7B1}.Release|Any CPU.Build.0 = Release|Any CPU - {57A04D00-FAC2-4AD1-847B-03E58A95CAED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {57A04D00-FAC2-4AD1-847B-03E58A95CAED}.Debug|Any CPU.Build.0 = Debug|Any CPU - {57A04D00-FAC2-4AD1-847B-03E58A95CAED}.Release|Any CPU.ActiveCfg = Release|Any CPU - {57A04D00-FAC2-4AD1-847B-03E58A95CAED}.Release|Any CPU.Build.0 = Release|Any CPU - {D2DAB311-4D1B-41C2-9E65-068CBBAE310D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D2DAB311-4D1B-41C2-9E65-068CBBAE310D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D2DAB311-4D1B-41C2-9E65-068CBBAE310D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D2DAB311-4D1B-41C2-9E65-068CBBAE310D}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {1364BBFB-6AF2-415B-A263-4B496CE3A988} - EndGlobalSection -EndGlobal diff --git a/Discovery/src/FortuneTeller/Steeltoe.Samples.Discovery.FortuneTeller.slnx b/Discovery/src/FortuneTeller/Steeltoe.Samples.Discovery.FortuneTeller.slnx new file mode 100644 index 000000000..51dc3292a --- /dev/null +++ b/Discovery/src/FortuneTeller/Steeltoe.Samples.Discovery.FortuneTeller.slnx @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Configuration/src/Steeltoe.Samples.Configuration.sln.DotSettings b/Discovery/src/FortuneTeller/Steeltoe.Samples.Discovery.FortuneTeller.slnx.DotSettings similarity index 90% rename from Configuration/src/Steeltoe.Samples.Configuration.sln.DotSettings rename to Discovery/src/FortuneTeller/Steeltoe.Samples.Discovery.FortuneTeller.slnx.DotSettings index 32ed3e8fb..9a143b6a5 100644 --- a/Configuration/src/Steeltoe.Samples.Configuration.sln.DotSettings +++ b/Discovery/src/FortuneTeller/Steeltoe.Samples.Discovery.FortuneTeller.slnx.DotSettings @@ -4,20 +4,16 @@ 2000 3000 False - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - 2A975FB7-401B-41BB-96A4-1DF0036888A9 - 61812938-5132-4AB6-B48D-2DF4189B3E37/f:ConfigurationSchemaAttributes.cs - C4C38F83-8410-443C-9599-ACFB5FA7CD2D - C4C38F83-8410-443C-9599-ACFB5FA7CD2D/f:ConfigurationSchemaAttributes.cs/l:..?..?..?Common?src?Abstractions?ConfigurationSchemaAttributes.cs - DC1BC61A-E0FA-4CF9-9F24-D4C564A07836/f:Directory.Build.targets/l:..?Directory.Build.targets + ExplicitlyExcluded + ExplicitlyExcluded + ExplicitlyExcluded + 2C62D385-0462-A9A1-B49F-11B2CA4C133B/f:Directory.Build.targets/l:..?Directory.Build.targets + 790DD63C-8905-7556-AEBC-3CA429B0A44A + 790DD63C-8905-7556-AEBC-3CA429B0A44A/f:ConfigurationSchemaAttributes.cs/l:..?..?..?Common?src?Common?ConfigurationSchemaAttributes.cs + 9D8CC586-97FA-57A6-1702-125D9D03645D/f:ConfigurationSchemaAttributes.cs + CFB09DDD-8A94-3860-BFC2-111EC05320C3 SOLUTION True - True SUGGESTION SUGGESTION SUGGESTION @@ -25,6 +21,7 @@ SUGGESTION SUGGESTION SUGGESTION + WARNING SUGGESTION SUGGESTION SUGGESTION @@ -59,7 +56,9 @@ WARNING SUGGESTION DO_NOT_SHOW + DO_NOT_SHOW WARNING + SUGGESTION DO_NOT_SHOW HINT SUGGESTION @@ -79,10 +78,12 @@ WARNING SUGGESTION SUGGESTION + WARNING SUGGESTION WARNING WARNING WARNING + WARNING DO_NOT_SHOW DO_NOT_SHOW WARNING @@ -92,6 +93,7 @@ WARNING SUGGESTION WARNING + SUGGESTION HINT WARNING WARNING @@ -102,14 +104,16 @@ SUGGESTION WARNING True + ShowAndRun SUGGESTION False - <?xml version="1.0" encoding="utf-16"?><Profile name="Steeltoe Full Cleanup"><XMLReformatCode>True</XMLReformatCode><CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeArgumentsStyle="True" ArrangeCodeBodyStyle="True" ArrangeVarStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" ArrangeNullCheckingPattern="True" /><CssAlphabetizeProperties>True</CssAlphabetizeProperties><JsInsertSemicolon>True</JsInsertSemicolon><FormatAttributeQuoteDescriptor>True</FormatAttributeQuoteDescriptor><CorrectVariableKindsDescriptor>True</CorrectVariableKindsDescriptor><VariablesToInnerScopesDescriptor>True</VariablesToInnerScopesDescriptor><StringToTemplatesDescriptor>True</StringToTemplatesDescriptor><JsReformatCode>True</JsReformatCode><JsFormatDocComments>True</JsFormatDocComments><RemoveRedundantQualifiersTs>True</RemoveRedundantQualifiersTs><OptimizeImportsTs>True</OptimizeImportsTs><OptimizeReferenceCommentsTs>True</OptimizeReferenceCommentsTs><PublicModifierStyleTs>True</PublicModifierStyleTs><ExplicitAnyTs>True</ExplicitAnyTs><TypeAnnotationStyleTs>True</TypeAnnotationStyleTs><RelativePathStyleTs>True</RelativePathStyleTs><AsInsteadOfCastTs>True</AsInsteadOfCastTs><HtmlReformatCode>True</HtmlReformatCode><AspOptimizeRegisterDirectives>True</AspOptimizeRegisterDirectives><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><CssReformatCode>True</CssReformatCode><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments><CSReorderTypeMembers>True</CSReorderTypeMembers><XAMLCollapseEmptyTags>False</XAMLCollapseEmptyTags><CSReformatInactiveBranches>True</CSReformatInactiveBranches><CSUpdateFileHeader>True</CSUpdateFileHeader></Profile> + <?xml version="1.0" encoding="utf-16"?><Profile name="Steeltoe Full Cleanup"><XMLReformatCode>True</XMLReformatCode><CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeArgumentsStyle="True" ArrangeCodeBodyStyle="True" ArrangeVarStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" ArrangeNullCheckingPattern="True" ArrangeAccessors="True" /><CssAlphabetizeProperties>True</CssAlphabetizeProperties><JsInsertSemicolon>True</JsInsertSemicolon><FormatAttributeQuoteDescriptor>True</FormatAttributeQuoteDescriptor><CorrectVariableKindsDescriptor>True</CorrectVariableKindsDescriptor><VariablesToInnerScopesDescriptor>True</VariablesToInnerScopesDescriptor><StringToTemplatesDescriptor>True</StringToTemplatesDescriptor><JsReformatCode>True</JsReformatCode><JsFormatDocComments>True</JsFormatDocComments><RemoveRedundantQualifiersTs>True</RemoveRedundantQualifiersTs><OptimizeImportsTs>True</OptimizeImportsTs><OptimizeReferenceCommentsTs>True</OptimizeReferenceCommentsTs><PublicModifierStyleTs>True</PublicModifierStyleTs><ExplicitAnyTs>True</ExplicitAnyTs><TypeAnnotationStyleTs>True</TypeAnnotationStyleTs><RelativePathStyleTs>True</RelativePathStyleTs><AsInsteadOfCastTs>True</AsInsteadOfCastTs><HtmlReformatCode>True</HtmlReformatCode><AspOptimizeRegisterDirectives>True</AspOptimizeRegisterDirectives><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><CssReformatCode>True</CssReformatCode><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments><CSReorderTypeMembers>True</CSReorderTypeMembers><XAMLCollapseEmptyTags>False</XAMLCollapseEmptyTags><CSReformatInactiveBranches>True</CSReformatInactiveBranches><CSharpReformatComments>True</CSharpReformatComments><CSUpdateFileHeader>True</CSUpdateFileHeader></Profile> Steeltoe Full Cleanup Required Required Required Required + StringEmpty Conditional False False @@ -601,20 +605,18 @@ IO IP MQ + OS OSX UAA False <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> - <Policy><Descriptor Staticness="Instance" AccessRightKinds="Private" Description="Instance fields (private)"><ElementKinds><Kind Name="FIELD" /><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /></Policy> - <Policy><Descriptor Staticness="Static, Instance" AccessRightKinds="Protected, PrivateProtected" Description="Protected fields"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy> - <Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static fields (private)"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /></Policy> + <Policy><Descriptor Staticness="Any" AccessRightKinds="Protected, PrivateProtected" Description="Protected fields"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" WarnAboutPrefixesAndSuffixes="True" Prefix="" Suffix="" Style="aaBb" /></Policy> True True True True True - True True True True @@ -637,7 +639,6 @@ True CSHARP False - Replace argument null check with Guard clause System.ArgumentNullException.ThrowIfNull($argument$); $left$ = $right$; $left$ = $right$ ?? throw new ArgumentNullException(nameof($argument$)); @@ -652,7 +653,6 @@ $left$ = $right$; True CSHARP False - Replace argument null check with Guard clause System.ArgumentNullException.ThrowIfNull($argument$); if ($argument$ == null) throw new ArgumentNullException(nameof($argument$)); WARNING diff --git a/FileShares/src/FileSharesWeb/Controllers/FilesController.cs b/FileShares/src/FileSharesWeb/Controllers/FilesController.cs index 957387038..65044b0bd 100644 --- a/FileShares/src/FileSharesWeb/Controllers/FilesController.cs +++ b/FileShares/src/FileSharesWeb/Controllers/FilesController.cs @@ -48,8 +48,17 @@ public ActionResult List() [HttpDelete] public JsonResult Delete(string fileToDelete) { - string actualFileName = HttpUtility.UrlDecode(fileToDelete); - SystemFile.Delete(actualFileName); - return Json($"Successfully deleted {actualFileName}"); + string fileName = HttpUtility.UrlDecode(fileToDelete); + string shareRoot = Path.GetFullPath(fileShareConfiguration.Location); + string filePath = Path.GetFullPath(Path.Combine(shareRoot, fileName)); + + if (!filePath.StartsWith(shareRoot + '\\', StringComparison.OrdinalIgnoreCase) && + !filePath.StartsWith(shareRoot + '/', StringComparison.OrdinalIgnoreCase)) + { + throw new UnauthorizedAccessException("Deleting files outside the share root is not permitted."); + } + + SystemFile.Delete(filePath); + return Json($"Successfully deleted {fileName}"); } } diff --git a/FileShares/src/FileSharesWeb/manifest-windows.yml b/FileShares/src/FileSharesWeb/manifest-windows.yml index d12476cb3..686e42857 100644 --- a/FileShares/src/FileSharesWeb/manifest-windows.yml +++ b/FileShares/src/FileSharesWeb/manifest-windows.yml @@ -1,9 +1,9 @@ ---- +--- applications: - name: fileshares-sample random-route: true memory: 256M - stack: windows + stack: windows2022 buildpacks: - binary_buildpack command: cmd /c .\Steeltoe.Samples.FileSharesWeb --urls=http://0.0.0.0:%PORT% diff --git a/FileShares/src/Steeltoe.Samples.FileShares.sln b/FileShares/src/Steeltoe.Samples.FileShares.sln deleted file mode 100644 index 5995e608e..000000000 --- a/FileShares/src/Steeltoe.Samples.FileShares.sln +++ /dev/null @@ -1,37 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.13.35818.85 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Steeltoe.Samples.FileSharesWeb", "FileSharesWeb\Steeltoe.Samples.FileSharesWeb.csproj", "{FC84EE6B-1E4C-41CC-9C59-17206C4DBBF5}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Scripts", "Scripts", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}" - ProjectSection(SolutionItems) = preProject - ..\scripts\add-user-and-share.ps1 = ..\scripts\add-user-and-share.ps1 - ..\scripts\cf-create-service.ps1 = ..\scripts\cf-create-service.ps1 - ..\scripts\remove-user-and-share.ps1 = ..\scripts\remove-user-and-share.ps1 - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8EC462FD-D22E-90A8-E5CE-7E832BA40C5D}" - ProjectSection(SolutionItems) = preProject - ..\README.md = ..\README.md - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FC84EE6B-1E4C-41CC-9C59-17206C4DBBF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FC84EE6B-1E4C-41CC-9C59-17206C4DBBF5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FC84EE6B-1E4C-41CC-9C59-17206C4DBBF5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FC84EE6B-1E4C-41CC-9C59-17206C4DBBF5}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {CAAA78DD-AB30-4E0F-B9DD-04B49167680B} - EndGlobalSection -EndGlobal diff --git a/FileShares/src/Steeltoe.Samples.FileShares.slnx b/FileShares/src/Steeltoe.Samples.FileShares.slnx new file mode 100644 index 000000000..0cc037a3b --- /dev/null +++ b/FileShares/src/Steeltoe.Samples.FileShares.slnx @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/FileShares/src/Steeltoe.Samples.FileShares.sln.DotSettings b/FileShares/src/Steeltoe.Samples.FileShares.slnx.DotSettings similarity index 90% rename from FileShares/src/Steeltoe.Samples.FileShares.sln.DotSettings rename to FileShares/src/Steeltoe.Samples.FileShares.slnx.DotSettings index 32ed3e8fb..9a143b6a5 100644 --- a/FileShares/src/Steeltoe.Samples.FileShares.sln.DotSettings +++ b/FileShares/src/Steeltoe.Samples.FileShares.slnx.DotSettings @@ -4,20 +4,16 @@ 2000 3000 False - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - 2A975FB7-401B-41BB-96A4-1DF0036888A9 - 61812938-5132-4AB6-B48D-2DF4189B3E37/f:ConfigurationSchemaAttributes.cs - C4C38F83-8410-443C-9599-ACFB5FA7CD2D - C4C38F83-8410-443C-9599-ACFB5FA7CD2D/f:ConfigurationSchemaAttributes.cs/l:..?..?..?Common?src?Abstractions?ConfigurationSchemaAttributes.cs - DC1BC61A-E0FA-4CF9-9F24-D4C564A07836/f:Directory.Build.targets/l:..?Directory.Build.targets + ExplicitlyExcluded + ExplicitlyExcluded + ExplicitlyExcluded + 2C62D385-0462-A9A1-B49F-11B2CA4C133B/f:Directory.Build.targets/l:..?Directory.Build.targets + 790DD63C-8905-7556-AEBC-3CA429B0A44A + 790DD63C-8905-7556-AEBC-3CA429B0A44A/f:ConfigurationSchemaAttributes.cs/l:..?..?..?Common?src?Common?ConfigurationSchemaAttributes.cs + 9D8CC586-97FA-57A6-1702-125D9D03645D/f:ConfigurationSchemaAttributes.cs + CFB09DDD-8A94-3860-BFC2-111EC05320C3 SOLUTION True - True SUGGESTION SUGGESTION SUGGESTION @@ -25,6 +21,7 @@ SUGGESTION SUGGESTION SUGGESTION + WARNING SUGGESTION SUGGESTION SUGGESTION @@ -59,7 +56,9 @@ WARNING SUGGESTION DO_NOT_SHOW + DO_NOT_SHOW WARNING + SUGGESTION DO_NOT_SHOW HINT SUGGESTION @@ -79,10 +78,12 @@ WARNING SUGGESTION SUGGESTION + WARNING SUGGESTION WARNING WARNING WARNING + WARNING DO_NOT_SHOW DO_NOT_SHOW WARNING @@ -92,6 +93,7 @@ WARNING SUGGESTION WARNING + SUGGESTION HINT WARNING WARNING @@ -102,14 +104,16 @@ SUGGESTION WARNING True + ShowAndRun SUGGESTION False - <?xml version="1.0" encoding="utf-16"?><Profile name="Steeltoe Full Cleanup"><XMLReformatCode>True</XMLReformatCode><CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeArgumentsStyle="True" ArrangeCodeBodyStyle="True" ArrangeVarStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" ArrangeNullCheckingPattern="True" /><CssAlphabetizeProperties>True</CssAlphabetizeProperties><JsInsertSemicolon>True</JsInsertSemicolon><FormatAttributeQuoteDescriptor>True</FormatAttributeQuoteDescriptor><CorrectVariableKindsDescriptor>True</CorrectVariableKindsDescriptor><VariablesToInnerScopesDescriptor>True</VariablesToInnerScopesDescriptor><StringToTemplatesDescriptor>True</StringToTemplatesDescriptor><JsReformatCode>True</JsReformatCode><JsFormatDocComments>True</JsFormatDocComments><RemoveRedundantQualifiersTs>True</RemoveRedundantQualifiersTs><OptimizeImportsTs>True</OptimizeImportsTs><OptimizeReferenceCommentsTs>True</OptimizeReferenceCommentsTs><PublicModifierStyleTs>True</PublicModifierStyleTs><ExplicitAnyTs>True</ExplicitAnyTs><TypeAnnotationStyleTs>True</TypeAnnotationStyleTs><RelativePathStyleTs>True</RelativePathStyleTs><AsInsteadOfCastTs>True</AsInsteadOfCastTs><HtmlReformatCode>True</HtmlReformatCode><AspOptimizeRegisterDirectives>True</AspOptimizeRegisterDirectives><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><CssReformatCode>True</CssReformatCode><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments><CSReorderTypeMembers>True</CSReorderTypeMembers><XAMLCollapseEmptyTags>False</XAMLCollapseEmptyTags><CSReformatInactiveBranches>True</CSReformatInactiveBranches><CSUpdateFileHeader>True</CSUpdateFileHeader></Profile> + <?xml version="1.0" encoding="utf-16"?><Profile name="Steeltoe Full Cleanup"><XMLReformatCode>True</XMLReformatCode><CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeArgumentsStyle="True" ArrangeCodeBodyStyle="True" ArrangeVarStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" ArrangeNullCheckingPattern="True" ArrangeAccessors="True" /><CssAlphabetizeProperties>True</CssAlphabetizeProperties><JsInsertSemicolon>True</JsInsertSemicolon><FormatAttributeQuoteDescriptor>True</FormatAttributeQuoteDescriptor><CorrectVariableKindsDescriptor>True</CorrectVariableKindsDescriptor><VariablesToInnerScopesDescriptor>True</VariablesToInnerScopesDescriptor><StringToTemplatesDescriptor>True</StringToTemplatesDescriptor><JsReformatCode>True</JsReformatCode><JsFormatDocComments>True</JsFormatDocComments><RemoveRedundantQualifiersTs>True</RemoveRedundantQualifiersTs><OptimizeImportsTs>True</OptimizeImportsTs><OptimizeReferenceCommentsTs>True</OptimizeReferenceCommentsTs><PublicModifierStyleTs>True</PublicModifierStyleTs><ExplicitAnyTs>True</ExplicitAnyTs><TypeAnnotationStyleTs>True</TypeAnnotationStyleTs><RelativePathStyleTs>True</RelativePathStyleTs><AsInsteadOfCastTs>True</AsInsteadOfCastTs><HtmlReformatCode>True</HtmlReformatCode><AspOptimizeRegisterDirectives>True</AspOptimizeRegisterDirectives><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><CssReformatCode>True</CssReformatCode><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments><CSReorderTypeMembers>True</CSReorderTypeMembers><XAMLCollapseEmptyTags>False</XAMLCollapseEmptyTags><CSReformatInactiveBranches>True</CSReformatInactiveBranches><CSharpReformatComments>True</CSharpReformatComments><CSUpdateFileHeader>True</CSUpdateFileHeader></Profile> Steeltoe Full Cleanup Required Required Required Required + StringEmpty Conditional False False @@ -601,20 +605,18 @@ IO IP MQ + OS OSX UAA False <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> - <Policy><Descriptor Staticness="Instance" AccessRightKinds="Private" Description="Instance fields (private)"><ElementKinds><Kind Name="FIELD" /><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /></Policy> - <Policy><Descriptor Staticness="Static, Instance" AccessRightKinds="Protected, PrivateProtected" Description="Protected fields"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy> - <Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static fields (private)"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /></Policy> + <Policy><Descriptor Staticness="Any" AccessRightKinds="Protected, PrivateProtected" Description="Protected fields"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" WarnAboutPrefixesAndSuffixes="True" Prefix="" Suffix="" Style="aaBb" /></Policy> True True True True True - True True True True @@ -637,7 +639,6 @@ True CSHARP False - Replace argument null check with Guard clause System.ArgumentNullException.ThrowIfNull($argument$); $left$ = $right$; $left$ = $right$ ?? throw new ArgumentNullException(nameof($argument$)); @@ -652,7 +653,6 @@ $left$ = $right$; True CSHARP False - Replace argument null check with Guard clause System.ArgumentNullException.ThrowIfNull($argument$); if ($argument$ == null) throw new ArgumentNullException(nameof($argument$)); WARNING diff --git a/Management/src/ActuatorApi/ActuatorApi.http b/Management/src/ActuatorApi/ActuatorApi.http index 8ea9085ee..0639ea721 100644 --- a/Management/src/ActuatorApi/ActuatorApi.http +++ b/Management/src/ActuatorApi/ActuatorApi.http @@ -79,7 +79,6 @@ Accept: application/json Authorization: {{Authorization_Header_Value}} Content-Type: application/json { - "configuredLevel": null } ### HTTP Exchanges actuator diff --git a/Management/src/ActuatorApi/Directory.Build.props b/Management/src/ActuatorApi/Directory.Build.props index 6ef26ed50..87a7bc88b 100644 --- a/Management/src/ActuatorApi/Directory.Build.props +++ b/Management/src/ActuatorApi/Directory.Build.props @@ -8,6 +8,6 @@ 9.0.* - 1.14.* + 1.15.* diff --git a/Management/src/ActuatorApi/OpenTelemetryExtensions.cs b/Management/src/ActuatorApi/OpenTelemetryExtensions.cs index 7a747238d..6465d1256 100644 --- a/Management/src/ActuatorApi/OpenTelemetryExtensions.cs +++ b/Management/src/ActuatorApi/OpenTelemetryExtensions.cs @@ -24,7 +24,9 @@ public static void ConfigureOpenTelemetry(this IServiceCollection services, ICon if (!string.IsNullOrEmpty(zipkinExporterAddress)) { +#pragma warning disable CS0618 // Type or member is obsolete tracerProviderBuilder.AddZipkinExporter(); +#pragma warning restore CS0618 // Type or member is obsolete } }); diff --git a/Management/src/ActuatorApi/README.md b/Management/src/ActuatorApi/README.md index 171de447d..c594157b2 100644 --- a/Management/src/ActuatorApi/README.md +++ b/Management/src/ActuatorApi/README.md @@ -1,4 +1,4 @@ -# Steeltoe Management Sample - Actuators, Administrative Tasks, Metrics and Tracing +# Steeltoe Management Sample - Actuators, Administrative Tasks, Metrics and Tracing ActuatorWeb and ActuatorApi form an ASP.NET Core-powered sample application that demonstrates how to use several Steeltoe libraries on their own and with additional tools. @@ -69,22 +69,21 @@ In order to demonstrate [Steeltoe Management Tasks](https://docs.steeltoe.io/api - When using Tanzu for MySQL on Cloud Foundry: ```shell - cf create-service p.mysql your-plan sampleMySqlService + cf create-service p.mysql your-plan sampleActuatorMySqlService --wait ``` - When using Tanzu Cloud Service Broker for GCP: ```shell - cf create-service csb-google-mysql your-plan sampleMySqlService + cf create-service csb-google-mysql your-plan sampleActuatorMySqlService --wait ``` - When using Tanzu Cloud Service Broker for AWS: ```shell - cf create-service csb-aws-mysql your-plan sampleMySqlService + cf create-service csb-aws-mysql your-plan sampleActuatorMySqlService --wait ``` -1. Wait for the service to become ready (you can check with `cf services`) 1. Run the `cf push` command to deploy from source (you can monitor logs with `cf logs actuator-api-management-sample`) - When deploying to Windows, binaries must be built locally before push. Use the following commands instead: @@ -96,7 +95,7 @@ In order to demonstrate [Steeltoe Management Tasks](https://docs.steeltoe.io/api 1. Copy the value of `routes` in the output and open in your browser. The app should start and respond to requests, but the database still needs to be configured with the tasks listed in the next section. > [!NOTE] -> The provided manifest will create an app named `actuator-api-management-sample` and attempt to bind it to the MySql service `sampleMySqlService`. +> The provided manifest will create an app named `actuator-api-management-sample` and attempt to bind it to the MySql service `sampleActuatorMySqlService`. ### Running Tasks diff --git a/Management/src/ActuatorApi/Steeltoe.Samples.ActuatorApi.csproj b/Management/src/ActuatorApi/Steeltoe.Samples.ActuatorApi.csproj index 61dc79370..f5f66f5cc 100644 --- a/Management/src/ActuatorApi/Steeltoe.Samples.ActuatorApi.csproj +++ b/Management/src/ActuatorApi/Steeltoe.Samples.ActuatorApi.csproj @@ -27,8 +27,8 @@ - +