Skip to content

Commit

Permalink
Update URLs to current repositories
Browse files Browse the repository at this point in the history
  • Loading branch information
jkosternl committed Mar 21, 2024
1 parent ac2cf51 commit d0aabcc
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 30 deletions.
46 changes: 23 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ See [release notes](RELEASES.md).
Feedback
========

For bug reports and feature requests create a new issue at <https://github.com/ibissource/ibis-ladybug/issues>. Ladybug
For bug reports and feature requests create a new issue at <https://github.com/wearefrank/ibis-ladybug/issues>. Ladybug
is developed and maintained by [WeAreFrank!](https://wearefrank.nl/). Contact us at <https://wearefrank.nl/en/contact/>
or send an email to [email protected].
or email to [email protected].


Ladybug online demo
Expand Down Expand Up @@ -106,17 +106,17 @@ help.

Direct integration of the Ladybug has been done in the Ladybug test webapp:

- https://github.com/ibissource/ibis-ladybug-test-webapp
- https://github.com/wearefrank/ibis-ladybug-test-webapp

The Quarkus application to demo and test Ladybug:

- https://github.com/ibissource/ladybug-quarkus
- https://github.com/wearefrank/ladybug-quarkus

And the Open ZaakBrug:

- https://github.com/Sudwest-Fryslan/OpenZaakBrug

The first two project do not contain much files so you can easily look at all the files and get an idea of how Ladybug
The first two project do not contain many files, so you can easily look at all the files and get an idea of how Ladybug
has been integrated. The [next section](#how-to-change-and-test-ladybug) describes how to run the Ladybug test webapp.
For the Open ZaakBrug the most important files to look at are:

Expand All @@ -128,11 +128,11 @@ For the Open ZaakBrug the most important files to look at are:

The Frank!Framework is using AOP to integrate the Ladybug, see the Ladybug module of the Frank!Framework:

- https://github.com/ibissource/iaf/tree/master/ladybug
- https://github.com/frankframework/frankframework/tree/master/ladybug

And the AOP related spring configuration xml:

- https://github.com/ibissource/iaf/blob/master/ladybug/src/main/resources/springIbisDebuggerAdvice.xml
- https://github.com/frankframework/frankframework/blob/master/ladybug/src/main/resources/springIbisDebuggerAdvice.xml

The [next section](#how-to-change-and-test-ladybug) also describes how to run Ladybug with the Frank!Framework.

Expand All @@ -145,26 +145,26 @@ General setup

Clone the following projects to your Git folder or any other folder of your choice:

- https://github.com/ibissource/ibis-ladybug (backend code) (the project you are currently looking at)
- https://github.com/ibissource/ladybug-frontend (frontend code, not needed when making backend changes)
- https://github.com/ibissource/ibis-ladybug-test-webapp (webapp to test Ladybug)
- https://github.com/ibissource/frank-runner (building and running the test webapp with Ladybug)
- https://github.com/ibissource/iaf (in case you want to test your Ladybug changes with the Frank!Framework)
- https://github.com/wearefrank/ibis-ladybug (backend code) (the project you are currently looking at)
- https://github.com/wearefrank/ladybug-frontend (frontend code, not needed when making backend changes)
- https://github.com/wearefrank/ladybug-test-webapp (webapp to test Ladybug)
- https://github.com/wearefrank/frank-runner (building and running the test webapp with Ladybug)
- https://github.com/frankframework/frankframework (in case you want to test your Ladybug changes with the Frank!Framework)

Create skip-replace-inject.txt in the ibis-ladybug folder (see pom.xml for more info).

Backend development
-------------------

Read the Frank!Runner [README.md](https://github.com/ibissource/frank-runner#frankrunner) to learn how to integrate it
Read the Frank!Runner [README.md](https://github.com/wearefrank/frank-runner#frankrunner) to learn how to integrate it
with your IDE but you can also just start the restart.bat in the frank-runner/specials/ibis-ladybug folder. This should
build and run the test webapp with Ladybug. When Tomcat has been started by the Frank!Runner browse to:

- http://localhost

This should display a page with links to the various resources available like the Ladybug frontend and API.

To speed up the build copy build-exmaple.properties in this folder to build.properties and enable the relevant
To speed up the build copy build-example.properties in this folder to build.properties and enable the relevant
properties as describes in the comments in this file.

You can also enable spring.profiles.active=storage.file to use the file storage and see the reports generated by the
Expand All @@ -173,7 +173,7 @@ unit tests of the ibis-ladybug project in the Ladybug GUI.
Testing backend changes with Frank!Framework
--------------------------------------------

To test your Ladybug changes with the Frank!Framework enable test.with.iaf=true. By default it will test with the webapp
To test your Ladybug changes with the Frank!Framework enable test.with.iaf=true. By default, it will test with the webapp
module of the Frank!Framework. This can be changed with the iaf.module property. The frank-runner/specials folder
contains a folder per module that can have it's own build.properties with custom properties (see the build.xml for
possible values).
Expand All @@ -198,7 +198,7 @@ Testing frontend changes with the test webapp
Testing frontend changes with Frank!Framework
---------------------------------------------

The Frank!Framework incorporates Ladybug and configures is a bit different then the test webapp. It for example adds a Gray box view which you might want to test. The Frank!Framework serves the Ladybug on a different url then the test webapp so you need to configure the previously mentioned proxy a bit different and change the url in src/proxy.conf.json from http://localhost/ladybug to http://localhost/iaf/ladybug. In case you also have backend changes you can start the Frank!Framework as eplained above (with test.with.iaf=true). Otherwise it is easier to for example run Frank2Example1. See the Frank!Runner [README.md](https://github.com/ibissource/frank-runner#frankrunner) for more information on how to start a Frank2Example1 or another Frank.
The Frank!Framework incorporates Ladybug and configures is a bit different then the test webapp. It for example adds a Gray box view which you might want to test. The Frank!Framework serves the Ladybug on a different url then the test webapp so you need to configure the previously mentioned proxy a bit different and change the url in src/proxy.conf.json from http://localhost/ladybug to http://localhost/iaf/ladybug. In case you also have backend changes you can start the Frank!Framework as eplained above (with test.with.iaf=true). Otherwise it is easier to for example run Frank2Example1. See the Frank!Runner [README.md](https://github.com/wearefrank/frank-runner#frankrunner) for more information on how to start a Frank2Example1 or another Frank.

Testing frontend changes with unit tests
----------------------------------------
Expand All @@ -222,9 +222,9 @@ When the tests are running, you will see the ibis-ladybug GUI. The GUI will show

Quarkus
=====
To see how to run the backend for Quarkus, please see [Quarkus backend](https://github.com/ibissource/ladybug-quarkus#demo-and-test-ladybug-in-quarkus).\
To see how to run the backend for Quarkus, please see [Quarkus backend](https://github.com/wearefrank/ladybug-quarkus#demo-and-test-ladybug-in-quarkus).\
For the frontend, do the following:
- Check out of the branch [Quarkus configuration](https://github.com/ibissource/ladybug-frontend/tree/quarkus-configuration)
- Check out of the branch [Quarkus configuration](https://github.com/wearefrank/ladybug-frontend/tree/quarkus-configuration)
- Run `ng serve --open` or run `ng serve` and navigate to [localhost/ladybug](http://localhost/ladybug/)
- NOTE: It is important to note that running a report in the test tab is not yet possible with Quarkus

Expand Down Expand Up @@ -274,7 +274,7 @@ Create and publish NPM package and WebJar
CI/CD
=====

The preceeding sections explained how to change Ladybug. This section explains the CI/CD of Ladybug and it explains how we manage releases.
The preceding sections explained how to change Ladybug. This section explains the CI/CD of Ladybug, and it explains how we manage releases.

First remember that ibis-ladybug is the main project. Project ladybug-frontend is a dependency of ibis-ladybug. The frontend version referenced by ibis-ladybug is specified by the ibis-ladybug `pom.xml` file. It is the value of property `frontend.version`. This property contains a version number that references a WebJar, see [Create and publish NPM package and WebJar](#create-and-publish-npm-package-and-webjar) about creating a WebJar from project ladybug-frontend. This way, a release of ibis-ladybug comes down to releasing the combination of ibis-ladybug and ladybug-frontend.

Expand All @@ -287,24 +287,24 @@ The Cypress test is used in two ways. First, it can be triggered if ibis-ladybug
* useRealFrontend: `true`, because we do not want to use the checkout of ladybug-frontend, but the WebJar contained in ibis-ladybug.
* mergeMasterToBranch: `true`, for the backend directs the test to merge the master into the checkout. This way, a pull request of the backend is emulated.

This scenario does not work on forks of the ibis-ladybug project. A fork does not have rights to trigger tests within the `ibissource/ladybug-frontend` project. A commit on `ibissource/ibis-ladybug` triggers the front-end test. GitHub will not show the success or failure of the front-end test. Please browse to https://github.com/ibissource/ladybug-frontend and go to "Actions". Check the latest test run there.
This scenario does not work on forks of the ibis-ladybug project. A fork does not have rights to trigger tests within the `wearefrank/ladybug-frontend` project. A commit on `wearefrank/ibis-ladybug` triggers the front-end test. GitHub will not show the success or failure of the front-end test. Please browse to https://github.com/wearefrank/ladybug-frontend and go to "Actions". Check the latest test run there.

The second use of the Cypress test is testing the front-end. The Cypress test is triggered by every commit and every pull request update of the ladybug-frontend project. The input arguments are not set, causing the new commit (or merge commit for a PR) to be checked out for ladybug-frontend. For ibis-ladybug the master is checked out. Input `useRealFrontend` is undefined, which is equivalent to `false`. This means that the front-end comes from the checkout of ladybug-frontend; the WebJar inside ibis-ladybug is ignored. Finally, `mergeMasterToBranch` is undefined (`false`). This scenario also works on forks of `ladybug-frontend`.

Here is how to use the CI/CD of Ladybug:

### Update the backend only

After a push on project `ibissource/ibis-ladybug`, open https://github.com/ibissource/ladybug-frontend and go to "Actions". Check the success or failure state of the latest GitHub action. The test exercises the front-end that is referenced by the backend, an integration test. The test logs which WebJar version of the front-end is used and what branch of the backend; please check these to see whether the test run corresponds to your commit.
After a push on project `wearefrank/ibis-ladybug`, open https://github.com/wearefrank/ladybug-frontend and go to "Actions". Check the success or failure state of the latest GitHub action. The test exercises the front-end that is referenced by the backend, an integration test. The test logs which WebJar version of the front-end is used and what branch of the backend; please check these to see whether the test run corresponds to your commit.

When the master of ibissource/ibis-ladybug has been changed, check the success or failure of our Jenkins test that runs on an on-premise server. That test checks the build of project ibis-ladybug.
When the master of wearefrank/ibis-ladybug has been changed, check the success or failure of our Jenkins test that runs on an on-premise server. That test checks the build of project ibis-ladybug.

### Update the front-end

When updating the front-end, work on a branch that is allowed to live on a fork of the ladybug-frontend project. The Cypress test is executed for every commit. If you turn your work into a pull request, the success or failure status of the Cypress test will be shown in the pull request. As long as the updated front-end code is not referenced by the ibis-ladybug project, it is not part of Ladybug.

### Update front-end and backend

Update the front-end and the backend simultaneously on your development PC. The front-end changes will fail in CI/CD because they are tested against the master of the backend. Rely on the Cypress test on your development PC and on the Maven build of ibis-ladybug to test your work. When you trust your work, release the front-end in a WebJar as explained in [Create and publish NPM package and WebJar](#create-and-publish-npm-package-and-webjar). Please note that the released commit may live on another branch than master. Ensure that the commit and the tag are pushed to GitHub project ibissource/ladybug-frontend. Then update `pom.xml` of ibis-ladybug to reference the new WebJar; do so on a branch pushed to ibissource/ibis-ladybug. This update of the backend triggers the GitHub actions front-end test as explained earlier. Check that the latest run of the front-end test succeeds.
Update the front-end and the backend simultaneously on your development PC. The front-end changes will fail in CI/CD because they are tested against the master of the backend. Rely on the Cypress test on your development PC and on the Maven build of ibis-ladybug to test your work. When you trust your work, release the front-end in a WebJar as explained in [Create and publish NPM package and WebJar](#create-and-publish-npm-package-and-webjar). Please note that the released commit may live on another branch than master. Ensure that the commit and the tag are pushed to GitHub project wearefrank/ladybug-frontend. Then update `pom.xml` of ibis-ladybug to reference the new WebJar; do so on a branch pushed to wearefrank/ibis-ladybug. This update of the backend triggers the GitHub actions front-end test as explained earlier. Check that the latest run of the front-end test succeeds.

At this point, you can merge your work on ibis-ladybug to its master branch. After this merge, additional pushes on your ladybug-frontend branch will succeed in CI/CD because the corresponding backend changes are in the backend master. You can merge your front-end changes to master if the GitHub actions test succeeds.
4 changes: 2 additions & 2 deletions src/main/java/nl/nn/testtool/Inject.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
Copyright 2023 WeAreFrank!
Copyright 2024 WeAreFrank!
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand All @@ -17,7 +17,7 @@

/**
* The pom.xml will replace javax.inject.Inject to this dummy to prevent problems with WebSphere when Enable-CDI is not
* set to false (see also: https://github.com/ibissource/iaf/pull/4211/files):
* set to false (see also: https://github.com/frankframework/frankframework/pull/4211/files):
* <pre>
* com.ibm.ws.exception.RuntimeWarning: com.ibm.ws.exception.RuntimeError: com.ibm.ws.exception.RuntimeError: java.lang.RuntimeException: com.ibm.ws.cdi.CDIRuntimeException: com.ibm.ws.cdi.CDIDeploymentRuntimeException: org.jboss.weld.exceptions.DeploymentException: Exception List with 6 exceptions:
* Exception 0 :
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/nl/nn/testtool/Report.java
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,10 @@ public class Report implements Serializable {
// exception. In the case Java isn't able to read the older version it will
// throw an exception, hence no reason either to force throwing an
// exception. The serialVersionUID also only effects reading objects through
// ObjectInputStream, it doesn't effect reading objects through XMLDecoder.
private transient static final long serialVersionUID = 5;
private transient static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
protected transient static final long TIME_NOT_SET_VALUE = Long.MIN_VALUE;
// ObjectInputStream, it doesn't affect reading objects through XMLDecoder.
private static final transient long serialVersionUID = 5;
private static final transient Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
protected static final transient long TIME_NOT_SET_VALUE = Long.MIN_VALUE;
// Please note that the set method should return void for XmlEncoder to
// store the property (hence the setVariableCsvWithoutException method)
private long startTime;
Expand Down Expand Up @@ -560,7 +560,7 @@ private <T> T addCheckpoint(String threadName, String sourceClassName, String n
// fixed). Keep the following code for now and remove it somewhere in the future
String warning = "Ladybug adjustment of checkpoint index to prevent IndexOutOfBoundsException."
+ " For unknown reason index is " + index + " while checkpoints size is " + checkpoints.size() + "."
+ " Please create an issue at https://github.com/ibissource/ibis-ladybug/issues/new\n"
+ " Please create an issue at https://github.com/wearefrank/ladybug/issues/new\n"
+ getThreadInfo();
log.warn(warning);
Checkpoint warningCheckpoint = new Checkpoint(this, threadName, this.getClass().getCanonicalName(),
Expand Down

0 comments on commit d0aabcc

Please sign in to comment.