Repository: incubator-griffin
Updated Branches:
  refs/heads/master 400965077 -> 359bfe23c


update ut

Author: ahutsunshine <[email protected]>
Author: He Wang <[email protected]>
Author: dodobel <[email protected]>

Closes #280 from ahutsunshine/master.


Project: http://git-wip-us.apache.org/repos/asf/incubator-griffin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-griffin/commit/359bfe23
Tree: http://git-wip-us.apache.org/repos/asf/incubator-griffin/tree/359bfe23
Diff: http://git-wip-us.apache.org/repos/asf/incubator-griffin/diff/359bfe23

Branch: refs/heads/master
Commit: 359bfe23c1e238ade42d3b407f261644dc239db3
Parents: 4009650
Author: ahutsunshine <[email protected]>
Authored: Thu May 10 18:56:54 2018 +0800
Committer: Lionel Liu <[email protected]>
Committed: Thu May 10 18:56:54 2018 +0800

----------------------------------------------------------------------
 .../service/hibernate_eclipselink_switch.md     |   5 +-
 griffin-doc/service/mysql_postgresql_switch.md  |  52 +++--
 service/hibernate_mysql_pom.xml                 | 223 +++++++++++++++++++
 .../griffin/core/util/PropertiesUtil.java       |  12 +-
 .../src/main/resources/application.properties   |   6 +-
 service/src/main/resources/quartz.properties    |   2 +
 .../core/config/PropertiesConfigTest.java       |  10 -
 .../core/measure/MeasureOrgServiceImplTest.java |  11 +-
 .../griffin/core/util/PropertiesUtilTest.java   |   8 -
 9 files changed, 270 insertions(+), 59 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/359bfe23/griffin-doc/service/hibernate_eclipselink_switch.md
----------------------------------------------------------------------
diff --git a/griffin-doc/service/hibernate_eclipselink_switch.md 
b/griffin-doc/service/hibernate_eclipselink_switch.md
index 6bfae3b..edb87af 100644
--- a/griffin-doc/service/hibernate_eclipselink_switch.md
+++ b/griffin-doc/service/hibernate_eclipselink_switch.md
@@ -139,6 +139,9 @@ Please see [Mysql and postgresql 
switch](https://github.com/apache/incubator-gri
 ## Migration from EclipseLink to Hibernate
 Here we'll go through steps necessary to migrate applications from using 
EclipseLink JPA to using Hibernate JPA.The migration will not need to convert 
any EclipseLink annotations to Hibernate annotations in application code. 
 
+## Quick use
+In Griffin, we provide **hibernate_mysql_pom.xml** file for hibernate and 
mysql. If you want to quick use hibernate and mysql with jar, firstly you 
should [configure properties](#2.3) and then use command `mvn clean package -f 
pom_hibernate.xml` to package jar.
+
 ## Migration main steps
 - [add hibernate dependency](#2.1)
 - [remove EclipseLink](#2.2)
@@ -147,7 +150,7 @@ Here we'll go through steps necessary to migrate 
applications from using Eclipse
 <h2 id = "2.1"></h2>
 
 ### Add hibernate dependency
-By default, Spring Data uses Hibernate as the default JPA implementation 
provider.So we just add **spring-boot-starter-data-jpa** dependency.If you have 
already added it, skip this step.
+By default, Spring Data uses Hibernate as the default JPA implementation 
provider.So we just add **spring-boot-starter-data-jpa** dependency.**If you 
have already added it, skip this step.**
 
     <dependency>
         <groupId>org.springframework.boot</groupId>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/359bfe23/griffin-doc/service/mysql_postgresql_switch.md
----------------------------------------------------------------------
diff --git a/griffin-doc/service/mysql_postgresql_switch.md 
b/griffin-doc/service/mysql_postgresql_switch.md
index 081307c..4d8c07f 100644
--- a/griffin-doc/service/mysql_postgresql_switch.md
+++ b/griffin-doc/service/mysql_postgresql_switch.md
@@ -20,56 +20,64 @@ under the License.
 # Mysql and postgresql switch
 
 ## Overview
-By default, Griffin uses EclipseLink as the default JPA implementation. 
-## Use postgresql database 
+By default, Griffin uses EclipseLink as the default JPA implementation. This 
document provides ways to switch mysql and postgresql.
 
-### Add postgresql dependency
+- [Use mysql database](#1.1)
+- [Use postgresql database](#1.2)
+
+<h2 id = "1.1"></h2>
+
+## Use mysql database 
+### Add mysql dependency
 
     <dependency>
-        <groupId>org.postgresql</groupId>
-        <artifactId>postgresql</artifactId>
+        <groupId>mysql</groupId>
+        <artifactId>mysql-connector-java</artifactId>
     </dependency>
-
 ### Configure properties
+
 - configure application.properties
 
-        spring.datasource.url = 
jdbc:postgresql://localhost:5432/quartz?autoReconnect=true&useSSL=false
+        spring.datasource.url = 
jdbc:mysql://localhost:3306/quartz?autoReconnect=true&useSSL=false
         spring.datasource.username = griffin
         spring.datasource.password = 123456
         spring.jpa.generate-ddl=true
-        spring.datasource.driver-class-name = org.postgresql.Driver
+        spring.datasource.driver-class-name = com.mysql.jdbc.Driver
         spring.jpa.show-sql = true
-  If you use hibernate as your jpa implentation, you need also to add 
following configuration.
+   If you use hibernate as your jpa implentation, you need also to add 
following configuration.
      
         spring.jpa.hibernate.ddl-auto = update
         spring.jpa.hibernate.naming-strategy = 
org.hibernate.cfg.ImprovedNamingStrategy
-       
 - configure quartz.properties
 
-      
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
-      
-## Use mysql database 
-### Add mysql dependency
+      
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+
+<h2 id = "1.2"></h2>
+
+## Use postgresql database 
+
+### Add postgresql dependency
 
     <dependency>
-        <groupId>mysql</groupId>
-        <artifactId>mysql-connector-java</artifactId>
+        <groupId>org.postgresql</groupId>
+        <artifactId>postgresql</artifactId>
     </dependency>
-### Configure properties
 
+### Configure properties
 - configure application.properties
 
-        spring.datasource.url = 
jdbc:mysql://localhost:3306/quartz?autoReconnect=true&useSSL=false
+        spring.datasource.url = 
jdbc:postgresql://localhost:5432/quartz?autoReconnect=true&useSSL=false
         spring.datasource.username = griffin
         spring.datasource.password = 123456
         spring.jpa.generate-ddl=true
-        spring.datasource.driver-class-name = com.mysql.jdbc.Driver
+        spring.datasource.driver-class-name = org.postgresql.Driver
         spring.jpa.show-sql = true
-   If you use hibernate as your jpa implentation, you need also to add 
following configuration.
+  If you use hibernate as your jpa implentation, you need also to add 
following configuration.
      
         spring.jpa.hibernate.ddl-auto = update
         spring.jpa.hibernate.naming-strategy = 
org.hibernate.cfg.ImprovedNamingStrategy
+       
 - configure quartz.properties
 
-      
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
-
+      
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
+      

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/359bfe23/service/hibernate_mysql_pom.xml
----------------------------------------------------------------------
diff --git a/service/hibernate_mysql_pom.xml b/service/hibernate_mysql_pom.xml
new file mode 100644
index 0000000..5a1be46
--- /dev/null
+++ b/service/hibernate_mysql_pom.xml
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.griffin</groupId>
+        <artifactId>griffin</artifactId>
+        <version>0.2.0-incubating-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>service</artifactId>
+    <packaging>jar</packaging>
+
+    <name>Apache Griffin :: Web Service</name>
+
+    <properties>
+        <java.version>1.8</java.version>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <hadoop.version>2.7.1</hadoop.version>
+        <hive.version>1.2.1</hive.version>
+        <scala.version>2.10</scala.version>
+        <spring.boot.version>1.5.1.RELEASE</spring.boot.version>
+        <confluent.version>3.2.0</confluent.version>
+        <quartz.version>2.2.1</quartz.version>
+        
<start-class>org.apache.griffin.core.GriffinWebApplication</start-class>
+        <powermock.version>1.6.6</powermock.version>
+        <mockito.version>1.10.19</mockito.version>
+        
<spring-boot-maven-plugin.version>1.5.1.RELEASE</spring-boot-maven-plugin.version>
+        <derby.version>10.14.1.0</derby.version>
+        <eclipselink.version>2.6.0</eclipselink.version>
+    </properties>
+
+    <repositories>
+        <repository>
+            <id>confluent</id>
+            <url>http://packages.confluent.io/maven/</url>
+        </repository>
+    </repositories>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-aspects</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.persistence</groupId>
+            <artifactId>org.eclipse.persistence.jpa</artifactId>
+            <version>${eclipselink.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.retry</groupId>
+            <artifactId>spring-retry</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>2.6.3</version>
+        </dependency>
+        <!-- to access metastore from hive-->
+        <dependency>
+            <groupId>org.apache.hadoop</groupId>
+            <artifactId>hadoop-client</artifactId>
+            <version>${hadoop.version}</version>
+            <!--<scope>provided</scope>-->
+            <exclusions>
+                <exclusion>
+                    <artifactId>servlet-api</artifactId>
+                    <groupId>javax.servlet</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.hive</groupId>
+            <artifactId>hive-metastore</artifactId>
+            <version>${hive.version}</version>
+        </dependency>
+
+        <!-- to access confluent schema registry -->
+        <dependency>
+            <groupId>io.confluent</groupId>
+            <artifactId>kafka-schema-registry-client</artifactId>
+            <version>${confluent.version}</version>
+        </dependency>
+
+        <!--schedule-->
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-context-support</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.quartz-scheduler</groupId>
+            <artifactId>quartz</artifactId>
+            <version>2.2.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.quartz-scheduler</groupId>
+            <artifactId>quartz-jobs</artifactId>
+            <version>2.2.2</version>
+        </dependency>
+
+        <!--livy-core-->
+        <dependency>
+            <groupId>com.cloudera.livy</groupId>
+            <artifactId>livy-core_2.10</artifactId>
+            <version>0.3.0</version>
+        </dependency>
+
+        <!-- test -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.powermock</groupId>
+            <artifactId>powermock-api-mockito</artifactId>
+            <version>${powermock.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.powermock</groupId>
+            <artifactId>powermock-module-junit4</artifactId>
+            <version>${powermock.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>com.h2database</groupId>
+            <artifactId>h2</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.elasticsearch.client</groupId>
+            <artifactId>elasticsearch-rest-client</artifactId>
+            <version>6.0.1</version>
+        </dependency>
+    </dependencies>
+    <profiles>
+    </profiles>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot-maven-plugin.version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <fork>true</fork>
+                    <layout>ZIP</layout>
+                    
<mainClass>org.apache.griffin.core.GriffinWebApplication</mainClass>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.6.1</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                </configuration>
+
+            </plugin>
+        </plugins>
+    </build>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/359bfe23/service/src/main/java/org/apache/griffin/core/util/PropertiesUtil.java
----------------------------------------------------------------------
diff --git 
a/service/src/main/java/org/apache/griffin/core/util/PropertiesUtil.java 
b/service/src/main/java/org/apache/griffin/core/util/PropertiesUtil.java
index 415c9c1..28cd4e8 100644
--- a/service/src/main/java/org/apache/griffin/core/util/PropertiesUtil.java
+++ b/service/src/main/java/org/apache/griffin/core/util/PropertiesUtil.java
@@ -51,9 +51,9 @@ public class PropertiesUtil {
     }
 
     /**
-     * @param name properties name like sparkJob.properties
+     * @param name        properties name like sparkJob.properties
      * @param defaultPath properties classpath like /application.properties
-     * @param location custom properties path
+     * @param location    custom properties path
      * @return Properties
      * @throws FileNotFoundException location setting is wrong that there is 
no target file.
      */
@@ -66,10 +66,10 @@ public class PropertiesUtil {
         } else {
             resource = new InputStreamResource(new FileInputStream(path));
         }
-        return PropertiesUtil.getProperties(path, resource);
+        return getProperties(path, resource);
     }
 
-    private static String getConfPath(String name, String location) throws 
FileNotFoundException {
+    private static String getConfPath(String name, String location) {
         if (StringUtils.isEmpty(location)) {
             LOGGER.info("Config location is empty. Read from default path.");
             return null;
@@ -78,8 +78,8 @@ public class PropertiesUtil {
         LOGGER.info("File absolute path:" + file.getAbsolutePath());
         File[] files = file.listFiles();
         if (files == null) {
-            LOGGER.warn("The defaultPath {} does not exist.Please check your 
config in application.properties.", location);
-            throw new FileNotFoundException();
+            LOGGER.warn("The external.config.location '{}' does not exist.Read 
from default path.", location);
+            return null;
         }
         return getConfPath(name, files, location);
     }

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/359bfe23/service/src/main/resources/application.properties
----------------------------------------------------------------------
diff --git a/service/src/main/resources/application.properties 
b/service/src/main/resources/application.properties
index c8f1992..555e317 100644
--- a/service/src/main/resources/application.properties
+++ b/service/src/main/resources/application.properties
@@ -22,14 +22,10 @@ spring.datasource.username = griffin
 spring.datasource.password = 123456
 spring.jpa.generate-ddl=true
 
-spring.datasource.driverClassName = org.postgresql.Driver
+spring.datasource.driver-class-name = org.postgresql.Driver
 
 spring.jpa.show-sql = true
 
-#spring.jpa.properties.eclipselink.weaving=static
-#spring.jpa.properties.persistence-unit-name=eclipselink-example
-#spring.jpa.properties.persistence-xml-location=persistence.xml
-
 # Hive metastore
 hive.metastore.uris = thrift://localhost:9083
 hive.metastore.dbname = default

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/359bfe23/service/src/main/resources/quartz.properties
----------------------------------------------------------------------
diff --git a/service/src/main/resources/quartz.properties 
b/service/src/main/resources/quartz.properties
index aaf24fe..503a8bc 100644
--- a/service/src/main/resources/quartz.properties
+++ b/service/src/main/resources/quartz.properties
@@ -22,6 +22,8 @@ org.quartz.scheduler.instanceName=spring-boot-quartz
 org.quartz.scheduler.instanceId=AUTO
 org.quartz.threadPool.threadCount=5
 org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
+# If you use postgresql as your database,set this property value to 
org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
+# If you use mysql as your database,set this property value to 
org.quartz.impl.jdbcjobstore.StdJDBCDelegate
 
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
 org.quartz.jobStore.useProperties=true
 org.quartz.jobStore.misfireThreshold=60000

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/359bfe23/service/src/test/java/org/apache/griffin/core/config/PropertiesConfigTest.java
----------------------------------------------------------------------
diff --git 
a/service/src/test/java/org/apache/griffin/core/config/PropertiesConfigTest.java
 
b/service/src/test/java/org/apache/griffin/core/config/PropertiesConfigTest.java
index 2b8b2cf..547cb97 100644
--- 
a/service/src/test/java/org/apache/griffin/core/config/PropertiesConfigTest.java
+++ 
b/service/src/test/java/org/apache/griffin/core/config/PropertiesConfigTest.java
@@ -112,10 +112,6 @@ public class PropertiesConfigTest {
         assertEquals(conf.get("sparkJob.name"), "test");
     }
 
-    @Test(expected = FileNotFoundException.class)
-    public void livyConfWithFileNotFoundException() throws 
FileNotFoundException {
-        livyNotFoundConfig.livyConf();
-    }
 
     @Test
     public void quartzConfWithLocationNotNull() throws Exception {
@@ -128,10 +124,4 @@ public class PropertiesConfigTest {
         Properties conf = noQuartzConf.quartzConf();
         assertEquals(conf.get("org.quartz.scheduler.instanceName"), 
"spring-boot-quartz-test");
     }
-
-    @Test(expected = FileNotFoundException.class)
-    public void quartzConfWithFileNotFoundException() throws 
FileNotFoundException {
-        quartzNotFoundConfig.livyConf();
-    }
-
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/359bfe23/service/src/test/java/org/apache/griffin/core/measure/MeasureOrgServiceImplTest.java
----------------------------------------------------------------------
diff --git 
a/service/src/test/java/org/apache/griffin/core/measure/MeasureOrgServiceImplTest.java
 
b/service/src/test/java/org/apache/griffin/core/measure/MeasureOrgServiceImplTest.java
index 939c0da..cc3828a 100644
--- 
a/service/src/test/java/org/apache/griffin/core/measure/MeasureOrgServiceImplTest.java
+++ 
b/service/src/test/java/org/apache/griffin/core/measure/MeasureOrgServiceImplTest.java
@@ -28,10 +28,7 @@ import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.springframework.test.context.junit4.SpringRunner;
 
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import static org.apache.griffin.core.util.EntityHelper.createGriffinMeasure;
 import static org.apache.griffin.core.util.EntityHelper.createJobDetailMap;
@@ -76,10 +73,10 @@ public class MeasureOrgServiceImplTest {
     }
 
     @Test
-    public void testGetMeasureNamesGroupByOrgWithNull() throws Exception {
-        when(measureRepo.findByDeleted(false)).thenReturn(null);
+    public void testGetMeasureNamesGroupByOrgWithEmpty(){
+        when(measureRepo.findByDeleted(false)).thenReturn(new ArrayList<>());
         Map<String, List<String>> map = service.getMeasureNamesGroupByOrg();
-        assert map == null;
+        assert map.size() == 0;
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/359bfe23/service/src/test/java/org/apache/griffin/core/util/PropertiesUtilTest.java
----------------------------------------------------------------------
diff --git 
a/service/src/test/java/org/apache/griffin/core/util/PropertiesUtilTest.java 
b/service/src/test/java/org/apache/griffin/core/util/PropertiesUtilTest.java
index 80481b3..e0ffbb6 100644
--- a/service/src/test/java/org/apache/griffin/core/util/PropertiesUtilTest.java
+++ b/service/src/test/java/org/apache/griffin/core/util/PropertiesUtilTest.java
@@ -62,14 +62,6 @@ public class PropertiesUtilTest {
         assert properties != null;
     }
 
-    @Test(expected = FileNotFoundException.class)
-    public void testGetConfWithLocationWrong() throws FileNotFoundException {
-        String name = "sparkJob.properties";
-        String defaultPath = "/" + name;
-        String location = "wrong/path";
-        getConf(name, defaultPath, location);
-    }
-
     @Test
     public void testGetConfWithNoLocation() throws FileNotFoundException {
         String name = "sparkJob.properties";

Reply via email to