Author: richard.opalka(a)jboss.com
Date: 2011-10-19 06:04:10 -0400 (Wed, 19 Oct 2011)
New Revision: 15137
Modified:
common/trunk/src/main/java/org/jboss/ws/common/deployment/DefaultService.java
common/trunk/src/main/java/org/jboss/ws/common/deployment/Message.properties
common/trunk/src/main/java/org/jboss/ws/common/deployment/VirtualHostDeploymentAspect.java
Log:
[JBAS-8363] clarifying API - endpoint can be deployed to one virtual host only
Modified: common/trunk/src/main/java/org/jboss/ws/common/deployment/DefaultService.java
===================================================================
---
common/trunk/src/main/java/org/jboss/ws/common/deployment/DefaultService.java 2011-10-19
09:59:17 UTC (rev 15136)
+++
common/trunk/src/main/java/org/jboss/ws/common/deployment/DefaultService.java 2011-10-19
10:04:10 UTC (rev 15137)
@@ -45,7 +45,7 @@
private Deployment dep;
private List<Endpoint> endpoints = new LinkedList<Endpoint>();
private String contextRoot;
- private List<String> virtualHosts;
+ private String virtualHost;
DefaultService()
{
@@ -110,24 +110,14 @@
this.contextRoot = contextRoot;
}
- public List<String> getVirtualHosts()
+ public String getVirtualHost()
{
- if ( virtualHosts != null )
- {
- final List<String> retVal = new LinkedList<String>();
- for ( String virtualHost : virtualHosts )
- {
- retVal.add( virtualHost );
- }
- return retVal;
- }
-
- return null;
+ return virtualHost;
}
- public void setVirtualHosts(List<String> virtualHosts)
+ public void setVirtualHost(String virtualHost)
{
- this.virtualHosts = virtualHosts;
+ this.virtualHost = virtualHost;
}
}
Modified: common/trunk/src/main/java/org/jboss/ws/common/deployment/Message.properties
===================================================================
---
common/trunk/src/main/java/org/jboss/ws/common/deployment/Message.properties 2011-10-19
09:59:17 UTC (rev 15136)
+++
common/trunk/src/main/java/org/jboss/ws/common/deployment/Message.properties 2011-10-19
10:04:10 UTC (rev 15137)
@@ -13,7 +13,7 @@
INVOCATION_HANDLER_NOT_AVAILABLE=Invocation handler not available
CANNOT_STOP_ENDPOINT_IN_STATE=Cannot stop endpoint in state: {0}
COULD_NOT_FIND_IN_THE_ADDITIONAL_METADATAFILES=Could not find {0} in the additional
metadatafiles!
-VIRTUALHOSTS_MUST_BE_THE_SAME_FOR_ALL_DEPLOYED_ENDPOINTS=virtualHosts must be the same
for all deployed endpoints
+VIRTUALHOST_MUST_BE_THE_SAME_FOR_ALL_DEPLOYED_ENDPOINTS=virtualHost must be the same for
all deployed endpoints
CANNOT_OBTAIN_SERVLET_MAPPING_FOR=Cannot obtain servlet mapping for: {0}
LIFECYCLEHANDLER_NOT_INITIALISED=LifecycleHandler not initialised
CANNOT_OBTAIN_CONTEXT_ROOT=Cannot obtain context root
Modified:
common/trunk/src/main/java/org/jboss/ws/common/deployment/VirtualHostDeploymentAspect.java
===================================================================
---
common/trunk/src/main/java/org/jboss/ws/common/deployment/VirtualHostDeploymentAspect.java 2011-10-19
09:59:17 UTC (rev 15136)
+++
common/trunk/src/main/java/org/jboss/ws/common/deployment/VirtualHostDeploymentAspect.java 2011-10-19
10:04:10 UTC (rev 15137)
@@ -24,8 +24,6 @@
import static org.jboss.ws.common.integration.WSHelper.isJaxwsEjbDeployment;
-import java.util.Arrays;
-import java.util.List;
import java.util.ResourceBundle;
import org.jboss.ws.api.annotation.WebContext;
@@ -35,12 +33,12 @@
import org.jboss.wsf.spi.deployment.Endpoint;
/**
- * A deployer that assigns the virtual hosts to the service
+ * A deployment aspect that assigns the virtual host to a WS service.
*
* @author darran.lofthouse(a)jboss.com
- * @since 10-Jul-2008
+ * @author <a href="mailto:ropalka@redhat.com">Richard Opalka</a>
*/
-public class VirtualHostDeploymentAspect extends AbstractDeploymentAspect
+public final class VirtualHostDeploymentAspect extends AbstractDeploymentAspect
{
private static final ResourceBundle bundle =
BundleUtils.getBundle(VirtualHostDeploymentAspect.class);
@@ -49,48 +47,41 @@
{
if (isJaxwsEjbDeployment(dep))
{
- dep.getService().setVirtualHosts(getExplicitVirtualHosts(dep));
+ dep.getService().setVirtualHost(getExplicitVirtualHost(dep));
}
}
- protected List<String> getExplicitVirtualHosts(Deployment dep)
+ protected String getExplicitVirtualHost(final Deployment dep)
{
- String[] virtualHosts = null;
+ String virtualHost = null;
- // Use the virtual hosts from @WebContext.virtualHosts
- for (Endpoint ep : dep.getService().getEndpoints())
+ for (final Endpoint ep : dep.getService().getEndpoints())
{
- Class<?> implClass = ep.getTargetBeanClass();
- WebContext anWebContext =
(WebContext)implClass.getAnnotation(WebContext.class);
- if (anWebContext != null && anWebContext.virtualHosts() != null
&& anWebContext.virtualHosts().length > 0)
- {
- String[] anVirtualHosts = anWebContext.virtualHosts();
- // Avoid modifying the annotation values.
- String[] temp = new String[anVirtualHosts.length];
- System.arraycopy(anVirtualHosts, 0, temp, 0, anVirtualHosts.length);
- Arrays.sort(temp);
+ final Class<?> implClass = ep.getTargetBeanClass();
+ final WebContext webContext = implClass.getAnnotation(WebContext.class);
- if (virtualHosts == null)
+ if (hasVirtualHost(webContext))
+ {
+ final String currentVirtualHost = webContext.virtualHost().trim();
+ if (virtualHost == null)
{
- virtualHosts = temp;
+ virtualHost = currentVirtualHost;
}
else
{
- if (Arrays.equals(virtualHosts, temp) == false)
+ if (!currentVirtualHost.equals(virtualHost))
{
- throw new IllegalStateException(BundleUtils.getMessage(bundle,
"VIRTUALHOSTS_MUST_BE_THE_SAME_FOR_ALL_DEPLOYED_ENDPOINTS"));
+ throw new IllegalStateException(BundleUtils.getMessage(bundle,
"VIRTUALHOST_MUST_BE_THE_SAME_FOR_ALL_DEPLOYED_ENDPOINTS"));
}
}
}
}
- if ( virtualHosts != null )
- {
- return Arrays.asList(virtualHosts);
- }
- else
- {
- return null;
- }
+ return virtualHost;
}
+
+ private static boolean hasVirtualHost(final WebContext webContext) {
+ return webContext != null && webContext.virtualHost().trim().length() >
0;
+ }
+
}
Show replies by date