001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.camel.model; 018 019import javax.xml.bind.annotation.XmlAccessType; 020import javax.xml.bind.annotation.XmlAccessorType; 021import javax.xml.bind.annotation.XmlAttribute; 022import javax.xml.bind.annotation.XmlRootElement; 023 024import org.apache.camel.LoggingLevel; 025import org.apache.camel.spi.Metadata; 026 027/** 028 * To configure re-delivery for error handling 029 */ 030@Metadata(label = "configuration") 031@XmlRootElement(name = "redeliveryPolicy") 032@XmlAccessorType(XmlAccessType.FIELD) 033public class RedeliveryPolicyDefinition { 034 @XmlAttribute 035 private String maximumRedeliveries; 036 @XmlAttribute 037 private String redeliveryDelay; 038 @XmlAttribute 039 private String asyncDelayedRedelivery; 040 @XmlAttribute 041 private String backOffMultiplier; 042 @XmlAttribute 043 private String useExponentialBackOff; 044 @XmlAttribute 045 private String collisionAvoidanceFactor; 046 @XmlAttribute 047 private String useCollisionAvoidance; 048 @XmlAttribute 049 private String maximumRedeliveryDelay; 050 @XmlAttribute 051 private String retriesExhaustedLogLevel; 052 @XmlAttribute 053 private String retryAttemptedLogLevel; 054 @XmlAttribute 055 private String retryAttemptedLogInterval; 056 @XmlAttribute 057 private String logRetryAttempted; 058 @XmlAttribute 059 private String logStackTrace; 060 @XmlAttribute 061 private String logRetryStackTrace; 062 @XmlAttribute 063 private String logHandled; 064 @XmlAttribute 065 private String logNewException; 066 @XmlAttribute 067 private String logContinued; 068 @XmlAttribute 069 private String logExhausted; 070 @XmlAttribute 071 private String logExhaustedMessageHistory; 072 @XmlAttribute 073 private String logExhaustedMessageBody; 074 @XmlAttribute 075 private String disableRedelivery; 076 @XmlAttribute 077 private String delayPattern; 078 @XmlAttribute 079 private String allowRedeliveryWhileStopping; 080 @XmlAttribute 081 private String exchangeFormatterRef; 082 083 @Override 084 public String toString() { 085 return "RedeliveryPolicy[maximumRedeliveries: " + maximumRedeliveries + "]"; 086 } 087 088 // Fluent API 089 // ------------------------------------------------------------------------- 090 091 /** 092 * Allow synchronous delayed redelivery. The route, in particular the 093 * consumer's component, must support the Asynchronous Routing Engine (e.g. 094 * seda). 095 * 096 * @return the builder 097 */ 098 public RedeliveryPolicyDefinition asyncDelayedRedelivery() { 099 setAsyncDelayedRedelivery("true"); 100 return this; 101 } 102 103 /** 104 * Controls whether to allow redelivery while stopping/shutting down a route 105 * that uses error handling. 106 * 107 * @param allowRedeliveryWhileStopping <tt>true</tt> to allow redelivery, 108 * <tt>false</tt> to reject redeliveries 109 * @return the builder 110 */ 111 public RedeliveryPolicyDefinition allowRedeliveryWhileStopping(boolean allowRedeliveryWhileStopping) { 112 return allowRedeliveryWhileStopping(Boolean.toString(allowRedeliveryWhileStopping)); 113 } 114 115 /** 116 * Controls whether to allow redelivery while stopping/shutting down a route 117 * that uses error handling. 118 * 119 * @param allowRedeliveryWhileStopping <tt>true</tt> to allow redelivery, 120 * <tt>false</tt> to reject redeliveries 121 * @return the builder 122 */ 123 public RedeliveryPolicyDefinition allowRedeliveryWhileStopping(String allowRedeliveryWhileStopping) { 124 setAllowRedeliveryWhileStopping(allowRedeliveryWhileStopping); 125 return this; 126 } 127 128 /** 129 * Sets the back off multiplier 130 * 131 * @param backOffMultiplier the back off multiplier 132 * @return the builder 133 */ 134 public RedeliveryPolicyDefinition backOffMultiplier(double backOffMultiplier) { 135 return backOffMultiplier(Double.toString(backOffMultiplier)); 136 } 137 138 /** 139 * Sets the back off multiplier (supports property placeholders) 140 * 141 * @param backOffMultiplier the back off multiplier 142 * @return the builder 143 */ 144 public RedeliveryPolicyDefinition backOffMultiplier(String backOffMultiplier) { 145 setBackOffMultiplier(backOffMultiplier); 146 return this; 147 } 148 149 /** 150 * Sets the collision avoidance percentage 151 * 152 * @param collisionAvoidancePercent the percentage 153 * @return the builder 154 */ 155 public RedeliveryPolicyDefinition collisionAvoidancePercent(double collisionAvoidancePercent) { 156 setCollisionAvoidanceFactor(Double.toString(collisionAvoidancePercent * 0.01d)); 157 return this; 158 } 159 160 /** 161 * Sets the collision avoidance factor 162 * 163 * @param collisionAvoidanceFactor the factor 164 * @return the builder 165 */ 166 public RedeliveryPolicyDefinition collisionAvoidanceFactor(double collisionAvoidanceFactor) { 167 return collisionAvoidanceFactor(Double.toString(collisionAvoidanceFactor)); 168 } 169 170 /** 171 * Sets the collision avoidance factor (supports property placeholders) 172 * 173 * @param collisionAvoidanceFactor the factor 174 * @return the builder 175 */ 176 public RedeliveryPolicyDefinition collisionAvoidanceFactor(String collisionAvoidanceFactor) { 177 setCollisionAvoidanceFactor(collisionAvoidanceFactor); 178 return this; 179 } 180 181 /** 182 * Sets the initial redelivery delay 183 * 184 * @param delay delay in millis 185 * @return the builder 186 */ 187 public RedeliveryPolicyDefinition redeliveryDelay(long delay) { 188 return redeliveryDelay(Long.toString(delay)); 189 } 190 191 /** 192 * Sets the initial redelivery delay (supports property placeholders) 193 * 194 * @param delay delay in millis 195 * @return the builder 196 */ 197 public RedeliveryPolicyDefinition redeliveryDelay(String delay) { 198 setRedeliveryDelay(delay); 199 return this; 200 } 201 202 /** 203 * Sets the logging level to use when retries has exhausted 204 * 205 * @param retriesExhaustedLogLevel the logging level 206 * @return the builder 207 */ 208 public RedeliveryPolicyDefinition retriesExhaustedLogLevel(LoggingLevel retriesExhaustedLogLevel) { 209 return retriesExhaustedLogLevel(retriesExhaustedLogLevel.name()); 210 } 211 212 /** 213 * Sets the logging level to use when retries has exhausted 214 * 215 * @param retriesExhaustedLogLevel the logging level 216 * @return the builder 217 */ 218 public RedeliveryPolicyDefinition retriesExhaustedLogLevel(String retriesExhaustedLogLevel) { 219 setRetriesExhaustedLogLevel(retriesExhaustedLogLevel); 220 return this; 221 } 222 223 /** 224 * Sets the logging level to use for logging retry attempts 225 * 226 * @param retryAttemptedLogLevel the logging level 227 * @return the builder 228 */ 229 public RedeliveryPolicyDefinition retryAttemptedLogLevel(LoggingLevel retryAttemptedLogLevel) { 230 return retryAttemptedLogLevel(retryAttemptedLogLevel.name()); 231 } 232 233 /** 234 * Sets the logging level to use for logging retry attempts 235 * 236 * @param retryAttemptedLogLevel the logging level 237 * @return the builder 238 */ 239 public RedeliveryPolicyDefinition retryAttemptedLogLevel(String retryAttemptedLogLevel) { 240 setRetryAttemptedLogLevel(retryAttemptedLogLevel); 241 return this; 242 } 243 244 /** 245 * Sets the interval to use for logging retry attempts 246 * 247 * @param retryAttemptedLogInterval the retry logging interval 248 * @return the builder 249 */ 250 public RedeliveryPolicyDefinition retryAttemptedLogInterval(String retryAttemptedLogInterval) { 251 setRetryAttemptedLogInterval(retryAttemptedLogInterval); 252 return this; 253 } 254 255 /** 256 * Sets whether stack traces should be logged. Can be used to include or 257 * reduce verbose. 258 * 259 * @param logStackTrace whether stack traces should be logged or not 260 * @return the builder 261 */ 262 public RedeliveryPolicyDefinition logStackTrace(boolean logStackTrace) { 263 return logStackTrace(Boolean.toString(logStackTrace)); 264 } 265 266 /** 267 * Sets whether stack traces should be logged (supports property 268 * placeholders) Can be used to include or reduce verbose. 269 * 270 * @param logStackTrace whether stack traces should be logged or not 271 * @return the builder 272 */ 273 public RedeliveryPolicyDefinition logStackTrace(String logStackTrace) { 274 setLogStackTrace(logStackTrace); 275 return this; 276 } 277 278 /** 279 * Sets whether stack traces should be logged when an retry attempt failed. 280 * Can be used to include or reduce verbose. 281 * 282 * @param logRetryStackTrace whether stack traces should be logged or not 283 * @return the builder 284 */ 285 public RedeliveryPolicyDefinition logRetryStackTrace(boolean logRetryStackTrace) { 286 return logRetryStackTrace(Boolean.toString(logRetryStackTrace)); 287 } 288 289 /** 290 * Sets whether stack traces should be logged when an retry attempt failed 291 * (supports property placeholders). Can be used to include or reduce 292 * verbose. 293 * 294 * @param logRetryStackTrace whether stack traces should be logged or not 295 * @return the builder 296 */ 297 public RedeliveryPolicyDefinition logRetryStackTrace(String logRetryStackTrace) { 298 setLogRetryStackTrace(logRetryStackTrace); 299 return this; 300 } 301 302 /** 303 * Sets whether retry attempts should be logged or not. Can be used to 304 * include or reduce verbose. 305 * 306 * @param logRetryAttempted whether retry attempts should be logged or not 307 * @return the builder 308 */ 309 public RedeliveryPolicyDefinition logRetryAttempted(boolean logRetryAttempted) { 310 return logRetryAttempted(Boolean.toString(logRetryAttempted)); 311 } 312 313 /** 314 * Sets whether retry attempts should be logged or not (supports property 315 * placeholders). Can be used to include or reduce verbose. 316 * 317 * @param logRetryAttempted whether retry attempts should be logged or not 318 * @return the builder 319 */ 320 public RedeliveryPolicyDefinition logRetryAttempted(String logRetryAttempted) { 321 setLogRetryAttempted(logRetryAttempted); 322 return this; 323 } 324 325 /** 326 * Sets whether handled exceptions should be logged or not. Can be used to 327 * include or reduce verbose. 328 * 329 * @param logHandled whether handled exceptions should be logged or not 330 * @return the builder 331 */ 332 public RedeliveryPolicyDefinition logHandled(boolean logHandled) { 333 return logHandled(Boolean.toString(logHandled)); 334 } 335 336 /** 337 * Sets whether handled exceptions should be logged or not (supports 338 * property placeholders). Can be used to include or reduce verbose. 339 * 340 * @param logHandled whether handled exceptions should be logged or not 341 * @return the builder 342 */ 343 public RedeliveryPolicyDefinition logHandled(String logHandled) { 344 setLogHandled(logHandled); 345 return this; 346 } 347 348 /** 349 * Sets whether new exceptions should be logged or not. Can be used to 350 * include or reduce verbose. 351 * <p/> 352 * A new exception is an exception that was thrown while handling a previous 353 * exception. 354 * 355 * @param logNewException whether new exceptions should be logged or not 356 * @return the builder 357 */ 358 public RedeliveryPolicyDefinition logNewException(boolean logNewException) { 359 return logNewException(Boolean.toString(logNewException)); 360 } 361 362 /** 363 * Sets whether new exceptions should be logged or not (supports property 364 * placeholders). Can be used to include or reduce verbose. 365 * <p/> 366 * A new exception is an exception that was thrown while handling a previous 367 * exception. 368 * 369 * @param logNewException whether new exceptions should be logged or not 370 * @return the builder 371 */ 372 public RedeliveryPolicyDefinition logNewException(String logNewException) { 373 setLogNewException(logNewException); 374 return this; 375 } 376 377 /** 378 * Sets whether continued exceptions should be logged or not. Can be used to 379 * include or reduce verbose. 380 * 381 * @param logContinued whether continued exceptions should be logged or not 382 * @return the builder 383 */ 384 public RedeliveryPolicyDefinition logContinued(boolean logContinued) { 385 return logContinued(Boolean.toString(logContinued)); 386 } 387 388 /** 389 * Sets whether continued exceptions should be logged or not (supports 390 * property placeholders). Can be used to include or reduce verbose. 391 * 392 * @param logContinued whether continued exceptions should be logged or not 393 * @return the builder 394 */ 395 public RedeliveryPolicyDefinition logContinued(String logContinued) { 396 setLogContinued(logContinued); 397 return this; 398 } 399 400 /** 401 * Sets whether exhausted exceptions should be logged or not. Can be used to 402 * include or reduce verbose. 403 * 404 * @param logExhausted whether exhausted exceptions should be logged or not 405 * @return the builder 406 */ 407 public RedeliveryPolicyDefinition logExhausted(boolean logExhausted) { 408 return logExhausted(Boolean.toString(logExhausted)); 409 } 410 411 /** 412 * Sets whether exhausted exceptions should be logged or not (supports 413 * property placeholders). Can be used to include or reduce verbose. 414 * 415 * @param logExhausted whether exhausted exceptions should be logged or not 416 * @return the builder 417 */ 418 public RedeliveryPolicyDefinition logExhausted(String logExhausted) { 419 setLogExhausted(logExhausted); 420 return this; 421 } 422 423 /** 424 * Sets whether exhausted exceptions should be logged including message 425 * history or not (supports property placeholders). Can be used to include 426 * or reduce verbose. 427 * 428 * @param logExhaustedMessageHistory whether exhausted exceptions should be 429 * logged with message history 430 * @return the builder 431 */ 432 public RedeliveryPolicyDefinition logExhaustedMessageHistory(boolean logExhaustedMessageHistory) { 433 setLogExhaustedMessageHistory(Boolean.toString(logExhaustedMessageHistory)); 434 return this; 435 } 436 437 /** 438 * Sets whether exhausted exceptions should be logged including message 439 * history or not (supports property placeholders). Can be used to include 440 * or reduce verbose. 441 * 442 * @param logExhaustedMessageHistory whether exhausted exceptions should be 443 * logged with message history 444 * @return the builder 445 */ 446 public RedeliveryPolicyDefinition logExhaustedMessageHistory(String logExhaustedMessageHistory) { 447 setLogExhaustedMessageHistory(logExhaustedMessageHistory); 448 return this; 449 } 450 451 /** 452 * Sets whether exhausted message body should be logged including message 453 * history or not (supports property placeholders). Can be used to include 454 * or reduce verbose. Requires <tt>logExhaustedMessageHistory</tt> to be 455 * enabled. 456 * 457 * @param logExhaustedMessageBody whether exhausted message body should be 458 * logged with message history 459 * @return the builder 460 */ 461 public RedeliveryPolicyDefinition logExhaustedMessageBody(boolean logExhaustedMessageBody) { 462 setLogExhaustedMessageBody(Boolean.toString(logExhaustedMessageBody)); 463 return this; 464 } 465 466 /** 467 * Sets whether exhausted message body should be logged including message 468 * history or not (supports property placeholders). Can be used to include 469 * or reduce verbose. Requires <tt>logExhaustedMessageHistory</tt> to be 470 * enabled. 471 * 472 * @param logExhaustedMessageBody whether exhausted message body should be 473 * logged with message history 474 * @return the builder 475 */ 476 public RedeliveryPolicyDefinition logExhaustedMessageBody(String logExhaustedMessageBody) { 477 setLogExhaustedMessageBody(logExhaustedMessageBody); 478 return this; 479 } 480 481 /** 482 * Sets the maximum redeliveries 483 * <ul> 484 * <li>x = redeliver at most x times</li> 485 * <li>0 = no redeliveries</li> 486 * <li>-1 = redeliver forever</li> 487 * </ul> 488 * 489 * @param maximumRedeliveries the value 490 * @return the builder 491 */ 492 public RedeliveryPolicyDefinition maximumRedeliveries(int maximumRedeliveries) { 493 return maximumRedeliveries(Integer.toString(maximumRedeliveries)); 494 } 495 496 /** 497 * Sets the maximum redeliveries (supports property placeholders) 498 * <ul> 499 * <li>x = redeliver at most x times</li> 500 * <li>0 = no redeliveries</li> 501 * <li>-1 = redeliver forever</li> 502 * </ul> 503 * 504 * @param maximumRedeliveries the value 505 * @return the builder 506 */ 507 public RedeliveryPolicyDefinition maximumRedeliveries(String maximumRedeliveries) { 508 setMaximumRedeliveries(maximumRedeliveries); 509 return this; 510 } 511 512 /** 513 * Turn on collision avoidance. 514 * 515 * @return the builder 516 */ 517 public RedeliveryPolicyDefinition useCollisionAvoidance() { 518 setUseCollisionAvoidance("true"); 519 return this; 520 } 521 522 /** 523 * Turn on exponential backk off 524 * 525 * @return the builder 526 */ 527 public RedeliveryPolicyDefinition useExponentialBackOff() { 528 setUseExponentialBackOff("true"); 529 return this; 530 } 531 532 /** 533 * Sets the maximum delay between redelivery 534 * 535 * @param maximumRedeliveryDelay the delay in millis 536 * @return the builder 537 */ 538 public RedeliveryPolicyDefinition maximumRedeliveryDelay(long maximumRedeliveryDelay) { 539 return maximumRedeliveryDelay(Long.toString(maximumRedeliveryDelay)); 540 } 541 542 /** 543 * Sets the maximum delay between redelivery (supports property 544 * placeholders) 545 * 546 * @param maximumRedeliveryDelay the delay in millis 547 * @return the builder 548 */ 549 public RedeliveryPolicyDefinition maximumRedeliveryDelay(String maximumRedeliveryDelay) { 550 setMaximumRedeliveryDelay(maximumRedeliveryDelay); 551 return this; 552 } 553 554 /** 555 * Sets the delay pattern with delay intervals. 556 * 557 * @param delayPattern the delay pattern 558 * @return the builder 559 */ 560 public RedeliveryPolicyDefinition delayPattern(String delayPattern) { 561 setDelayPattern(delayPattern); 562 return this; 563 } 564 565 /** 566 * Sets the reference of the instance of 567 * {@link org.apache.camel.spi.ExchangeFormatter} to generate the log 568 * message from exchange. 569 * 570 * @param exchangeFormatterRef name of the instance of 571 * {@link org.apache.camel.spi.ExchangeFormatter} 572 * @return the builder 573 */ 574 public RedeliveryPolicyDefinition exchangeFormatterRef(String exchangeFormatterRef) { 575 setExchangeFormatterRef(exchangeFormatterRef); 576 return this; 577 } 578 579 // Properties 580 // ------------------------------------------------------------------------- 581 582 public String getMaximumRedeliveries() { 583 return maximumRedeliveries; 584 } 585 586 public void setMaximumRedeliveries(String maximumRedeliveries) { 587 this.maximumRedeliveries = maximumRedeliveries; 588 } 589 590 public String getRedeliveryDelay() { 591 return redeliveryDelay; 592 } 593 594 public void setRedeliveryDelay(String redeliveryDelay) { 595 this.redeliveryDelay = redeliveryDelay; 596 } 597 598 public String getAsyncDelayedRedelivery() { 599 return asyncDelayedRedelivery; 600 } 601 602 public void setAsyncDelayedRedelivery(String asyncDelayedRedelivery) { 603 this.asyncDelayedRedelivery = asyncDelayedRedelivery; 604 } 605 606 public String getBackOffMultiplier() { 607 return backOffMultiplier; 608 } 609 610 public void setBackOffMultiplier(String backOffMultiplier) { 611 this.backOffMultiplier = backOffMultiplier; 612 } 613 614 public String getUseExponentialBackOff() { 615 return useExponentialBackOff; 616 } 617 618 public void setUseExponentialBackOff(String useExponentialBackOff) { 619 this.useExponentialBackOff = useExponentialBackOff; 620 } 621 622 public String getCollisionAvoidanceFactor() { 623 return collisionAvoidanceFactor; 624 } 625 626 public void setCollisionAvoidanceFactor(String collisionAvoidanceFactor) { 627 this.collisionAvoidanceFactor = collisionAvoidanceFactor; 628 } 629 630 public String getUseCollisionAvoidance() { 631 return useCollisionAvoidance; 632 } 633 634 public void setUseCollisionAvoidance(String useCollisionAvoidance) { 635 this.useCollisionAvoidance = useCollisionAvoidance; 636 } 637 638 public String getMaximumRedeliveryDelay() { 639 return maximumRedeliveryDelay; 640 } 641 642 public void setMaximumRedeliveryDelay(String maximumRedeliveryDelay) { 643 this.maximumRedeliveryDelay = maximumRedeliveryDelay; 644 } 645 646 public String getRetriesExhaustedLogLevel() { 647 return retriesExhaustedLogLevel; 648 } 649 650 public void setRetriesExhaustedLogLevel(String retriesExhaustedLogLevel) { 651 this.retriesExhaustedLogLevel = retriesExhaustedLogLevel; 652 } 653 654 public String getRetryAttemptedLogLevel() { 655 return retryAttemptedLogLevel; 656 } 657 658 public void setRetryAttemptedLogLevel(String retryAttemptedLogLevel) { 659 this.retryAttemptedLogLevel = retryAttemptedLogLevel; 660 } 661 662 public String getRetryAttemptedLogInterval() { 663 return retryAttemptedLogInterval; 664 } 665 666 public void setRetryAttemptedLogInterval(String retryAttemptedLogInterval) { 667 this.retryAttemptedLogInterval = retryAttemptedLogInterval; 668 } 669 670 public String getLogRetryAttempted() { 671 return logRetryAttempted; 672 } 673 674 public void setLogRetryAttempted(String logRetryAttempted) { 675 this.logRetryAttempted = logRetryAttempted; 676 } 677 678 public String getLogStackTrace() { 679 return logStackTrace; 680 } 681 682 public void setLogStackTrace(String logStackTrace) { 683 this.logStackTrace = logStackTrace; 684 } 685 686 public String getLogRetryStackTrace() { 687 return logRetryStackTrace; 688 } 689 690 public void setLogRetryStackTrace(String logRetryStackTrace) { 691 this.logRetryStackTrace = logRetryStackTrace; 692 } 693 694 public String getLogHandled() { 695 return logHandled; 696 } 697 698 public void setLogHandled(String logHandled) { 699 this.logHandled = logHandled; 700 } 701 702 public String getLogNewException() { 703 return logNewException; 704 } 705 706 public void setLogNewException(String logNewException) { 707 this.logNewException = logNewException; 708 } 709 710 public String getLogContinued() { 711 return logContinued; 712 } 713 714 public void setLogContinued(String logContinued) { 715 this.logContinued = logContinued; 716 } 717 718 public String getLogExhausted() { 719 return logExhausted; 720 } 721 722 public void setLogExhausted(String logExhausted) { 723 this.logExhausted = logExhausted; 724 } 725 726 public String getLogExhaustedMessageHistory() { 727 return logExhaustedMessageHistory; 728 } 729 730 public void setLogExhaustedMessageHistory(String logExhaustedMessageHistory) { 731 this.logExhaustedMessageHistory = logExhaustedMessageHistory; 732 } 733 734 public String getLogExhaustedMessageBody() { 735 return logExhaustedMessageBody; 736 } 737 738 public void setLogExhaustedMessageBody(String logExhaustedMessageBody) { 739 this.logExhaustedMessageBody = logExhaustedMessageBody; 740 } 741 742 public String getDisableRedelivery() { 743 return disableRedelivery; 744 } 745 746 /** 747 * Disables redelivery (same as setting maximum redeliveries to 0) 748 */ 749 public void setDisableRedelivery(String disableRedelivery) { 750 this.disableRedelivery = disableRedelivery; 751 } 752 753 public String getDelayPattern() { 754 return delayPattern; 755 } 756 757 public void setDelayPattern(String delayPattern) { 758 this.delayPattern = delayPattern; 759 } 760 761 public String getAllowRedeliveryWhileStopping() { 762 return allowRedeliveryWhileStopping; 763 } 764 765 public void setAllowRedeliveryWhileStopping(String allowRedeliveryWhileStopping) { 766 this.allowRedeliveryWhileStopping = allowRedeliveryWhileStopping; 767 } 768 769 public String getExchangeFormatterRef() { 770 return exchangeFormatterRef; 771 } 772 773 public void setExchangeFormatterRef(String exchangeFormatterRef) { 774 this.exchangeFormatterRef = exchangeFormatterRef; 775 } 776 777}