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

Reply via email to