I'm ok with deprecating the classes :-) Il ven 8 gen 2021, 08:48 Otavio Rodolfo Piske <angusyo...@gmail.com> ha scritto:
> Just to clarify one point, because I don't want to sound pushy and I may > have misunderstood you. > > I was originally talking about marking as deprecated and suggested a > timeline for removing it. I interpreted your reply as a comment for both > (deprecating and removing). > > If you commented about the deprecation (ie: marking the classes as > deprecated), then, please ignore my reply: I got your point. > > > > > On Fri, Jan 8, 2021 at 8:34 AM Otavio Rodolfo Piske <angusyo...@gmail.com> > wrote: > > > Thanks Andrea. > > > > I was thinking: how about we only mark the classes as deprecated for now? > > Therefore we start to gently encourage users to look at test-infra. > > > > In my original email I mentioned removing them before the next LTS, but, > > indeed, this may be way too soon. > > > > Kind regards > > > > On Thu, Jan 7, 2021 at 2:49 PM Andrea Cosentino <anco...@gmail.com> > wrote: > > > >> I use test-infra stuff even at ckc but before deprecating the > >> testcontainers components I'd like to have feedback from existing > users.. > >> > >> Il mar 5 gen 2021, 11:36 Otavio Rodolfo Piske <angusyo...@gmail.com> ha > >> scritto: > >> > >> > Thanks Claus! That's a good point and I haven't written much - other > >> than > >> > the pre 3.7 release doc update - about it. > >> > > >> > Let me show what a conversion from the camel-testcontainer to > >> > camel-test-infra would look like ... I am using the work on camel-nats > >> as > >> > an example and we can compare how the base test class for nats changed > >> > between 3.6.x [1] and 3.7.x [2]. > >> > > >> > The first conversion step is to replace the camel-testcontainer > >> > dependencies [3] with the ones from the test-infra module [4]. Then, > >> it's > >> > necessary to replace the container handling code and the old base > class > >> [5] > >> > with the service provided in the module. It's important to register it > >> as a > >> > JUnit 5 extension [6]. Then, we replace the ContainerAwareTestSupport > >> (and > >> > similar classes from other camel-testcontainer modules) with > >> > CamelTestSupport (or the spring based one) as it is not needed > anymore. > >> > > >> > The next step is to make sure that addresses (URLs, hostnames, ports, > >> etc) > >> > and resources (usernames, passwords, tokens, etc) referenced during > the > >> > test execution, use the test-infra services. This may differ according > >> to > >> > each service. Replacing the call to get the service URL [7] with the > one > >> > provided by the test infra service [8] is a good example of this. > >> > > >> > This was the bulk of the work for the Camel code base. > >> > > >> > There are a few other cases which may require extra attention/work. > They > >> > were not so common, but to highlight: > >> > > >> > - It may be necessary to adjust the variables used in simple language > >> [9] > >> > so that they match the property format used in the test infra service > >> [10] > >> > (as was the case for camel-consul). > >> > - There are some cases where the container instance requires extra > >> > customization [11]. The code still benefits from the test-infra > >> approach, > >> > but this may be very specific to the test scenario [12] . > >> > > >> > All in all, it's not a significantly complicated task but it's not a > >> > drop-in replacement either. > >> > > >> > I am linking here to the PR which I submitted for the camel-nats > >> conversion > >> > [13] just in case I missed anything. At first sight it may look more > >> > complicated than what I said, but that's because it also contains the > >> > test-infra code for Nats. > >> > > >> > 1. > >> > > >> > > >> > https://github.com/apache/camel/blob/camel-3.6.0/components/camel-nats/src/test/java/org/apache/camel/component/nats/NatsTestSupport.java > >> > 2. > >> > > >> > > >> > https://github.com/apache/camel/blob/camel-3.7.0/components/camel-nats/src/test/java/org/apache/camel/component/nats/NatsTestSupport.java > >> > 3. > >> > > >> > > >> > https://github.com/apache/camel/blob/camel-3.6.0/components/camel-nats/pom.xml#L59-L63 > >> > 4. > >> > > >> > > >> > https://github.com/apache/camel/blob/camel-3.7.0/components/camel-nats/pom.xml#L61-L75 > >> > 5. > >> > > >> > > >> > https://github.com/apache/camel/blob/camel-3.6.0/components/camel-nats/src/test/java/org/apache/camel/component/nats/NatsTestSupport.java#L24-L45 > >> > 6. > >> > > >> > > >> > https://github.com/apache/camel/blob/camel-3.7.0/components/camel-nats/src/test/java/org/apache/camel/component/nats/NatsTestSupport.java#L25-L27 > >> > 7. > >> > > >> > > >> > https://github.com/apache/camel/blob/camel-3.6.0/components/camel-nats/src/test/java/org/apache/camel/component/nats/NatsAuthConsumerLoadTest.java#L38 > >> > 8. > >> > > >> > > >> > https://github.com/apache/camel/blob/camel-3.7.0/components/camel-nats/src/test/java/org/apache/camel/component/nats/NatsAuthConsumerLoadTest.java#L38 > >> > 9. > >> > > >> > > >> > https://github.com/apache/camel/blob/camel-3.6.0/components/camel-consul/src/test/resources/org/apache/camel/component/consul/cloud/SpringConsulRibbonServiceCallRouteTest.xml#L36 > >> > 10. > >> > > >> > > >> > https://github.com/apache/camel/blob/camel-3.7.0/components/camel-consul/src/test/resources/org/apache/camel/component/consul/cloud/SpringConsulRibbonServiceCallRouteTest.xml#L36 > >> > 11. > >> > > >> > > >> > https://github.com/apache/camel/blob/camel-3.6.0/components/camel-pg-replication-slot/src/test/java/org/apache/camel/component/pg/replication/slot/integration/PgReplicationTestSupport.java#L31 > >> > 12. > >> > > >> > > >> > https://github.com/apache/camel/blob/camel-3.7.0/components/camel-pg-replication-slot/src/test/java/org/apache/camel/component/pg/replication/slot/integration/PgReplicationTestSupport.java#L31 > >> > 13. https://github.com/apache/camel/pull/4706/files > >> > > >> > On Tue, Jan 5, 2021 at 10:36 AM Claus Ibsen <claus.ib...@gmail.com> > >> wrote: > >> > > >> > > Hi Otavia > >> > > > >> > > Great work. > >> > > > >> > > Can you maybe tell a bit about what if an end user have used > >> > > camel-testcontainers-junit5 to do his/her own container testing with > >> > > Camel (for example to use their own container image, or for example > a > >> > > database container or something). How would they do that today with > >> > > the test infra? > >> > > > >> > > > >> > > On Tue, Jan 5, 2021 at 9:37 AM Otavio Rodolfo Piske > >> > > <angusyo...@gmail.com> wrote: > >> > > > > >> > > > Hello, > >> > > > > >> > > > as of 3.7.x, all the test infrastructure code that we had was > >> converted > >> > > to > >> > > > use the test-infra modules. > >> > > > > >> > > > This brings several benefits for in terms of maintenance for the > >> test > >> > > code: > >> > > > - we can share more easily, among the sub-projects, the code > >> handling > >> > the > >> > > > test infrastructure. For example: setting up and running message > >> > brokers, > >> > > > databases, cloud simulation containers, etc. > >> > > > - we "outsource" the management of the resources to JUnit 5 and > let > >> it > >> > > > handle the lifecycle, setup, etc ... thus simplifying the test > code. > >> > > > - we can separate the interface from implementation. This allows > us > >> and > >> > > > colleagues running and testing the Camel code to run integration > and > >> > > > interoperability tests more easily. For example, it makes it > >> possible > >> > to > >> > > > run the same tests against remote instances of the said > >> infrastructure. > >> > > > This is very handy for AWS tests, for example, where we can switch > >> to > >> > run > >> > > > the tests from Localstack containers to an actual AWS instance by > >> > simply > >> > > > adjusting the test parameters. It still uses testcontainers under > >> the > >> > > hood, > >> > > > but it is abstracted from the test code. > >> > > > > >> > > > As result of this migration, the code in the following components > >> has > >> > > > become unused within Camel: > >> > > > - camel-testcontainers > >> > > > - camel-testcontainers-junit5 > >> > > > - camel-testcontainers-spring > >> > > > - camel-testcontainers-spring-junit5 > >> > > > > >> > > > I'd like to propose deprecating these components, starting with > 3.8 > >> and > >> > > > then removing them before we release the next LTS. > >> > > > > >> > > > Therefore, I'd like to gather feedback from the community about > >> usage > >> > of > >> > > > those modules, thoughts on the idea and if any roadblock remains. > >> > > > > >> > > > Kind regards > >> > > > -- > >> > > > Otavio R. Piske > >> > > > http://orpiske.net > >> > > > >> > > > >> > > > >> > > -- > >> > > Claus Ibsen > >> > > ----------------- > >> > > http://davsclaus.com @davsclaus > >> > > Camel in Action 2: https://www.manning.com/ibsen2 > >> > > > >> > > >> > > >> > -- > >> > Otavio R. Piske > >> > http://orpiske.net > >> > > >> > > > > > > -- > > Otavio R. Piske > > http://orpiske.net > > > > > -- > Otavio R. Piske > http://orpiske.net >