From: Holger Friedrich Date: Tue, 28 May 2024 20:47:02 +0000 (+0200) Subject: [persistence.jpa] Upgrade openjpa and derby (#16591) X-Git-Url: https://git.basschouten.com/?a=commitdiff_plain;h=dcd778301bc208cc013065d29cdb9360f6fc4617;p=openhab-addons.git [persistence.jpa] Upgrade openjpa and derby (#16591) Support Java 21 - Upgrade openjpa from 3.2.2 to 4.0.0 - Upgrade derby from 10.14.2.0 to 10.16.1.1 (last Java 17 release) - Migrate javax.el to jakarta.el-api 6.0.0-RC1 - Revert workaround for Java 21, #16612 Signed-off-by: Holger Friedrich --- diff --git a/bundles/org.openhab.persistence.jpa/pom.xml b/bundles/org.openhab.persistence.jpa/pom.xml index 3083c63c29..fde7c736ea 100644 --- a/bundles/org.openhab.persistence.jpa/pom.xml +++ b/bundles/org.openhab.persistence.jpa/pom.xml @@ -15,10 +15,8 @@ openHAB Add-ons :: Bundles :: Persistence Service :: JPA - !com.ibm.*,!com.sun.*,!oracle.*,!javax.interceptor.*,!javax.enterprise.*,!javax.rmi,!org.apache.bval.*,!net.sf.cglib.*,!org.apache.commons.beanutils.*,!org.apache.geronimo.*,!org.apache.avalon.*,!org.apache.log,!org.apache.tools.*,!org.apache.xerces.*,!org.jboss.*,!org.postgresql.*,!org.slf4j.impl,!weblogic.*,org.apache.derby.*;resolution:=optional - 3.2.2 - - 17 + !com.ibm.*,!com.sun.*,!oracle.*,!jakarta.interceptor.*,!jakarta.enterprise.*,!javax.enterprise.*,!javax.transaction.*,!jakarta.xml.*,!javax.rmi,!org.apache.bval.*,!net.sf.cglib.*,!org.apache.commons.beanutils.*,!org.apache.geronimo.*,!org.apache.avalon.*,!org.apache.log,!org.apache.tools.*,!org.apache.xerces.*,!org.jboss.*,!org.postgresql.*,!org.slf4j.impl,!weblogic.*,org.apache.derby.*;resolution:=optional + 4.0.0 @@ -32,12 +30,12 @@ org.apache.derby derby - 10.14.2.0 + 10.16.1.1 - javax.el - el-api - 2.2 + jakarta.el + jakarta.el-api + 6.0.0-RC1 diff --git a/bundles/org.openhab.persistence.jpa/src/main/java/org/openhab/persistence/jpa/internal/JpaPersistenceService.java b/bundles/org.openhab.persistence.jpa/src/main/java/org/openhab/persistence/jpa/internal/JpaPersistenceService.java index b782d4bd6d..c4ffe55f4b 100644 --- a/bundles/org.openhab.persistence.jpa/src/main/java/org/openhab/persistence/jpa/internal/JpaPersistenceService.java +++ b/bundles/org.openhab.persistence.jpa/src/main/java/org/openhab/persistence/jpa/internal/JpaPersistenceService.java @@ -19,12 +19,6 @@ import java.util.Locale; import java.util.Map; import java.util.Set; -import javax.persistence.EntityExistsException; -import javax.persistence.EntityManager; -import javax.persistence.EntityManagerFactory; -import javax.persistence.Persistence; -import javax.persistence.Query; - import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.core.config.core.ConfigurableService; @@ -49,6 +43,12 @@ import org.osgi.service.component.annotations.Reference; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import jakarta.persistence.EntityExistsException; +import jakarta.persistence.EntityManager; +import jakarta.persistence.EntityManagerFactory; +import jakarta.persistence.Persistence; +import jakarta.persistence.Query; + /** * JPA based implementation of QueryablePersistenceService. * @@ -277,13 +277,13 @@ public class JpaPersistenceService implements QueryablePersistenceService { logger.trace("Creating EntityManagerFactory..."); Map properties = new HashMap<>(); - properties.put("javax.persistence.jdbc.url", config.dbConnectionUrl); - properties.put("javax.persistence.jdbc.driver", config.dbDriverClass); + properties.put("jakarta.persistence.jdbc.url", config.dbConnectionUrl); + properties.put("jakarta.persistence.jdbc.driver", config.dbDriverClass); if (!config.dbUserName.isBlank()) { - properties.put("javax.persistence.jdbc.user", config.dbUserName); + properties.put("jakarta.persistence.jdbc.user", config.dbUserName); } if (!config.dbPassword.isBlank()) { - properties.put("javax.persistence.jdbc.password", config.dbPassword); + properties.put("jakarta.persistence.jdbc.password", config.dbPassword); } if (config.dbUserName.isBlank() && config.dbPassword.isBlank()) { logger.info("It is recommended to use a password to protect the JPA persistence data store"); diff --git a/bundles/org.openhab.persistence.jpa/src/main/java/org/openhab/persistence/jpa/internal/model/JpaPersistentItem.java b/bundles/org.openhab.persistence.jpa/src/main/java/org/openhab/persistence/jpa/internal/model/JpaPersistentItem.java index 98412fdd2f..49ca0fd8c1 100644 --- a/bundles/org.openhab.persistence.jpa/src/main/java/org/openhab/persistence/jpa/internal/model/JpaPersistentItem.java +++ b/bundles/org.openhab.persistence.jpa/src/main/java/org/openhab/persistence/jpa/internal/model/JpaPersistentItem.java @@ -17,20 +17,20 @@ import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.Date; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; - import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.core.persistence.HistoricItem; import org.openhab.core.types.State; import org.openhab.core.types.UnDefType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import jakarta.persistence.Temporal; +import jakarta.persistence.TemporalType; + /** * This is the DAO object used for storing and retrieving to and from database. *