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 @@
-
+
|