Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 46215 invoked from network); 18 Jul 2007 23:37:36 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 18 Jul 2007 23:37:36 -0000 Received: (qmail 36899 invoked by uid 500); 18 Jul 2007 23:37:20 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 36800 invoked by uid 500); 18 Jul 2007 23:37:20 -0000 Mailing-List: contact axis-cvs-help@ws.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list axis-cvs@ws.apache.org Received: (qmail 36784 invoked by uid 500); 18 Jul 2007 23:37:20 -0000 Delivered-To: apmail-ws-axis2-cvs@ws.apache.org Received: (qmail 36778 invoked by uid 99); 18 Jul 2007 23:37:20 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 18 Jul 2007 16:37:20 -0700 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 18 Jul 2007 16:37:16 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 705501A981A; Wed, 18 Jul 2007 16:36:56 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r557426 - in /webservices/axis2/trunk/java/modules/jaxws: src/org/apache/axis2/jaxws/context/utils/ src/org/apache/axis2/jaxws/core/ src/org/apache/axis2/jaxws/core/controller/ src/org/apache/axis2/jaxws/handler/ src/org/apache/axis2/jaxws/... Date: Wed, 18 Jul 2007 23:36:56 -0000 To: axis2-cvs@ws.apache.org From: rott@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070718233656.705501A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: rott Date: Wed Jul 18 16:36:55 2007 New Revision: 557426 URL: http://svn.apache.org/viewvc?view=rev&rev=557426 Log: Followup to 551618, AXIS2-2854. JAXWS no longer needs to delegate properties up to the axis2 message context Options object, since axis2 message context also no longer delegates. Added: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/core/ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/core/MessageContextTests.java Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/context/utils/ContextUtils.java webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/MessageContext.java webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/controller/AxisInvocationController.java webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/MEPContext.java webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/MessageUtils.java webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/AddNumbersHandlerTests.java webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/addnumbershandler/AddNumbersClientLogicalHandler.java Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/context/utils/ContextUtils.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/context/utils/ContextUtils.java?view=diff&rev=557426&r1=557425&r2=557426 ============================================================================== --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/context/utils/ContextUtils.java (original) +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/context/utils/ContextUtils.java Wed Jul 18 16:36:55 2007 @@ -53,14 +53,10 @@ */ public static void addProperties(SOAPMessageContext soapMessageContext, MessageContext jaxwsMessageContext) { - org.apache.axis2.context.MessageContext axisMsgContext = - jaxwsMessageContext.getAxisMessageContext(); - // Copy Axis2 MessageContext options. It's possible that some set of Axis2 handlers - // have run and placed some properties in the context that need to be visible. - // We don't, however, want to expose the Axis2 Operation/ServiceContext properties. - Map props = axisMsgContext.getOptions().getProperties(); - soapMessageContext.putAll(props); + // Copy Axis2 MessageContext properties. It's possible that some set of Axis2 handlers + // have run and placed some properties in the context that need to be visible. + soapMessageContext.putAll(jaxwsMessageContext.getProperties()); EndpointDescription description = jaxwsMessageContext.getEndpointDescription(); if (description !=null) { @@ -98,18 +94,19 @@ // If we are running within a servlet container, then JAX-WS requires that the // servlet related properties be set on the MessageContext soapMessageContext.put(javax.xml.ws.handler.MessageContext.SERVLET_CONTEXT, - axisMsgContext.getProperty(HTTPConstants.MC_HTTP_SERVLETCONTEXT)); + jaxwsMessageContext.getProperty(HTTPConstants.MC_HTTP_SERVLETCONTEXT)); soapMessageContext .setScope(javax.xml.ws.handler.MessageContext.SERVLET_CONTEXT, Scope.APPLICATION); + if (log.isDebugEnabled()) { - if (axisMsgContext.getProperty(HTTPConstants.MC_HTTP_SERVLETCONTEXT) != null) { + if (jaxwsMessageContext.getProperty(HTTPConstants.MC_HTTP_SERVLETCONTEXT) != null) { log.debug("Servlet Context Set"); } else { log.debug("Servlet Context not found"); } } - HttpServletRequest req = (HttpServletRequest)axisMsgContext + HttpServletRequest req = (HttpServletRequest)jaxwsMessageContext .getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST); if (req == null) { if (log.isDebugEnabled()) { @@ -159,7 +156,7 @@ } } - HttpServletResponse res = (HttpServletResponse)axisMsgContext + HttpServletResponse res = (HttpServletResponse)jaxwsMessageContext .getProperty(HTTPConstants.MC_HTTP_SERVLETRESPONSE); if (res == null) { if (log.isDebugEnabled()) { Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/MessageContext.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/MessageContext.java?view=diff&rev=557426&r1=557425&r2=557426 ============================================================================== --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/MessageContext.java (original) +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/MessageContext.java Wed Jul 18 16:36:55 2007 @@ -61,8 +61,8 @@ private boolean isOutbound; // Outbound or inbound message context // TODO: flag to set whether we delegate property setting up to the - // axis2 options objecct or keep it local - private boolean DELEGATE_TO_OPTIONS = true; + // axis2 message context object or keep it local + private boolean DELEGATE_TO_AXISMC = true; /* * JAXWS runtime uses a request and response mc, but we need to know the pair. @@ -84,7 +84,7 @@ public MessageContext() { axisMsgCtx = new org.apache.axis2.context.MessageContext(); isOutbound = true; - if (!DELEGATE_TO_OPTIONS) { + if (!DELEGATE_TO_AXISMC) { properties = new HashMap(); } @@ -97,7 +97,7 @@ * @throws WebServiceException */ public MessageContext(org.apache.axis2.context.MessageContext mc) throws WebServiceException { - if (!DELEGATE_TO_OPTIONS) { + if (!DELEGATE_TO_AXISMC) { properties = new HashMap(); } // Assume inbound (caller must setOutbound) @@ -129,32 +129,61 @@ } public Map getProperties() { - if (DELEGATE_TO_OPTIONS) { - return new ReadOnlyProperties(axisMsgCtx.getOptions().getProperties()); + if (DELEGATE_TO_AXISMC) { + // only use properties that are local to the axis2 MC, + // not the options bag. See org.apache.axis2.context.AbstractContext + Iterator names = axisMsgCtx.getPropertyNames(); + HashMap tempProps = new HashMap(); + for (; names.hasNext();) { + String name = (String)names.next(); + tempProps.put(name, axisMsgCtx.getProperty(name)); + } + //return new ReadOnlyProperties(tempProps); + return tempProps; } return properties; } public void setProperties(Map _properties) { - if (DELEGATE_TO_OPTIONS) { - axisMsgCtx.getOptions().setProperties(_properties); + if (DELEGATE_TO_AXISMC) { + // make sure copy is made, not just reference: + _properties.put(org.apache.axis2.context.MessageContext.COPY_PROPERTIES, true); + axisMsgCtx.setProperties(_properties); } else { getProperties().putAll(_properties); } } public Object getProperty(String key) { - if (DELEGATE_TO_OPTIONS) { - return axisMsgCtx.getProperty(key); + if (DELEGATE_TO_AXISMC) { + // only use properties that are local to the axis2 MC, + // not the options bag. See org.apache.axis2.context.AbstractContext + Iterator names = axisMsgCtx.getPropertyNames(); + for (; names.hasNext();) { + String name = (String)names.next(); + if (name.equals(key)) { + return axisMsgCtx.getProperty(key); + } + } + return null; } return getProperties().get(key); } // acts like Map.put(key, value) public Object setProperty(String key, Object value) { - if (DELEGATE_TO_OPTIONS) { - Object retval = axisMsgCtx.getOptions().getProperty(key); - axisMsgCtx.getOptions().setProperty(key, value); + if (DELEGATE_TO_AXISMC) { + // only use properties that are local to the axis2 MC, + // not the options bag. See org.apache.axis2.context.AbstractContext + Object retval = null; + Iterator names = axisMsgCtx.getPropertyNames(); + for (; names.hasNext();) { + String name = (String)names.next(); + if (name.equals(key)) { + retval = axisMsgCtx.getProperty(key); + } + } + axisMsgCtx.setProperty(key, value); return retval; } else { return getProperties().put(key, value); @@ -305,195 +334,5 @@ public void setOutbound(boolean isOutbound) { this.isOutbound = isOutbound; } - - private class ReadOnlyProperties extends AbstractMap { - - private Map containedProps; - - public ReadOnlyProperties(Map containedProps) { - this.containedProps = containedProps; - } - - @Override - public Set> entrySet() { - return new ReadOnlySet(containedProps.entrySet()); - } - - @Override - public Set keySet() { - return new ReadOnlySet(containedProps.keySet()); - } - - @Override - public Object put(String key, Object value) { - throw new UnsupportedOperationException(); - } - - @Override - public void putAll(Map t) { - throw new UnsupportedOperationException(); - } - - @Override - public Object remove(Object key) { - throw new UnsupportedOperationException(); - } - - @Override - public Collection values() { - return new ReadOnlyCollection(containedProps.values()); - } - - /* - * nested classes to be used to enforce read-only Collection, Set, and Iterator for MEPContext - */ - - class ReadOnlyCollection implements Collection { - - private Collection containedCollection; - - private ReadOnlyCollection(Collection containedCollection) { - this.containedCollection = containedCollection; - } - - public boolean add(Object o) { - throw new UnsupportedOperationException(); - } - - public boolean addAll(Collection c) { - throw new UnsupportedOperationException(); - } - - public void clear() { - throw new UnsupportedOperationException(); - } - - public boolean contains(Object o) { - return containedCollection.contains(o); - } - - public boolean containsAll(Collection c) { - return containedCollection.containsAll(c); - } - - public boolean isEmpty() { - return containedCollection.isEmpty(); - } - - public Iterator iterator() { - return new ReadOnlyIterator(containedCollection.iterator()); - } - - public boolean remove(Object o) { - throw new UnsupportedOperationException(); - } - - public boolean removeAll(Collection c) { - throw new UnsupportedOperationException(); - } - - public boolean retainAll(Collection c) { - throw new UnsupportedOperationException(); - } - - public int size() { - return containedCollection.size(); - } - - public Object[] toArray() { - return containedCollection.toArray(); - } - - public Object[] toArray(Object[] a) { - return containedCollection.toArray(a); - } - - } - - class ReadOnlyIterator implements Iterator { - - private Iterator containedIterator; - - private ReadOnlyIterator(Iterator containedIterator) { - this.containedIterator = containedIterator; - } - - // override remove() to make this Iterator class read-only - - public void remove() { - throw new UnsupportedOperationException(); - } - - public boolean hasNext() { - return containedIterator.hasNext(); - } - - public Object next() { - return containedIterator.next(); - } - } - - class ReadOnlySet implements Set { - - private Set containedSet; - - private ReadOnlySet(Set containedSet) { - this.containedSet = containedSet; - } - - public boolean add(Object o) { - throw new UnsupportedOperationException(); - } - - public boolean addAll(Collection c) { - throw new UnsupportedOperationException(); - } - - public void clear() { - throw new UnsupportedOperationException(); - } - public boolean contains(Object o) { - return containedSet.contains(o); - } - - public boolean containsAll(Collection c) { - return containedSet.containsAll(c); - } - - public boolean isEmpty() { - return containedSet.isEmpty(); - } - - public Iterator iterator() { - return new ReadOnlyIterator(containedSet.iterator()); - } - - public boolean remove(Object o) { - throw new UnsupportedOperationException(); - } - - public boolean removeAll(Collection c) { - throw new UnsupportedOperationException(); - } - - public boolean retainAll(Collection c) { - throw new UnsupportedOperationException(); - } - - public int size() { - return containedSet.size(); - } - - public Object[] toArray() { - return containedSet.toArray(); - } - - public Object[] toArray(Object[] a) { - return containedSet.toArray(a); - } - - } - - } } Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/controller/AxisInvocationController.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/controller/AxisInvocationController.java?view=diff&rev=557426&r1=557425&r2=557426 ============================================================================== --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/controller/AxisInvocationController.java (original) +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/core/controller/AxisInvocationController.java Wed Jul 18 16:36:55 2007 @@ -355,14 +355,6 @@ axisRequestMsgCtx // Axis 2 MessageContext ); - // For now, just take all of the properties that were in the - // JAX-WS MessageContext, and set them on the Axis2 MessageContext. - axisRequestMsgCtx.setProperty(AbstractContext.COPY_PROPERTIES, - Boolean.TRUE); - Map props = axisRequestMsgCtx.getOptions().getProperties(); - props.putAll(requestMsgCtx.getProperties()); - - axisRequestMsgCtx.getOptions().setProperties(props); if (log.isDebugEnabled()) { log.debug("Properties: " + axisRequestMsgCtx.getProperties().toString()); } @@ -385,7 +377,7 @@ private void initOperationClient(OperationClient opClient, MessageContext requestMsgCtx) { org.apache.axis2.context.MessageContext axisRequest = requestMsgCtx.getAxisMessageContext(); - setupProperties(requestMsgCtx, axisRequest.getOptions()); + setupProperties(requestMsgCtx);//, axisRequest.getOptions()); Options options = opClient.getOptions(); if (opClient != null) { @@ -484,23 +476,18 @@ * moved over to when the property is set. This should not be in the path * of performance. */ - private void setupProperties(MessageContext mc, Options ops) { + private void setupProperties(MessageContext mc) {//, Options ops) { Map properties = mc.getProperties(); - for (Iterator it = properties.keySet().iterator(); it.hasNext();) { - String key = it.next(); - Object value = properties.get(key); - ops.setProperty(key, value); - } // Enable MTOM Message msg = mc.getMessage(); if (msg.isMTOMEnabled()) { - ops.setProperty(Configuration.ENABLE_MTOM, "true"); + mc.setProperty(Configuration.ENABLE_MTOM, "true"); } // Enable session management if (mc.isMaintainSession()) { - ops.setManageSession(true); + mc.getAxisMessageContext().getOptions().setManageSession(true); } // Check to see if BASIC_AUTH is enabled. If so, make sure @@ -537,7 +524,7 @@ basicAuthentication.setPort(url.getPort()); basicAuthentication.setPreemptiveAuthentication(true); - ops.setProperty(HTTPConstants.AUTHENTICATE, basicAuthentication); + mc.setProperty(HTTPConstants.AUTHENTICATE, basicAuthentication); } else if ((!properties.containsKey(BindingProvider.USERNAME_PROPERTY) && properties.containsKey(BindingProvider.PASSWORD_PROPERTY)) || (properties.containsKey(BindingProvider.USERNAME_PROPERTY) && Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/MEPContext.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/MEPContext.java?view=diff&rev=557426&r1=557425&r2=557426 ============================================================================== --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/MEPContext.java (original) +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/MEPContext.java Wed Jul 18 16:36:55 2007 @@ -111,7 +111,10 @@ if (scopes.get(s) == null) { // JAX-WS default 9.4.1. However, we try to set the scope for // every incoming property to HANDLER. If a property is coming from - // the axis2 Options bag, we want those to be APPLICATION scoped. + // the axis2 AbstractContext properties bag, we want those to be + // APPLICATION scoped. Those properties may have been set by an + // axis application handler, and may need to be accessible by + // a client app or endpoint. return Scope.APPLICATION; } return scopes.get(s); @@ -179,14 +182,14 @@ // TODO should check ApplicationAccessLocked flag // and return only APPLICATION scoped properties if true if (isApplicationAccessLocked()) { - return new ReadOnlySet(getApplicationScopedProperties().entrySet()); + return getApplicationScopedProperties().entrySet(); } HashMap tempProps = new HashMap(); tempProps.putAll(requestMC.getProperties()); if (responseMC != null) { tempProps.putAll(responseMC.getProperties()); } - return new ReadOnlySet(tempProps.entrySet()); + return tempProps.entrySet(); } public Object get(Object keyObject) { @@ -216,14 +219,14 @@ public Set keySet() { if (isApplicationAccessLocked()) { - return new ReadOnlySet(getApplicationScopedProperties().keySet()); + return getApplicationScopedProperties().keySet(); } HashMap tempProps = new HashMap(); tempProps.putAll(requestMC.getProperties()); if (responseMC != null) { tempProps.putAll(responseMC.getProperties()); } - return new ReadOnlySet(tempProps.keySet()); + return tempProps.keySet(); } public Object put(String key, Object value) { @@ -295,16 +298,16 @@ return tempProps.size(); } - public ReadOnlyCollection values() { + public Collection values() { if (isApplicationAccessLocked()) { - return new ReadOnlyCollection(getApplicationScopedProperties().values()); + return getApplicationScopedProperties().values(); } HashMap tempProps = new HashMap(); tempProps.putAll(requestMC.getProperties()); if (responseMC != null) { tempProps.putAll(responseMC.getProperties()); } - return new ReadOnlyCollection(tempProps.values()); + return tempProps.values(); } public Message getMessageObject() { @@ -368,158 +371,6 @@ } } return tempMap; - } - - - /* - * nested classes to be used to enforce read-only Collection, Set, and Iterator for MEPContext - */ - - class ReadOnlyCollection implements Collection { - - private Collection containedCollection; - - private ReadOnlyCollection(Collection containedCollection) { - this.containedCollection = containedCollection; - } - - public boolean add(Object o) { - throw new UnsupportedOperationException(); - } - - public boolean addAll(Collection c) { - throw new UnsupportedOperationException(); - } - - public void clear() { - throw new UnsupportedOperationException(); - } - - public boolean contains(Object o) { - return containedCollection.contains(o); - } - - public boolean containsAll(Collection c) { - return containedCollection.containsAll(c); - } - - public boolean isEmpty() { - return containedCollection.isEmpty(); - } - - public Iterator iterator() { - return new ReadOnlyIterator(containedCollection.iterator()); - } - - public boolean remove(Object o) { - throw new UnsupportedOperationException(); - } - - public boolean removeAll(Collection c) { - throw new UnsupportedOperationException(); - } - - public boolean retainAll(Collection c) { - throw new UnsupportedOperationException(); - } - - public int size() { - return containedCollection.size(); - } - - public Object[] toArray() { - return containedCollection.toArray(); - } - - public Object[] toArray(Object[] a) { - return containedCollection.toArray(a); - } - - } - - class ReadOnlyIterator implements Iterator { - - private Iterator containedIterator; - - private ReadOnlyIterator(Iterator containedIterator) { - this.containedIterator = containedIterator; - } - - // override remove() to make this Iterator class read-only - - public void remove() { - throw new UnsupportedOperationException(); - } - - public boolean hasNext() { - return containedIterator.hasNext(); - } - - public Object next() { - return containedIterator.next(); - } - } - - class ReadOnlySet implements Set { - - private Set containedSet; - - private ReadOnlySet(Set containedSet) { - this.containedSet = containedSet; - } - - public boolean add(Object o) { - throw new UnsupportedOperationException(); - } - - public boolean addAll(Collection c) { - throw new UnsupportedOperationException(); - } - - public void clear() { - throw new UnsupportedOperationException(); - } - - public boolean contains(Object o) { - return containedSet.contains(o); - } - - public boolean containsAll(Collection c) { - return containedSet.containsAll(c); - } - - public boolean isEmpty() { - return containedSet.isEmpty(); - } - - public Iterator iterator() { - return new ReadOnlyIterator(containedSet.iterator()); - } - - public boolean remove(Object o) { - throw new UnsupportedOperationException(); - } - - public boolean removeAll(Collection c) { - throw new UnsupportedOperationException(); - } - - public boolean retainAll(Collection c) { - throw new UnsupportedOperationException(); - } - - public int size() { - return containedSet.size(); - } - - public Object[] toArray() { - return containedSet.toArray(); - } - - public Object[] toArray(Object[] a) { - return containedSet.toArray(a); - } - } } Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java?view=diff&rev=557426&r1=557425&r2=557426 ============================================================================== --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java (original) +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java Wed Jul 18 16:36:55 2007 @@ -22,7 +22,6 @@ import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMNamespace; import org.apache.axis2.Constants.Configuration; -import org.apache.axis2.client.Options; import org.apache.axis2.jaxws.ExceptionFactory; import org.apache.axis2.jaxws.core.MessageContext; import org.apache.axis2.jaxws.i18n.Messages; @@ -598,8 +597,7 @@ if (!isMTOMEnabled()) { String[] cids = newMap.getAllContentIDs(); if (cids.length > 0) { - Options opts = messageContext.getAxisMessageContext().getOptions(); - opts.setProperty(Configuration.ENABLE_SWA, "true"); + messageContext.setProperty(Configuration.ENABLE_SWA, "true"); } } if (log.isDebugEnabled()) { Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/MessageUtils.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/MessageUtils.java?view=diff&rev=557426&r1=557425&r2=557426 ============================================================================== --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/MessageUtils.java (original) +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/util/MessageUtils.java Wed Jul 18 16:36:55 2007 @@ -34,7 +34,6 @@ import org.apache.axis2.AxisFault; import org.apache.axis2.Constants; import org.apache.axis2.Constants.Configuration; -import org.apache.axis2.client.Options; import org.apache.axis2.context.MessageContext; import org.apache.axis2.jaxws.ExceptionFactory; import org.apache.axis2.jaxws.handler.AttachmentsAdapter; @@ -211,15 +210,13 @@ if (message.isDoingSWA()) { // Enable SWA on the Axis2 MessageContext msgContext.setDoingSwA(true); - Options opts = msgContext.getOptions(); - opts.setProperty(Configuration.ENABLE_SWA, "true"); + msgContext.setProperty(Configuration.ENABLE_SWA, "true"); } // Enable MTOM Attachments if (message.isMTOMEnabled()) { // Enable MTOM on the Axis2 MessageContext - Options opts = msgContext.getOptions(); - opts.setProperty(Configuration.ENABLE_MTOM, "true"); + msgContext.setProperty(Configuration.ENABLE_MTOM, "true"); if (false) { makeBinaryNodes(message); } Added: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/core/MessageContextTests.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/core/MessageContextTests.java?view=auto&rev=557426 ============================================================================== --- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/core/MessageContextTests.java (added) +++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/core/MessageContextTests.java Wed Jul 18 16:36:55 2007 @@ -0,0 +1,60 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.axis2.jaxws.core; + +import java.util.Map; + +import junit.framework.TestCase; + +/* + * Testing jaxws message context's interation with axis2 message context. + * JAXWS delegates all property setting/getting up to axis2, but we need to + * be careful how we use axis2's MC. We should not have access to the options + * bag in the axis2 MC, for example. + */ + +public class MessageContextTests extends TestCase { + + static final String key1 = "ONaxisMC"; + static final String key2 = "ONaxisMCOptions"; + static final String key3 = "ONjaxwsMC"; + + /* TODO: + * should also test to make sure service or operation context properties + * on the axis2 MC are not accessible. That's probably best left for another test. + */ + public void testMessageContextPropertiesAccessibility() throws Exception { + org.apache.axis2.context.MessageContext axisMC = new org.apache.axis2.context.MessageContext(); + MessageContext jaxwsMC = new MessageContext(axisMC); + axisMC.setProperty(key1, "value"); + axisMC.getOptions().setProperty(key2, "value"); + jaxwsMC.setProperty(key3, "value"); + + assertNotNull(jaxwsMC.getProperty(key1)); + assertNull(jaxwsMC.getProperty(key2)); + assertNotNull(jaxwsMC.getProperty(key3)); + + Map props = jaxwsMC.getProperties(); + + assertNotNull(props.get(key1)); + assertNull(props.get(key2)); + assertNotNull(props.get(key3)); + } + +} Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java?view=diff&rev=557426&r1=557425&r2=557426 ============================================================================== --- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java (original) +++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java Wed Jul 18 16:36:55 2007 @@ -29,6 +29,7 @@ import org.apache.axis2.jaxws.client.DispatchSoapActionTests; import org.apache.axis2.jaxws.client.PropertyValueTests; import org.apache.axis2.jaxws.client.ProxySoapActionTests; +import org.apache.axis2.jaxws.core.MessageContextTests; import org.apache.axis2.jaxws.databinding.BindingToProtocolTests; import org.apache.axis2.jaxws.description.AnnotationDescriptionTests; import org.apache.axis2.jaxws.description.GetDescFromBindingProviderTests; @@ -124,6 +125,7 @@ suite.addTestSuite(BlockTests.class); suite.addTestSuite(MessageTests.class); + suite.addTestSuite(MessageContextTests.class); suite.addTestSuite(FaultTests.class); suite.addTestSuite(SAAJConverterTests.class); suite.addTestSuite(SOAP12Tests.class); Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/AddNumbersHandlerTests.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/AddNumbersHandlerTests.java?view=diff&rev=557426&r1=557425&r2=557426 ============================================================================== --- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/AddNumbersHandlerTests.java (original) +++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/AddNumbersHandlerTests.java Wed Jul 18 16:36:55 2007 @@ -91,7 +91,7 @@ p.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, axisEndpoint); int total = proxy.addNumbersHandler(10,10); - + assertEquals("With handler manipulation, total should be 3 less than a proper sumation.", 17, total); TestLogger.logger.debug("Total (after handler manipulation) = " + total); TestLogger.logger.debug("----------------------------------"); Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/addnumbershandler/AddNumbersClientLogicalHandler.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/addnumbershandler/AddNumbersClientLogicalHandler.java?view=diff&rev=557426&r1=557425&r2=557426 ============================================================================== --- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/addnumbershandler/AddNumbersClientLogicalHandler.java (original) +++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/addnumbershandler/AddNumbersClientLogicalHandler.java Wed Jul 18 16:36:55 2007 @@ -56,7 +56,14 @@ Boolean outbound = (Boolean)messagecontext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY); if (!outbound) { // inbound response on the client - + + // make sure standard property is available + + Object bob = messagecontext.get(LogicalMessageContext.HTTP_RESPONSE_CODE); + if (bob == null) { + throw new NullPointerException("bob is null"); + } + // previously caused a NPE due to internal Properties.putAll(map); // where 'map' had a key/value pair with null value. So, internally // we now use HashMap instead of Properties. --------------------------------------------------------------------- To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org For additional commands, e-mail: axis-cvs-help@ws.apache.org