Author: dkulp
Date: Tue Aug 17 17:20:49 2010
New Revision: 986402

URL: http://svn.apache.org/viewvc?rev=986402&view=rev
Log:
[CXF-2945] Support the publish=false use case on jaxws:endpoint
Patch from Eric Pederson applied

Modified:
    
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
    
cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
    
cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/endpoints.xml

Modified: 
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java?rev=986402&r1=986401&r2=986402&view=diff
==============================================================================
--- 
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
 (original)
+++ 
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
 Tue Aug 17 17:20:49 2010
@@ -80,6 +80,7 @@ public class EndpointDefinitionParser ex
     @Override
     protected void doParse(Element element, ParserContext ctx, 
BeanDefinitionBuilder bean) {
         boolean isAbstract = false;
+        boolean publish = true;
         NamedNodeMap atts = element.getAttributes();
         String bus = element.getAttribute("bus");
         if (StringUtils.isEmpty(bus)) {
@@ -110,6 +111,8 @@ public class EndpointDefinitionParser ex
             } else if ("abstract".equals(name)) {
                 bean.setAbstract(true);
                 isAbstract = true;
+            } else if ("publish".equals(name)) {
+                publish = "true".equals(val);
             }
         }
         
@@ -136,7 +139,9 @@ public class EndpointDefinitionParser ex
             elem = DOMUtils.getNextElement(elem);
         }
         if (!isAbstract) {
-            bean.setInitMethodName("publish");
+            if (publish) {
+                bean.setInitMethodName("publish");
+            }
             bean.setDestroyMethodName("stop");
         }
         // We don't want to delay the registration of our Server

Modified: 
cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java?rev=986402&r1=986401&r2=986402&view=diff
==============================================================================
--- 
cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
 (original)
+++ 
cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
 Tue Aug 17 17:20:49 2010
@@ -163,6 +163,9 @@ public class SpringBeansTest extends Ass
         }
         assertTrue("Could not find server factory with autogenerated id", 
found);
 
+        ep = getEndpointImplBean("unpublishedEndpoint", ctx);
+        assertFalse("Unpublished endpoint is published", ep.isPublished());
+
         testInterceptors(ctx);
     }
 

Modified: 
cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/endpoints.xml
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/endpoints.xml?rev=986402&r1=986401&r2=986402&view=diff
==============================================================================
--- 
cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/endpoints.xml
 (original)
+++ 
cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/endpoints.xml
 Tue Aug 17 17:20:49 2010
@@ -141,4 +141,9 @@ http://cxf.apache.org/jaxws http://cxf.a
     implementor="#greeter"
     address="http://localhost:8080/publishedEndpointUrl";
     publishedEndpointUrl="http://cxf.apache.org/Greeter"/>
+
+  <jaxws:endpoint id="unpublishedEndpoint"
+    implementor="#greeter"
+    address="http://localhost:8080/unpublished";
+    publish="false"/>
 </beans>


Reply via email to