From 94d436e42950963436f71f864930ab12f0176857 Mon Sep 17 00:00:00 2001 From: kuviman Date: Thu, 18 Nov 2021 09:48:29 +0400 Subject: [PATCH 01/12] Setup CI --- .github/workflows/ci.yml | 56 ++++++ .gitignore | 17 +- code/pom.xml | 389 ++++++++++++++++++++------------------- 3 files changed, 262 insertions(+), 200 deletions(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..274a929 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,56 @@ +name: CI +on: + push: + pull_request: + workflow_dispatch: + +jobs: + test: + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + java-version: [8, 11, 17] + runs-on: ${{ matrix.os }} + env: + JDK_JAVA_OPTIONS: "--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED" + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-java@v2 + with: + java-version: ${{ matrix.java-version }} + distribution: "adopt" + - name: Validate + run: | + cd code + mvn --batch-mode validate + - name: Test + run: | + PROJECTS="code demo" + for path in $PROJECTS; do + pushd $path + mvn --batch-mode test + popd + done + publish: + if: github.ref == 'refs/heads/master' && github.repository_owner == 'Codeforces' + needs: test + runs-on: windows-latest + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-java@v2 + with: + java-version: "17" + distribution: "adopt" + - name: Validate + run: | + cd code + mvn --batch-mode validate + - name: Publish + run: | + cd code + mvn --batch-mode deploy -DskipTests + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 97e2ca0..f2f27cc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,8 @@ -.classpath -.project -.settings/ - -/code/jacuzzi.iml -/code/jacuzzi.ipr -/code/jacuzzi.iws -/code/target -/code/.idea +.classpath +.project +.settings/ +*.iml +*.ipr +*.iws +.idea/ +target/ \ No newline at end of file diff --git a/code/pom.xml b/code/pom.xml index 79d657f..354bb78 100644 --- a/code/pom.xml +++ b/code/pom.xml @@ -1,191 +1,198 @@ - - - Jacuzzi works around java.sql.Connection and it is all you need to provide. - Jacuzzi don't use any configuration files and uses just a few annotations. - It doesn't take care about abstract cross-database query language, use native - SQL to write queries. It provides you easy way to write specific DAOs. - - 2009 - 4.0.0 - jacuzzi - jacuzzi - 0.1.0-SNAPSHOT - jar - jacuzzi - https://github.com/Codeforces/jacuzzi - - - MikeMirzayanov - Mike Mirzayanov - mirzayanovmr@gmail.com - - owner, author - - +3 - - - - - GitHub Issues - https://github.com/Codeforces/jacuzzi/issues - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - https://github.com/Codeforces/jacuzzi - scm:git:git://github.com/Codeforces/jacuzzi.git - scm:git:git@github.com:Codeforces/jacuzzi.git - - - UTF-8 - - - - - org.apache.maven.plugins - maven-repository-plugin - 2.4 - - - org.codehaus.plexus - plexus-archiver - 4.2.5 - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.8.1 - - 1.8 - 1.8 - UTF-8 - - - - org.apache.maven.plugins - maven-javadoc-plugin - 3.3.1 - - -Xdoclint:none - - - - org.apache.maven.plugins - maven-surefire-plugin - 2.22.2 - - -Dfile.encoding=UTF-8 - -Xmx1200M - - - - - - org.basepom.maven - duplicate-finder-maven-plugin - 1.5.0 - - - default - verify - - check - - - - - false - false - true - true - true - false - false - false - false - true - - - false - sun.boot.class.path - - - - - false - - - - - - - - log4j - log4j - 1.2.17 - - - org.apache.commons - commons-lang3 - 3.12.0 - - - cglib - cglib - 3.3.0 - - - org.ow2.asm - asm - 9.2 - - - org.ow2.asm - asm-tree - 9.2 - - - org.ow2.asm - asm-analysis - 9.2 - - - org.ow2.asm - asm-util - 9.2 - - - junit - junit - 4.13.2 - test - - - org.hsqldb - hsqldb - 2.5.2 - test - - - com.mchange - c3p0 - 0.9.5.5 - - - com.google.code.findbugs - annotations - 3.0.1u2 - compile - - - + + + Jacuzzi works around java.sql.Connection and it is all you need to provide. + Jacuzzi don't use any configuration files and uses just a few annotations. + It doesn't take care about abstract cross-database query language, use native + SQL to write queries. It provides you easy way to write specific DAOs. + + 2009 + 4.0.0 + jacuzzi + jacuzzi + 0.1.0-SNAPSHOT + jar + jacuzzi + https://github.com/Codeforces/jacuzzi + + + MikeMirzayanov + Mike Mirzayanov + mirzayanovmr@gmail.com + + owner, author + + +3 + + + + + + github + GitHub Packages + https://maven.pkg.github.com/Codeforces/jacuzzi + + + + GitHub Issues + https://github.com/Codeforces/jacuzzi/issues + + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + https://github.com/Codeforces/jacuzzi + scm:git:git://github.com/Codeforces/jacuzzi.git + scm:git:git@github.com:Codeforces/jacuzzi.git + + + UTF-8 + + + + + org.apache.maven.plugins + maven-repository-plugin + 2.4 + + + org.codehaus.plexus + plexus-archiver + 4.2.5 + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 1.8 + 1.8 + UTF-8 + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.3.1 + + -Xdoclint:none + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.2 + + -Dfile.encoding=UTF-8 + -Xmx1200M + + + + + + org.basepom.maven + duplicate-finder-maven-plugin + 1.5.0 + + + default + verify + + check + + + + + false + false + true + true + true + false + false + false + false + true + + + false + sun.boot.class.path + + + + + false + + + + + + + + log4j + log4j + 1.2.17 + + + org.apache.commons + commons-lang3 + 3.12.0 + + + cglib + cglib + 3.3.0 + + + org.ow2.asm + asm + 9.2 + + + org.ow2.asm + asm-tree + 9.2 + + + org.ow2.asm + asm-analysis + 9.2 + + + org.ow2.asm + asm-util + 9.2 + + + junit + junit + 4.13.2 + test + + + org.hsqldb + hsqldb + 2.5.2 + test + + + com.mchange + c3p0 + 0.9.5.5 + + + com.google.code.findbugs + annotations + 3.0.1u2 + compile + + + From 0212d9f5f9d8a430102509a8e1db8608ac6215bb Mon Sep 17 00:00:00 2001 From: kuviman Date: Thu, 18 Nov 2021 09:50:42 +0400 Subject: [PATCH 02/12] Fix demo --- demo/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demo/pom.xml b/demo/pom.xml index 001e46a..da4fac5 100644 --- a/demo/pom.xml +++ b/demo/pom.xml @@ -31,7 +31,7 @@ jacuzzi jacuzzi - 0.0.28-SNAPSHOT + 0.1.0-SNAPSHOT test From 2bd1bcbbdb5197ada9c89a8db67d0153d5865368 Mon Sep 17 00:00:00 2001 From: kuviman Date: Thu, 18 Nov 2021 09:52:45 +0400 Subject: [PATCH 03/12] Package jacuzzi before testing demo --- .github/workflows/ci.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 274a929..a7398a0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,9 +23,13 @@ jobs: run: | cd code mvn --batch-mode validate - - name: Test + - name: Package run: | - PROJECTS="code demo" + cd code + mvn --batch-mode package + - name: Test additional projects + run: | + PROJECTS="demo" for path in $PROJECTS; do pushd $path mvn --batch-mode test From fb7c3f6e83fe4761a50a6f39766eee4f05c5db15 Mon Sep 17 00:00:00 2001 From: kuviman Date: Thu, 18 Nov 2021 09:54:33 +0400 Subject: [PATCH 04/12] *Install jacuzzi before testing demo --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a7398a0..166dabd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,10 +23,10 @@ jobs: run: | cd code mvn --batch-mode validate - - name: Package + - name: Install run: | cd code - mvn --batch-mode package + mvn --batch-mode install - name: Test additional projects run: | PROJECTS="demo" From 2242741fc2a09a1f0c07d3f569627b99293c7096 Mon Sep 17 00:00:00 2001 From: kuviman Date: Thu, 18 Nov 2021 09:59:58 +0400 Subject: [PATCH 05/12] Fix demo --- demo/pom.xml | 2 +- .../test/java/com/jacuzzi/test/JacuzziTest.java | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/demo/pom.xml b/demo/pom.xml index da4fac5..512a778 100644 --- a/demo/pom.xml +++ b/demo/pom.xml @@ -5,7 +5,7 @@ jacuzzi-demo jar 0.0.28-SNAPSHOT - jacuzzi + jacuzzi-demo http://code.google.com/p/jacuzzi diff --git a/demo/src/test/java/com/jacuzzi/test/JacuzziTest.java b/demo/src/test/java/com/jacuzzi/test/JacuzziTest.java index 96a9a27..d153535 100644 --- a/demo/src/test/java/com/jacuzzi/test/JacuzziTest.java +++ b/demo/src/test/java/com/jacuzzi/test/JacuzziTest.java @@ -11,12 +11,12 @@ public class JacuzziTest extends TestCase { private UserDao userDao; private static final int ITERATION_COUNT = 20; - protected void setUp() throws Exception { + protected void setUp() { userDao = new UserDao(); userDao.createStorage(); } - protected void tearDown() throws Exception { + protected void tearDown() { userDao.deleteStorage(); } @@ -27,7 +27,7 @@ public void testInitialization() { public void testInsertAndFind() { User user = new User(); user.setLogin("jacuzzi"); - assertTrue(userDao.insert(user)); + userDao.insert(user); assertEquals(1, userDao.findBy("login=?", "jacuzzi").size()); } @@ -35,13 +35,13 @@ public void testManyInsertsAndFinds() { for (int i = 0; i < ITERATION_COUNT; i++) { User user = new User(); user.setLogin("jacuzzi" + i); - assertTrue(userDao.insert(user)); + userDao.insert(user); assertEquals(1, userDao.findBy("login=?", "jacuzzi" + i).size()); } for (int i = 0; i < ITERATION_COUNT; i++) { User user = new User(); user.setLogin("jacuzzi"); - assertTrue(userDao.insert(user)); + userDao.insert(user); assertEquals(i + 1, userDao.findBy("login=?", "jacuzzi").size()); } } @@ -52,7 +52,7 @@ public void testTransaction() { for (int i = 0; i < ITERATION_COUNT; i++) { User user = new User(); user.setLogin("jacuzzi"); - assertTrue(userDao.insert(user)); + userDao.insert(user); } userDao.returnJacuzzi().commit(); @@ -63,7 +63,7 @@ public void testTransaction() { for (int i = 0; i < ITERATION_COUNT; i++) { User user = new User(); user.setLogin("jacuzzi"); - assertTrue(userDao.insert(user)); + userDao.insert(user); } userDao.returnJacuzzi().rollback(); From 2d32cf8e0b2a3306837754b6873a95900c6b40ca Mon Sep 17 00:00:00 2001 From: kuviman Date: Thu, 18 Nov 2021 10:16:40 +0400 Subject: [PATCH 06/12] Setup mariadb for testing demo --- .github/workflows/ci.yml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 166dabd..6ba1550 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,14 +27,20 @@ jobs: run: | cd code mvn --batch-mode install - - name: Test additional projects + - name: Test Demo run: | - PROJECTS="demo" - for path in $PROJECTS; do - pushd $path - mvn --batch-mode test - popd - done + cd demo + mvn --batch-mode test + services: + mariadb: + image: mariadb + ports: + - 3307:3306 + env: + MARIADB_DATABASE: jacuzzi + MARIADB_USER: jacuzzi + MARIADB_PASSWORD: jacuzzi + MARIADB_RANDOM_ROOT_PASSWORD: true publish: if: github.ref == 'refs/heads/master' && github.repository_owner == 'Codeforces' needs: test From 88423e662d4d2853e6f8a4deca3f9781809453a3 Mon Sep 17 00:00:00 2001 From: kuviman Date: Thu, 18 Nov 2021 10:20:38 +0400 Subject: [PATCH 07/12] Only run CI using ubuntu-latest, Java 17 --- .github/workflows/ci.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6ba1550..53a713f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,18 +6,19 @@ on: jobs: test: - strategy: - matrix: - os: [ubuntu-latest, windows-latest, macos-latest] - java-version: [8, 11, 17] - runs-on: ${{ matrix.os }} + # Docker actions only work on linux + # strategy: + # matrix: + # os: [ubuntu-latest, windows-latest, macos-latest] + # java-version: [8, 11, 17] + runs-on: ubuntu-latest env: JDK_JAVA_OPTIONS: "--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED" steps: - uses: actions/checkout@v2 - uses: actions/setup-java@v2 with: - java-version: ${{ matrix.java-version }} + java-version: 17 distribution: "adopt" - name: Validate run: | From d39c2cbd0db8a0d2d0e7a0998e36df72672156c0 Mon Sep 17 00:00:00 2001 From: kuviman Date: Thu, 18 Nov 2021 10:24:20 +0400 Subject: [PATCH 08/12] Update maven-compiler-plugin source & target for Demo --- demo/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/demo/pom.xml b/demo/pom.xml index 512a778..9fe4690 100644 --- a/demo/pom.xml +++ b/demo/pom.xml @@ -21,8 +21,8 @@ maven-compiler-plugin 2.0.2 - 1.6 - 1.6 + 1.8 + 1.8 From 96f93582dd8f24cdbc96cc35989c2311c2725989 Mon Sep 17 00:00:00 2001 From: kuviman Date: Thu, 18 Nov 2021 10:29:55 +0400 Subject: [PATCH 09/12] Fix CREATE_USER_TABLE_SQL in Demo --- demo/src/test/java/com/jacuzzi/test/dao/UserDao.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demo/src/test/java/com/jacuzzi/test/dao/UserDao.java b/demo/src/test/java/com/jacuzzi/test/dao/UserDao.java index 20280f6..26898e1 100644 --- a/demo/src/test/java/com/jacuzzi/test/dao/UserDao.java +++ b/demo/src/test/java/com/jacuzzi/test/dao/UserDao.java @@ -16,7 +16,7 @@ public class UserDao extends GenericDaoImpl { "id BIGINT NOT NULL AUTO_INCREMENT, " + "login VARCHAR( 255 ) NOT NULL, " + "PRIMARY KEY (id)" + - ") TYPE = INNODB CHARACTER SET = utf8"; + ") ENGINE = InnoDB CHARACTER SET = utf8"; private static final String DELETE_USER_TABLE_SQL = "DROP TABLE User"; From 1d5a9bd468c1bc8a67d59fa86e21bfcd176d00bb Mon Sep 17 00:00:00 2001 From: kuviman Date: Sat, 27 Nov 2021 17:24:52 +0400 Subject: [PATCH 10/12] Make JDK_JAVA_OPTIONS & GITHUB_TOKEN available to all jobs --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 53a713f..c6c8db0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,6 +4,10 @@ on: pull_request: workflow_dispatch: +env: + JDK_JAVA_OPTIONS: "--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED" + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + jobs: test: # Docker actions only work on linux @@ -12,8 +16,6 @@ jobs: # os: [ubuntu-latest, windows-latest, macos-latest] # java-version: [8, 11, 17] runs-on: ubuntu-latest - env: - JDK_JAVA_OPTIONS: "--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED" steps: - uses: actions/checkout@v2 - uses: actions/setup-java@v2 @@ -63,5 +65,3 @@ jobs: run: | cd code mvn --batch-mode deploy -DskipTests - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 653faed5addd5c247636c3b65fd24fefa51ac509 Mon Sep 17 00:00:00 2001 From: kuviman Date: Sat, 27 Nov 2021 17:33:20 +0400 Subject: [PATCH 11/12] No need for mvn validate --- .github/workflows/ci.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c6c8db0..4a3acf7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,10 +22,6 @@ jobs: with: java-version: 17 distribution: "adopt" - - name: Validate - run: | - cd code - mvn --batch-mode validate - name: Install run: | cd code @@ -57,10 +53,6 @@ jobs: with: java-version: "17" distribution: "adopt" - - name: Validate - run: | - cd code - mvn --batch-mode validate - name: Publish run: | cd code From 0f775f7488906c8163c84e4791a6a39ebc3cb08a Mon Sep 17 00:00:00 2001 From: kuviman Date: Sat, 27 Nov 2021 17:40:39 +0400 Subject: [PATCH 12/12] publish -> deploy --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4a3acf7..f067238 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,7 +40,7 @@ jobs: MARIADB_USER: jacuzzi MARIADB_PASSWORD: jacuzzi MARIADB_RANDOM_ROOT_PASSWORD: true - publish: + deploy: if: github.ref == 'refs/heads/master' && github.repository_owner == 'Codeforces' needs: test runs-on: windows-latest @@ -53,7 +53,7 @@ jobs: with: java-version: "17" distribution: "adopt" - - name: Publish + - name: Deploy run: | cd code mvn --batch-mode deploy -DskipTests