Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
772 changes: 772 additions & 0 deletions .editorconfig

Large diffs are not rendered by default.

44 changes: 22 additions & 22 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,27 +11,27 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: maven
- name: Build with Maven
run: mvn -B package
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: maven
- name: Build with Maven
run: mvn -B package

# The results are reported with the wrong job name. See issue of this GitHub Action:
# https://github.com/ScaCap/action-surefire-report/issues/39
- name: Publish Test Report
if: always()
uses: scacap/[email protected]
with:
check_name: Java CI with Maven test report
report_paths: target/surefire-reports/TEST-*.xml
github_token: ${{ secrets.GITHUB_TOKEN }}
# The results are reported with the wrong job name. See issue of this GitHub Action:
# https://github.com/ScaCap/action-surefire-report/issues/39
- name: Publish Test Report
if: always()
uses: scacap/[email protected]
with:
check_name: Java CI with Maven test report
report_paths: target/surefire-reports/TEST-*.xml
github_token: ${{ secrets.GITHUB_TOKEN }}

- name: Update dependency graph
uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6
- name: Update dependency graph
uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6
32 changes: 16 additions & 16 deletions .github/workflows/start-frontend-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,20 @@ jobs:
runs-on: ubuntu-latest

steps:
- name: Push repository_dispatch event to ladybug-frontend - no PR
uses: actions/github-script@v6
with:
github-token: ${{ secrets.CI_ACCESSTOKEN }}
script: |
await github.rest.actions.createWorkflowDispatch({
owner: 'wearefrank',
repo: 'ladybug-frontend',
workflow_id: 'testing.js.yml',
ref: 'master',
inputs: {
backendCommitToCheckout: '${{ github.ref_name }}',
mergeMasterToBranch: 'true',
useRealFrontend: 'true'
}
})
- name: Push repository_dispatch event to ladybug-frontend - no PR
uses: actions/github-script@v6
with:
github-token: ${{ secrets.CI_ACCESSTOKEN }}
script: |
await github.rest.actions.createWorkflowDispatch({
owner: 'wearefrank',
repo: 'ladybug-frontend',
workflow_id: 'testing.js.yml',
ref: 'master',
inputs: {
backendCommitToCheckout: '${{ github.ref_name }}',
mergeMasterToBranch: 'true',
useRealFrontend: 'true'
}
})

29 changes: 15 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ unit testing, system testing and regression testing to your Java application. Ca
your code (either directly or using AOP) to generate tree based reports. Implement a rerun method to be able to rerun
reports and optionally stub certain checkpoints for regression testing.


# Contents

- [Releases](#releases)
Expand All @@ -15,17 +14,16 @@ reports and optionally stub certain checkpoints for regression testing.
- [How to use Ladybug](#how-to-use-ladybug)
- [How to incorporate Ladybug into your application or framework](#how-to-incorporate-ladybug-into-your-application-or-framework)
- [How to change and test Ladybug](#how-to-change-and-test-ladybug)
- [General setup](#general-setup)
- [Backend development](#backend-development)
- [Testing backend changes with Frank!Framework](#testing-backend-changes-with-frankframework)
- [Frontend development](#frontend-development)
- [Testing frontend changes with the test webapp](#testing-frontend-changes-with-the-test-webapp)
- [Testing frontend changes with Frank!Framework](#testing-frontend-changes-with-frankframework)
- [Testing frontend changes with unit tests](#testing-frontend-changes-with-unit-tests)
- [General setup](#general-setup)
- [Backend development](#backend-development)
- [Testing backend changes with Frank!Framework](#testing-backend-changes-with-frankframework)
- [Frontend development](#frontend-development)
- [Testing frontend changes with the test webapp](#testing-frontend-changes-with-the-test-webapp)
- [Testing frontend changes with Frank!Framework](#testing-frontend-changes-with-frankframework)
- [Testing frontend changes with unit tests](#testing-frontend-changes-with-unit-tests)
- [How the frontend is published](#how-the-frontend-is-published)
- [OpenTelemetry](#opentelemetry)


Releases
========

Expand Down Expand Up @@ -57,7 +55,6 @@ For a detailed explanation please read (which will also explain the use of Ladyb

- https://frank-manual.readthedocs.io/en/latest/testing/ladybug/ladybug.html


How to incorporate Ladybug into your application or framework
=============================================================

Expand Down Expand Up @@ -93,7 +90,7 @@ logger.
```

The second area to consider while integrating Ladybug into your project is the Spring configuration and enabling of the
servlets needed to serve the Ladybug frontend. This can basically be done in two ways (direct and using
servlets needed to serve the Ladybug frontend. This can basically be done in two ways (direct and using
[AOP](https://docs.spring.io/spring-framework/docs/5.3.x/reference/html/core.html#spring-core)). We hope that the
following examples for both methods are enough to get you running. If not, don't hesitate to [contact us](#feedback) for
help.
Expand Down Expand Up @@ -179,6 +176,7 @@ Frontend development
--------------------

Please do the following to set up your development environment for the front-end:

* Install [Node.js](https://nodejs.org/en/), choose version 20. You should get executables `npm` version 10.x and `node` version 20.x. Check these versions using `npm -v` and `node -v`.
* Change directory to your checkout of ladybug-frontend.
* The Node Package Manager (npm) includes another package manager, pnpm. We use that one because it is more stable. Enable it by executing the command `corepack enable`. You should do this in a command prompt that runs with administrator permissions.
Expand Down Expand Up @@ -210,6 +208,7 @@ pnpm ng test
At the time of writing, there are no unit tests but there are end-to-end tests.

End-to-end testing is done using [Cypress](https://www.cypress.io/). Cypress is a dependency configured in `package.json`, so it should have been installed when you did ``pnpm install --frozen-lockfile``. You have the following options for running the tests:

* `pnpm run e2e`. This runs the end-to-end tests headless and without user interaction.
* `pnpm run e2e-interactive`. This opens a Window from which you can choose what tests to start. You can select the webbrowser you want to test with.

Expand Down Expand Up @@ -248,20 +247,22 @@ You can also test your frontend code as Maven artifact before merging your code
OpenTelemetry
=============

Ladybug is able to create telemetry data from Ladybug reports and send it to a telemetry-collector. A telemetry-collector provides an overview based on time that helps to detect latency problems. There are two collectors available to send the data to: Zipkin and Jaeger. To use Zipkin, you can run the following command:
Ladybug is able to create telemetry data from Ladybug reports and send it to a telemetry-collector. A telemetry-collector provides an overview based on time that helps to detect latency problems. There are two collectors available to send the data to: Zipkin and Jaeger. To use Zipkin, you can run the following command:

`docker run --rm -d -p 9411:9411 --name zipkin openzipkin/zipkin`

To work with Jaeger, you can run the following command:
To work with Jaeger, you can run the following command:

`docker run --rm -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 -p 16686:16686 -p 4317:4317 -p 4318:4318 -p 9411:9411 jaegertracing/all-in-one:latest`

To choose between one of the collectors in the Ladybug application, there is a bean available to make your choice. You have to add the following and change the string value of this bean to the collector you want to use. For Zipkin, enter the endpoint in the string value. For Jaeger (which doesn't use a endpoint), you can just enter "jaeger":

```
<bean name="openTelemetryEndpoint" class="java.lang.String">
<constructor-arg value=""/>
</bean>
```

You can enable this bean in the springTestToolWebApp.xml file in the ladybug-test-webapp project. This is a simple webapp to test the Ladybug application. See https://github.com/wearefrank/ladybug-test-webapp. When a Ladybug report is created, a trace will now be sent to the chosen collector.

Collecting OpenTelemetry data
Expand All @@ -276,4 +277,4 @@ SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
.build();
```

For more info about OpenTelemetry, see https://opentelemetry.io/
For more info about OpenTelemetry, see https://opentelemetry.io/
40 changes: 6 additions & 34 deletions RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ Upcoming (3.0)
- Support running human editable report xml file
- Upgrade from javax to jakarta



2.2
---

Expand All @@ -36,18 +34,16 @@ Upcoming (3.0)
- Disable javax.inject.Inject (change pom.xml to enable)
- Improve (database) storage search
- Improve proof of migration
- Show first endpoint in overview / metadata table
- Add separate errors view
- Make sure the record for old component and the record for the new component (that have the same correlation id) are displayed directly below each other
- Show first endpoint in overview / metadata table
- Add separate errors view
- Make sure the record for old component and the record for the new component (that have the same correlation id) are displayed directly below each other
- Add level label to checkpoint component (old GUI)
- Add type label to checkpoint component (old GUI)
- Whitelist api resources (instead of blacklisting)
- Support Quarkus
- Handle invalid checkpoints with level < 0
- Add closeNewThreadsOnly



2.2
---

Expand Down Expand Up @@ -83,8 +79,6 @@ Upcoming (3.0)
- Fix: toObject is using UTF-8 instead of value from charsetNotifier
- Add method to close report or thread in report



2.1
---

Expand Down Expand Up @@ -120,7 +114,7 @@ Upcoming (3.0)
- Add easier way to integrate with Ladybug using subable code, matching stub strategies, default stub strategy "Stub all external connection code" and rerunner interface
- Add StatusExtractor
- Show encoding (object to string conversion) applied on message
- Encode/decode bean messages to/from xml (with XMLEncoder and XMLDecoder)
- Encode/decode bean messages to/from xml (with XMLEncoder and XMLDecoder)
- Encode/decode byte array messages to/from base64
- Add Null="true" to report xml for null messages
- Fix numbers in checkpoint path, not larger than 0 in some cases casing the wrong counterpart checkpoint to be selected in compare
Expand All @@ -141,17 +135,13 @@ Upcoming (3.0)
- Add toggle options for showing storage and checkpoint IDs in the UI
- Add timestamp to filename when downloading zipped reports



2.0.14
---

- Fix bug where pressing Replace on a report would cause an application error
- Add a text field to the Clone window for editing the input message to clone
- Make all of the Edit window's UI elements fit in one screen



2.0.13
---

Expand All @@ -161,8 +151,6 @@ Upcoming (3.0)
- Clarify delete message (delete selected reports? -> delete X selected reports?)
- Clarify truncate message (X characters remaining -> X characters removed)



2.0.11
---

Expand All @@ -172,24 +160,18 @@ Upcoming (3.0)
- Prevent checkpoints from being created when the report occupies too much memory
- Make compare tabs equally wide



2.0.10
---

- Remove single-report delete button (button to delete selected reports remains)



2.0.9
---

- Add refresh after test tab delete action (#2)
- Add configurable checkpoint message truncating
- Avoid IndexOutOfBoundException when starting an unknown thread (#5)



2.0.8
---

Expand All @@ -199,8 +181,6 @@ Upcoming (3.0)
- Add Open all
- Move error label from above to below buttons in debug tab



2.0.7
---

Expand All @@ -212,8 +192,6 @@ Upcoming (3.0)
- Fix error on selecting checkpoint with null message
- Fix error on selecting different stub strategy



2.0.6
---

Expand All @@ -230,21 +208,17 @@ Upcoming (3.0)
- Prevent losing typed data in edit mode on close or select node in tree
- Copy report name from original report on Replace



2.0.5
---

- Refactor code for errorLabel, okayLabel and getReport
- Fix NPE on Open report (from Test tab), Edit, Save
- Fix NPE on Open report (from Test tab), Edit, Save
- Show reports in child folders too in Test tab
- Run reports in Test tab in background
- Add (de)select all to Test tab
- Make it possible to search case sensitive
- Add ProgressBar to Test tab



2.0.4
---

Expand All @@ -253,9 +227,7 @@ Upcoming (3.0)
- Refactor TreePane in Test tab
- Upgrade Xerces to latest version without ElementTraversal



2.0.3
---

...
...
1 change: 1 addition & 0 deletions copyrightExcludeFile.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ MANIFEST.MF
README
LICENSE
.factorypath
.editorconfig
.md
.class
.travis
Expand Down
Loading
Loading