Skip to content

Commit e6d6525

Browse files
authored
Merge pull request #343 from xdev-software/develop
Release
2 parents de8336b + 4d6536e commit e6d6525

File tree

28 files changed

+415
-81
lines changed

28 files changed

+415
-81
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# 2.4.1
2+
* Fixed random "recursive update during ServiceLoading" exception #342
3+
14
# 2.4.0
25
* ``oidc-server-mock``
36
* Improved extensibility by creating abstract base classes

advanced-demo/integration-tests/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
<dependency>
8787
<groupId>software.xdev</groupId>
8888
<artifactId>testcontainers-advanced-imagebuilder</artifactId>
89-
<version>2.0.2</version>
89+
<version>2.2.0</version>
9090
</dependency>
9191

9292
<!-- Utility for proxies in tests -->

advanced-demo/integration-tests/tci-webapp/src/main/java/software/xdev/tci/demo/tci/webapp/containers/WebAppContainerBuilder.java

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
package software.xdev.tci.demo.tci.webapp.containers;
22

3+
import java.io.IOException;
4+
import java.nio.file.Path;
35
import java.nio.file.Paths;
6+
import java.util.List;
47
import java.util.concurrent.TimeUnit;
58
import java.util.concurrent.TimeoutException;
69

10+
import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
711
import org.slf4j.Logger;
812
import org.slf4j.LoggerFactory;
913

1014
import software.xdev.testcontainers.imagebuilder.AdvancedImageFromDockerFile;
1115
import software.xdev.testcontainers.imagebuilder.compat.DockerfileCOPYParentsEmulator;
16+
import software.xdev.testcontainers.imagebuilder.transfer.fcm.FileLinesContentModifier;
1217

1318

1419
@SuppressWarnings("PMD.MoreThanOneLogger")
@@ -60,7 +65,40 @@ public static synchronized String getBuiltImageName()
6065
.withBaseDir(Paths.get("../../"))
6166
// File is in root directory - we can't access it
6267
.withBaseDirRelativeIgnoreFile(null)
63-
.withDockerFileLinesModifier(new DockerfileCOPYParentsEmulator());
68+
.withDockerFileLinesModifier(new DockerfileCOPYParentsEmulator())
69+
.withTransferArchiveTARCompressorCustomizer(c -> c
70+
// Rewrite parent pom to exclude integration tests
71+
// This way changes in test pom's cause no redownload of dependencies
72+
.withContentModifier(new FileLinesContentModifier()
73+
{
74+
@Override
75+
public boolean shouldApply(
76+
final Path sourcePath,
77+
final String targetPath,
78+
final TarArchiveEntry tarArchiveEntry)
79+
{
80+
return "pom.xml".equals(targetPath);
81+
}
82+
83+
@Override
84+
public List<String> modify(
85+
final List<String> lines,
86+
final Path sourcePath,
87+
final String targetPath,
88+
final TarArchiveEntry tarArchiveEntry) throws IOException
89+
{
90+
return lines.stream()
91+
// Remove integration tests module
92+
.filter(s -> !s.contains("<module>integration-tests"))
93+
.toList();
94+
}
95+
96+
@Override
97+
public boolean isIdentical(final List<String> original, final List<String> created)
98+
{
99+
return original.size() == created.size();
100+
}
101+
}));
64102

65103
try
66104
{

advanced-demo/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
2222
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
2323

24-
<org.springframework.boot.version>3.5.3</org.springframework.boot.version>
24+
<org.springframework.boot.version>3.5.4</org.springframework.boot.version>
2525
</properties>
2626

2727
<modules>
@@ -236,12 +236,12 @@
236236
<dependency>
237237
<groupId>net.sourceforge.pmd</groupId>
238238
<artifactId>pmd-core</artifactId>
239-
<version>7.15.0</version>
239+
<version>7.16.0</version>
240240
</dependency>
241241
<dependency>
242242
<groupId>net.sourceforge.pmd</groupId>
243243
<artifactId>pmd-java</artifactId>
244-
<version>7.15.0</version>
244+
<version>7.16.0</version>
245245
</dependency>
246246
</dependencies>
247247
</plugin>

base-demo/src/test/java/software/xdev/tci/factory/prestart/PreStartDemoTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import software.xdev.tci.dummyinfra.factory.DummyTCIFactory;
1010
import software.xdev.tci.factory.prestart.config.PreStartConfig;
1111
import software.xdev.tci.factory.registry.TCIFactoryRegistry;
12-
import software.xdev.tci.serviceloading.TCIServiceLoader;
12+
import software.xdev.tci.serviceloading.TCIServiceLoaderHolder;
1313

1414

1515
class PreStartDemoTest
@@ -23,7 +23,8 @@ class PreStartDemoTest
2323
static void beforeAll()
2424
{
2525
// Force enable PreStarting
26-
TCIServiceLoader.instance().forceOverwrite(PreStartConfig.class, new PreStartConfig()
26+
TCIServiceLoaderHolder.instance().forceOverwrite(
27+
PreStartConfig.class, new PreStartConfig()
2728
{
2829
@Override
2930
public boolean enabled()

base/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@
250250
<plugin>
251251
<groupId>org.codehaus.mojo</groupId>
252252
<artifactId>flatten-maven-plugin</artifactId>
253-
<version>1.7.1</version>
253+
<version>1.7.2</version>
254254
<configuration>
255255
<flattenMode>ossrh</flattenMode>
256256
</configuration>
@@ -355,12 +355,12 @@
355355
<dependency>
356356
<groupId>net.sourceforge.pmd</groupId>
357357
<artifactId>pmd-core</artifactId>
358-
<version>7.15.0</version>
358+
<version>7.16.0</version>
359359
</dependency>
360360
<dependency>
361361
<groupId>net.sourceforge.pmd</groupId>
362362
<artifactId>pmd-java</artifactId>
363-
<version>7.15.0</version>
363+
<version>7.16.0</version>
364364
</dependency>
365365
</dependencies>
366366
</plugin>

base/src/main/java/software/xdev/tci/envperf/EnvironmentPerformance.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
package software.xdev.tci.envperf;
1717

1818
import software.xdev.tci.envperf.impl.TCIEnvironmentPerformance;
19-
import software.xdev.tci.serviceloading.TCIServiceLoader;
19+
import software.xdev.tci.serviceloading.TCIServiceLoaderHolder;
2020

2121

2222
/**
@@ -34,7 +34,7 @@ public static int cpuSlownessFactor()
3434

3535
public static TCIEnvironmentPerformance impl()
3636
{
37-
return TCIServiceLoader.instance().service(TCIEnvironmentPerformance.class);
37+
return TCIServiceLoaderHolder.instance().service(TCIEnvironmentPerformance.class);
3838
}
3939

4040
private EnvironmentPerformance()

base/src/main/java/software/xdev/tci/factory/prestart/config/PreStartConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616
package software.xdev.tci.factory.prestart.config;
1717

18-
import software.xdev.tci.serviceloading.TCIServiceLoader;
18+
import software.xdev.tci.serviceloading.TCIServiceLoaderHolder;
1919

2020

2121
public interface PreStartConfig
@@ -91,6 +91,6 @@ default boolean detectEndingTests()
9191

9292
static PreStartConfig instance()
9393
{
94-
return TCIServiceLoader.instance().service(PreStartConfig.class);
94+
return TCIServiceLoaderHolder.instance().service(PreStartConfig.class);
9595
}
9696
}

base/src/main/java/software/xdev/tci/factory/prestart/coordinator/GlobalPreStartCoordinator.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
package software.xdev.tci.factory.prestart.coordinator;
1717

1818
import software.xdev.tci.factory.prestart.PreStartableTCIFactory;
19-
import software.xdev.tci.serviceloading.TCIServiceLoader;
19+
import software.xdev.tci.serviceloading.TCIServiceLoaderHolder;
2020

2121

2222
public interface GlobalPreStartCoordinator extends AutoCloseable
@@ -30,11 +30,11 @@ public interface GlobalPreStartCoordinator extends AutoCloseable
3030

3131
static GlobalPreStartCoordinator instance()
3232
{
33-
return TCIServiceLoader.instance().service(GlobalPreStartCoordinator.class);
33+
return TCIServiceLoaderHolder.instance().service(GlobalPreStartCoordinator.class);
3434
}
3535

3636
static boolean isPresent()
3737
{
38-
return TCIServiceLoader.instance().isLoaded(GlobalPreStartCoordinator.class);
38+
return TCIServiceLoaderHolder.instance().isLoaded(GlobalPreStartCoordinator.class);
3939
}
4040
}

base/src/main/java/software/xdev/tci/factory/prestart/loadbalancing/LoadMonitor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
import java.util.OptionalDouble;
1919

20-
import software.xdev.tci.serviceloading.TCIServiceLoader;
20+
import software.xdev.tci.serviceloading.TCIServiceLoaderHolder;
2121

2222

2323
/**
@@ -35,6 +35,6 @@ public interface LoadMonitor
3535

3636
static LoadMonitor instance()
3737
{
38-
return TCIServiceLoader.instance().service(LoadMonitor.class);
38+
return TCIServiceLoaderHolder.instance().service(LoadMonitor.class);
3939
}
4040
}

0 commit comments

Comments
 (0)