ws-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Kulp <dk...@apache.org>
Subject [Neethi] More updates, much easier to port from 2 -> 3
Date Fri, 18 Feb 2011 04:34:07 GMT

I just committed a bunch more updates to Neethi that cleanup a few things, but 
also will end up making it much easier to port from Neeth 2 to 3. 

1) I renamed PolicyEngine to PolicyBuilder.  It really is just a Policy 
builder.   CXF and Axis (and others) really have the "engine" for asserting 
the policies and such, thus the rename kind of makes sense.

2) With that renamed, I re-created the PolicyEngine with all the static 
methods.  It just wrappers a static instance of PolicyBuilder.    I'd LIKE to 
mark PolicyEngine as Deprecated as it's definitely better to not use the 
statics, but I'm also OK just leaving it.

3) I also changed the return of getAlternatives to match what the javadoc said 
which also matches what Axis is casting it to.  (simplified some CXF code as 
well)


The result is that it's now pretty easy to update from 2.x to 3.x.   The 
changes required really are just:

1) Anything that implements AssertionBuilder will neet to be updated to 
implement AssertionBuilder<OMElement>.   Fairly simple.

2) All policies will need to have a "boolean isIgnorable()" method added.  You 
can just add a default method that returns false to keep the old behavior.   
However, you could also update the builders to record the ignorable flag 
properly so the intersections would work.

I've included a patch below that would update the axis2 trunk.   Obviously, 
things like Rampart would be more involved, but it does show how simple it is. 

Once again, I'd appreciate anyone else looking at it and any thoughts folks 
may have.

-- 
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog





Index: modules/parent/pom.xml
===================================================================
--- modules/parent/pom.xml	(revision 1071847)
+++ modules/parent/pom.xml	(working copy)
@@ -69,7 +69,7 @@
 	<!-- Tracking SNAPSHOT(s) of a few projects -->
         <axiom.version>1.2.12-SNAPSHOT</axiom.version>
         <!--TODO: fix the compatibility issues with the Neethi trunk and 
bring back to 3.0.0-SNAPSHOT-->
-        <neethi.version>2.0.4</neethi.version>
+        <neethi.version>3.0.0-SNAPSHOT</neethi.version>
         <woden.version>1.0-SNAPSHOT</woden.version>
 
 	<!-- Use released versions for these projects -->
Index: 
modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaMethodsToMDCConverter.java
===================================================================
--- 
modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaMethodsToMDCConverter.java

(revision 1071847)
+++ 
modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaMethodsToMDCConverter.java

(working copy)
@@ -28,7 +28,6 @@
 import org.apache.axis2.jaxws.description.builder.WebEndpointAnnot;
 import org.apache.axis2.jaxws.description.builder.WebMethodAnnot;
 import org.apache.axis2.jaxws.description.builder.WebResultAnnot;
-import sun.reflect.generics.reflectiveObjects.GenericArrayTypeImpl;
 
 import javax.jws.Oneway;
 import javax.jws.WebMethod;
@@ -39,6 +38,7 @@
 import javax.xml.ws.ResponseWrapper;
 import javax.xml.ws.WebEndpoint;
 import java.lang.reflect.Constructor;
+import java.lang.reflect.GenericArrayType;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.lang.reflect.ParameterizedType;
@@ -347,7 +347,7 @@
             mdc.setReturnType(fullType);
         } else if (type instanceof Class) {
             mdc.setReturnType(((Class)type).getName());
-        } else if (type instanceof GenericArrayTypeImpl) {
+        } else if (type instanceof GenericArrayType) {
             mdc.setReturnType(type.getClass().getName());
         }
     }
Index: modules/mtompolicy/src/org/apache/axis2/policy/model/MTOMAssertion.java
===================================================================
--- modules/mtompolicy/src/org/apache/axis2/policy/model/MTOMAssertion.java	
(revision 1071847)
+++ modules/mtompolicy/src/org/apache/axis2/policy/model/MTOMAssertion.java	
(working copy)
@@ -52,5 +52,10 @@
         this.optional = isOptional;
     }
 
+    
+    public boolean isIgnorable() {
+        return false;
+    }
+
 }
 	
\ No newline at end of file
Index: 
modules/mtompolicy/src/org/apache/axis2/policy/builders/MTOM10AssertionBuilder.java
===================================================================
--- 
modules/mtompolicy/src/org/apache/axis2/policy/builders/MTOM10AssertionBuilder.java	
(revision 1071847)
+++ 
modules/mtompolicy/src/org/apache/axis2/policy/builders/MTOM10AssertionBuilder.java	
(working copy)
@@ -43,7 +43,7 @@
  * The builder will be picked by the
  * "org.apache.neethi.AssertionBuilderFactory".
  */
-public class MTOM10AssertionBuilder implements AssertionBuilder {
+public class MTOM10AssertionBuilder implements AssertionBuilder<OMElement> {
 
     private static Log log = LogFactory.getLog(MTOM10AssertionBuilder.class);
 
Index: 
modules/mtompolicy/src/org/apache/axis2/policy/builders/MTOM11AssertionBuilder.java
===================================================================
--- 
modules/mtompolicy/src/org/apache/axis2/policy/builders/MTOM11AssertionBuilder.java	
(revision 1071847)
+++ 
modules/mtompolicy/src/org/apache/axis2/policy/builders/MTOM11AssertionBuilder.java	
(working copy)
@@ -39,7 +39,7 @@
  * "org.apache.neethi.AssertionBuilderFactory".
  */
 
-public class MTOM11AssertionBuilder implements AssertionBuilder{
+public class MTOM11AssertionBuilder implements AssertionBuilder<OMElement> {
     
     private static Log log = LogFactory.getLog(MTOM10AssertionBuilder.class);
 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ws.apache.org
For additional commands, e-mail: dev-help@ws.apache.org


Mime
View raw message