This is an automated email from the ASF dual-hosted git repository.

zhangliang pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/shardingsphere-elasticjob-ui.git


The following commit(s) were added to refs/heads/master by this push:
     new 84575f2  Replace the default implementation of JPA hibernate to openjpa
     new 8f59736  Merge pull request #18 from viviel/jpa
84575f2 is described below

commit 84575f241a22a63872dc03b86ef9688b7b8a0b7b
Author: 郭世雄 <[email protected]>
AuthorDate: Wed Jul 29 11:01:23 2020 +0800

    Replace the default implementation of JPA hibernate to openjpa
---
 pom.xml                                            |  6 +++
 .../pom.xml                                        | 21 +++++++-
 .../cloud/ui/config/BeanConfiguration.java         | 14 ++---
 .../cloud/ui/config/DynamicDataSourceConfig.java   |  2 +-
 .../elasticjob/cloud/ui/config/OpenJPAConfig.java  | 60 ++++++++++++++++++++++
 .../src/main/resources/application.properties      |  1 -
 shardingsphere-elasticjob-lite-ui/pom.xml          |  1 -
 .../pom.xml                                        | 21 +++++++-
 .../elasticjob/lite/ui/Bootstrap.java              |  1 +
 .../lite/ui/config/DynamicDataSourceConfig.java    |  2 +-
 .../elasticjob/lite/ui/config/OpenJPAConfig.java   | 60 ++++++++++++++++++++++
 .../JobRegisterStatisticsRepository.java           |  2 +-
 .../statistics/JobRunningStatisticsRepository.java |  2 +-
 .../statistics/TaskResultStatisticsRepository.java |  6 +--
 .../TaskRunningStatisticsRepository.java           |  2 +-
 .../lite/ui/domain/DataSourceFactory.java          |  2 +-
 .../lite/ui/domain/JobRegisterStatistics.java      |  2 +-
 .../lite/ui/domain/JobRunningStatistics.java       |  2 +-
 .../lite/ui/domain/TaskResultStatistics.java       |  2 +-
 .../lite/ui/domain/TaskRunningStatistics.java      |  2 +-
 .../service/impl/EventTraceHistoryServiceImpl.java | 12 ++---
 .../src/main/resources/application.properties      |  1 -
 22 files changed, 191 insertions(+), 33 deletions(-)

diff --git a/pom.xml b/pom.xml
index 4d1b905..6acc1cb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,6 +43,7 @@
         <frontend-maven-plugin.version>1.6</frontend-maven-plugin.version>
         <os-maven-plugin.version>1.5.0.Final</os-maven-plugin.version>
         <takari-maven-plugin.version>0.6.1</takari-maven-plugin.version>
+        <openjpa.version>3.1.2</openjpa.version>
         <maven.deploy.skip>true</maven.deploy.skip>
     </properties>
     
@@ -55,6 +56,11 @@
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
+            <dependency>
+                <groupId>org.apache.openjpa</groupId>
+                <artifactId>openjpa</artifactId>
+                <version>${openjpa.version}</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>
     
diff --git 
a/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/pom.xml
 
b/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/pom.xml
index 0a2fa34..968fef4 100644
--- 
a/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/pom.xml
+++ 
b/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/pom.xml
@@ -27,8 +27,7 @@
     <name>${project.artifactId}</name>
     
     <properties>
-        <spring-boot.version>2.3.1.RELEASE</spring-boot.version>
-        <springframework.version>5.2.7.RELEASE</springframework.version>
+        <springframework.version>4.3.24.RELEASE</springframework.version>
         <commons-dbcp.version>1.4</commons-dbcp.version>
     </properties>
     
@@ -42,6 +41,12 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
             <version>${spring-boot.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.hibernate</groupId>
+                    <artifactId>hibernate-validator</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -51,9 +56,21 @@
                     <groupId>javax.transaction</groupId>
                     <artifactId>javax.transaction-api</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>org.hibernate</groupId>
+                    <artifactId>hibernate-core</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.hibernate</groupId>
+                    <artifactId>hibernate-entitymanager</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
         <dependency>
+            <groupId>org.apache.openjpa</groupId>
+            <artifactId>openjpa</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>
         </dependency>
diff --git 
a/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/cloud/ui/config/BeanConfiguration.java
 
b/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/cloud/ui/config/BeanConfiguration.java
index 10f4512..7ee895f 100644
--- 
a/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/cloud/ui/config/BeanConfiguration.java
+++ 
b/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/cloud/ui/config/BeanConfiguration.java
@@ -52,7 +52,7 @@ public class BeanConfiguration {
     
     @Bean
     public CoordinatorRegistryCenter regCenter() {
-        CoordinatorRegistryCenter registryCenter = new 
ZookeeperRegistryCenter(BootstrapEnvironment.getINSTANCE().getZookeeperConfiguration());
+        CoordinatorRegistryCenter registryCenter = new 
ZookeeperRegistryCenter(BootstrapEnvironment.getInstance().getZookeeperConfiguration());
         registryCenter.init();
         return registryCenter;
     }
@@ -89,7 +89,7 @@ public class BeanConfiguration {
     
     @Bean
     public StatisticManager statisticManager() {
-        return StatisticManager.getInstance(regCenter(), 
BootstrapEnvironment.getINSTANCE().getTracingConfiguration().orElse(null));
+        return StatisticManager.getInstance(regCenter(), 
BootstrapEnvironment.getInstance().getTracingConfiguration().orElse(null));
     }
     
     @Bean
@@ -109,7 +109,7 @@ public class BeanConfiguration {
     
     @Bean
     public JobEventBus jobEventBus() {
-        Optional<TracingConfiguration> tracingConfiguration = 
BootstrapEnvironment.getINSTANCE().getTracingConfiguration();
+        Optional<TracingConfiguration> tracingConfiguration = 
BootstrapEnvironment.getInstance().getTracingConfiguration();
         return 
tracingConfiguration.map(JobEventBus::new).orElseGet(JobEventBus::new);
     }
     
@@ -117,23 +117,23 @@ public class BeanConfiguration {
     public SchedulerDriver schedulerDriver() {
         Protos.FrameworkInfo.Builder builder = 
Protos.FrameworkInfo.newBuilder();
         frameworkIDService().fetch().ifPresent(frameworkID -> 
builder.setId(Protos.FrameworkID.newBuilder().setValue(frameworkID).build()));
-        Optional<String> role = 
BootstrapEnvironment.getINSTANCE().getMesosRole();
+        Optional<String> role = 
BootstrapEnvironment.getInstance().getMesosRole();
         String frameworkName = MesosConfiguration.FRAMEWORK_NAME;
         if (role.isPresent()) {
             builder.setRole(role.get());
             frameworkName += "-" + role.get();
         }
         
builder.addCapabilitiesBuilder().setType(Protos.FrameworkInfo.Capability.Type.PARTITION_AWARE);
-        MesosConfiguration mesosConfig = 
BootstrapEnvironment.getINSTANCE().getMesosConfiguration();
+        MesosConfiguration mesosConfig = 
BootstrapEnvironment.getInstance().getMesosConfiguration();
         Protos.FrameworkInfo frameworkInfo = 
builder.setUser(mesosConfig.getUser()).setName(frameworkName)
                 
.setHostname(mesosConfig.getHostname()).setFailoverTimeout(MesosConfiguration.FRAMEWORK_FAILOVER_TIMEOUT_SECONDS)
-                .setWebuiUrl(WEB_UI_PROTOCOL + 
BootstrapEnvironment.getINSTANCE().getFrameworkHostPort()).setCheckpoint(true).build();
+                .setWebuiUrl(WEB_UI_PROTOCOL + 
BootstrapEnvironment.getInstance().getFrameworkHostPort()).setCheckpoint(true).build();
         return new MesosSchedulerDriver(new SchedulerEngine(taskScheduler(), 
facadeService(), jobEventBus(), frameworkIDService(), statisticManager()), 
frameworkInfo, mesosConfig.getUrl());
     }
     
     @Bean
     public JobEventRdbSearch jobEventRdbSearch() {
-        Optional<TracingConfiguration> tracingConfiguration = 
BootstrapEnvironment.getINSTANCE().getTracingConfiguration();
+        Optional<TracingConfiguration> tracingConfiguration = 
BootstrapEnvironment.getInstance().getTracingConfiguration();
         return tracingConfiguration.map(each -> new 
JobEventRdbSearch((DataSource) each.getStorage(), true)).orElse(new 
JobEventRdbSearch(null, false));
     }
 }
diff --git 
a/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/cloud/ui/config/DynamicDataSourceConfig.java
 
b/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/cloud/ui/config/DynamicDataSourceConfig.java
index 59067d2..b3bab6c 100644
--- 
a/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/cloud/ui/config/DynamicDataSourceConfig.java
+++ 
b/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/cloud/ui/config/DynamicDataSourceConfig.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.elasticjob.cloud.ui.config;
 
 import org.apache.commons.dbcp.BasicDataSource;
-import org.springframework.boot.jdbc.DataSourceBuilder;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Primary;
diff --git 
a/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/cloud/ui/config/OpenJPAConfig.java
 
b/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/cloud/ui/config/OpenJPAConfig.java
new file mode 100644
index 0000000..9987f1b
--- /dev/null
+++ 
b/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/cloud/ui/config/OpenJPAConfig.java
@@ -0,0 +1,60 @@
+/*
+ * 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.shardingsphere.elasticjob.cloud.ui.config;
+
+import org.springframework.beans.factory.ObjectProvider;
+import org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration;
+import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties;
+import 
org.springframework.boot.autoconfigure.transaction.TransactionManagerCustomizers;
+import 
org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.orm.jpa.vendor.AbstractJpaVendorAdapter;
+import org.springframework.orm.jpa.vendor.OpenJpaVendorAdapter;
+import org.springframework.transaction.jta.JtaTransactionManager;
+
+import javax.sql.DataSource;
+import java.util.HashMap;
+import java.util.Map;
+
+@Configuration
+@EnableConfigurationProperties(JpaProperties.class)
+public class OpenJPAConfig extends JpaBaseConfiguration {
+    
+    protected OpenJPAConfig(DataSource dataSource,
+                            JpaProperties properties,
+                            ObjectProvider<JtaTransactionManager> 
jtaTransactionManager,
+                            ObjectProvider<TransactionManagerCustomizers> 
transactionManagerCustomizers) {
+        super(dataSource, properties, jtaTransactionManager, 
transactionManagerCustomizers);
+    }
+    
+    @Override
+    protected AbstractJpaVendorAdapter createJpaVendorAdapter() {
+        return new OpenJpaVendorAdapter();
+    }
+    
+    @Override
+    protected Map<String, Object> getVendorProperties() {
+        final Map<String, Object> result = new HashMap<>();
+        result.put("openjpa.jdbc.SynchronizeMappings", 
"buildSchema(ForeignKeys=true)");
+        result.put("openjpa.ClassLoadEnhancement", "false");
+        result.put("openjpa.DynamicEnhancementAgent", "false");
+        result.put("openjpa.RuntimeUnenhancedClasses", "supported");
+        return result;
+    }
+    
+}
\ No newline at end of file
diff --git 
a/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/src/main/resources/application.properties
 
b/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/src/main/resources/application.properties
index f4f0513..311c996 100644
--- 
a/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/src/main/resources/application.properties
+++ 
b/shardingsphere-elasticjob-cloud-ui/shardingsphere-elasticjob-cloud-ui-backend/src/main/resources/application.properties
@@ -26,5 +26,4 @@ spring.datasource.default.driver-class-name=org.h2.Driver
 spring.datasource.default.url=jdbc:h2:mem:
 spring.datasource.default.username=sa
 spring.datasource.default.password=
-spring.jpa.database-platform=org.hibernate.dialect.HSQLDialect
 spring.jpa.show-sql=false
diff --git a/shardingsphere-elasticjob-lite-ui/pom.xml 
b/shardingsphere-elasticjob-lite-ui/pom.xml
index 50bdb91..3ce26be 100644
--- a/shardingsphere-elasticjob-lite-ui/pom.xml
+++ b/shardingsphere-elasticjob-lite-ui/pom.xml
@@ -23,7 +23,6 @@
         <artifactId>shardingsphere-elasticjob-ui</artifactId>
         <version>3.0.0-alpha-SNAPSHOT</version>
     </parent>
-    <groupId>org.apache.shardingsphere</groupId>
     <artifactId>shardingsphere-elasticjob-lite-ui</artifactId>
     <version>3.0.0-alpha-SNAPSHOT</version>
     <packaging>pom</packaging>
diff --git 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/pom.xml
 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/pom.xml
index e837fec..6372df7 100644
--- 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/pom.xml
+++ 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/pom.xml
@@ -27,8 +27,7 @@
     <name>${project.artifactId}</name>
     
     <properties>
-        <spring-boot.version>2.3.1.RELEASE</spring-boot.version>
-        <springframework.version>5.2.7.RELEASE</springframework.version>
+        <springframework.version>4.3.24.RELEASE</springframework.version>
         <commons-dbcp.version>1.4</commons-dbcp.version>
     </properties>
     
@@ -42,6 +41,12 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
             <version>${spring-boot.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.hibernate</groupId>
+                    <artifactId>hibernate-validator</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -51,9 +56,21 @@
                     <groupId>javax.transaction</groupId>
                     <artifactId>javax.transaction-api</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>org.hibernate</groupId>
+                    <artifactId>hibernate-core</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.hibernate</groupId>
+                    <artifactId>hibernate-entitymanager</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
         <dependency>
+            <groupId>org.apache.openjpa</groupId>
+            <artifactId>openjpa</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>
         </dependency>
diff --git 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/Bootstrap.java
 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/Bootstrap.java
index 65369fd..692cb52 100644
--- 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/Bootstrap.java
+++ 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/Bootstrap.java
@@ -36,4 +36,5 @@ public class Bootstrap {
     //CHECKSTYLE:ON
         SpringApplication.run(Bootstrap.class, args);
     }
+    
 }
diff --git 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/config/DynamicDataSourceConfig.java
 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/config/DynamicDataSourceConfig.java
index ae2084f..e4d89a9 100644
--- 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/config/DynamicDataSourceConfig.java
+++ 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/config/DynamicDataSourceConfig.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.elasticjob.lite.ui.config;
 
 import org.apache.commons.dbcp.BasicDataSource;
-import org.springframework.boot.jdbc.DataSourceBuilder;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Primary;
diff --git 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/config/OpenJPAConfig.java
 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/config/OpenJPAConfig.java
new file mode 100644
index 0000000..4917b96
--- /dev/null
+++ 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/config/OpenJPAConfig.java
@@ -0,0 +1,60 @@
+/*
+ * 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.shardingsphere.elasticjob.lite.ui.config;
+
+import org.springframework.beans.factory.ObjectProvider;
+import org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration;
+import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties;
+import 
org.springframework.boot.autoconfigure.transaction.TransactionManagerCustomizers;
+import 
org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.orm.jpa.vendor.AbstractJpaVendorAdapter;
+import org.springframework.orm.jpa.vendor.OpenJpaVendorAdapter;
+import org.springframework.transaction.jta.JtaTransactionManager;
+
+import javax.sql.DataSource;
+import java.util.HashMap;
+import java.util.Map;
+
+@Configuration
+@EnableConfigurationProperties(JpaProperties.class)
+public class OpenJPAConfig extends JpaBaseConfiguration {
+    
+    protected OpenJPAConfig(DataSource dataSource,
+                            JpaProperties properties,
+                            ObjectProvider<JtaTransactionManager> 
jtaTransactionManager,
+                            ObjectProvider<TransactionManagerCustomizers> 
transactionManagerCustomizers) {
+        super(dataSource, properties, jtaTransactionManager, 
transactionManagerCustomizers);
+    }
+    
+    @Override
+    protected AbstractJpaVendorAdapter createJpaVendorAdapter() {
+        return new OpenJpaVendorAdapter();
+    }
+    
+    @Override
+    protected Map<String, Object> getVendorProperties() {
+        final Map<String, Object> result = new HashMap<>();
+        result.put("openjpa.jdbc.SynchronizeMappings", 
"buildSchema(ForeignKeys=true)");
+        result.put("openjpa.ClassLoadEnhancement", "false");
+        result.put("openjpa.DynamicEnhancementAgent", "false");
+        result.put("openjpa.RuntimeUnenhancedClasses", "supported");
+        return result;
+    }
+    
+}
\ No newline at end of file
diff --git 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/dao/statistics/JobRegisterStatisticsRepository.java
 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/dao/statistics/JobRegisterStatisticsRepository.java
index b781fe2..a8c29ae 100644
--- 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/dao/statistics/JobRegisterStatisticsRepository.java
+++ 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/dao/statistics/JobRegisterStatisticsRepository.java
@@ -38,6 +38,6 @@ public interface JobRegisterStatisticsRepository extends 
JpaRepository<JobRegist
      * @param fromTime from date to statistics
      * @return job register statistics
      */
-    @Query("FROM JobRegisterStatistics WHERE statisticsTime >= :fromTime")
+    @Query("SELECT t FROM JobRegisterStatistics t WHERE t.statisticsTime >= 
:fromTime")
     List<JobRegisterStatistics> findJobRegisterStatistics(@Param("fromTime") 
Date fromTime);
 }
diff --git 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/dao/statistics/JobRunningStatisticsRepository.java
 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/dao/statistics/JobRunningStatisticsRepository.java
index 4e805f1..a970c7c 100644
--- 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/dao/statistics/JobRunningStatisticsRepository.java
+++ 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/dao/statistics/JobRunningStatisticsRepository.java
@@ -38,6 +38,6 @@ public interface JobRunningStatisticsRepository extends 
JpaRepository<JobRunning
      * @param fromTime from date to statistics
      * @return job running statistics
      */
-    @Query("FROM JobRunningStatistics WHERE statisticsTime >= :fromTime")
+    @Query("SELECT t FROM JobRunningStatistics t WHERE t.statisticsTime >= 
:fromTime")
     List<JobRunningStatistics> findJobRunningStatistics(@Param("fromTime") 
Date fromTime);
 }
diff --git 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/dao/statistics/TaskResultStatisticsRepository.java
 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/dao/statistics/TaskResultStatisticsRepository.java
index 29f93d8..b6c2feb 100644
--- 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/dao/statistics/TaskResultStatisticsRepository.java
+++ 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/dao/statistics/TaskResultStatisticsRepository.java
@@ -39,7 +39,7 @@ public interface TaskResultStatisticsRepository extends 
JpaRepository<TaskResult
      * @param statisticInterval statistic interval
      * @return task result statistics
      */
-    @Query("FROM TaskResultStatistics WHERE statisticInterval = 
:statisticInterval AND statisticsTime >= :fromTime ORDER BY id ASC")
+    @Query("SELECT t FROM TaskResultStatistics t WHERE t.statisticInterval = 
:statisticInterval AND t.statisticsTime >= :fromTime ORDER BY t.id ASC")
     List<TaskResultStatistics> findTaskResultStatistics(@Param("fromTime") 
Date fromTime, @Param("statisticInterval") String statisticInterval);
     
     /**
@@ -49,7 +49,7 @@ public interface TaskResultStatisticsRepository extends 
JpaRepository<TaskResult
      * @param statisticInterval statistic interval
      * @return summed task result statistics
      */
-    @Query("SELECT new TaskResultStatistics(SUM(successCount), 
SUM(failedCount)) FROM TaskResultStatistics WHERE "
-        + "statisticInterval = :statisticInterval AND statisticsTime >= 
:fromTime")
+    @Query("SELECT new TaskResultStatistics(SUM(t.successCount), 
SUM(t.failedCount)) FROM TaskResultStatistics t WHERE "
+        + "t.statisticInterval = :statisticInterval AND t.statisticsTime >= 
:fromTime")
     TaskResultStatistics getSummedTaskResultStatistics(@Param("fromTime") Date 
fromTime, @Param("statisticInterval") String statisticInterval);
 }
diff --git 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/dao/statistics/TaskRunningStatisticsRepository.java
 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/dao/statistics/TaskRunningStatisticsRepository.java
index 5029bf6..6218bc2 100644
--- 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/dao/statistics/TaskRunningStatisticsRepository.java
+++ 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/dao/statistics/TaskRunningStatisticsRepository.java
@@ -38,6 +38,6 @@ public interface TaskRunningStatisticsRepository extends 
JpaRepository<TaskRunni
      * @param fromTime from date to statistics
      * @return Task running statistics
      */
-    @Query("FROM TaskRunningStatistics where statisticsTime >= :fromTime")
+    @Query("SELECT t FROM TaskRunningStatistics t where t.statisticsTime >= 
:fromTime")
     List<TaskRunningStatistics> findTaskRunningStatistics(@Param("fromTime") 
Date fromTime);
 }
diff --git 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/DataSourceFactory.java
 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/DataSourceFactory.java
index 79c74ec..7fe2215 100644
--- 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/DataSourceFactory.java
+++ 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/DataSourceFactory.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.elasticjob.lite.ui.domain;
 
 import org.apache.commons.dbcp.BasicDataSource;
-import org.springframework.boot.jdbc.DataSourceBuilder;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
 
 import javax.sql.DataSource;
 
diff --git 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/JobRegisterStatistics.java
 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/JobRegisterStatistics.java
index 820e371..a8e371d 100644
--- 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/JobRegisterStatistics.java
+++ 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/JobRegisterStatistics.java
@@ -37,7 +37,7 @@ import java.util.Date;
 @AllArgsConstructor
 @Entity
 @Table(name = "JOB_REGISTER_STATISTICS")
-public final class JobRegisterStatistics {
+public class JobRegisterStatistics {
     
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/JobRunningStatistics.java
 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/JobRunningStatistics.java
index ffbbafb..76e0245 100644
--- 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/JobRunningStatistics.java
+++ 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/JobRunningStatistics.java
@@ -37,7 +37,7 @@ import java.util.Date;
 @AllArgsConstructor
 @Entity
 @Table(name = "JOB_RUNNING_STATISTICS")
-public final class JobRunningStatistics {
+public class JobRunningStatistics {
     
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/TaskResultStatistics.java
 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/TaskResultStatistics.java
index ead47af..bbc05db 100644
--- 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/TaskResultStatistics.java
+++ 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/TaskResultStatistics.java
@@ -37,7 +37,7 @@ import java.util.Date;
 @NoArgsConstructor
 @Entity
 @Table(name = "TASK_RESULT_STATISTICS")
-public final class TaskResultStatistics {
+public class TaskResultStatistics {
     
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/TaskRunningStatistics.java
 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/TaskRunningStatistics.java
index 56d1a7f..cd39141 100644
--- 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/TaskRunningStatistics.java
+++ 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/domain/TaskRunningStatistics.java
@@ -37,7 +37,7 @@ import java.util.Date;
 @AllArgsConstructor
 @Entity
 @Table(name = "TASK_RUNNING_STATISTICS")
-public final class TaskRunningStatistics {
+public class TaskRunningStatistics {
     
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/service/impl/EventTraceHistoryServiceImpl.java
 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/service/impl/EventTraceHistoryServiceImpl.java
index 5ab3ac9..e154907 100644
--- 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/service/impl/EventTraceHistoryServiceImpl.java
+++ 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/java/org/apache/shardingsphere/elasticjob/lite/ui/service/impl/EventTraceHistoryServiceImpl.java
@@ -69,7 +69,7 @@ public final class EventTraceHistoryServiceImpl implements 
EventTraceHistoryServ
             findJobExecutionEventsRequest.getEnd(), "startTime");
 
         Page<JobExecutionLog> page = 
jobExecutionLogRepository.findAll(specification, 
getPageable(findJobExecutionEventsRequest, JobExecutionLog.class));
-        return new 
PageImpl<>(page.get().map(JobExecutionLog::toJobExecutionEvent).collect(Collectors.toList()),
 page.getPageable(), page.getTotalElements());
+        return new 
PageImpl<>(page.getContent().stream().map(JobExecutionLog::toJobExecutionEvent).collect(Collectors.toList()),
 null, page.getTotalElements());
     }
     
     @Override
@@ -78,7 +78,7 @@ public final class EventTraceHistoryServiceImpl implements 
EventTraceHistoryServ
         Specification<JobStatusTraceLog> specification = 
getSpecWithExampleAndDate(jobStatusTraceLogExample, 
findJobStatusTraceEventsRequest.getStart(),
             findJobStatusTraceEventsRequest.getEnd(), "creationTime");
         Page<JobStatusTraceLog> page = 
jobStatusTraceLogRepository.findAll(specification, 
getPageable(findJobStatusTraceEventsRequest, JobStatusTraceLog.class));
-        return new 
PageImpl<>(page.get().map(JobStatusTraceLog::toJobStatusTraceEvent).collect(Collectors.toList()),
 page.getPageable(), page.getTotalElements());
+        return new 
PageImpl<>(page.getContent().stream().map(JobStatusTraceLog::toJobStatusTraceEvent).collect(Collectors.toList()),
 null, page.getTotalElements());
     }
     
     private <T> Pageable getPageable(final BasePageRequest pageRequest, final 
Class<T> clazz) {
@@ -88,11 +88,11 @@ public final class EventTraceHistoryServiceImpl implements 
EventTraceHistoryServ
             page = pageRequest.getPageNumber() - 1;
             perPage = pageRequest.getPageSize();
         }
-        return PageRequest.of(page, perPage, getSort(pageRequest, clazz));
+        return new PageRequest(page, perPage, getSort(pageRequest, clazz));
     }
     
     private <T> Sort getSort(final BasePageRequest pageRequest, final Class<T> 
clazz) {
-        Sort sort = Sort.unsorted();
+        Sort sort = null;
         boolean sortFieldIsPresent = Arrays.stream(clazz.getDeclaredFields())
             .map(Field::getName)
             .anyMatch(e -> e.equals(pageRequest.getSortBy()));
@@ -105,13 +105,13 @@ public final class EventTraceHistoryServiceImpl 
implements EventTraceHistoryServ
                 order = Sort.Direction.valueOf(pageRequest.getOrderType());
             } catch (IllegalArgumentException ignored) {
             }
-            sort = Sort.by(order, pageRequest.getSortBy());
+            sort = new Sort(order, pageRequest.getSortBy());
         }
         return sort;
     }
     
     private <T> Specification<T> getSpecWithExampleAndDate(final Example<T> 
example, final Date from, final Date to, final String field) {
-        return (Specification<T>) (root, query, builder) -> {
+        return (root, query, builder) -> {
             final List<Predicate> predicates = new ArrayList<>();
             if (from != null) {
                 predicates.add(builder.greaterThan(root.get(field), from));
diff --git 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/resources/application.properties
 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/resources/application.properties
index f4f0513..311c996 100644
--- 
a/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/resources/application.properties
+++ 
b/shardingsphere-elasticjob-lite-ui/shardingsphere-elasticjob-lite-ui-backend/src/main/resources/application.properties
@@ -26,5 +26,4 @@ spring.datasource.default.driver-class-name=org.h2.Driver
 spring.datasource.default.url=jdbc:h2:mem:
 spring.datasource.default.username=sa
 spring.datasource.default.password=
-spring.jpa.database-platform=org.hibernate.dialect.HSQLDialect
 spring.jpa.show-sql=false

Reply via email to