/** * Creates the transaction error handler. * * @param camelContext the camel context * @param output outer processor that should use this default error handler * @param logger logger to use for logging failures and redelivery attempts * @param redeliveryProcessor an optional processor to run before redelivery attempt * @param redeliveryPolicy policy for redelivery * @param exceptionPolicyStrategy strategy for onException handling * @param transactionTemplate the transaction template * @param retryWhile retry while * @param executorService the {@link java.util.concurrent.ScheduledExecutorService} to be used for redelivery thread pool. Can be <tt>null</tt>. * @param rollbackLoggingLevel logging level to use for logging transaction rollback occurred * @param onExceptionOccurredProcessor a custom {@link org.apache.camel.Processor} to process the {@link org.apache.camel.Exchange} just after an exception was thrown. */ public TransactionErrorHandler(CamelContext camelContext, Processor output, CamelLogger logger, Processor redeliveryProcessor, RedeliveryPolicy redeliveryPolicy, ExceptionPolicyStrategy exceptionPolicyStrategy, TransactionTemplate transactionTemplate, Predicate retryWhile, ScheduledExecutorService executorService, LoggingLevel rollbackLoggingLevel, Processor onExceptionOccurredProcessor) { super(camelContext, output, logger, redeliveryProcessor, redeliveryPolicy, null, null, false, false, retryWhile, executorService, null, onExceptionOccurredProcessor); setExceptionPolicy(exceptionPolicyStrategy); this.transactionTemplate = transactionTemplate; this.rollbackLoggingLevel = rollbackLoggingLevel; this.transactionKey = ObjectHelper.getIdentityHashCode(transactionTemplate); }
@Override public String toString() { // do not dump the mail content, as it requires live connection to the mail server return "MailMessage@" + ObjectHelper.getIdentityHashCode(this); }
@Override public String toString() { // do not use toString on HTTP message return "HttpMessage@" + ObjectHelper.getIdentityHashCode(this); } }
@Override public String toString() { // do not print jmsMessage as there could be sensitive details if (jmsMessage != null) { try { return "JmsMessage[JmsMessageID: " + jmsMessage.getJMSMessageID() + "]"; } catch (Throwable e) { // ignore } } return "JmsMessage@" + ObjectHelper.getIdentityHashCode(this); }
@Override public ObjectName getObjectNameForService(CamelContext context, Service service) throws MalformedObjectNameException { StringBuilder buffer = new StringBuilder(); buffer.append(domainName).append(":"); buffer.append(KEY_CONTEXT + "=").append(getContextId(context)).append(","); // special for fabric if (service.getClass().getCanonicalName().startsWith("org.apache.camel.fabric")) { buffer.append(KEY_TYPE + "=" + TYPE_FABRIC + ","); } else if (service.getClass().getCanonicalName().startsWith("org.fusesource.insight.camel")) { buffer.append(KEY_TYPE + "=" + TYPE_INSIGHT + ","); } else { buffer.append(KEY_TYPE + "=" + TYPE_SERVICE + ","); } buffer.append(KEY_NAME + "=") .append(service.getClass().getSimpleName()) .append("(").append(ObjectHelper.getIdentityHashCode(service)).append(")"); return createObjectName(buffer); }
@Override public ObjectName getObjectNameForService(CamelContext context, Service service) throws MalformedObjectNameException { StringBuilder buffer = new StringBuilder(); buffer.append(domainName).append(":"); buffer.append(KEY_CONTEXT + "=").append(getContextId(context)).append(","); // special for fabric if (service.getClass().getCanonicalName().startsWith("org.apache.camel.fabric")) { buffer.append(KEY_TYPE + "=" + TYPE_FABRIC + ","); } else if (service.getClass().getCanonicalName().startsWith("io.fabric8.insight.camel")) { buffer.append(KEY_TYPE + "=" + TYPE_INSIGHT + ","); } else { buffer.append(KEY_TYPE + "=" + TYPE_SERVICE + ","); } buffer.append(KEY_NAME + "=") .append(service.getClass().getSimpleName()) .append("(").append(ObjectHelper.getIdentityHashCode(service)).append(")"); return createObjectName(buffer); }
/** * Creates the transaction error handler. * * @param camelContext * the camel context * @param output * outer processor that should use this default error handler * @param exceptionPolicyStrategy * strategy for onException handling * @param transactionPolicy * the transaction policy * @param executorService * the {@link java.util.concurrent.ScheduledExecutorService} to * be used for redelivery thread pool. Can be <tt>null</tt>. * @param rollbackLoggingLevel * logging level to use for logging transaction rollback occurred */ public TransactionErrorHandler(CamelContext camelContext, Processor output, ExceptionPolicyStrategy exceptionPolicyStrategy, JtaTransactionPolicy transactionPolicy, ScheduledExecutorService executorService, LoggingLevel rollbackLoggingLevel) { this.output = output; this.transactionPolicy = transactionPolicy; this.rollbackLoggingLevel = rollbackLoggingLevel; this.transactionKey = ObjectHelper.getIdentityHashCode(transactionPolicy); setExceptionPolicy(exceptionPolicyStrategy); }
@Override public String toString() { if (getJmsMessage() != null) { return "BrokerJmsMessage[JMSMessageID: " + JmsMessageHelper.getJMSMessageID(getJmsMessage()); } else { return "BrokerJmsMessage@" + ObjectHelper.getIdentityHashCode(this); } }
@Override public String toString() { if (getJmsMessage() != null) { return "BrokerJmsMessage[JMSMessageID: " + JmsMessageHelper.getJMSMessageID(getJmsMessage()); } else { return "BrokerJmsMessage@" + ObjectHelper.getIdentityHashCode(this); } }
@Override public String toString() { if (getJmsMessage() != null) { return "BrokerJmsMessage[JMSMessageID: " + JmsMessageHelper.getJMSMessageID(getJmsMessage()); } else { return "BrokerJmsMessage@" + ObjectHelper.getIdentityHashCode(this); } }
protected Scheduler createScheduler() throws SchedulerException { Scheduler scheduler = getFactory().getScheduler(); if (LOG.isDebugEnabled()) { LOG.debug("Using SchedulerFactory {} to get/create Scheduler {}({})", new Object[]{getFactory(), scheduler, ObjectHelper.getIdentityHashCode(scheduler)}); } // register current camel context to scheduler so we can look it up when jobs is being triggered // must use management name as it should be unique in the same JVM String uid = QuartzHelper.getQuartzContextName(getCamelContext()); scheduler.getContext().put(QuartzConstants.QUARTZ_CAMEL_CONTEXT + "-" + uid, getCamelContext()); // store Camel job counter AtomicInteger number = (AtomicInteger) scheduler.getContext().get("CamelJobs"); if (number == null) { number = new AtomicInteger(0); scheduler.getContext().put("CamelJobs", number); } return scheduler; }