This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git
The following commit(s) were added to refs/heads/master by this push:
new 7bf59055d OPENJPA-2908 - jakarta persistence API updated to 3.1.0
7bf59055d is described below
commit 7bf59055dadbac88d40dfadc4348678fff57ff92
Author: Paulo Cristovão de Araújo Silva Filho <[email protected]>
AuthorDate: Fri Jan 24 11:40:40 2025 -0300
OPENJPA-2908 - jakarta persistence API updated to 3.1.0
* Bumped jakarta persistence API to 3.1.0
* Added necessary stub impl of methods (throws
UnsupportedOperationException)
* Tests passes, but actual impls must be made in probably different issues,
one for each new features
(https://jakarta.ee/specifications/persistence/3.1/jakarta-persistence-spec-3.1#jakarta-persistence-3-1)
---
.../apache/openjpa/lib/conf/ClassListValue.java | 23 ++++---
.../persistence/PersistenceProviderImpl.java | 5 +-
.../persistence/criteria/CriteriaBuilderImpl.java | 70 ++++++++++++++++++++++
.../openjpa/persistence/criteria/Expressions.java | 13 +++-
pom.xml | 2 +-
5 files changed, 94 insertions(+), 19 deletions(-)
diff --git
a/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ClassListValue.java
b/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ClassListValue.java
index 76a5b0ba9..b7b05b057 100644
--- a/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ClassListValue.java
+++ b/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ClassListValue.java
@@ -56,21 +56,18 @@ public class ClassListValue extends Value {
@Override
protected void setInternalString(String val) {
String[] vals = StringUtil.split(val, ",", 0);
- if (vals != null) {
- for (int i = 0; i < vals.length; i++)
- vals[i] = vals[i].trim();
+ if (vals.length == 0) {
+ set(null);
+ return;
}
-
final ClassLoader loader =
AccessController.doPrivileged(J2DoPrivHelper.getContextClassLoaderAction());
- set(ofNullable(StringUtil.split(val, ",", 0))
- .map(it -> Stream.of(it).map(v -> {
- try {
- return loader.loadClass(v.trim());
- } catch (final ClassNotFoundException e) {
- throw new IllegalStateException(e);
- }
- }).toArray(Class<?>[]::new))
- .orElse(null));
+ set(Stream.of(vals).map(v -> {
+ try {
+ return loader.loadClass(v.trim());
+ } catch (final ClassNotFoundException e) {
+ throw new IllegalStateException(e);
+ }
+ }).toArray(Class<?>[]::new));
}
@Override
diff --git
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
index 0e0a5e472..e3d59a27c 100644
---
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
+++
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
@@ -46,6 +46,7 @@ import jakarta.persistence.spi.LoadState;
import jakarta.persistence.spi.PersistenceProvider;
import jakarta.persistence.spi.PersistenceUnitInfo;
import jakarta.persistence.spi.ProviderUtil;
+import jakarta.persistence.spi.TransformerException;
import java.lang.instrument.ClassFileTransformer;
import java.lang.instrument.IllegalClassFormatException;
@@ -384,12 +385,12 @@ public class PersistenceProviderImpl
@Override
public byte[] transform(ClassLoader cl, String name, Class<?>
previousVersion, ProtectionDomain pd, byte[] bytes)
- throws IllegalClassFormatException {
+ throws TransformerException {
try {
return _trans.transform(cl, name, previousVersion, pd, bytes);
}
catch (IllegalClassFormatException e) {
- throw e;
+ throw new TransformerException(e);
}
}
}
diff --git
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java
index c57a18f4d..7d109f25e 100644
---
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java
+++
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java
@@ -20,9 +20,13 @@ package org.apache.openjpa.persistence.criteria;
import java.math.BigDecimal;
import java.math.BigInteger;
+import java.nio.channels.UnsupportedAddressTypeException;
import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
@@ -983,4 +987,70 @@ public class CriteriaBuilderImpl implements
OpenJPACriteriaBuilder, ExpressionPa
public ComparisonStyle qbeStyle() {
return new ComparisonStyle.Default();
}
+
+ @Override
+ public <N extends Number> Expression<N> ceiling(Expression<N> x) {
+ // TODO Implement ceiling op
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Expression<Double> exp(Expression<? extends Number> x) {
+ // TODO Implement exp op
+ throw new UnsupportedAddressTypeException();
+ }
+
+ @Override
+ public <N extends Number> Expression<N> floor(Expression<N> x) {
+ // TODO Implement floor op
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Expression<Double> ln(Expression<? extends Number> x) {
+ // TODO Implement ln op
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Expression<LocalDate> localDate() {
+ // TODO Implement localDate
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Expression<LocalDateTime> localDateTime() {
+ // TODO Implement ceiling op
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Expression<LocalTime> localTime() {
+ // TODO Implement localTime op
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Expression<Double> power(Expression<? extends Number> x, Number y) {
+ // TODO Implement power op
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Expression<Double> power(Expression<? extends Number> x,
Expression<? extends Number> y) {
+ // TODO Implement power op
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public <T extends Number> Expression<T> round(Expression<T> x, Integer n) {
+ // TODO Implement round op
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Expression<Integer> sign(Expression<? extends Number> x) {
+ // TODO Implement sign op
+ throw new UnsupportedOperationException();
+ }
}
diff --git
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Expressions.java
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Expressions.java
index a180c605a..f7ca4633b 100644
---
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Expressions.java
+++
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Expressions.java
@@ -1612,7 +1612,7 @@ class Expressions {
}
}
- public static class SimpleCase<C,R> extends ExpressionImpl<R> implements
CriteriaBuilder.SimpleCase<C,R> {
+ public static class SimpleCase<C, R> extends ExpressionImpl<R> implements
CriteriaBuilder.SimpleCase<C,R> {
private final List<Expression<? extends R>> thens = new ArrayList<>();
private final List<Expression<C>> whens = new ArrayList<>();
private Expression<? extends R> otherwise;
@@ -1632,12 +1632,19 @@ class Expressions {
return caseOperand;
}
- public SimpleCase<C,R> when(Expression<C> when, Expression<? extends
R> then) {
- whens.add(when);
+ public SimpleCase<C,R> when(Expression<? extends C> when, Expression<?
extends R> then) {
+ whens.add((Expression<C>) when);
thens.add(then);
return this;
}
+ @Override
+ public SimpleCase<C, R> when(Expression<? extends C> condition, R
result) {
+ whens.add((Expression<C>) condition);
+ thens.add(new Constant<>(result));
+ return this;
+ }
+
@Override
public SimpleCase<C,R> when(C when, Expression<? extends R> then) {
return when(new Constant<>(when), then);
diff --git a/pom.xml b/pom.xml
index bfe03dfee..3e265ec7e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -101,7 +101,7 @@
<pool2.version>2.12.0</pool2.version>
<jakarta.annotation-api.version>2.1.1</jakarta.annotation-api.version>
-
<jakarta.persistence-api.version>3.0.0</jakarta.persistence-api.version>
+
<jakarta.persistence-api.version>3.1.0</jakarta.persistence-api.version>
<jakarta.transaction-api.version>2.0.1</jakarta.transaction-api.version>
<jakarta.validation-api.version>3.0.2</jakarta.validation-api.version>
<jakarta.jms-api.version>3.1.0</jakarta.jms-api.version>