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.builder;
21:
22: import org.apache.axiom.attachments.Attachments;
23: import org.apache.axiom.om.OMElement;
24: import org.apache.axiom.om.impl.MTOMConstants;
25: import org.apache.axis2.AxisFault;
26: import org.apache.axis2.Constants;
27: import org.apache.axis2.context.MessageContext;
28:
29: import javax.xml.stream.XMLStreamReader;
30: import java.io.InputStream;
31:
32: public class MIMEBuilder implements Builder {
33:
34: public OMElement processDocument(InputStream inputStream,
35: String contentType, MessageContext msgContext)
36: throws AxisFault {
37: XMLStreamReader streamReader;
38: Attachments attachments = BuilderUtil.createAttachmentsMap(
39: msgContext, inputStream, contentType);
40: String charSetEncoding = BuilderUtil
41: .getCharSetEncoding(attachments
42: .getSOAPPartContentType());
43:
44: if ((charSetEncoding == null)
45: || "null".equalsIgnoreCase(charSetEncoding)) {
46: charSetEncoding = MessageContext.UTF_8;
47: }
48: msgContext.setProperty(
49: Constants.Configuration.CHARACTER_SET_ENCODING,
50: charSetEncoding);
51:
52: // Put a reference to Attachments Map in to the message context For
53: // backword compatibility with Axis2 1.0
54: msgContext.setProperty(MTOMConstants.ATTACHMENTS, attachments);
55:
56: // Setting the Attachments map to new SwA API
57: msgContext.setAttachmentMap(attachments);
58: // We set the following for all the MIME messages.. Will be overridden
59: // by subsequent builders(eg:MTOMBuilder) if needed..
60: msgContext.setDoingSwA(true);
61:
62: Builder builder = BuilderUtil.getBuilderFromSelector(
63: attachments.getAttachmentSpecType(), msgContext);
64: OMElement element = builder.processDocument(attachments
65: .getSOAPPartInputStream(), contentType, msgContext);
66: return element;
67: }
68:
69: }
|