From b5aa18dd5b02118eba1a13ffd179a192507bf2d8 Mon Sep 17 00:00:00 2001 From: devezhao-mac Date: Wed, 30 Jan 2019 00:32:05 +0800 Subject: [PATCH 01/15] SNAPSHOT --- pom.xml | 2 +- src/main/java/com/rebuild/server/Application.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index eee180543..d04633788 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.rebuild rebuild war - 1.0.0-PREVIEW + 1.0.0-SNAPSHOT rebuild Building your system free! https://getrebuild.com/ diff --git a/src/main/java/com/rebuild/server/Application.java b/src/main/java/com/rebuild/server/Application.java index 038b248dc..a41dda847 100644 --- a/src/main/java/com/rebuild/server/Application.java +++ b/src/main/java/com/rebuild/server/Application.java @@ -55,7 +55,7 @@ public final class Application { /** Rebuild Version */ - public static final String VER = "1.0.0-PREVIEW"; + public static final String VER = "1.0.0-SNAPSHOT"; /** Logging for Global */ From c18b4708393ddadb0d3b649fda56dcebbfce8e59 Mon Sep 17 00:00:00 2001 From: devezhao-mac Date: Wed, 30 Jan 2019 01:27:20 +0800 Subject: [PATCH 02/15] travis --- .setup/mysql-init.sql | 12 +++++++----- .travis.yml | 8 +++++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.setup/mysql-init.sql b/.setup/mysql-init.sql index 957b83593..a86aea7a9 100644 --- a/.setup/mysql-init.sql +++ b/.setup/mysql-init.sql @@ -1,12 +1,14 @@ --- Init db/user - +-- #1 database/user +-- NOTE : UNCOMMENT IF NEEDED +/* CREATE DATABASE `rebuild10` DEFAULT CHARSET utf8 COLLATE utf8_general_ci; CREATE USER 'rebuild'@'127.0.0.1' IDENTIFIED BY 'rebuild'; GRANT ALL PRIVILEGES ON `rebuild10`.* TO 'rebuild'@'127.0.0.1'; - +FLUSH PRIVILEGES; USE `rebuild10`; +*/ --- Init schemas +-- #2 schemas -- Generated by SchemaGen.java -- ************ Entity [User] DDL ************ @@ -286,7 +288,7 @@ create table if not exists `attachment_folder` ( )Engine=InnoDB; --- Init data +-- #3 datas -- User INSERT INTO `user` (`USER_ID`, `LOGIN_NAME`, `PASSWORD`, `FULL_NAME`, `DEPT_ID`, `ROLE_ID`, `IS_DISABLED`, `CREATED_ON`, `CREATED_BY`, `MODIFIED_ON`, `MODIFIED_BY`, `QUICK_CODE`) diff --git a/.travis.yml b/.travis.yml index d35f71b14..f2904b3d6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,13 +1,15 @@ language: java sudo: false -script: mvn install -DskipTests=true -Denv=travis-ci -B -V +script: mvn install -DskipTests=false -Denv=travis-ci -B -V services: - mysql + - redis before_install: -# - mysql -e 'CREATE DATABASE IF NOT EXISTS test;' - - mysql -e "CREATE DATABASE `rebuild10` DEFAULT CHARSET utf8 COLLATE utf8_general_ci; CREATE USER 'rebuild'@'127.0.0.1' IDENTIFIED BY 'rebuild'; GRANT ALL PRIVILEGES ON `rebuild10`.* TO 'rebuild'@'127.0.0.1';" + - mysql -e "CREATE DATABASE `rebuild10` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;" + - mysql -e "CREATE USER 'rebuild'@'127.0.0.1' IDENTIFIED BY 'rebuild'; GRANT ALL PRIVILEGES ON `rebuild10`.* TO 'rebuild'@'127.0.0.1'; FLUSH PRIVILEGES;" + - mysql -D rebuild10 < .setup/mysql-init.sql #script: "mvn cobertura:cobertura" #after_success: From 06ee84017ab21a464ba3c99adfd44b4fa17c9345 Mon Sep 17 00:00:00 2001 From: devezhao Date: Wed, 30 Jan 2019 15:07:35 +0800 Subject: [PATCH 03/15] Update .travis.yml --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index f2904b3d6..cc73300f7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,8 +7,8 @@ services: - redis before_install: - - mysql -e "CREATE DATABASE `rebuild10` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;" - - mysql -e "CREATE USER 'rebuild'@'127.0.0.1' IDENTIFIED BY 'rebuild'; GRANT ALL PRIVILEGES ON `rebuild10`.* TO 'rebuild'@'127.0.0.1'; FLUSH PRIVILEGES;" + - mysql -e "CREATE DATABASE rebuild10 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;" + - mysql -e "CREATE USER 'rebuild'@'127.0.0.1' IDENTIFIED BY 'rebuild'; GRANT ALL PRIVILEGES ON rebuild10.* TO 'rebuild'@'127.0.0.1'; FLUSH PRIVILEGES;" - mysql -D rebuild10 < .setup/mysql-init.sql #script: "mvn cobertura:cobertura" From 4aec020e25f5f761af0fd0b4a0ca45f2ec0fde84 Mon Sep 17 00:00:00 2001 From: devezhao Date: Wed, 30 Jan 2019 15:23:07 +0800 Subject: [PATCH 04/15] travis-ci --- .travis.yml | 2 +- .../java/com/rebuild/server/TestSupport.java | 4 +- .../java/com/rebuild/server/TravisCI.java | 43 ------------------- 3 files changed, 3 insertions(+), 46 deletions(-) delete mode 100644 src/test/java/com/rebuild/server/TravisCI.java diff --git a/.travis.yml b/.travis.yml index cc73300f7..37c71c310 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: java sudo: false -script: mvn install -DskipTests=false -Denv=travis-ci -B -V +script: mvn install -DskipTests=false -B -V services: - mysql diff --git a/src/test/java/com/rebuild/server/TestSupport.java b/src/test/java/com/rebuild/server/TestSupport.java index a3b19741a..6b5935dfb 100644 --- a/src/test/java/com/rebuild/server/TestSupport.java +++ b/src/test/java/com/rebuild/server/TestSupport.java @@ -49,8 +49,8 @@ public class TestSupport { @BeforeClass public static void startup() throws Exception { LOG.warn("TESTING Startup ..."); - if ("travis-ci".equals(System.getProperty("env"))) { - TravisCI.install(); + if ("true".equals(System.getProperty("TRAVIS"))) { + LOG.warn("TESTING in travis-ci ..."); } Application.debug(); diff --git a/src/test/java/com/rebuild/server/TravisCI.java b/src/test/java/com/rebuild/server/TravisCI.java deleted file mode 100644 index 66f34402f..000000000 --- a/src/test/java/com/rebuild/server/TravisCI.java +++ /dev/null @@ -1,43 +0,0 @@ -/* -rebuild - Building your system freely. -Copyright (C) 2018 devezhao - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -package com.rebuild.server; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -/** - * - * @author devezhao - * @since 01/26/2019 - */ -public class TravisCI { - - private static final Log LOG = LogFactory.getLog(TravisCI.class); - - /** - * travis-ci install - */ - public static void install() throws Exception { - LOG.warn("Preparing travis-ci TODO ..."); - -// Class.forName(Driver.class.getName()); -// Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:4653/test", "root", ""); -// Statement stmt = conn.createStatement(); - } -} From e518b11f4c4d8d129bfa03978f010b7129a970e3 Mon Sep 17 00:00:00 2001 From: devezhao Date: Wed, 30 Jan 2019 15:42:30 +0800 Subject: [PATCH 05/15] travis-ci devezhao committed --- src/main/java/com/rebuild/utils/AES.java | 3 ++- src/test/java/com/rebuild/server/MiscTest.java | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/rebuild/utils/AES.java b/src/main/java/com/rebuild/utils/AES.java index 4cdd7e288..040e504b8 100644 --- a/src/main/java/com/rebuild/utils/AES.java +++ b/src/main/java/com/rebuild/utils/AES.java @@ -86,7 +86,8 @@ public class AES { * @return */ public static String getPassKey() { - String key = StringUtils.defaultIfEmpty(System.getProperty("rbpass"), "REBUILD2018"); + String key = StringUtils.defaultIfEmpty(System.getenv("rbpass"), System.getProperty("rbpass")); + key = StringUtils.defaultIfEmpty(key, "REBUILD2018"); key = StringUtils.leftPad(key, 16, "0").substring(0, 16); return key; } diff --git a/src/test/java/com/rebuild/server/MiscTest.java b/src/test/java/com/rebuild/server/MiscTest.java index a2b812756..0289f0d34 100644 --- a/src/test/java/com/rebuild/server/MiscTest.java +++ b/src/test/java/com/rebuild/server/MiscTest.java @@ -37,5 +37,9 @@ public class MiscTest { public void testJson2String() throws Exception { System.out.println(JSON.toJSONString(ID.newId(0))); System.out.println(JSON.toJSONString(new Date())); + + System.out.println(System.getenv("rbpass")); + System.out.println(System.getProperty("rbpass")); + } } From 6b177cc190c827b4504a301fba12b299c659d3a9 Mon Sep 17 00:00:00 2001 From: devezhao Date: Wed, 30 Jan 2019 15:50:32 +0800 Subject: [PATCH 06/15] travis-ci --- src/main/resources/application-ctx.xml | 2 +- src/test/java/com/rebuild/server/MiscTest.java | 4 ++-- src/test/java/com/rebuild/server/TestSupport.java | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/resources/application-ctx.xml b/src/main/resources/application-ctx.xml index e29c0f1ba..36e369a77 100644 --- a/src/main/resources/application-ctx.xml +++ b/src/main/resources/application-ctx.xml @@ -37,7 +37,7 @@ - + diff --git a/src/test/java/com/rebuild/server/MiscTest.java b/src/test/java/com/rebuild/server/MiscTest.java index 0289f0d34..1edcd212c 100644 --- a/src/test/java/com/rebuild/server/MiscTest.java +++ b/src/test/java/com/rebuild/server/MiscTest.java @@ -38,8 +38,8 @@ public class MiscTest { System.out.println(JSON.toJSONString(ID.newId(0))); System.out.println(JSON.toJSONString(new Date())); - System.out.println(System.getenv("rbpass")); - System.out.println(System.getProperty("rbpass")); + System.out.println(System.getenv()); + System.out.println(System.getProperties()); } } diff --git a/src/test/java/com/rebuild/server/TestSupport.java b/src/test/java/com/rebuild/server/TestSupport.java index 6b5935dfb..32a3ad43a 100644 --- a/src/test/java/com/rebuild/server/TestSupport.java +++ b/src/test/java/com/rebuild/server/TestSupport.java @@ -39,7 +39,7 @@ import cn.devezhao.persist4j.Entity; public class TestSupport { static { - System.setProperty("catalina.home", "/data/"); + System.setProperty("catalina.home", System.getProperty("java.io.tmpdir")); } protected static final Log LOG = LogFactory.getLog(TestSupport.class); @@ -49,8 +49,8 @@ public class TestSupport { @BeforeClass public static void startup() throws Exception { LOG.warn("TESTING Startup ..."); - if ("true".equals(System.getProperty("TRAVIS"))) { - LOG.warn("TESTING in travis-ci ..."); + if ("true".equals(System.getenv("TRAVIS"))) { + LOG.warn("TESTING in TravisCI ..."); } Application.debug(); From c7beac08b6049431169e618db89fafd02cb87608 Mon Sep 17 00:00:00 2001 From: devezhao Date: Wed, 30 Jan 2019 16:00:02 +0800 Subject: [PATCH 07/15] mysql port to 3306 --- src/main/resources/jdbc.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/jdbc.properties b/src/main/resources/jdbc.properties index 5ee92d572..b1eba6f38 100644 --- a/src/main/resources/jdbc.properties +++ b/src/main/resources/jdbc.properties @@ -1,7 +1,7 @@ # # DB settings -db.url=jdbc:mysql://127.0.0.1:4653/rebuild10?useUnicode=true&characterEncoding=UTF-8&useSSL=false&zeroDateTimeBehavior=convertToNull +db.url=jdbc:mysql://127.0.0.1:3306/rebuild10?useUnicode=true&characterEncoding=UTF-8&useSSL=false&zeroDateTimeBehavior=convertToNull db.user=rebuild db.passwd=rebuild db.driver=com.mysql.jdbc.Driver From c1b6fa5019d6237c69282d177c7e71a5ca0a35b5 Mon Sep 17 00:00:00 2001 From: devezhao Date: Wed, 30 Jan 2019 16:20:26 +0800 Subject: [PATCH 08/15] travis-ci --- .../helper/AesPreferencesConfigurer.java | 8 +++++ src/main/resources/application-ctx.xml | 2 +- .../java/com/rebuild/server/TestSupport.java | 2 +- .../business/datas/DataFileParserTest.java | 32 +++++++++++++++---- 4 files changed, 35 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/rebuild/server/helper/AesPreferencesConfigurer.java b/src/main/java/com/rebuild/server/helper/AesPreferencesConfigurer.java index 2369ca124..6d8b63434 100644 --- a/src/main/java/com/rebuild/server/helper/AesPreferencesConfigurer.java +++ b/src/main/java/com/rebuild/server/helper/AesPreferencesConfigurer.java @@ -59,6 +59,14 @@ public class AesPreferencesConfigurer extends PreferencesPlaceholderConfigurer { props.put(cleanKey, valInCL); } } + + String mysqlPort = System.getProperty("mysql.port"); + if (StringUtils.isNotBlank(mysqlPort)) { + String dbUrl = props.getProperty("db.url"); + dbUrl = dbUrl.replace("3306", "4653"); + props.put("db.url", dbUrl); + } + propsHold = (Properties) props.clone(); } diff --git a/src/main/resources/application-ctx.xml b/src/main/resources/application-ctx.xml index 36e369a77..6dc0ed47e 100644 --- a/src/main/resources/application-ctx.xml +++ b/src/main/resources/application-ctx.xml @@ -37,7 +37,7 @@ - + diff --git a/src/test/java/com/rebuild/server/TestSupport.java b/src/test/java/com/rebuild/server/TestSupport.java index 32a3ad43a..1735f3090 100644 --- a/src/test/java/com/rebuild/server/TestSupport.java +++ b/src/test/java/com/rebuild/server/TestSupport.java @@ -44,7 +44,7 @@ public class TestSupport { protected static final Log LOG = LogFactory.getLog(TestSupport.class); - protected static final String TEST_ENTITY = "TestAllFieldsRB10"; + protected static final String TEST_ENTITY = "TestAllFields"; @BeforeClass public static void startup() throws Exception { diff --git a/src/test/java/com/rebuild/server/business/datas/DataFileParserTest.java b/src/test/java/com/rebuild/server/business/datas/DataFileParserTest.java index 20c3f3bff..35dc535f9 100644 --- a/src/test/java/com/rebuild/server/business/datas/DataFileParserTest.java +++ b/src/test/java/com/rebuild/server/business/datas/DataFileParserTest.java @@ -19,12 +19,15 @@ along with this program. If not, see . package com.rebuild.server.business.datas; import java.io.File; +import java.net.URISyntaxException; import java.net.URL; import java.util.List; import org.apache.commons.lang.StringUtils; import org.junit.Test; +import com.rebuild.server.TestSupport; + import cn.devezhao.commons.excel.Cell; /** @@ -32,12 +35,14 @@ import cn.devezhao.commons.excel.Cell; * @author devezhao * @since 01/09/2019 */ -public class DataFileParserTest { +public class DataFileParserTest extends TestSupport { @Test public void testExcel() throws Exception { - URL testFile = DataFileParserTest.class.getResource("dataimports-test.xls"); - DataFileParser fileParser = new DataFileParser(new File(testFile.toURI())); + DataFileParser fileParser = getDataFileParser("dataimports-test.xls"); + if (fileParser == null) { + return; + } System.out.println(fileParser.getRowsCount()); List rows = fileParser.parse(10); @@ -49,8 +54,10 @@ public class DataFileParserTest { @Test public void testCSV() throws Exception { - URL testFile = DataFileParserTest.class.getResource("dataimports-test.csv"); - DataFileParser fileParser = new DataFileParser(new File(testFile.toURI())); + DataFileParser fileParser = getDataFileParser("dataimports-test.csv"); + if (fileParser == null) { + return; + } System.out.println(fileParser.getRowsCount()); List rows = fileParser.parse(10); @@ -62,8 +69,10 @@ public class DataFileParserTest { @Test public void testXExcel() throws Exception { - URL testFile = DataFileParserTest.class.getResource("dataimports-test.xlsx"); - DataFileParser fileParser = new DataFileParser(new File(testFile.toURI())); + DataFileParser fileParser = getDataFileParser("dataimports-test.xlsx"); + if (fileParser == null) { + return; + } System.out.println(fileParser.getRowsCount()); List rows = fileParser.parse(50); @@ -72,4 +81,13 @@ public class DataFileParserTest { } fileParser.close(); } + + static DataFileParser getDataFileParser(String fileName) throws URISyntaxException { + URL testFile = DataFileParserTest.class.getClassLoader().getResource("com/rebuild/server/business/datas/" + fileName); + if (testFile == null) { + LOG.warn("No file found : " + fileName); + return null; + } + return new DataFileParser(new File(testFile.toURI())); + } } From 9580d257779aedfdaf95d6da63772bcbabe2f127 Mon Sep 17 00:00:00 2001 From: devezhao Date: Wed, 30 Jan 2019 16:21:14 +0800 Subject: [PATCH 09/15] Update MiscTest.java --- src/test/java/com/rebuild/server/MiscTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/java/com/rebuild/server/MiscTest.java b/src/test/java/com/rebuild/server/MiscTest.java index 1edcd212c..4d57f36fb 100644 --- a/src/test/java/com/rebuild/server/MiscTest.java +++ b/src/test/java/com/rebuild/server/MiscTest.java @@ -25,6 +25,7 @@ import org.junit.Test; import com.alibaba.fastjson.JSON; import cn.devezhao.persist4j.engine.ID; +import jdk.nashorn.internal.ir.annotations.Ignore; /** * @@ -33,6 +34,7 @@ import cn.devezhao.persist4j.engine.ID; */ public class MiscTest { + @Ignore @Test public void testJson2String() throws Exception { System.out.println(JSON.toJSONString(ID.newId(0))); From 12d39328a8214a68ab3e7f00123912e50b5d2712 Mon Sep 17 00:00:00 2001 From: devezhao Date: Wed, 30 Jan 2019 16:33:50 +0800 Subject: [PATCH 10/15] travis-ci --- .../java/com/rebuild/server/business/datas/ImportEnter.java | 5 +++-- src/test/java/com/rebuild/server/MiscTest.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/rebuild/server/business/datas/ImportEnter.java b/src/main/java/com/rebuild/server/business/datas/ImportEnter.java index 201d33d3c..e4b63b740 100644 --- a/src/main/java/com/rebuild/server/business/datas/ImportEnter.java +++ b/src/main/java/com/rebuild/server/business/datas/ImportEnter.java @@ -114,10 +114,11 @@ public class ImportEnter { Assert.notNull(rule.getJSONObject("fields_mapping"), "Node `fields_mapping`"); Entity entity = MetadataHelper.getEntity(rule.getString("entity")); - File file = SystemConfiguration.getFileOfTemp(rule.getString("file")); + + // for TestCase if (!file.exists()) { - URL classpathFile = ImportEnter.class.getResource(rule.getString("file")); + URL classpathFile = ImportEnter.class.getClassLoader().getResource("com/rebuild/server/business/datas/" + rule.getString("file")); try { file = new File(classpathFile.toURI()); } catch (URISyntaxException e) { diff --git a/src/test/java/com/rebuild/server/MiscTest.java b/src/test/java/com/rebuild/server/MiscTest.java index 4d57f36fb..0a54b22ea 100644 --- a/src/test/java/com/rebuild/server/MiscTest.java +++ b/src/test/java/com/rebuild/server/MiscTest.java @@ -20,12 +20,12 @@ package com.rebuild.server; import java.util.Date; +import org.junit.Ignore; import org.junit.Test; import com.alibaba.fastjson.JSON; import cn.devezhao.persist4j.engine.ID; -import jdk.nashorn.internal.ir.annotations.Ignore; /** * From 209ed108571e609f849749f4f0234643b1418f2a Mon Sep 17 00:00:00 2001 From: devezhao Date: Wed, 30 Jan 2019 16:40:54 +0800 Subject: [PATCH 11/15] Update ImportEnter.java --- .../server/business/datas/ImportEnter.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/rebuild/server/business/datas/ImportEnter.java b/src/main/java/com/rebuild/server/business/datas/ImportEnter.java index e4b63b740..f072a402e 100644 --- a/src/main/java/com/rebuild/server/business/datas/ImportEnter.java +++ b/src/main/java/com/rebuild/server/business/datas/ImportEnter.java @@ -118,16 +118,15 @@ public class ImportEnter { // for TestCase if (!file.exists()) { - URL classpathFile = ImportEnter.class.getClassLoader().getResource("com/rebuild/server/business/datas/" + rule.getString("file")); - try { - file = new File(classpathFile.toURI()); - } catch (URISyntaxException e) { - throw new IllegalArgumentException("File not found : " + file, e); + URL testFile = ImportEnter.class.getClassLoader().getResource("com/rebuild/server/business/datas/" + rule.getString("file")); + if (testFile != null) { + try { + file = new File(testFile.toURI()); + } catch (URISyntaxException e) { + throw new IllegalArgumentException("File not found : " + file, e); + } } } - if (!file.exists()) { - throw new IllegalArgumentException("File not found : " + file); - } int repeatOpt = rule.getIntValue("repeat_opt"); Field[] repeatFields = null; From e9cce6dbdb75ebfc1ccdbe8fc14382cbf5862fd0 Mon Sep 17 00:00:00 2001 From: devezhao Date: Wed, 30 Jan 2019 16:54:33 +0800 Subject: [PATCH 12/15] travis-ci --- .../server/business/datas/ImportEnter.java | 24 ++++++++++-------- .../business/datas/DataImporterTest.java | 25 ++++++++++++++----- 2 files changed, 33 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/rebuild/server/business/datas/ImportEnter.java b/src/main/java/com/rebuild/server/business/datas/ImportEnter.java index f072a402e..9e59b3a38 100644 --- a/src/main/java/com/rebuild/server/business/datas/ImportEnter.java +++ b/src/main/java/com/rebuild/server/business/datas/ImportEnter.java @@ -19,8 +19,6 @@ along with this program. If not, see . package com.rebuild.server.business.datas; import java.io.File; -import java.net.URISyntaxException; -import java.net.URL; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -108,6 +106,16 @@ public class ImportEnter { * @throws IllegalArgumentException */ public static ImportEnter parse(JSONObject rule) throws IllegalArgumentException { + return parse(rule, null); + } + + /** + * @param rule + * @param forTest + * @return + * @throws IllegalArgumentException + */ + protected static ImportEnter parse(JSONObject rule, File forTest) throws IllegalArgumentException { Assert.notNull(rule.getString("entity"), "Node `entity`"); Assert.notNull(rule.getString("file"), "Node `file`"); Assert.notNull(rule.getInteger("repeat_opt"), "Node `repeat_opt`"); @@ -118,14 +126,10 @@ public class ImportEnter { // for TestCase if (!file.exists()) { - URL testFile = ImportEnter.class.getClassLoader().getResource("com/rebuild/server/business/datas/" + rule.getString("file")); - if (testFile != null) { - try { - file = new File(testFile.toURI()); - } catch (URISyntaxException e) { - throw new IllegalArgumentException("File not found : " + file, e); - } - } + file = forTest; + } + if (!file.exists()) { + throw new IllegalArgumentException("File not found : " + file); } int repeatOpt = rule.getIntValue("repeat_opt"); diff --git a/src/test/java/com/rebuild/server/business/datas/DataImporterTest.java b/src/test/java/com/rebuild/server/business/datas/DataImporterTest.java index 021e6c574..1a141a968 100644 --- a/src/test/java/com/rebuild/server/business/datas/DataImporterTest.java +++ b/src/test/java/com/rebuild/server/business/datas/DataImporterTest.java @@ -18,6 +18,10 @@ along with this program. If not, see . package com.rebuild.server.business.datas; +import java.io.File; +import java.net.URISyntaxException; +import java.net.URL; + import org.junit.Test; import com.alibaba.fastjson.JSON; @@ -34,15 +38,15 @@ public class DataImporterTest extends TestSupport { @Test public void testParseEnter() throws Exception { JSONObject rule = JSON.parseObject("{ file:'dataimports-test.csv', entity:'TestAllFields', repeat_opt:3, fields_mapping:{TestAllFieldsName:5} }"); - ImportEnter importsEnter = ImportEnter.parse(rule); + ImportEnter importsEnter = ImportEnter.parse(rule, getFile("dataimports-test.csv")); System.out.println("ImportsEnter 1 : " + importsEnter); - rule = JSON.parseObject("{ file:'dataimports-test.csv', entity:'TestAllFields', repeat_opt:1, repeat_fields:['TestAllFieldsName'], fields_mapping:{TestAllFieldsName:5} }"); - importsEnter = ImportEnter.parse(rule); + rule = JSON.parseObject("{ file:'dataimports-test.xls', entity:'TestAllFields', repeat_opt:1, repeat_fields:['TestAllFieldsName'], fields_mapping:{TestAllFieldsName:5} }"); + importsEnter = ImportEnter.parse(rule, getFile("dataimports-test.xls")); System.out.println("ImportsEnter 2 : " + importsEnter); rule = JSON.parseObject("{ file:'dataimports-test.xlsx', entity:'TestAllFields', repeat_opt:1, repeat_fields:['TestAllFieldsName'], fields_mapping:{TestAllFieldsName:5} }"); - importsEnter = ImportEnter.parse(rule); + importsEnter = ImportEnter.parse(rule, getFile("dataimports-test.xlsx")); System.out.println("ImportsEnter 3 : " + importsEnter); } @@ -51,15 +55,24 @@ public class DataImporterTest extends TestSupport { public void testErrorEnter() throws Exception { JSONObject rule = JSON.parseObject("{ file:'dataimports-test.csv', entity:'TestAllFieldsName', repeat_opt:3, fields_mapping:{ TestAllFieldsName:5 } }"); rule.remove("entity"); - ImportEnter.parse(rule); + ImportEnter.parse(rule, getFile("dataimports-test.csv")); } @Test public void testImports() throws Exception { JSONObject rule = JSON.parseObject("{ file:'dataimports-test.csv', entity:'TestAllFields', repeat_opt:2, repeat_fields:['TestAllFieldsName'], owning_user:'001-0000000000000001', fields_mapping:{TestAllFieldsName:5} }"); - ImportEnter importsEnter = ImportEnter.parse(rule); + ImportEnter importsEnter = ImportEnter.parse(rule, getFile("dataimports-test.csv")); DataImporter dataImports = new DataImporter(importsEnter, UserService.ADMIN_USER); dataImports.run(); } + + static File getFile(String fileName) throws URISyntaxException { + URL testFile = DataImporterTest.class.getClassLoader().getResource("com/rebuild/server/business/datas/" + fileName); + if (testFile == null) { + LOG.warn("No file found : " + fileName); + return null; + } + return new File(testFile.toURI()); + } } From 5737e0a7eff966bba1c5d82220e2f19f11cc6707 Mon Sep 17 00:00:00 2001 From: devezhao Date: Wed, 30 Jan 2019 17:00:59 +0800 Subject: [PATCH 13/15] Update ImportEnter.java --- .../com/rebuild/server/business/datas/ImportEnter.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/rebuild/server/business/datas/ImportEnter.java b/src/main/java/com/rebuild/server/business/datas/ImportEnter.java index 9e59b3a38..1d7dede15 100644 --- a/src/main/java/com/rebuild/server/business/datas/ImportEnter.java +++ b/src/main/java/com/rebuild/server/business/datas/ImportEnter.java @@ -24,6 +24,8 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.springframework.util.Assert; import com.alibaba.fastjson.JSONObject; @@ -41,6 +43,8 @@ import cn.devezhao.persist4j.engine.ID; * @since 01/10/2019 */ public class ImportEnter { + + private static final Log LOG = LogFactory.getLog(ImportEnter.class); public static final int REPEAT_OPT_UPDATE = 1; public static final int REPEAT_OPT_SKIP = 2; @@ -125,10 +129,11 @@ public class ImportEnter { File file = SystemConfiguration.getFileOfTemp(rule.getString("file")); // for TestCase - if (!file.exists()) { + if (file == null || !file.exists()) { file = forTest; + LOG.warn("Use file from TestCase : " + file); } - if (!file.exists()) { + if (file == null || !file.exists()) { throw new IllegalArgumentException("File not found : " + file); } From 993ea067aa1fca330e23fe93b6af24c5715b1c63 Mon Sep 17 00:00:00 2001 From: devezhao Date: Wed, 30 Jan 2019 17:17:56 +0800 Subject: [PATCH 14/15] Add test/resources --- .travis.yml | 2 +- .../server/business/datas/ImportEnter.java | 27 +++++++++--------- .../business/datas/DataFileParserTest.java | 2 +- .../business/datas/DataImporterTest.java | 23 ++++----------- .../datas => resources}/dataimports-test.csv | 0 .../datas => resources}/dataimports-test.xls | Bin .../datas => resources}/dataimports-test.xlsx | Bin 7 files changed, 21 insertions(+), 33 deletions(-) rename src/test/{java/com/rebuild/server/business/datas => resources}/dataimports-test.csv (100%) rename src/test/{java/com/rebuild/server/business/datas => resources}/dataimports-test.xls (100%) rename src/test/{java/com/rebuild/server/business/datas => resources}/dataimports-test.xlsx (100%) diff --git a/.travis.yml b/.travis.yml index 37c71c310..8f9f51318 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: java sudo: false -script: mvn install -DskipTests=false -B -V +script: mvn clean install -DskipTests=false -B -V services: - mysql diff --git a/src/main/java/com/rebuild/server/business/datas/ImportEnter.java b/src/main/java/com/rebuild/server/business/datas/ImportEnter.java index 1d7dede15..b6a4a8844 100644 --- a/src/main/java/com/rebuild/server/business/datas/ImportEnter.java +++ b/src/main/java/com/rebuild/server/business/datas/ImportEnter.java @@ -19,6 +19,8 @@ along with this program. If not, see . package com.rebuild.server.business.datas; import java.io.File; +import java.net.URISyntaxException; +import java.net.URL; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -105,21 +107,13 @@ public class ImportEnter { // -- /** + * 解析导入规则 + * * @param rule * @return * @throws IllegalArgumentException */ public static ImportEnter parse(JSONObject rule) throws IllegalArgumentException { - return parse(rule, null); - } - - /** - * @param rule - * @param forTest - * @return - * @throws IllegalArgumentException - */ - protected static ImportEnter parse(JSONObject rule, File forTest) throws IllegalArgumentException { Assert.notNull(rule.getString("entity"), "Node `entity`"); Assert.notNull(rule.getString("file"), "Node `file`"); Assert.notNull(rule.getInteger("repeat_opt"), "Node `repeat_opt`"); @@ -128,15 +122,22 @@ public class ImportEnter { Entity entity = MetadataHelper.getEntity(rule.getString("entity")); File file = SystemConfiguration.getFileOfTemp(rule.getString("file")); - // for TestCase + // from TestCase if (file == null || !file.exists()) { - file = forTest; + URL testFile = ImportEnter.class.getClassLoader().getResource(rule.getString("file")); + if (testFile != null) { + try { + file = new File(testFile.toURI()); + } catch (URISyntaxException e) { + throw new IllegalArgumentException("File not found : " + file, e); + } + } LOG.warn("Use file from TestCase : " + file); } if (file == null || !file.exists()) { throw new IllegalArgumentException("File not found : " + file); } - + int repeatOpt = rule.getIntValue("repeat_opt"); Field[] repeatFields = null; if (repeatOpt != 3) { diff --git a/src/test/java/com/rebuild/server/business/datas/DataFileParserTest.java b/src/test/java/com/rebuild/server/business/datas/DataFileParserTest.java index 35dc535f9..0174388c9 100644 --- a/src/test/java/com/rebuild/server/business/datas/DataFileParserTest.java +++ b/src/test/java/com/rebuild/server/business/datas/DataFileParserTest.java @@ -83,7 +83,7 @@ public class DataFileParserTest extends TestSupport { } static DataFileParser getDataFileParser(String fileName) throws URISyntaxException { - URL testFile = DataFileParserTest.class.getClassLoader().getResource("com/rebuild/server/business/datas/" + fileName); + URL testFile = DataFileParserTest.class.getClassLoader().getResource(fileName); if (testFile == null) { LOG.warn("No file found : " + fileName); return null; diff --git a/src/test/java/com/rebuild/server/business/datas/DataImporterTest.java b/src/test/java/com/rebuild/server/business/datas/DataImporterTest.java index 1a141a968..04d84690a 100644 --- a/src/test/java/com/rebuild/server/business/datas/DataImporterTest.java +++ b/src/test/java/com/rebuild/server/business/datas/DataImporterTest.java @@ -18,10 +18,6 @@ along with this program. If not, see . package com.rebuild.server.business.datas; -import java.io.File; -import java.net.URISyntaxException; -import java.net.URL; - import org.junit.Test; import com.alibaba.fastjson.JSON; @@ -38,15 +34,15 @@ public class DataImporterTest extends TestSupport { @Test public void testParseEnter() throws Exception { JSONObject rule = JSON.parseObject("{ file:'dataimports-test.csv', entity:'TestAllFields', repeat_opt:3, fields_mapping:{TestAllFieldsName:5} }"); - ImportEnter importsEnter = ImportEnter.parse(rule, getFile("dataimports-test.csv")); + ImportEnter importsEnter = ImportEnter.parse(rule); System.out.println("ImportsEnter 1 : " + importsEnter); rule = JSON.parseObject("{ file:'dataimports-test.xls', entity:'TestAllFields', repeat_opt:1, repeat_fields:['TestAllFieldsName'], fields_mapping:{TestAllFieldsName:5} }"); - importsEnter = ImportEnter.parse(rule, getFile("dataimports-test.xls")); + importsEnter = ImportEnter.parse(rule); System.out.println("ImportsEnter 2 : " + importsEnter); rule = JSON.parseObject("{ file:'dataimports-test.xlsx', entity:'TestAllFields', repeat_opt:1, repeat_fields:['TestAllFieldsName'], fields_mapping:{TestAllFieldsName:5} }"); - importsEnter = ImportEnter.parse(rule, getFile("dataimports-test.xlsx")); + importsEnter = ImportEnter.parse(rule); System.out.println("ImportsEnter 3 : " + importsEnter); } @@ -55,24 +51,15 @@ public class DataImporterTest extends TestSupport { public void testErrorEnter() throws Exception { JSONObject rule = JSON.parseObject("{ file:'dataimports-test.csv', entity:'TestAllFieldsName', repeat_opt:3, fields_mapping:{ TestAllFieldsName:5 } }"); rule.remove("entity"); - ImportEnter.parse(rule, getFile("dataimports-test.csv")); + ImportEnter.parse(rule); } @Test public void testImports() throws Exception { JSONObject rule = JSON.parseObject("{ file:'dataimports-test.csv', entity:'TestAllFields', repeat_opt:2, repeat_fields:['TestAllFieldsName'], owning_user:'001-0000000000000001', fields_mapping:{TestAllFieldsName:5} }"); - ImportEnter importsEnter = ImportEnter.parse(rule, getFile("dataimports-test.csv")); + ImportEnter importsEnter = ImportEnter.parse(rule); DataImporter dataImports = new DataImporter(importsEnter, UserService.ADMIN_USER); dataImports.run(); } - - static File getFile(String fileName) throws URISyntaxException { - URL testFile = DataImporterTest.class.getClassLoader().getResource("com/rebuild/server/business/datas/" + fileName); - if (testFile == null) { - LOG.warn("No file found : " + fileName); - return null; - } - return new File(testFile.toURI()); - } } diff --git a/src/test/java/com/rebuild/server/business/datas/dataimports-test.csv b/src/test/resources/dataimports-test.csv similarity index 100% rename from src/test/java/com/rebuild/server/business/datas/dataimports-test.csv rename to src/test/resources/dataimports-test.csv diff --git a/src/test/java/com/rebuild/server/business/datas/dataimports-test.xls b/src/test/resources/dataimports-test.xls similarity index 100% rename from src/test/java/com/rebuild/server/business/datas/dataimports-test.xls rename to src/test/resources/dataimports-test.xls diff --git a/src/test/java/com/rebuild/server/business/datas/dataimports-test.xlsx b/src/test/resources/dataimports-test.xlsx similarity index 100% rename from src/test/java/com/rebuild/server/business/datas/dataimports-test.xlsx rename to src/test/resources/dataimports-test.xlsx From e3fdc82ddf05ef0f5e36cf0175f12d0469e86e20 Mon Sep 17 00:00:00 2001 From: devezhao Date: Wed, 30 Jan 2019 17:25:36 +0800 Subject: [PATCH 15/15] Update AppUtils.java --- src/main/java/com/rebuild/utils/AppUtils.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/rebuild/utils/AppUtils.java b/src/main/java/com/rebuild/utils/AppUtils.java index 60b8893cd..c6b406fc6 100644 --- a/src/main/java/com/rebuild/utils/AppUtils.java +++ b/src/main/java/com/rebuild/utils/AppUtils.java @@ -44,6 +44,7 @@ public class AppUtils { /** * @return + * @see Application#devMode() */ public static boolean devMode() { return Application.devMode();