Return-Path: Delivered-To: apmail-incubator-cxf-commits-archive@locus.apache.org Received: (qmail 2400 invoked from network); 18 May 2007 13:09:42 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 18 May 2007 13:09:42 -0000 Received: (qmail 28271 invoked by uid 500); 18 May 2007 13:09:48 -0000 Delivered-To: apmail-incubator-cxf-commits-archive@incubator.apache.org Received: (qmail 28230 invoked by uid 500); 18 May 2007 13:09:47 -0000 Mailing-List: contact cxf-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cxf-dev@incubator.apache.org Delivered-To: mailing list cxf-commits@incubator.apache.org Received: (qmail 28217 invoked by uid 99); 18 May 2007 13:09:47 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 18 May 2007 06:09:47 -0700 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 18 May 2007 06:09:40 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id D03F11A981A; Fri, 18 May 2007 06:09:20 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: 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... Date: Fri, 18 May 2007 13:09:20 -0000 To: cxf-commits@incubator.apache.org From: eglynn@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070518130920.D03F11A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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 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 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 already activated for this endpoint. + */ + public List getActiveFeatures() { + return activeFeatures; + } + + /** + * @param the list of fearures already activated for this endpoint. + */ + public void initializeActiveFeatures(List 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 already activated for this endpoint. + */ + public List 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 active = endpoint.getActiveFeatures(); + if (!(active.size() == 1 + && active.get(0) instanceof WSAddressingFeature)) { + verified = "unexpected active features: " + active; + } + } else { + List 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; + } }