From 02195107201ca71a48d4101e9a0ef3726ba8a5a4 Mon Sep 17 00:00:00 2001 From: cytng Date: Tue, 26 Dec 2017 21:32:57 +0800 Subject: [PATCH 1/3] feat: initialize with maven --- common/pom.xml | 40 ++++++++++++ .../org/ridelab/bms/common/five/Five.java | 42 +++++++++++++ .../org/ridelab/bms/common/five/FiveTest.java | 35 +++++++++++ data-schema/pom.xml | 31 ++++++++++ .../java/org/ridelab/bms/entity/Item.java | 13 ++++ pom.xml | 62 +++++++++++++++++++ service/pom.xml | 40 ++++++++++++ .../org/ridelab/bms/service/ItemService.java | 25 ++++++++ .../bms/service/impl/ItemServiceImpl.java | 50 +++++++++++++++ .../ridelab/bms/service/ItemServiceTest.java | 33 ++++++++++ 10 files changed, 371 insertions(+) create mode 100644 common/pom.xml create mode 100644 common/src/main/java/org/ridelab/bms/common/five/Five.java create mode 100644 common/src/test/java/org/ridelab/bms/common/five/FiveTest.java create mode 100644 data-schema/pom.xml create mode 100644 data-schema/src/main/java/org/ridelab/bms/entity/Item.java create mode 100644 pom.xml create mode 100644 service/pom.xml create mode 100644 service/src/main/java/org/ridelab/bms/service/ItemService.java create mode 100644 service/src/main/java/org/ridelab/bms/service/impl/ItemServiceImpl.java create mode 100644 service/src/test/java/org/ridelab/bms/service/ItemServiceTest.java diff --git a/common/pom.xml b/common/pom.xml new file mode 100644 index 0000000..3d83e2c --- /dev/null +++ b/common/pom.xml @@ -0,0 +1,40 @@ + + + + bms-prototype + org.ridelab.bms + 1.0-SNAPSHOT + + 4.0.0 + + jar + common + + + + org.projectlombok + lombok + + + junit + junit + + + org.jetbrains + annotations + + + ch.qos.logback + logback-classic + 1.2.3 + + + org.apache.commons + commons-lang3 + 3.7 + + + + diff --git a/common/src/main/java/org/ridelab/bms/common/five/Five.java b/common/src/main/java/org/ridelab/bms/common/five/Five.java new file mode 100644 index 0000000..1223cd8 --- /dev/null +++ b/common/src/main/java/org/ridelab/bms/common/five/Five.java @@ -0,0 +1,42 @@ +package org.ridelab.bms.common.five; + +import lombok.AccessLevel; +import lombok.experimental.FieldDefaults; +import lombok.experimental.UtilityClass; + +/** + * @see Five + */ +@UtilityClass +@FieldDefaults(level = AccessLevel.PUBLIC) +public class Five { + + int five() { + return 5; + } + + boolean isFive(int n) { + return five() == n; + } + + String esperanto() { + return "kvin"; + } + + String greek() { + return "πέντε"; + } + + String pinyin() { + return "wǔ"; + } + + String morseCode() { + return "....."; + } + + String oclock() { + return "\uD83D\uDD54"; + } + +} diff --git a/common/src/test/java/org/ridelab/bms/common/five/FiveTest.java b/common/src/test/java/org/ridelab/bms/common/five/FiveTest.java new file mode 100644 index 0000000..d33d805 --- /dev/null +++ b/common/src/test/java/org/ridelab/bms/common/five/FiveTest.java @@ -0,0 +1,35 @@ +package org.ridelab.bms.common.five; + +import org.apache.commons.lang3.StringUtils; +import org.junit.Test; +import org.ridelab.bms.common.five.Five; + +import static junit.framework.TestCase.assertTrue; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; + +public class FiveTest { + + @Test + public void five() { + assertEquals(5, Five.five()); + } + + @Test + public void isFive() { + assertTrue(Five.isFive(5)); + assertFalse(Five.isFive(6)); + } + + @Test + public void multilingual() { + assertTrue(StringUtils.isNoneBlank( + Five.esperanto(), + Five.greek(), + Five.pinyin(), + Five.morseCode(), + Five.oclock() + )); + } + +} diff --git a/data-schema/pom.xml b/data-schema/pom.xml new file mode 100644 index 0000000..9d1945e --- /dev/null +++ b/data-schema/pom.xml @@ -0,0 +1,31 @@ + + + + bms-prototype + org.ridelab.bms + 1.0-SNAPSHOT + + 4.0.0 + + jar + data-schema + + + + org.projectlombok + lombok + + + org.jetbrains + annotations + + + org.ridelab.bms + common + 1.0-SNAPSHOT + + + + diff --git a/data-schema/src/main/java/org/ridelab/bms/entity/Item.java b/data-schema/src/main/java/org/ridelab/bms/entity/Item.java new file mode 100644 index 0000000..3f85de1 --- /dev/null +++ b/data-schema/src/main/java/org/ridelab/bms/entity/Item.java @@ -0,0 +1,13 @@ +package org.ridelab.bms.entity; + +import lombok.Value; + +@Value(staticConstructor = "of") +public class Item { + + String name; + + long id; + +} + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..452c615 --- /dev/null +++ b/pom.xml @@ -0,0 +1,62 @@ + + + 4.0.0 + + org.ridelab.bms + bms-prototype + pom + 1.0-SNAPSHOT + + + common + data-schema + service + + + + utf-8 + + + + + + org.projectlombok + lombok + 1.16.18 + + + junit + junit + 4.12 + test + + + org.jetbrains + annotations + 15.0 + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + utf-8 + + + + org.apache.maven.plugins + maven-checkstyle-plugin + 2.9.1 + + + + + diff --git a/service/pom.xml b/service/pom.xml new file mode 100644 index 0000000..a0bcd42 --- /dev/null +++ b/service/pom.xml @@ -0,0 +1,40 @@ + + + + bms-prototype + org.ridelab.bms + 1.0-SNAPSHOT + + 4.0.0 + + jar + service + + + + org.projectlombok + lombok + + + junit + junit + + + org.jetbrains + annotations + + + org.ridelab.bms + common + 1.0-SNAPSHOT + + + org.ridelab.bms + data-schema + 1.0-SNAPSHOT + + + + diff --git a/service/src/main/java/org/ridelab/bms/service/ItemService.java b/service/src/main/java/org/ridelab/bms/service/ItemService.java new file mode 100644 index 0000000..468e45c --- /dev/null +++ b/service/src/main/java/org/ridelab/bms/service/ItemService.java @@ -0,0 +1,25 @@ +package org.ridelab.bms.service; + +import org.ridelab.bms.entity.Item; + +import java.util.Optional; + +public interface ItemService { + + /** + * Find one by id + * + * @param id id + * @return found item + */ + Optional findOneById(long id); + + /** + * Find all by name + * + * @param name name + * @return found items + */ + Iterable findAllByName(String name); + +} diff --git a/service/src/main/java/org/ridelab/bms/service/impl/ItemServiceImpl.java b/service/src/main/java/org/ridelab/bms/service/impl/ItemServiceImpl.java new file mode 100644 index 0000000..440cac5 --- /dev/null +++ b/service/src/main/java/org/ridelab/bms/service/impl/ItemServiceImpl.java @@ -0,0 +1,50 @@ +package org.ridelab.bms.service.impl; + +import lombok.extern.slf4j.Slf4j; +import lombok.val; +import org.apache.commons.lang3.RandomUtils; +import org.ridelab.bms.entity.Item; +import org.ridelab.bms.service.ItemService; + +import java.util.Comparator; +import java.util.Optional; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + +@Slf4j +public class ItemServiceImpl implements ItemService { + + @Override + public Optional findOneById(long id) { + + if (id < 0) { + + logger.debug("Can't find item with negative id {}", id); + + return Optional.empty(); + + } else { + + val item = Item.of("nothing", id); + + logger.debug("Found item {}", item); + + return Optional.of(item); + } + } + + @Override + public Iterable findAllByName(String name) { + + val items = IntStream.range(1, RandomUtils.nextInt(5, 10)). + mapToObj(i -> Item.of(name, RandomUtils.nextInt())). + sorted(Comparator.comparingLong(Item::getId)). + collect(Collectors.toList()); + + logger.debug("Found items {}", items.size(), items); + + return items; + } + +} + diff --git a/service/src/test/java/org/ridelab/bms/service/ItemServiceTest.java b/service/src/test/java/org/ridelab/bms/service/ItemServiceTest.java new file mode 100644 index 0000000..f28658d --- /dev/null +++ b/service/src/test/java/org/ridelab/bms/service/ItemServiceTest.java @@ -0,0 +1,33 @@ +package org.ridelab.bms.service; + +import lombok.val; +import org.junit.Test; +import org.ridelab.bms.service.impl.ItemServiceImpl; + +import static org.junit.Assert.*; + +public class ItemServiceTest { + + private final ItemService itemService = new ItemServiceImpl(); + + @Test + public void getOneById() { + val result = itemService.findOneById(1L); + assertTrue(result.isPresent()); + assertEquals(1L, result.get().getId()); + } + + @Test + public void getOneByIdNonexistent() { + val result = itemService.findOneById(-1L); + assertFalse(result.isPresent()); + } + + @Test + public void findAllByName() { + val result = itemService.findAllByName("nothing"); + assertTrue(result.iterator().hasNext()); + assertEquals("nothing", result.iterator().next().getName()); + } + +} From ade5f94d00f15354f27baafb4da8168b2f0a1366 Mon Sep 17 00:00:00 2001 From: cytng Date: Tue, 26 Dec 2017 21:39:52 +0800 Subject: [PATCH 2/3] ci: configure scripts --- scripts/ci.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/ci.sh b/scripts/ci.sh index 5c46f24..b7bad0b 100755 --- a/scripts/ci.sh +++ b/scripts/ci.sh @@ -4,4 +4,6 @@ scripts/lint-docs.sh +mvn clean test + echo -e "\033[0;32mFinished\033[m" From a147f762adc03f6da3306a335281fd5482e2994d Mon Sep 17 00:00:00 2001 From: cytng Date: Tue, 26 Dec 2017 21:49:18 +0800 Subject: [PATCH 3/3] feat: initialize with maven --- common/pom.xml | 12 ------------ data-schema/pom.xml | 8 -------- pom.xml | 38 ++++++++++++++++++-------------------- service/pom.xml | 12 ------------ 4 files changed, 18 insertions(+), 52 deletions(-) diff --git a/common/pom.xml b/common/pom.xml index 3d83e2c..ca5e558 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -13,18 +13,6 @@ common - - org.projectlombok - lombok - - - junit - junit - - - org.jetbrains - annotations - ch.qos.logback logback-classic diff --git a/data-schema/pom.xml b/data-schema/pom.xml index 9d1945e..fba5bd7 100644 --- a/data-schema/pom.xml +++ b/data-schema/pom.xml @@ -13,14 +13,6 @@ data-schema - - org.projectlombok - lombok - - - org.jetbrains - annotations - org.ridelab.bms common diff --git a/pom.xml b/pom.xml index 452c615..f8d413f 100644 --- a/pom.xml +++ b/pom.xml @@ -19,26 +19,24 @@ utf-8 - - - - org.projectlombok - lombok - 1.16.18 - - - junit - junit - 4.12 - test - - - org.jetbrains - annotations - 15.0 - - - + + + org.projectlombok + lombok + 1.16.18 + + + junit + junit + 4.12 + test + + + org.jetbrains + annotations + 15.0 + + diff --git a/service/pom.xml b/service/pom.xml index a0bcd42..66338d0 100644 --- a/service/pom.xml +++ b/service/pom.xml @@ -13,18 +13,6 @@ service - - org.projectlombok - lombok - - - junit - junit - - - org.jetbrains - annotations - org.ridelab.bms common