You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/10/25 13:08:27 UTC

svn commit: r1535684 - in /tomee/tomee/trunk/server/openejb-webservices/src: main/java/org/apache/openejb/server/webservices/saaj/ test/java/org/apache/openejb/server/webservices/saaj/

Author: rmannibucau
Date: Fri Oct 25 11:08:26 2013
New Revision: 1535684

URL: http://svn.apache.org/r1535684
Log:
using sun default soap*factories + using sun as default provider if using our factories. We saw with jlmonteiro it can help a lot under some conditions when security is on.

Modified:
    tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajFactoryFinder.java
    tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajUniverse.java
    tomee/tomee/trunk/server/openejb-webservices/src/test/java/org/apache/openejb/server/webservices/saaj/SaajUniverseTest.java

Modified: tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajFactoryFinder.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajFactoryFinder.java?rev=1535684&r1=1535683&r2=1535684&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajFactoryFinder.java (original)
+++ tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajFactoryFinder.java Fri Oct 25 11:08:26 2013
@@ -53,17 +53,23 @@ class SaajFactoryFinder {
     }
 
     private static void initDefaultSAAJProvider() {
-        final String provider = SystemInstance.get().getOptions().get(SAAJ_PROVIDER_PROPERTY, (String) null);
+        final String provider = SystemInstance.get().getOptions().get(SAAJ_PROVIDER_PROPERTY, "sun"); // sun is the best default we can get + can impact perfs a lot
         if (provider != null) {
             if (provider.equalsIgnoreCase("axis2")) {
                 DEFAULT_SAAJ_UNIVERSE = SaajUniverse.Type.AXIS2;
             } else if (provider.equalsIgnoreCase("sun")) {
                 DEFAULT_SAAJ_UNIVERSE = SaajUniverse.Type.SUN;
+            } else if (provider.equalsIgnoreCase("default")) {
+                DEFAULT_SAAJ_UNIVERSE = null;
             } else {
                 throw new ServerRuntimeException("Invalid SAAJ universe specified: " + provider);
             }
 
-            logger.info("Default SAAJ universe: " + DEFAULT_SAAJ_UNIVERSE);
+            if (DEFAULT_SAAJ_UNIVERSE != null) {
+                logger.info("Default SAAJ universe: " + DEFAULT_SAAJ_UNIVERSE);
+            } else {
+                logger.info("Default SAAJ universe not set");
+            }
         } else {
             logger.info("Default SAAJ universe not set");
         }

Modified: tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajUniverse.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajUniverse.java?rev=1535684&r1=1535683&r2=1535684&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajUniverse.java (original)
+++ tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajUniverse.java Fri Oct 25 11:08:26 2013
@@ -16,6 +16,7 @@
  */
 package org.apache.openejb.server.webservices.saaj;
 
+import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 
@@ -25,10 +26,12 @@ public class SaajUniverse {
     private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_WS, SaajUniverse.class);
     
     static {
-        setProperty("javax.xml.soap.MessageFactory", "org.apache.openejb.server.webservices.saaj.MessageFactoryImpl");
-        setProperty("javax.xml.soap.SOAPFactory", "org.apache.openejb.server.webservices.saaj.SoapFactoryImpl");
-        setProperty("javax.xml.soap.SOAPConnectionFactory", "org.apache.openejb.server.webservices.saaj.SoapConnectionFactoryImpl");
-        setProperty("javax.xml.soap.MetaFactory", "org.apache.openejb.server.webservices.saaj.SaajMetaFactoryImpl");
+        if (SystemInstance.get().getOptions().get("openejb.soap.override-factory", false)) { // default are far faster than our chain
+            setProperty("javax.xml.soap.MessageFactory", "org.apache.openejb.server.webservices.saaj.MessageFactoryImpl");
+            setProperty("javax.xml.soap.SOAPFactory", "org.apache.openejb.server.webservices.saaj.SoapFactoryImpl");
+            setProperty("javax.xml.soap.SOAPConnectionFactory", "org.apache.openejb.server.webservices.saaj.SoapConnectionFactoryImpl");
+            setProperty("javax.xml.soap.MetaFactory", "org.apache.openejb.server.webservices.saaj.SaajMetaFactoryImpl");
+        }
     }
 
     private static void setProperty(String name, String value) {

Modified: tomee/tomee/trunk/server/openejb-webservices/src/test/java/org/apache/openejb/server/webservices/saaj/SaajUniverseTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-webservices/src/test/java/org/apache/openejb/server/webservices/saaj/SaajUniverseTest.java?rev=1535684&r1=1535683&r2=1535684&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-webservices/src/test/java/org/apache/openejb/server/webservices/saaj/SaajUniverseTest.java (original)
+++ tomee/tomee/trunk/server/openejb-webservices/src/test/java/org/apache/openejb/server/webservices/saaj/SaajUniverseTest.java Fri Oct 25 11:08:26 2013
@@ -27,6 +27,16 @@ public class SaajUniverseTest extends Te
 
     private static final String DEFAULT_MESSAGE_CLASS = SUN_MESSAGE_CLASS;
 
+    @Override
+    public void setUp() {
+        System.setProperty("openejb.soap.override-factory", "true");
+    }
+
+    @Override
+    public void tearDown() {
+        System.clearProperty("openejb.soap.override-factory");
+    }
+
     public void testBasic() throws Exception {
         // case 1, universe not set
         //assertEquals(DEFAULT_MESSAGE_CLASS, MessageFactory.newInstance().createMessage().getClass().getName());