[jbossws-commits] JBossWS SVN: r6686 - stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro.
jbossws-commits at lists.jboss.org
jbossws-commits at lists.jboss.org
Fri Apr 25 07:01:11 EDT 2008
Author: richard.opalka at jboss.com
Date: 2008-04-25 07:01:10 -0400 (Fri, 25 Apr 2008)
New Revision: 6686
Modified:
stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/EndpointServlet.java
stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/InvokerEJB3.java
stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/InvokerJSE.java
stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/MessageStreamAdapter.java
stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/MessageStreamConnectionImpl.java
stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/SunJaxwsDeploymentAspect.java
Log:
refactoring + enforced JBossWS coding convention, no functional change
Modified: stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/EndpointServlet.java
===================================================================
--- stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/EndpointServlet.java 2008-04-25 10:58:15 UTC (rev 6685)
+++ stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/EndpointServlet.java 2008-04-25 11:01:10 UTC (rev 6686)
@@ -86,8 +86,8 @@
if (this.endpoint == null)
{
ObjectName oname = ObjectNameFactory.create(Endpoint.SEPID_DOMAIN + ":" +
- Endpoint.SEPID_PROPERTY_CONTEXT + "=" + contextPath + "," +
- Endpoint.SEPID_PROPERTY_ENDPOINT + "=" + getServletName()
+ Endpoint.SEPID_PROPERTY_CONTEXT + "=" + contextPath + "," +
+ Endpoint.SEPID_PROPERTY_ENDPOINT + "=" + getServletName()
);
throw new WebServiceException("Cannot obtain endpoint for: " + oname);
}
Modified: stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/InvokerEJB3.java
===================================================================
--- stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/InvokerEJB3.java 2008-04-25 10:58:15 UTC (rev 6685)
+++ stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/InvokerEJB3.java 2008-04-25 11:01:10 UTC (rev 6686)
@@ -35,7 +35,6 @@
import org.jboss.wsf.spi.invocation.Invocation;
import org.jboss.wsf.spi.invocation.InvocationHandler;
-import com.sun.istack.NotNull;
import com.sun.xml.ws.api.message.Packet;
import com.sun.xml.ws.api.server.InstanceResolver;
import com.sun.xml.ws.api.server.Invoker;
@@ -51,8 +50,7 @@
public class InvokerEJB3 extends Invoker
{
private final InstanceResolver resolver;
-
- private WSWebServiceContext wsc;
+ private WSWebServiceContext webServiceCtx;
public InvokerEJB3(InstanceResolver resolver)
{
@@ -60,43 +58,41 @@
}
@Override
- public void start(@NotNull WSWebServiceContext wsc, @NotNull WSEndpoint endpoint)
+ public void start(WSWebServiceContext webServiceCtx, WSEndpoint endpoint)
{
- resolver.start(wsc, endpoint);
- this.wsc = wsc;
+ this.resolver.start(webServiceCtx, endpoint);
+ this.webServiceCtx = webServiceCtx;
}
@Override
public void dispose()
{
- resolver.dispose();
+ this.resolver.dispose();
}
@Override
- public <T> T invokeProvider(@NotNull Packet p, T arg)
+ public <T> T invokeProvider(Packet p, T arg)
{
- Object targetBean = resolver.resolve(p);
+ Object targetBean = this.resolver.resolve(p);
return ((Provider<T>)targetBean).invoke(arg);
}
@Override
- public Object invoke(Packet p, Method m, Object... args) throws InvocationTargetException, IllegalAccessException
+ public Object invoke(Packet p, Method m, Object... args)
+ throws InvocationTargetException, IllegalAccessException
{
- Endpoint ep = EndpointAssociation.getEndpoint();
+ Endpoint endpoint = EndpointAssociation.getEndpoint();
+ InvocationHandler invocationHandler = endpoint.getInvocationHandler();
+ Invocation invocation = invocationHandler.createInvocation();
+ invocation.getInvocationContext().addAttachment(MessageContext.class, this.webServiceCtx.getMessageContext());
+ invocation.setJavaMethod(m);
+ invocation.setArgs(args);
- InvocationHandler invHandler = ep.getInvocationHandler();
- Invocation inv = invHandler.createInvocation();
-
- inv.getInvocationContext().addAttachment(MessageContext.class, wsc.getMessageContext());
-
- inv.setJavaMethod(m);
- inv.setArgs(args);
-
Object retObj = null;
try
{
- invHandler.invoke(ep, inv);
- retObj = inv.getReturnValue();
+ invocationHandler.invoke(endpoint, invocation);
+ retObj = invocation.getReturnValue();
}
catch (Exception ex)
{
@@ -106,7 +102,8 @@
return retObj;
}
- private void handleException(Exception ex) throws InvocationTargetException, IllegalAccessException
+ private void handleException(Exception ex)
+ throws InvocationTargetException, IllegalAccessException
{
if (ex instanceof InvocationTargetException)
throw (InvocationTargetException)ex;
Modified: stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/InvokerJSE.java
===================================================================
--- stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/InvokerJSE.java 2008-04-25 10:58:15 UTC (rev 6685)
+++ stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/InvokerJSE.java 2008-04-25 11:01:10 UTC (rev 6686)
@@ -35,7 +35,6 @@
import org.jboss.wsf.spi.invocation.InvocationContext;
import org.jboss.wsf.spi.invocation.InvocationHandler;
-import com.sun.istack.NotNull;
import com.sun.xml.ws.api.message.Packet;
import com.sun.xml.ws.api.server.InstanceResolver;
import com.sun.xml.ws.api.server.Invoker;
@@ -58,11 +57,9 @@
}
@Override
- public void start(@NotNull
- WSWebServiceContext wsc, @NotNull
- WSEndpoint endpoint)
+ public void start(WSWebServiceContext webServiceCtx, WSEndpoint endpoint)
{
- resolver.start(wsc, endpoint);
+ resolver.start(webServiceCtx, endpoint);
}
@Override
@@ -72,34 +69,30 @@
}
@Override
- public <T> T invokeProvider(@NotNull
- Packet p, T arg)
+ public <T> T invokeProvider(Packet p, T arg)
{
Object targetBean = resolver.resolve(p);
return ((Provider<T>)targetBean).invoke(arg);
}
@Override
- public Object invoke(Packet p, Method m, Object... args) throws InvocationTargetException, IllegalAccessException
+ public Object invoke(Packet p, Method m, Object... args)
+ throws InvocationTargetException, IllegalAccessException
{
- Endpoint ep = EndpointAssociation.getEndpoint();
- if(null == ep)
- throw new IllegalArgumentException("EndpointAssociation.getEndpoint() may not be null");
-
- InvocationHandler invHandler = ep.getInvocationHandler();
-
- Invocation inv = invHandler.createInvocation();
- InvocationContext invContext = inv.getInvocationContext();
- inv.setJavaMethod(m);
- inv.setArgs(args);
+ Endpoint endpoint = EndpointAssociation.getEndpoint();
+ InvocationHandler invocationHandler = endpoint.getInvocationHandler();
+ Invocation invocation = invocationHandler.createInvocation();
+ InvocationContext invContext = invocation.getInvocationContext();
+ invocation.setJavaMethod(m);
+ invocation.setArgs(args);
Object retObj = null;
try
{
Object targetBean = resolver.resolve(p);
invContext.setTargetBean(targetBean);
- invHandler.invoke(ep, inv);
- retObj = inv.getReturnValue();
+ invocationHandler.invoke(endpoint, invocation);
+ retObj = invocation.getReturnValue();
}
catch (Exception ex)
{
@@ -109,7 +102,8 @@
return retObj;
}
- private void handleException(Exception ex) throws InvocationTargetException, IllegalAccessException
+ private void handleException(Exception ex)
+ throws InvocationTargetException, IllegalAccessException
{
if (ex instanceof InvocationTargetException)
throw (InvocationTargetException)ex;
Modified: stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/MessageStreamAdapter.java
===================================================================
--- stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/MessageStreamAdapter.java 2008-04-25 10:58:15 UTC (rev 6685)
+++ stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/MessageStreamAdapter.java 2008-04-25 11:01:10 UTC (rev 6686)
@@ -36,45 +36,56 @@
/**
* @author Heiko Braun
*/
-public class MessageStreamAdapter extends Adapter<MessageStreamAdapter.StreamToolkit> {
-
- final String name;
-
- public MessageStreamAdapter(String name, WSEndpoint endpoint)
+public class MessageStreamAdapter extends Adapter<MessageStreamAdapter.StreamToolkit>
+{
+ public static final AdapterFactory<MessageStreamAdapter> FACTORY = new AdapterFactory<MessageStreamAdapter>()
{
+ public MessageStreamAdapter createAdapter(String name, String urlPattern, WSEndpoint<?> endpoint)
+ {
+ return new MessageStreamAdapter(endpoint);
+ }
+ };
+
+ public MessageStreamAdapter(WSEndpoint endpoint)
+ {
super(endpoint);
- this.name = name;
}
- public void handle(MessageStreamContext context, InputStream in, OutputStream out) throws IOException
+ public void handle(MessageStreamContext context, InputStream in, OutputStream out)
+ throws IOException
{
MessageStreamConnectionImpl connection = new MessageStreamConnectionImpl(context, in, out);
StreamToolkit tk = pool.take();
- try {
+ try
+ {
tk.handle(connection);
connection.flush();
- } finally {
+ }
+ finally
+ {
pool.recycle(tk);
connection.close();
}
}
- protected StreamToolkit createToolkit() {
+ protected StreamToolkit createToolkit()
+ {
return new StreamToolkit();
}
- class StreamToolkit extends Adapter.Toolkit implements TransportBackChannel {
-
+ class StreamToolkit extends Adapter.Toolkit implements TransportBackChannel
+ {
private MessageStreamConnectionImpl connection;
- private void handle(MessageStreamConnectionImpl connection) throws IOException {
+ private void handle(MessageStreamConnectionImpl connection)
+ throws IOException
+ {
this.connection = connection;
String contentTypeStr = connection.getRequestHeader(MessageStreamContext.CONTENT_TYPE);
InputStream in = connection.getInputStream();
Packet packet = new Packet();
-
codec.decode(in, contentTypeStr, packet);
try
@@ -84,7 +95,7 @@
catch(Exception e)
{
e.printStackTrace();
- writeInternalServerError(connection);
+ connection.setStatus(MessageStreamContext.STATUS_INTERNAL_SERVER_ERROR);
return;
}
@@ -98,27 +109,13 @@
Map<String, String> headers = new HashMap();
headers.put(MessageStreamContext.CONTENT_TYPE, contentTypeStr);
connection.setResponseHeaders(headers);
-
codec.encode(packet, connection.getOutputStream());
}
-
}
- private void writeInternalServerError(MessageStreamConnectionImpl connection) {
- connection.setStatus(MessageStreamContext.STATUS_INTERNAL_SERVER_ERROR);
- }
-
- public void close() {
+ public void close()
+ {
connection.close();
}
-
}
-
- public static final AdapterFactory<MessageStreamAdapter> FACTORY = new AdapterFactory<MessageStreamAdapter>()
- {
- public MessageStreamAdapter createAdapter(String name, String urlPattern, WSEndpoint<?> endpoint)
- {
- return new MessageStreamAdapter(name, endpoint);
- }
- };
}
Modified: stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/MessageStreamConnectionImpl.java
===================================================================
--- stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/MessageStreamConnectionImpl.java 2008-04-25 10:58:15 UTC (rev 6685)
+++ stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/MessageStreamConnectionImpl.java 2008-04-25 11:01:10 UTC (rev 6686)
@@ -21,7 +21,6 @@
*/
package org.jboss.wsf.stack.metro;
-import com.sun.istack.NotNull;
import com.sun.xml.ws.api.message.Packet;
import com.sun.xml.ws.api.server.WSEndpoint;
import com.sun.xml.ws.api.server.WebServiceContextDelegate;
@@ -36,92 +35,104 @@
/**
* @author Heiko Braun
*/
-public class MessageStreamConnectionImpl implements WebServiceContextDelegate {
-
- private MessageStreamContext messageContext;
+public class MessageStreamConnectionImpl implements WebServiceContextDelegate
+{
+ private int status;
+ private boolean isClosed;
private InputStream inputStream;
private OutputStream outputStream;
-
- private int status;
-
- private boolean isClosed;
-
- private Map<String, String> requestHeaders;
+ private MessageStreamContext messageContext;
+ private Map<String, String> requestHeaders = new HashMap<String, String>();
private Map<String, String> responseHeaders;
public MessageStreamConnectionImpl(MessageStreamContext context, InputStream in, OutputStream out)
{
- outputStream = out;
- inputStream = in;
- messageContext = context;
-
+ this.outputStream = out;
+ this.inputStream = in;
+ this.messageContext = context;
populateRequestHeaders();
}
- public int getStatus() {
- return status;
+ public int getStatus()
+ {
+ return this.status;
}
- public void setStatus(int statusCode) {
+ public void setStatus(int statusCode)
+ {
this.status = statusCode;
}
- public Map<String, String> getRequestHeaders() {
- return requestHeaders;
+ public Map<String, String> getRequestHeaders()
+ {
+ return this.requestHeaders;
}
- public void setRequestHeaders(Map<String, String> requestHeaders) {
+ public void setRequestHeaders(Map<String, String> requestHeaders)
+ {
this.requestHeaders = requestHeaders;
}
- public String getRequestHeader(String name) {
- return requestHeaders.get(name);
+ public String getRequestHeader(String name)
+ {
+ return this.requestHeaders.get(name);
}
- public Map<String, String> getResponseHeaders() {
- return responseHeaders;
+ public Map<String, String> getResponseHeaders()
+ {
+ return this.responseHeaders;
}
- public void setResponseHeaders(Map<String, String> responseHeaders) {
+ public void setResponseHeaders(Map<String, String> responseHeaders)
+ {
this.responseHeaders = responseHeaders;
}
- public InputStream getInputStream() {
- return inputStream;
+ public InputStream getInputStream()
+ {
+ return this.inputStream;
}
- public OutputStream getOutputStream() {
- return outputStream;
+ public OutputStream getOutputStream()
+ {
+ return this.outputStream;
}
- public void closeInput() {
- if (inputStream != null) {
- try {
- inputStream.close();
- } catch (IOException ex) {
+ public void closeInput()
+ {
+ if (this.inputStream != null)
+ {
+ try
+ {
+ this.inputStream.close();
}
-
- inputStream = null;
+ catch (IOException ignore) {}
+ this.inputStream = null;
}
}
- public void closeOutput() {
- if (outputStream != null) {
- try {
- outputStream.close();
- } catch (IOException ex) {
+ public void closeOutput()
+ {
+ if (this.outputStream != null)
+ {
+ try
+ {
+ this.outputStream.close();
}
-
- outputStream = null;
+ catch (IOException ignore) {}
+ this.outputStream = null;
}
}
- public void close() {
- if (!isClosed) {
- synchronized (this) {
- if (!isClosed) {
- isClosed = true;
-
+ public void close()
+ {
+ if (this.isClosed == false)
+ {
+ synchronized (this)
+ {
+ if (this.isClosed == false)
+ {
+ this.isClosed = true;
closeInput();
closeOutput();
}
@@ -129,36 +140,42 @@
}
}
- // Not supported
- public Principal getUserPrincipal(Packet request) {
- return null;
+ public void flush()
+ throws IOException
+ {
+ if (this.outputStream != null)
+ {
+ this.outputStream.flush();
+ }
}
- // Not supported
- public boolean isUserInRole(Packet request, String role) {
- return false;
+ public Principal getUserPrincipal(Packet request)
+ {
+ throw new UnsupportedOperationException();
}
- public @NotNull String getEPRAddress(@NotNull Packet request, @NotNull WSEndpoint endpoint) {
- return null;
+ public boolean isUserInRole(Packet request, String role)
+ {
+ throw new UnsupportedOperationException();
}
- public String getWSDLAddress(@NotNull Packet request, @NotNull WSEndpoint endpoint) {
- return null;
+ @SuppressWarnings("unchecked")
+ public String getEPRAddress(Packet request, WSEndpoint endpoint)
+ {
+ throw new UnsupportedOperationException();
}
- public void flush() throws IOException {
- if (outputStream != null) {
- outputStream.flush();
- }
+ @SuppressWarnings("unchecked")
+ public String getWSDLAddress(Packet request, WSEndpoint endpoint)
+ {
+ throw new UnsupportedOperationException();
}
- private void populateRequestHeaders() {
- requestHeaders = new HashMap();
-
- for(String s : messageContext.getRequestContext().keySet())
+ private void populateRequestHeaders()
+ {
+ for(String s : this.messageContext.getRequestContext().keySet())
{
- requestHeaders.put(s, messageContext.getRequestContext().get(s));
+ this.requestHeaders.put(s, this.messageContext.getRequestContext().get(s));
}
}
}
Modified: stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/SunJaxwsDeploymentAspect.java
===================================================================
--- stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/SunJaxwsDeploymentAspect.java 2008-04-25 10:58:15 UTC (rev 6685)
+++ stack/metro/trunk/src/main/java/org/jboss/wsf/stack/metro/SunJaxwsDeploymentAspect.java 2008-04-25 11:01:10 UTC (rev 6686)
@@ -33,11 +33,13 @@
import javax.xml.ws.BindingType;
import javax.xml.ws.soap.SOAPBinding;
+
+import java.net.URL;
import java.util.HashMap;
import java.util.Map;
/**
- * A deployer that generates sun-jaxws.xml
+ * An aspect that generates sun-jaxws.xml
*
* @author Thomas.Diesler at jboss.org
* @since 10-May-2007
@@ -45,45 +47,36 @@
public class SunJaxwsDeploymentAspect extends DeploymentAspect
{
@Override
+ @SuppressWarnings("unchecked")
public void create(Deployment dep, WSFRuntime runtime)
{
-
- DDEndpoints dd = dep.getAttachment(DDEndpoints.class);
- if (dd == null)
+ DDEndpoints ddEndpoints = dep.getAttachment(DDEndpoints.class);
+ if (ddEndpoints == null)
{
- dd = new DDEndpoints();
- for (Endpoint ep : dep.getService().getEndpoints())
+ ddEndpoints = new DDEndpoints();
+ for (Endpoint endpoint : dep.getService().getEndpoints())
{
- String epName = ep.getShortName();
- String targetBean = ep.getTargetBeanName();
- String urlPattern = ep.getURLPattern();
+ String endpointName = endpoint.getShortName();
+ String targetBean = endpoint.getTargetBeanName();
+ String urlPattern = endpoint.getURLPattern();
- DDEndpoint ddep = new DDEndpoint(epName, targetBean, urlPattern);
-
- Class beanClass = ep.getTargetBeanClass();
- BindingType anBindingType = (BindingType)beanClass.getAnnotation(BindingType.class);
- if (anBindingType != null && anBindingType.value().length() > 0)
+ DDEndpoint ddEndpoint = new DDEndpoint(endpointName, targetBean, urlPattern);
+ Class beanClass = endpoint.getTargetBeanClass();
+ BindingType bindingType = (BindingType)beanClass.getAnnotation(BindingType.class);
+
+ if (bindingType != null && bindingType.value().length() > 0)
{
- String binding = anBindingType.value();
- ddep.setBinding(binding);
- if (binding.equals(SOAPBinding.SOAP11HTTP_MTOM_BINDING) || binding.equals(SOAPBinding.SOAP12HTTP_MTOM_BINDING))
- ddep.setEnableMTOM(true);
+ String binding = bindingType.value();
+ ddEndpoint.setBinding(binding);
+ ddEndpoint.setEnableMTOM(isMtomEnabled(binding));
}
- log.info("Add " + ddep);
- dd.addEndpoint(ddep);
+ log.info("Add " + ddEndpoint);
+ ddEndpoints.addEndpoint(ddEndpoint);
}
- dep.addAttachment(DDEndpoints.class, dd);
-
- String propKey = "org.jboss.ws.webapp.ContextParameterMap";
- Map<String, String> contextParams = (Map<String, String>)dep.getProperty(propKey);
- if (contextParams == null)
- {
- contextParams = new HashMap<String, String>();
- dep.setProperty(propKey, contextParams);
- }
- contextParams.put(RuntimeModelDeploymentAspect.PARAM_SUN_JAXWS_URL, dd.createFileURL().toExternalForm());
+ dep.addAttachment(DDEndpoints.class, ddEndpoints);
+ putSunJaxwsConfigToDeployment(dep, ddEndpoints.createFileURL());
}
}
@@ -96,4 +89,29 @@
dd.destroyFileURL();
}
}
+
+ /**
+ * Puts SUN JAX-WS config file to deployment property <b>org.jboss.ws.webapp.ContextParameterMap</b> map
+ * @param dep deployment where to put
+ * @param dd beans to be put
+ */
+ private static void putSunJaxwsConfigToDeployment(Deployment dep, URL jaxwsConfigURL)
+ {
+ // get property map
+ String propKey = "org.jboss.ws.webapp.ContextParameterMap";
+ Map<String, String> contextParams = (Map<String, String>)dep.getProperty(propKey);
+ if (contextParams == null)
+ {
+ // if there's no associated map with the property create it now
+ contextParams = new HashMap<String, String>();
+ dep.setProperty(propKey, contextParams);
+ }
+ // put sun jaxws config URL to the property map
+ contextParams.put(RuntimeModelDeploymentAspect.PARAM_SUN_JAXWS_URL, jaxwsConfigURL.toExternalForm());
+ }
+
+ private static boolean isMtomEnabled(String binding)
+ {
+ return binding.equals(SOAPBinding.SOAP11HTTP_MTOM_BINDING) || binding.equals(SOAPBinding.SOAP12HTTP_MTOM_BINDING);
+ }
}
\ No newline at end of file
More information about the jbossws-commits
mailing list