* fix the E2E bug when running locally with multiple `docker-compose.yml` files #5443
* add documents for the for local remote debugging.
Co-authored-by: kezhenxu94 <kezhenxu94@apache.org>
Motivation:
According the feedback from the community, the e2e tests are hard for
them to understand and get them started, so this pull request aims to
rewrite the e2e tests with some improvements:
- debuggable locally, now you can run every individual case directly
inside the IDE, just like running a plain unit test.
- same functionalities of multiple counterparts share the same codes,
cases like different storages and cluster coordinators share the same
codes, easy to add more similar cases.
- the "end" now extends to the Doccker images, meaning that some bugs
like #4483 and #4471 can be more easily and early to be discovered.
- codes style and license headers are checked
Modifications:
- adopt jupeter (a.k.a junit 5), testcontainers as the new test
framework, all containers are orchestrated by docker-compose.yml,
well-known technology that developers should be familiar with.
- rewrite all test cases and verify them.
- reorganize the workflows in GitHub Actions.
Result:
- new e2e test should be easy to add.
- closes https://github.com/apache/skywalking/issues/4472
* Change OAL generator tool to runtime.
Step 1. change project structure. API links and maven pom.
* Part of metrics class generation
* Metrcis class generated.
* Set up the basic structure of new OAL engine.
* Finish metrics generation.
* Support dispatcher generation.
* Format codes.
* Generate dispatcher all methods.
* Implement disable in hardcode.
* Clear up
* Fix compile startup.
* Update license and document of new OAL engine.
* Fix rat.
* Disable class output in default
* Copy from @kezhenxu94 's test PR, https://github.com/apache/skywalking/pull/3110
* Wait for the mount command to finish
* Make scope meta configurable.
* Fix test cases in ci.
* Change step 1
* Refactor step 2
* Other compile issue done. Prepare the generator changes.
* Revert some wrong changes to Istio receiver.
* Step 3, make compile pass.
* Try to make CI passed.
* Add a check.
* Fix generated code style
* Provide new and extendable dispatcher generator tool
* Fix startup.
* Can't guarantee the dispatchers are always existing. Put explicit comments at there to avoid confusion, since this is different with old version.
* Fix a H2 query for endpoint search.
* Fix a wrong mysql alarm query.
* Provide new document and `generate-tool-grammer` module.
* Add missing last section of document.
* Fix typo
* Relocate the @ScopeDeclaration annotation, make it more sense. Also remove the useless @SourceType annotation. And adjust document for these changes
* ScopeDeclaration can be used once for each class only, now.
* Move oal tool back into main repo, and fix compile issue.
* Fix two bugs.
* Remove all generated codes.
* Make all oal generated codes out of source control.
* Make mvn compile and package work.
* Fix test cases.
* Make compile right and provide new documents.
* Remove an unnecessary tokens file.