Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
9ee6300
increase version for next increment
bechte Dec 9, 2025
bd49619
upgrade to JDK21
bechte Dec 9, 2025
a1dc574
adjust build tools and platform version for JDK21
bechte Dec 16, 2025
8b26378
remove extensions no longer needed with JDK21
bechte Dec 16, 2025
58d3312
adjust library changes from JDK17 to JDK21
bechte Dec 16, 2025
5274593
include basic configuration for frontend development
bechte Dec 16, 2025
69bf9fb
update reporting to spring constructor injection
bechte Dec 17, 2025
2785236
upgrade tomcat configuration to newest tomcat version
bechte Dec 18, 2025
e0d09c3
convert property injection to constructor injection for spring6
bechte Dec 18, 2025
44da663
add shared properties for local development with alias 50
bechte Feb 23, 2026
d7488b2
upgrade commerce version to 2211-jdk21.6 and solr to 9.10
bechte Feb 24, 2026
5cd4577
CxDevProxy service for local development
bechte Feb 23, 2026
f7ffb36
CxDevProxy JWT token handling
bechte Feb 24, 2026
5aaf066
increase year in README.md files
bechte Feb 24, 2026
5c6fdb4
apply spotless code styles
bechte Feb 24, 2026
62999b8
apply constructor injection to test classes
bechte Feb 24, 2026
4f94569
remove sapcxtemplate extension in favor of yvoid template
bechte Feb 24, 2026
14ae5d2
correct project name of sapcxenvconfig extension
bechte Feb 24, 2026
32397d7
remove obsolete singlesignon extensions
bechte Feb 24, 2026
75e78a4
remove obsolete search and singlesignon extensions
bechte Feb 24, 2026
690a5ae
rename of sapcx tool to cxdev due to name rights
bechte Feb 24, 2026
28f5ad9
merge CX DEV Proxy Server
bechte Feb 24, 2026
8079ca9
move CX DEV Proxy Server to new extension directory
bechte Feb 24, 2026
93414a9
set release version of extensions to 5.0.0
bechte Feb 24, 2026
942ee67
fix relative path the java version
bechte Feb 24, 2026
8e81748
fix versions of github action plugins
bechte Feb 24, 2026
6098f51
dont rely on JDK patch level as it may break the build
bechte Feb 24, 2026
df0e527
fix versions of SAP Machine on GitHub Runner
bechte Feb 24, 2026
e84d214
fix versions of SAP Machine on GitHub Runner
bechte Feb 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
79 changes: 0 additions & 79 deletions .github/workflows/backwards-compatibility-java17.yml

This file was deleted.

36 changes: 18 additions & 18 deletions .github/workflows/buildandtest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ on:
branches: [develop]
paths:
- "core-customize/manifest.json"
- "core-customize/hybris/bin/custom/sapcxtools/**/*.java"
- "core-customize/hybris/bin/custom/sapcxtools/**/*-beans.xml"
- "core-customize/hybris/bin/custom/sapcxtools/**/*-items.xml"
- "core-customize/hybris/bin/custom/sapcxtools/**/extensioninfo.xml"
- "core-customize/hybris/bin/custom/sapcxtools/**/external-dependencies.xml"
- "core-customize/hybris/bin/custom/cxdevtools/**/*.java"
- "core-customize/hybris/bin/custom/cxdevtools/**/*-beans.xml"
- "core-customize/hybris/bin/custom/cxdevtools/**/*-items.xml"
- "core-customize/hybris/bin/custom/cxdevtools/**/extensioninfo.xml"
- "core-customize/hybris/bin/custom/cxdevtools/**/external-dependencies.xml"
pull_request:
branches: [main, develop]
schedule:
Expand All @@ -20,34 +20,34 @@ jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up JDK 17
uses: actions/setup-java@v4
- name: Set up JDK
uses: actions/setup-java@v5
with:
distribution: "adopt"
java-version: "17"
distribution: "sapmachine"
java-version: "21"
cache: "gradle"
- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v3
uses: gradle/actions/wrapper-validation@v5
- name: Set up cache for SAP artifacts
uses: actions/cache@v4
uses: actions/cache@v5
with:
key: sap-artifacts-cache-${{ hashFiles('core-customize/manifest.json') }}
path: dependencies
- name: SAP download config
env:
SAPCX_ARTEFACT_BASEURL: ${{ secrets.SAPCX_ARTEFACT_BASEURL }}
SAPCX_ARTEFACT_USER: ${{ secrets.SAPCX_ARTEFACT_USER }}
SAPCX_ARTEFACT_PASSWORD: ${{ secrets.SAPCX_ARTEFACT_PASSWORD }}
CXDEV_ARTEFACT_BASEURL: ${{ secrets.CXDEV_ARTEFACT_BASEURL }}
CXDEV_ARTEFACT_USER: ${{ secrets.CXDEV_ARTEFACT_USER }}
CXDEV_ARTEFACT_PASSWORD: ${{ secrets.CXDEV_ARTEFACT_PASSWORD }}
shell: bash
run: |
mkdir -p ${HOME}/.gradle
echo "GRADLE_USER_HOME=${HOME}/.gradle" >> $GITHUB_ENV
echo "SAPCX_ARTEFACT_BASEURL=${SAPCX_ARTEFACT_BASEURL}" >> ${HOME}/.gradle/gradle.properties
echo "SAPCX_ARTEFACT_USER=${SAPCX_ARTEFACT_USER}" >> ${HOME}/.gradle/gradle.properties
echo "SAPCX_ARTEFACT_PASSWORD=${SAPCX_ARTEFACT_PASSWORD}" >> ${HOME}/.gradle/gradle.properties
echo "CXDEV_ARTEFACT_BASEURL=${CXDEV_ARTEFACT_BASEURL}" >> ${HOME}/.gradle/gradle.properties
echo "CXDEV_ARTEFACT_USER=${CXDEV_ARTEFACT_USER}" >> ${HOME}/.gradle/gradle.properties
echo "CXDEV_ARTEFACT_PASSWORD=${CXDEV_ARTEFACT_PASSWORD}" >> ${HOME}/.gradle/gradle.properties
- name: SAP Commerce environment
run: |
echo "HYBRIS_OPT_CONFIG_DIR=$GITHUB_WORKSPACE/core-customize/hybris/config/local-config" >> $GITHUB_ENV
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/code-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ jobs:
code-analysis:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
- uses: actions/checkout@v6
- name: Set up JDK
uses: actions/setup-java@v5
with:
distribution: "adopt"
java-version: "17"
distribution: "sapmachine"
java-version: "21"
cache: "gradle"
- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v3
uses: gradle/actions/wrapper-validation@v5
- name: Verify code conventions
run: ./gradlew spotlessCheck
38 changes: 19 additions & 19 deletions .github/workflows/dependency-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ on:
branches: [develop]
paths:
- "core-customize/manifest.json"
- "core-customize/hybris/bin/custom/sapcxtools/**/*.java"
- "core-customize/hybris/bin/custom/sapcxtools/**/*-beans.xml"
- "core-customize/hybris/bin/custom/sapcxtools/**/*-items.xml"
- "core-customize/hybris/bin/custom/sapcxtools/**/extensioninfo.xml"
- "core-customize/hybris/bin/custom/sapcxtools/**/external-dependencies.xml"
- "core-customize/hybris/bin/custom/cxdevtools/**/*.java"
- "core-customize/hybris/bin/custom/cxdevtools/**/*-beans.xml"
- "core-customize/hybris/bin/custom/cxdevtools/**/*-items.xml"
- "core-customize/hybris/bin/custom/cxdevtools/**/extensioninfo.xml"
- "core-customize/hybris/bin/custom/cxdevtools/**/external-dependencies.xml"
pull_request:
branches: [main, develop]
workflow_dispatch:
Expand All @@ -19,34 +19,34 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
extension: ["sapcommercetoolkit", "sapcxbackoffice", "sapcxreporting", "sapcxsearch", "sapcxenvconfig", "sapcxsinglesignon"]
extension: ["cxdevtoolkit", "cxdevbackoffice", "cxdevreporting", "cxdevenvconfig"]
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
- uses: actions/checkout@v6
- name: Set up JDK
uses: actions/setup-java@v5
with:
distribution: "adopt"
java-version: "17"
distribution: "sapmachine"
java-version: "21"
cache: "gradle"
- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v3
uses: gradle/actions/wrapper-validation@v5
- name: Set up cache for SAP artifacts
uses: actions/cache@v4
uses: actions/cache@v5
with:
key: sap-artifacts-cache-${{ hashFiles('core-customize/manifest.json') }}
path: dependencies
- name: SAP download config
env:
SAPCX_ARTEFACT_BASEURL: ${{ secrets.SAPCX_ARTEFACT_BASEURL }}
SAPCX_ARTEFACT_USER: ${{ secrets.SAPCX_ARTEFACT_USER }}
SAPCX_ARTEFACT_PASSWORD: ${{ secrets.SAPCX_ARTEFACT_PASSWORD }}
CXDEV_ARTEFACT_BASEURL: ${{ secrets.CXDEV_ARTEFACT_BASEURL }}
CXDEV_ARTEFACT_USER: ${{ secrets.CXDEV_ARTEFACT_USER }}
CXDEV_ARTEFACT_PASSWORD: ${{ secrets.CXDEV_ARTEFACT_PASSWORD }}
shell: bash
run: |
mkdir -p ${HOME}/.gradle
echo "GRADLE_USER_HOME=${HOME}/.gradle" >> $GITHUB_ENV
echo "SAPCX_ARTEFACT_BASEURL=${SAPCX_ARTEFACT_BASEURL}" >> ${HOME}/.gradle/gradle.properties
echo "SAPCX_ARTEFACT_USER=${SAPCX_ARTEFACT_USER}" >> ${HOME}/.gradle/gradle.properties
echo "SAPCX_ARTEFACT_PASSWORD=${SAPCX_ARTEFACT_PASSWORD}" >> ${HOME}/.gradle/gradle.properties
echo "CXDEV_ARTEFACT_BASEURL=${CXDEV_ARTEFACT_BASEURL}" >> ${HOME}/.gradle/gradle.properties
echo "CXDEV_ARTEFACT_USER=${CXDEV_ARTEFACT_USER}" >> ${HOME}/.gradle/gradle.properties
echo "CXDEV_ARTEFACT_PASSWORD=${CXDEV_ARTEFACT_PASSWORD}" >> ${HOME}/.gradle/gradle.properties
- name: SAP Commerce environment
run: |
echo "HYBRIS_OPT_CONFIG_DIR=$GITHUB_WORKSPACE/core-customize/hybris/config/local-config" >> $GITHUB_ENV
Expand Down
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ core-customize/hybris/roles/
core-customize/hybris/log/
core-customize/hybris/temp/
core-customize/hybris/data/
core-customize/hybris/config/local-config/9[0-9]-local.properties
core-customize/hybris/config/local-config/

# only allow sapcxtools extension
# only allow cxdevtools extension
core-customize/hybris/bin/modules/
core-customize/hybris/bin/platform/

Expand Down
2 changes: 1 addition & 1 deletion .java-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
17
21.0.9-sapmchn
2 changes: 1 addition & 1 deletion .node-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
16.13.0
22.14.0
65 changes: 2 additions & 63 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing

## SAP CX Tools Contributor License Agreement
## CX DEV Tools Contributor License Agreement

- You will only submit contributions where you have authored 100% of the content.
- You will only submit contributions to which you have the necessary rights. This means that if you are employed you
Expand Down Expand Up @@ -42,7 +42,7 @@ Please add the following lines to your pull request description:
```markdown
---

I hereby agree to the terms of the SAP CX Tools Contributor License Agreement.
I hereby agree to the terms of the CX DEV Tools Contributor License Agreement.
```

## Coding Conventions
Expand Down Expand Up @@ -120,64 +120,3 @@ Use American English spelling rules when writing documentation as well as for co
- `WARN`: potential usage or configuration errors that should not halt execution
- `INFO`: information the users might want to know but not by default
- `DEBUG`: information the developers might want to know to understand execution

## Extensions

All of the extensions have their own repository and are integrated using `git subtree` into this repository or into project. This
procedure was choosen for two major reasons:

1. A centralized repository holding defined releases of the individual extensions and guaranteeing the compatibility with the standard.
1. The individual extension repositories allow a clean integration into projects, i.e. direct integration of the source code.

### How-to use

In order to use an extension from the sapcx.tools you can either download the build artefact from our build pipeline (work in progress) or
integration the extension directly into your repository using git subtree. The following commands shall give you a guidance on how to
integration the extensions into your local repository. Keep in mind, that you need to run these commands from the root of your project.
For the sake of simplicity, we assume that you use the default CCv2 repository layout for your project:

- The following command is used to add an extension "foobar" into your repository:
`git subtree add --squash --message="add extension foobar from SAP CX Tools" --prefix=core-customize/hybris/bin/custom/sapcxtools/foobar git@github.com:sapcxtools/foobar.git main`
- For future updates, please use the following command:
`git subtree pull --squash --message="update extension foobar from SAP CX Tools" --prefix=core-customize/hybris/bin/custom/sapcxtools/foobar git@github.com:sapcxtools/foobar.git main`
- If you want to push changes from the local repository into the extension, please use:
`git subtree push --prefix=core-customize/hybris/bin/custom/sapcxtools/foobar git@github.com:sapcxtools/foobar.git feature/<name-of-your-feature>`

Please note, we typically use `--squash` to reduce the number of commits within your project repository. If you want the whole history
available in your project, feel free to leave out this parameter. Still, we do not recommend this. We also do not recommend to pull other
branches than main. This could lead to conflicts once you want to update back to main.

### Guidelines for the individual extension repositories

Before merging a feature into the `main` branch of an extension, a github workflow sends the feature-branch to the centralized repository.
Let's assume a new feature `feature/my-idea` was pushed via `git subtree push` into extension `foobar`. The workflow checks out the
centralized repository, and creates a branch called `foobar/feature/my-idea`. Then it performs a `git subtree pull` command without
`--squash` and pointing to the feature branch `feature/my-idea` from the `foobar` extension. It pushes the new branch to the centralized
repository.

The centralized repository now also runs a github workflow that automatically creates a pull-request into the `develop` branch for this
feature. With that pull-request, the default workflows from the centralized repository are executed, verifying if everything is fine. In
addition, the repository maintainer will perform custom reviews and may ask you for changes. You can perform your changes within your
project repository and by pushing those to the extension repository `foobar` by updating your feature-branch `feature/my-idea`. This can
be done by running the same `git subtree push` command as before, after you have made your changes in the project repository.

The github workflow will detect your updates and updates the feature-branch on the centralized repository by resetting it to the previous
state, typically develop, and run `git subtree pull` just like the first time. We need to reset the feature-branch `foobar/feature/my-idea`
first, otherwise we would get an additional merge commit for every update of the the feature-branch.

Once the pull-request from feature-branch `foobar/feature/my-idea` was accepted and merged into `develop` the feature-branch `feature-my-idea`
will also be removed from the extensions repository. Another github workflow is triggered that automatically pulls the changes with the
`develop` branch of the centralized repository and updates the `develop` branch of the extensions repository by running:
`git subtree pull --squash --message="merge feature/my-idea into develop" --prefix=core-customize/hybris/bin/custom/sapcxtools/foobar git@github.com:sapcxtools/foobar.git develop`

When the next version of SAP CX tools is released, the same action is done, all included extensions are triggered to also merge their
`develop` branches into their `main` branches, just like the centralized repository. After the release we recommend you to run an update
as mentioned above. Again, we do not recommend to skip the `--squash` option, as you will see all your commits twice in the history.

__CAUTION:__ For those who use this repository itself to develop on features, please make sure that you do not push your changes from the
extensions to the extensions repositories using `git subtree push`. This will be done automatically for you, once your pull-request has
been accepted and merged into `develop`. Also make sure that you only use the pattern `feature/<name>` for your feature-branches, so there
won't be any kind of conflicts with the feature-branches that have automatically been created.

While this process seems to be complicated, it guarantees that all extensions included in SAP CX tools are interoperatable and work
individually, with only their own dependencies resolved. If you have questions, feel free to get in touch with us in the discussion board.
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [2023] [SAP CX Tools]
Copyright [2023] [CX DEV Tools]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
Loading
Loading