This is an automated email from the ASF dual-hosted git repository.
davsclaus 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 173c58becde6 CAMEL-23616: Add StepIdAware to EIP processors, producer
MBeans, and dev console
173c58becde6 is described below
commit 173c58becde62a4887ae2a14f111429cdb728a67
Author: Claus Ibsen <[email protected]>
AuthorDate: Tue May 26 20:17:37 2026 +0200
CAMEL-23616: Add StepIdAware to EIP processors, producer MBeans, and dev
console
Introduce StepIdAware interface (mirroring RouteIdAware) so runtime
processors
and producers can carry a step ID when used inside a step EIP. All 58 EIP
processors that implement RouteIdAware now also implement StepIdAware.
ProcessorReifier propagates step IDs during reification.
ManagedProducerMBean
exposes stepId via JMX and ProducerDevConsole displays it in text/JSON
output.
Closes #23525
---
.../java/org/apache/camel/spi/StepIdAware.java} | 34 ++++++---
.../camel/impl/console/ProducerDevConsole.java | 6 ++
.../apache/camel/processor/AbstractThrottler.java | 15 +++-
.../org/apache/camel/processor/CatchProcessor.java | 14 +++-
.../apache/camel/processor/ChoiceProcessor.java | 15 +++-
.../camel/processor/ClaimCheckProcessor.java | 14 +++-
.../java/org/apache/camel/processor/Delayer.java | 14 +++-
.../apache/camel/processor/DisabledProcessor.java | 14 +++-
.../java/org/apache/camel/processor/Enricher.java | 14 +++-
.../camel/processor/ExchangePatternProcessor.java | 14 +++-
.../apache/camel/processor/FilterProcessor.java | 14 +++-
.../apache/camel/processor/FinallyProcessor.java | 14 +++-
.../org/apache/camel/processor/LogProcessor.java | 14 +++-
.../org/apache/camel/processor/LoopProcessor.java | 15 +++-
.../apache/camel/processor/MulticastProcessor.java | 14 +++-
.../camel/processor/OnCompletionProcessor.java | 14 +++-
.../apache/camel/processor/PausableProcessor.java | 14 +++-
.../java/org/apache/camel/processor/Pipeline.java | 15 +++-
.../org/apache/camel/processor/PollEnricher.java | 14 +++-
.../org/apache/camel/processor/RecipientList.java | 14 +++-
.../camel/processor/RemoveHeaderProcessor.java | 14 +++-
.../camel/processor/RemoveHeadersProcessor.java | 14 +++-
.../camel/processor/RemovePropertiesProcessor.java | 14 +++-
.../camel/processor/RemovePropertyProcessor.java | 14 +++-
.../camel/processor/RemoveVariableProcessor.java | 14 +++-
.../org/apache/camel/processor/Resequencer.java | 15 +++-
.../apache/camel/processor/RollbackProcessor.java | 14 +++-
.../org/apache/camel/processor/RoutingSlip.java | 14 +++-
.../apache/camel/processor/SamplingThrottler.java | 14 +++-
.../apache/camel/processor/ScriptProcessor.java | 14 +++-
.../camel/processor/SendDynamicProcessor.java | 15 +++-
.../org/apache/camel/processor/SendProcessor.java | 18 ++++-
.../apache/camel/processor/SetBodyProcessor.java | 14 +++-
.../apache/camel/processor/SetHeaderProcessor.java | 14 +++-
.../camel/processor/SetHeadersProcessor.java | 14 +++-
.../camel/processor/SetPropertyProcessor.java | 14 +++-
.../camel/processor/SetVariableProcessor.java | 14 +++-
.../camel/processor/SetVariablesProcessor.java | 14 +++-
.../org/apache/camel/processor/SortProcessor.java | 14 +++-
.../org/apache/camel/processor/StopProcessor.java | 14 +++-
.../camel/processor/StreamCachingProcessor.java | 14 +++-
.../apache/camel/processor/StreamResequencer.java | 14 +++-
.../apache/camel/processor/ThreadsProcessor.java | 14 +++-
.../camel/processor/ThrowExceptionProcessor.java | 14 +++-
.../apache/camel/processor/TokenizerProcessor.java | 14 +++-
.../apache/camel/processor/TransformProcessor.java | 14 +++-
.../org/apache/camel/processor/TryProcessor.java | 14 +++-
.../apache/camel/processor/WireTapProcessor.java | 14 +++-
.../processor/aggregate/AggregateProcessor.java | 14 +++-
.../processor/idempotent/IdempotentConsumer.java | 14 +++-
.../loadbalancer/LoadBalancerSupport.java | 14 +++-
.../camel/processor/resume/ResumableProcessor.java | 14 +++-
.../apache/camel/processor/saga/SagaProcessor.java | 15 +++-
.../org/apache/camel/reifier/ProcessorReifier.java | 17 +++++
.../api/management/mbean/ManagedProducerMBean.java | 3 +
.../camel/management/mbean/ManagedProducer.java | 9 +++
.../management/ManagedProducerStepIdTest.java | 80 ++++++++++++++++++++++
.../org/apache/camel/support/DefaultConsumer.java | 14 +++-
.../org/apache/camel/support/DefaultProducer.java | 14 +++-
.../camel/support/processor/CamelLogProcessor.java | 14 +++-
.../support/processor/ConvertBodyProcessor.java | 15 +++-
.../support/processor/ConvertHeaderProcessor.java | 15 +++-
.../processor/ConvertVariableProcessor.java | 14 +++-
.../camel/support/processor/MarshalProcessor.java | 14 +++-
.../camel/support/processor/ThroughputLogger.java | 14 +++-
.../support/processor/UnmarshalProcessor.java | 14 +++-
66 files changed, 932 insertions(+), 70 deletions(-)
diff --git
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerMBean.java
b/core/camel-api/src/main/java/org/apache/camel/spi/StepIdAware.java
similarity index 60%
copy from
core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerMBean.java
copy to core/camel-api/src/main/java/org/apache/camel/spi/StepIdAware.java
index 11f34f096e48..17ca680fc667 100644
---
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerMBean.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/StepIdAware.java
@@ -14,19 +14,33 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.api.management.mbean;
+package org.apache.camel.spi;
-import org.apache.camel.api.management.ManagedAttribute;
+import org.jspecify.annotations.Nullable;
-public interface ManagedProducerMBean extends ManagedServiceMBean {
-
- @ManagedAttribute(description = "Endpoint URI", mask = true)
- String getEndpointUri();
+/**
+ * To allow objects to be injected with the step id
+ * <p/>
+ * This allows access to the step id at runtime, to know which step its
associated with.
+ *
+ * @since 4.21
+ */
+public interface StepIdAware {
- @ManagedAttribute(description = "Singleton")
- boolean isSingleton();
+ /**
+ * Gets the step id
+ *
+ * @since 4.21
+ */
+ @Nullable
+ String getStepId();
- @ManagedAttribute(description = "Whether this producer connects to remote
or local systems")
- boolean isRemoteEndpoint();
+ /**
+ * Sets the step id
+ *
+ * @param stepId the step id
+ * @since 4.21
+ */
+ void setStepId(String stepId);
}
diff --git
a/core/camel-console/src/main/java/org/apache/camel/impl/console/ProducerDevConsole.java
b/core/camel-console/src/main/java/org/apache/camel/impl/console/ProducerDevConsole.java
index fa7f3121ac36..3a7af7fe5f2d 100644
---
a/core/camel-console/src/main/java/org/apache/camel/impl/console/ProducerDevConsole.java
+++
b/core/camel-console/src/main/java/org/apache/camel/impl/console/ProducerDevConsole.java
@@ -64,6 +64,9 @@ public class ProducerDevConsole extends AbstractDevConsole {
if (mp.getRouteId() != null) {
sb.append(String.format("%n Route Id: %s",
mp.getRouteId()));
}
+ if (mp.getStepId() != null) {
+ sb.append(String.format("%n Step Id: %s",
mp.getStepId()));
+ }
}
}
} catch (Exception e) {
@@ -101,6 +104,9 @@ public class ProducerDevConsole extends AbstractDevConsole {
if (mp.getRouteId() != null) {
jo.put("routeId", mp.getRouteId());
}
+ if (mp.getStepId() != null) {
+ jo.put("stepId", mp.getStepId());
+ }
list.add(jo);
}
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/AbstractThrottler.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/AbstractThrottler.java
index b75e2c394282..947dfdf990b7 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/AbstractThrottler.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/AbstractThrottler.java
@@ -26,11 +26,13 @@ import org.apache.camel.Expression;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.util.ObjectHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public abstract class AbstractThrottler extends BaseProcessorSupport
implements Traceable, IdAware, RouteIdAware, Throttler {
+public abstract class AbstractThrottler extends BaseProcessorSupport
+ implements Traceable, IdAware, RouteIdAware, StepIdAware, Throttler {
private static final Logger LOG =
LoggerFactory.getLogger(AbstractThrottler.class);
@@ -43,6 +45,7 @@ public abstract class AbstractThrottler extends
BaseProcessorSupport implements
protected final Expression correlationExpression;
protected String id;
protected String routeId;
+ protected String stepId;
protected boolean rejectExecution;
protected boolean asyncDelayed;
protected boolean callerRunsWhenRejected = true;
@@ -119,6 +122,16 @@ public abstract class AbstractThrottler extends
BaseProcessorSupport implements
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public boolean isCallerRunsWhenRejected() {
return callerRunsWhenRejected;
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/CatchProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/CatchProcessor.java
index 2a528f2dd09f..8a3bed1e1b0f 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/CatchProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/CatchProcessor.java
@@ -33,6 +33,7 @@ import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.InterceptableProcessor;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.EventHelper;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.util.ObjectHelper;
@@ -43,13 +44,14 @@ import org.slf4j.LoggerFactory;
* A processor which catches exceptions.
*/
public class CatchProcessor extends BaseDelegateProcessorSupport
- implements Traceable, IdAware, RouteIdAware, InterceptableProcessor {
+ implements Traceable, IdAware, RouteIdAware, StepIdAware,
InterceptableProcessor {
private static final Logger LOG =
LoggerFactory.getLogger(CatchProcessor.class);
private final CamelContext camelContext;
private String id;
private String routeId;
+ private String stepId;
private final List<Class<? extends Throwable>> exceptions;
private boolean extendedStatistics;
// to capture how many different exceptions has been caught
@@ -106,6 +108,16 @@ public class CatchProcessor extends
BaseDelegateProcessorSupport
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public String getTraceLabel() {
return "catch";
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ChoiceProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ChoiceProcessor.java
index cf5dafc6a5c1..deb3a430e13b 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ChoiceProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ChoiceProcessor.java
@@ -28,6 +28,7 @@ import org.apache.camel.Processor;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.AsyncProcessorConverterHelper;
import org.apache.camel.support.MessageHelper;
import org.apache.camel.support.service.ServiceHelper;
@@ -40,12 +41,14 @@ import static
org.apache.camel.processor.PipelineHelper.continueProcessing;
* Implements a Choice structure where one or more predicates are used which
if they are true their processors are used,
* with a default otherwise clause used if none match.
*/
-public class ChoiceProcessor extends BaseProcessorSupport implements
Navigate<Processor>, Traceable, IdAware, RouteIdAware {
+public class ChoiceProcessor extends BaseProcessorSupport
+ implements Navigate<Processor>, Traceable, IdAware, RouteIdAware,
StepIdAware {
private static final Logger LOG =
LoggerFactory.getLogger(ChoiceProcessor.class);
private String id;
private String routeId;
+ private String stepId;
// optimize to use an array
private final FilterProcessor[] filters;
private final int len;
@@ -177,6 +180,16 @@ public class ChoiceProcessor extends BaseProcessorSupport
implements Navigate<Pr
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
protected void doInit() throws Exception {
ServiceHelper.initService(Arrays.asList(filters), otherwise);
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ClaimCheckProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ClaimCheckProcessor.java
index 119686fdff0b..a0b38b27925b 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ClaimCheckProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ClaimCheckProcessor.java
@@ -26,6 +26,7 @@ import org.apache.camel.Expression;
import org.apache.camel.spi.ClaimCheckRepository;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.support.LanguageSupport;
import org.apache.camel.support.service.ServiceHelper;
@@ -41,13 +42,14 @@ import org.slf4j.LoggerFactory;
* against concurrent and thread-safe issues. For off-memory persistent
storage of data, then use any of the many Camel
* components that support persistent storage, and do not use this Claim Check
EIP implementation.
*/
-public class ClaimCheckProcessor extends BaseProcessorSupport implements
IdAware, RouteIdAware, CamelContextAware {
+public class ClaimCheckProcessor extends BaseProcessorSupport implements
IdAware, RouteIdAware, StepIdAware, CamelContextAware {
private static final Logger LOG =
LoggerFactory.getLogger(ClaimCheckProcessor.class);
private CamelContext camelContext;
private String id;
private String routeId;
+ private String stepId;
private String operation;
private AggregationStrategy aggregationStrategy;
private String key;
@@ -84,6 +86,16 @@ public class ClaimCheckProcessor extends
BaseProcessorSupport implements IdAware
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public String getOperation() {
return operation;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Delayer.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Delayer.java
index b8493d9a797d..9e588400e9a2 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Delayer.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Delayer.java
@@ -25,6 +25,7 @@ import org.apache.camel.Processor;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
/**
* A <a href="http://camel.apache.org/delayer.html">Delayer</a> which delays
processing the exchange until the correct
@@ -32,9 +33,10 @@ import org.apache.camel.spi.RouteIdAware;
* <p/>
* This implementation will block while waiting.
*/
-public class Delayer extends DelayProcessorSupport implements Traceable,
IdAware, RouteIdAware {
+public class Delayer extends DelayProcessorSupport implements Traceable,
IdAware, RouteIdAware, StepIdAware {
private String routeId;
+ private String stepId;
private String id;
private Expression delay;
private long delayValue;
@@ -70,6 +72,16 @@ public class Delayer extends DelayProcessorSupport
implements Traceable, IdAware
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public String getTraceLabel() {
return "delay[" + delay + "]";
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/DisabledProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/DisabledProcessor.java
index 67a07f61ade9..56a6c180e5fd 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/DisabledProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/DisabledProcessor.java
@@ -20,14 +20,16 @@ import org.apache.camel.AsyncCallback;
import org.apache.camel.Exchange;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
/**
* A disabled EIP that does not do anything
*/
-public class DisabledProcessor extends BaseProcessorSupport implements
IdAware, RouteIdAware {
+public class DisabledProcessor extends BaseProcessorSupport implements
IdAware, RouteIdAware, StepIdAware {
private String id;
private String routeId;
+ private String stepId;
private String nodeType;
@Override
@@ -62,6 +64,16 @@ public class DisabledProcessor extends BaseProcessorSupport
implements IdAware,
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
/**
* Node type that was disabled
*/
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Enricher.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Enricher.java
index 0d69a6095b2e..54dd1e7ca154 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Enricher.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Enricher.java
@@ -32,6 +32,7 @@ import org.apache.camel.spi.HeadersMapFactory;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.ProcessorExchangeFactory;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.DefaultExchange;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.support.MessageHelper;
@@ -49,11 +50,12 @@ import static
org.apache.camel.support.ExchangeHelper.copyResultsPreservePattern
*
* @see PollEnricher
*/
-public class Enricher extends BaseProcessorSupport implements IdAware,
RouteIdAware, CamelContextAware {
+public class Enricher extends BaseProcessorSupport implements IdAware,
RouteIdAware, StepIdAware, CamelContextAware {
private CamelContext camelContext;
private String id;
private String routeId;
+ private String stepId;
private final Expression expression;
private final String uri;
private String variableSend;
@@ -104,6 +106,16 @@ public class Enricher extends BaseProcessorSupport
implements IdAware, RouteIdAw
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public Expression getExpression() {
return expression;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ExchangePatternProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ExchangePatternProcessor.java
index 544a6a5b70e4..3f42802a04c3 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ExchangePatternProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ExchangePatternProcessor.java
@@ -21,14 +21,16 @@ import org.apache.camel.Exchange;
import org.apache.camel.ExchangePattern;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
/**
* Processor to set {@link org.apache.camel.ExchangePattern} on the {@link
org.apache.camel.Exchange}.
*/
-public class ExchangePatternProcessor extends BaseProcessorSupport implements
IdAware, RouteIdAware {
+public class ExchangePatternProcessor extends BaseProcessorSupport implements
IdAware, RouteIdAware, StepIdAware {
private String id;
private String routeId;
+ private String stepId;
private ExchangePattern exchangePattern = ExchangePattern.InOnly;
public ExchangePatternProcessor() {
@@ -62,6 +64,16 @@ public class ExchangePatternProcessor extends
BaseProcessorSupport implements Id
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public ExchangePattern getExchangePattern() {
return exchangePattern;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/FilterProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/FilterProcessor.java
index 627f9844b02b..2c00248af329 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/FilterProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/FilterProcessor.java
@@ -24,6 +24,7 @@ import org.apache.camel.Processor;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.service.ServiceHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -32,13 +33,14 @@ import org.slf4j.LoggerFactory;
* The processor which implements the <a
href="http://camel.apache.org/message-filter.html">Message Filter</a> EIP
* pattern.
*/
-public class FilterProcessor extends BaseDelegateProcessorSupport implements
Traceable, IdAware, RouteIdAware {
+public class FilterProcessor extends BaseDelegateProcessorSupport implements
Traceable, IdAware, RouteIdAware, StepIdAware {
private static final Logger LOG =
LoggerFactory.getLogger(FilterProcessor.class);
private final CamelContext context;
private String id;
private String routeId;
+ private String stepId;
private final Predicate predicate;
private transient long filtered;
private String statusPropertyName;
@@ -121,6 +123,16 @@ public class FilterProcessor extends
BaseDelegateProcessorSupport implements Tra
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public String getTraceLabel() {
return "filter[if: " + predicate + "]";
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/FinallyProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/FinallyProcessor.java
index fbee021b3c44..26c71d900105 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/FinallyProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/FinallyProcessor.java
@@ -24,6 +24,7 @@ import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.InterceptableProcessor;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.ExchangeHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -32,12 +33,13 @@ import org.slf4j.LoggerFactory;
* Processor to handle do finally supporting asynchronous routing engine
*/
public class FinallyProcessor extends BaseDelegateProcessorSupport
- implements Traceable, IdAware, RouteIdAware, InterceptableProcessor {
+ implements Traceable, IdAware, RouteIdAware, StepIdAware,
InterceptableProcessor {
private static final Logger LOG =
LoggerFactory.getLogger(FinallyProcessor.class);
private String id;
private String routeId;
+ private String stepId;
public FinallyProcessor(Processor processor) {
super(processor);
@@ -97,6 +99,16 @@ public class FinallyProcessor extends
BaseDelegateProcessorSupport
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public boolean canIntercept() {
return false;
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/LogProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/LogProcessor.java
index 5babd94ca6ab..a4b157e60449 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/LogProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/LogProcessor.java
@@ -27,18 +27,20 @@ import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.LogListener;
import org.apache.camel.spi.MaskingFormatter;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* A processor which evaluates an {@link Expression} and logs it.
*/
-public class LogProcessor extends BaseProcessorSupport implements Traceable,
IdAware, RouteIdAware {
+public class LogProcessor extends BaseProcessorSupport implements Traceable,
IdAware, RouteIdAware, StepIdAware {
private static final Logger LOG =
LoggerFactory.getLogger(LogProcessor.class);
private String id;
private String routeId;
+ private String stepId;
private final Expression expression;
private final String message;
private final CamelLogger logger;
@@ -159,6 +161,16 @@ public class LogProcessor extends BaseProcessorSupport
implements Traceable, IdA
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public String getMessage() {
return message;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/LoopProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/LoopProcessor.java
index d55733327d0f..179c0de64ef8 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/LoopProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/LoopProcessor.java
@@ -32,6 +32,7 @@ import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.ReactiveExecutor;
import org.apache.camel.spi.RouteIdAware;
import org.apache.camel.spi.ShutdownAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.ExchangeHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -41,12 +42,14 @@ import static
org.apache.camel.processor.PipelineHelper.continueProcessing;
/**
* The processor which sends messages in a loop.
*/
-public class LoopProcessor extends BaseDelegateProcessorSupport implements
Traceable, IdAware, RouteIdAware, ShutdownAware {
+public class LoopProcessor extends BaseDelegateProcessorSupport
+ implements Traceable, IdAware, RouteIdAware, StepIdAware,
ShutdownAware {
private static final Logger LOG =
LoggerFactory.getLogger(LoopProcessor.class);
private String id;
private String routeId;
+ private String stepId;
private boolean shutdownPending;
private final ReactiveExecutor reactiveExecutor;
private final Expression expression;
@@ -263,6 +266,16 @@ public class LoopProcessor extends
BaseDelegateProcessorSupport implements Trace
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public String toString() {
return id;
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/MulticastProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/MulticastProcessor.java
index e4fc297d8566..e6a1d4cc5919 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/MulticastProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/MulticastProcessor.java
@@ -60,6 +60,7 @@ import org.apache.camel.spi.InternalProcessorFactory;
import org.apache.camel.spi.ProcessorExchangeFactory;
import org.apache.camel.spi.ReactiveExecutor;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.spi.UnitOfWork;
import org.apache.camel.support.AsyncProcessorConverterHelper;
import org.apache.camel.support.AsyncProcessorSupport;
@@ -87,7 +88,7 @@ import static org.apache.camel.util.ObjectHelper.notNull;
* of the message exchange.
*/
public class MulticastProcessor extends BaseProcessorSupport
- implements Navigate<Processor>, Traceable, IdAware, RouteIdAware,
ErrorHandlerAware {
+ implements Navigate<Processor>, Traceable, IdAware, RouteIdAware,
StepIdAware, ErrorHandlerAware {
private static final Logger LOG =
LoggerFactory.getLogger(MulticastProcessor.class);
@@ -170,6 +171,7 @@ public class MulticastProcessor extends BaseProcessorSupport
private Processor errorHandler;
private String id;
private String routeId;
+ private String stepId;
private final Collection<Processor> processors;
private final AggregationStrategy aggregationStrategy;
private final boolean parallelProcessing;
@@ -259,6 +261,16 @@ public class MulticastProcessor extends
BaseProcessorSupport
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public void setErrorHandler(Processor errorHandler) {
this.errorHandler = errorHandler;
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/OnCompletionProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/OnCompletionProcessor.java
index 38faece9f1df..07219abcc556 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/OnCompletionProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/OnCompletionProcessor.java
@@ -33,6 +33,7 @@ import org.apache.camel.Route;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.spi.SynchronizationRouteAware;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.support.SynchronizationAdapter;
@@ -46,13 +47,14 @@ import static org.apache.camel.util.ObjectHelper.notNull;
/**
* Processor implementing <a
href="http://camel.apache.org/oncompletion.html">onCompletion</a>.
*/
-public class OnCompletionProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware {
+public class OnCompletionProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware, StepIdAware {
private static final Logger LOG =
LoggerFactory.getLogger(OnCompletionProcessor.class);
private final CamelContext camelContext;
private String id;
private String routeId;
+ private String stepId;
private final Processor processor;
private final ExecutorService executorService;
private final boolean shutdownExecutorService;
@@ -133,6 +135,16 @@ public class OnCompletionProcessor extends
BaseProcessorSupport implements Trace
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public boolean process(Exchange exchange, AsyncCallback callback) {
if (processor != null) {
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/PausableProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/PausableProcessor.java
index 5e83ef2eddfd..c56d0a9c7b78 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/PausableProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/PausableProcessor.java
@@ -29,15 +29,17 @@ import org.apache.camel.Navigate;
import org.apache.camel.Processor;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.AsyncProcessorConverterHelper;
public class PausableProcessor extends BaseProcessorSupport
- implements Navigate<Processor>, CamelContextAware, IdAware,
RouteIdAware {
+ implements Navigate<Processor>, CamelContextAware, IdAware,
RouteIdAware, StepIdAware {
private final AsyncProcessor processor;
private CamelContext camelContext;
private String id;
private String routeId;
+ private String stepId;
public PausableProcessor(Processor processor) {
this.processor = AsyncProcessorConverterHelper.convert(processor);
@@ -92,4 +94,14 @@ public class PausableProcessor extends BaseProcessorSupport
public void setRouteId(String routeId) {
this.routeId = routeId;
}
+
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Pipeline.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Pipeline.java
index ae279a60e2e8..73c618147968 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Pipeline.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Pipeline.java
@@ -30,6 +30,7 @@ import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.ReactiveExecutor;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.AsyncProcessorConverterHelper;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.support.service.ServiceHelper;
@@ -42,7 +43,8 @@ import static
org.apache.camel.processor.PipelineHelper.continueProcessing;
* Creates a Pipeline pattern where the output of the previous step is sent as
input to the next step, reusing the same
* message exchanges
*/
-public class Pipeline extends BaseProcessorSupport implements
Navigate<Processor>, Traceable, IdAware, RouteIdAware {
+public class Pipeline extends BaseProcessorSupport
+ implements Navigate<Processor>, Traceable, IdAware, RouteIdAware,
StepIdAware {
private static final Logger LOG = LoggerFactory.getLogger(Pipeline.class);
@@ -54,6 +56,7 @@ public class Pipeline extends BaseProcessorSupport implements
Navigate<Processor
private String id;
private String routeId;
+ private String stepId;
private final class PipelineTask implements PooledExchangeTask,
AsyncCallback {
@@ -244,6 +247,16 @@ public class Pipeline extends BaseProcessorSupport
implements Navigate<Processor
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public List<Processor> next() {
if (!hasNext()) {
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/PollEnricher.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/PollEnricher.java
index 50b83dca05e0..58d94ece3f80 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/PollEnricher.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/PollEnricher.java
@@ -42,6 +42,7 @@ import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.OptimisedComponentResolver;
import org.apache.camel.spi.PollDynamicAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.BridgeExceptionHandlerToErrorHandler;
import org.apache.camel.support.DefaultConsumer;
import org.apache.camel.support.EndpointHelper;
@@ -66,7 +67,7 @@ import static
org.apache.camel.support.ExchangeHelper.copyResultsPreservePattern
* @see PollProcessor
* @see Enricher
*/
-public class PollEnricher extends BaseProcessorSupport implements IdAware,
RouteIdAware, CamelContextAware {
+public class PollEnricher extends BaseProcessorSupport implements IdAware,
RouteIdAware, StepIdAware, CamelContextAware {
private static final Logger LOG =
LoggerFactory.getLogger(PollEnricher.class);
@@ -77,6 +78,7 @@ public class PollEnricher extends BaseProcessorSupport
implements IdAware, Route
private HeadersMapFactory headersMapFactory;
private String id;
private String routeId;
+ private String stepId;
private String variableReceive;
private AggregationStrategy aggregationStrategy;
private final Expression expression;
@@ -143,6 +145,16 @@ public class PollEnricher extends BaseProcessorSupport
implements IdAware, Route
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public PollDynamicAware getDynamicAware() {
return dynamicAware;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RecipientList.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RecipientList.java
index d094659d4c85..f593d25e3d11 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RecipientList.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RecipientList.java
@@ -32,6 +32,7 @@ import org.apache.camel.spi.ErrorHandlerAware;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.ProducerCache;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.cache.DefaultProducerCache;
import org.apache.camel.support.cache.EmptyProducerCache;
import org.apache.camel.support.service.ServiceHelper;
@@ -46,13 +47,14 @@ import static org.apache.camel.util.ObjectHelper.notNull;
* Implements a dynamic <a
href="http://camel.apache.org/recipient-list.html">Recipient List</a> pattern
where the list
* of actual endpoints to send a message exchange to are dependent on some
dynamic expression.
*/
-public class RecipientList extends BaseProcessorSupport implements IdAware,
RouteIdAware, ErrorHandlerAware {
+public class RecipientList extends BaseProcessorSupport implements IdAware,
RouteIdAware, StepIdAware, ErrorHandlerAware {
private static final Logger LOG =
LoggerFactory.getLogger(RecipientList.class);
private final CamelContext camelContext;
private String id;
private String routeId;
+ private String stepId;
private Processor errorHandler;
private ProducerCache producerCache;
private final Expression expression;
@@ -158,6 +160,16 @@ public class RecipientList extends BaseProcessorSupport
implements IdAware, Rout
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public void setErrorHandler(Processor errorHandler) {
this.errorHandler = errorHandler;
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveHeaderProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveHeaderProcessor.java
index 654672d8bb54..3fb2ac333fa4 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveHeaderProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveHeaderProcessor.java
@@ -21,14 +21,16 @@ import org.apache.camel.Exchange;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
/**
* A processor which removes the header from the IN or OUT message
*/
-public class RemoveHeaderProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware {
+public class RemoveHeaderProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware, StepIdAware {
private final String headerName;
private String id;
private String routeId;
+ private String stepId;
public RemoveHeaderProcessor(String headerName) {
this.headerName = headerName;
@@ -76,6 +78,16 @@ public class RemoveHeaderProcessor extends
BaseProcessorSupport implements Trace
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public String getHeaderName() {
return headerName;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveHeadersProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveHeadersProcessor.java
index 3f4ee6476fc5..b71ffbabcae6 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveHeadersProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveHeadersProcessor.java
@@ -21,13 +21,15 @@ import org.apache.camel.Exchange;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
/**
* A processor which removes one ore more headers from the IN or OUT message
*/
-public class RemoveHeadersProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware {
+public class RemoveHeadersProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware, StepIdAware {
private String id;
private String routeId;
+ private String stepId;
private final String pattern;
private final String[] excludePattern;
@@ -78,6 +80,16 @@ public class RemoveHeadersProcessor extends
BaseProcessorSupport implements Trac
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public String getPattern() {
return pattern;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemovePropertiesProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemovePropertiesProcessor.java
index d84d2ac670b1..a2fc5ae26beb 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemovePropertiesProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemovePropertiesProcessor.java
@@ -21,13 +21,15 @@ import org.apache.camel.Exchange;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
/**
* A processor which removes one ore more properties from the exchange
*/
-public class RemovePropertiesProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware {
+public class RemovePropertiesProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware, StepIdAware {
private String id;
private String routeId;
+ private String stepId;
private final String pattern;
private final String[] excludePattern;
@@ -78,6 +80,16 @@ public class RemovePropertiesProcessor extends
BaseProcessorSupport implements T
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public String getPattern() {
return pattern;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemovePropertyProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemovePropertyProcessor.java
index 57947d5c0c1a..ba31d5eb2de0 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemovePropertyProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemovePropertyProcessor.java
@@ -21,13 +21,15 @@ import org.apache.camel.Exchange;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
/**
* A processor which removes the property from the exchange
*/
-public class RemovePropertyProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware {
+public class RemovePropertyProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware, StepIdAware {
private String id;
private String routeId;
+ private String stepId;
private final String propertyName;
public RemovePropertyProcessor(String propertyName) {
@@ -76,6 +78,16 @@ public class RemovePropertyProcessor extends
BaseProcessorSupport implements Tra
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public String getPropertyName() {
return propertyName;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveVariableProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveVariableProcessor.java
index aa694339998f..f7b790214c39 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveVariableProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveVariableProcessor.java
@@ -24,6 +24,7 @@ import org.apache.camel.Expression;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.spi.VariableRepository;
import org.apache.camel.spi.VariableRepositoryFactory;
import org.apache.camel.util.StringHelper;
@@ -32,10 +33,11 @@ import org.apache.camel.util.StringHelper;
* A processor which removes the variable
*/
public class RemoveVariableProcessor extends BaseProcessorSupport
- implements Traceable, IdAware, RouteIdAware, CamelContextAware {
+ implements Traceable, IdAware, RouteIdAware, StepIdAware,
CamelContextAware {
private CamelContext camelContext;
private String id;
private String routeId;
+ private String stepId;
private final Expression variableName;
private VariableRepositoryFactory factory;
@@ -114,6 +116,16 @@ public class RemoveVariableProcessor extends
BaseProcessorSupport
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public String getVariableName() {
return variableName.toString();
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Resequencer.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Resequencer.java
index 2601cce5630f..b84d3b6fb9f4 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Resequencer.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Resequencer.java
@@ -46,6 +46,7 @@ import org.apache.camel.Traceable;
import org.apache.camel.spi.ExceptionHandler;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.AsyncProcessorConverterHelper;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.support.ExpressionComparator;
@@ -59,7 +60,8 @@ import org.slf4j.LoggerFactory;
* An implementation of the <a
href="http://camel.apache.org/resequencer.html">Resequencer</a> which can
reorder
* messages within a batch.
*/
-public class Resequencer extends BaseProcessorSupport implements
Navigate<Processor>, IdAware, RouteIdAware, Traceable {
+public class Resequencer extends BaseProcessorSupport
+ implements Navigate<Processor>, IdAware, RouteIdAware, StepIdAware,
Traceable {
public static final long DEFAULT_BATCH_TIMEOUT = 1000L;
public static final int DEFAULT_BATCH_SIZE = 100;
@@ -68,6 +70,7 @@ public class Resequencer extends BaseProcessorSupport
implements Navigate<Proces
private String id;
private String routeId;
+ private String stepId;
private long batchTimeout = DEFAULT_BATCH_TIMEOUT;
private int batchSize = DEFAULT_BATCH_SIZE;
private int outBatchSize;
@@ -264,6 +267,16 @@ public class Resequencer extends BaseProcessorSupport
implements Navigate<Proces
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
// Implementation methods
//-------------------------------------------------------------------------
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RollbackProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RollbackProcessor.java
index 976f99895704..ee923a4c34a7 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RollbackProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RollbackProcessor.java
@@ -22,14 +22,16 @@ import org.apache.camel.RollbackExchangeException;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
/**
* Processor for marking an {@link org.apache.camel.Exchange} to rollback.
*/
-public class RollbackProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware {
+public class RollbackProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware, StepIdAware {
private String id;
private String routeId;
+ private String stepId;
private boolean markRollbackOnly;
private boolean markRollbackOnlyLast;
private String message;
@@ -99,6 +101,16 @@ public class RollbackProcessor extends BaseProcessorSupport
implements Traceable
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public String getMessage() {
return message;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RoutingSlip.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RoutingSlip.java
index 31140ed6fdb1..b0db8c50e378 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RoutingSlip.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RoutingSlip.java
@@ -33,6 +33,7 @@ import org.apache.camel.spi.EndpointUtilizationStatistics;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.ProducerCache;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.AsyncProcessorSupport;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.support.MessageHelper;
@@ -55,12 +56,13 @@ import static org.apache.camel.util.ObjectHelper.notNull;
* the failover load balancer is a specialized pipeline. So the trick is to
keep doing the same as the pipeline to
* ensure it works the same and the async routing engine is flawless.
*/
-public class RoutingSlip extends BaseProcessorSupport implements Traceable,
IdAware, RouteIdAware {
+public class RoutingSlip extends BaseProcessorSupport implements Traceable,
IdAware, RouteIdAware, StepIdAware {
private static final Logger LOG =
LoggerFactory.getLogger(RoutingSlip.class);
protected String id;
protected String routeId;
+ protected String stepId;
protected ProducerCache producerCache;
protected int cacheSize;
protected boolean ignoreInvalidEndpoints;
@@ -128,6 +130,16 @@ public class RoutingSlip extends BaseProcessorSupport
implements Traceable, IdAw
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public Expression getExpression() {
return expression;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SamplingThrottler.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SamplingThrottler.java
index e42c8eec40a9..de903397e0fc 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SamplingThrottler.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SamplingThrottler.java
@@ -27,6 +27,7 @@ import org.apache.camel.Exchange;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,12 +40,13 @@ import org.slf4j.LoggerFactory;
* This kind of throttling can be useful for taking a sample from an exchange
stream, rough consolidation of noisy and
* bursty exchange traffic or where queuing of throttled exchanges is
undesirable.
*/
-public class SamplingThrottler extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware {
+public class SamplingThrottler extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware, StepIdAware {
private static final Logger LOG =
LoggerFactory.getLogger(SamplingThrottler.class);
private String id;
private String routeId;
+ private String stepId;
private long messageFrequency;
private long currentMessageCount;
private long samplePeriod;
@@ -99,6 +101,16 @@ public class SamplingThrottler extends BaseProcessorSupport
implements Traceable
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public String getTraceLabel() {
if (messageFrequency > 0) {
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ScriptProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ScriptProcessor.java
index b5a3e26334d9..78928050c2a6 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ScriptProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ScriptProcessor.java
@@ -22,15 +22,17 @@ import org.apache.camel.Expression;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.util.ObjectHelper;
/**
* A processor which executes the script as an expression and does not change
the message body.
*/
-public class ScriptProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware {
+public class ScriptProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware, StepIdAware {
private String id;
private String routeId;
+ private String stepId;
private final Expression expression;
public ScriptProcessor(Expression expression) {
@@ -80,6 +82,16 @@ public class ScriptProcessor extends BaseProcessorSupport
implements Traceable,
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public Expression getExpression() {
return expression;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendDynamicProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendDynamicProcessor.java
index 1285ecf4af8e..86ff6459d115 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendDynamicProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendDynamicProcessor.java
@@ -38,6 +38,7 @@ import org.apache.camel.spi.OptimisedComponentResolver;
import org.apache.camel.spi.ProducerCache;
import org.apache.camel.spi.RouteIdAware;
import org.apache.camel.spi.SendDynamicAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.EndpointHelper;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.support.cache.DefaultProducerCache;
@@ -52,7 +53,8 @@ import org.slf4j.LoggerFactory;
*
* @see org.apache.camel.processor.SendProcessor
*/
-public class SendDynamicProcessor extends BaseProcessorSupport implements
IdAware, RouteIdAware, CamelContextAware {
+public class SendDynamicProcessor extends BaseProcessorSupport
+ implements IdAware, RouteIdAware, StepIdAware, CamelContextAware {
private static final Logger LOG =
LoggerFactory.getLogger(SendDynamicProcessor.class);
@@ -68,6 +70,7 @@ public class SendDynamicProcessor extends
BaseProcessorSupport implements IdAwar
protected HeadersMapFactory headersMapFactory;
protected String id;
protected String routeId;
+ protected String stepId;
protected boolean ignoreInvalidEndpoint;
protected int cacheSize;
protected boolean allowOptimisedComponents = true;
@@ -103,6 +106,16 @@ public class SendDynamicProcessor extends
BaseProcessorSupport implements IdAwar
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public boolean process(Exchange exchange, final AsyncCallback callback) {
if (!isStarted()) {
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendProcessor.java
index 5433a706a14d..5745d5ec39ff 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendProcessor.java
@@ -33,6 +33,7 @@ import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.InternalProcessorFactory;
import org.apache.camel.spi.ProducerCache;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.EndpointHelper;
import org.apache.camel.support.EventHelper;
import org.apache.camel.support.ExchangeHelper;
@@ -50,7 +51,8 @@ import org.slf4j.LoggerFactory;
*
* @see SendDynamicProcessor
*/
-public class SendProcessor extends BaseProcessorSupport implements Traceable,
EndpointAware, IdAware, RouteIdAware {
+public class SendProcessor extends BaseProcessorSupport
+ implements Traceable, EndpointAware, IdAware, RouteIdAware,
StepIdAware {
private static final Logger LOG =
LoggerFactory.getLogger(SendProcessor.class);
@@ -66,6 +68,7 @@ public class SendProcessor extends BaseProcessorSupport
implements Traceable, En
protected ExchangePattern destinationExchangePattern;
protected String id;
protected String routeId;
+ protected String stepId;
protected boolean extendedStatistics;
protected final AtomicLong counter = new AtomicLong();
@@ -107,6 +110,16 @@ public class SendProcessor extends BaseProcessorSupport
implements Traceable, En
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public String getTraceLabel() {
if (traceLabelToString == null) {
@@ -329,6 +342,9 @@ public class SendProcessor extends BaseProcessorSupport
implements Traceable, En
if (this.producer instanceof RouteIdAware ria) {
ria.setRouteId(getRouteId());
}
+ if (this.producer instanceof StepIdAware sia) {
+ sia.setStepId(getStepId());
+ }
// ensure the producer is managed and started
camelContext.addService(this.producer, true, true);
} else {
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetBodyProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetBodyProcessor.java
index 7fe3a1428abf..e7a5b309c5e1 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetBodyProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetBodyProcessor.java
@@ -23,16 +23,18 @@ import org.apache.camel.Message;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.DefaultMessage;
import org.apache.camel.support.ExchangeHelper;
/**
* A processor which sets the body on the IN or OUT message with an {@link
Expression}
*/
-public class SetBodyProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware {
+public class SetBodyProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware, StepIdAware {
private String id;
private String routeId;
+ private String stepId;
private final Expression expression;
public SetBodyProcessor(Expression expression) {
@@ -105,6 +107,16 @@ public class SetBodyProcessor extends BaseProcessorSupport
implements Traceable,
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public Expression getExpression() {
return expression;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetHeaderProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetHeaderProcessor.java
index 9964464a8a4a..8f0fdb904d16 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetHeaderProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetHeaderProcessor.java
@@ -23,15 +23,17 @@ import org.apache.camel.Message;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.util.ObjectHelper;
/**
* A processor which sets the header on the IN or OUT message with an {@link
org.apache.camel.Expression}
*/
-public class SetHeaderProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware {
+public class SetHeaderProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware, StepIdAware {
private String id;
private String routeId;
+ private String stepId;
private final Expression headerName;
private final Expression expression;
@@ -96,6 +98,16 @@ public class SetHeaderProcessor extends BaseProcessorSupport
implements Traceabl
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public String getHeaderName() {
return headerName.toString();
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetHeadersProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetHeadersProcessor.java
index 9719d36d7315..bc7242b3b33b 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetHeadersProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetHeadersProcessor.java
@@ -25,14 +25,16 @@ import org.apache.camel.Message;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
/**
* A processor which sets multiple headers on the IN or OUT message with an
{@link org.apache.camel.Expression}
*/
-public class SetHeadersProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware {
+public class SetHeadersProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware, StepIdAware {
private String id;
private String routeId;
+ private String stepId;
private final List<Expression> headerNames;
private final List<Expression> expressions;
@@ -108,6 +110,16 @@ public class SetHeadersProcessor extends
BaseProcessorSupport implements Traceab
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public List<Expression> getHeaderNames() {
return headerNames;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetPropertyProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetPropertyProcessor.java
index 2dd4714bda9f..efd444e51701 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetPropertyProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetPropertyProcessor.java
@@ -22,15 +22,17 @@ import org.apache.camel.Expression;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.util.ObjectHelper;
/**
* A processor which sets the property on the exchange with an {@link
org.apache.camel.Expression}
*/
-public class SetPropertyProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware {
+public class SetPropertyProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware, StepIdAware {
private String id;
private String routeId;
+ private String stepId;
private final Expression propertyName;
private final Expression expression;
@@ -92,6 +94,16 @@ public class SetPropertyProcessor extends
BaseProcessorSupport implements Tracea
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public String getPropertyName() {
return propertyName.toString();
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetVariableProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetVariableProcessor.java
index 2c132d34a215..856e902f3c61 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetVariableProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetVariableProcessor.java
@@ -22,16 +22,18 @@ import org.apache.camel.Expression;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.util.ObjectHelper;
/**
* A processor which sets the variable with an {@link Expression}
*/
-public class SetVariableProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware {
+public class SetVariableProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware, StepIdAware {
private String id;
private String routeId;
+ private String stepId;
private final Expression variableName;
private final Expression expression;
@@ -93,6 +95,16 @@ public class SetVariableProcessor extends
BaseProcessorSupport implements Tracea
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public String getVariableName() {
return variableName.toString();
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetVariablesProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetVariablesProcessor.java
index d2dc2e9cc571..5474de7a0a12 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetVariablesProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetVariablesProcessor.java
@@ -24,15 +24,17 @@ import org.apache.camel.Expression;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.ExchangeHelper;
/**
* A processor which sets multiple variables on the Exchange with an {@link
Expression}
*/
-public class SetVariablesProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware {
+public class SetVariablesProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware, StepIdAware {
private String id;
private String routeId;
+ private String stepId;
private final List<Expression> variableNames;
private final List<Expression> expressions;
@@ -107,6 +109,16 @@ public class SetVariablesProcessor extends
BaseProcessorSupport implements Trace
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public List<Expression> getVariableNames() {
return variableNames;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SortProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SortProcessor.java
index 878d14753d26..e98aeba68253 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SortProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SortProcessor.java
@@ -25,14 +25,16 @@ import org.apache.camel.Expression;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
/**
* A processor that sorts the expression using a comparator
*/
-public class SortProcessor<T> extends BaseProcessorSupport implements IdAware,
RouteIdAware, Traceable {
+public class SortProcessor<T> extends BaseProcessorSupport implements IdAware,
RouteIdAware, StepIdAware, Traceable {
private String id;
private String routeId;
+ private String stepId;
private final Expression expression;
private final Comparator<? super T> comparator;
@@ -87,6 +89,16 @@ public class SortProcessor<T> extends BaseProcessorSupport
implements IdAware, R
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public Expression getExpression() {
return expression;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/StopProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/StopProcessor.java
index bec30d9ac041..753d1cf11ea2 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/StopProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/StopProcessor.java
@@ -20,14 +20,16 @@ import org.apache.camel.AsyncCallback;
import org.apache.camel.Exchange;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
/**
* Stops continue processing the route and marks it as complete.
*/
-public class StopProcessor extends BaseProcessorSupport implements IdAware,
RouteIdAware {
+public class StopProcessor extends BaseProcessorSupport implements IdAware,
RouteIdAware, StepIdAware {
private String id;
private String routeId;
+ private String stepId;
@Override
public boolean process(Exchange exchange, AsyncCallback callback) {
@@ -63,4 +65,14 @@ public class StopProcessor extends BaseProcessorSupport
implements IdAware, Rout
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/StreamCachingProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/StreamCachingProcessor.java
index b82252a7f0a0..f13bfc8f8491 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/StreamCachingProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/StreamCachingProcessor.java
@@ -22,14 +22,16 @@ import org.apache.camel.StreamCache;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
/**
* A processor which converts current message body to a stream cache.
*/
-public class StreamCachingProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware {
+public class StreamCachingProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware, StepIdAware {
private String id;
private String routeId;
+ private String stepId;
@Override
public boolean process(Exchange exchange, AsyncCallback callback) {
@@ -75,4 +77,14 @@ public class StreamCachingProcessor extends
BaseProcessorSupport implements Trac
public void setRouteId(String routeId) {
this.routeId = routeId;
}
+
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/StreamResequencer.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/StreamResequencer.java
index 550ccc67a164..834bcd2502b0 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/StreamResequencer.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/StreamResequencer.java
@@ -37,6 +37,7 @@ import org.apache.camel.processor.resequencer.SequenceSender;
import org.apache.camel.spi.ExceptionHandler;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.support.LoggingExceptionHandler;
import org.apache.camel.support.service.ServiceHelper;
@@ -61,12 +62,13 @@ import org.slf4j.LoggerFactory;
* @see ResequencerEngine
*/
public class StreamResequencer extends BaseProcessorSupport
- implements SequenceSender<Exchange>, Navigate<Processor>, Traceable,
IdAware, RouteIdAware {
+ implements SequenceSender<Exchange>, Navigate<Processor>, Traceable,
IdAware, RouteIdAware, StepIdAware {
private static final Logger LOG =
LoggerFactory.getLogger(StreamResequencer.class);
private String id;
private String routeId;
+ private String stepId;
private final CamelContext camelContext;
private final ExceptionHandler exceptionHandler;
private final ResequencerEngine<Exchange> engine;
@@ -200,6 +202,16 @@ public class StreamResequencer extends BaseProcessorSupport
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
protected void doBuild() throws Exception {
ServiceHelper.buildService(processor);
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThreadsProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThreadsProcessor.java
index 26825a587b74..a5a7e820475b 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThreadsProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThreadsProcessor.java
@@ -26,6 +26,7 @@ import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.concurrent.Rejectable;
import org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy;
@@ -49,12 +50,13 @@ import org.slf4j.LoggerFactory;
* be free to process a new exchange, as its processing the current
exchange.</li>
* </ul>
*/
-public class ThreadsProcessor extends BaseProcessorSupport implements IdAware,
RouteIdAware {
+public class ThreadsProcessor extends BaseProcessorSupport implements IdAware,
RouteIdAware, StepIdAware {
private static final Logger LOG =
LoggerFactory.getLogger(ThreadsProcessor.class);
private String id;
private String routeId;
+ private String stepId;
private final CamelContext camelContext;
private final ExecutorService executorService;
private final ThreadPoolRejectedPolicy rejectedPolicy;
@@ -178,6 +180,16 @@ public class ThreadsProcessor extends BaseProcessorSupport
implements IdAware, R
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public ThreadPoolRejectedPolicy getRejectedPolicy() {
return rejectedPolicy;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java
index 22e0346f41af..bbc23118238b 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java
@@ -27,16 +27,18 @@ import org.apache.camel.Expression;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.util.ObjectHelper;
/**
* The processor which sets an {@link Exception} on the {@link Exchange}
*/
public class ThrowExceptionProcessor extends BaseProcessorSupport
- implements Traceable, IdAware, RouteIdAware, CamelContextAware {
+ implements Traceable, IdAware, RouteIdAware, StepIdAware,
CamelContextAware {
private String id;
private String routeId;
+ private String stepId;
private CamelContext camelContext;
private Expression simple;
private final Exception exception;
@@ -109,6 +111,16 @@ public class ThrowExceptionProcessor extends
BaseProcessorSupport
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public Exception getException() {
return exception;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/TokenizerProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/TokenizerProcessor.java
index 457e4d3230f7..b794fa0bd72d 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/TokenizerProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/TokenizerProcessor.java
@@ -29,6 +29,7 @@ import org.apache.camel.Navigate;
import org.apache.camel.Processor;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.spi.Tokenizer;
import org.apache.camel.support.AsyncProcessorConverterHelper;
@@ -36,13 +37,14 @@ import
org.apache.camel.support.AsyncProcessorConverterHelper;
* This implements the core processor for handling tokenization
*/
public class TokenizerProcessor extends BaseProcessorSupport
- implements Navigate<Processor>, CamelContextAware, IdAware,
RouteIdAware {
+ implements Navigate<Processor>, CamelContextAware, IdAware,
RouteIdAware, StepIdAware {
private final AsyncProcessor processor;
private final Tokenizer tokenizer;
private CamelContext camelContext;
private String id;
private String routeId;
+ private String stepId;
public TokenizerProcessor(Processor processor, Tokenizer tokenizer) {
this.processor = AsyncProcessorConverterHelper.convert(processor);
@@ -102,4 +104,14 @@ public class TokenizerProcessor extends
BaseProcessorSupport
public void setRouteId(String routeId) {
this.routeId = routeId;
}
+
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/TransformProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/TransformProcessor.java
index 5f834310e7ca..952be4b77e1c 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/TransformProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/TransformProcessor.java
@@ -23,6 +23,7 @@ import org.apache.camel.Message;
import org.apache.camel.Traceable;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.DefaultMessage;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.util.ObjectHelper;
@@ -30,10 +31,11 @@ import org.apache.camel.util.ObjectHelper;
/**
* A processor which sets the body on the OUT message with an {@link
Expression}.
*/
-public class TransformProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware {
+public class TransformProcessor extends BaseProcessorSupport implements
Traceable, IdAware, RouteIdAware, StepIdAware {
private String id;
private String routeId;
+ private String stepId;
private final Expression expression;
public TransformProcessor(Expression expression) {
@@ -112,6 +114,16 @@ public class TransformProcessor extends
BaseProcessorSupport implements Traceabl
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
public Expression getExpression() {
return expression;
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/TryProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/TryProcessor.java
index b43e79596df3..26dfe7b90e4e 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/TryProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/TryProcessor.java
@@ -32,6 +32,7 @@ import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.InterceptableProcessor;
import org.apache.camel.spi.ReactiveExecutor;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.AsyncProcessorConverterHelper;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.support.service.ServiceHelper;
@@ -42,7 +43,7 @@ import org.slf4j.LoggerFactory;
* Implements try/catch/finally type processing
*/
public class TryProcessor extends BaseProcessorSupport
- implements Navigate<Processor>, Traceable, IdAware, RouteIdAware,
InterceptableProcessor {
+ implements Navigate<Processor>, Traceable, IdAware, RouteIdAware,
StepIdAware, InterceptableProcessor {
private static final Logger LOG =
LoggerFactory.getLogger(TryProcessor.class);
@@ -50,6 +51,7 @@ public class TryProcessor extends BaseProcessorSupport
protected final ReactiveExecutor reactiveExecutor;
protected String id;
protected String routeId;
+ protected String stepId;
protected final Processor tryProcessor;
protected final List<Processor> catchClauses;
protected final Processor finallyProcessor;
@@ -199,4 +201,14 @@ public class TryProcessor extends BaseProcessorSupport
public void setRouteId(String routeId) {
this.routeId = routeId;
}
+
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
}
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/WireTapProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/WireTapProcessor.java
index 34cc7b915678..bda30103fb71 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/WireTapProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/WireTapProcessor.java
@@ -38,6 +38,7 @@ import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.ProcessorExchangeFactory;
import org.apache.camel.spi.RouteIdAware;
import org.apache.camel.spi.ShutdownAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.AsyncProcessorConverterHelper;
import org.apache.camel.support.service.ServiceHelper;
import org.apache.camel.util.ObjectHelper;
@@ -48,12 +49,13 @@ import org.slf4j.LoggerFactory;
* Processor for wire tapping exchanges to an endpoint destination.
*/
public class WireTapProcessor extends BaseProcessorSupport
- implements Traceable, ShutdownAware, IdAware, RouteIdAware,
CamelContextAware {
+ implements Traceable, ShutdownAware, IdAware, RouteIdAware,
StepIdAware, CamelContextAware {
private static final Logger LOG =
LoggerFactory.getLogger(WireTapProcessor.class);
private String id;
private String routeId;
+ private String stepId;
private CamelContext camelContext;
private final SendDynamicProcessor dynamicSendProcessor; // is only used
for reporting statistics
private final String uri;
@@ -145,6 +147,16 @@ public class WireTapProcessor extends BaseProcessorSupport
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public CamelContext getCamelContext() {
return camelContext;
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
index f10e1663b8a6..96cadd4ba3b5 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
@@ -59,6 +59,7 @@ import org.apache.camel.spi.ReactiveExecutor;
import org.apache.camel.spi.RecoverableAggregationRepository;
import org.apache.camel.spi.RouteIdAware;
import org.apache.camel.spi.ShutdownAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.spi.Synchronization;
import org.apache.camel.support.DefaultTimeoutMap;
import org.apache.camel.support.ExchangeHelper;
@@ -85,7 +86,7 @@ import org.slf4j.LoggerFactory;
* message.
*/
public class AggregateProcessor extends BaseProcessorSupport
- implements Navigate<Processor>, Traceable, ShutdownAware, IdAware,
RouteIdAware {
+ implements Navigate<Processor>, Traceable, ShutdownAware, IdAware,
RouteIdAware, StepIdAware {
public static final String AGGREGATE_TIMEOUT_CHECKER =
"AggregateTimeoutChecker";
public static final String AGGREGATE_OPTIMISTIC_LOCKING_EXECUTOR =
"AggregateOptimisticLockingExecutor";
@@ -106,6 +107,7 @@ public class AggregateProcessor extends BaseProcessorSupport
private final AsyncProcessor processor;
private String id;
private String routeId;
+ private String stepId;
private AggregationStrategy aggregationStrategy;
private boolean preCompletion;
private Expression correlationExpression;
@@ -314,6 +316,16 @@ public class AggregateProcessor extends
BaseProcessorSupport
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public boolean process(Exchange exchange, AsyncCallback callback) {
try {
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
index 5846a3f8a6af..71e75adbb51e 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
@@ -33,6 +33,7 @@ import org.apache.camel.processor.BaseProcessorSupport;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.IdempotentRepository;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.spi.Synchronization;
import org.apache.camel.support.AsyncProcessorConverterHelper;
import org.apache.camel.support.service.ServiceHelper;
@@ -48,13 +49,14 @@ import org.slf4j.LoggerFactory;
* @see org.apache.camel.spi.IdempotentRepository
*/
public class IdempotentConsumer extends BaseProcessorSupport
- implements CamelContextAware, Navigate<Processor>, IdAware,
RouteIdAware {
+ implements CamelContextAware, Navigate<Processor>, IdAware,
RouteIdAware, StepIdAware {
private static final Logger LOG =
LoggerFactory.getLogger(IdempotentConsumer.class);
private CamelContext camelContext;
private String id;
private String routeId;
+ private String stepId;
private final Expression messageIdExpression;
private final AsyncProcessor processor;
private final IdempotentRepository idempotentRepository;
@@ -109,6 +111,16 @@ public class IdempotentConsumer extends
BaseProcessorSupport
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public boolean process(final Exchange exchange, final AsyncCallback
callback) {
final AsyncCallback target;
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancerSupport.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancerSupport.java
index af4e0a640508..933dfd077dee 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancerSupport.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancerSupport.java
@@ -27,17 +27,19 @@ import org.apache.camel.Processor;
import org.apache.camel.processor.BaseProcessorSupport;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.service.ServiceHelper;
/**
* A default base class for a {@link LoadBalancer} implementation.
*/
public abstract class LoadBalancerSupport extends BaseProcessorSupport
- implements LoadBalancer, Navigate<Processor>, IdAware, RouteIdAware {
+ implements LoadBalancer, Navigate<Processor>, IdAware, RouteIdAware,
StepIdAware {
private final AtomicReference<AsyncProcessor[]> processors = new
AtomicReference<>(new AsyncProcessor[0]);
private String id;
private String routeId;
+ private String stepId;
@Override
public void addProcessor(AsyncProcessor processor) {
@@ -112,6 +114,16 @@ public abstract class LoadBalancerSupport extends
BaseProcessorSupport
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
protected void doInit() throws Exception {
ServiceHelper.initService((Object[]) processors.get());
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/resume/ResumableProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/resume/ResumableProcessor.java
index 6ecdcd925688..f14b53af0501 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/resume/ResumableProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/resume/ResumableProcessor.java
@@ -32,6 +32,7 @@ import org.apache.camel.processor.BaseProcessorSupport;
import org.apache.camel.resume.ResumeStrategy;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.spi.Synchronization;
import org.apache.camel.support.AsyncProcessorConverterHelper;
import org.slf4j.Logger;
@@ -41,7 +42,7 @@ import org.slf4j.LoggerFactory;
* Resume EIP
*/
public class ResumableProcessor extends BaseProcessorSupport
- implements Navigate<Processor>, CamelContextAware, IdAware,
RouteIdAware {
+ implements Navigate<Processor>, CamelContextAware, IdAware,
RouteIdAware, StepIdAware {
private static final Logger LOG =
LoggerFactory.getLogger(ResumableProcessor.class);
@@ -52,6 +53,7 @@ public class ResumableProcessor extends BaseProcessorSupport
private final boolean intermittent;
private String id;
private String routeId;
+ private String stepId;
public ResumableProcessor(ResumeStrategy resumeStrategy, Processor
processor, LoggingLevel loggingLevel,
boolean intermittent) {
@@ -115,6 +117,16 @@ public class ResumableProcessor extends
BaseProcessorSupport
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public List<Processor> next() {
if (!hasNext()) {
diff --git
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/SagaProcessor.java
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/SagaProcessor.java
index 784709d2f26f..d88c5965dc40 100644
---
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/SagaProcessor.java
+++
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/saga/SagaProcessor.java
@@ -29,19 +29,22 @@ import org.apache.camel.saga.CamelSagaService;
import org.apache.camel.saga.CamelSagaStep;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.service.ServiceHelper;
import org.apache.camel.util.ObjectHelper;
/**
* Processor for handling sagas.
*/
-public abstract class SagaProcessor extends BaseDelegateProcessorSupport
implements Traceable, IdAware, RouteIdAware {
+public abstract class SagaProcessor extends BaseDelegateProcessorSupport
+ implements Traceable, IdAware, RouteIdAware, StepIdAware {
protected final CamelSagaService sagaService;
protected final CamelSagaStep step;
protected final SagaCompletionMode completionMode;
private String id;
private String routeId;
+ private String stepId;
protected SagaProcessor(CamelContext camelContext, Processor
childProcessor, CamelSagaService sagaService,
SagaCompletionMode completionMode, CamelSagaStep
step) {
@@ -129,6 +132,16 @@ public abstract class SagaProcessor extends
BaseDelegateProcessorSupport impleme
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public String toString() {
return "id";
diff --git
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
index 81e1ff166e75..a8a145ffa767 100644
---
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
+++
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
@@ -124,6 +124,7 @@ import org.apache.camel.spi.InterceptStrategy;
import org.apache.camel.spi.NodeIdFactory;
import org.apache.camel.spi.ProcessorFactory;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.PluginHelper;
import org.apache.camel.util.ObjectHelper;
@@ -781,6 +782,14 @@ public abstract class ProcessorReifier<T extends
ProcessorDefinition<?>> extends
if (processor instanceof RouteIdAware routeIdAware) {
routeIdAware.setRouteId(route.getRouteId());
}
+ if (processor instanceof StepIdAware stepIdAware) {
+ StepDefinition step =
ProcessorDefinitionHelper.findFirstParentOfType(
+ StepDefinition.class, output, true);
+ if (step != null) {
+ stepIdAware.setStepId(step.idOrCreate(
+
camelContext.getCamelContextExtension().getContextPlugin(NodeIdFactory.class)));
+ }
+ }
if (output instanceof Channel && processor == null) {
continue;
@@ -859,6 +868,14 @@ public abstract class ProcessorReifier<T extends
ProcessorDefinition<?>> extends
if (processor instanceof RouteIdAware routeIdAware) {
routeIdAware.setRouteId(route.getRouteId());
}
+ if (processor instanceof StepIdAware stepIdAware) {
+ StepDefinition step =
ProcessorDefinitionHelper.findFirstParentOfType(
+ StepDefinition.class, definition, true);
+ if (step != null) {
+ stepIdAware.setStepId(step.idOrCreate(
+
camelContext.getCamelContextExtension().getContextPlugin(NodeIdFactory.class)));
+ }
+ }
if (processor == null) {
// no processor to make
diff --git
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerMBean.java
b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerMBean.java
index 11f34f096e48..f39ad924467f 100644
---
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerMBean.java
+++
b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerMBean.java
@@ -20,6 +20,9 @@ import org.apache.camel.api.management.ManagedAttribute;
public interface ManagedProducerMBean extends ManagedServiceMBean {
+ @ManagedAttribute(description = "Step ID")
+ String getStepId();
+
@ManagedAttribute(description = "Endpoint URI", mask = true)
String getEndpointUri();
diff --git
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedProducer.java
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedProducer.java
index 94ce8c0d929d..7256b913b5ef 100644
---
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedProducer.java
+++
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedProducer.java
@@ -20,6 +20,7 @@ import org.apache.camel.CamelContext;
import org.apache.camel.Producer;
import org.apache.camel.api.management.ManagedResource;
import org.apache.camel.api.management.mbean.ManagedProducerMBean;
+import org.apache.camel.spi.StepIdAware;
@ManagedResource(description = "Managed Producer")
public class ManagedProducer extends ManagedService implements
ManagedProducerMBean {
@@ -34,6 +35,14 @@ public class ManagedProducer extends ManagedService
implements ManagedProducerMB
return producer;
}
+ @Override
+ public String getStepId() {
+ if (producer instanceof StepIdAware sia) {
+ return sia.getStepId();
+ }
+ return null;
+ }
+
@Override
public String getEndpointUri() {
return producer.getEndpoint().getEndpointUri();
diff --git
a/core/camel-management/src/test/java/org/apache/camel/management/ManagedProducerStepIdTest.java
b/core/camel-management/src/test/java/org/apache/camel/management/ManagedProducerStepIdTest.java
new file mode 100644
index 000000000000..bb583002c01d
--- /dev/null
+++
b/core/camel-management/src/test/java/org/apache/camel/management/ManagedProducerStepIdTest.java
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.management;
+
+import java.util.Set;
+
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.DisabledOnOs;
+import org.junit.jupiter.api.condition.OS;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+@DisabledOnOs(OS.AIX)
+public class ManagedProducerStepIdTest extends ManagementTestSupport {
+
+ @Test
+ public void testProducerStepId() throws Exception {
+ getMockEndpoint("mock:foo").expectedMessageCount(1);
+ getMockEndpoint("mock:result").expectedMessageCount(1);
+
+ template.sendBody("direct:start", "Hello World");
+
+ assertMockEndpointsSatisfied();
+
+ MBeanServer mbeanServer = getMBeanServer();
+
+ Set<ObjectName> set = mbeanServer.queryNames(new
ObjectName("*:type=producers,*"), null);
+ assertEquals(3, set.size());
+
+ for (ObjectName on : set) {
+ boolean registered = mbeanServer.isRegistered(on);
+ assertTrue(registered, "Should be registered");
+
+ String uri = (String) mbeanServer.getAttribute(on, "EndpointUri");
+ String stepId = (String) mbeanServer.getAttribute(on, "StepId");
+
+ if ("log://foo".equals(uri) || "mock://foo".equals(uri)) {
+ assertEquals("myStep", stepId, "Producer inside step should
have stepId");
+ } else if ("mock://result".equals(uri)) {
+ assertNull(stepId, "Producer outside step should not have
stepId");
+ }
+ }
+ }
+
+ @Override
+ protected RouteBuilder createRouteBuilder() {
+ return new RouteBuilder() {
+ @Override
+ public void configure() {
+ from("direct:start").routeId("route1")
+ .step("myStep")
+ .to("log:foo")
+ .to("mock:foo")
+ .end()
+ .to("mock:result");
+ }
+ };
+ }
+
+}
diff --git
a/core/camel-support/src/main/java/org/apache/camel/support/DefaultConsumer.java
b/core/camel-support/src/main/java/org/apache/camel/support/DefaultConsumer.java
index 5c8fbcd9fc11..61bf9032d850 100644
---
a/core/camel-support/src/main/java/org/apache/camel/support/DefaultConsumer.java
+++
b/core/camel-support/src/main/java/org/apache/camel/support/DefaultConsumer.java
@@ -31,6 +31,7 @@ import org.apache.camel.spi.ExceptionHandler;
import org.apache.camel.spi.ExchangeFactory;
import org.apache.camel.spi.HostedService;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.spi.UnitOfWork;
import org.apache.camel.support.service.ServiceHelper;
import org.apache.camel.support.service.ServiceSupport;
@@ -42,7 +43,7 @@ import org.slf4j.LoggerFactory;
* A default consumer useful for implementation inheritance.
*/
public class DefaultConsumer extends ServiceSupport
- implements Consumer, RouteAware, RouteIdAware, HealthCheckAware,
HostedService {
+ implements Consumer, RouteAware, RouteIdAware, StepIdAware,
HealthCheckAware, HostedService {
private static final Logger LOG =
LoggerFactory.getLogger(DefaultConsumer.class);
@@ -55,6 +56,7 @@ public class DefaultConsumer extends ServiceSupport
private ExceptionHandler exceptionHandler;
private Route route;
private String routeId;
+ private String stepId;
public DefaultConsumer(Endpoint endpoint, Processor processor) {
this.endpoint = endpoint;
@@ -99,6 +101,16 @@ public class DefaultConsumer extends ServiceSupport
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
/**
* If the consumer needs to defer done the {@link
org.apache.camel.spi.UnitOfWork} on the processed {@link Exchange}
* then this method should be use to create and start the {@link
UnitOfWork} on the exchange.
diff --git
a/core/camel-support/src/main/java/org/apache/camel/support/DefaultProducer.java
b/core/camel-support/src/main/java/org/apache/camel/support/DefaultProducer.java
index cefd52139224..844c9d056471 100644
---
a/core/camel-support/src/main/java/org/apache/camel/support/DefaultProducer.java
+++
b/core/camel-support/src/main/java/org/apache/camel/support/DefaultProducer.java
@@ -19,6 +19,7 @@ package org.apache.camel.support;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.Producer;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.service.ServiceSupport;
import org.apache.camel.util.URISupport;
import org.slf4j.Logger;
@@ -27,12 +28,13 @@ import org.slf4j.LoggerFactory;
/**
* A default implementation of {@link Producer} for implementation inheritance.
*/
-public abstract class DefaultProducer extends ServiceSupport implements
Producer {
+public abstract class DefaultProducer extends ServiceSupport implements
Producer, StepIdAware {
private static final Logger LOG =
LoggerFactory.getLogger(DefaultProducer.class);
private transient String producerToString;
private final Endpoint endpoint;
+ private String stepId;
protected DefaultProducer(Endpoint endpoint) {
this.endpoint = endpoint;
@@ -63,6 +65,16 @@ public abstract class DefaultProducer extends ServiceSupport
implements Producer
return endpoint.isSingleton();
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
protected void doStart() throws Exception {
// log at debug level for singletons, for prototype scoped log at
trace level to not spam logs
diff --git
a/core/camel-support/src/main/java/org/apache/camel/support/processor/CamelLogProcessor.java
b/core/camel-support/src/main/java/org/apache/camel/support/processor/CamelLogProcessor.java
index 6162ab3247bb..cd06ad998e90 100644
---
a/core/camel-support/src/main/java/org/apache/camel/support/processor/CamelLogProcessor.java
+++
b/core/camel-support/src/main/java/org/apache/camel/support/processor/CamelLogProcessor.java
@@ -28,6 +28,7 @@ import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.LogListener;
import org.apache.camel.spi.MaskingFormatter;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.AsyncProcessorSupport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,12 +40,13 @@ import org.slf4j.LoggerFactory;
* The name <tt>CamelLogger</tt> has been chosen to avoid any name clash with
log kits which has a <tt>Logger</tt>
* class.
*/
-public class CamelLogProcessor extends AsyncProcessorSupport implements
IdAware, RouteIdAware {
+public class CamelLogProcessor extends AsyncProcessorSupport implements
IdAware, RouteIdAware, StepIdAware {
private static final Logger LOG =
LoggerFactory.getLogger(CamelLogProcessor.class);
private String id;
private String routeId;
+ private String stepId;
private final CamelLogger logger;
private ExchangeFormatter formatter;
private MaskingFormatter maskingFormatter;
@@ -93,6 +95,16 @@ public class CamelLogProcessor extends AsyncProcessorSupport
implements IdAware,
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public boolean process(Exchange exchange, AsyncCallback callback) {
if (logger.shouldLog()) {
diff --git
a/core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertBodyProcessor.java
b/core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertBodyProcessor.java
index 63bfc948b412..008c5c627c57 100644
---
a/core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertBodyProcessor.java
+++
b/core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertBodyProcessor.java
@@ -26,6 +26,7 @@ import org.apache.camel.ExchangePropertyKey;
import org.apache.camel.Message;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.AsyncCallbackToCompletableFutureAdapter;
import org.apache.camel.support.DefaultMessage;
import org.apache.camel.support.ExchangeHelper;
@@ -38,9 +39,11 @@ import org.apache.camel.util.ObjectHelper;
* <p/>
* If the conversion fails an {@link org.apache.camel.InvalidPayloadException}
is thrown.
*/
-public class ConvertBodyProcessor extends ServiceSupport implements
AsyncProcessor, IdAware, RouteIdAware, DisabledAware {
+public class ConvertBodyProcessor extends ServiceSupport
+ implements AsyncProcessor, IdAware, RouteIdAware, StepIdAware,
DisabledAware {
private String id;
private String routeId;
+ private String stepId;
private boolean disabled;
private final Class<?> type;
private final String charset;
@@ -92,6 +95,16 @@ public class ConvertBodyProcessor extends ServiceSupport
implements AsyncProcess
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public boolean isDisabled() {
return disabled;
diff --git
a/core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertHeaderProcessor.java
b/core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertHeaderProcessor.java
index f13fd1245ae3..b600af29371e 100644
---
a/core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertHeaderProcessor.java
+++
b/core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertHeaderProcessor.java
@@ -28,6 +28,7 @@ import org.apache.camel.Message;
import org.apache.camel.NoSuchHeaderOrPropertyException;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.AsyncCallbackToCompletableFutureAdapter;
import org.apache.camel.support.service.ServiceSupport;
import org.apache.camel.util.IOHelper;
@@ -36,10 +37,12 @@ import org.apache.camel.util.ObjectHelper;
/**
* A processor which converts the message header to be of the given type
*/
-public class ConvertHeaderProcessor extends ServiceSupport implements
AsyncProcessor, IdAware, RouteIdAware, DisabledAware {
+public class ConvertHeaderProcessor extends ServiceSupport
+ implements AsyncProcessor, IdAware, RouteIdAware, StepIdAware,
DisabledAware {
private String id;
private String routeId;
+ private String stepId;
private boolean disabled;
private final String name;
private final Expression headerName;
@@ -87,6 +90,16 @@ public class ConvertHeaderProcessor extends ServiceSupport
implements AsyncProce
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public boolean isDisabled() {
return disabled;
diff --git
a/core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertVariableProcessor.java
b/core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertVariableProcessor.java
index 3f0610b9cf20..959191ec3de3 100644
---
a/core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertVariableProcessor.java
+++
b/core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertVariableProcessor.java
@@ -29,6 +29,7 @@ import org.apache.camel.Expression;
import org.apache.camel.NoSuchVariableException;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.spi.VariableRepository;
import org.apache.camel.spi.VariableRepositoryFactory;
import org.apache.camel.support.AsyncCallbackToCompletableFutureAdapter;
@@ -41,12 +42,13 @@ import org.apache.camel.util.StringHelper;
* A processor which converts the variable to be of the given type
*/
public class ConvertVariableProcessor extends ServiceSupport
- implements AsyncProcessor, IdAware, RouteIdAware, CamelContextAware,
DisabledAware {
+ implements AsyncProcessor, IdAware, RouteIdAware, StepIdAware,
CamelContextAware, DisabledAware {
private CamelContext camelContext;
private VariableRepositoryFactory factory;
private String id;
private String routeId;
+ private String stepId;
private boolean disabled;
private final String name;
private final Expression variableName;
@@ -104,6 +106,16 @@ public class ConvertVariableProcessor extends
ServiceSupport
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public boolean isDisabled() {
return disabled;
diff --git
a/core/camel-support/src/main/java/org/apache/camel/support/processor/MarshalProcessor.java
b/core/camel-support/src/main/java/org/apache/camel/support/processor/MarshalProcessor.java
index f31cbf0ac1b7..c1ce4eccf93e 100644
---
a/core/camel-support/src/main/java/org/apache/camel/support/processor/MarshalProcessor.java
+++
b/core/camel-support/src/main/java/org/apache/camel/support/processor/MarshalProcessor.java
@@ -26,6 +26,7 @@ import org.apache.camel.Traceable;
import org.apache.camel.spi.DataFormat;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.AsyncProcessorSupport;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.support.builder.OutputStreamBuilder;
@@ -37,10 +38,11 @@ import org.apache.camel.util.ObjectHelper;
* format</a>
*/
public class MarshalProcessor extends AsyncProcessorSupport
- implements Traceable, CamelContextAware, IdAware, RouteIdAware,
DisabledAware {
+ implements Traceable, CamelContextAware, IdAware, RouteIdAware,
StepIdAware, DisabledAware {
private String id;
private String routeId;
+ private String stepId;
private CamelContext camelContext;
private final DataFormat dataFormat;
private boolean disabled;
@@ -120,6 +122,16 @@ public class MarshalProcessor extends AsyncProcessorSupport
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public boolean isDisabled() {
return disabled;
diff --git
a/core/camel-support/src/main/java/org/apache/camel/support/processor/ThroughputLogger.java
b/core/camel-support/src/main/java/org/apache/camel/support/processor/ThroughputLogger.java
index c21e46a1634b..2269ad814dcc 100644
---
a/core/camel-support/src/main/java/org/apache/camel/support/processor/ThroughputLogger.java
+++
b/core/camel-support/src/main/java/org/apache/camel/support/processor/ThroughputLogger.java
@@ -27,6 +27,7 @@ import org.apache.camel.Exchange;
import org.apache.camel.spi.CamelLogger;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.AsyncProcessorSupport;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.StopWatch;
@@ -36,12 +37,13 @@ import org.slf4j.LoggerFactory;
/**
* A logger for logging message throughput.
*/
-public class ThroughputLogger extends AsyncProcessorSupport implements
IdAware, RouteIdAware {
+public class ThroughputLogger extends AsyncProcessorSupport implements
IdAware, RouteIdAware, StepIdAware {
private static final Logger LOG =
LoggerFactory.getLogger(ThroughputLogger.class);
private String id;
private String routeId;
+ private String stepId;
private final AtomicLong receivedCounter = new AtomicLong();
private NumberFormat numberFormat = NumberFormat.getNumberInstance();
private long groupReceivedCount;
@@ -99,6 +101,16 @@ public class ThroughputLogger extends AsyncProcessorSupport
implements IdAware,
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public void process(Exchange exchange) throws Exception {
long receivedCount = receivedCounter.incrementAndGet();
diff --git
a/core/camel-support/src/main/java/org/apache/camel/support/processor/UnmarshalProcessor.java
b/core/camel-support/src/main/java/org/apache/camel/support/processor/UnmarshalProcessor.java
index 4de97930ad8b..e466f22a5fd5 100644
---
a/core/camel-support/src/main/java/org/apache/camel/support/processor/UnmarshalProcessor.java
+++
b/core/camel-support/src/main/java/org/apache/camel/support/processor/UnmarshalProcessor.java
@@ -30,6 +30,7 @@ import org.apache.camel.Traceable;
import org.apache.camel.spi.DataFormat;
import org.apache.camel.spi.IdAware;
import org.apache.camel.spi.RouteIdAware;
+import org.apache.camel.spi.StepIdAware;
import org.apache.camel.support.AsyncProcessorSupport;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.support.service.ServiceHelper;
@@ -41,10 +42,11 @@ import org.apache.camel.util.ObjectHelper;
* format</a>
*/
public class UnmarshalProcessor extends AsyncProcessorSupport
- implements Traceable, CamelContextAware, IdAware, RouteIdAware,
DisabledAware {
+ implements Traceable, CamelContextAware, IdAware, RouteIdAware,
StepIdAware, DisabledAware {
private String id;
private String routeId;
+ private String stepId;
private CamelContext camelContext;
private boolean disabled;
private final DataFormat dataFormat;
@@ -157,6 +159,16 @@ public class UnmarshalProcessor extends
AsyncProcessorSupport
this.routeId = routeId;
}
+ @Override
+ public String getStepId() {
+ return stepId;
+ }
+
+ @Override
+ public void setStepId(String stepId) {
+ this.stepId = stepId;
+ }
+
@Override
public CamelContext getCamelContext() {
return camelContext;