[jboss-svn-commits] JBL Code SVN: r20125 - labs/jbossesb/trunk/product/tools/console/contract-web/src/main/webapp.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri May 23 08:47:41 EDT 2008


Author: mark.little at jboss.com
Date: 2008-05-23 08:47:41 -0400 (Fri, 23 May 2008)
New Revision: 20125

Modified:
   labs/jbossesb/trunk/product/tools/console/contract-web/src/main/webapp/contract.jsp
Log:
http://jira.jboss.com/jira/browse/JBESB-1547

Modified: labs/jbossesb/trunk/product/tools/console/contract-web/src/main/webapp/contract.jsp
===================================================================
--- labs/jbossesb/trunk/product/tools/console/contract-web/src/main/webapp/contract.jsp	2008-05-23 12:47:24 UTC (rev 20124)
+++ labs/jbossesb/trunk/product/tools/console/contract-web/src/main/webapp/contract.jsp	2008-05-23 12:47:41 UTC (rev 20125)
@@ -1,66 +1,86 @@
-<%@ page import="java.util.List" %>
-<%@ page import="org.jboss.soa.esb.listeners.config.ServicePublisher" %>
-<%@ page import="org.jboss.soa.esb.services.registry.RegistryFactory" %>
-<%@ page import="org.jboss.soa.esb.services.registry.Registry" %>
-<%@ page import="org.jboss.soa.esb.services.registry.RegistryException" %>
-<%@ page import="java.util.ArrayList" %>
-<%@ page import="org.jboss.soa.esb.addressing.EPR" %>
-<%@ page import="java.net.URI" %>
-<%@ page import="org.jboss.internal.soa.esb.publish.ContractInfo" %>
-<%@ page import="org.jboss.soa.esb.actions.soap.WebserviceContractPublisher" %>
-<%@ page import="org.jboss.internal.soa.esb.publish.ContractPublisher" %>
-<%
-    List publishers = ServicePublisher.getServicePublishers();
-    Registry registry = RegistryFactory.getRegistry();
-    String targetServiceCat = request.getParameter("serviceCat");
-    String targetServiceName = request.getParameter("serviceName");
-    String targetProtocol = request.getParameter("protocol");
-    ContractInfo contractInfo = null;
-    String contractData = null;
-
-    for (int i = 0; i < publishers.size() && contractInfo == null; i++) {
-        ServicePublisher publisher = (ServicePublisher) publishers.get(i);
-        String serviceCategory = publisher.getCategory();
-        String serviceName = publisher.getServiceName();
-        List eprs;
-
-        if (publisher.getContractPublisher() == null) {
-            continue;
-        } else if (!serviceCategory.equalsIgnoreCase(targetServiceCat) ||
-                !serviceName.equalsIgnoreCase(targetServiceName)) {
-            continue;
-        }
-
-        try {
-            eprs = (List) registry.findEPRs(serviceCategory, serviceName);
-        } catch (RegistryException e) {
-            // ignore for now - just return an empty list
-            eprs = new ArrayList();
-        }
-
-        for (int ii = 0; ii < eprs.size(); ii++) {
-            EPR epr = (EPR) eprs.get(ii);
-            URI eprURI = URI.create(epr.getAddr().getAddress());
-            String protocol = eprURI.getScheme();
-
-            if (protocol.equalsIgnoreCase(targetProtocol)) {
-                ContractPublisher contractPublisher = publisher.getContractPublisher();
-
-                if(contractPublisher instanceof WebserviceContractPublisher) {
-                    contractInfo = ((WebserviceContractPublisher)contractPublisher).getContractInfo(epr, request);
-                } else {
-                    contractInfo = contractPublisher.getContractInfo(epr);
-                }
-                break;
-            }
-        }
-
-        if (contractInfo != null) {
-            contractData = contractInfo.getData();
-            response.setContentType(contractInfo.getMimeType());
-        } else {
-            contractData = "<Unavailable/>";
-            response.setContentType("text/xml");
-        }
-    }
-%><%=contractData%>
\ No newline at end of file
+<%@ page import="java.util.List" %>
+<%@ page import="org.jboss.soa.esb.listeners.config.ServicePublisher" %>
+<%@ page import="org.jboss.soa.esb.services.registry.RegistryFactory" %>
+<%@ page import="org.jboss.soa.esb.services.registry.Registry" %>
+<%@ page import="org.jboss.soa.esb.services.registry.RegistryException" %>
+<%@ page import="org.jboss.soa.esb.services.registry.ServiceNotFoundException" %>
+<%@ page import="java.util.ArrayList" %>
+<%@ page import="org.jboss.soa.esb.addressing.EPR" %>
+<%@ page import="java.net.URI" %>
+<%@ page import="org.jboss.internal.soa.esb.publish.ContractInfo" %>
+<%@ page import="org.jboss.soa.esb.actions.soap.WebserviceContractPublisher" %>
+<%@ page import="org.jboss.internal.soa.esb.publish.ContractPublisher" %>
+<%
+    List publishers = ServicePublisher.getServicePublishers();
+    Registry registry = RegistryFactory.getRegistry();
+    String targetServiceCat = request.getParameter("serviceCat");
+    String targetServiceName = request.getParameter("serviceName");
+    String targetProtocol = request.getParameter("protocol");
+    ContractInfo contractInfo = null;
+    String contractData = null;
+    List eprs;
+
+    try {
+        List allEprs = (List) registry.findEPRs(targetServiceCat, targetServiceName);
+        eprs = new ArrayList(allEprs.size());
+        
+        for (int i = 0; i < allEprs.size(); i++) {
+        	EPR epr = (EPR) allEprs.get(i);
+            URI eprURI = URI.create(epr.getAddr().getAddress());
+            String protocol = eprURI.getScheme();
+
+        	if (protocol.equalsIgnoreCase(targetProtocol)) {
+        		eprs.add(epr);
+        	}
+        	
+        }
+    } catch (ServiceNotFoundException e) {
+        // ignore for now - just return an empty list
+        eprs = new ArrayList();
+    } catch (RegistryException e) {
+        // ignore for now - just return an empty list
+        eprs = new ArrayList();
+    }
+
+    // JBESB-1547 - Contract console should generate HTTP 404 when asking for non-deployed service WSDL 
+    if (eprs == null || eprs.isEmpty()) {
+        response.sendError(HttpServletResponse.SC_NOT_FOUND);
+		return;    	
+    }
+    
+    for (int i = 0; i < publishers.size() && contractInfo == null; i++) {
+        ServicePublisher publisher = (ServicePublisher) publishers.get(i);
+        String serviceCategory = publisher.getCategory();
+        String serviceName = publisher.getServiceName();
+
+        if (publisher.getContractPublisher() == null) {
+            continue;
+        } else if (!serviceCategory.equalsIgnoreCase(targetServiceCat) ||
+                !serviceName.equalsIgnoreCase(targetServiceName)) {
+            continue;
+        }
+
+        for (int ii = 0; ii < eprs.size(); ii++) {
+            EPR epr = (EPR) eprs.get(ii);
+
+            ContractPublisher contractPublisher = publisher.getContractPublisher();
+
+            if(contractPublisher instanceof WebserviceContractPublisher) {
+                contractInfo = ((WebserviceContractPublisher)contractPublisher).getContractInfo(epr, request);
+            } else {
+                contractInfo = contractPublisher.getContractInfo(epr);
+            }
+            break;
+        }
+
+        if (contractInfo != null && contractInfo.getData() != null) {
+            contractData = contractInfo.getData();
+            response.setContentType(contractInfo.getMimeType());
+        } 
+    }
+    
+    if (contractData == null) {
+        contractData = "<Unavailable/>";
+        response.setContentType("text/xml");
+    }
+%><%= contractData %>
\ No newline at end of file




More information about the jboss-svn-commits mailing list