Author: heiko.braun(a)jboss.com
Date: 2006-12-14 09:21:35 -0500 (Thu, 14 Dec 2006)
New Revision: 1650
Modified:
trunk/src/main/java/org/jboss/ws/integration/jboss50/JBossServiceEndpointServlet.java
trunk/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSClientEndpointMetaDataBuilder.java
trunk/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSWebServiceMetaDataBuilder.java
trunk/src/main/java/org/jboss/ws/metadata/umdm/ClientEndpointMetaData.java
trunk/src/main/java/org/jboss/ws/metadata/umdm/EndpointMetaData.java
trunk/src/main/java/org/jboss/ws/metadata/umdm/ServerEndpointMetaData.java
trunk/src/main/java/org/jboss/ws/tools/metadata/ToolsEndpointMetaData.java
Log:
Refactor config processing
Modified:
trunk/src/main/java/org/jboss/ws/integration/jboss50/JBossServiceEndpointServlet.java
===================================================================
---
trunk/src/main/java/org/jboss/ws/integration/jboss50/JBossServiceEndpointServlet.java 2006-12-14
14:20:57 UTC (rev 1649)
+++
trunk/src/main/java/org/jboss/ws/integration/jboss50/JBossServiceEndpointServlet.java 2006-12-14
14:21:35 UTC (rev 1650)
@@ -23,19 +23,14 @@
// $Id$
-import java.util.List;
-
-import javax.servlet.ServletContext;
-
import org.jboss.logging.Logger;
import org.jboss.ws.WSException;
import org.jboss.ws.core.server.AbstractServiceEndpointServlet;
import org.jboss.ws.core.server.ServiceEndpoint;
-import org.jboss.ws.metadata.config.CommonConfig;
-import org.jboss.ws.metadata.umdm.HandlerMetaData;
import org.jboss.ws.metadata.umdm.ServerEndpointMetaData;
-import org.jboss.ws.metadata.umdm.HandlerMetaData.HandlerType;
+import javax.servlet.ServletContext;
+
/**
* A servlet that is installed for every web service endpoint.
*
@@ -67,20 +62,8 @@
ServerEndpointMetaData sepMetaData =
wsEndpoint.getServiceEndpointInfo().getServerEndpointMetaData();
sepMetaData.setConfigName(configName);
sepMetaData.setConfigFile(configFile);
-
- List<HandlerMetaData> sepHandlers =
sepMetaData.getHandlerMetaData(HandlerType.ENDPOINT);
- sepMetaData.clearHandlers();
-
- // Add pre handlers
- CommonConfig sepConfig = sepMetaData.getEndpointConfig();
- sepMetaData.addHandlers(sepConfig.getHandlers(sepMetaData, HandlerType.PRE));
-
- // Restore the endpoint handlers
- sepMetaData.addHandlers(sepHandlers);
-
- // Add post handlers
- sepMetaData.addHandlers(sepConfig.getHandlers(sepMetaData, HandlerType.POST));
-
+ sepMetaData.processEndpointConfig();
+
log.debug("Updated server meta data" + sepMetaData);
}
}
Modified:
trunk/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSClientEndpointMetaDataBuilder.java
===================================================================
---
trunk/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSClientEndpointMetaDataBuilder.java 2006-12-14
14:20:57 UTC (rev 1649)
+++
trunk/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSClientEndpointMetaDataBuilder.java 2006-12-14
14:21:35 UTC (rev 1650)
@@ -60,20 +60,13 @@
if (wsClass.isAnnotationPresent(SOAPBinding.class))
processSOAPBinding(epMetaData, wsClass);
- // Clear handlers
- epMetaData.clearHandlers();
+ // process config, this will as well setup the handler
+ epMetaData.processEndpointConfig();
- // Add pre handlers
- ClientConfigJAXWS jaxwsConfig = (ClientConfigJAXWS)epMetaData.getEndpointConfig();
- epMetaData.addHandlers(jaxwsConfig.getHandlers(epMetaData, HandlerType.PRE));
-
// Process an optional @HandlerChain annotation
if (wsClass.isAnnotationPresent(HandlerChain.class))
processHandlerChain(epMetaData, wsClass);
- // Add post handlers
- epMetaData.addHandlers(jaxwsConfig.getHandlers(epMetaData, HandlerType.POST));
-
// Process @WebMethod
processWebMethods(epMetaData, wsClass);
Modified:
trunk/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSWebServiceMetaDataBuilder.java
===================================================================
---
trunk/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSWebServiceMetaDataBuilder.java 2006-12-14
14:20:57 UTC (rev 1649)
+++
trunk/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSWebServiceMetaDataBuilder.java 2006-12-14
14:21:35 UTC (rev 1650)
@@ -1027,18 +1027,19 @@
if (sepClass.isAnnotationPresent(SOAPMessageHandlers.class) ||
wsClass.isAnnotationPresent(SOAPMessageHandlers.class))
log.warn("@SOAPMessageHandlers is deprecated as of JAX-WS 2.0 with no
replacement.");
- // Add pre handlers
- EndpointConfigJAXWS jaxrpcConfig =
(EndpointConfigJAXWS)sepMetaData.getEndpointConfig();
- sepMetaData.addHandlers(jaxrpcConfig.getHandlers(sepMetaData,
HandlerType.PRE));
+ // process configuration, this will as well setup the handler
+ sepMetaData.processEndpointConfig();
// Process an optional @HandlerChain annotation
if (sepClass.isAnnotationPresent(HandlerChain.class))
+ {
processHandlerChain(sepMetaData, sepClass);
+ }
else if (wsClass.isAnnotationPresent(HandlerChain.class))
+ {
processHandlerChain(sepMetaData, wsClass);
+ }
- // Add post handlers
- sepMetaData.addHandlers(jaxrpcConfig.getHandlers(sepMetaData,
HandlerType.POST));
// init service endpoint id
ObjectName sepID = MetaDataBuilder.getServiceEndpointID(udi, sepMetaData);
Modified: trunk/src/main/java/org/jboss/ws/metadata/umdm/ClientEndpointMetaData.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/metadata/umdm/ClientEndpointMetaData.java 2006-12-14
14:20:57 UTC (rev 1649)
+++ trunk/src/main/java/org/jboss/ws/metadata/umdm/ClientEndpointMetaData.java 2006-12-14
14:21:35 UTC (rev 1650)
@@ -33,6 +33,7 @@
import org.jboss.ws.metadata.config.JBossWSConfigFactory;
import org.jboss.ws.metadata.config.jaxrpc.ConfigRootJAXRPC;
import org.jboss.ws.metadata.config.jaxws.ConfigRootJAXWS;
+import org.jboss.ws.metadata.config.jaxws.ClientConfigJAXWS;
import org.jboss.ws.metadata.umdm.HandlerMetaData.HandlerType;
/**
@@ -95,6 +96,14 @@
return endpointConfig;
}
+ public void processEndpointConfig() {
+ // rebuild handler from config
+ clearHandlers();
+ ClientConfigJAXWS jaxwsConfig = (ClientConfigJAXWS)getEndpointConfig();
+ addHandlers(jaxwsConfig.getHandlers(this, HandlerType.PRE));
+ addHandlers(jaxwsConfig.getHandlers(this, HandlerType.POST));
+ }
+
public String getConfigName() {
String configName = super.getConfigName();
if (configName == null)
Modified: trunk/src/main/java/org/jboss/ws/metadata/umdm/EndpointMetaData.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/metadata/umdm/EndpointMetaData.java 2006-12-14
14:20:57 UTC (rev 1649)
+++ trunk/src/main/java/org/jboss/ws/metadata/umdm/EndpointMetaData.java 2006-12-14
14:21:35 UTC (rev 1650)
@@ -157,6 +157,8 @@
public abstract Object getEndpointConfig();
+ public abstract void processEndpointConfig();
+
public String getEndpointAddress()
{
return endpointAddress;
Modified: trunk/src/main/java/org/jboss/ws/metadata/umdm/ServerEndpointMetaData.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/metadata/umdm/ServerEndpointMetaData.java 2006-12-14
14:20:57 UTC (rev 1649)
+++ trunk/src/main/java/org/jboss/ws/metadata/umdm/ServerEndpointMetaData.java 2006-12-14
14:21:35 UTC (rev 1650)
@@ -35,6 +35,7 @@
import javax.xml.namespace.QName;
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.List;
/**
* Client side endpoint meta data.
@@ -71,6 +72,10 @@
// The bean that registers with the ServiceEndpointManager
private String managedEndpointBean =
"org.jboss.ws.core.server.ServiceEndpoint";
+ private static final String DEFAULT_JAXRPC_CONFIG_FILE =
"META-INF/standard-jaxrpc-endpoint-config.xml";
+ private static final String DEFAULT_JAXWS_CONFIG_FILE =
"META-INF/standard-jaxws-endpoint-config.xml";
+ private static final String DEFAULT_CONFIG_NAME = "Standard
Endpoint";
+
public ServerEndpointMetaData(ServiceMetaData service, QName qname, QName
interfaceQName, Type type)
{
super(service, qname, interfaceQName, type);
@@ -135,7 +140,7 @@
public void setContextRoot(String contextRoot)
{
- if (contextRoot != null && contextRoot.startsWith("/") == false)
+ if (contextRoot != null && !(contextRoot.startsWith("/")))
throw new IllegalArgumentException("context root should start with
'/'");
this.contextRoot = contextRoot;
@@ -158,7 +163,7 @@
public void setURLPattern(String urlPattern)
{
- if (urlPattern != null && urlPattern.startsWith("/") == false)
+ if (urlPattern != null && !urlPattern.startsWith("/"))
throw new IllegalArgumentException("url pattern should start with
'/'");
this.urlPattern = urlPattern;
@@ -220,7 +225,7 @@
String configName = super.getConfigName();
if (configName == null)
{
- configName = "Standard Endpoint";
+ configName = DEFAULT_CONFIG_NAME;
setConfigName(configName);
}
return configName;
@@ -228,21 +233,38 @@
public String getConfigFile() {
String configFile = super.getConfigFile();
+
if (configFile == null)
{
if (getType() == Type.JAXRPC)
{
- configFile = "META-INF/standard-jaxrpc-endpoint-config.xml";
+ configFile = DEFAULT_JAXRPC_CONFIG_FILE;
}
else
{
- configFile = "META-INF/standard-jaxws-endpoint-config.xml";
+ configFile = DEFAULT_JAXWS_CONFIG_FILE;
}
setConfigFile(configFile);
}
return configFile;
}
+ /**
+ * Processes an associated configuration and
+ * rebuilds the related meta data model.
+ */
+ public void processEndpointConfig()
+ {
+ // update handler configuration
+ List<HandlerMetaData> sepHandlers =
getHandlerMetaData(HandlerType.ENDPOINT);
+ clearHandlers();
+
+ CommonConfig sepConfig = getEndpointConfig();
+ addHandlers(sepConfig.getHandlers(this, HandlerType.PRE));
+ addHandlers(sepHandlers);
+ addHandlers(sepConfig.getHandlers(this, HandlerType.POST));
+ }
+
private URL filenameToURL(String configFile) {
URL configURL = null;
try
@@ -268,31 +290,31 @@
public String toString()
{
StringBuilder buffer = new StringBuilder("\nServerEndpointMetaData:");
- buffer.append("\n type=" + getType());
- buffer.append("\n qname=" + getQName());
- buffer.append("\n id=" + getServiceEndpointID().getCanonicalName());
- buffer.append("\n address=" + getEndpointAddress());
- buffer.append("\n binding=" + getBindingId());
- buffer.append("\n linkName=" + getLinkName());
- buffer.append("\n implName=" + getServiceEndpointImplName());
- buffer.append("\n seiName=" + getServiceEndpointInterfaceName());
- buffer.append("\n serviceMode=" + getServiceMode());
- buffer.append("\n portComponentName=" + getPortComponentName());
- buffer.append("\n contextRoot=" + getContextRoot());
- buffer.append("\n urlPattern=" + getURLPattern());
- buffer.append("\n configFile=" + getConfigFile());
- buffer.append("\n configName=" + getConfigName());
- buffer.append("\n authMethod=" + getAuthMethod());
- buffer.append("\n transportGuarantee=" + getTransportGuarantee());
- buffer.append("\n properties=" + getProperties());
+ buffer.append("\n type=").append(getType());
+ buffer.append("\n qname=").append(getQName());
+ buffer.append("\n
id=").append(getServiceEndpointID().getCanonicalName());
+ buffer.append("\n address=").append(getEndpointAddress());
+ buffer.append("\n binding=").append(getBindingId());
+ buffer.append("\n linkName=").append(getLinkName());
+ buffer.append("\n implName=").append(getServiceEndpointImplName());
+ buffer.append("\n seiName=").append(getServiceEndpointInterfaceName());
+ buffer.append("\n serviceMode=").append(getServiceMode());
+ buffer.append("\n portComponentName=").append(getPortComponentName());
+ buffer.append("\n contextRoot=").append(getContextRoot());
+ buffer.append("\n urlPattern=").append(getURLPattern());
+ buffer.append("\n configFile=").append(getConfigFile());
+ buffer.append("\n configName=").append(getConfigName());
+ buffer.append("\n authMethod=").append(getAuthMethod());
+ buffer.append("\n transportGuarantee=").append(getTransportGuarantee());
+ buffer.append("\n properties=").append(getProperties());
for (OperationMetaData opMetaData : getOperations())
{
- buffer.append("\n" + opMetaData);
+ buffer.append("\n").append(opMetaData);
}
for (HandlerMetaData hdlMetaData : getHandlerMetaData(HandlerType.ALL))
{
- buffer.append("\n" + hdlMetaData);
+ buffer.append("\n").append(hdlMetaData);
}
return buffer.toString();
}
Modified: trunk/src/main/java/org/jboss/ws/tools/metadata/ToolsEndpointMetaData.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/tools/metadata/ToolsEndpointMetaData.java 2006-12-14
14:20:57 UTC (rev 1649)
+++ trunk/src/main/java/org/jboss/ws/tools/metadata/ToolsEndpointMetaData.java 2006-12-14
14:21:35 UTC (rev 1650)
@@ -48,4 +48,8 @@
{
throw new NotImplementedException();
}
+
+ public void processEndpointConfig() {
+ throw new NotImplementedException();
+ }
}
\ No newline at end of file