You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2016/05/02 11:17:04 UTC

svn commit: r1741941 - in /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder: Builder.java BuilderUtil.java

Author: veithen
Date: Mon May  2 09:17:03 2016
New Revision: 1741941

URL: http://svn.apache.org/viewvc?rev=1741941&view=rev
Log:
Eliminate duplicate code.

Modified:
    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/Builder.java
    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java

Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/Builder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/Builder.java?rev=1741941&r1=1741940&r2=1741941&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/Builder.java (original)
+++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/Builder.java Mon May  2 09:17:03 2016
@@ -22,6 +22,7 @@ package org.apache.axis2.builder;
 import org.apache.axiom.om.OMElement;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.util.MessageProcessorSelector;
 
 import java.io.InputStream;
 
@@ -30,7 +31,7 @@ import java.io.InputStream;
  * Message builders are used by {@link org.apache.axis2.transport.TransportListener}
  * implementations to process the raw payload of the message and turn it into SOAP.
  * Transports should use
- * {@link org.apache.axis2.builder.BuilderUtil#getBuilderFromSelector(String, MessageContext)}
+ * {@link MessageProcessorSelector#getMessageBuilder(String, MessageContext)}
  * to select the message builder appropriate for the content type of the message.
  */
 public interface Builder {

Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java?rev=1741941&r1=1741940&r2=1741941&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java (original)
+++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java Mon May  2 09:17:03 2016
@@ -49,6 +49,7 @@ import org.apache.axis2.engine.AxisConfi
 import org.apache.axis2.java.security.AccessController;
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.apache.axis2.util.JavaUtils;
+import org.apache.axis2.util.MessageProcessorSelector;
 import org.apache.axis2.util.MultipleEntryHashMap;
 import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.commons.io.IOUtils;
@@ -580,62 +581,11 @@ public class BuilderUtil {
     }
 
     /**
-     * Initial work for a builder selector which selects the builder for a given message format
-     * based on the the content type of the recieved message. content-type to builder mapping can be
-     * specified through the Axis2.xml.
-     *
-     * @param type       content-type
-     * @param msgContext the active MessageContext
-     * @return the builder registered against the given content-type
-     * @throws AxisFault
+     * @deprecated Use {@link MessageProcessorSelector#getMessageBuilder(String, MessageContext)}.
      */
     public static Builder getBuilderFromSelector(String type, MessageContext msgContext)
             throws AxisFault {
-    	boolean useFallbackBuilder = false;
-        AxisConfiguration configuration =
-                msgContext.getConfigurationContext().getAxisConfiguration();
-        Parameter useFallbackParameter = configuration.getParameter(Constants.Configuration.USE_DEFAULT_FALLBACK_BUILDER);
-        if (useFallbackParameter !=null){
-        	useFallbackBuilder = JavaUtils.isTrueExplicitly(useFallbackParameter.getValue(),useFallbackBuilder);
-        }
-        Builder builder = configuration.getMessageBuilder(type,useFallbackBuilder);
-        if (builder != null) {
-            // Check whether the request has a Accept header if so use that as the response
-            // message type.
-            // If thats not present,
-            // Setting the received content-type as the messageType to make
-            // sure that we respond using the received message serialization format.
-
-            Object contentNegotiation = configuration
-                    .getParameterValue(Constants.Configuration.ENABLE_HTTP_CONTENT_NEGOTIATION);
-            if (JavaUtils.isTrueExplicitly(contentNegotiation)) {
-                Map transportHeaders =
-                        (Map)msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
-                if (transportHeaders != null) {
-                    String acceptHeader = (String)transportHeaders.get(HTTPConstants.HEADER_ACCEPT);
-                    if (acceptHeader != null) {
-                        int index = acceptHeader.indexOf(";");
-                        if (index > 0) {
-                            acceptHeader = acceptHeader.substring(0, index);
-                        }
-                        String[] strings = acceptHeader.split(",");
-                        for (String string : strings) {
-                            String accept = string.trim();
-                            // We dont want dynamic content negotoatin to work on text.xml as its
-                            // ambiguos as to whether the user requests SOAP 1.1 or POX response
-                            if (!HTTPConstants.MEDIA_TYPE_TEXT_XML.equals(accept) &&
-                                configuration.getMessageFormatter(accept) != null) {
-                                type = string;
-                                break;
-                            }
-                        }
-                    }
-                }
-            }
-
-            msgContext.setProperty(Constants.Configuration.MESSAGE_TYPE, type);
-        }
-        return builder;
+        return MessageProcessorSelector.getMessageBuilder(type, msgContext);
     }
 
     public static void validateSOAPVersion(String soapNamespaceURIFromTransport,