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());