You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2014/07/24 15:42:25 UTC
[1/2] Start working on removing all the JAXB 2.1 and JAX-WS 2.1 code
and profiles
Repository: cxf
Updated Branches:
refs/heads/master 08d98fbb1 -> 67432aef1
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/HttpServletRequestAdapter.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/HttpServletRequestAdapter.java b/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/HttpServletRequestAdapter.java
deleted file mode 100644
index 0797b5e..0000000
--- a/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/HttpServletRequestAdapter.java
+++ /dev/null
@@ -1,414 +0,0 @@
-/**
- * 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.cxf.transport.http_jaxws_spi;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.UnsupportedEncodingException;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.security.Principal;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.servlet.AsyncContext;
-import javax.servlet.DispatcherType;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletInputStream;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.Part;
-import javax.xml.ws.spi.http.HttpContext;
-import javax.xml.ws.spi.http.HttpExchange;
-
-/**
- * This class provides a HttpServletRequest instance using information
- * coming from the HttpExchange and HttpContext instances provided
- * by the underlying container.
- * Note: many methods' implementation still TODO.
- *
- */
-class HttpServletRequestAdapter implements HttpServletRequest {
-
- private HttpExchange exchange;
- private HttpContext context;
- private String characterEncoding;
- private ServletInputStreamAdapter servletInputStreamAdapter;
- private BufferedReader reader;
-
- public HttpServletRequestAdapter(HttpExchange exchange) {
- this.exchange = exchange;
- this.context = exchange.getHttpContext();
- }
-
- public AsyncContext getAsyncContext() {
- throw new UnsupportedOperationException();
- }
-
- public Object getAttribute(String name) {
- return exchange.getAttribute(name);
- }
-
- public Enumeration<String> getAttributeNames() {
- return Collections.enumeration(exchange.getAttributeNames());
- }
-
- public String getCharacterEncoding() {
- return characterEncoding;
- }
-
- public int getContentLength() {
- return 0;
- }
-
- public String getContentType() {
- return this.getHeader("Content-Type");
- }
-
- public DispatcherType getDispatcherType() {
- throw new UnsupportedOperationException();
- }
-
- public ServletInputStream getInputStream() throws IOException {
- if (servletInputStreamAdapter == null) {
- servletInputStreamAdapter = new ServletInputStreamAdapter(exchange.getRequestBody());
- }
- return servletInputStreamAdapter;
- }
-
- public String getLocalAddr() {
- InetSocketAddress isa = exchange.getLocalAddress();
- if (isa != null) {
- InetAddress ia = isa.getAddress();
- if (ia != null) {
- return ia.getHostAddress();
- }
- }
- return null;
- }
-
- public Locale getLocale() {
- return null;
- }
-
- public Enumeration<Locale> getLocales() {
- throw new UnsupportedOperationException();
- }
-
- public String getLocalName() {
- InetSocketAddress isa = exchange.getLocalAddress();
- if (isa != null) {
- InetAddress ia = isa.getAddress();
- if (ia != null) {
- return ia.getHostName();
- }
- }
- return null;
- }
-
- public int getLocalPort() {
- InetSocketAddress isa = exchange.getLocalAddress();
- return isa != null ? isa.getPort() : 0;
- }
-
- public String getParameter(String name) {
- throw new UnsupportedOperationException();
- }
-
- public Map<String, String[]> getParameterMap() {
- throw new UnsupportedOperationException();
- }
-
- public Enumeration<String> getParameterNames() {
- throw new UnsupportedOperationException();
- }
-
- public String[] getParameterValues(String name) {
- throw new UnsupportedOperationException();
- }
-
- public String getProtocol() {
- return exchange.getProtocol();
- }
-
- public BufferedReader getReader() throws IOException {
- if (reader == null) {
- Reader isr = characterEncoding == null
- ? new InputStreamReader(exchange.getRequestBody())
- : new InputStreamReader(exchange.getRequestBody(), characterEncoding);
- reader = new BufferedReader(isr);
- }
- return reader;
- }
-
- @Deprecated
- public String getRealPath(String path) {
- throw new UnsupportedOperationException();
- }
-
- public String getRemoteAddr() {
- InetSocketAddress isa = exchange.getRemoteAddress();
- if (isa != null) {
- InetAddress ia = isa.getAddress();
- if (ia != null) {
- return ia.getHostAddress();
- }
- }
- return null;
- }
-
- public String getRemoteHost() {
- InetSocketAddress isa = exchange.getRemoteAddress();
- if (isa != null) {
- InetAddress ia = isa.getAddress();
- if (ia != null) {
- return ia.getHostName();
- }
- }
- return null;
- }
-
- public int getRemotePort() {
- InetSocketAddress isa = exchange.getRemoteAddress();
- return isa != null ? isa.getPort() : 0;
- }
-
- public RequestDispatcher getRequestDispatcher(String path) {
- throw new UnsupportedOperationException();
- }
-
- public String getScheme() {
- return exchange.getScheme();
- }
-
- public String getServerName() {
- return null;
- }
-
- public int getServerPort() {
- return 0;
- }
-
- public ServletContext getServletContext() {
- return null;
- }
-
- public boolean isAsyncStarted() {
- throw new UnsupportedOperationException();
- }
-
- public boolean isAsyncSupported() {
- throw new UnsupportedOperationException();
- }
-
- public boolean isSecure() {
- throw new UnsupportedOperationException();
- }
-
- public void removeAttribute(String name) {
- throw new UnsupportedOperationException();
- }
-
- public void setAttribute(String name, Object o) {
- throw new UnsupportedOperationException();
- }
-
- public void setCharacterEncoding(String env) throws UnsupportedEncodingException {
- this.characterEncoding = env;
- }
-
- public AsyncContext startAsync() {
- throw new UnsupportedOperationException();
- }
-
- public AsyncContext startAsync(ServletRequest request, ServletResponse response) {
- throw new UnsupportedOperationException();
- }
-
- public boolean authenticate(HttpServletResponse response) throws IOException, ServletException {
- throw new UnsupportedOperationException();
- }
-
- public String getAuthType() {
- return null;
- }
-
- public String getContextPath() {
- return exchange.getContextPath();
- }
-
- public Cookie[] getCookies() {
- return null;
- }
-
- public long getDateHeader(String name) {
- String s = this.getHeader(name);
- return s != null ? Long.valueOf(s) : 0;
- }
-
- public String getHeader(String name) {
- return exchange.getRequestHeader(name);
- }
-
- public Enumeration<String> getHeaderNames() {
- return Collections.enumeration(exchange.getRequestHeaders().keySet());
- }
-
- public Enumeration<String> getHeaders(String name) {
- List<String> list = exchange.getRequestHeaders().get(name);
- return list != null ? Collections.enumeration(list) : null;
- }
-
- public int getIntHeader(String name) {
- String s = this.getHeader(name);
- return s != null ? Integer.valueOf(s) : 0;
- }
-
- public String getMethod() {
- return exchange.getRequestMethod();
- }
-
- public Part getPart(String name) throws IOException, ServletException {
- throw new UnsupportedOperationException();
- }
-
- public Collection<Part> getParts() throws IOException, ServletException {
- throw new UnsupportedOperationException();
- }
-
- public String getPathInfo() {
- return exchange.getPathInfo();
- }
-
- public String getPathTranslated() {
- return null;
- }
-
- public String getQueryString() {
- return exchange.getQueryString();
- }
-
- public String getRemoteUser() {
- return null;
- }
-
- public String getRequestedSessionId() {
- return null;
- }
-
- public String getRequestURI() {
- return exchange.getRequestURI();
- }
-
- public StringBuffer getRequestURL() {
- StringBuffer sb = new StringBuffer();
- sb.append(exchange.getScheme());
- sb.append("://");
- String host = this.getHeader("Host");
- if (host != null) {
- sb.append(host);
- } else {
- InetSocketAddress la = exchange.getLocalAddress();
- if (la != null) {
- sb.append(la.getHostName());
- if (la.getPort() > 0) {
- sb.append(":");
- sb.append(la.getPort());
- }
- } else {
- sb.append("localhost");
- }
- }
- sb.append(exchange.getContextPath());
- sb.append(context.getPath());
- return sb;
- }
-
- public String getServletPath() {
- return null;
- }
-
- public HttpSession getSession() {
- return null;
- }
-
- public HttpSession getSession(boolean create) {
- return null;
- }
-
- public Principal getUserPrincipal() {
- return exchange.getUserPrincipal();
- }
-
- public boolean isRequestedSessionIdFromCookie() {
- throw new UnsupportedOperationException();
- }
-
- @Deprecated
- public boolean isRequestedSessionIdFromUrl() {
- throw new UnsupportedOperationException();
- }
-
- public boolean isRequestedSessionIdFromURL() {
- throw new UnsupportedOperationException();
- }
-
- public boolean isRequestedSessionIdValid() {
- return false;
- }
-
- public boolean isUserInRole(String role) {
- return exchange.isUserInRole(role);
- }
-
- public void login(String username, String password) throws ServletException {
- throw new UnsupportedOperationException();
- }
-
- public void logout() throws ServletException {
- throw new UnsupportedOperationException();
- }
-
- private class ServletInputStreamAdapter extends ServletInputStream {
-
- private InputStream delegate;
-
- public ServletInputStreamAdapter(InputStream delegate) {
- this.delegate = delegate;
- }
-
- @Override
- public int read() throws IOException {
- return delegate.read();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/HttpServletResponseAdapter.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/HttpServletResponseAdapter.java b/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/HttpServletResponseAdapter.java
deleted file mode 100644
index 9e9a329..0000000
--- a/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/HttpServletResponseAdapter.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/**
- * 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.cxf.transport.http_jaxws_spi;
-
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Locale;
-
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletResponse;
-import javax.xml.ws.spi.http.HttpExchange;
-
-/**
- * This class provides a HttpServletResponse instance using information
- * coming from the HttpExchange instance provided
- * by the underlying container.
- * Note: many methods' implementation still TODO.
- *
- */
-class HttpServletResponseAdapter implements HttpServletResponse {
-
- private HttpExchange exchange;
- private String characterEncoding;
- private Locale locale;
- private boolean committed;
- private ServletOutputStreamAdapter servletOutputStream;
- private PrintWriter writer;
- private int status;
-
- public HttpServletResponseAdapter(HttpExchange exchange) {
- this.exchange = exchange;
- }
-
- public void flushBuffer() throws IOException {
- exchange.getResponseBody().flush();
- committed = true;
- }
-
- public int getBufferSize() {
- throw new UnsupportedOperationException();
- }
-
- public String getCharacterEncoding() {
- return characterEncoding;
- }
-
- public String getContentType() {
- return this.getHeader("Content-Type");
- }
-
- public Locale getLocale() {
- return locale;
- }
-
- public ServletOutputStream getOutputStream() throws IOException {
- if (servletOutputStream == null) {
- servletOutputStream = new ServletOutputStreamAdapter(exchange.getResponseBody());
- }
- return servletOutputStream;
- }
-
- public PrintWriter getWriter() throws IOException {
- if (writer == null) {
- if (characterEncoding != null) {
- writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(exchange.getResponseBody(),
- characterEncoding)));
- } else {
- writer = new PrintWriter(exchange.getResponseBody());
- }
- }
- return writer;
- }
-
- public boolean isCommitted() {
- return committed;
- }
-
- public void reset() {
- throw new UnsupportedOperationException();
- }
-
- public void resetBuffer() {
- throw new UnsupportedOperationException();
- }
-
- public void setBufferSize(int size) {
- throw new UnsupportedOperationException();
- }
-
- public void setCharacterEncoding(String charset) {
- this.characterEncoding = charset;
- }
-
- public void setContentLength(int len) {
- if (!committed) {
- exchange.getResponseHeaders().put("Content-Length",
- Collections.singletonList(String.valueOf(len)));
- }
- }
-
- public void setContentType(String type) {
- if (!committed) {
- exchange.getResponseHeaders().put("Content-Type", Collections.singletonList(type));
- }
- }
-
- public void setLocale(Locale loc) {
- this.locale = loc;
- }
-
- public void addCookie(Cookie cookie) {
- throw new UnsupportedOperationException();
- }
-
- public void addDateHeader(String name, long date) {
- this.addHeader(name, String.valueOf(date));
- }
-
- public void addHeader(String name, String value) {
- exchange.addResponseHeader(name, value);
- }
-
- public void addIntHeader(String name, int value) {
- this.addHeader(name, String.valueOf(value));
- }
-
- public boolean containsHeader(String name) {
- return exchange.getResponseHeaders().containsKey(name);
- }
-
- public String encodeURL(String url) {
- throw new UnsupportedOperationException();
- }
-
- public String encodeRedirectURL(String url) {
- throw new UnsupportedOperationException();
- }
-
- @Deprecated
- public String encodeUrl(String url) {
- throw new UnsupportedOperationException();
- }
-
- @Deprecated
- public String encodeRedirectUrl(String url) {
- throw new UnsupportedOperationException();
- }
-
- public String getHeader(String name) {
- List<String> headers = exchange.getResponseHeaders().get(name);
- return (headers != null && !headers.isEmpty()) ? headers.get(0) : null;
- }
-
- public Collection<String> getHeaderNames() {
- return exchange.getResponseHeaders().keySet();
- }
-
- public Collection<String> getHeaders(String headerName) {
- return exchange.getResponseHeaders().get(headerName);
- }
-
- public int getStatus() {
- return status;
- }
-
- public void sendError(int sc) throws IOException {
- this.setStatus(sc);
- this.committed = true;
- }
-
- public void sendError(int sc, String msg) throws IOException {
- this.sendError(sc);
- }
-
- public void sendRedirect(String location) throws IOException {
- throw new UnsupportedOperationException();
- }
-
- public void setDateHeader(String name, long date) {
- this.setHeader(name, String.valueOf(date));
- }
-
- public void setHeader(String name, String value) {
- List<String> list = new LinkedList<String>();
- list.add(value);
- exchange.getResponseHeaders().put(name, list);
- }
-
- public void setIntHeader(String name, int value) {
- this.setHeader(name, String.valueOf(value));
- }
-
- public void setStatus(int sc) {
- this.status = sc;
- this.exchange.setStatus(sc);
- }
-
- @Deprecated
- public void setStatus(int sc, String sm) {
- this.setStatus(sc);
- }
-
- private class ServletOutputStreamAdapter extends ServletOutputStream {
-
- private OutputStream delegate;
-
- public ServletOutputStreamAdapter(OutputStream delegate) {
- this.delegate = delegate;
- }
-
- @Override
- public void write(int b) throws IOException {
- delegate.write(b);
- }
-
- @Override
- public void flush() throws IOException {
- delegate.flush();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/JAXWSHttpSpiDestination.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/JAXWSHttpSpiDestination.java b/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/JAXWSHttpSpiDestination.java
deleted file mode 100644
index 8553082..0000000
--- a/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/JAXWSHttpSpiDestination.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/**
- * 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.cxf.transport.http_jaxws_spi;
-
-import java.io.IOException;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.cxf.Bus;
-import org.apache.cxf.BusFactory;
-import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.continuations.SuspendedInvocationException;
-import org.apache.cxf.interceptor.Fault;
-import org.apache.cxf.message.ExchangeImpl;
-import org.apache.cxf.message.Message;
-import org.apache.cxf.message.MessageImpl;
-import org.apache.cxf.service.model.EndpointInfo;
-import org.apache.cxf.transport.http.AbstractHTTPDestination;
-import org.apache.cxf.transport.http.DestinationRegistry;
-import org.apache.cxf.transport.http.HTTPSession;
-
-public class JAXWSHttpSpiDestination extends AbstractHTTPDestination {
-
- static final Logger LOG = LogUtils.getL7dLogger(JAXWSHttpSpiDestination.class);
-
- public JAXWSHttpSpiDestination(Bus b,
- DestinationRegistry registry,
- EndpointInfo ei) throws IOException {
- super(b, registry, ei, ei.getAddress(), false);
- }
-
- @Override
- protected Logger getLogger() {
- return LOG;
- }
-
- /**
- * This is called by handlers for servicing requests
- *
- * @param context
- * @param req
- * @param resp
- * @throws IOException
- */
- protected void doService(HttpServletRequest req, HttpServletResponse resp)
- throws IOException {
-
- Bus origBus = BusFactory.getAndSetThreadDefaultBus(bus);
- try {
- serviceRequest(req, resp);
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- if (origBus != bus) {
- BusFactory.setThreadDefaultBus(origBus);
- }
- }
- }
-
- protected void serviceRequest(final HttpServletRequest req, final HttpServletResponse resp)
- throws IOException {
-
- if (LOG.isLoggable(Level.FINE)) {
- LOG.fine("Service http request on thread: " + Thread.currentThread());
- }
- Message inMessage = new MessageImpl();
- ExchangeImpl exchange = new ExchangeImpl();
- exchange.setInMessage(inMessage);
-
- setupMessage(inMessage, null, req.getServletContext(), req, resp);
-
- ((MessageImpl)inMessage).setDestination(this);
-
- exchange.setSession(new HTTPSession(req));
-
- try {
- incomingObserver.onMessage(inMessage);
- resp.flushBuffer();
- } catch (SuspendedInvocationException ex) {
- if (ex.getRuntimeException() != null) {
- throw ex.getRuntimeException();
- }
- // else nothing to do
- } catch (Fault ex) {
- Throwable cause = ex.getCause();
- if (cause instanceof RuntimeException) {
- throw (RuntimeException)cause;
- } else {
- throw ex;
- }
- } catch (RuntimeException ex) {
- throw ex;
- } finally {
- if (LOG.isLoggable(Level.FINE)) {
- LOG.fine("Finished servicing http request on thread: " + Thread.currentThread());
- }
- }
- }
-
- protected String getBasePath(String contextPath) throws IOException {
- return contextPath + getAddress().getAddress().getValue();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/JAXWSHttpSpiTransportFactory.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/JAXWSHttpSpiTransportFactory.java b/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/JAXWSHttpSpiTransportFactory.java
deleted file mode 100644
index e137220..0000000
--- a/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/JAXWSHttpSpiTransportFactory.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * 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.cxf.transport.http_jaxws_spi;
-
-import java.io.IOException;
-
-import javax.xml.ws.spi.http.HttpContext;
-
-import org.apache.cxf.Bus;
-import org.apache.cxf.binding.soap.SoapTransportFactory;
-import org.apache.cxf.service.model.EndpointInfo;
-import org.apache.cxf.transport.Destination;
-import org.apache.cxf.transport.DestinationFactory;
-import org.apache.cxf.transport.http.DestinationRegistryImpl;
-
-public class JAXWSHttpSpiTransportFactory extends SoapTransportFactory implements DestinationFactory {
-
- private HttpContext context;
- private JAXWSHttpSpiDestination destination;
-
- public JAXWSHttpSpiTransportFactory(HttpContext context) {
- super();
- this.context = context;
- }
-
- public Destination getDestination(EndpointInfo endpointInfo, Bus bus) throws IOException {
- if (destination == null) {
- destination = new JAXWSHttpSpiDestination(bus, new DestinationRegistryImpl(), endpointInfo);
- // set handler into the provided HttpContext, our Destination hook into the server container
- HttpHandlerImpl handler = new HttpHandlerImpl(destination);
- context.setHandler(handler);
- }
- return destination;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/resources/META-INF/services/javax.xml.ws.spi.Provider
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/resources/META-INF/services/javax.xml.ws.spi.Provider b/rt/frontend/jaxws/src/main/resources/META-INF/services/javax.xml.ws.spi.Provider
new file mode 100644
index 0000000..b328b64
--- /dev/null
+++ b/rt/frontend/jaxws/src/main/resources/META-INF/services/javax.xml.ws.spi.Provider
@@ -0,0 +1 @@
+org.apache.cxf.jaxws22.spi.ProviderImpl
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/spi-2.2/META-INF/services/javax.xml.ws.spi.Provider
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/spi-2.2/META-INF/services/javax.xml.ws.spi.Provider b/rt/frontend/jaxws/src/main/spi-2.2/META-INF/services/javax.xml.ws.spi.Provider
deleted file mode 100644
index b328b64..0000000
--- a/rt/frontend/jaxws/src/main/spi-2.2/META-INF/services/javax.xml.ws.spi.Provider
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.cxf.jaxws22.spi.ProviderImpl
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/rs/security/cors/pom.xml
----------------------------------------------------------------------
diff --git a/rt/rs/security/cors/pom.xml b/rt/rs/security/cors/pom.xml
index 3aab7fd..dd9fc2d 100644
--- a/rt/rs/security/cors/pom.xml
+++ b/rt/rs/security/cors/pom.xml
@@ -47,9 +47,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
- <build>
- <plugins>
- </plugins>
- </build>
- <profiles />
</project>
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/systests/container-integration/pom.xml
----------------------------------------------------------------------
diff --git a/systests/container-integration/pom.xml b/systests/container-integration/pom.xml
index 4b03d3f..8b520b2 100644
--- a/systests/container-integration/pom.xml
+++ b/systests/container-integration/pom.xml
@@ -33,13 +33,6 @@
<url>http://cxf.apache.org</url>
<modules>
<module>webapp</module>
+ <module>grizzly</module>
</modules>
- <profiles>
- <profile>
- <id>jaxws22</id>
- <modules>
- <module>grizzly</module>
- </modules>
- </profile>
- </profiles>
</project>
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/systests/ws-rm/pom.xml
----------------------------------------------------------------------
diff --git a/systests/ws-rm/pom.xml b/systests/ws-rm/pom.xml
index 78546af..d08c07d 100644
--- a/systests/ws-rm/pom.xml
+++ b/systests/ws-rm/pom.xml
@@ -124,61 +124,6 @@
</dependencies>
<profiles>
<profile>
- <id>jaxws22</id>
- <dependencies>
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jaxws_2.2_spec</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <properties>
- <cxf.spi-dir>spi-2.2</cxf.spi-dir>
- </properties>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>create-endorsed-dir</id>
- <phase>validate</phase>
- <goals>
- <goal>copy</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jaxws_2.2_spec</artifactId>
- <outputDirectory>${basedir}/target/endorsed</outputDirectory>
- </artifactItem>
- </artifactItems>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <compilerArguments>
- <endorseddirs>${basedir}/target/endorsed</endorseddirs>
- </compilerArguments>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <argLine>-Djava.endorsed.dirs=${basedir}/target/endorsed</argLine>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
<id>async</id>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/systests/ws-security-examples/pom.xml
----------------------------------------------------------------------
diff --git a/systests/ws-security-examples/pom.xml b/systests/ws-security-examples/pom.xml
index f01c9f6..35cc25b 100644
--- a/systests/ws-security-examples/pom.xml
+++ b/systests/ws-security-examples/pom.xml
@@ -183,16 +183,6 @@
</dependencies>
<profiles>
<profile>
- <id>jaxws22</id>
- <dependencies>
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jaxws_2.2_spec</artifactId>
- <scope>compile</scope>
- </dependency>
- </dependencies>
- </profile>
- <profile>
<id>async</id>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/systests/ws-security/pom.xml
----------------------------------------------------------------------
diff --git a/systests/ws-security/pom.xml b/systests/ws-security/pom.xml
index 316e647..9390bb2 100644
--- a/systests/ws-security/pom.xml
+++ b/systests/ws-security/pom.xml
@@ -223,16 +223,6 @@
</dependencies>
<profiles>
<profile>
- <id>jaxws22</id>
- <dependencies>
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jaxws_2.2_spec</artifactId>
- <scope>compile</scope>
- </dependency>
- </dependencies>
- </profile>
- <profile>
<id>async</id>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/systests/ws-specs/pom.xml
----------------------------------------------------------------------
diff --git a/systests/ws-specs/pom.xml b/systests/ws-specs/pom.xml
index 474c5f7..058143b 100644
--- a/systests/ws-specs/pom.xml
+++ b/systests/ws-specs/pom.xml
@@ -197,79 +197,6 @@
</dependencies>
<profiles>
<profile>
- <id>jaxws22</id>
- <dependencies>
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jaxws_2.2_spec</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <properties>
- <cxf.spi-dir>spi-2.2</cxf.spi-dir>
- </properties>
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>add-jaxws22-test-source</id>
- <phase>generate-test-sources</phase>
- <goals>
- <goal>add-test-source</goal>
- </goals>
- <configuration>
- <sources>
- <source>${basedir}/src/test/jaxws22</source>
- </sources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>create-endorsed-dir</id>
- <phase>validate</phase>
- <goals>
- <goal>copy</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jaxws_2.2_spec</artifactId>
- <outputDirectory>${basedir}/target/endorsed</outputDirectory>
- </artifactItem>
- </artifactItems>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <compilerArguments>
- <endorseddirs>${basedir}/target/endorsed</endorseddirs>
- </compilerArguments>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <argLine>-Djava.endorsed.dirs=${basedir}/target/endorsed</argLine>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
<id>async</id>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/Hello.java
----------------------------------------------------------------------
diff --git a/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/Hello.java b/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/Hello.java
new file mode 100644
index 0000000..2a2bb60
--- /dev/null
+++ b/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/Hello.java
@@ -0,0 +1,31 @@
+/**
+ * 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.cxf.systest.ws.addr_responses;
+
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+@SOAPBinding(use = SOAPBinding.Use.LITERAL)
+@WebService(name = "Hello", targetNamespace = "http://cxf.apache.org/systest/wsa/responses")
+public interface Hello {
+ @SOAPBinding(style = SOAPBinding.Style.RPC)
+ @WebMethod(operationName = "sayHi", exclude = false)
+ String sayHi(String value);
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/HelloImpl.java
----------------------------------------------------------------------
diff --git a/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/HelloImpl.java b/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/HelloImpl.java
new file mode 100644
index 0000000..069ece4
--- /dev/null
+++ b/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/HelloImpl.java
@@ -0,0 +1,34 @@
+/**
+ * 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.cxf.systest.ws.addr_responses;
+import javax.jws.WebService;
+import javax.xml.ws.soap.Addressing;
+import javax.xml.ws.soap.AddressingFeature.Responses;
+
+
+@WebService(name = "Hello", serviceName = "HelloService", portName = "HelloPort",
+ targetNamespace = "http://cxf.apache.org/systest/wsa/responses",
+ endpointInterface = "org.apache.cxf.systest.ws.addr_responses.Hello")
+@Addressing(responses = Responses.NON_ANONYMOUS)
+public class HelloImpl implements Hello {
+ public String sayHi(String arg0) {
+ return "get" + arg0;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/HelloService.java
----------------------------------------------------------------------
diff --git a/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/HelloService.java b/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/HelloService.java
new file mode 100644
index 0000000..730b7c9
--- /dev/null
+++ b/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/HelloService.java
@@ -0,0 +1,43 @@
+/**
+ * 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.cxf.systest.ws.addr_responses;
+
+import java.net.URL;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+@WebServiceClient(name = "HelloService",
+ targetNamespace = "http://cxf.apache.org/systest/wsa/responses")
+public class HelloService extends Service {
+ static final QName SERVICE = new QName("http://cxf.apache.org/systest/wsa/responses", "HelloService");
+ static final QName HELLO_PORT =
+ new QName("http://cxf.apache.org/systest/wsa/responses", "HelloPort");
+ public HelloService(URL wsdlLocation, QName serviceName) {
+ super(wsdlLocation, serviceName);
+ }
+
+ @WebEndpoint(name = "HelloPort")
+ public Hello getHelloPort() {
+ return (Hello)super.getPort(HELLO_PORT, Hello.class);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/Server.java
----------------------------------------------------------------------
diff --git a/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/Server.java b/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/Server.java
new file mode 100644
index 0000000..8eb8ad4
--- /dev/null
+++ b/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/Server.java
@@ -0,0 +1,58 @@
+/**
+ * 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.cxf.systest.ws.addr_responses;
+
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.jaxws.EndpointImpl;
+import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
+
+public class Server extends AbstractBusTestServerBase {
+ static final String PORT = allocatePort(Server.class);
+ protected void run() {
+ Object implementor = new HelloImpl();
+ String address = "http://localhost:" + PORT + "/wsa/responses";
+ EndpointImpl ep = new EndpointImpl(BusFactory.getThreadDefaultBus(),
+ implementor,
+ null,
+ getWsdl());
+ ep.publish(address);
+ }
+
+ public static void main(String[] args) {
+ try {
+ Server s = new Server();
+ s.start();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ System.exit(-1);
+ } finally {
+ System.out.println("done!");
+ }
+ }
+ private String getWsdl() {
+ try {
+ java.net.URL wsdl = getClass().getResource("/wsdl_systest_responses/responses.wsdl");
+ return wsdl.toString();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/WSAResponsesClientServerTest.java
----------------------------------------------------------------------
diff --git a/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/WSAResponsesClientServerTest.java b/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/WSAResponsesClientServerTest.java
new file mode 100644
index 0000000..9560dbc
--- /dev/null
+++ b/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_responses/WSAResponsesClientServerTest.java
@@ -0,0 +1,66 @@
+/**
+ * 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.cxf.systest.ws.addr_responses;
+
+import java.net.URL;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.soap.SOAPFaultException;
+
+import org.apache.cxf.systest.ws.AbstractWSATestBase;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class WSAResponsesClientServerTest extends AbstractWSATestBase {
+ static final String PORT = allocatePort(Server.class);
+ @Before
+ public void setUp() throws Exception {
+ createBus();
+ }
+
+ @BeforeClass
+ public static void startServers() throws Exception {
+ assertTrue("server did not launch correctly", launchServer(Server.class, true));
+ }
+
+ @Test
+ public void testWSAResponses() throws Exception {
+ this.setupInLogging();
+ this.setupOutLogging();
+ URL wsdlURL = new URL("http://localhost:" + PORT + "/wsa/responses?wsdl");
+ QName serviceQName = new QName("http://cxf.apache.org/systest/wsa/responses", "HelloService");
+ HelloService service = new HelloService(wsdlURL, serviceQName);
+ try {
+ service.getHelloPort().sayHi("helloWorld");
+ fail("Expect exception");
+ } catch (Exception e) {
+ String expectedDetail = "A header representing a Message Addressing Property is not valid";
+ if (e instanceof SOAPFaultException) {
+ assertTrue("Expect fault deail : " + expectedDetail ,
+ e.getMessage().indexOf(expectedDetail) > -1);
+ } else {
+ throw e;
+ }
+
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/Hello.java
----------------------------------------------------------------------
diff --git a/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/Hello.java b/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/Hello.java
deleted file mode 100644
index 2a2bb60..0000000
--- a/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/Hello.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * 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.cxf.systest.ws.addr_responses;
-
-import javax.jws.WebMethod;
-import javax.jws.WebService;
-import javax.jws.soap.SOAPBinding;
-
-@SOAPBinding(use = SOAPBinding.Use.LITERAL)
-@WebService(name = "Hello", targetNamespace = "http://cxf.apache.org/systest/wsa/responses")
-public interface Hello {
- @SOAPBinding(style = SOAPBinding.Style.RPC)
- @WebMethod(operationName = "sayHi", exclude = false)
- String sayHi(String value);
-}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/HelloImpl.java
----------------------------------------------------------------------
diff --git a/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/HelloImpl.java b/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/HelloImpl.java
deleted file mode 100644
index 069ece4..0000000
--- a/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/HelloImpl.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * 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.cxf.systest.ws.addr_responses;
-import javax.jws.WebService;
-import javax.xml.ws.soap.Addressing;
-import javax.xml.ws.soap.AddressingFeature.Responses;
-
-
-@WebService(name = "Hello", serviceName = "HelloService", portName = "HelloPort",
- targetNamespace = "http://cxf.apache.org/systest/wsa/responses",
- endpointInterface = "org.apache.cxf.systest.ws.addr_responses.Hello")
-@Addressing(responses = Responses.NON_ANONYMOUS)
-public class HelloImpl implements Hello {
- public String sayHi(String arg0) {
- return "get" + arg0;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/HelloService.java
----------------------------------------------------------------------
diff --git a/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/HelloService.java b/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/HelloService.java
deleted file mode 100644
index 730b7c9..0000000
--- a/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/HelloService.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * 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.cxf.systest.ws.addr_responses;
-
-import java.net.URL;
-
-import javax.xml.namespace.QName;
-import javax.xml.ws.Service;
-import javax.xml.ws.WebEndpoint;
-import javax.xml.ws.WebServiceClient;
-
-@WebServiceClient(name = "HelloService",
- targetNamespace = "http://cxf.apache.org/systest/wsa/responses")
-public class HelloService extends Service {
- static final QName SERVICE = new QName("http://cxf.apache.org/systest/wsa/responses", "HelloService");
- static final QName HELLO_PORT =
- new QName("http://cxf.apache.org/systest/wsa/responses", "HelloPort");
- public HelloService(URL wsdlLocation, QName serviceName) {
- super(wsdlLocation, serviceName);
- }
-
- @WebEndpoint(name = "HelloPort")
- public Hello getHelloPort() {
- return (Hello)super.getPort(HELLO_PORT, Hello.class);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/Server.java
----------------------------------------------------------------------
diff --git a/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/Server.java b/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/Server.java
deleted file mode 100644
index 8eb8ad4..0000000
--- a/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/Server.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * 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.cxf.systest.ws.addr_responses;
-
-import org.apache.cxf.BusFactory;
-import org.apache.cxf.jaxws.EndpointImpl;
-import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
-
-public class Server extends AbstractBusTestServerBase {
- static final String PORT = allocatePort(Server.class);
- protected void run() {
- Object implementor = new HelloImpl();
- String address = "http://localhost:" + PORT + "/wsa/responses";
- EndpointImpl ep = new EndpointImpl(BusFactory.getThreadDefaultBus(),
- implementor,
- null,
- getWsdl());
- ep.publish(address);
- }
-
- public static void main(String[] args) {
- try {
- Server s = new Server();
- s.start();
- } catch (Exception ex) {
- ex.printStackTrace();
- System.exit(-1);
- } finally {
- System.out.println("done!");
- }
- }
- private String getWsdl() {
- try {
- java.net.URL wsdl = getClass().getResource("/wsdl_systest_responses/responses.wsdl");
- return wsdl.toString();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
-}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/WSAResponsesClientServerTest.java
----------------------------------------------------------------------
diff --git a/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/WSAResponsesClientServerTest.java b/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/WSAResponsesClientServerTest.java
deleted file mode 100644
index 9560dbc..0000000
--- a/systests/ws-specs/src/test/jaxws22/org/apache/cxf/systest/ws/addr_responses/WSAResponsesClientServerTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * 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.cxf.systest.ws.addr_responses;
-
-import java.net.URL;
-
-import javax.xml.namespace.QName;
-import javax.xml.ws.soap.SOAPFaultException;
-
-import org.apache.cxf.systest.ws.AbstractWSATestBase;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-public class WSAResponsesClientServerTest extends AbstractWSATestBase {
- static final String PORT = allocatePort(Server.class);
- @Before
- public void setUp() throws Exception {
- createBus();
- }
-
- @BeforeClass
- public static void startServers() throws Exception {
- assertTrue("server did not launch correctly", launchServer(Server.class, true));
- }
-
- @Test
- public void testWSAResponses() throws Exception {
- this.setupInLogging();
- this.setupOutLogging();
- URL wsdlURL = new URL("http://localhost:" + PORT + "/wsa/responses?wsdl");
- QName serviceQName = new QName("http://cxf.apache.org/systest/wsa/responses", "HelloService");
- HelloService service = new HelloService(wsdlURL, serviceQName);
- try {
- service.getHelloPort().sayHi("helloWorld");
- fail("Expect exception");
- } catch (Exception e) {
- String expectedDetail = "A header representing a Message Addressing Property is not valid";
- if (e instanceof SOAPFaultException) {
- assertTrue("Expect fault deail : " + expectedDetail ,
- e.getMessage().indexOf(expectedDetail) > -1);
- } else {
- throw e;
- }
-
- }
- }
-
-}
[2/2] git commit: Start working on removing all the JAXB 2.1 and
JAX-WS 2.1 code and profiles
Posted by dk...@apache.org.
Start working on removing all the JAXB 2.1 and JAX-WS 2.1 code and profiles
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/67432aef
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/67432aef
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/67432aef
Branch: refs/heads/master
Commit: 67432aef1adb8e330c054431de9d0955e3993472
Parents: 08d98fb
Author: Daniel Kulp <dk...@apache.org>
Authored: Thu Jul 24 09:39:30 2014 -0400
Committer: Daniel Kulp <dk...@apache.org>
Committed: Thu Jul 24 09:40:05 2014 -0400
----------------------------------------------------------------------
distribution/manifest/pom.xml | 5 +-
distribution/pom.xml | 6 +-
parent/pom.xml | 54 +--
rt/databinding/jaxb/pom.xml | 19 -
rt/databinding/xmlbeans/pom.xml | 12 -
rt/frontend/jaxws/pom.xml | 251 +----------
.../org/apache/cxf/jaxws22/EndpointImpl.java | 116 ++++++
.../org/apache/cxf/jaxws22/JAXWS22Invoker.java | 43 ++
.../apache/cxf/jaxws22/spi/ProviderImpl.java | 76 ++++
.../spring/JAXWS22SpringEndpointImpl.java | 56 +++
.../http_jaxws_spi/HttpHandlerImpl.java | 71 ++++
.../HttpServletRequestAdapter.java | 414 +++++++++++++++++++
.../HttpServletResponseAdapter.java | 245 +++++++++++
.../http_jaxws_spi/JAXWSHttpSpiDestination.java | 123 ++++++
.../JAXWSHttpSpiTransportFactory.java | 52 +++
.../org/apache/cxf/jaxws22/EndpointImpl.java | 116 ------
.../org/apache/cxf/jaxws22/JAXWS22Invoker.java | 43 --
.../apache/cxf/jaxws22/spi/ProviderImpl.java | 76 ----
.../spring/JAXWS22SpringEndpointImpl.java | 56 ---
.../http_jaxws_spi/HttpHandlerImpl.java | 71 ----
.../HttpServletRequestAdapter.java | 414 -------------------
.../HttpServletResponseAdapter.java | 245 -----------
.../http_jaxws_spi/JAXWSHttpSpiDestination.java | 123 ------
.../JAXWSHttpSpiTransportFactory.java | 52 ---
.../META-INF/services/javax.xml.ws.spi.Provider | 1 +
.../META-INF/services/javax.xml.ws.spi.Provider | 1 -
rt/rs/security/cors/pom.xml | 5 -
systests/container-integration/pom.xml | 9 +-
systests/ws-rm/pom.xml | 55 ---
systests/ws-security-examples/pom.xml | 10 -
systests/ws-security/pom.xml | 10 -
systests/ws-specs/pom.xml | 73 ----
.../cxf/systest/ws/addr_responses/Hello.java | 31 ++
.../systest/ws/addr_responses/HelloImpl.java | 34 ++
.../systest/ws/addr_responses/HelloService.java | 43 ++
.../cxf/systest/ws/addr_responses/Server.java | 58 +++
.../WSAResponsesClientServerTest.java | 66 +++
.../cxf/systest/ws/addr_responses/Hello.java | 31 --
.../systest/ws/addr_responses/HelloImpl.java | 34 --
.../systest/ws/addr_responses/HelloService.java | 43 --
.../cxf/systest/ws/addr_responses/Server.java | 58 ---
.../WSAResponsesClientServerTest.java | 66 ---
42 files changed, 1437 insertions(+), 1930 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/distribution/manifest/pom.xml
----------------------------------------------------------------------
diff --git a/distribution/manifest/pom.xml b/distribution/manifest/pom.xml
index 2475ee0..2f6043e 100644
--- a/distribution/manifest/pom.xml
+++ b/distribution/manifest/pom.xml
@@ -33,9 +33,6 @@
<properties>
<maven.test.skip>true</maven.test.skip>
<cxf.version>${project.version}</cxf.version>
- <cxf.jaxb.version>${cxf.jaxb22.version}</cxf.jaxb.version>
- <cxf.jaxb.impl.version>${cxf.jaxb22.impl.version}</cxf.jaxb.impl.version>
- <cxf.jaxb.xjc.version>${cxf.jaxb22.impl.version}</cxf.jaxb.xjc.version>
</properties>
<dependencies>
<dependency>
@@ -381,7 +378,7 @@
<!-- Add entries for the stuff that needs to be endorsed on Java6, but not on java5 -->
<!-- Stick both versions of jaxb xjc/impl on classpath to make it easier to flip back and forth -->
<Class-Path>
- cxf-${project.version}.jar endorsed/jaxb-api-${cxf.jaxb22.version}.jar endorsed/geronimo-jaxws_2.2_spec-${cxf.specs.jaxws.api.version}.jar jaxb-impl-${cxf.jaxb22.impl.version}.jar jaxb-core-${cxf.jaxb22.core.version}.jar jaxb-impl-${cxf.jaxb21.impl.version}.jar jaxb-core-${cxf.jaxb21.core.version}.jar jaxb-xjc-${cxf.jaxb22.xjc.version}.jar jaxb-xjc-${cxf.jaxb21.xjc.version}.jar
+ cxf-${project.version}.jar endorsed/jaxb-api-${cxf.jaxb.version}.jar endorsed/geronimo-jaxws_2.2_spec-${cxf.specs.jaxws.api.version}.jar jaxb-impl-${cxf.jaxb.impl.version}.jar jaxb-core-${cxf.jaxb.core.version}.jar
</Class-Path>
</manifestEntries>
</archive>
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/distribution/pom.xml
----------------------------------------------------------------------
diff --git a/distribution/pom.xml b/distribution/pom.xml
index 45f3af7..26313b8 100644
--- a/distribution/pom.xml
+++ b/distribution/pom.xml
@@ -34,10 +34,6 @@
<maven.test.skip>true</maven.test.skip>
<cxf.version>${project.version}</cxf.version>
<cxf.checkstyle.extension>-corba</cxf.checkstyle.extension>
- <cxf.jaxb.version>${cxf.jaxb22.version}</cxf.jaxb.version>
- <cxf.jaxb.impl.version>${cxf.jaxb22.impl.version}</cxf.jaxb.impl.version>
- <cxf.jaxb.core.version>${cxf.jaxb22.core.version}</cxf.jaxb.core.version>
- <cxf.jaxb.xjc.version>${cxf.jaxb22.xjc.version}</cxf.jaxb.xjc.version>
</properties>
<modules>
<module>manifest</module>
@@ -457,7 +453,7 @@
<artifactItem>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
- <version>${cxf.jaxb22.version}</version>
+ <version>${cxf.jaxb.version}</version>
<outputDirectory>${project.build.directory}/libs/endorsed</outputDirectory>
</artifactItem>
<artifactItem>
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/parent/pom.xml
----------------------------------------------------------------------
diff --git a/parent/pom.xml b/parent/pom.xml
index cf27f83..85a8114 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -107,19 +107,10 @@
<cxf.geronimo.transaction.version>1.1.1</cxf.geronimo.transaction.version>
<cxf.jasypt.bundle.version>1.9.0_1</cxf.jasypt.bundle.version>
<cxf.javax.ws.rs.version>2.0</cxf.javax.ws.rs.version>
- <cxf.jaxb21.version>2.1</cxf.jaxb21.version>
- <cxf.jaxb21.impl.version>2.1.14</cxf.jaxb21.impl.version>
- <cxf.jaxb21.core.version>2.1.14</cxf.jaxb21.core.version>
- <cxf.jaxb21.xjc.version>2.1.14</cxf.jaxb21.xjc.version>
- <cxf.jaxb22.version>2.2.11</cxf.jaxb22.version>
- <cxf.jaxb22.impl.version>2.2.10-b140310.1920</cxf.jaxb22.impl.version>
- <cxf.jaxb22.core.version>2.2.10-b140310.1920</cxf.jaxb22.core.version>
- <cxf.jaxb22.xjc.version>2.2.10-b140310.1920</cxf.jaxb22.xjc.version>
- <!-- by default, we use jaxb 2.1, but java5 profile will override to 2.2 -->
- <cxf.jaxb.version>${cxf.jaxb21.version}</cxf.jaxb.version>
- <cxf.jaxb.impl.version>${cxf.jaxb21.impl.version}</cxf.jaxb.impl.version>
- <cxf.jaxb.core.version>${cxf.jaxb21.core.version}</cxf.jaxb.core.version>
- <cxf.jaxb.xjc.version>${cxf.jaxb21.xjc.version}</cxf.jaxb.xjc.version>
+ <cxf.jaxb.version>2.2.11</cxf.jaxb.version>
+ <cxf.jaxb.impl.version>2.2.10-b140310.1920</cxf.jaxb.impl.version>
+ <cxf.jaxb.core.version>2.2.10-b140310.1920</cxf.jaxb.core.version>
+ <cxf.jaxb.xjc.version>2.2.10-b140310.1920</cxf.jaxb.xjc.version>
<cxf.joda.time.version>2.2</cxf.joda.time.version>
<cxf.jdom.version>1.0</cxf.jdom.version>
<cxf.jettison.version>1.3.5</cxf.jettison.version>
@@ -1726,48 +1717,11 @@
</dependencyManagement>
<profiles>
<profile>
- <id>jdk17</id>
- <activation>
- <jdk>1.7</jdk>
- </activation>
- <properties>
- <cxf.jaxb.version>${cxf.jaxb22.version}</cxf.jaxb.version>
- <cxf.jaxb.impl.version>${cxf.jaxb22.impl.version}</cxf.jaxb.impl.version>
- <cxf.jaxb.xjc.version>${cxf.jaxb22.impl.version}</cxf.jaxb.xjc.version>
- <cxf.jaxb.core.version>${cxf.jaxb22.core.version}</cxf.jaxb.core.version>
- </properties>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <showDeprecation>${cxf.compile.show.deprecation}</showDeprecation>
- <showWarnings>true</showWarnings>
- <compilerArgument>${cxf.compile.flags}</compilerArgument>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-pmd-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
<id>jdk18</id>
<activation>
<jdk>1.8</jdk>
</activation>
<properties>
- <cxf.jaxb.version>${cxf.jaxb22.version}</cxf.jaxb.version>
- <cxf.jaxb.impl.version>${cxf.jaxb22.impl.version}</cxf.jaxb.impl.version>
- <cxf.jaxb.xjc.version>${cxf.jaxb22.impl.version}</cxf.jaxb.xjc.version>
- <cxf.jaxb.core.version>${cxf.jaxb22.core.version}</cxf.jaxb.core.version>
<cxf.codegen.jvmArgs>-Djavax.xml.accessExternalSchema=file</cxf.codegen.jvmArgs>
</properties>
<build>
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/databinding/jaxb/pom.xml
----------------------------------------------------------------------
diff --git a/rt/databinding/jaxb/pom.xml b/rt/databinding/jaxb/pom.xml
index 7efc11c..106697a 100644
--- a/rt/databinding/jaxb/pom.xml
+++ b/rt/databinding/jaxb/pom.xml
@@ -110,23 +110,4 @@
<optional>true</optional>
</dependency>
</dependencies>
- <profiles>
- <profile>
- <id>jdk15</id>
- <activation>
- <jdk>1.5</jdk>
- </activation>
- <dependencies>
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jaxws_2.2_spec</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-activation_1.1_spec</artifactId>
- </dependency>
- </dependencies>
- </profile>
- </profiles>
</project>
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/databinding/xmlbeans/pom.xml
----------------------------------------------------------------------
diff --git a/rt/databinding/xmlbeans/pom.xml b/rt/databinding/xmlbeans/pom.xml
index 4194695..6a8c21c 100644
--- a/rt/databinding/xmlbeans/pom.xml
+++ b/rt/databinding/xmlbeans/pom.xml
@@ -173,18 +173,6 @@
</build>
<profiles>
<profile>
- <id>jdk15</id>
- <activation>
- <jdk>1.5</jdk>
- </activation>
- <dependencies>
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-stax-api_1.0_spec</artifactId>
- </dependency>
- </dependencies>
- </profile>
- <profile>
<id>setup.eclipse</id>
<build>
<defaultGoal>process-test-sources</defaultGoal>
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/pom.xml
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/pom.xml b/rt/frontend/jaxws/pom.xml
index 9153c34..1b9f1c8 100644
--- a/rt/frontend/jaxws/pom.xml
+++ b/rt/frontend/jaxws/pom.xml
@@ -31,7 +31,6 @@
<relativePath>../../../parent/pom.xml</relativePath>
</parent>
<properties>
- <cxf.spi-dir>spi-2.1</cxf.spi-dir>
<cxf.osgi.import>
javax.servlet*;version="${cxf.osgi.javax.servlet.version}",
org.apache.aries*;version="${cxf.aries.version.range}";resolution:=optional,
@@ -103,7 +102,7 @@
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${project.version}</version>
- <scope>test</scope>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
@@ -181,252 +180,4 @@
<scope>test</scope>
</dependency>
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>add-spi</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>add-resource</goal>
- </goals>
- <configuration>
- <resources>
- <resource>
- <directory>${basedir}/src/main/${cxf.spi-dir}</directory>
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- <profiles>
- <profile>
- <id>jaxws22</id>
- <dependencies>
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jaxws_2.2_spec</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-transports-http</artifactId>
- <version>${project.version}</version>
- </dependency>
- </dependencies>
- <properties>
- <cxf.spi-dir>spi-2.2</cxf.spi-dir>
- </properties>
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>add-jaxws22-source</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>add-source</goal>
- </goals>
- <configuration>
- <sources>
- <source>${basedir}/src/main/jaxws22</source>
- </sources>
- </configuration>
- </execution>
- <execution>
- <id>add-jaxws22-test-source</id>
- <phase>generate-test-sources</phase>
- <goals>
- <goal>add-test-source</goal>
- </goals>
- <configuration>
- <sources>
- <source>${basedir}/src/test/jaxws22</source>
- </sources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>create-endorsed-dir</id>
- <phase>validate</phase>
- <goals>
- <goal>copy</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jaxws_2.2_spec</artifactId>
- <outputDirectory>${basedir}/target/endorsed</outputDirectory>
- </artifactItem>
- </artifactItems>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <compilerArguments>
- <endorseddirs>${basedir}/target/endorsed</endorseddirs>
- </compilerArguments>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
- </profile>
- <profile>
- <id>release</id>
- <dependencies>
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jaxws_2.2_spec</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-transports-http</artifactId>
- <version>${project.version}</version>
- </dependency>
- </dependencies>
- <properties>
- <cxf.spi-dir>spi-2.2</cxf.spi-dir>
- </properties>
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>add-jaxws22-source</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>add-source</goal>
- </goals>
- <configuration>
- <sources>
- <source>${basedir}/src/main/jaxws22</source>
- </sources>
- </configuration>
- </execution>
- <execution>
- <id>add-jaxws22-test-source</id>
- <phase>generate-test-sources</phase>
- <goals>
- <goal>add-test-source</goal>
- </goals>
- <configuration>
- <sources>
- <source>${basedir}/src/test/jaxws22</source>
- </sources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>create-endorsed-dir</id>
- <phase>validate</phase>
- <goals>
- <goal>copy</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jaxws_2.2_spec</artifactId>
- <outputDirectory>${basedir}/target/endorsed</outputDirectory>
- </artifactItem>
- </artifactItems>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <compilerArguments>
- <endorseddirs>${basedir}/target/endorsed</endorseddirs>
- </compilerArguments>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
- </profile>
- <profile>
- <id>jdk17</id>
- <activation>
- <jdk>[1.7,1.9)</jdk>
- </activation>
- <properties>
- <cxf.spi-dir>spi-2.2</cxf.spi-dir>
- </properties>
- <dependencies>
- <dependency>
- <groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-transports-http</artifactId>
- <version>${project.version}</version>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>add-jaxws22-source</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>add-source</goal>
- </goals>
- <configuration>
- <sources>
- <source>${basedir}/src/main/jaxws22</source>
- </sources>
- </configuration>
- </execution>
- <execution>
- <id>add-jaxws22-test-source</id>
- <phase>generate-test-sources</phase>
- <goals>
- <goal>add-test-source</goal>
- </goals>
- <configuration>
- <sources>
- <source>${basedir}/src/test/jaxws22</source>
- </sources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
</project>
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/EndpointImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/EndpointImpl.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/EndpointImpl.java
new file mode 100644
index 0000000..7c38466
--- /dev/null
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/EndpointImpl.java
@@ -0,0 +1,116 @@
+/**
+ * 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.cxf.jaxws22;
+
+import javax.xml.ws.EndpointContext;
+import javax.xml.ws.WebServiceFeature;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.frontend.ServerFactoryBean;
+import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
+import org.apache.cxf.transport.http_jaxws_spi.JAXWSHttpSpiTransportFactory;
+
+/**
+ *
+ */
+public class EndpointImpl extends org.apache.cxf.jaxws.EndpointImpl {
+ //What really is the point of the EndpointContext in JAX-WS 2.2?
+ //There is a setter, but no getter.
+ Object endpointContext;
+
+ /**
+ * @param implementor
+ */
+ public EndpointImpl(Object implementor) {
+ super(implementor);
+ }
+
+ /**
+ * @param b
+ * @param implementor
+ * @param sf
+ */
+ public EndpointImpl(Bus b, Object implementor, JaxWsServerFactoryBean sf) {
+ super(b, implementor, sf);
+ }
+
+ /**
+ * @param b
+ * @param i
+ * @param bindingUri
+ * @param wsdl
+ */
+ public EndpointImpl(Bus b, Object i, String bindingUri, String wsdl) {
+ super(b, i, bindingUri, wsdl);
+ }
+
+ /**
+ * @param b
+ * @param i
+ * @param bindingUri
+ * @param wsdl
+ * @param f
+ */
+ public EndpointImpl(Bus b, Object i, String bindingUri, String wsdl, WebServiceFeature[] f) {
+ super(b, i, bindingUri, wsdl, f);
+ }
+
+ /**
+ * @param b
+ * @param i
+ * @param bindingUri
+ */
+ public EndpointImpl(Bus b, Object i, String bindingUri) {
+ super(b, i, bindingUri);
+ }
+
+ /**
+ * @param b
+ * @param i
+ * @param bindingUri
+ * @param features
+ */
+ public EndpointImpl(Bus b, Object i, String bindingUri, WebServiceFeature[] features) {
+ super(b, i, bindingUri, features);
+ }
+
+ /**
+ * @param bus
+ * @param implementor
+ */
+ public EndpointImpl(Bus bus, Object implementor) {
+ super(bus, implementor);
+ }
+
+ //new in 2.2, but introduces a new class not found in 2.1
+ public void setEndpointContext(EndpointContext ctxt) {
+ endpointContext = ctxt;
+ }
+
+ //new in 2.2, but introduces a new class not found in 2.1
+ public void publish(javax.xml.ws.spi.http.HttpContext context) {
+ ServerFactoryBean serverFactory = getServerFactory();
+ if (serverFactory.getDestinationFactory() == null) {
+ serverFactory.setDestinationFactory(new JAXWSHttpSpiTransportFactory(context));
+ }
+ super.publish(context.getPath());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/JAXWS22Invoker.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/JAXWS22Invoker.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/JAXWS22Invoker.java
new file mode 100644
index 0000000..4432ca1
--- /dev/null
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/JAXWS22Invoker.java
@@ -0,0 +1,43 @@
+/**
+ * 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.cxf.jaxws22;
+
+import java.lang.reflect.Method;
+
+import org.apache.cxf.jaxws.JAXWSMethodInvoker;
+import org.apache.cxf.message.Exchange;
+import org.apache.cxf.service.invoker.Invoker;
+
+/**
+ *
+ */
+public class JAXWS22Invoker extends JAXWSMethodInvoker implements Invoker {
+ javax.xml.ws.spi.Invoker invoker;
+
+ public JAXWS22Invoker(javax.xml.ws.spi.Invoker inv) {
+ super(null);
+ invoker = inv;
+ }
+ @Override
+ protected Object performInvocation(Exchange exchange, final Object serviceObject, Method m,
+ Object[] paramArray) throws Exception {
+ return invoker.invoke(m, paramArray);
+ }
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/spi/ProviderImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/spi/ProviderImpl.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/spi/ProviderImpl.java
new file mode 100644
index 0000000..606659c
--- /dev/null
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/spi/ProviderImpl.java
@@ -0,0 +1,76 @@
+/**
+ * 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.cxf.jaxws22.spi;
+
+import java.util.Arrays;
+
+import javax.xml.ws.Endpoint;
+import javax.xml.ws.WebServiceException;
+import javax.xml.ws.WebServiceFeature;
+import javax.xml.ws.spi.Invoker;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.common.i18n.Message;
+import org.apache.cxf.jaxws.EndpointUtils;
+import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
+import org.apache.cxf.jaxws.context.WebServiceContextImpl;
+import org.apache.cxf.jaxws22.EndpointImpl;
+import org.apache.cxf.jaxws22.JAXWS22Invoker;
+
+public class ProviderImpl extends org.apache.cxf.jaxws.spi.ProviderImpl {
+ @Override
+ protected org.apache.cxf.jaxws.EndpointImpl createEndpointImpl(Bus bus,
+ String bindingId,
+ Object implementor,
+ WebServiceFeature ... features) {
+ if (isJaxWs22()) {
+ return new EndpointImpl(bus, implementor, bindingId, features);
+ }
+ //couldn't find the 2.2 stuff, assume 2.1 behavior
+ return super.createEndpointImpl(bus, bindingId, implementor, features);
+ }
+
+ //new in 2.2, but introduces a new class not found in 2.1
+ public Endpoint createEndpoint(String bindingId, Class<?> implementorClass,
+ Invoker invoker, WebServiceFeature ... features) {
+ if (EndpointUtils.isValidImplementor(implementorClass)) {
+ Bus bus = BusFactory.getThreadDefaultBus();
+ JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
+ if (features != null) {
+ factory.getJaxWsServiceFactory().setWsFeatures(Arrays.asList(features));
+ }
+ if (invoker != null) {
+ factory.setInvoker(new JAXWS22Invoker(invoker));
+ try {
+ invoker.inject(new WebServiceContextImpl());
+ } catch (Exception e) {
+ throw new WebServiceException(new Message("ENDPOINT_CREATION_FAILED_MSG",
+ LOG).toString(), e);
+ }
+ }
+ EndpointImpl ep = new EndpointImpl(bus, null, factory);
+ ep.setImplementorClass(implementorClass);
+ return ep;
+ } else {
+ throw new WebServiceException(new Message("INVALID_IMPLEMENTOR_EXC", LOG).toString());
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/spring/JAXWS22SpringEndpointImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/spring/JAXWS22SpringEndpointImpl.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/spring/JAXWS22SpringEndpointImpl.java
new file mode 100644
index 0000000..7b2f7e8
--- /dev/null
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/spring/JAXWS22SpringEndpointImpl.java
@@ -0,0 +1,56 @@
+/**
+ * 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.cxf.jaxws22.spring;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor;
+import org.apache.cxf.common.injection.NoJSR250Annotations;
+import org.apache.cxf.jaxws.spring.EndpointDefinitionParser;
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+
+@NoJSR250Annotations
+public class JAXWS22SpringEndpointImpl extends org.apache.cxf.jaxws22.EndpointImpl
+ implements ApplicationContextAware {
+
+ boolean checkBlockConstruct;
+
+ public JAXWS22SpringEndpointImpl(Object o) {
+ super(o instanceof Bus ? (Bus)o : null,
+ o instanceof Bus ? null : o);
+ }
+
+ public JAXWS22SpringEndpointImpl(Bus bus, Object implementor) {
+ super(bus, implementor);
+ }
+
+ public void setCheckBlockConstruct(Boolean b) {
+ checkBlockConstruct = b;
+ }
+
+ public void setApplicationContext(ApplicationContext ctx) throws BeansException {
+ if (checkBlockConstruct) {
+ EndpointDefinitionParser.setBlocking(ctx, this);
+ }
+ if (getBus() == null) {
+ setBus(BusWiringBeanFactoryPostProcessor.addDefaultBus(ctx));
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/HttpHandlerImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/HttpHandlerImpl.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/HttpHandlerImpl.java
new file mode 100644
index 0000000..4009d61
--- /dev/null
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/HttpHandlerImpl.java
@@ -0,0 +1,71 @@
+/**
+ * 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.cxf.transport.http_jaxws_spi;
+
+import java.io.IOException;
+
+import javax.xml.ws.spi.http.HttpExchange;
+import javax.xml.ws.spi.http.HttpHandler;
+
+import org.apache.cxf.binding.soap.wsdl.extensions.SoapAddress;
+import org.apache.cxf.service.model.EndpointInfo;
+import org.apache.cxf.wsdl.http.AddressType;
+
+/**
+ * A javax.xml.ws.spi.http.HttpHandler implementation that uses
+ * a JAXWSHttpSpiDestination instance for message processing
+ */
+public class HttpHandlerImpl extends HttpHandler {
+
+ private JAXWSHttpSpiDestination destination;
+
+ public HttpHandlerImpl(JAXWSHttpSpiDestination destination) {
+ this.destination = destination;
+ }
+
+ @Override
+ public void handle(HttpExchange exchange) throws IOException {
+ try {
+ //Update address in EndpointInfo; this can only happen here,
+ //as the contextPath is provided in the HttpExchange only
+ EndpointInfo ei = destination.getEndpointInfo();
+ if (ei != null) {
+ String ad = ei.getAddress();
+ String path = exchange.getHttpContext().getPath();
+ if (ad != null && ad.equals(path)) {
+ synchronized (ei) {
+ String contextPath = exchange.getContextPath();
+ ei.setAddress(contextPath + path);
+ if (ei.getExtensor(AddressType.class) != null) {
+ ei.getExtensor(AddressType.class).setLocation(contextPath + path);
+ } else if (ei.getExtensor(SoapAddress.class) != null) {
+ ei.getExtensor(SoapAddress.class).setLocationURI(contextPath + path);
+ }
+ }
+ }
+ }
+ //service request
+ destination.doService(new HttpServletRequestAdapter(exchange),
+ new HttpServletResponseAdapter(exchange));
+ } finally {
+ exchange.close();
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/HttpServletRequestAdapter.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/HttpServletRequestAdapter.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/HttpServletRequestAdapter.java
new file mode 100644
index 0000000..0797b5e
--- /dev/null
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/HttpServletRequestAdapter.java
@@ -0,0 +1,414 @@
+/**
+ * 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.cxf.transport.http_jaxws_spi;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.UnsupportedEncodingException;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.security.Principal;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.AsyncContext;
+import javax.servlet.DispatcherType;
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.ServletInputStream;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import javax.servlet.http.Part;
+import javax.xml.ws.spi.http.HttpContext;
+import javax.xml.ws.spi.http.HttpExchange;
+
+/**
+ * This class provides a HttpServletRequest instance using information
+ * coming from the HttpExchange and HttpContext instances provided
+ * by the underlying container.
+ * Note: many methods' implementation still TODO.
+ *
+ */
+class HttpServletRequestAdapter implements HttpServletRequest {
+
+ private HttpExchange exchange;
+ private HttpContext context;
+ private String characterEncoding;
+ private ServletInputStreamAdapter servletInputStreamAdapter;
+ private BufferedReader reader;
+
+ public HttpServletRequestAdapter(HttpExchange exchange) {
+ this.exchange = exchange;
+ this.context = exchange.getHttpContext();
+ }
+
+ public AsyncContext getAsyncContext() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Object getAttribute(String name) {
+ return exchange.getAttribute(name);
+ }
+
+ public Enumeration<String> getAttributeNames() {
+ return Collections.enumeration(exchange.getAttributeNames());
+ }
+
+ public String getCharacterEncoding() {
+ return characterEncoding;
+ }
+
+ public int getContentLength() {
+ return 0;
+ }
+
+ public String getContentType() {
+ return this.getHeader("Content-Type");
+ }
+
+ public DispatcherType getDispatcherType() {
+ throw new UnsupportedOperationException();
+ }
+
+ public ServletInputStream getInputStream() throws IOException {
+ if (servletInputStreamAdapter == null) {
+ servletInputStreamAdapter = new ServletInputStreamAdapter(exchange.getRequestBody());
+ }
+ return servletInputStreamAdapter;
+ }
+
+ public String getLocalAddr() {
+ InetSocketAddress isa = exchange.getLocalAddress();
+ if (isa != null) {
+ InetAddress ia = isa.getAddress();
+ if (ia != null) {
+ return ia.getHostAddress();
+ }
+ }
+ return null;
+ }
+
+ public Locale getLocale() {
+ return null;
+ }
+
+ public Enumeration<Locale> getLocales() {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getLocalName() {
+ InetSocketAddress isa = exchange.getLocalAddress();
+ if (isa != null) {
+ InetAddress ia = isa.getAddress();
+ if (ia != null) {
+ return ia.getHostName();
+ }
+ }
+ return null;
+ }
+
+ public int getLocalPort() {
+ InetSocketAddress isa = exchange.getLocalAddress();
+ return isa != null ? isa.getPort() : 0;
+ }
+
+ public String getParameter(String name) {
+ throw new UnsupportedOperationException();
+ }
+
+ public Map<String, String[]> getParameterMap() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Enumeration<String> getParameterNames() {
+ throw new UnsupportedOperationException();
+ }
+
+ public String[] getParameterValues(String name) {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getProtocol() {
+ return exchange.getProtocol();
+ }
+
+ public BufferedReader getReader() throws IOException {
+ if (reader == null) {
+ Reader isr = characterEncoding == null
+ ? new InputStreamReader(exchange.getRequestBody())
+ : new InputStreamReader(exchange.getRequestBody(), characterEncoding);
+ reader = new BufferedReader(isr);
+ }
+ return reader;
+ }
+
+ @Deprecated
+ public String getRealPath(String path) {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getRemoteAddr() {
+ InetSocketAddress isa = exchange.getRemoteAddress();
+ if (isa != null) {
+ InetAddress ia = isa.getAddress();
+ if (ia != null) {
+ return ia.getHostAddress();
+ }
+ }
+ return null;
+ }
+
+ public String getRemoteHost() {
+ InetSocketAddress isa = exchange.getRemoteAddress();
+ if (isa != null) {
+ InetAddress ia = isa.getAddress();
+ if (ia != null) {
+ return ia.getHostName();
+ }
+ }
+ return null;
+ }
+
+ public int getRemotePort() {
+ InetSocketAddress isa = exchange.getRemoteAddress();
+ return isa != null ? isa.getPort() : 0;
+ }
+
+ public RequestDispatcher getRequestDispatcher(String path) {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getScheme() {
+ return exchange.getScheme();
+ }
+
+ public String getServerName() {
+ return null;
+ }
+
+ public int getServerPort() {
+ return 0;
+ }
+
+ public ServletContext getServletContext() {
+ return null;
+ }
+
+ public boolean isAsyncStarted() {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isAsyncSupported() {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isSecure() {
+ throw new UnsupportedOperationException();
+ }
+
+ public void removeAttribute(String name) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setAttribute(String name, Object o) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setCharacterEncoding(String env) throws UnsupportedEncodingException {
+ this.characterEncoding = env;
+ }
+
+ public AsyncContext startAsync() {
+ throw new UnsupportedOperationException();
+ }
+
+ public AsyncContext startAsync(ServletRequest request, ServletResponse response) {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean authenticate(HttpServletResponse response) throws IOException, ServletException {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getAuthType() {
+ return null;
+ }
+
+ public String getContextPath() {
+ return exchange.getContextPath();
+ }
+
+ public Cookie[] getCookies() {
+ return null;
+ }
+
+ public long getDateHeader(String name) {
+ String s = this.getHeader(name);
+ return s != null ? Long.valueOf(s) : 0;
+ }
+
+ public String getHeader(String name) {
+ return exchange.getRequestHeader(name);
+ }
+
+ public Enumeration<String> getHeaderNames() {
+ return Collections.enumeration(exchange.getRequestHeaders().keySet());
+ }
+
+ public Enumeration<String> getHeaders(String name) {
+ List<String> list = exchange.getRequestHeaders().get(name);
+ return list != null ? Collections.enumeration(list) : null;
+ }
+
+ public int getIntHeader(String name) {
+ String s = this.getHeader(name);
+ return s != null ? Integer.valueOf(s) : 0;
+ }
+
+ public String getMethod() {
+ return exchange.getRequestMethod();
+ }
+
+ public Part getPart(String name) throws IOException, ServletException {
+ throw new UnsupportedOperationException();
+ }
+
+ public Collection<Part> getParts() throws IOException, ServletException {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getPathInfo() {
+ return exchange.getPathInfo();
+ }
+
+ public String getPathTranslated() {
+ return null;
+ }
+
+ public String getQueryString() {
+ return exchange.getQueryString();
+ }
+
+ public String getRemoteUser() {
+ return null;
+ }
+
+ public String getRequestedSessionId() {
+ return null;
+ }
+
+ public String getRequestURI() {
+ return exchange.getRequestURI();
+ }
+
+ public StringBuffer getRequestURL() {
+ StringBuffer sb = new StringBuffer();
+ sb.append(exchange.getScheme());
+ sb.append("://");
+ String host = this.getHeader("Host");
+ if (host != null) {
+ sb.append(host);
+ } else {
+ InetSocketAddress la = exchange.getLocalAddress();
+ if (la != null) {
+ sb.append(la.getHostName());
+ if (la.getPort() > 0) {
+ sb.append(":");
+ sb.append(la.getPort());
+ }
+ } else {
+ sb.append("localhost");
+ }
+ }
+ sb.append(exchange.getContextPath());
+ sb.append(context.getPath());
+ return sb;
+ }
+
+ public String getServletPath() {
+ return null;
+ }
+
+ public HttpSession getSession() {
+ return null;
+ }
+
+ public HttpSession getSession(boolean create) {
+ return null;
+ }
+
+ public Principal getUserPrincipal() {
+ return exchange.getUserPrincipal();
+ }
+
+ public boolean isRequestedSessionIdFromCookie() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Deprecated
+ public boolean isRequestedSessionIdFromUrl() {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isRequestedSessionIdFromURL() {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isRequestedSessionIdValid() {
+ return false;
+ }
+
+ public boolean isUserInRole(String role) {
+ return exchange.isUserInRole(role);
+ }
+
+ public void login(String username, String password) throws ServletException {
+ throw new UnsupportedOperationException();
+ }
+
+ public void logout() throws ServletException {
+ throw new UnsupportedOperationException();
+ }
+
+ private class ServletInputStreamAdapter extends ServletInputStream {
+
+ private InputStream delegate;
+
+ public ServletInputStreamAdapter(InputStream delegate) {
+ this.delegate = delegate;
+ }
+
+ @Override
+ public int read() throws IOException {
+ return delegate.read();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/HttpServletResponseAdapter.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/HttpServletResponseAdapter.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/HttpServletResponseAdapter.java
new file mode 100644
index 0000000..9e9a329
--- /dev/null
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/HttpServletResponseAdapter.java
@@ -0,0 +1,245 @@
+/**
+ * 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.cxf.transport.http_jaxws_spi;
+
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Locale;
+
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletResponse;
+import javax.xml.ws.spi.http.HttpExchange;
+
+/**
+ * This class provides a HttpServletResponse instance using information
+ * coming from the HttpExchange instance provided
+ * by the underlying container.
+ * Note: many methods' implementation still TODO.
+ *
+ */
+class HttpServletResponseAdapter implements HttpServletResponse {
+
+ private HttpExchange exchange;
+ private String characterEncoding;
+ private Locale locale;
+ private boolean committed;
+ private ServletOutputStreamAdapter servletOutputStream;
+ private PrintWriter writer;
+ private int status;
+
+ public HttpServletResponseAdapter(HttpExchange exchange) {
+ this.exchange = exchange;
+ }
+
+ public void flushBuffer() throws IOException {
+ exchange.getResponseBody().flush();
+ committed = true;
+ }
+
+ public int getBufferSize() {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getCharacterEncoding() {
+ return characterEncoding;
+ }
+
+ public String getContentType() {
+ return this.getHeader("Content-Type");
+ }
+
+ public Locale getLocale() {
+ return locale;
+ }
+
+ public ServletOutputStream getOutputStream() throws IOException {
+ if (servletOutputStream == null) {
+ servletOutputStream = new ServletOutputStreamAdapter(exchange.getResponseBody());
+ }
+ return servletOutputStream;
+ }
+
+ public PrintWriter getWriter() throws IOException {
+ if (writer == null) {
+ if (characterEncoding != null) {
+ writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(exchange.getResponseBody(),
+ characterEncoding)));
+ } else {
+ writer = new PrintWriter(exchange.getResponseBody());
+ }
+ }
+ return writer;
+ }
+
+ public boolean isCommitted() {
+ return committed;
+ }
+
+ public void reset() {
+ throw new UnsupportedOperationException();
+ }
+
+ public void resetBuffer() {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setBufferSize(int size) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setCharacterEncoding(String charset) {
+ this.characterEncoding = charset;
+ }
+
+ public void setContentLength(int len) {
+ if (!committed) {
+ exchange.getResponseHeaders().put("Content-Length",
+ Collections.singletonList(String.valueOf(len)));
+ }
+ }
+
+ public void setContentType(String type) {
+ if (!committed) {
+ exchange.getResponseHeaders().put("Content-Type", Collections.singletonList(type));
+ }
+ }
+
+ public void setLocale(Locale loc) {
+ this.locale = loc;
+ }
+
+ public void addCookie(Cookie cookie) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void addDateHeader(String name, long date) {
+ this.addHeader(name, String.valueOf(date));
+ }
+
+ public void addHeader(String name, String value) {
+ exchange.addResponseHeader(name, value);
+ }
+
+ public void addIntHeader(String name, int value) {
+ this.addHeader(name, String.valueOf(value));
+ }
+
+ public boolean containsHeader(String name) {
+ return exchange.getResponseHeaders().containsKey(name);
+ }
+
+ public String encodeURL(String url) {
+ throw new UnsupportedOperationException();
+ }
+
+ public String encodeRedirectURL(String url) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Deprecated
+ public String encodeUrl(String url) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Deprecated
+ public String encodeRedirectUrl(String url) {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getHeader(String name) {
+ List<String> headers = exchange.getResponseHeaders().get(name);
+ return (headers != null && !headers.isEmpty()) ? headers.get(0) : null;
+ }
+
+ public Collection<String> getHeaderNames() {
+ return exchange.getResponseHeaders().keySet();
+ }
+
+ public Collection<String> getHeaders(String headerName) {
+ return exchange.getResponseHeaders().get(headerName);
+ }
+
+ public int getStatus() {
+ return status;
+ }
+
+ public void sendError(int sc) throws IOException {
+ this.setStatus(sc);
+ this.committed = true;
+ }
+
+ public void sendError(int sc, String msg) throws IOException {
+ this.sendError(sc);
+ }
+
+ public void sendRedirect(String location) throws IOException {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setDateHeader(String name, long date) {
+ this.setHeader(name, String.valueOf(date));
+ }
+
+ public void setHeader(String name, String value) {
+ List<String> list = new LinkedList<String>();
+ list.add(value);
+ exchange.getResponseHeaders().put(name, list);
+ }
+
+ public void setIntHeader(String name, int value) {
+ this.setHeader(name, String.valueOf(value));
+ }
+
+ public void setStatus(int sc) {
+ this.status = sc;
+ this.exchange.setStatus(sc);
+ }
+
+ @Deprecated
+ public void setStatus(int sc, String sm) {
+ this.setStatus(sc);
+ }
+
+ private class ServletOutputStreamAdapter extends ServletOutputStream {
+
+ private OutputStream delegate;
+
+ public ServletOutputStreamAdapter(OutputStream delegate) {
+ this.delegate = delegate;
+ }
+
+ @Override
+ public void write(int b) throws IOException {
+ delegate.write(b);
+ }
+
+ @Override
+ public void flush() throws IOException {
+ delegate.flush();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/JAXWSHttpSpiDestination.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/JAXWSHttpSpiDestination.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/JAXWSHttpSpiDestination.java
new file mode 100644
index 0000000..8553082
--- /dev/null
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/JAXWSHttpSpiDestination.java
@@ -0,0 +1,123 @@
+/**
+ * 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.cxf.transport.http_jaxws_spi;
+
+import java.io.IOException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.continuations.SuspendedInvocationException;
+import org.apache.cxf.interceptor.Fault;
+import org.apache.cxf.message.ExchangeImpl;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.message.MessageImpl;
+import org.apache.cxf.service.model.EndpointInfo;
+import org.apache.cxf.transport.http.AbstractHTTPDestination;
+import org.apache.cxf.transport.http.DestinationRegistry;
+import org.apache.cxf.transport.http.HTTPSession;
+
+public class JAXWSHttpSpiDestination extends AbstractHTTPDestination {
+
+ static final Logger LOG = LogUtils.getL7dLogger(JAXWSHttpSpiDestination.class);
+
+ public JAXWSHttpSpiDestination(Bus b,
+ DestinationRegistry registry,
+ EndpointInfo ei) throws IOException {
+ super(b, registry, ei, ei.getAddress(), false);
+ }
+
+ @Override
+ protected Logger getLogger() {
+ return LOG;
+ }
+
+ /**
+ * This is called by handlers for servicing requests
+ *
+ * @param context
+ * @param req
+ * @param resp
+ * @throws IOException
+ */
+ protected void doService(HttpServletRequest req, HttpServletResponse resp)
+ throws IOException {
+
+ Bus origBus = BusFactory.getAndSetThreadDefaultBus(bus);
+ try {
+ serviceRequest(req, resp);
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ if (origBus != bus) {
+ BusFactory.setThreadDefaultBus(origBus);
+ }
+ }
+ }
+
+ protected void serviceRequest(final HttpServletRequest req, final HttpServletResponse resp)
+ throws IOException {
+
+ if (LOG.isLoggable(Level.FINE)) {
+ LOG.fine("Service http request on thread: " + Thread.currentThread());
+ }
+ Message inMessage = new MessageImpl();
+ ExchangeImpl exchange = new ExchangeImpl();
+ exchange.setInMessage(inMessage);
+
+ setupMessage(inMessage, null, req.getServletContext(), req, resp);
+
+ ((MessageImpl)inMessage).setDestination(this);
+
+ exchange.setSession(new HTTPSession(req));
+
+ try {
+ incomingObserver.onMessage(inMessage);
+ resp.flushBuffer();
+ } catch (SuspendedInvocationException ex) {
+ if (ex.getRuntimeException() != null) {
+ throw ex.getRuntimeException();
+ }
+ // else nothing to do
+ } catch (Fault ex) {
+ Throwable cause = ex.getCause();
+ if (cause instanceof RuntimeException) {
+ throw (RuntimeException)cause;
+ } else {
+ throw ex;
+ }
+ } catch (RuntimeException ex) {
+ throw ex;
+ } finally {
+ if (LOG.isLoggable(Level.FINE)) {
+ LOG.fine("Finished servicing http request on thread: " + Thread.currentThread());
+ }
+ }
+ }
+
+ protected String getBasePath(String contextPath) throws IOException {
+ return contextPath + getAddress().getAddress().getValue();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/JAXWSHttpSpiTransportFactory.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/JAXWSHttpSpiTransportFactory.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/JAXWSHttpSpiTransportFactory.java
new file mode 100644
index 0000000..e137220
--- /dev/null
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/JAXWSHttpSpiTransportFactory.java
@@ -0,0 +1,52 @@
+/**
+ * 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.cxf.transport.http_jaxws_spi;
+
+import java.io.IOException;
+
+import javax.xml.ws.spi.http.HttpContext;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.binding.soap.SoapTransportFactory;
+import org.apache.cxf.service.model.EndpointInfo;
+import org.apache.cxf.transport.Destination;
+import org.apache.cxf.transport.DestinationFactory;
+import org.apache.cxf.transport.http.DestinationRegistryImpl;
+
+public class JAXWSHttpSpiTransportFactory extends SoapTransportFactory implements DestinationFactory {
+
+ private HttpContext context;
+ private JAXWSHttpSpiDestination destination;
+
+ public JAXWSHttpSpiTransportFactory(HttpContext context) {
+ super();
+ this.context = context;
+ }
+
+ public Destination getDestination(EndpointInfo endpointInfo, Bus bus) throws IOException {
+ if (destination == null) {
+ destination = new JAXWSHttpSpiDestination(bus, new DestinationRegistryImpl(), endpointInfo);
+ // set handler into the provided HttpContext, our Destination hook into the server container
+ HttpHandlerImpl handler = new HttpHandlerImpl(destination);
+ context.setHandler(handler);
+ }
+ return destination;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/jaxws22/EndpointImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/jaxws22/EndpointImpl.java b/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/jaxws22/EndpointImpl.java
deleted file mode 100644
index 7c38466..0000000
--- a/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/jaxws22/EndpointImpl.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- * 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.cxf.jaxws22;
-
-import javax.xml.ws.EndpointContext;
-import javax.xml.ws.WebServiceFeature;
-
-import org.apache.cxf.Bus;
-import org.apache.cxf.frontend.ServerFactoryBean;
-import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
-import org.apache.cxf.transport.http_jaxws_spi.JAXWSHttpSpiTransportFactory;
-
-/**
- *
- */
-public class EndpointImpl extends org.apache.cxf.jaxws.EndpointImpl {
- //What really is the point of the EndpointContext in JAX-WS 2.2?
- //There is a setter, but no getter.
- Object endpointContext;
-
- /**
- * @param implementor
- */
- public EndpointImpl(Object implementor) {
- super(implementor);
- }
-
- /**
- * @param b
- * @param implementor
- * @param sf
- */
- public EndpointImpl(Bus b, Object implementor, JaxWsServerFactoryBean sf) {
- super(b, implementor, sf);
- }
-
- /**
- * @param b
- * @param i
- * @param bindingUri
- * @param wsdl
- */
- public EndpointImpl(Bus b, Object i, String bindingUri, String wsdl) {
- super(b, i, bindingUri, wsdl);
- }
-
- /**
- * @param b
- * @param i
- * @param bindingUri
- * @param wsdl
- * @param f
- */
- public EndpointImpl(Bus b, Object i, String bindingUri, String wsdl, WebServiceFeature[] f) {
- super(b, i, bindingUri, wsdl, f);
- }
-
- /**
- * @param b
- * @param i
- * @param bindingUri
- */
- public EndpointImpl(Bus b, Object i, String bindingUri) {
- super(b, i, bindingUri);
- }
-
- /**
- * @param b
- * @param i
- * @param bindingUri
- * @param features
- */
- public EndpointImpl(Bus b, Object i, String bindingUri, WebServiceFeature[] features) {
- super(b, i, bindingUri, features);
- }
-
- /**
- * @param bus
- * @param implementor
- */
- public EndpointImpl(Bus bus, Object implementor) {
- super(bus, implementor);
- }
-
- //new in 2.2, but introduces a new class not found in 2.1
- public void setEndpointContext(EndpointContext ctxt) {
- endpointContext = ctxt;
- }
-
- //new in 2.2, but introduces a new class not found in 2.1
- public void publish(javax.xml.ws.spi.http.HttpContext context) {
- ServerFactoryBean serverFactory = getServerFactory();
- if (serverFactory.getDestinationFactory() == null) {
- serverFactory.setDestinationFactory(new JAXWSHttpSpiTransportFactory(context));
- }
- super.publish(context.getPath());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/jaxws22/JAXWS22Invoker.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/jaxws22/JAXWS22Invoker.java b/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/jaxws22/JAXWS22Invoker.java
deleted file mode 100644
index 4432ca1..0000000
--- a/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/jaxws22/JAXWS22Invoker.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * 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.cxf.jaxws22;
-
-import java.lang.reflect.Method;
-
-import org.apache.cxf.jaxws.JAXWSMethodInvoker;
-import org.apache.cxf.message.Exchange;
-import org.apache.cxf.service.invoker.Invoker;
-
-/**
- *
- */
-public class JAXWS22Invoker extends JAXWSMethodInvoker implements Invoker {
- javax.xml.ws.spi.Invoker invoker;
-
- public JAXWS22Invoker(javax.xml.ws.spi.Invoker inv) {
- super(null);
- invoker = inv;
- }
- @Override
- protected Object performInvocation(Exchange exchange, final Object serviceObject, Method m,
- Object[] paramArray) throws Exception {
- return invoker.invoke(m, paramArray);
- }
-}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/jaxws22/spi/ProviderImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/jaxws22/spi/ProviderImpl.java b/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/jaxws22/spi/ProviderImpl.java
deleted file mode 100644
index 606659c..0000000
--- a/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/jaxws22/spi/ProviderImpl.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/**
- * 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.cxf.jaxws22.spi;
-
-import java.util.Arrays;
-
-import javax.xml.ws.Endpoint;
-import javax.xml.ws.WebServiceException;
-import javax.xml.ws.WebServiceFeature;
-import javax.xml.ws.spi.Invoker;
-
-import org.apache.cxf.Bus;
-import org.apache.cxf.BusFactory;
-import org.apache.cxf.common.i18n.Message;
-import org.apache.cxf.jaxws.EndpointUtils;
-import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
-import org.apache.cxf.jaxws.context.WebServiceContextImpl;
-import org.apache.cxf.jaxws22.EndpointImpl;
-import org.apache.cxf.jaxws22.JAXWS22Invoker;
-
-public class ProviderImpl extends org.apache.cxf.jaxws.spi.ProviderImpl {
- @Override
- protected org.apache.cxf.jaxws.EndpointImpl createEndpointImpl(Bus bus,
- String bindingId,
- Object implementor,
- WebServiceFeature ... features) {
- if (isJaxWs22()) {
- return new EndpointImpl(bus, implementor, bindingId, features);
- }
- //couldn't find the 2.2 stuff, assume 2.1 behavior
- return super.createEndpointImpl(bus, bindingId, implementor, features);
- }
-
- //new in 2.2, but introduces a new class not found in 2.1
- public Endpoint createEndpoint(String bindingId, Class<?> implementorClass,
- Invoker invoker, WebServiceFeature ... features) {
- if (EndpointUtils.isValidImplementor(implementorClass)) {
- Bus bus = BusFactory.getThreadDefaultBus();
- JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
- if (features != null) {
- factory.getJaxWsServiceFactory().setWsFeatures(Arrays.asList(features));
- }
- if (invoker != null) {
- factory.setInvoker(new JAXWS22Invoker(invoker));
- try {
- invoker.inject(new WebServiceContextImpl());
- } catch (Exception e) {
- throw new WebServiceException(new Message("ENDPOINT_CREATION_FAILED_MSG",
- LOG).toString(), e);
- }
- }
- EndpointImpl ep = new EndpointImpl(bus, null, factory);
- ep.setImplementorClass(implementorClass);
- return ep;
- } else {
- throw new WebServiceException(new Message("INVALID_IMPLEMENTOR_EXC", LOG).toString());
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/jaxws22/spring/JAXWS22SpringEndpointImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/jaxws22/spring/JAXWS22SpringEndpointImpl.java b/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/jaxws22/spring/JAXWS22SpringEndpointImpl.java
deleted file mode 100644
index 7b2f7e8..0000000
--- a/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/jaxws22/spring/JAXWS22SpringEndpointImpl.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * 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.cxf.jaxws22.spring;
-
-import org.apache.cxf.Bus;
-import org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor;
-import org.apache.cxf.common.injection.NoJSR250Annotations;
-import org.apache.cxf.jaxws.spring.EndpointDefinitionParser;
-import org.springframework.beans.BeansException;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
-
-@NoJSR250Annotations
-public class JAXWS22SpringEndpointImpl extends org.apache.cxf.jaxws22.EndpointImpl
- implements ApplicationContextAware {
-
- boolean checkBlockConstruct;
-
- public JAXWS22SpringEndpointImpl(Object o) {
- super(o instanceof Bus ? (Bus)o : null,
- o instanceof Bus ? null : o);
- }
-
- public JAXWS22SpringEndpointImpl(Bus bus, Object implementor) {
- super(bus, implementor);
- }
-
- public void setCheckBlockConstruct(Boolean b) {
- checkBlockConstruct = b;
- }
-
- public void setApplicationContext(ApplicationContext ctx) throws BeansException {
- if (checkBlockConstruct) {
- EndpointDefinitionParser.setBlocking(ctx, this);
- }
- if (getBus() == null) {
- setBus(BusWiringBeanFactoryPostProcessor.addDefaultBus(ctx));
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cxf/blob/67432aef/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/HttpHandlerImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/HttpHandlerImpl.java b/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/HttpHandlerImpl.java
deleted file mode 100644
index 4009d61..0000000
--- a/rt/frontend/jaxws/src/main/jaxws22/org/apache/cxf/transport/http_jaxws_spi/HttpHandlerImpl.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * 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.cxf.transport.http_jaxws_spi;
-
-import java.io.IOException;
-
-import javax.xml.ws.spi.http.HttpExchange;
-import javax.xml.ws.spi.http.HttpHandler;
-
-import org.apache.cxf.binding.soap.wsdl.extensions.SoapAddress;
-import org.apache.cxf.service.model.EndpointInfo;
-import org.apache.cxf.wsdl.http.AddressType;
-
-/**
- * A javax.xml.ws.spi.http.HttpHandler implementation that uses
- * a JAXWSHttpSpiDestination instance for message processing
- */
-public class HttpHandlerImpl extends HttpHandler {
-
- private JAXWSHttpSpiDestination destination;
-
- public HttpHandlerImpl(JAXWSHttpSpiDestination destination) {
- this.destination = destination;
- }
-
- @Override
- public void handle(HttpExchange exchange) throws IOException {
- try {
- //Update address in EndpointInfo; this can only happen here,
- //as the contextPath is provided in the HttpExchange only
- EndpointInfo ei = destination.getEndpointInfo();
- if (ei != null) {
- String ad = ei.getAddress();
- String path = exchange.getHttpContext().getPath();
- if (ad != null && ad.equals(path)) {
- synchronized (ei) {
- String contextPath = exchange.getContextPath();
- ei.setAddress(contextPath + path);
- if (ei.getExtensor(AddressType.class) != null) {
- ei.getExtensor(AddressType.class).setLocation(contextPath + path);
- } else if (ei.getExtensor(SoapAddress.class) != null) {
- ei.getExtensor(SoapAddress.class).setLocationURI(contextPath + path);
- }
- }
- }
- }
- //service request
- destination.doService(new HttpServletRequestAdapter(exchange),
- new HttpServletResponseAdapter(exchange));
- } finally {
- exchange.close();
- }
- }
-
-}