You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2022/10/19 13:32:06 UTC
[tomcat] 03/08: Remove deprecated code - follow-up to JSP 4.0 changes
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit f5977377e738ae03954f01cd2e7568c31d722d5b
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Oct 19 11:59:29 2022 +0100
Remove deprecated code - follow-up to JSP 4.0 changes
---
java/org/apache/jasper/el/ELResolverImpl.java | 126 ---------------------
.../apache/jasper/el/ExpressionEvaluatorImpl.java | 62 ----------
java/org/apache/jasper/el/ExpressionImpl.java | 44 -------
java/org/apache/jasper/el/FunctionMapperImpl.java | 37 ------
.../org/apache/jasper/el/VariableResolverImpl.java | 37 ------
.../apache/jasper/runtime/JspContextWrapper.java | 28 +----
.../org/apache/jasper/runtime/PageContextImpl.java | 23 +---
.../jasper/runtime/ProtectedFunctionMapper.java | 6 +-
test/jakarta/servlet/jsp/TesterPageContext.java | 15 ---
9 files changed, 3 insertions(+), 375 deletions(-)
diff --git a/java/org/apache/jasper/el/ELResolverImpl.java b/java/org/apache/jasper/el/ELResolverImpl.java
deleted file mode 100644
index e2c389f30f..0000000000
--- a/java/org/apache/jasper/el/ELResolverImpl.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * 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.jasper.el;
-
-import java.util.Iterator;
-import java.util.Objects;
-
-import jakarta.el.ELContext;
-import jakarta.el.ELException;
-import jakarta.el.ELResolver;
-import jakarta.el.ExpressionFactory;
-import jakarta.el.PropertyNotWritableException;
-import jakarta.servlet.jsp.el.VariableResolver;
-
-@Deprecated
-public final class ELResolverImpl extends ELResolver {
-
- private final VariableResolver variableResolver;
- private final ELResolver elResolver;
-
- public ELResolverImpl(VariableResolver variableResolver,
- ExpressionFactory factory) {
- this.variableResolver = variableResolver;
- this.elResolver = ELContextImpl.getDefaultResolver(factory);
- }
-
- @Override
- public Object getValue(ELContext context, Object base, Object property) {
- Objects.requireNonNull(context);
-
- if (base == null) {
- context.setPropertyResolved(base, property);
- if (property != null) {
- try {
- return this.variableResolver.resolveVariable(property
- .toString());
- } catch (jakarta.servlet.jsp.el.ELException e) {
- throw new ELException(e.getMessage(), e.getCause());
- }
- }
- }
-
- if (!context.isPropertyResolved()) {
- return elResolver.getValue(context, base, property);
- }
- return null;
- }
-
- @Override
- public Class<?> getType(ELContext context, Object base, Object property) {
- Objects.requireNonNull(context);
-
- if (base == null) {
- context.setPropertyResolved(base, property);
- if (property != null) {
- try {
- Object obj = this.variableResolver.resolveVariable(property
- .toString());
- return (obj != null) ? obj.getClass() : null;
- } catch (jakarta.servlet.jsp.el.ELException e) {
- throw new ELException(e.getMessage(), e.getCause());
- }
- }
- }
-
- if (!context.isPropertyResolved()) {
- return elResolver.getType(context, base, property);
- }
- return null;
- }
-
- @Override
- public void setValue(ELContext context, Object base, Object property,
- Object value) {
- Objects.requireNonNull(context);
-
- if (base == null) {
- context.setPropertyResolved(base, property);
- throw new PropertyNotWritableException(
- "Legacy VariableResolver wrapped, not writable");
- }
-
- if (!context.isPropertyResolved()) {
- elResolver.setValue(context, base, property, value);
- }
- }
-
- @Override
- public boolean isReadOnly(ELContext context, Object base, Object property) {
- Objects.requireNonNull(context);
-
- if (base == null) {
- context.setPropertyResolved(base, property);
- return true;
- }
-
- return elResolver.isReadOnly(context, base, property);
- }
-
- @Override
- public Iterator<java.beans.FeatureDescriptor> getFeatureDescriptors(ELContext context, Object base) {
- return elResolver.getFeatureDescriptors(context, base);
- }
-
- @Override
- public Class<?> getCommonPropertyType(ELContext context, Object base) {
- if (base == null) {
- return String.class;
- }
- return elResolver.getCommonPropertyType(context, base);
- }
-}
diff --git a/java/org/apache/jasper/el/ExpressionEvaluatorImpl.java b/java/org/apache/jasper/el/ExpressionEvaluatorImpl.java
deleted file mode 100644
index 0a9aa985ae..0000000000
--- a/java/org/apache/jasper/el/ExpressionEvaluatorImpl.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.jasper.el;
-
-import jakarta.el.ExpressionFactory;
-import jakarta.el.ValueExpression;
-import jakarta.servlet.jsp.el.ELException;
-import jakarta.servlet.jsp.el.ELParseException;
-import jakarta.servlet.jsp.el.Expression;
-import jakarta.servlet.jsp.el.ExpressionEvaluator;
-import jakarta.servlet.jsp.el.FunctionMapper;
-import jakarta.servlet.jsp.el.VariableResolver;
-
-@Deprecated
-public final class ExpressionEvaluatorImpl extends ExpressionEvaluator {
-
- private final ExpressionFactory factory;
-
- public ExpressionEvaluatorImpl(ExpressionFactory factory) {
- this.factory = factory;
- }
-
- @Override
- public Expression parseExpression(String expression,
- @SuppressWarnings("rawtypes") Class expectedType,
- FunctionMapper fMapper) throws ELException {
- try {
- ELContextImpl ctx =
- new ELContextImpl(ELContextImpl.getDefaultResolver(factory));
- if (fMapper != null) {
- ctx.setFunctionMapper(new FunctionMapperImpl(fMapper));
- }
- ValueExpression ve = this.factory.createValueExpression(ctx, expression, expectedType);
- return new ExpressionImpl(ve, factory);
- } catch (jakarta.el.ELException e) {
- throw new ELParseException(e.getMessage());
- }
- }
-
- @Override
- public Object evaluate(String expression,
- @SuppressWarnings("rawtypes") Class expectedType,
- VariableResolver vResolver, FunctionMapper fMapper)
- throws ELException {
- return this.parseExpression(expression, expectedType, fMapper).evaluate(vResolver);
- }
-
-}
diff --git a/java/org/apache/jasper/el/ExpressionImpl.java b/java/org/apache/jasper/el/ExpressionImpl.java
deleted file mode 100644
index cf0e8fe74d..0000000000
--- a/java/org/apache/jasper/el/ExpressionImpl.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.jasper.el;
-
-import jakarta.el.ELContext;
-import jakarta.el.ExpressionFactory;
-import jakarta.el.ValueExpression;
-import jakarta.servlet.jsp.el.ELException;
-import jakarta.servlet.jsp.el.Expression;
-import jakarta.servlet.jsp.el.VariableResolver;
-
-@Deprecated
-public final class ExpressionImpl extends Expression {
-
- private final ValueExpression ve;
- private final ExpressionFactory factory;
-
-
- public ExpressionImpl(ValueExpression ve, ExpressionFactory factory) {
- this.ve = ve;
- this.factory = factory;
- }
-
- @Override
- public Object evaluate(VariableResolver vResolver) throws ELException {
- ELContext ctx =
- new ELContextImpl(new ELResolverImpl(vResolver, factory));
- return ve.getValue(ctx);
- }
-}
diff --git a/java/org/apache/jasper/el/FunctionMapperImpl.java b/java/org/apache/jasper/el/FunctionMapperImpl.java
deleted file mode 100644
index 490d488f24..0000000000
--- a/java/org/apache/jasper/el/FunctionMapperImpl.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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.jasper.el;
-
-import java.lang.reflect.Method;
-
-import jakarta.servlet.jsp.el.FunctionMapper;
-
-@Deprecated
-public final class FunctionMapperImpl extends jakarta.el.FunctionMapper {
-
- private final FunctionMapper fnMapper;
-
- public FunctionMapperImpl(FunctionMapper fnMapper) {
- this.fnMapper = fnMapper;
- }
-
- @Override
- public Method resolveFunction(String prefix, String localName) {
- return this.fnMapper.resolveFunction(prefix, localName);
- }
-
-}
diff --git a/java/org/apache/jasper/el/VariableResolverImpl.java b/java/org/apache/jasper/el/VariableResolverImpl.java
deleted file mode 100644
index 18bd48c89e..0000000000
--- a/java/org/apache/jasper/el/VariableResolverImpl.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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.jasper.el;
-
-import jakarta.el.ELContext;
-import jakarta.servlet.jsp.el.ELException;
-import jakarta.servlet.jsp.el.VariableResolver;
-
-@Deprecated
-public final class VariableResolverImpl implements VariableResolver {
-
- private final ELContext ctx;
-
- public VariableResolverImpl(ELContext ctx) {
- this.ctx = ctx;
- }
-
- @Override
- public Object resolveVariable(String pName) throws ELException {
- return this.ctx.getELResolver().getValue(this.ctx, null, pName);
- }
-
-}
diff --git a/java/org/apache/jasper/runtime/JspContextWrapper.java b/java/org/apache/jasper/runtime/JspContextWrapper.java
index 9601d8161c..205739262d 100644
--- a/java/org/apache/jasper/runtime/JspContextWrapper.java
+++ b/java/org/apache/jasper/runtime/JspContextWrapper.java
@@ -46,10 +46,7 @@ import jakarta.servlet.jsp.JspContext;
import jakarta.servlet.jsp.JspFactory;
import jakarta.servlet.jsp.JspWriter;
import jakarta.servlet.jsp.PageContext;
-import jakarta.servlet.jsp.el.ELException;
-import jakarta.servlet.jsp.el.ExpressionEvaluator;
import jakarta.servlet.jsp.el.NotFoundELResolver;
-import jakarta.servlet.jsp.el.VariableResolver;
import jakarta.servlet.jsp.tagext.BodyContent;
import jakarta.servlet.jsp.tagext.JspTag;
import jakarta.servlet.jsp.tagext.VariableInfo;
@@ -68,8 +65,7 @@ import org.apache.jasper.compiler.Localizer;
* @author Jan Luehe
* @author Jacob Hookom
*/
-@SuppressWarnings("deprecation") // Have to support old JSP EL API
-public class JspContextWrapper extends PageContext implements VariableResolver {
+public class JspContextWrapper extends PageContext{
private final JspTag jspTag;
@@ -338,12 +334,6 @@ public class JspContextWrapper extends PageContext implements VariableResolver {
invokingJspCtxt.include(relativeUrlPath, false);
}
- @Override
- @Deprecated
- public VariableResolver getVariableResolver() {
- return this;
- }
-
@Override
public BodyContent pushBody() {
return invokingJspCtxt.pushBody();
@@ -359,12 +349,6 @@ public class JspContextWrapper extends PageContext implements VariableResolver {
return invokingJspCtxt.popBody();
}
- @Override
- @Deprecated
- public ExpressionEvaluator getExpressionEvaluator() {
- return invokingJspCtxt.getExpressionEvaluator();
- }
-
@Override
public void handlePageException(Exception ex) throws IOException,
ServletException {
@@ -379,16 +363,6 @@ public class JspContextWrapper extends PageContext implements VariableResolver {
invokingJspCtxt.handlePageException(t);
}
- /**
- * VariableResolver interface
- */
- @Override
- @Deprecated
- public Object resolveVariable(String pName) throws ELException {
- ELContext ctx = this.getELContext();
- return ctx.getELResolver().getValue(ctx, null, pName);
- }
-
/**
* Synchronize variables at begin of tag file
*/
diff --git a/java/org/apache/jasper/runtime/PageContextImpl.java b/java/org/apache/jasper/runtime/PageContextImpl.java
index 30476ab09a..d2d7e90692 100644
--- a/java/org/apache/jasper/runtime/PageContextImpl.java
+++ b/java/org/apache/jasper/runtime/PageContextImpl.java
@@ -496,13 +496,6 @@ public class PageContextImpl extends PageContext {
JspRuntimeLibrary.include(request, response, relativeUrlPath, out, flush);
}
- @Override
- @Deprecated
- public jakarta.servlet.jsp.el.VariableResolver getVariableResolver() {
- return new org.apache.jasper.el.VariableResolverImpl(
- this.getELContext());
- }
-
@Override
public void forward(final String relativeUrlPath) throws ServletException, IOException {
// JSP.4.5 If the buffer was flushed, throw IllegalStateException
@@ -574,18 +567,6 @@ public class PageContextImpl extends PageContext {
return out;
}
- /**
- * Provides programmatic access to the ExpressionEvaluator. The JSP
- * Container must return a valid instance of an ExpressionEvaluator that can
- * parse EL expressions.
- */
- @Override
- @Deprecated
- public jakarta.servlet.jsp.el.ExpressionEvaluator getExpressionEvaluator() {
- return new org.apache.jasper.el.ExpressionEvaluatorImpl(
- this.applicationContext.getExpressionFactory());
- }
-
@Override
public void handlePageException(Exception ex) throws IOException,
ServletException {
@@ -595,7 +576,6 @@ public class PageContextImpl extends PageContext {
}
@Override
- @SuppressWarnings("deprecation") // Still have to support old JSP EL
public void handlePageException(final Throwable t) throws IOException, ServletException {
if (t == null) {
throw new NullPointerException(Localizer.getMessage("jsp.error.page.nullThrowable"));
@@ -655,8 +635,7 @@ public class PageContextImpl extends PageContext {
}
Throwable rootCause = null;
- if (t instanceof JspException || t instanceof ELException ||
- t instanceof jakarta.servlet.jsp.el.ELException) {
+ if (t instanceof JspException || t instanceof ELException) {
rootCause = t.getCause();
}
diff --git a/java/org/apache/jasper/runtime/ProtectedFunctionMapper.java b/java/org/apache/jasper/runtime/ProtectedFunctionMapper.java
index 31739b2fb0..0d18844363 100644
--- a/java/org/apache/jasper/runtime/ProtectedFunctionMapper.java
+++ b/java/org/apache/jasper/runtime/ProtectedFunctionMapper.java
@@ -19,8 +19,6 @@ package org.apache.jasper.runtime;
import java.lang.reflect.Method;
import java.util.HashMap;
-import jakarta.servlet.jsp.el.FunctionMapper;
-
/**
* Maps EL functions to their Java method counterparts. Keeps the actual Method
* objects protected so that JSP pages can't indirectly do reflection.
@@ -28,9 +26,7 @@ import jakarta.servlet.jsp.el.FunctionMapper;
* @author Mark Roth
* @author Kin-man Chung
*/
-@SuppressWarnings("deprecation") // Have to support old JSP EL API
-public final class ProtectedFunctionMapper extends jakarta.el.FunctionMapper
- implements FunctionMapper {
+public final class ProtectedFunctionMapper extends jakarta.el.FunctionMapper {
/**
* Maps "prefix:name" to java.lang.Method objects.
diff --git a/test/jakarta/servlet/jsp/TesterPageContext.java b/test/jakarta/servlet/jsp/TesterPageContext.java
index 59814ca097..e9d722a07d 100644
--- a/test/jakarta/servlet/jsp/TesterPageContext.java
+++ b/test/jakarta/servlet/jsp/TesterPageContext.java
@@ -172,24 +172,9 @@ public class TesterPageContext extends PageContext {
return null;
}
- @Override
- @Deprecated
- public jakarta.servlet.jsp.el.ExpressionEvaluator getExpressionEvaluator() {
- // NO-OP
- return null;
- }
-
@Override
public ELContext getELContext() {
// NO-OP
return null;
}
-
- @Override
- @Deprecated
- public jakarta.servlet.jsp.el.VariableResolver getVariableResolver() {
- // NO-OP
- return null;
- }
-
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org