This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit 42729370f010c47db442d5e28b022643e3d46b35 Author: Claus Ibsen <[email protected]> AuthorDate: Wed Feb 26 07:42:46 2025 +0100 CAMEL-21800: camel-smb - The scheduler options cannot be configured on the consumer --- .../org/apache/camel/component/smb/SmbEndpoint.java | 19 +++++++++++++++++++ .../smb/strategy/SmbProcessStrategyFactory.java | 4 ---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/components/camel-smb/src/main/java/org/apache/camel/component/smb/SmbEndpoint.java b/components/camel-smb/src/main/java/org/apache/camel/component/smb/SmbEndpoint.java index 3fa0cb493a0..e32226bdbe8 100644 --- a/components/camel-smb/src/main/java/org/apache/camel/component/smb/SmbEndpoint.java +++ b/components/camel-smb/src/main/java/org/apache/camel/component/smb/SmbEndpoint.java @@ -16,6 +16,7 @@ */ package org.apache.camel.component.smb; +import java.util.Arrays; import java.util.Map; import com.hierynomus.msfscc.fileinformation.FileIdBothDirectoryInformation; @@ -39,6 +40,7 @@ import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; import org.apache.camel.support.processor.idempotent.MemoryIdempotentRepository; +import org.apache.camel.util.ObjectHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -149,14 +151,31 @@ public class SmbEndpoint extends GenericFileEndpoint<FileIdBothDirectoryInformat idempotentRepository = MemoryIdempotentRepository.memoryIdempotentRepository(DEFAULT_IDEMPOTENT_CACHE_SIZE); } + if (ObjectHelper.isNotEmpty(getReadLock())) { + readLockCheck(); + } + SmbConsumer consumer = new SmbConsumer( this, processor, createOperations(), processStrategy != null ? processStrategy : createGenericFileStrategy()); + // set max messages per poll consumer.setMaxMessagesPerPoll(this.getMaxMessagesPerPoll()); consumer.setEagerLimitMaxMessagesPerPoll(this.isEagerMaxMessagesPerPoll()); + + configureConsumer(consumer); return consumer; } + private void readLockCheck() { + // check if it's valid + String valid = "none,rename,changed"; + String[] arr = valid.split(","); + boolean matched = Arrays.stream(arr).anyMatch(n -> n.equals(getReadLock())); + if (!matched) { + throw new IllegalArgumentException("ReadLock invalid: " + getReadLock() + ", must be one of: " + valid); + } + } + public GenericFileOperations<FileIdBothDirectoryInformation> createOperations() { SmbOperations operations = new SmbOperations(configuration); operations.setEndpoint(this); diff --git a/components/camel-smb/src/main/java/org/apache/camel/component/smb/strategy/SmbProcessStrategyFactory.java b/components/camel-smb/src/main/java/org/apache/camel/component/smb/strategy/SmbProcessStrategyFactory.java index 9ff7459959a..903e05ca561 100644 --- a/components/camel-smb/src/main/java/org/apache/camel/component/smb/strategy/SmbProcessStrategyFactory.java +++ b/components/camel-smb/src/main/java/org/apache/camel/component/smb/strategy/SmbProcessStrategyFactory.java @@ -111,15 +111,11 @@ public class SmbProcessStrategyFactory implements GenericFileProcessStrategyFact } else if ("rename".equals(readLock)) { GenericFileRenameExclusiveReadLockStrategy<FileIdBothDirectoryInformation> readLockStrategy = new GenericFileRenameExclusiveReadLockStrategy<>(); - StrategyUtil.setup(readLockStrategy, params); - return readLockStrategy; } else if ("changed".equals(readLock)) { SmbChangedExclusiveReadLockStrategy readLockStrategy = new SmbChangedExclusiveReadLockStrategy(); - StrategyUtil.setup(readLockStrategy, params); - return readLockStrategy; } }
