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 <angusyo...@gmail.com> 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;