Commit Graph

124 Commits

Author SHA1 Message Date
Phillip Webb
905d6b96d0 Merge branch '3.2.x'
Closes gh-41166
2024-06-19 22:30:58 -07:00
Andy Wilkinson
491f34d25c Improve container test code
Replace `DockerImageNames` with a enum and relocate it from the
`testcontainers` to `container` package. The enum now also
becomes a common location that we can use to apply container
configuration such as timeouts.

Closes gh-41164

Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
2024-06-19 20:10:03 -07:00
Andy Wilkinson
e10066a83f Merge branch '3.2.x'
Closes gh-41125
2024-06-17 11:43:29 +01:00
Andy Wilkinson
138307c13c Disable test context cache in spring-boot-testcontainers
Closes gh-41124
2024-06-17 11:43:00 +01:00
Phillip Webb
147240aa0c Merge branch '3.2.x'
Closes gh-41080
2024-06-11 13:32:30 -07:00
Ahmed Ashour
207327d97c Use method references when possible in test code
See gh-40974
2024-06-11 12:58:00 -07:00
Phillip Webb
255bcc28e6 Merge branch '3.2.x'
Closes gh-41077
2024-06-11 10:48:52 -07:00
Phillip Webb
ecc9a2352d Polish "Use constructor rather than Collection.addAll"
See gh-41053
2024-06-11 10:02:27 -07:00
Piyal Ahmed
17adcfc180 Use constructor rather than Collection.addAll
See gh-41053
2024-06-11 09:39:45 -07:00
Andy Wilkinson
d05d0105db Merge branch '3.2.x' 2024-05-22 17:02:37 +01:00
Andy Wilkinson
35fb54a4d3 Polish deprecation notice 2024-05-22 17:02:29 +01:00
Andy Wilkinson
7bec440d03 Merge branch '3.2.x' 2024-05-22 09:58:37 +01:00
Andy Wilkinson
d340f87c22 Disable test when Docker is not available
See gh-40585
2024-05-22 09:58:23 +01:00
Andy Wilkinson
2d979bf06e Merge branch '3.2.x'
Closes gh-40863
2024-05-22 09:16:57 +01:00
Andy Wilkinson
468e246dbb Make sure container's started before connection details use it
Prior to this commit, a Testcontainer that was managed as a bean
would not have been started in time if it was accessed before
the bean factory's configuration had been frozen. A common way
for this to occur is when using JPA. The entity manager factory
bean is LoadTimeWeaverAware which causes it to be created before
configuration is frozen. Creating this bean requires the DataSource
which in turn requires the JdbcConnectionDetails and its JDBC URL.
Getting the JDBC URL From the connection details requires the
container hosting the SQL database to have been started.

This commit updates ContainerConnectionDetails, the super-class for
all Testcontainer-based ConnectionDetails implementations, to publish
an event when the Container is retrieved from the details. When this
event is published, TestcontainersLifecycleBeanPostProcessor
initializes all containers that are defined as beans.

Closes gh-40585
2024-05-22 09:15:21 +01:00
Andy Wilkinson
8b3c808ae6 Polish 2024-05-20 15:08:45 +01:00
Andy Wilkinson
921e459eb5 Merge branch '3.2.x'
Closes gh-40835
2024-05-20 13:12:22 +01:00
Andy Wilkinson
f440f2c3ac Merge branch '3.1.x' into 3.2.x
Closes gh-40834
2024-05-20 13:12:03 +01:00
Andy Wilkinson
f5262d89df Add missing Testcontainers service connection tests
Closes gh-35039
2024-05-20 13:02:24 +01:00
Scott Frederick
add22c399a Merge branch '3.2.x'
Closes gh-40509
2024-04-24 15:10:08 -05:00
Scott Frederick
3e2d151c0e Merge branch '3.1.x' into 3.2.x
Closes gh-40508
2024-04-24 15:08:50 -05:00
Scott Frederick
f210d83062 Don't reuse Testcontainers containers if reuse is globally disabled
Fixes gh-39609
2024-04-24 14:37:59 -05:00
Phillip Webb
6963bd884b Merge branch '3.2.x' 2024-04-18 12:53:26 -07:00
Matt Pavlovich
af18a69d54 Use activemq-client instead of transitional activemq-client-jakarta
See gh-40028
2024-03-20 11:02:01 +00:00
Johnny Lim
412b8dd548 Polish
See gh-39910
2024-03-15 11:25:16 +01:00
Phillip Webb
f8a1dae835 Merge branch '3.2.x' 2024-02-21 15:27:57 -08:00
Phillip Webb
12de6aa46a Merge branch '3.1.x' into 3.2.x 2024-02-21 15:27:27 -08:00
Moritz Halbritter
7f55cae90f Merge branch '3.2.x' 2024-02-12 10:19:46 +01:00
Moritz Halbritter
4387b79831 Merge branch '3.1.x' into 3.2.x 2024-02-12 10:18:46 +01:00
Moritz Halbritter
8ffcfc9b77 Harmonize style of igored exceptions across the codebase 2024-02-12 10:14:20 +01:00
Scott Frederick
533f6c3bb1 Refactor TestcontainersPropertySource to use MapPropertySource
Closes gh-39330
2024-02-09 10:23:55 -06:00
Scott Frederick
8c91b094ee Merge branch '3.2.x'
Closes gh-39450
2024-02-07 16:49:49 -06:00
Scott Frederick
6b453cedf6 Merge branch '3.1.x' into 3.2.x
Closes gh-39449
2024-02-07 16:49:29 -06:00
Amrit
67ba829d9e Fix typo in TestcontainersPropertySource assertion
See gh-39440
2024-02-07 16:45:39 -06:00
Eddú Meléndez
f3e7325064 Add service connection for Docker Compose and Testcontainers ActiveMQ
See gh-39363
2024-02-02 09:05:37 +01:00
Eddú Meléndez
f15cd93a35 Add service connection for Docker Compose and Testcontainers Artemis
See gh-39311
2024-01-31 08:37:03 +01:00
Andy Wilkinson
f4cd903410 Merge branch '3.2.x'
Closes gh-39346
2024-01-30 16:48:43 +00:00
Andy Wilkinson
61ca87f7a4 Polish "Prevent double registration of event publisher registrar"
See gh-39297
2024-01-30 16:02:38 +00:00
tish
50c44e301a Prevent double registration of event publisher registrar
See gh-39297
2024-01-30 15:59:05 +00:00
Scott Frederick
bee6fe899c Polish "Add Docker Compose service connection support for OpenLDAP"
See gh-39258
2024-01-22 16:51:45 -06:00
PhilKes
eb940c3907 Add Docker Compose service connection support for OpenLDAP
See gh-39258
2024-01-22 16:51:45 -06:00
Phillip Webb
cff8cb98c7 Merge branch '3.1.x' into 3.2.x 2024-01-22 12:20:24 -08:00
Phillip Webb
88a8550609 Make OTEL tstcontainers integration test more resilient
Tweak awaitility assertions to fix timing error that often occurs on
local builds.
2024-01-16 10:49:25 -08:00
Phillip Webb
89874d351a Ensure containers are started before binding datasource properties
Update `TestcontainersLifecycleBeanPostProcessor` so that containers
are now initialized either on the first `postProcessAfterInitialization`
call with a frozen configuration or just before a test container
property is supplied.

Prior to this commit, it was assumed that the first post-process call
after the configuration was frozen was suitably early to initialize
the containers. This turns out to not be no always the case.

Specifically, in the `finishBeanFactoryInitialization` method of
`AbstractApplicationContext` we see that `LoadTimeWeaverAware` beans
are obtained before the configuration is frozen. One such bean is
`DefaultPersistenceUnitManager` which is likely to need datasource
properties that will require a started container.

To fix the problem, the `TestcontainersPropertySource` now publishes
a `BeforeTestcontainersPropertySuppliedEvent` to the ApplicationContext
just before any value is supplied. By listening for this event, we can
ensure that containers are initialized and started before any dynamic
property is read.

Fixes gh-38913
2024-01-16 10:36:54 -08:00
Andy Wilkinson
7087897507 Merge branch '3.1.x' into 3.2.x
Closes gh-39091
2024-01-11 10:33:57 +00:00
Phillip Webb
5354ad15b3 Merge branch '3.1.x'
Closes gh-38877
2023-12-19 22:51:48 -08:00
Yanming Zhou
d3a51e56b7 Remove unnecessary static modifiers
See gh-38739
2023-12-19 22:38:08 -08:00
Phillip Webb
561c7f749b Don't start containers imported via @ImportTestcontainers
Remove early start of containers imported via `@ImportTestcontainers`
so that parallel startup can happen.

Fixes gh-38831
2023-12-17 15:22:28 -08:00
Phillip Webb
6ae113c18a Fix parallel startup of testcontainers
Update `TestcontainersLifecycleBeanPostProcessor` so that containers
can actually be started in parallel.

Prior to this commit, `initializeStartables` would collect beans
and in the process trigger the `postProcessAfterInitialization` method
on each bean. This would see that  `startablesInitialized` was `true`
and call `startableBean.start` directly. The result of this was that
beans were actually started sequentially and when the `start` method
was finally called it had nothing to do.

The updated code uses an enum rather than a boolean so that the
`postProcessAfterInitialization` method no longer attempts to start
beans unless `initializeStartables` has finished.

Fixes gh-38831
2023-12-16 21:57:16 -08:00
Phillip Webb
6c3dec42e0 Add container support for Oracle Free which replaces Oracle XE
Update Docker Compose and Testcontainers support to work with
`gvenzl/oracle-free` which replaces `gvenzl/oracle-xe`.

Closes gh-38476
2023-11-21 11:51:59 -08:00