01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one
03: * or more contributor license agreements. See the NOTICE file
04: * distributed with this work for additional information
05: * regarding copyright ownership. The ASF licenses this file
06: * to you under the Apache License, Version 2.0 (the
07: * "License"); you may not use this file except in compliance
08: * with the License. You may obtain a copy of the License at
09: *
10: * http://www.apache.org/licenses/LICENSE-2.0
11: *
12: * Unless required by applicable law or agreed to in writing,
13: * software distributed under the License is distributed on an
14: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15: * KIND, either express or implied. See the License for the
16: * specific language governing permissions and limitations
17: * under the License.
18: */
19:
20: package org.apache.axis2.transport.mail;
21:
22: import edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue;
23: import org.apache.axis2.context.ConfigurationContext;
24: import org.apache.axis2.context.MessageContext;
25: import org.apache.axis2.engine.AxisEngine;
26: import org.apache.axis2.util.MessageContextBuilder;
27:
28: public class MailWorker implements Runnable {
29: private ConfigurationContext configContext = null;
30: private MessageContext messageContext;
31:
32: /**
33: * Constructor for MailWorker
34: *
35: */
36: public MailWorker(ConfigurationContext reg,
37: MessageContext messageContext) {
38: this .configContext = reg;
39: this .messageContext = messageContext;
40: }
41:
42: /**
43: * The main workhorse method.
44: */
45: public void run() {
46: AxisEngine engine = new AxisEngine(configContext);
47: // create and initialize a message context
48: try {
49: engine.receive(messageContext);
50: } catch (Exception e) {
51: try {
52: if (messageContext != null
53: && !messageContext.isServerSide()) {
54: MessageContext faultContext = MessageContextBuilder
55: .createFaultMessageContext(messageContext,
56: e);
57: engine.sendFault(faultContext);
58: }
59: } catch (Exception e1) {
60: // Ignore errors that would possibly happen this catch
61: }
62: }
63:
64: }
65:
66: }
|