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>

Reply via email to