1
2
3
4
5
6
7
8
9
10
11 package org.mule.processor.strategy;
12
13 import org.mule.api.MuleContext;
14 import org.mule.api.processor.MessageProcessor;
15 import org.mule.api.processor.MessageProcessorBuilder;
16 import org.mule.api.processor.MessageProcessorChainBuilder;
17 import org.mule.util.queue.QueueManager;
18
19 import java.util.List;
20
21 import javax.resource.spi.work.WorkManager;
22
23
24
25
26
27
28 public class QueuedThreadPerProcessorProcessingStrategy extends QueuedAsynchronousProcessingStrategy
29 {
30
31 @Override
32 public void configureProcessors(List<MessageProcessor> processors,
33 StageNameSource nameSource,
34 MessageProcessorChainBuilder builder,
35 MuleContext muleContext)
36 {
37 for (int i = 0; i < processors.size(); i++)
38 {
39 MessageProcessor processor = processors.get(i);
40
41 builder.chain(createAsyncMessageProcessor(nameSource, muleContext));
42
43 if (processor instanceof MessageProcessor)
44 {
45 builder.chain(processor);
46 }
47 else if (processor instanceof MessageProcessorBuilder)
48 {
49 builder.chain((MessageProcessorBuilder) processor);
50 }
51 else
52 {
53 throw new IllegalArgumentException(
54 "MessageProcessorBuilder should only have MessageProcessor's or MessageProcessorBuilder's configured");
55 }
56 }
57 }
58 }