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;
             }
         }

Reply via email to