This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 57a3b376a3e camel-test-infra-ftp: rework to simplify reusing the FTP
server instance
57a3b376a3e is described below
commit 57a3b376a3ec7c423e344900e5428a6162135f80
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Tue Sep 6 13:42:22 2022 +0200
camel-test-infra-ftp: rework to simplify reusing the FTP server instance
---
.../embedded/EmbeddedConfigurationBuilder.java | 16 +++++++---
.../ftp/services/embedded/FtpEmbeddedService.java | 34 ++++++++++++----------
.../ftp/services/embedded/FtpsEmbeddedService.java | 28 +++++++++---------
3 files changed, 45 insertions(+), 33 deletions(-)
diff --git
a/test-infra/camel-test-infra-ftp/src/test/java/org/apache/camel/test/infra/ftp/services/embedded/EmbeddedConfigurationBuilder.java
b/test-infra/camel-test-infra-ftp/src/test/java/org/apache/camel/test/infra/ftp/services/embedded/EmbeddedConfigurationBuilder.java
index 6de21d38227..74809785d65 100644
---
a/test-infra/camel-test-infra-ftp/src/test/java/org/apache/camel/test/infra/ftp/services/embedded/EmbeddedConfigurationBuilder.java
+++
b/test-infra/camel-test-infra-ftp/src/test/java/org/apache/camel/test/infra/ftp/services/embedded/EmbeddedConfigurationBuilder.java
@@ -108,7 +108,7 @@ public final class EmbeddedConfigurationBuilder {
return embeddedConfiguration;
}
- public static EmbeddedConfiguration defaultConfiguration() {
+ public static EmbeddedConfigurationBuilder defaultConfigurationTemplate() {
final EmbeddedConfiguration.User.UserInfo writableUser = new
EmbeddedConfiguration.User.UserInfo(null, true);
final EmbeddedConfiguration.User.UserInfo nonWritableUser = new
EmbeddedConfiguration.User.UserInfo(null, false);
@@ -124,10 +124,14 @@ public final class EmbeddedConfigurationBuilder {
.withAdmin("admin", null, null)
.withServerAddress("localhost");
- return builder.embeddedConfiguration;
+ return builder;
}
- public static EmbeddedConfiguration defaultFtpsConfiguration() {
+ public static EmbeddedConfiguration defaultConfiguration() {
+ return defaultConfigurationTemplate().build();
+ }
+
+ public static EmbeddedConfigurationBuilder
defaultFtpsConfigurationTemplate() {
final EmbeddedConfiguration.User.UserInfo writableUser = new
EmbeddedConfiguration.User.UserInfo(null, true);
final EmbeddedConfiguration.User.UserInfo nonWritableUser = new
EmbeddedConfiguration.User.UserInfo(null, false);
@@ -147,7 +151,11 @@ public final class EmbeddedConfigurationBuilder {
.withKeyStoreType("JKS")
.withKeyStoreAlgorithm("SunX509");
- return builder.embeddedConfiguration;
+ return builder;
+ }
+
+ public static EmbeddedConfiguration defaultFtpsConfiguration() {
+ return defaultFtpsConfigurationTemplate().build();
}
public static EmbeddedConfiguration defaultSftpConfiguration() {
diff --git
a/test-infra/camel-test-infra-ftp/src/test/java/org/apache/camel/test/infra/ftp/services/embedded/FtpEmbeddedService.java
b/test-infra/camel-test-infra-ftp/src/test/java/org/apache/camel/test/infra/ftp/services/embedded/FtpEmbeddedService.java
index 37be2214916..d127e9cb85c 100644
---
a/test-infra/camel-test-infra-ftp/src/test/java/org/apache/camel/test/infra/ftp/services/embedded/FtpEmbeddedService.java
+++
b/test-infra/camel-test-infra-ftp/src/test/java/org/apache/camel/test/infra/ftp/services/embedded/FtpEmbeddedService.java
@@ -55,22 +55,25 @@ public class FtpEmbeddedService extends AbstractTestService
implements FtpServic
protected int port;
protected Path rootDir;
- private final EmbeddedConfiguration embeddedConfiguration;
+ private final EmbeddedConfigurationBuilder embeddedConfigurationTemplate;
@Deprecated
public FtpEmbeddedService() {
- embeddedConfiguration =
EmbeddedConfigurationBuilder.defaultConfiguration();
+ this(EmbeddedConfigurationBuilder.defaultConfigurationTemplate());
}
- protected FtpEmbeddedService(EmbeddedConfiguration embeddedConfiguration) {
- this.embeddedConfiguration = embeddedConfiguration;
+ protected FtpEmbeddedService(EmbeddedConfigurationBuilder
embeddedConfigurationTemplate) {
+ this.embeddedConfigurationTemplate = embeddedConfigurationTemplate;
}
public void setUp() throws Exception {
+
embeddedConfigurationTemplate.withTestDirectory(context.getDisplayName());
+ EmbeddedConfiguration embeddedConfiguration =
embeddedConfigurationTemplate.build();
+
rootDir =
testDirectory().resolve(embeddedConfiguration.getTestDirectory());
FileUtils.deleteDirectory(rootDir.toFile());
- FtpServerFactory factory = createFtpServerFactory();
+ FtpServerFactory factory =
createFtpServerFactory(embeddedConfiguration);
ftpServer = factory.createServer();
ftpServer.start();
@@ -98,7 +101,7 @@ public class FtpEmbeddedService extends AbstractTestService
implements FtpServic
}
}
- protected FtpServerFactory createFtpServerFactory() {
+ protected FtpServerFactory createFtpServerFactory(EmbeddedConfiguration
embeddedConfiguration) {
NativeFileSystemFactory fsf = new NativeFileSystemFactory();
fsf.setCreateHome(true);
@@ -115,14 +118,17 @@ public class FtpEmbeddedService extends
AbstractTestService implements FtpServic
createUser(userMgr, user.getUsername(), user.getPassword(),
homeDir, userInfo.isWritePermission());
}
- ListenerFactory factory = new ListenerFactory();
- factory.setPort(port);
-
FtpServerFactory serverFactory = new FtpServerFactory();
serverFactory.setUserManager(userMgr);
serverFactory.setFileSystem(fsf);
serverFactory.setConnectionConfig(new
ConnectionConfigFactory().createConnectionConfig());
- serverFactory.addListener(DEFAULT_LISTENER, factory.createListener());
+
+ ListenerFactory factory = new ListenerFactory();
+ factory.setPort(port);
+ factory.setServerAddress(embeddedConfiguration.getServerAddress());
+ final Listener listener = factory.createListener();
+
+ serverFactory.addListener(DEFAULT_LISTENER, listener);
return serverFactory;
}
@@ -159,7 +165,9 @@ public class FtpEmbeddedService extends AbstractTestService
implements FtpServic
@Override
protected void registerProperties(BiConsumer<String, String> store) {
- store.accept(FtpProperties.SERVER_HOST,
embeddedConfiguration.getServerAddress());
+ final String host = ((DefaultFtpServer)
ftpServer).getListeners().values().stream()
+ .map(Listener::getServerAddress).findAny().get();
+ store.accept(FtpProperties.SERVER_HOST, host);
store.accept(FtpProperties.SERVER_PORT, String.valueOf(getPort()));
store.accept(FtpProperties.ROOT_DIR, rootDir.toString());
}
@@ -193,8 +201,4 @@ public class FtpEmbeddedService extends AbstractTestService
implements FtpServic
return count;
}
-
- public EmbeddedConfiguration getEmbeddedConfiguration() {
- return embeddedConfiguration;
- }
}
diff --git
a/test-infra/camel-test-infra-ftp/src/test/java/org/apache/camel/test/infra/ftp/services/embedded/FtpsEmbeddedService.java
b/test-infra/camel-test-infra-ftp/src/test/java/org/apache/camel/test/infra/ftp/services/embedded/FtpsEmbeddedService.java
index de2f99cc120..4f24afd41e9 100644
---
a/test-infra/camel-test-infra-ftp/src/test/java/org/apache/camel/test/infra/ftp/services/embedded/FtpsEmbeddedService.java
+++
b/test-infra/camel-test-infra-ftp/src/test/java/org/apache/camel/test/infra/ftp/services/embedded/FtpsEmbeddedService.java
@@ -33,7 +33,7 @@ public class FtpsEmbeddedService extends FtpEmbeddedService {
private boolean clientAuth;
public FtpsEmbeddedService(boolean useImplicit, String authValue, boolean
clientAuth) {
- super(EmbeddedConfigurationBuilder.defaultFtpsConfiguration());
+ super(EmbeddedConfigurationBuilder.defaultFtpsConfigurationTemplate());
this.useImplicit = useImplicit;
this.authValue = authValue;
@@ -41,39 +41,39 @@ public class FtpsEmbeddedService extends FtpEmbeddedService
{
}
@Override
- protected FtpServerFactory createFtpServerFactory() {
- FtpServerFactory serverFactory = super.createFtpServerFactory();
+ protected FtpServerFactory createFtpServerFactory(EmbeddedConfiguration
embeddedConfiguration) {
+ FtpServerFactory serverFactory =
super.createFtpServerFactory(embeddedConfiguration);
ListenerFactory listenerFactory = new
ListenerFactory(serverFactory.getListener(DEFAULT_LISTENER));
listenerFactory.setPort(port);
listenerFactory.setImplicitSsl(useImplicit);
-
listenerFactory.setSslConfiguration(createSslConfiguration().createSslConfiguration());
+
listenerFactory.setSslConfiguration(createSslConfiguration(embeddedConfiguration).createSslConfiguration());
serverFactory.addListener(DEFAULT_LISTENER,
listenerFactory.createListener());
return serverFactory;
}
- protected SslConfigurationFactory createSslConfiguration() {
+ protected SslConfigurationFactory
createSslConfiguration(EmbeddedConfiguration embeddedConfiguration) {
// comment in, if you have trouble with SSL
// System.setProperty("javax.net.debug", "all");
SslConfigurationFactory sslConfigFactory = new
SslConfigurationFactory();
sslConfigFactory.setSslProtocol(authValue);
- sslConfigFactory.setKeystoreFile(new
File(getEmbeddedConfiguration().getKeyStore()));
-
sslConfigFactory.setKeystoreType(getEmbeddedConfiguration().getKeyStoreType());
-
sslConfigFactory.setKeystoreAlgorithm(getEmbeddedConfiguration().getKeyStoreAlgorithm());
-
sslConfigFactory.setKeystorePassword(getEmbeddedConfiguration().getKeyStorePassword());
-
sslConfigFactory.setKeyPassword(getEmbeddedConfiguration().getKeyStorePassword());
+ sslConfigFactory.setKeystoreFile(new
File(embeddedConfiguration.getKeyStore()));
+
sslConfigFactory.setKeystoreType(embeddedConfiguration.getKeyStoreType());
+
sslConfigFactory.setKeystoreAlgorithm(embeddedConfiguration.getKeyStoreAlgorithm());
+
sslConfigFactory.setKeystorePassword(embeddedConfiguration.getKeyStorePassword());
+
sslConfigFactory.setKeyPassword(embeddedConfiguration.getKeyStorePassword());
sslConfigFactory.setClientAuthentication(authValue);
if (clientAuth) {
- sslConfigFactory.setTruststoreFile(new
File(getEmbeddedConfiguration().getKeyStore()));
-
sslConfigFactory.setTruststoreType(getEmbeddedConfiguration().getKeyStoreType());
-
sslConfigFactory.setTruststoreAlgorithm(getEmbeddedConfiguration().getKeyStoreAlgorithm());
-
sslConfigFactory.setTruststorePassword(getEmbeddedConfiguration().getKeyStorePassword());
+ sslConfigFactory.setTruststoreFile(new
File(embeddedConfiguration.getKeyStore()));
+
sslConfigFactory.setTruststoreType(embeddedConfiguration.getKeyStoreType());
+
sslConfigFactory.setTruststoreAlgorithm(embeddedConfiguration.getKeyStoreAlgorithm());
+
sslConfigFactory.setTruststorePassword(embeddedConfiguration.getKeyStorePassword());
}
return sslConfigFactory;