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: [email protected]
For additional commands, e-mail: [email protected]