src/share/jaxws_classes/com/sun/xml/internal/ws/wsdl/SOAPActionBasedOperationFinder.java

changeset 368
0989ad8c0860
parent 286
f50545b5e2f1
child 637
9c07ef4934dd
     1.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/wsdl/SOAPActionBasedOperationFinder.java	Thu Apr 04 19:05:24 2013 -0700
     1.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/wsdl/SOAPActionBasedOperationFinder.java	Tue Apr 09 14:51:13 2013 +0100
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -29,6 +29,7 @@
    1.11  import com.sun.xml.internal.ws.api.WSBinding;
    1.12  import com.sun.xml.internal.ws.api.model.JavaMethod;
    1.13  import com.sun.xml.internal.ws.api.model.SEIModel;
    1.14 +import com.sun.xml.internal.ws.api.model.WSDLOperationMapping;
    1.15  import com.sun.xml.internal.ws.api.model.wsdl.WSDLPort;
    1.16  import com.sun.xml.internal.ws.api.model.wsdl.WSDLBoundOperation;
    1.17  import com.sun.xml.internal.ws.api.message.Packet;
    1.18 @@ -49,11 +50,11 @@
    1.19   * @author Jitendra Kotamraju
    1.20   */
    1.21  final class SOAPActionBasedOperationFinder extends WSDLOperationFinder {
    1.22 -    private final Map<String, QName> methodHandlers;
    1.23 +    private final Map<String, WSDLOperationMapping> methodHandlers;
    1.24  
    1.25      public SOAPActionBasedOperationFinder(WSDLPort wsdlModel, WSBinding binding, @Nullable SEIModel seiModel) {
    1.26          super(wsdlModel,binding,seiModel);
    1.27 -        methodHandlers = new HashMap<String, QName>();
    1.28 +        methodHandlers = new HashMap<String, WSDLOperationMapping>();
    1.29  
    1.30          // Find if any SOAPAction repeat for operations
    1.31          Map<String, Integer> unique = new HashMap<String, Integer>();
    1.32 @@ -73,18 +74,19 @@
    1.33                  // Set up method handlers only for unique SOAPAction values so
    1.34                  // that dispatching happens consistently for a method
    1.35                  if (unique.get(soapAction) == 1) {
    1.36 -                    methodHandlers.put('"' + soapAction + '"', m.getOperationQName());
    1.37 +                    methodHandlers.put('"' + soapAction + '"', wsdlOperationMapping(m));
    1.38                  }
    1.39              }
    1.40          } else {
    1.41              for(WSDLBoundOperation wsdlOp: wsdlModel.getBinding().getBindingOperations()) {
    1.42 -                methodHandlers.put(wsdlOp.getSOAPAction(),wsdlOp.getName());
    1.43 +                methodHandlers.put(wsdlOp.getSOAPAction(), wsdlOperationMapping(wsdlOp));
    1.44              }
    1.45          }
    1.46  
    1.47      }
    1.48  
    1.49 -    public QName getWSDLOperationQName(Packet request) {
    1.50 +//  public QName getWSDLOperationQName(Packet request) {
    1.51 +    public WSDLOperationMapping getWSDLOperationMapping(Packet request) throws DispatchException {
    1.52          return request.soapAction == null ? null : methodHandlers.get(request.soapAction);
    1.53      }
    1.54  }

mercurial