Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 73313 invoked from network); 1 Dec 2007 14:47:49 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 1 Dec 2007 14:47:49 -0000 Received: (qmail 34265 invoked by uid 500); 1 Dec 2007 14:47:37 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 34138 invoked by uid 500); 1 Dec 2007 14:47:36 -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 34127 invoked by uid 500); 1 Dec 2007 14:47:36 -0000 Delivered-To: apmail-ws-axis2-cvs@ws.apache.org Received: (qmail 34124 invoked by uid 99); 1 Dec 2007 14:47:36 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 01 Dec 2007 06:47:36 -0800 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED 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; Sat, 01 Dec 2007 14:47:11 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 022691A9842; Sat, 1 Dec 2007 06:46:53 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r600141 [9/10] - in /webservices/axis2/branches/java/jaxws21/modules: adb-codegen/ adb-codegen/src/org/apache/axis2/schema/ adb-codegen/src/org/apache/axis2/schema/template/ adb-codegen/src/org/apache/axis2/schema/util/ adb-codegen/src/org/... Date: Sat, 01 Dec 2007 14:43:54 -0000 To: axis2-cvs@ws.apache.org From: pradine@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20071201144653.022691A9842@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/server/HttpServiceProcessor.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/server/HttpServiceProcessor.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/server/HttpServiceProcessor.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/server/HttpServiceProcessor.java Sat Dec 1 06:43:28 2007 @@ -19,20 +19,20 @@ package org.apache.axis2.transport.http.server; +import java.io.IOException; +import java.net.SocketException; +import java.net.SocketTimeoutException; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.http.ConnectionClosedException; import org.apache.http.HttpException; +import org.apache.http.protocol.BasicHttpContext; import org.apache.http.protocol.HttpContext; -import org.apache.http.protocol.HttpExecutionContext; import edu.emory.mathcs.backport.java.util.concurrent.atomic.AtomicBoolean; import edu.emory.mathcs.backport.java.util.concurrent.atomic.AtomicLong; -import java.io.IOException; -import java.net.SocketException; -import java.net.SocketTimeoutException; - /** * I/O processor intended to process requests and fill in responses. * @@ -79,7 +79,7 @@ public void run() { LOG.debug("New connection thread"); - HttpContext context = new HttpExecutionContext(null); + HttpContext context = new BasicHttpContext(null); try { while (! Thread.interrupted() && ! isDestroyed() && this.conn.isOpen()) { this.httpservice.handleRequest(this.conn, context); Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/util/RESTUtil.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/util/RESTUtil.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/util/RESTUtil.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/util/RESTUtil.java Sat Dec 1 06:43:28 2007 @@ -72,8 +72,13 @@ } catch (IOException e) { throw AxisFault.makeFault(e); } finally { - msgContext.setProperty(Constants.Configuration.MESSAGE_TYPE, - HTTPConstants.MEDIA_TYPE_APPLICATION_XML); + String messageType = + (String) msgContext.getProperty(Constants.Configuration.MESSAGE_TYPE); + if (HTTPConstants.MEDIA_TYPE_X_WWW_FORM.equals(messageType) || + HTTPConstants.MEDIA_TYPE_MULTIPART_FORM_DATA.equals(messageType)) { + msgContext.setProperty(Constants.Configuration.MESSAGE_TYPE, + HTTPConstants.MEDIA_TYPE_APPLICATION_XML); + } } return invokeAxisEngine(msgContext); } @@ -113,8 +118,13 @@ catch (IOException e) { throw AxisFault.makeFault(e); } finally { - msgContext.setProperty(Constants.Configuration.MESSAGE_TYPE, - HTTPConstants.MEDIA_TYPE_APPLICATION_XML); + String messageType = + (String) msgContext.getProperty(Constants.Configuration.MESSAGE_TYPE); + if (HTTPConstants.MEDIA_TYPE_X_WWW_FORM.equals(messageType) || + HTTPConstants.MEDIA_TYPE_MULTIPART_FORM_DATA.equals(messageType)) { + msgContext.setProperty(Constants.Configuration.MESSAGE_TYPE, + HTTPConstants.MEDIA_TYPE_APPLICATION_XML); + } } return invokeAxisEngine(msgContext); } Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ClientHandler.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ClientHandler.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ClientHandler.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ClientHandler.java Sat Dec 1 06:43:28 2007 @@ -55,8 +55,8 @@ import org.apache.http.params.HttpParams; import org.apache.http.params.HttpParamsLinker; import org.apache.http.protocol.BasicHttpProcessor; +import org.apache.http.protocol.ExecutionContext; import org.apache.http.protocol.HttpContext; -import org.apache.http.protocol.HttpExecutionContext; import org.apache.http.protocol.HttpProcessor; import org.apache.http.protocol.RequestConnControl; import org.apache.http.protocol.RequestContent; @@ -132,8 +132,8 @@ try { HttpContext context = conn.getContext(); - context.setAttribute(HttpExecutionContext.HTTP_CONNECTION, conn); - context.setAttribute(HttpExecutionContext.HTTP_TARGET_HOST, axis2Req.getHttpHost()); + context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn); + context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, axis2Req.getHttpHost()); context.setAttribute(OUTGOING_MESSAGE_CONTEXT, axis2Req.getMsgContext()); context.setAttribute(REQUEST_SOURCE_CHANNEL, axis2Req.getSourceChannel()); @@ -143,7 +143,7 @@ this.httpProcessor.process(request, context); conn.submitRequest(request); - context.setAttribute(HttpExecutionContext.HTTP_REQUEST, request); + context.setAttribute(ExecutionContext.HTTP_REQUEST, request); } catch (IOException e) { handleException("I/O Error : " + e.getMessage(), e, conn); @@ -162,8 +162,8 @@ HttpContext context = conn.getContext(); Axis2HttpRequest axis2Req = (Axis2HttpRequest) attachment; - context.setAttribute(HttpExecutionContext.HTTP_CONNECTION, conn); - context.setAttribute(HttpExecutionContext.HTTP_TARGET_HOST, axis2Req.getHttpHost()); + context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn); + context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, axis2Req.getHttpHost()); // allocate temporary buffers to process this request context.setAttribute(REQUEST_BUFFER, ByteBuffer.allocate(cfg.getBufferZise())); @@ -177,7 +177,7 @@ this.httpProcessor.process(request, context); conn.submitRequest(request); - context.setAttribute(HttpExecutionContext.HTTP_REQUEST, request); + context.setAttribute(ExecutionContext.HTTP_REQUEST, request); } catch (IOException e) { handleException("I/O Error : " + e.getMessage(), e, conn); @@ -368,11 +368,11 @@ context.setAttribute(RESPONSE_SINK_CHANNEL, responsePipe.sink()); BasicHttpEntity entity = new BasicHttpEntity(); - if (response.getStatusLine().getHttpVersion().greaterEquals(HttpVersion.HTTP_1_1)) { + if (response.getStatusLine().getProtocolVersion().greaterEquals(HttpVersion.HTTP_1_1)) { entity.setChunked(true); } response.setEntity(entity); - context.setAttribute(HttpContext.HTTP_RESPONSE, response); + context.setAttribute(ExecutionContext.HTTP_RESPONSE, response); workerPool.execute( new ClientWorker(cfgCtx, Channels.newInputStream(responsePipe.source()), response, Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ClientWorker.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ClientWorker.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ClientWorker.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ClientWorker.java Sat Dec 1 06:43:28 2007 @@ -48,14 +48,10 @@ private static final Log log = LogFactory.getLog(ClientWorker.class); - /** the Axis2 configuration context */ - private ConfigurationContext cfgCtx = null; /** the response message context that would be created */ private MessageContext responseMsgCtx = null; /** the InputStream out of which the response body should be read */ private InputStream in = null; - /** the original request message context */ - private MessageContext outMsgCtx = null; /** the HttpResponse received */ private HttpResponse response = null; @@ -69,9 +65,7 @@ public ClientWorker(ConfigurationContext cfgCtx, InputStream in, HttpResponse response, MessageContext outMsgCtx) { - this.cfgCtx = cfgCtx; this.in = in; - this.outMsgCtx = outMsgCtx; this.response = response; try { @@ -165,13 +159,10 @@ return; } catch (XMLStreamException e) { log.error("Error creating response SOAP envelope", e); - } catch (IOException e) { - log.error("Error closing input stream from which message was read", e); } - AxisEngine engine = new AxisEngine(cfgCtx); try { - engine.receive(responseMsgCtx); + AxisEngine.receive(responseMsgCtx); } catch (AxisFault af) { log.error("Fault processing response message through Axis2", af); } @@ -183,9 +174,4 @@ } catch (IOException ignore) {} } - // -------------- utility methods ------------- - private void handleException(String msg, Exception e) throws AxisFault { - log.error(msg, e); - throw new AxisFault(msg, e); - } } Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ConnectionPool.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ConnectionPool.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ConnectionPool.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ConnectionPool.java Sat Dec 1 06:43:28 2007 @@ -19,7 +19,7 @@ package org.apache.axis2.transport.nhttp; import org.apache.http.nio.NHttpClientConnection; -import org.apache.http.protocol.HttpExecutionContext; +import org.apache.http.protocol.ExecutionContext; import org.apache.http.HttpHost; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -78,7 +78,7 @@ public static void release(NHttpClientConnection conn) { HttpHost host = (HttpHost) conn.getContext().getAttribute( - HttpExecutionContext.HTTP_TARGET_HOST); + ExecutionContext.HTTP_TARGET_HOST); String key = host.getHostName() + ":" + Integer.toString(host.getPort()); List connections = (List) connMap.get(key); Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSender.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSender.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSender.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSender.java Sat Dec 1 06:43:28 2007 @@ -44,7 +44,6 @@ import org.apache.axis2.transport.TransportSender; import org.apache.axis2.transport.TransportUtils; import org.apache.axis2.util.MessageContextBuilder; -import org.apache.axis2.util.Utils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.http.HttpHost; @@ -238,8 +237,8 @@ if (headers != null && !headers.isEmpty()) { headers.remove(HTTP.CONN_DIRECTIVE); headers.remove(HTTP.TRANSFER_ENCODING); - headers.remove(HTTP.DATE_DIRECTIVE); - headers.remove(HTTP.SERVER_DIRECTIVE); + headers.remove(HTTP.DATE_HEADER); + headers.remove(HTTP.SERVER_HEADER); headers.remove(HTTP.CONTENT_TYPE); headers.remove(HTTP.CONTENT_LEN); headers.remove(HTTP.USER_AGENT); @@ -314,7 +313,7 @@ // if this is a dummy message to handle http 202 case with non-blocking IO // set the status code to 202 and the message body to an empty byte array (see below) - if (Utils.isExplicitlyTrue(msgContext, NhttpConstants.SC_ACCEPTED) && + if (msgContext.isPropertyTrue(NhttpConstants.SC_ACCEPTED) && msgContext.getProperty( //org.apache.sandesha2.Sandesha2Constants.MessageContextProperties.SEQUENCE_ID "WSRMSequenceId") == null) { @@ -337,7 +336,7 @@ OutputStream out = worker.getOutputStream(); try { - if (Utils.isExplicitlyTrue(msgContext, NhttpConstants.SC_ACCEPTED) && + if (msgContext.isPropertyTrue(NhttpConstants.SC_ACCEPTED) && msgContext.getProperty( //Sandesha2Constants.MessageContextProperties.SEQUENCE_ID "WSRMSequenceId") == null) { Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/HttpCoreRequestResponseTransport.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/HttpCoreRequestResponseTransport.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/HttpCoreRequestResponseTransport.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/HttpCoreRequestResponseTransport.java Sat Dec 1 06:43:28 2007 @@ -25,7 +25,6 @@ import org.apache.axis2.AxisFault; import org.apache.axis2.Constants; import org.apache.axis2.transport.RequestResponseTransport; -import org.apache.axis2.transport.RequestResponseTransport.RequestResponseTransportStatus; /** * This interface is a point of control for Axis2 (and Sandesha2 in particular) to control Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/LoggingIOSession.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/LoggingIOSession.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/LoggingIOSession.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/LoggingIOSession.java Sat Dec 1 06:43:28 2007 @@ -53,6 +53,10 @@ this.log = LogFactory.getLog(session.getClass()); } + public int getStatus() { + return this.session.getStatus(); + } + public ByteChannel channel() { return this.channel; } @@ -205,4 +209,4 @@ } -} \ No newline at end of file +} Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/NHttpConfiguration.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/NHttpConfiguration.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/NHttpConfiguration.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/NHttpConfiguration.java Sat Dec 1 06:43:28 2007 @@ -19,13 +19,10 @@ package org.apache.axis2.transport.nhttp; -import org.apache.commons.logging.LogFactory; -import org.apache.commons.logging.Log; -import org.apache.http.params.HttpConnectionParams; - import java.util.Properties; -import java.io.IOException; -import java.net.URL; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; /** * Store and manage properties that tune the nhttp transport Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ServerHandler.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ServerHandler.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ServerHandler.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ServerHandler.java Sat Dec 1 06:43:28 2007 @@ -103,7 +103,7 @@ HttpContext context = conn.getContext(); HttpRequest request = conn.getHttpRequest(); - context.setAttribute(HttpContext.HTTP_REQUEST, request); + context.setAttribute(ExecutionContext.HTTP_REQUEST, request); // allocate temporary buffers to process this request context.setAttribute(REQUEST_BUFFER, ByteBuffer.allocate(cfg.getBufferZise())); @@ -116,7 +116,7 @@ context.setAttribute(RESPONSE_SOURCE_CHANNEL, responsePipe.source()); // create the default response to this request - HttpVersion httpVersion = request.getRequestLine().getHttpVersion(); + ProtocolVersion httpVersion = request.getRequestLine().getProtocolVersion(); HttpResponse response = responseFactory.newHttpResponse( httpVersion, HttpStatus.SC_OK, context); response.setParams(this.params); @@ -232,7 +232,8 @@ * @param conn the connection being processed */ public void timeout(final NHttpServerConnection conn) { - HttpRequest req = (HttpRequest) conn.getContext().getAttribute(HttpContext.HTTP_REQUEST); + HttpRequest req = (HttpRequest) conn.getContext().getAttribute( + ExecutionContext.HTTP_REQUEST); if (req != null) { log.debug("Connection Timeout for request to : " + req.getRequestLine().getUri() + " Probably the keepalive connection was closed"); @@ -258,7 +259,7 @@ public void exception(final NHttpServerConnection conn, final HttpException e) { HttpContext context = conn.getContext(); HttpRequest request = conn.getHttpRequest(); - HttpVersion ver = request.getRequestLine().getHttpVersion(); + ProtocolVersion ver = request.getRequestLine().getProtocolVersion(); HttpResponse response = responseFactory.newHttpResponse( ver, HttpStatus.SC_BAD_REQUEST, context); byte[] msg = EncodingUtils.getAsciiBytes("Malformed HTTP request: " + e.getMessage()); Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ServerWorker.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ServerWorker.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ServerWorker.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/ServerWorker.java Sat Dec 1 06:43:28 2007 @@ -18,34 +18,38 @@ */ package org.apache.axis2.transport.nhttp; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Map; +import java.util.StringTokenizer; + +import org.apache.axiom.om.util.UUIDGenerator; import org.apache.axis2.AxisFault; import org.apache.axis2.Constants; -import org.apache.axis2.engine.AxisEngine; -import org.apache.axis2.description.AxisService; import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.context.MessageContext; -import org.apache.axis2.context.OperationContext; -import org.apache.axis2.transport.http.HTTPTransportUtils; -import org.apache.axis2.transport.http.HTTPTransportReceiver; +import org.apache.axis2.description.AxisService; +import org.apache.axis2.engine.AxisEngine; import org.apache.axis2.transport.RequestResponseTransport; -import org.apache.axiom.om.util.UUIDGenerator; +import org.apache.axis2.transport.http.HTTPTransportReceiver; +import org.apache.axis2.transport.http.HTTPTransportUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.http.*; +import org.apache.http.Header; +import org.apache.http.HttpInetConnection; +import org.apache.http.HttpRequest; +import org.apache.http.HttpResponse; +import org.apache.http.HttpStatus; import org.apache.http.nio.NHttpServerConnection; import org.apache.http.protocol.HTTP; import org.apache.ws.commons.schema.XmlSchema; -import javax.xml.namespace.QName; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.IOException; -import java.io.OutputStreamWriter; -import java.util.*; -import java.net.NetworkInterface; -import java.net.SocketException; -import java.net.InetAddress; - /** * Processes an incoming request through Axis2. An instance of this class would be created to * process each unique request @@ -318,9 +322,6 @@ } catch (AxisFault axisFault) { handleException("Error writing ?xsd output to client", axisFault); - return; - } catch (IOException e) { - handleException("Error writing ?xsd output to client", e); return; } } Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/Util.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/Util.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/Util.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/Util.java Sat Dec 1 06:43:28 2007 @@ -21,7 +21,6 @@ import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.addressing.AddressingConstants; import org.apache.axis2.context.MessageContext; -import org.apache.axis2.context.OperationContext; import org.apache.axis2.Constants; import org.apache.axis2.transport.http.HTTPTransportUtils; import org.apache.axis2.transport.http.HTTPConstants; Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/util/PipeImpl.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/util/PipeImpl.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/util/PipeImpl.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/nhttp/util/PipeImpl.java Sat Dec 1 06:43:28 2007 @@ -26,8 +26,6 @@ import java.nio.channels.Channels; import java.nio.channels.ReadableByteChannel; import java.nio.channels.WritableByteChannel; -import java.nio.channels.spi.SelectorProvider; -import java.nio.ByteBuffer; import java.io.PipedInputStream; import java.io.PipedOutputStream; import java.io.IOException; Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java Sat Dec 1 06:43:28 2007 @@ -284,7 +284,7 @@ // there are some information that the fault thrower wants to pass to the fault path. // Means that the fault is a ws-addressing one hence use the ws-addressing fault action. Object faultInfoForHeaders = - processingContext.getProperty(Constants.FAULT_INFORMATION_FOR_HEADERS); + processingContext.getLocalProperty(Constants.FAULT_INFORMATION_FOR_HEADERS); if (faultInfoForHeaders != null) { faultContext.setProperty(Constants.FAULT_INFORMATION_FOR_HEADERS, faultInfoForHeaders); Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/Utils.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/Utils.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/Utils.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/Utils.java Sat Dec 1 06:43:28 2007 @@ -33,7 +33,6 @@ import org.apache.axis2.description.AxisModule; import org.apache.axis2.description.AxisOperation; import org.apache.axis2.description.AxisService; -import org.apache.axis2.description.AxisServiceGroup; import org.apache.axis2.description.Flow; import org.apache.axis2.description.HandlerDescription; import org.apache.axis2.description.InOnlyAxisOperation; Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/WSDLSerializationUtil.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/WSDLSerializationUtil.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/WSDLSerializationUtil.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/WSDLSerializationUtil.java Sat Dec 1 06:43:28 2007 @@ -18,28 +18,27 @@ */ package org.apache.axis2.util; +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMFactory; +import org.apache.axiom.om.OMNamespace; +import org.apache.axiom.om.OMNode; +import org.apache.axis2.AxisFault; +import org.apache.axis2.addressing.AddressingConstants; +import org.apache.axis2.description.AxisDescription; import org.apache.axis2.description.AxisMessage; -import org.apache.axis2.description.WSDL2Constants; import org.apache.axis2.description.AxisOperation; import org.apache.axis2.description.AxisService; -import org.apache.axis2.description.AxisDescription; +import org.apache.axis2.description.WSDL2Constants; import org.apache.axis2.description.java2wsdl.Java2WSDLConstants; +import org.apache.axis2.namespace.Constants; +import org.apache.axis2.wsdl.HTTPHeaderMessage; import org.apache.axis2.wsdl.SOAPHeaderMessage; import org.apache.axis2.wsdl.SOAPModuleMessage; -import org.apache.axis2.wsdl.HTTPHeaderMessage; -import org.apache.axis2.namespace.Constants; -import org.apache.axis2.AxisFault; -import org.apache.axis2.addressing.AddressingConstants; -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.OMFactory; -import org.apache.axiom.om.OMNamespace; -import org.apache.axiom.om.OMText; import javax.xml.namespace.QName; -import javax.xml.stream.XMLStreamConstants; -import java.util.Map; -import java.util.Iterator; import java.util.ArrayList; +import java.util.Iterator; +import java.util.Map; import java.util.Set; /** @@ -434,7 +433,7 @@ public static void addWSAWActionAttribute(OMElement element, String action , OMNamespace wsaw) { - if (action == null || action.length() == 0) { + if (action == null || action.length() == 0 || "\\\"\\\"".equals(action)) { return; } element.addAttribute("Action", action, wsaw); @@ -468,19 +467,11 @@ } public static void addWSDLDocumentationElement(AxisDescription axisDescription, OMElement omElement, OMFactory omFactory, OMNamespace wsdl) { - String documentationString = axisDescription.getDocumentation(); + OMNode documentationNode = axisDescription.getDocumentationNode(); OMElement documentation; - if (documentationString != null && !"".equals(documentationString)) { + if (documentationNode != null) { documentation = omFactory.createOMElement(WSDL2Constants.DOCUMENTATION, wsdl); - OMText omText; - if (documentationString.indexOf(CDATA_START) > -1) { - documentationString = documentationString.replaceFirst(CDATA_START_REGEX, ""); - documentationString = documentationString.replaceFirst(CDATA_END_REGEX, ""); - omText = omFactory.createOMText(documentationString, XMLStreamConstants.CDATA); - } else { - omText = omFactory.createOMText(documentationString); - } - documentation.addChild(omText); + documentation.addChild(documentationNode); omElement.addChild(documentation); } } Modified: webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/ClientConfigurationFactory.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/ClientConfigurationFactory.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/ClientConfigurationFactory.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/ClientConfigurationFactory.java Sat Dec 1 06:43:28 2007 @@ -23,12 +23,17 @@ import org.apache.axis2.context.ConfigurationContextFactory; import org.apache.axis2.deployment.DeploymentException; import org.apache.axis2.description.AxisService; +import org.apache.axis2.jaxws.i18n.Messages; import org.apache.axis2.jaxws.util.Constants; import org.apache.axis2.metadata.registry.MetadataFactoryRegistry; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; /** This class serves as a factory for ConfigurationContexts suitable in the client environment. */ public class ClientConfigurationFactory { + + private static final Log log = LogFactory.getLog(ClientConfigurationFactory.class); /** Returns a ClientConfigurationFactory object. */ public static ClientConfigurationFactory newInstance() { @@ -42,15 +47,17 @@ */ public synchronized ConfigurationContext getClientConfigurationContext() { ConfigurationContext configContext = null; - //TODO: Add logging String repoPath = System.getProperty(Constants.AXIS2_REPO_PATH); String axisConfigPath = System.getProperty(Constants.AXIS2_CONFIG_PATH); + if(log.isDebugEnabled()){ + log.debug("Axis2 repository path : "+repoPath); + log.debug("Axis2 Config path : "+axisConfigPath); + } try { configContext = ConfigurationContextFactory .createConfigurationContextFromFileSystem(repoPath, axisConfigPath); } catch (AxisFault e) { - // TODO: Add RAS logging and processing - e.printStackTrace(); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("clientConfigCtxtErr",e.getMessage())); } return configContext; } Modified: webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/builder/DescriptionBuilderComposite.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/builder/DescriptionBuilderComposite.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/builder/DescriptionBuilderComposite.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/builder/DescriptionBuilderComposite.java Sat Dec 1 06:43:28 2007 @@ -22,12 +22,15 @@ */ package org.apache.axis2.jaxws.description.builder; +import org.apache.axis2.jaxws.description.xml.handler.HandlerChainsType; import org.apache.axis2.jaxws.util.WSDL4JWrapper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.wsdl.Definition; + +import java.io.InputStream; import java.net.URL; import java.util.ArrayList; import java.util.HashMap; @@ -98,6 +101,14 @@ private WsdlGenerator wsdlGenerator; private ClassLoader classLoader; + + // represents a stream to the XML handler chain configuration + // either this or the HandlerChainAnnot may be present, but + // not both, they may both be null + private InputStream handlerChainSource; + + // JAXB object used to represent handler chain configuration info + private HandlerChainsType handlerChainsType = null; // Methods public WebServiceAnnot getWebServiceAnnot() { @@ -454,6 +465,22 @@ public void setClassLoader(ClassLoader classLoader) { this.classLoader = classLoader; + } + + public void setHandlerChainSource(InputStream handlerChainSource) { + this.handlerChainSource = handlerChainSource; + } + + public InputStream getHandlerChainSource() { + return handlerChainSource; + } + + public HandlerChainsType getHandlerChainsType() { + return handlerChainsType; + } + + public void setHandlerChainsType(HandlerChainsType handlerChainsType) { + this.handlerChainsType = handlerChainsType; } /** Modified: webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/ConverterUtils.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/ConverterUtils.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/ConverterUtils.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/ConverterUtils.java Sat Dec 1 06:43:28 2007 @@ -18,6 +18,7 @@ */ package org.apache.axis2.jaxws.description.builder.converter; +import org.apache.axis2.java.security.AccessController; import org.apache.axis2.jaxws.description.builder.DescriptionBuilderComposite; import org.apache.axis2.jaxws.description.builder.FieldDescriptionComposite; import org.apache.axis2.jaxws.description.builder.HandlerChainAnnot; @@ -39,6 +40,7 @@ import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.lang.reflect.WildcardType; +import java.security.PrivilegedAction; import java.util.List; public class ConverterUtils { @@ -51,9 +53,13 @@ * the annotation (i.e. Class, Method, Field) * @return - Annotation annotation represented by the given Class */ - public static Annotation getAnnotation(Class annotationClass, AnnotatedElement element) { - return element.getAnnotation(annotationClass); - } + public static Annotation getAnnotation(final Class annotationClass, final AnnotatedElement element) { + return (Annotation) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + return element.getAnnotation(annotationClass); + } + }); + } /** * This is a helper method to create a HandlerChainAnnot since the Modified: webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImpl.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImpl.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImpl.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImpl.java Sat Dec 1 06:43:28 2007 @@ -37,6 +37,7 @@ import org.apache.axis2.jaxws.description.builder.converter.JavaClassToDBCConverter; import org.apache.axis2.jaxws.description.validator.ServiceDescriptionValidator; import org.apache.axis2.jaxws.description.validator.EndpointDescriptionValidator; +import org.apache.axis2.jaxws.i18n.Messages; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -198,9 +199,7 @@ if (log.isDebugEnabled()) { log.debug("ServiceDesciption was not created for class: " + serviceImplClass); } - // TODO: NLS & RAS - throw ExceptionFactory.makeWebServiceException( - "A ServiceDescription was not created for " + serviceImplClass); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("createServiceDescrErr", serviceImplClass.getName())); } } return serviceDesc; @@ -230,18 +229,10 @@ } } else { - String msg = - "The ServiceDescription failed to validate due to the following errors: \n" + - validator.toString(); - - if (log.isDebugEnabled()) { - log.debug("Validation Phase 2 failure: " + msg); - log.debug("Failing composite: " + serviceImplComposite.toString()); - log.debug("Failing Service Description: " + serviceDescription.toString()); - } - - // TODO: Validate all service descriptions before failing - // TODO: Get more detailed failure information from the Validator + String msg = Messages.getMessage("createSrvcDescrDBCMapErr", + validator.toString(), + serviceImplComposite.toString(), + serviceDescription.toString()); throw ExceptionFactory.makeWebServiceException(msg); } } else { Modified: webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionUtils.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionUtils.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionUtils.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionUtils.java Sat Dec 1 06:43:28 2007 @@ -364,12 +364,11 @@ } } - public static HandlerChainsType loadHandlerChains(InputStream is) { + public static HandlerChainsType loadHandlerChains(InputStream is, ClassLoader classLoader) { try { // All the classes we need should be part of this package JAXBContext jc = JAXBContext - .newInstance("org.apache.axis2.jaxws.description.xml.handler", - EndpointDescriptionImpl.class.getClassLoader()); + .newInstance("org.apache.axis2.jaxws.description.xml.handler", classLoader); Unmarshaller u = jc.createUnmarshaller(); @@ -379,7 +378,7 @@ } catch (Exception e) { throw ExceptionFactory .makeWebServiceException( - "EndpointDescriptionImpl: loadHandlerList: thrown when attempting to unmarshall JAXB content"); + "DescriptionUtils: loadHandlerList: thrown when attempting to unmarshall JAXB content"); } } @@ -531,8 +530,7 @@ try { axisService.addParameter(headerQNParameter); } catch (AxisFault e) { - // TODO: RAS - log.warn("Unable to add Parameter for header QNames to AxisService " + axisService, e); + log.warn(Messages.getMessage("regHandlerHeadersErr",axisService.getName(),e.getMessage())); } } } Modified: webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointDescriptionImpl.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointDescriptionImpl.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointDescriptionImpl.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointDescriptionImpl.java Sat Dec 1 06:43:28 2007 @@ -161,6 +161,7 @@ //ANNOTATION: @HandlerChain private HandlerChain handlerChainAnnotation; private HandlerChainsType handlerChainsType; + private InputStream handlerChainSource; // Information common to both WebService and WebServiceProvider annotations private String annotation_WsdlLocation; @@ -220,9 +221,9 @@ // REVIEW: setting these should probably be done in the getters! It needs to be done before we try to select a // port to use if one wasn't specified because we'll try to get to the annotations to get the PortType if (this.implOrSEIClass != null) { - webServiceAnnotation = (WebService)implOrSEIClass.getAnnotation(WebService.class); + webServiceAnnotation = (WebService)getAnnotation(implOrSEIClass,WebService.class); webServiceProviderAnnotation = - (WebServiceProvider)implOrSEIClass.getAnnotation(WebServiceProvider.class); + (WebServiceProvider)getAnnotation(implOrSEIClass,WebServiceProvider.class); } this.isDynamicPort = dynamicPort; if (DescriptionUtils.isEmpty(portName)) { @@ -234,12 +235,8 @@ // At this point, there must be a port QName set, either as passed in, or determined from the WSDL and/or annotations. // If not, that is an error. if (this.portQName == null) { - if (log.isDebugEnabled()) { - log.debug("PortQName was null and could not be determined by runtime. Class: " + - theClass + "; ServiceDescription: " + parent); - } - throw ExceptionFactory.makeWebServiceException( - "EndpointDescription: portQName could not be determined for class " + theClass); + String msg = Messages.getMessage("endpointDescriptionErr1",theClass.getName(),parent.getClass().getName()); + throw ExceptionFactory.makeWebServiceException(msg); } // TODO: Refactor this with the consideration of no WSDL/Generic Service/Annotated SEI @@ -255,23 +252,9 @@ try { getServiceDescriptionImpl().getClientConfigurationFactory() .completeAxis2Configuration(axisService); - } catch (DeploymentException e) { - // TODO RAS & NLS - if (log.isDebugEnabled()) { - log.debug( - "Caught DeploymentException attempting to complete configuration on AxisService: " - + axisService + " for ServiceDesription: " + parent, e); - } - throw ExceptionFactory.makeWebServiceException( - "Unable to complete configuration due to exception " + e, e); } catch (Exception e) { - // TODO RAS & NLS - if (log.isDebugEnabled()) { - log.debug("Caught Exception attempting to complete configuration on AxisService: " - + axisService + " for ServiceDesription: " + parent, e); - } - throw ExceptionFactory.makeWebServiceException( - "Unable to complete configuration due to exception " + e, e); + String msg = Messages.getMessage("endpointDescriptionErr2",e.getClass().getName(),parent.getClass().getName()); + throw ExceptionFactory.makeWebServiceException(msg, e); } } @@ -295,12 +278,21 @@ this.parentServiceDescription = parent; this.serviceImplName = serviceImplName; this.implOrSEIClass = null; + composite = getServiceDescriptionImpl().getDescriptionBuilderComposite(); if (composite == null) { - throw ExceptionFactory.makeWebServiceException( - "EndpointDescription.EndpointDescription: parents DBC is null"); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("endpointDescriptionErr3")); + } + + if(composite.getHandlerChainAnnot() != null && composite.getHandlerChainSource() != null) { + throw ExceptionFactory.makeWebServiceException( + Messages.getMessage("handlerSourceFail", composite.getClassName())); } + + handlerChainSource = composite.getHandlerChainSource(); + + handlerChainsType = composite.getHandlerChainsType(); //Set the base level of annotation that we are processing...currently // a 'WebService' or a 'WebServiceProvider' @@ -441,8 +433,7 @@ axisService.addParameter(wsdlDefParameter); axisService.addParameter(wsdlLocationParameter); } catch (Exception e) { - throw ExceptionFactory.makeWebServiceException( - "EndpointDescription: Unable to add parameters to AxisService"); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("endpointDescriptionErr4")); } } else { @@ -475,7 +466,7 @@ } catch (Exception e) { throw ExceptionFactory - .makeWebServiceException("EndpointDescription: Unable to add parameters to AxisService"); + .makeWebServiceException(Messages.getMessage("endpointDescriptionErr4"),e); } } @@ -535,9 +526,7 @@ try { axisService.addParameter(parameter); } catch (AxisFault e) { - // TODO: Throwing wrong exception - e.printStackTrace(); - throw new UnsupportedOperationException("Can't add AxisService param: " + e); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("endpointDescriptionErr5"),e); } } } @@ -566,20 +555,14 @@ if (!getServiceDescriptionImpl().isDBCMap()) { - webServiceAnnotation = (WebService)implOrSEIClass.getAnnotation(WebService.class); + webServiceAnnotation = (WebService)getAnnotation(implOrSEIClass,WebService.class); webServiceProviderAnnotation = - (WebServiceProvider)implOrSEIClass.getAnnotation(WebServiceProvider.class); + (WebServiceProvider)getAnnotation(implOrSEIClass,WebServiceProvider.class); if (webServiceAnnotation == null && webServiceProviderAnnotation == null) - // TODO: NLS - throw ExceptionFactory.makeWebServiceException( - "Either WebService or WebServiceProvider annotation must be present on " + - implOrSEIClass); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("endpointDescriptionErr6",implOrSEIClass.getName())); else if (webServiceAnnotation != null && webServiceProviderAnnotation != null) - // TODO: NLS - throw ExceptionFactory.makeWebServiceException( - "Both WebService or WebServiceProvider annotations cannot be presenton " + - implOrSEIClass); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("endpointDescriptionErr7",implOrSEIClass.getName())); } // If portName was specified, set it. Otherwise, we will get it from the appropriate // annotation when the getter is called. @@ -613,9 +596,8 @@ // does not extend Exception, so lets catch everything that extends Throwable // rather than just Exception. } catch (Throwable e) { - // TODO: Throwing wrong exception - e.printStackTrace(); - throw new UnsupportedOperationException("Can't create SEI class: " + e); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("endpointDescriptionErr8"),e); + } } endpointInterfaceDescription = new EndpointInterfaceDescriptionImpl(seiClass, this); @@ -704,15 +686,10 @@ void updateWithSEI(Class sei) { // Updating with an SEI is only valid for declared ports; it is not valid for dynamic ports. if (isDynamicPort()) { - // TODO: RAS and NLS - throw ExceptionFactory.makeWebServiceException( - "Can not update an SEI on a dynamic port. PortQName:" + portQName); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("updateWithSEIErr1",portQName.toString())); } if (sei == null) { - // TODO: RAS and NLS - throw ExceptionFactory.makeWebServiceException( - "EndpointDescription.updateWithSEI was passed a null SEI. PortQName:" + - portQName); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("updateWithSEIErr2",portQName.toString())); } if (endpointInterfaceDescription != null) { @@ -742,9 +719,7 @@ } if (axisService == null) { - // TODO: RAS & NLS - throw ExceptionFactory.makeWebServiceException("Unable to create AxisService for " - + createAxisServiceName()); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("setupAxisServiceErr1",createAxisServiceName())); } // Save the Service QName as a parameter. @@ -762,8 +737,7 @@ axisService.addParameter(portParameter); } catch (AxisFault e) { - // TODO RAS - e.printStackTrace(); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("setupAxisServiceErr2"),e); } } @@ -793,9 +767,7 @@ } if (axisService == null) { - // TODO: RAS & NLS - throw ExceptionFactory.makeWebServiceException("Unable to create AxisService for " - + createAxisServiceName()); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("setupAxisServiceErr1",createAxisServiceName())); } //Save the Port Type name @@ -827,8 +799,7 @@ axisService.addParameter(serviceClassNameParameter); } catch (AxisFault e) { - // TODO RAS - e.printStackTrace(); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("setupAxisServiceErr2"),e); } } @@ -882,8 +853,6 @@ } catch (AxisFault e) { // REVIEW: If we couldn't use the WSDL, should we fail instead of continuing to process using annotations? // Note that if we choose to fail, we need to distinguish the partial WSDL case (which can not fail) - // TODO: RAS/NLS Need to update the message with the appropriate inserts -// log.warn(Messages.getMessage("warnAxisFault", e.toString()), e); String wsdlLocation = (getServiceDescriptionImpl().getWSDLLocation() != null) ? getServiceDescriptionImpl().getWSDLLocation().toString() : null; String implClassName = null; @@ -892,10 +861,7 @@ } else { implClassName = (implOrSEIClass != null) ? implOrSEIClass.getName() : null; } - log.warn("The WSDL file could not be used due to an exception. The WSDL will be ignored and annotations will be used. Implementation class: " - + implClassName - + "; WSDL Location: " - + wsdlLocation); + log.warn(Messages.getMessage("bldAxisSrvcFromWSDLErr",implClassName,wsdlLocation),e); isBuiltFromWSDL = false; return isBuiltFromWSDL; @@ -997,9 +963,7 @@ } if (!wsdlPortFound) { - // TODO: NLS and RAS - throw ExceptionFactory.makeWebServiceException( - "WSDL Port not found for port " + portQName.getLocalPart()); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("serviceDescErr3",portQName.getLocalPart())); } } @@ -1263,7 +1227,7 @@ } else { if (implOrSEIClass != null) { serviceModeAnnotation = - (ServiceMode)implOrSEIClass.getAnnotation(ServiceMode.class); + (ServiceMode)getAnnotation(implOrSEIClass,ServiceMode.class); } } } @@ -1298,7 +1262,7 @@ } else { if (implOrSEIClass != null) { bindingTypeAnnotation = - (BindingType)implOrSEIClass.getAnnotation(BindingType.class); + (BindingType)getAnnotation(implOrSEIClass,BindingType.class); } } } @@ -1343,12 +1307,8 @@ if (handlerChainAnnotation != null) { String handlerFileName = handlerChainAnnotation.file(); - // TODO RAS & NLS if (log.isDebugEnabled()) { - log.debug("EndpointDescriptionImpl.getHandlerChain: fileName: " - + handlerFileName - + " className: " - + composite.getClassName()); + log.debug(Messages.getMessage("handlerChainsTypeErr",handlerFileName,composite.getClassName())); } String className = getServiceDescriptionImpl().isDBCMap() ? @@ -1365,9 +1325,18 @@ if(is == null) { log.warn("Unable to load handlers from file: " + handlerFileName); } else { - handlerChainsType = DescriptionUtils.loadHandlerChains(is); + handlerChainsType = + DescriptionUtils.loadHandlerChains(is, this.getClass().getClassLoader()); } } + else if(handlerChainSource != null) { + + if(log.isDebugEnabled()) { + log.debug("Loading handlers from provided source"); + } + handlerChainsType = DescriptionUtils.loadHandlerChains(handlerChainSource, + this.getClass().getClassLoader()); + } } return handlerChainsType; } @@ -1397,13 +1366,13 @@ if (seic != null) { handlerChainAnnotation = seic.getHandlerChainAnnot(); } - // TODO else clause for if to throw exception when seic == null + //TODO else clause for if to throw exception when seic == null } } } else { if (implOrSEIClass != null) { handlerChainAnnotation = - (HandlerChain)implOrSEIClass.getAnnotation(HandlerChain.class); + (HandlerChain)getAnnotation(implOrSEIClass,HandlerChain.class); } } } @@ -1750,8 +1719,7 @@ WSDL4JWrapper wsdl4jWrapper = new WSDL4JWrapper(dbc.getWsdlURL(), wsdlDef); getServiceDescriptionImpl().setGeneratedWsdlWrapper(wsdl4jWrapper); } catch (Exception e) { - throw ExceptionFactory.makeWebServiceException( - "EndpointDescriptionImpl: WSDLException thrown when attempting to instantiate WSDL4JWrapper "); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("generateWSDLErr"),e); } } else { // REVIEW:Determine if we should always throw an exception on this, or at this point @@ -1834,6 +1802,20 @@ return string.toString(); } return string.toString(); + } + + /** + * Get an annotation. This is wrappered to avoid a Java2Security violation. + * @param cls Class that contains annotation + * @param annotation Class of requrested Annotation + * @return annotation or null + */ + private static Annotation getAnnotation(final Class cls, final Class annotation) { + return (Annotation) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + return cls.getAnnotation(annotation); + } + }); } } Modified: webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java Sat Dec 1 06:43:28 2007 @@ -24,6 +24,7 @@ import org.apache.axis2.description.AxisOperation; import org.apache.axis2.description.AxisOperationFactory; import org.apache.axis2.description.AxisService; +import org.apache.axis2.java.security.AccessController; import org.apache.axis2.jaxws.ExceptionFactory; import org.apache.axis2.jaxws.description.EndpointDescription; import org.apache.axis2.jaxws.description.EndpointInterfaceDescription; @@ -34,6 +35,7 @@ import org.apache.axis2.jaxws.description.builder.DescriptionBuilderComposite; import org.apache.axis2.jaxws.description.builder.MDQConstants; import org.apache.axis2.jaxws.description.builder.MethodDescriptionComposite; +import org.apache.axis2.jaxws.i18n.Messages; import org.apache.axis2.wsdl.WSDLConstants; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -43,8 +45,11 @@ import javax.wsdl.Definition; import javax.wsdl.PortType; import javax.xml.namespace.QName; + +import java.lang.annotation.Annotation; import java.lang.reflect.Method; import java.lang.reflect.Modifier; +import java.security.PrivilegedAction; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; @@ -163,12 +168,7 @@ genericProviderAxisOp = AxisOperationFactory.getOperationDescription(WSDLConstants.WSDL20_2006Constants.MEP_URI_IN_OUT); } catch (AxisFault e) { - if (log.isDebugEnabled()) { - log.debug("Unable to build AxisOperation for generic Provider; caught exception.", e); - } - // TODO: NLS & RAS - throw ExceptionFactory.makeWebServiceException("Caught exception trying to create AxisOperation", - e); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("eiDescrImplErr"),e); } genericProviderAxisOp.setName(new QName(JAXWS_NOWSDL_PROVIDER_OPERATION_NAME)); @@ -282,8 +282,7 @@ methodList.add(method); if (!Modifier.isPublic(method.getModifiers())) { // JSR-181 says methods must be public (p14) - // TODO NLS - throw ExceptionFactory.makeWebServiceException("SEI methods must be public"); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("seiMethodsErr")); } // TODO: other validation per JSR-181 } @@ -302,9 +301,7 @@ */ void updateWithSEI(Class sei) { if (seiClass != null && seiClass != sei) - // TODO: It probably is invalid to try reset the SEI; but this isn't the right error processing - throw new UnsupportedOperationException( - "The seiClass is already set; reseting it is not supported"); + throw ExceptionFactory.makeWebServiceException(new UnsupportedOperationException(Messages.getMessage("seiProcessingErr"))); else if (seiClass != null && seiClass == sei) // We've already done the necessary updates for this SEI return; @@ -555,7 +552,8 @@ soapBindingAnnotation = dbc.getSoapBindingAnnot(); } else { if (seiClass != null) { - soapBindingAnnotation = (SOAPBinding)seiClass.getAnnotation(SOAPBinding.class); + soapBindingAnnotation = + (SOAPBinding)getAnnotation(seiClass,SOAPBinding.class); } } } @@ -664,8 +662,7 @@ //Verify that we can find the SEI in the composite list if (superDBC == null) { - throw ExceptionFactory.makeWebServiceException( - "EndpointInterfaceDescriptionImpl: cannot find super class that was specified for this class"); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("seiNotFoundErr")); } //If the superclass contains a WebService annotation then retrieve its methods @@ -927,7 +924,7 @@ webServiceAnnotation = dbc.getWebServiceAnnot(); } else { if (seiClass != null) { - webServiceAnnotation = (WebService)seiClass.getAnnotation(WebService.class); + webServiceAnnotation = (WebService)getAnnotation(seiClass,WebService.class); } } } @@ -1020,5 +1017,17 @@ } return string.toString(); } - + /** + * Get an annotation. This is wrappered to avoid a Java2Security violation. + * @param cls Class that contains annotation + * @param annotation Class of requrested Annotation + * @return annotation or null + */ + private static Annotation getAnnotation(final Class cls, final Class annotation) { + return (Annotation) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + return cls.getAnnotation(annotation); + } + }); + } } Modified: webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java?rev=600141&r1=600140&r2=600141&view=diff ============================================================================== --- webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java (original) +++ webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java Sat Dec 1 06:43:28 2007 @@ -28,6 +28,7 @@ import org.apache.axis2.description.AxisService; import org.apache.axis2.description.Parameter; import org.apache.axis2.description.WSDL2Constants; +import org.apache.axis2.java.security.AccessController; import org.apache.axis2.jaxws.ExceptionFactory; import org.apache.axis2.jaxws.description.AttachmentDescription; import org.apache.axis2.jaxws.description.AttachmentType; @@ -45,6 +46,7 @@ import org.apache.axis2.jaxws.description.builder.OneWayAnnot; import org.apache.axis2.jaxws.description.builder.ParameterDescriptionComposite; import org.apache.axis2.jaxws.description.builder.converter.ConverterUtils; +import org.apache.axis2.jaxws.i18n.Messages; import org.apache.axis2.jaxws.util.WSDL4JWrapper; import org.apache.axis2.wsdl.WSDLConstants; import org.apache.commons.logging.Log; @@ -72,10 +74,12 @@ import java.io.File; import java.lang.annotation.Annotation; +import java.lang.reflect.AnnotatedElement; import java.lang.reflect.Method; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.net.URL; +import java.security.PrivilegedAction; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -264,13 +268,7 @@ // ROBUST_IN_ONLY // Determine how these MEP's should be handled, if at all } catch (Exception e) { - if (log.isDebugEnabled()) { - log.debug("Unable to build AxisOperation for OperationDescrition; caught exception.", - e); - } - // TODO: NLS & RAS - throw ExceptionFactory.makeWebServiceException("Caught exception trying to create AxisOperation", - e); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("clientAxisOprErr"),e); } newAxisOperation.setName(determineOperationQName(seiMethod)); @@ -379,14 +377,7 @@ // ROBUST_IN_ONLY // Determine how these MEP's should be handled, if at all } catch (Exception e) { - if (log.isDebugEnabled()) { - log.debug( - "Unable to build AxisOperation for OperationDescrition; caught exception.", - e); - } - // TODO: NLS & RAS - throw ExceptionFactory - .makeWebServiceException("Caught exception trying to create AxisOperation", e); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("clientAxisOprErr"), e); } newAxisOperation.setName(determineOperationQName(this.methodComposite)); @@ -499,17 +490,11 @@ + elementName + "; partTNS: " + partNamespace); } if (axisMessage == null) { - // TODO: RAS & NLS - throw ExceptionFactory.makeWebServiceException( - "Could not setup Doc/Lit/Bare operation because input message is null"); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("createAxisOprErr1")); } else if (DescriptionUtils.isEmpty(partNamespace)) { - // TODO: RAS & NLS - throw ExceptionFactory.makeWebServiceException( - "Could not setup Doc/Lit/Bare operation because part namespace is empty"); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("createAxisOprErr2")); } else if (DescriptionUtils.isEmpty(elementName)) { - // TODO: RAS & NLS - throw ExceptionFactory.makeWebServiceException( - "Could not setup Doc/Lit/Bare operation because name is empty"); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("createAxisOprErr3")); } else { QName partQName = new QName(partNamespace, elementName); if(log.isDebugEnabled()) { @@ -565,12 +550,12 @@ void setSEIMethod(Method method) { if (seiMethod != null) { - // TODO: This is probably an error, but error processing logic is incorrect - throw new UnsupportedOperationException( - "Can not set an SEI method once it has been set."); + throw ExceptionFactory.makeWebServiceException( + new UnsupportedOperationException(Messages.getMessage("seiMethodErr"))); } else { seiMethod = method; - webMethodAnnotation = seiMethod.getAnnotation(WebMethod.class); + webMethodAnnotation = (WebMethod) + getAnnotation(seiMethod, WebMethod.class); parameterDescriptions = createParameterDescriptions(); faultDescriptions = createFaultDescriptions(); } @@ -792,7 +777,7 @@ return null; } - WebMethod wmAnnotation = javaMethod.getAnnotation(WebMethod.class); + WebMethod wmAnnotation = (WebMethod) getAnnotation(javaMethod,WebMethod.class); // Per JSR-181 MR Sec 4.2 "Annotation: javax.jws.WebMethod" pg 17, // if @WebMethod specifies and operation name, use that. Otherwise // default is the Java method name @@ -925,7 +910,8 @@ public RequestWrapper getAnnoRequestWrapper() { if (requestWrapperAnnotation == null) { if (!isDBC() && seiMethod != null) { - requestWrapperAnnotation = seiMethod.getAnnotation(RequestWrapper.class); + requestWrapperAnnotation = (RequestWrapper) + getAnnotation(seiMethod,RequestWrapper.class); } else if (isDBC() && methodComposite != null) { requestWrapperAnnotation = methodComposite.getRequestWrapperAnnot(); } else { @@ -1031,7 +1017,8 @@ public ResponseWrapper getAnnoResponseWrapper() { if (responseWrapperAnnotation == null) { if (!isDBC() && seiMethod != null) { - responseWrapperAnnotation = seiMethod.getAnnotation(ResponseWrapper.class); + responseWrapperAnnotation = (ResponseWrapper) + getAnnotation(seiMethod,ResponseWrapper.class); } else if (isDBC() && methodComposite != null) { responseWrapperAnnotation = methodComposite.getResponseWrapperAnnot(); } else { @@ -1257,7 +1244,8 @@ public WebResult getAnnoWebResult() { if (webResultAnnotation == null) { if (!isDBC() && seiMethod != null) { - webResultAnnotation = seiMethod.getAnnotation(WebResult.class); + webResultAnnotation = (WebResult) + getAnnotation(seiMethod,WebResult.class); } else if (methodComposite != null) { webResultAnnotation = methodComposite.getWebResultAnnot(); } else { @@ -1399,7 +1387,8 @@ // JSR-181 Sec 4.7 p. 28 if (soapBindingAnnotation == null) { if (!isDBC() && seiMethod != null) { - soapBindingAnnotation = seiMethod.getAnnotation(SOAPBinding.class); + soapBindingAnnotation = (SOAPBinding) + getAnnotation(seiMethod,SOAPBinding.class); } else if (isDBC() && methodComposite != null) { soapBindingAnnotation = methodComposite.getSoapBindingAnnot(); } else { @@ -1477,7 +1466,7 @@ onewayAnnotation = OneWayAnnot.createOneWayAnnotImpl(); } } else if (!isDBC() && seiMethod != null) { - onewayAnnotation = seiMethod.getAnnotation(Oneway.class); + onewayAnnotation = (Oneway) getAnnotation(seiMethod,Oneway.class); } else { if (log.isDebugEnabled()) { log.debug("Unable to get OneWay annotation"); @@ -1593,8 +1582,7 @@ // And this method is only used to parse out the JAX-WS Async parameter types to find // AsyncHandler. The problem with the code that was removed is that a Type can not be // instantiated, so we can't new up a Type inside the PDC. - throw new UnsupportedOperationException( - "OperationDescriptionImpl.getParameterActualGenericType not supported for DBC"); + throw ExceptionFactory.makeWebServiceException(new UnsupportedOperationException(Messages.getMessage("genParamTypesErr"))); // Type [] type = new Type[parameterDescriptions.length]; // for (int i=0; i < parameterDescriptions.length; i++){ // type[i] = ((ParameterDescriptionImpl) parameterDescriptions[i]).getParameterActualGenericType(); @@ -2129,10 +2117,21 @@ try { theAxisOperation.addParameter(headerQNParameter); } catch (AxisFault e) { - // TODO: RAS - log.warn("Unable to add Parameter for header QNames to AxisOperation " + theAxisOperation, e); + log.warn(Messages.getMessage("regMUHeadersErr",theAxisOperation.getClass().getName()), e); } } } - + /** + * Get an annotation. This is wrappered to avoid a Java2Security violation. + * @param cls Class that contains annotation + * @param annotation Class of requrested Annotation + * @return annotation or null + */ + private static Annotation getAnnotation(final AnnotatedElement element, final Class annotation) { + return (Annotation) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + return element.getAnnotation(annotation); + } + }); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org For additional commands, e-mail: axis-cvs-help@ws.apache.org