Thanks Luca, I think we could try getting started with this by doing #2 or #3 and then, investigate what/if any stuff, we can contribute to Test Containers.
As far as I know, they have some restrictions to what they accept. An important one is that they only accept TestContainers with official images (which rule out a few of ours) and this rules out a few of those that we have (ie.: Artemis, Qpid Interconnect, Apache Hadoop, etc). We would need Apache to start to provide official images for those otherwise they wouldn't accept it. So, I think that's the biggest barrier for #1. If that's OK, I will send a PR with a proposal for moving the current ones in Camel Kafka Connector to Camel. Something along the lines of strategy #2 and #3. Kind regards On Wed, Sep 16, 2020 at 9:29 AM Luca Burgazzoli <lburgazz...@gmail.com> wrote: > Hi Otavio, > > as you know, big +1 on that idea. > > As a strategy I'm thinking about: > > 1. try to contribute to TestContainers to make it easy to configure some > common tasks the implementations they ship and eventually provide some new > ones. > 2. create some new modules, don't ask me for a name, with the core > infrastructure code and some specific impl. > 3. see if we can easily hook such service in the camel-test* and eventually > deprecate camel-testcontainers* > > --- > Luca Burgazzoli > > > On Fri, Sep 11, 2020 at 3:49 PM Otavio Rodolfo Piske <angusyo...@gmail.com > > > wrote: > > > Hello everyone! > > > > Luca B, Andrea T. and I had a brief discussion / brainstorm today about > > adjusting part of our testing infrastructure code so that it is easier > for > > all the projects to levage testing bits used throughout the project. The > > issue that led to this idea can be found here [1]. > > > > As it is common these days, a lot of projects use TestContainers [2] to > set > > up the test infrastructure required for the tests to run. This is how the > > integration tests for the Camel Kafka Connector work [3]. > > > > In the Camel Kafka Connector, the test infrastructure contains > > "AbstractServices". They can be resolved either to containers managed by > > TestContainers or remote instances of the services. These services are > > injected into the test code using JUnit 5 extensions. It uses a generic > > approach and it is not tightly coupled to Kafka Connect or the Camel > Kafka > > Connector project. > > > > In more concrete terms, the idea is to make this test infrastructure more > > easily accessible for other projects. This would involve moving this code > > to another project (Camel? Where?), adjusting the few parts that may be > > coupled (if any at all) and moving the part of the testing documentation > > [4] (check the "Simulating the Test Infrastructure" part). > > > > A few potential benefits of this idea are reducing our effort in handling > > the test infrastructure throughout the code base and simplifying how we > > assert the behavior of each project for each infrastructure (ie.: we may > > want to make sure that components behave the same way across all > projects). > > > > What do you think? > > > > 1. https://github.com/apache/camel-quarkus/issues/1783 > > 2. https://www.testcontainers.org/ > > 3. https://github.com/apache/camel-kafka-connector/tree/master/tests > > 4. https://camel.apache.org/camel-kafka-connector/latest/testing.html > > > > Kind regards > > -- > > Otavio R. Piske > > http://orpiske.net > > > -- Otavio R. Piske http://orpiske.net