[jboss-svn-commits] JBL Code SVN: r32590 - in labs/jbossesb/branches/JBESB_4_7_CP/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
Fri Apr 16 12:30:48 EDT 2010


Author: dward
Date: 2010-04-16 12:30:46 -0400 (Fri, 16 Apr 2010)
New Revision: 32590

Modified:
   labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/internal/soa/esb/publish/ContractProviderLifecycleResource.java
   labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java
   labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
   labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java
   labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/XMLBeansModel.java
   labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java
   labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/XMLBeansModel.java
   labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployer.java
   labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployment.java
   labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbMetaData.java
   labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployer.java
   labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/http/HttpGatewayServlet.java
Log:
Fix for JBESB-3257 ( https://jira.jboss.org/jira/browse/JBESB-3257 ).


Modified: labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/internal/soa/esb/publish/ContractProviderLifecycleResource.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/internal/soa/esb/publish/ContractProviderLifecycleResource.java	2010-04-16 13:16:59 UTC (rev 32589)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/internal/soa/esb/publish/ContractProviderLifecycleResource.java	2010-04-16 16:30:46 UTC (rev 32590)
@@ -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/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java	2010-04-16 13:16:59 UTC (rev 32589)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java	2010-04-16 16:30:46 UTC (rev 32590)
@@ -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/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java	2010-04-16 13:16:59 UTC (rev 32589)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java	2010-04-16 16:30:46 UTC (rev 32590)
@@ -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/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java	2010-04-16 13:16:59 UTC (rev 32589)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java	2010-04-16 16:30:46 UTC (rev 32590)
@@ -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/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/XMLBeansModel.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/XMLBeansModel.java	2010-04-16 13:16:59 UTC (rev 32589)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/XMLBeansModel.java	2010-04-16 16:30:46 UTC (rev 32590)
@@ -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/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java	2010-04-16 13:16:59 UTC (rev 32589)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java	2010-04-16 16:30:46 UTC (rev 32590)
@@ -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/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/XMLBeansModel.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/XMLBeansModel.java	2010-04-16 13:16:59 UTC (rev 32589)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/XMLBeansModel.java	2010-04-16 16:30:46 UTC (rev 32590)
@@ -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/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployer.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployer.java	2010-04-16 13:16:59 UTC (rev 32589)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployer.java	2010-04-16 16:30:46 UTC (rev 32590)
@@ -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/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployment.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployment.java	2010-04-16 13:16:59 UTC (rev 32589)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployment.java	2010-04-16 16:30:46 UTC (rev 32590)
@@ -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/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbMetaData.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbMetaData.java	2010-04-16 13:16:59 UTC (rev 32589)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbMetaData.java	2010-04-16 16:30:46 UTC (rev 32590)
@@ -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/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployer.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployer.java	2010-04-16 13:16:59 UTC (rev 32589)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployer.java	2010-04-16 16:30:46 UTC (rev 32590)
@@ -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/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/http/HttpGatewayServlet.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/http/HttpGatewayServlet.java	2010-04-16 13:16:59 UTC (rev 32589)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/http/HttpGatewayServlet.java	2010-04-16 16:30:46 UTC (rev 32590)
@@ -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