[jboss-svn-commits] JBL Code SVN: r32439 - in labs/jbossesb/trunk/product/rosetta/src/org/jboss: soa/esb/listeners/config and 5 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Apr 6 03:44:08 EDT 2010
Author: dward
Date: 2010-04-06 03:44:07 -0400 (Tue, 06 Apr 2010)
New Revision: 32439
Modified:
labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/publish/ContractProviderLifecycleResource.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/XMLBeansModel.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/XMLBeansModel.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployer.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployment.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbMetaData.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployer.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/http/HttpGatewayServlet.java
Log:
Fix for JBESB-3255 ( https://jira.jboss.org/jira/browse/JBESB-3255 ).
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/publish/ContractProviderLifecycleResource.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/publish/ContractProviderLifecycleResource.java 2010-04-06 07:38:50 UTC (rev 32438)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/publish/ContractProviderLifecycleResource.java 2010-04-06 07:44:07 UTC (rev 32439)
@@ -20,19 +20,16 @@
package org.jboss.internal.soa.esb.publish;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.jboss.internal.soa.esb.assertion.AssertArgument;
-import org.jboss.soa.esb.Service;
import org.jboss.soa.esb.lifecycle.LifecyclePriorities;
import org.jboss.soa.esb.lifecycle.LifecycleResource;
import org.jboss.soa.esb.lifecycle.LifecycleResourceException;
import org.jboss.soa.esb.lifecycle.LifecycleResourceFactory;
import org.jboss.soa.esb.lifecycle.LifecycleResourceManager;
import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.ServiceContract;
/**
* ContractProviderLifecycleResource.
@@ -49,19 +46,6 @@
private ContractProviderLifecycleResource() {}
- public static void putContractProviders(List<ServiceContract> serviceContracts)
- throws LifecycleResourceException
- {
- if (serviceContracts != null)
- {
- for (ServiceContract serviceContract : serviceContracts)
- {
- Service service = serviceContract.getService();
- putContractProvider( service.getCategory(), service.getName(), serviceContract.getContractProvider() );
- }
- }
- }
-
public static void putContractProvider(String serviceCategory, String serviceName, ContractProvider contractProvider)
throws LifecycleResourceException
{
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java 2010-04-06 07:38:50 UTC (rev 32438)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java 2010-04-06 07:44:07 UTC (rev 32439)
@@ -27,21 +27,24 @@
import java.io.Reader;
import java.io.StringReader;
import java.net.URL;
+import java.util.ArrayList;
import java.util.List;
import javax.management.ObjectName;
-import javax.xml.transform.stream.StreamSource;
+import org.jboss.internal.soa.esb.listeners.war.Servlet;
+import org.jboss.internal.soa.esb.publish.ContractProviderLifecycleResource;
import org.jboss.internal.soa.esb.publish.ContractReferencePublisher;
+import org.jboss.internal.soa.esb.publish.DefaultContractReferencePublisher;
import org.jboss.internal.soa.esb.util.StreamUtils;
+import org.jboss.soa.esb.Service;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.listeners.LifecycleUtil;
import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.model.ModelAdapter;
import org.jboss.soa.esb.listeners.config.model.ModelParser;
import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycle;
import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleController;
-import org.jboss.soa.esb.util.ClassUtil;
-import org.xml.sax.InputSource;
/**
* comment
@@ -92,6 +95,15 @@
public static ManagedLifecycleController create(final String configXml, final ObjectName serviceName, final List<ContractReferencePublisher> publishers)
{
+ return create(configXml, serviceName, publishers, null);
+ }
+
+ public static ManagedLifecycleController create(final String configXml, final ObjectName serviceName, List<ContractReferencePublisher> publishers, final List<Servlet> servlets)
+ {
+ if (publishers == null)
+ {
+ publishers = new ArrayList<ContractReferencePublisher>();
+ }
try
{
final Reader config = new StringReader(configXml);
@@ -116,6 +128,32 @@
ByteArrayInputStream gatewayIs = new ByteArrayInputStream(gatewayBytes);
ConfigTree gatewayConfig = ConfigTree.fromInputStream(gatewayIs);
instances.addAll(LifecycleUtil.getGateways(gatewayConfig));
+
+ ModelAdapter model = generator.getModel();
+
+ // Handle the ServiceContracts
+ if (servlets != null && !servlets.isEmpty())
+ {
+ List<ServiceContract> modelServiceContracts = model.getServiceContracts();
+ if (modelServiceContracts != null && modelServiceContracts.size() > 0) {
+ for (Servlet servlet : servlets) {
+ Service service = servlet.getService();
+ String endpointAddress = servlet.getEndpointAddress();
+ if (service != null && endpointAddress != null) {
+ for (ServiceContract serviceContract : modelServiceContracts) {
+ if (service.equals(serviceContract.getService())) {
+ publishers.add(
+ new DefaultContractReferencePublisher(
+ service, serviceContract.getDescription(), endpointAddress ) );
+ ContractProviderLifecycleResource.putContractProvider(
+ service.getCategory(), service.getName(), serviceContract.getContractProvider() );
+ break; // first ServiceContract matching a Servlet wins!
+ }
+ }
+ }
+ }
+ }
+ }
ManagedLifecycleController controller = new ManagedLifecycleController(instances);
@@ -123,7 +161,7 @@
boolean success = false ;
try
{
- ServicePublisher.addServicePublishers(controller, generator.getModel().getServicePublishers());
+ ServicePublisher.addServicePublishers(controller, model.getServicePublishers());
ServicePublisher.addContractReferencePublishers(controller, publishers) ;
success = true ;
}
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java 2010-04-06 07:38:50 UTC (rev 32438)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java 2010-04-06 07:44:07 UTC (rev 32439)
@@ -24,7 +24,6 @@
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
-import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
@@ -56,7 +55,6 @@
import org.jboss.internal.soa.esb.listeners.war.WebDeploymentArchive;
import org.jboss.internal.soa.esb.listeners.war.WebModel;
import org.jboss.internal.soa.esb.publish.ContractReferencePublisher;
-import org.jboss.internal.soa.esb.publish.DefaultContractReferencePublisher;
import org.jboss.internal.soa.esb.util.JBossDeployerUtil;
import org.jboss.internal.soa.esb.util.StreamUtils;
import org.jboss.internal.soa.esb.webservice.ESBContractGenerator;
@@ -516,29 +514,8 @@
ModelUtil.updateWebModel(ModelUtil.getListenerGroups(model), webModel);
// Add a sub-deloyment for the web model...
- if(!webModel.getServlets().isEmpty()) {
-
- // Handle the ServiceContracts
- List<ServiceContract> modelServiceContracts = model.getServiceContracts();
- if (modelServiceContracts != null && modelServiceContracts.size() > 0) {
- List<ServiceContract> actionableServiceContracts = new ArrayList<ServiceContract>();
- for (Servlet servlet : webModel.getServlets()) {
- Service service = servlet.getService();
- String endpointAddress = servlet.getEndpointAddress();
- if (service != null && endpointAddress != null) {
- for (ServiceContract serviceContract : modelServiceContracts) {
- if (service.equals(serviceContract.getService())) {
- actionableServiceContracts.add(serviceContract);
- publishers.add(
- new DefaultContractReferencePublisher(
- service, serviceContract.getDescription(), endpointAddress ) );
- break; // first ServiceContract matching a Servlet wins!
- }
- }
- }
- }
- deployment.setServiceContracts(actionableServiceContracts);
- }
+ List<Servlet> servlets = webModel.getServlets();
+ if(!servlets.isEmpty()) {
// Finalize the webDeployment...
webDeployment.finalizeArchive();
@@ -559,6 +536,7 @@
}
deployment.setPublishers(publishers) ;
+ deployment.setServlets(servlets);
}
}
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java 2010-04-06 07:38:50 UTC (rev 32438)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java 2010-04-06 07:44:07 UTC (rev 32439)
@@ -23,7 +23,7 @@
import java.util.List;
-import org.jboss.internal.soa.esb.publish.ContractProviderLifecycleResource;
+import org.jboss.internal.soa.esb.listeners.war.Servlet;
import org.jboss.internal.soa.esb.publish.ContractReferencePublisher;
import org.jboss.soa.esb.lifecycle.LifecycleResourceManager;
import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleController;
@@ -40,7 +40,7 @@
private final String jbossEsbXml;
private String deploymentName ;
private List<ContractReferencePublisher> publishers ;
- private List<ServiceContract> serviceContracts;
+ private List<Servlet> servlets;
private ManagedLifecycleController controller;
private ClassLoader classloader;
@@ -70,10 +70,15 @@
this.publishers = publishers ;
}
- public void setServiceContracts(final List<ServiceContract> serviceContracts)
+ public void setServlets(final List<Servlet> servlets)
{
- this.serviceContracts = serviceContracts;
+ this.servlets = servlets;
}
+
+ public List<Servlet> getServlets()
+ {
+ return servlets;
+ }
public ManagedLifecycleController getController()
{
@@ -117,9 +122,8 @@
try
{
Thread.currentThread().setContextClassLoader(classloader);
- controller = Configuration.create(jbossEsbXml, serviceName, publishers);
+ controller = Configuration.create(jbossEsbXml, serviceName, publishers, servlets);
controller.start();
- ContractProviderLifecycleResource.putContractProviders(serviceContracts);
}
finally
{
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/XMLBeansModel.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/XMLBeansModel.java 2010-04-06 07:38:50 UTC (rev 32438)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/XMLBeansModel.java 2010-04-06 07:44:07 UTC (rev 32439)
@@ -552,11 +552,11 @@
{
Class<?> actionClass;
try {
- actionClass = (Class<?>) ClassUtil.forName(action.getClass1(), ServiceContract.class);
- } catch (ClassNotFoundException e) {
- break; // will not be found via junit classloading
+ actionClass = (Class<?>)ClassUtil.forName(action.getClass1(), ServiceContract.class);
+ } catch (ClassNotFoundException cnfe) {
+ throw new RuntimeException(cnfe);
} catch (NoClassDefFoundError ncdfe) {
- break; // will not be found via junit classloading
+ throw new RuntimeException(ncdfe);
}
Publish publishAnnotation = (Publish)actionClass.getAnnotation(Publish.class);
if (publishAnnotation != null) {
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java 2010-04-06 07:38:50 UTC (rev 32438)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java 2010-04-06 07:44:07 UTC (rev 32439)
@@ -553,11 +553,11 @@
{
Class<?> actionClass;
try {
- actionClass = (Class<?>) ClassUtil.forName(action.getClass1(), ServiceContract.class);
- } catch (ClassNotFoundException e) {
- break; // will not be found via junit classloading
+ actionClass = (Class<?>)ClassUtil.forName(action.getClass1(), ServiceContract.class);
+ } catch (ClassNotFoundException cnfe) {
+ throw new RuntimeException(cnfe);
} catch (NoClassDefFoundError ncdfe) {
- break; // will not be found via junit classloading
+ throw new RuntimeException(ncdfe);
}
Publish publishAnnotation = (Publish)actionClass.getAnnotation(Publish.class);
if (publishAnnotation != null) {
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/XMLBeansModel.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/XMLBeansModel.java 2010-04-06 07:38:50 UTC (rev 32438)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/XMLBeansModel.java 2010-04-06 07:44:07 UTC (rev 32439)
@@ -605,11 +605,11 @@
{
Class<?> actionClass;
try {
- actionClass = (Class<?>) ClassUtil.forName(action.getClass1(), ServiceContract.class);
- } catch (ClassNotFoundException e) {
- break; // will not be found via junit classloading
+ actionClass = (Class<?>)ClassUtil.forName(action.getClass1(), ServiceContract.class);
+ } catch (ClassNotFoundException cnfe) {
+ throw new RuntimeException(cnfe);
} catch (NoClassDefFoundError ncdfe) {
- break; // will not be found via junit classloading
+ throw new RuntimeException(ncdfe);
}
Publish publishAnnotation = (Publish)actionClass.getAnnotation(Publish.class);
if (publishAnnotation != null) {
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployer.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployer.java 2010-04-06 07:38:50 UTC (rev 32438)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployer.java 2010-04-06 07:44:07 UTC (rev 32439)
@@ -167,11 +167,11 @@
bmdBuilder.addPropertyMetaData("publishers", esbMetaData.getPublishers());
}
- if (esbMetaData.getServiceContracts().size() > 0)
+ if (esbMetaData.getServlets().size() > 0)
{
- // set service contracts on the deployment instance, or rather tell MC to do this for us.
- log.debug("Adding service contracts : " + esbMetaData.getServiceContracts());
- bmdBuilder.addPropertyMetaData("serviceContracts", esbMetaData.getServiceContracts());
+ // set servlets on the deployment instance, or rather tell MC to do this for us.
+ log.debug("Adding servlets : " + esbMetaData.getServlets());
+ bmdBuilder.addPropertyMetaData("servlets", esbMetaData.getServlets());
}
return bmdBuilder.getBeanMetaData();
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployment.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployment.java 2010-04-06 07:38:50 UTC (rev 32438)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployment.java 2010-04-06 07:44:07 UTC (rev 32439)
@@ -26,11 +26,10 @@
import javax.management.ObjectName;
import org.apache.log4j.Logger;
-import org.jboss.internal.soa.esb.publish.ContractProviderLifecycleResource;
+import org.jboss.internal.soa.esb.listeners.war.Servlet;
import org.jboss.internal.soa.esb.publish.ContractReferencePublisher;
import org.jboss.soa.esb.lifecycle.LifecycleResourceManager;
import org.jboss.soa.esb.listeners.config.Configuration;
-import org.jboss.soa.esb.listeners.config.ServiceContract;
import org.jboss.soa.esb.listeners.config.ServicePublisher;
import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleController;
@@ -55,7 +54,7 @@
private final String jbossEsbXml;
private String deploymentName;
private List<ContractReferencePublisher> publishers;
- private List<ServiceContract> serviceContracts;
+ private List<Servlet> servlets;
private ManagedLifecycleController controller;
private final String mbeanName;
@@ -81,10 +80,15 @@
this.publishers = publishers;
}
- public void setServiceContracts(final List<ServiceContract> serviceContracts)
+ public void setServlets(final List<Servlet> servlets)
{
- this.serviceContracts = serviceContracts;
+ this.servlets = servlets;
}
+
+ public List<Servlet> getServlets()
+ {
+ return servlets;
+ }
public ManagedLifecycleController getController()
{
@@ -118,9 +122,8 @@
if (controller == null)
{
- controller = Configuration.create(jbossEsbXml, new ObjectName(mbeanName), publishers);
+ controller = Configuration.create(jbossEsbXml, new ObjectName(mbeanName), publishers, servlets);
controller.start();
- ContractProviderLifecycleResource.putContractProviders(serviceContracts);
}
}
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbMetaData.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbMetaData.java 2010-04-06 07:38:50 UTC (rev 32438)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbMetaData.java 2010-04-06 07:44:07 UTC (rev 32439)
@@ -29,8 +29,8 @@
import javax.management.ObjectName;
import org.jboss.internal.soa.esb.assertion.AssertArgument;
+import org.jboss.internal.soa.esb.listeners.war.Servlet;
import org.jboss.internal.soa.esb.publish.ContractReferencePublisher;
-import org.jboss.soa.esb.listeners.config.ServiceContract;
import org.jboss.soa.esb.listeners.config.model.ModelAdapter;
/**
@@ -62,8 +62,8 @@
/** The publishers for this deployment */
private List<ContractReferencePublisher> publishers = new ArrayList<ContractReferencePublisher>();
- /** The service contracts for this deployment */
- private List<ServiceContract> serviceContracts = new ArrayList<ServiceContract>();
+ /** The servlets for this deployment */
+ private List<Servlet> servlets = new ArrayList<Servlet>();
/**
* Sole constructor.
@@ -157,23 +157,23 @@
}
/**
- * Sets the service contracts for this deployment.
+ * Sets the servlets for this deployment.
*
- * @param serviceContracts The service contracts for this deployment.
+ * @param servlets The servlets for this deployment.
*/
- public void setServiceContracts(final List<ServiceContract> serviceContracts)
+ public void setServlets(final List<Servlet> servlets)
{
- this.serviceContracts = serviceContracts;
+ this.servlets = servlets;
}
/**
- * Gets the service contracts for this deployment.
+ * Gets the servlets for this deployment.
*
- * @return List<ServiceContract> List of service contracts for this deployment.
+ * @return List<Servlet> List of servlets for this deployment.
*/
- public List<ServiceContract> getServiceContracts()
+ public List<Servlet> getServlets()
{
- return Collections.unmodifiableList(serviceContracts);
+ return Collections.unmodifiableList(servlets);
}
/**
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployer.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployer.java 2010-04-06 07:38:50 UTC (rev 32438)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployer.java 2010-04-06 07:44:07 UTC (rev 32439)
@@ -35,7 +35,6 @@
import org.jboss.internal.soa.esb.listeners.war.Servlet;
import org.jboss.internal.soa.esb.listeners.war.WebModel;
import org.jboss.internal.soa.esb.publish.ContractReferencePublisher;
-import org.jboss.internal.soa.esb.publish.DefaultContractReferencePublisher;
import org.jboss.internal.soa.esb.util.JBossDeployerUtil;
import org.jboss.internal.soa.esb.webservice.ESBResponseFilter;
import org.jboss.internal.soa.esb.webservice.ESBServiceContractReferencePublisher;
@@ -65,7 +64,6 @@
import org.jboss.soa.esb.Service;
import org.jboss.soa.esb.helpers.KeyValuePair;
import org.jboss.soa.esb.listeners.config.ModelUtil;
-import org.jboss.soa.esb.listeners.config.ServiceContract;
import org.jboss.soa.esb.listeners.config.WebserviceInfo;
import org.jboss.soa.esb.listeners.deployers.mc.util.VfsUtil;
import org.jboss.virtual.MemoryFileFactory;
@@ -233,28 +231,6 @@
throw new DeploymentException("Failed to capture web metadata from ESB configuration.", e);
}
- // Handle the ServiceContracts
- List<ServiceContract> modelServiceContracts = esbMetaData.getModel().getServiceContracts();
- if (modelServiceContracts != null && modelServiceContracts.size() > 0) {
- List<ServiceContract> actionableServiceContracts = new ArrayList<ServiceContract>();
- for (Servlet servlet : webModel.getServlets()) {
- Service service = servlet.getService();
- String endpointAddress = servlet.getEndpointAddress();
- if (service != null && endpointAddress != null) {
- for (ServiceContract serviceContract : modelServiceContracts) {
- if (service.equals(serviceContract.getService())) {
- actionableServiceContracts.add(serviceContract);
- publishers.add(
- new DefaultContractReferencePublisher(
- service, serviceContract.getDescription(), endpointAddress ) );
- break; // first ServiceContract matching a Servlet wins!
- }
- }
- }
- }
- esbMetaData.setServiceContracts(actionableServiceContracts);
- }
-
// Add the filters...
for(Filter filter : webModel.getFilters()) {
webMetaDataCreated = true;
@@ -298,6 +274,7 @@
}
}
}
+ esbMetaData.setServlets(webModel.getServlets());
if(webModel.getAuthMethod() != null) {
LoginConfigMetaData loginConfig = new LoginConfigMetaData();
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/http/HttpGatewayServlet.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/http/HttpGatewayServlet.java 2010-04-06 07:38:50 UTC (rev 32438)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/http/HttpGatewayServlet.java 2010-04-06 07:44:07 UTC (rev 32439)
@@ -77,7 +77,8 @@
private Service service;
private ServiceInvoker serviceInvoker;
- private ContractInfo contract = null;
+ private String endpointAddress;
+ private ContractInfo contractInfo = null;
private boolean asyncInvoke;
private int asyncStatusCode = HttpServletResponse.SC_OK;
private byte[] asyncPayload;
@@ -88,26 +89,17 @@
private Map<String, Integer> exceptionMappings;
public void init(ServletConfig config) throws ServletException {
- String serviceCategory = config.getInitParameter(ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG);
- String serviceName = config.getInitParameter(ListenerTagNames.TARGET_SERVICE_NAME_TAG);
- service = new Service(serviceCategory, serviceName);
+ service = new Service(
+ config.getInitParameter(ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG),
+ config.getInitParameter(ListenerTagNames.TARGET_SERVICE_NAME_TAG)
+ );
try {
serviceInvoker = new ServiceInvoker(service);
} catch (MessageDeliverException e) {
throw new ServletException("Unable to create ServiceInvoker for Service '" + service + "'.", e);
}
+ endpointAddress = config.getInitParameter(Servlet.ENDPOINT_ADDRESS);
- try {
- ContractProvider contractProvider = ContractProviderLifecycleResource.getContractProvider(serviceCategory, serviceName);
- if (contractProvider != null) {
- contract = contractProvider.provideContract(service, config.getInitParameter(Servlet.ENDPOINT_ADDRESS));
- }
- } catch (LifecycleResourceException lre) {
- throw new ServletException(lre);
- } catch (IOException ioe) {
- throw new ServletException(ioe);
- }
-
ConfigTree configTree = toConfigTree(config);
try {
messageComposer = MessageComposer.Factory.getInstance(configTree.getAttribute(ListenerTagNames.GATEWAY_COMPOSER_CLASS_TAG, HttpMessageComposer.class.getName()), configTree);
@@ -271,6 +263,7 @@
private void handleWsdlRequest(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String mimeType;
String data;
+ ContractInfo contract = getContract();
if (contract != null) {
mimeType = contract.getMimeType();
String resource = req.getParameter("resource");
@@ -296,4 +289,23 @@
writer.flush();
}
+ private ContractInfo getContract() throws ServletException, IOException {
+ if (contractInfo == null) {
+ synchronized (this) {
+ if (contractInfo == null) {
+ ContractProvider contractProvider;
+ try {
+ contractProvider = ContractProviderLifecycleResource.getContractProvider(service.getCategory(), service.getName());
+ } catch (LifecycleResourceException lre) {
+ throw new ServletException(lre);
+ }
+ if (contractProvider != null) {
+ contractInfo = contractProvider.provideContract(service, endpointAddress);
+ }
+ }
+ }
+ }
+ return contractInfo;
+ }
+
}
More information about the jboss-svn-commits
mailing list