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 2021/07/07 15:55:45 UTC
[tomcat] branch main updated: Add more generics to EL API to align
with spec project
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
The following commit(s) were added to refs/heads/main by this push:
new 35bd877 Add more generics to EL API to align with spec project
35bd877 is described below
commit 35bd87789017661b599f18ce33529ba544b81a06
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Jul 7 16:55:30 2021 +0100
Add more generics to EL API to align with spec project
---
java/jakarta/el/ELProcessor.java | 6 ++++--
test/jakarta/el/TestELProcessor.java | 11 +++++------
test/jakarta/el/TestUtil.java | 2 +-
test/org/apache/el/TestMethodExpressionImpl.java | 6 +++---
test/org/apache/el/lang/TestELArithmetic.java | 12 ++++++------
test/org/apache/el/parser/TestAstAnd.java | 8 ++++----
test/org/apache/el/parser/TestAstChoice.java | 2 +-
test/org/apache/el/parser/TestAstNot.java | 6 +++---
test/org/apache/el/parser/TestAstOr.java | 8 ++++----
webapps/docs/changelog.xml | 8 ++++++++
10 files changed, 39 insertions(+), 30 deletions(-)
diff --git a/java/jakarta/el/ELProcessor.java b/java/jakarta/el/ELProcessor.java
index 98ff6a3..aea604a 100644
--- a/java/jakarta/el/ELProcessor.java
+++ b/java/jakarta/el/ELProcessor.java
@@ -50,8 +50,10 @@ public class ELProcessor {
}
- public Object eval(String expression) {
- return getValue(expression, Object.class);
+ public <T> T eval(String expression) {
+ @SuppressWarnings("unchecked")
+ T result = (T) getValue(expression, Object.class);
+ return result;
}
diff --git a/test/jakarta/el/TestELProcessor.java b/test/jakarta/el/TestELProcessor.java
index 4bf6673..644a557 100644
--- a/test/jakarta/el/TestELProcessor.java
+++ b/test/jakarta/el/TestELProcessor.java
@@ -47,7 +47,7 @@ public class TestELProcessor {
public void testEval03() {
ELProcessor elp = new ELProcessor();
// Note \ is escaped as \\ in Java source code
- String result = (String) elp.eval("'\\\\'");
+ String result = elp.eval("'\\\\'");
Assert.assertEquals("\\", result);
}
@@ -200,12 +200,11 @@ public class TestELProcessor {
elp.defineBean("bean01", bean01);
elp.defineBean("bean02", new TesterBean("bean02"));
- Object result = elp.eval("bean02.setValueC(bean01.valueB);bean02.valueC");
+ Integer[] result = elp.eval("bean02.setValueC(bean01.valueB);bean02.valueC");
- Integer[] resultArray = (Integer[]) result;
- Assert.assertEquals(bean01.getValueB().length, resultArray.length);
- for (int i = 0; i < resultArray.length; i++) {
- Assert.assertEquals(bean01.getValueB()[i], resultArray[i].intValue());
+ Assert.assertEquals(bean01.getValueB().length, result.length);
+ for (int i = 0; i < result.length; i++) {
+ Assert.assertEquals(bean01.getValueB()[i], result[i].intValue());
}
}
}
diff --git a/test/jakarta/el/TestUtil.java b/test/jakarta/el/TestUtil.java
index dc2a5ed..3ed53f5 100644
--- a/test/jakarta/el/TestUtil.java
+++ b/test/jakarta/el/TestUtil.java
@@ -35,7 +35,7 @@ public class TestUtil {
public void test02() {
ELProcessor processor = new ELProcessor();
processor.getELManager().importClass("java.util.Date");
- Date result = (Date) processor.eval("Date(86400)");
+ Date result = processor.eval("Date(86400)");
Assert.assertEquals(86400, result.getTime());
}
diff --git a/test/org/apache/el/TestMethodExpressionImpl.java b/test/org/apache/el/TestMethodExpressionImpl.java
index 103f400..3339d01 100644
--- a/test/org/apache/el/TestMethodExpressionImpl.java
+++ b/test/org/apache/el/TestMethodExpressionImpl.java
@@ -606,7 +606,7 @@ public class TestMethodExpressionImpl {
ELProcessor elp = new ELProcessor();
elp.defineBean("apple", TesterEnum.APPLE);
elp.defineBean("beanF", new TesterBeanF());
- String elResult = (String) elp.eval(expression);
+ String elResult = elp.eval(expression);
String javaResult = func.apply(new TesterBeanF());
Assert.assertEquals(javaResult, elResult);
}
@@ -676,7 +676,7 @@ public class TestMethodExpressionImpl {
ELProcessor elp = new ELProcessor();
elp.defineBean("apple", TesterEnum.APPLE);
elp.defineBean("beanG", new TesterBeanG());
- String elResult = (String) elp.eval(expression);
+ String elResult = elp.eval(expression);
String javaResult = func.apply(new TesterBeanG());
Assert.assertEquals(javaResult, elResult);
}
@@ -745,7 +745,7 @@ public class TestMethodExpressionImpl {
ELProcessor elp = new ELProcessor();
elp.defineBean("apple", TesterEnum.APPLE);
elp.defineBean("beanH", new TesterBeanH());
- String elResult = (String) elp.eval(expression);
+ String elResult = elp.eval(expression);
String javaResult = func.apply(new TesterBeanH());
Assert.assertEquals(javaResult, elResult);
}
diff --git a/test/org/apache/el/lang/TestELArithmetic.java b/test/org/apache/el/lang/TestELArithmetic.java
index 6c4e80c..800d8ea 100644
--- a/test/org/apache/el/lang/TestELArithmetic.java
+++ b/test/org/apache/el/lang/TestELArithmetic.java
@@ -38,7 +38,7 @@ public class TestELArithmetic {
@Test
public void testAdd02() {
ELProcessor processor = new ELProcessor();
- Object result = processor.eval("null + null");
+ Long result = processor.eval("null + null");
Assert.assertEquals(Long.valueOf(0), result);
}
@@ -51,7 +51,7 @@ public class TestELArithmetic {
@Test
public void testSubtract02() {
ELProcessor processor = new ELProcessor();
- Object result = processor.eval("null - null");
+ Long result = processor.eval("null - null");
Assert.assertEquals(Long.valueOf(0), result);
}
@@ -64,7 +64,7 @@ public class TestELArithmetic {
@Test
public void testMultiply02() {
ELProcessor processor = new ELProcessor();
- Object result = processor.eval("null * null");
+ Long result = processor.eval("null * null");
Assert.assertEquals(Long.valueOf(0), result);
}
@@ -77,7 +77,7 @@ public class TestELArithmetic {
@Test
public void testDivide02() {
ELProcessor processor = new ELProcessor();
- Object result = processor.eval("null / null");
+ Long result = processor.eval("null / null");
Assert.assertEquals(Long.valueOf(0), result);
}
@@ -90,14 +90,14 @@ public class TestELArithmetic {
@Test
public void testMod02() {
ELProcessor processor = new ELProcessor();
- Object result = processor.eval("null % null");
+ Long result = processor.eval("null % null");
Assert.assertEquals(Long.valueOf(0), result);
}
@Test
public void testUnaryMinus01() {
ELProcessor processor = new ELProcessor();
- Object result = processor.eval("-null");
+ Long result = processor.eval("-null");
Assert.assertEquals(Long.valueOf(0), result);
}
diff --git a/test/org/apache/el/parser/TestAstAnd.java b/test/org/apache/el/parser/TestAstAnd.java
index 040717f..8303eaf 100644
--- a/test/org/apache/el/parser/TestAstAnd.java
+++ b/test/org/apache/el/parser/TestAstAnd.java
@@ -26,28 +26,28 @@ public class TestAstAnd {
@Test
public void test01() {
ELProcessor processor = new ELProcessor();
- Object result = processor.eval("true && true");
+ Boolean result = processor.eval("true && true");
Assert.assertEquals(Boolean.TRUE, result);
}
@Test
public void test02() {
ELProcessor processor = new ELProcessor();
- Object result = processor.eval("true && null");
+ Boolean result = processor.eval("true && null");
Assert.assertEquals(Boolean.FALSE, result);
}
@Test
public void test03() {
ELProcessor processor = new ELProcessor();
- Object result = processor.eval("null && true");
+ Boolean result = processor.eval("null && true");
Assert.assertEquals(Boolean.FALSE, result);
}
@Test
public void test04() {
ELProcessor processor = new ELProcessor();
- Object result = processor.eval("null && null");
+ Boolean result = processor.eval("null && null");
Assert.assertEquals(Boolean.FALSE, result);
}
}
diff --git a/test/org/apache/el/parser/TestAstChoice.java b/test/org/apache/el/parser/TestAstChoice.java
index 0eaa9f4..23e8fdd 100644
--- a/test/org/apache/el/parser/TestAstChoice.java
+++ b/test/org/apache/el/parser/TestAstChoice.java
@@ -26,7 +26,7 @@ public class TestAstChoice {
@Test
public void test01() {
ELProcessor processor = new ELProcessor();
- Object result = processor.eval("null?1:2");
+ Long result = processor.eval("null?1:2");
Assert.assertEquals(Long.valueOf(2), result);
}
}
diff --git a/test/org/apache/el/parser/TestAstNot.java b/test/org/apache/el/parser/TestAstNot.java
index f6b859d..11f53f3 100644
--- a/test/org/apache/el/parser/TestAstNot.java
+++ b/test/org/apache/el/parser/TestAstNot.java
@@ -26,21 +26,21 @@ public class TestAstNot {
@Test
public void test01() {
ELProcessor processor = new ELProcessor();
- Object result = processor.eval("!null");
+ Boolean result = processor.eval("!null");
Assert.assertEquals(Boolean.TRUE, result);
}
@Test
public void test02() {
ELProcessor processor = new ELProcessor();
- Object result = processor.eval("!true");
+ Boolean result = processor.eval("!true");
Assert.assertEquals(Boolean.FALSE, result);
}
@Test
public void test03() {
ELProcessor processor = new ELProcessor();
- Object result = processor.eval("!false");
+ Boolean result = processor.eval("!false");
Assert.assertEquals(Boolean.TRUE, result);
}
}
diff --git a/test/org/apache/el/parser/TestAstOr.java b/test/org/apache/el/parser/TestAstOr.java
index 46a30d0..bb7a2bd 100644
--- a/test/org/apache/el/parser/TestAstOr.java
+++ b/test/org/apache/el/parser/TestAstOr.java
@@ -26,28 +26,28 @@ public class TestAstOr {
@Test
public void test01() {
ELProcessor processor = new ELProcessor();
- Object result = processor.eval("true || true");
+ Boolean result = processor.eval("true || true");
Assert.assertEquals(Boolean.TRUE, result);
}
@Test
public void test02() {
ELProcessor processor = new ELProcessor();
- Object result = processor.eval("true || null");
+ Boolean result = processor.eval("true || null");
Assert.assertEquals(Boolean.TRUE, result);
}
@Test
public void test03() {
ELProcessor processor = new ELProcessor();
- Object result = processor.eval("null || true");
+ Boolean result = processor.eval("null || true");
Assert.assertEquals(Boolean.TRUE, result);
}
@Test
public void test04() {
ELProcessor processor = new ELProcessor();
- Object result = processor.eval("null || null");
+ Boolean result = processor.eval("null || null");
Assert.assertEquals(Boolean.FALSE, result);
}
}
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 41766a3..2e78aa9 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -142,6 +142,14 @@
</fix>
</changelog>
</subsection>
+ <subsection name="Jasper">
+ <changelog>
+ <scode>
+ Add additional generics to the EL API to align with the latest changes
+ in the EL specification project. (markt)
+ </scode>
+ </changelog>
+ </subsection>
<subsection name="Web applications">
<changelog>
<fix>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org