Author: ffang
Date: Fri Jun 25 02:58:09 2010
New Revision: 957789
URL: http://svn.apache.org/viewvc?rev=957789&view=rev
Log:
[SMXCOMP-30]Want to be able to see all the web services exposed by cxf-bc, in a
browser.
Modified:
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcConsumer.java
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/ListServiceHandler.java
Modified:
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcConsumer.java
URL:
http://svn.apache.org/viewvc/servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcConsumer.java?rev=957789&r1=957788&r2=957789&view=diff
==============================================================================
---
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcConsumer.java
(original)
+++
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcConsumer.java
Fri Jun 25 02:58:09 2010
@@ -65,7 +65,6 @@ import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.endpoint.EndpointImpl;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.endpoint.ServerImpl;
-import org.apache.cxf.endpoint.ServerRegistry;
import org.apache.cxf.feature.AbstractFeature;
import org.apache.cxf.helpers.DOMUtils;
import org.apache.cxf.interceptor.AttachmentInInterceptor;
@@ -372,7 +371,7 @@ public class CxfBcConsumer extends Consu
handlers = new ArrayList<Handler>();
jettyEng.setHandlers(handlers);
}
- handlers.add(new
ListServiceHandler(getBus().getExtension(ServerRegistry.class)));
+ handlers.add(new ListServiceHandler(((CxfBcComponent)
getServiceUnit().getComponent()).getAllBuses()));
}
}
Modified:
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/ListServiceHandler.java
URL:
http://svn.apache.org/viewvc/servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/ListServiceHandler.java?rev=957789&r1=957788&r2=957789&view=diff
==============================================================================
---
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/ListServiceHandler.java
(original)
+++
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/ListServiceHandler.java
Fri Jun 25 02:58:09 2010
@@ -18,13 +18,16 @@ package org.apache.servicemix.cxfbc;
import java.io.IOException;
import java.io.OutputStream;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.cxf.Bus;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.endpoint.ServerRegistry;
import org.apache.cxf.transport.http_jetty.JettyHTTPDestination;
@@ -38,10 +41,10 @@ import org.mortbay.util.StringUtil;
public class ListServiceHandler extends AbstractHandler {
- private ServerRegistry serverRegistry;
+ private Map<String, Bus> allBuses;
- public ListServiceHandler(ServerRegistry serRegistry) {
- this.serverRegistry = serRegistry;
+ public ListServiceHandler(Map<String, Bus> allBuses) {
+ this.allBuses = allBuses;
}
public void handle(String target, HttpServletRequest request,
@@ -74,8 +77,12 @@ public class ListServiceHandler extends
writer.write("No service matched or handled this request.<BR>");
writer.write("Known services on cxf bc component are: <ul>");
- List<Server> servers = serverRegistry.getServers();
- for (Iterator iter = servers.iterator(); iter.hasNext();) {
+ List<Server> servers = new ArrayList<Server>();
+ for (Bus bus : allBuses.values()) {
+ ServerRegistry serverRegistry =
bus.getExtension(ServerRegistry.class);
+ servers.addAll(serverRegistry.getServers());
+ }
+ for (Iterator<Server> iter = servers.iterator(); iter.hasNext();) {
Server server = (Server) iter.next();
JettyHTTPDestination jhd =
(JettyHTTPDestination)server.getDestination();
String address = jhd.getAddress().getAddress().getValue();