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 ConsumerInPayloadLoggerInterceptor extends InterceptorSupport<MllpEndpoint<?,?,?>> {
36 @Delegate
37 private final MllpPayloadLoggerBase base = new MllpPayloadLoggerBase();
38
39
40
41
42
43
44 public ConsumerInPayloadLoggerInterceptor(String fileNamePattern) {
45 this(new SpringExpressionResolver(fileNamePattern));
46 }
47
48
49
50
51
52
53
54 public ConsumerInPayloadLoggerInterceptor(ExpressionResolver resolver) {
55 super();
56 addBefore(ConsumerStringProcessingInterceptor.class.getName());
57 setExpressionResolver(resolver);
58 }
59
60 @Override
61 public void process(Exchange exchange) throws Exception {
62 if (canProcess()) {
63 logPayload(exchange, false);
64 }
65 getWrappedProcessor().process(exchange);
66 }
67
68 public static class Factory extends InterceptorFactorySupport<MllpEndpoint<?,?,?>, ConsumerInPayloadLoggerInterceptor> {
69
70 private final ExpressionResolver resolver;
71 private boolean locallyEnabled = true;
72
73 public Factory(String fileNamePattern) {
74 this(new SpringExpressionResolver(fileNamePattern));
75 }
76
77 public Factory(ExpressionResolver resolver) {
78 super(ConsumerInPayloadLoggerInterceptor.class);
79 this.resolver = resolver;
80 }
81
82 @Override
83 public ConsumerInPayloadLoggerInterceptor getNewInstance() {
84 ConsumerInPayloadLoggerInterceptor interceptor = new ConsumerInPayloadLoggerInterceptor(resolver);
85 interceptor.setLocallyEnabled(locallyEnabled);
86 return interceptor;
87 }
88
89 public void setLocallyEnabled(boolean locallyEnabled) {
90 this.locallyEnabled = locallyEnabled;
91 }
92 }
93
94 }