Author: markt Date: Mon Sep 7 18:58:51 2015 New Revision: 1701666 URL: http://svn.apache.org/r1701666 Log: Make the vendor constants accessible to Coyote in preparation for the fix for BZ 58275.
Added: tomcat/trunk/java/org/apache/tomcat/util/compat/ tomcat/trunk/java/org/apache/tomcat/util/compat/JreVendor.java (with props) Modified: tomcat/trunk/java/org/apache/catalina/Globals.java tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoaderBase.java Modified: tomcat/trunk/java/org/apache/catalina/Globals.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Globals.java?rev=1701666&r1=1701665&r2=1701666&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/Globals.java (original) +++ tomcat/trunk/java/org/apache/catalina/Globals.java Mon Sep 7 18:58:51 2015 @@ -16,7 +16,7 @@ */ package org.apache.catalina; -import java.util.Locale; +import org.apache.tomcat.util.compat.JreVendor; /** * Global constants that are applicable to multiple packages within Catalina. @@ -274,30 +274,9 @@ public final class Globals { public static final String JASPER_XML_BLOCK_EXTERNAL_INIT_PARAM = "org.apache.jasper.XML_BLOCK_EXTERNAL"; - static { - /** - * There are a few places where Tomcat either accesses JVM internals - * (e.g. the memory leak protection) or where feature support varies - * between JVMs (e.g. SPNEGO). These flags exist to enable Tomcat to - * adjust its behaviour based on the vendor of the JVM. In an ideal - * world this code would not exist. - */ - String vendor = System.getProperty("java.vendor", ""); - vendor = vendor.toLowerCase(Locale.ENGLISH); - - if (vendor.startsWith("oracle") || vendor.startsWith("sun")) { - IS_ORACLE_JVM = true; - IS_IBM_JVM = false; - } else if (vendor.contains("ibm")) { - IS_ORACLE_JVM = false; - IS_IBM_JVM = true; - } else { - IS_ORACLE_JVM = false; - IS_IBM_JVM = false; - } - } + @Deprecated // Will be removed in Tomcat 9.0.x + public static final boolean IS_ORACLE_JVM = JreVendor.IS_ORACLE_JVM; - public static final boolean IS_ORACLE_JVM; - - public static final boolean IS_IBM_JVM; + @Deprecated // Will be removed in Tomcat 9.0.x + public static final boolean IS_IBM_JVM = JreVendor.IS_IBM_JVM; } Modified: tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java?rev=1701666&r1=1701665&r2=1701666&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java (original) +++ tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java Mon Sep 7 18:58:51 2015 @@ -30,7 +30,6 @@ import javax.security.auth.login.LoginCo import javax.security.auth.login.LoginException; import javax.servlet.http.HttpServletResponse; -import org.apache.catalina.Globals; import org.apache.catalina.LifecycleException; import org.apache.catalina.Realm; import org.apache.catalina.connector.Request; @@ -39,6 +38,7 @@ import org.apache.juli.logging.LogFactor import org.apache.tomcat.util.buf.ByteChunk; import org.apache.tomcat.util.buf.MessageBytes; import org.apache.tomcat.util.codec.binary.Base64; +import org.apache.tomcat.util.compat.JreVendor; import org.ietf.jgss.GSSContext; import org.ietf.jgss.GSSCredential; import org.ietf.jgss.GSSException; @@ -210,7 +210,7 @@ public class SpnegoAuthenticator extends final GSSManager manager = GSSManager.getInstance(); // IBM JDK only understands indefinite lifetime final int credentialLifetime; - if (Globals.IS_IBM_JVM) { + if (JreVendor.IS_IBM_JVM) { credentialLifetime = GSSCredential.INDEFINITE_LIFETIME; } else { credentialLifetime = GSSCredential.DEFAULT_LIFETIME; Modified: tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java?rev=1701666&r1=1701665&r2=1701666&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java Mon Sep 7 18:58:51 2015 @@ -30,13 +30,13 @@ import javax.imageio.ImageIO; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; -import org.apache.catalina.Globals; import org.apache.catalina.Lifecycle; import org.apache.catalina.LifecycleEvent; import org.apache.catalina.LifecycleListener; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.ExceptionUtils; +import org.apache.tomcat.util.compat.JreVendor; import org.apache.tomcat.util.res.StringManager; /** @@ -310,7 +310,7 @@ public class JreMemoryLeakPreventionList new Class[] {long.class}); method.invoke(null, Long.valueOf(Long.MAX_VALUE - 1)); } catch (ClassNotFoundException e) { - if (Globals.IS_ORACLE_JVM) { + if (JreVendor.IS_ORACLE_JVM) { log.error(sm.getString( "jreLeakListener.gcDaemonFail"), e); } else { @@ -442,7 +442,7 @@ public class JreMemoryLeakPreventionList try { Class.forName("com.sun.jndi.ldap.LdapPoolManager"); } catch (ClassNotFoundException e) { - if (Globals.IS_ORACLE_JVM) { + if (JreVendor.IS_ORACLE_JVM) { log.error(sm.getString( "jreLeakListener.ldapPoolManagerFail"), e); } else { Modified: tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoaderBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoaderBase.java?rev=1701666&r1=1701665&r2=1701666&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoaderBase.java (original) +++ tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoaderBase.java Mon Sep 7 18:58:51 2015 @@ -80,6 +80,7 @@ import org.apache.juli.logging.LogFactor import org.apache.tomcat.InstrumentableClassLoader; import org.apache.tomcat.util.ExceptionUtils; import org.apache.tomcat.util.IntrospectionUtils; +import org.apache.tomcat.util.compat.JreVendor; import org.apache.tomcat.util.res.StringManager; /** @@ -2388,7 +2389,7 @@ public abstract class WebappClassLoaderB "webappClassLoader.clearReferencesResourceBundlesFail", getContextName()), e); } catch (NoSuchFieldException e) { - if (Globals.IS_ORACLE_JVM) { + if (JreVendor.IS_ORACLE_JVM) { log.warn(sm.getString( "webappClassLoader.clearReferencesResourceBundlesFail", getContextName()), e); Added: tomcat/trunk/java/org/apache/tomcat/util/compat/JreVendor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/compat/JreVendor.java?rev=1701666&view=auto ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/compat/JreVendor.java (added) +++ tomcat/trunk/java/org/apache/tomcat/util/compat/JreVendor.java Mon Sep 7 18:58:51 2015 @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.tomcat.util.compat; + +import java.util.Locale; + +public class JreVendor { + + static { + /** + * There are a few places where Tomcat either accesses JVM internals + * (e.g. the memory leak protection) or where feature support varies + * between JVMs (e.g. SPNEGO). These flags exist to enable Tomcat to + * adjust its behaviour based on the vendor of the JVM. In an ideal + * world this code would not exist. + */ + String vendor = System.getProperty("java.vendor", ""); + vendor = vendor.toLowerCase(Locale.ENGLISH); + + if (vendor.startsWith("oracle") || vendor.startsWith("sun")) { + IS_ORACLE_JVM = true; + IS_IBM_JVM = false; + } else if (vendor.contains("ibm")) { + IS_ORACLE_JVM = false; + IS_IBM_JVM = true; + } else { + IS_ORACLE_JVM = false; + IS_IBM_JVM = false; + } + } + + public static final boolean IS_ORACLE_JVM; + + public static final boolean IS_IBM_JVM; +} Propchange: tomcat/trunk/java/org/apache/tomcat/util/compat/JreVendor.java ------------------------------------------------------------------------------ svn:eol-style = native --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org