You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by eg...@apache.org on 2007/05/18 15:09:20 UTC

svn commit: r539451 - in /incubator/cxf/trunk: api/src/main/java/org/apache/cxf/endpoint/ rt/core/src/main/java/org/apache/cxf/endpoint/ rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/ systests/src...

Author: eglynn
Date: Fri May 18 06:09:19 2007
New Revision: 539451

URL: http://svn.apache.org/viewvc?view=rev&rev=539451
Log:
Added Endpoint.getActiveFeatures().


Modified:
    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/AbstractConduitSelector.java
    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java
    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/NullConduitSelector.java
    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/PreexistingConduitSelector.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java
    incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java
    incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/WrappedEndpoint.java
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/clustering/Server.java

Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/AbstractConduitSelector.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/AbstractConduitSelector.java?view=diff&rev=539451&r1=539450&r2=539451
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/AbstractConduitSelector.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/AbstractConduitSelector.java Fri May 18 06:09:19 2007
@@ -102,7 +102,7 @@
     }
 
     /**
-     * @param endpoint the endpoint to encapsulate
+     * @param ep the endpoint to encapsulate
      */
     public void setEndpoint(Endpoint ep) {
         endpoint = ep;

Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java?view=diff&rev=539451&r1=539450&r2=539451
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java Fri May 18 06:09:19 2007
@@ -19,10 +19,12 @@
 
 package org.apache.cxf.endpoint;
 
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Executor;
 
 import org.apache.cxf.binding.Binding;
+import org.apache.cxf.feature.AbstractFeature;
 import org.apache.cxf.interceptor.InterceptorProvider;
 import org.apache.cxf.service.Service;
 import org.apache.cxf.service.model.EndpointInfo;
@@ -52,4 +54,5 @@
     
     void setOutFaultObserver(MessageObserver observer);
 
+    List<AbstractFeature> getActiveFeatures();
 }

Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/NullConduitSelector.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/NullConduitSelector.java?view=diff&rev=539451&r1=539450&r2=539451
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/NullConduitSelector.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/NullConduitSelector.java Fri May 18 06:09:19 2007
@@ -69,7 +69,7 @@
     }
 
     /**
-     * @param endpoint the endpoint to encapsulate
+     * @param ep the endpoint to encapsulate
      */
     public void setEndpoint(Endpoint ep) {
         endpoint = ep;

Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/PreexistingConduitSelector.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/PreexistingConduitSelector.java?view=diff&rev=539451&r1=539450&r2=539451
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/PreexistingConduitSelector.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/PreexistingConduitSelector.java Fri May 18 06:09:19 2007
@@ -95,7 +95,7 @@
     }
 
     /**
-     * @param endpoint the endpoint to encapsulate
+     * @param ep the endpoint to encapsulate
      */
     public void setEndpoint(Endpoint ep) {
         endpoint = ep;

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java?view=diff&rev=539451&r1=539450&r2=539451
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java Fri May 18 06:09:19 2007
@@ -19,6 +19,7 @@
 
 package org.apache.cxf.endpoint;
 
+import java.util.List;
 import java.util.Map;
 import java.util.ResourceBundle;
 import java.util.concurrent.Executor;
@@ -35,6 +36,7 @@
 import org.apache.cxf.common.i18n.Message;
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.configuration.Configurable;
+import org.apache.cxf.feature.AbstractFeature;
 import org.apache.cxf.interceptor.AbstractAttributedInterceptorProvider;
 import org.apache.cxf.interceptor.InFaultChainInitiatorObserver;
 import org.apache.cxf.interceptor.MessageSenderInterceptor;
@@ -56,6 +58,7 @@
     private Bus bus;
     private MessageObserver inFaultObserver;
     private MessageObserver outFaultObserver;
+    private List<AbstractFeature> activeFeatures;
 
     public EndpointImpl(Bus bus, Service s, QName endpointName) throws EndpointException {
         this(bus, s, s.getEndpointInfo(endpointName));
@@ -160,4 +163,17 @@
         this.putAll(properties);
     }
     
+    /**
+     * @return the list of fearures <b>already</b> activated for this endpoint.
+     */
+    public List<AbstractFeature> getActiveFeatures() {
+        return activeFeatures;
+    }
+
+    /**
+     * @param the list of fearures <b>already</b> activated for this endpoint.
+     */
+    public void initializeActiveFeatures(List<AbstractFeature> features) {
+        activeFeatures = features;
+    }
 }

Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java?view=diff&rev=539451&r1=539450&r2=539451
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java (original)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java Fri May 18 06:09:19 2007
@@ -39,6 +39,7 @@
 import org.apache.cxf.endpoint.ConduitSelector;
 import org.apache.cxf.endpoint.Endpoint;
 import org.apache.cxf.endpoint.EndpointException;
+import org.apache.cxf.endpoint.EndpointImpl;
 import org.apache.cxf.feature.AbstractFeature;
 import org.apache.cxf.interceptor.AbstractBasicInterceptorProvider;
 import org.apache.cxf.service.Service;
@@ -114,6 +115,7 @@
         
         if (ep == null) {
             ep = serviceFactory.createEndpoint(ei);
+            ((EndpointImpl)ep).initializeActiveFeatures(getFeatures());
         }
         
         if (properties != null) {

Modified: incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/WrappedEndpoint.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/WrappedEndpoint.java?view=diff&rev=539451&r1=539450&r2=539451
==============================================================================
--- incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/WrappedEndpoint.java (original)
+++ incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/WrappedEndpoint.java Fri May 18 06:09:19 2007
@@ -27,6 +27,7 @@
 
 import org.apache.cxf.binding.Binding;
 import org.apache.cxf.endpoint.Endpoint;
+import org.apache.cxf.feature.AbstractFeature;
 import org.apache.cxf.interceptor.Interceptor;
 import org.apache.cxf.service.Service;
 import org.apache.cxf.service.model.EndpointInfo;
@@ -148,4 +149,10 @@
         return wrappedEndpoint.values();
     }
     
+    /**
+     * @return the list of fearures <b>already</b> activated for this endpoint.
+     */
+    public List<AbstractFeature> getActiveFeatures() {
+        return wrappedEndpoint.getActiveFeatures();
+    }
 }

Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/clustering/Server.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/clustering/Server.java?view=diff&rev=539451&r1=539450&r2=539451
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/clustering/Server.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/clustering/Server.java Fri May 18 06:09:19 2007
@@ -20,12 +20,20 @@
 package org.apache.cxf.systest.clustering;
 
 
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
 import javax.xml.ws.Endpoint;
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusFactory;
 import org.apache.cxf.bus.spring.SpringBusFactory;
+import org.apache.cxf.endpoint.ServerLifeCycleListener;
+import org.apache.cxf.endpoint.ServerLifeCycleManager;
+import org.apache.cxf.feature.AbstractFeature;
 import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
+import org.apache.cxf.ws.addressing.WSAddressingFeature;
 
 public class Server extends AbstractBusTestServerBase {
    
@@ -33,7 +41,10 @@
         "http://localhost:9001/SoapContext/ControlPort";
     private static final String TARGETS_CONFIG =
         "org/apache/cxf/systest/clustering/targets.xml";
+
     
+    private String verified;
+
     protected void run()  {
 
         SpringBusFactory factory = new SpringBusFactory();
@@ -41,6 +52,36 @@
         BusFactory.setDefaultBus(bus);
         setBus(bus);
 
+        ServerLifeCycleManager manager =
+            bus.getExtension(ServerLifeCycleManager.class);
+        if (manager != null) {
+            manager.registerListener(new ServerLifeCycleListener() {
+                public void startServer(org.apache.cxf.endpoint.Server server) {
+                    org.apache.cxf.endpoint.Endpoint endpoint
+                        = server.getEndpoint();
+                    String portName =
+                        endpoint.getEndpointInfo().getName().getLocalPart();
+                    if ("ReplicatedPortA".equals(portName)) {
+                        
+                        List<AbstractFeature> active = endpoint.getActiveFeatures();
+                        if (!(active.size() == 1
+                              && active.get(0) instanceof WSAddressingFeature)) {
+                            verified = "unexpected active features: " + active;
+                        }
+                    } else {
+                        List<AbstractFeature> active = endpoint.getActiveFeatures();
+                        if (!(active == null || active.size() == 0)) {
+                            verified = "unexpected active features: " + active;
+                        }                        
+                    }
+                }
+                public void stopServer(org.apache.cxf.endpoint.Server server) {
+                }                
+            });
+        } else {
+            verified = "cannot access ServerLifeCycleManager";
+        }
+
         ControlImpl implementor = new ControlImpl();
         Endpoint.publish(ADDRESS, implementor);
     }
@@ -56,5 +97,19 @@
             System.out.println("done!");
         }
     }
-
+    
+    /**
+     * Used to facilitate assertions on server-side behaviour.
+     *
+     * @param log logger to use for diagnostics if assertions fail
+     * @return true if assertions hold
+     */
+    protected boolean verify(Logger log) {
+        if (verified != null) {
+            log.log(Level.WARNING, 
+                    "Active Feature verification failed: {0}",
+                    verified);
+        }
+        return verified == null;
+    }
 }