1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.platform.camel.ihe.mllp.core.intercept.consumer;
17
18 import lombok.experimental.Delegate;
19 import org.apache.camel.Exchange;
20 import org.openehealth.ipf.commons.ihe.core.payload.ExpressionResolver;
21 import org.openehealth.ipf.commons.ihe.core.payload.SpringExpressionResolver;
22 import org.openehealth.ipf.platform.camel.ihe.core.InterceptorFactorySupport;
23 import org.openehealth.ipf.platform.camel.ihe.core.InterceptorSupport;
24 import org.openehealth.ipf.platform.camel.ihe.mllp.core.MllpEndpoint;
25 import org.openehealth.ipf.platform.camel.ihe.mllp.core.intercept.MllpPayloadLoggerBase;
26
27
28
29
30
31
32
33
34
35 public class ConsumerOutPayloadLoggerInterceptor extends InterceptorSupport<MllpEndpoint<?,?,?>> {
36 @Delegate private final MllpPayloadLoggerBase base = new MllpPayloadLoggerBase();
37
38
39
40
41
42
43 public ConsumerOutPayloadLoggerInterceptor(String fileNamePattern) {
44 this(new SpringExpressionResolver(fileNamePattern));
45 }
46
47
48
49
50
51
52
53 public ConsumerOutPayloadLoggerInterceptor(ExpressionResolver resolver) {
54 super();
55 addBefore(ConsumerStringProcessingInterceptor.class.getName());
56 setExpressionResolver(resolver);
57 }
58
59 @Override
60 public void process(Exchange exchange) throws Exception {
61 getWrappedProcessor().process(exchange);
62 if (canProcess()) {
63 logPayload(exchange, true);
64 }
65 }
66
67 public static class Factory extends InterceptorFactorySupport<MllpEndpoint<?,?,?>, ConsumerOutPayloadLoggerInterceptor> {
68
69 private final ExpressionResolver resolver;
70 private boolean locallyEnabled = true;
71
72 public Factory(String fileNamePattern) {
73 this(new SpringExpressionResolver(fileNamePattern));
74 }
75
76 public Factory(ExpressionResolver resolver) {
77 super(ConsumerOutPayloadLoggerInterceptor.class);
78 this.resolver = resolver;
79 }
80
81 @Override
82 public ConsumerOutPayloadLoggerInterceptor getNewInstance() {
83 ConsumerOutPayloadLoggerInterceptor interceptor = new ConsumerOutPayloadLoggerInterceptor(resolver);
84 interceptor.setLocallyEnabled(locallyEnabled);
85 return interceptor;
86 }
87
88 public void setLocallyEnabled(boolean locallyEnabled) {
89 this.locallyEnabled = locallyEnabled;
90 }
91 }
92 }