From 410d0d328441a2f18653a89c554e2ede7ca31a9e Mon Sep 17 00:00:00 2001 From: Dung Ta Van Date: Wed, 21 Feb 2024 13:24:13 +0700 Subject: [PATCH] mysql --- .../ezysmashers/app/AppEntry.java | 15 ++++++ server/EzySmashers-common/pom.xml | 53 +++++++++++++++++++ .../ezysmashers/common/entity/User.java | 17 +++--- .../ezysmashers/common/repo/UserRepo.java | 4 +- .../EzySmashers-common-config.properties | 7 +-- .../ezysmashers/plugin/PluginEntry.java | 51 ++++++++++++++++++ .../plugin/service/MaxIdService.java | 30 ----------- .../plugin/service/UserService.java | 2 - server/EzySmashers-startup/pom.xml | 2 +- server/pom.xml | 17 +++--- 10 files changed, 144 insertions(+), 54 deletions(-) delete mode 100644 server/EzySmashers-plugin/src/main/java/org/youngmonkeys/ezysmashers/plugin/service/MaxIdService.java diff --git a/server/EzySmashers-app-api/src/main/java/org/youngmonkeys/ezysmashers/app/AppEntry.java b/server/EzySmashers-app-api/src/main/java/org/youngmonkeys/ezysmashers/app/AppEntry.java index dd587b5..aaf7882 100644 --- a/server/EzySmashers-app-api/src/main/java/org/youngmonkeys/ezysmashers/app/AppEntry.java +++ b/server/EzySmashers-app-api/src/main/java/org/youngmonkeys/ezysmashers/app/AppEntry.java @@ -1,10 +1,15 @@ package org.youngmonkeys.ezysmashers.app; +import com.tvd12.ezydata.database.EzyDatabaseContext; import com.tvd12.ezyfox.bean.EzyBeanContextBuilder; +import com.tvd12.ezyfox.bean.impl.EzyBeanNameParser; import com.tvd12.ezyfoxserver.context.EzyAppContext; +import com.tvd12.ezyfoxserver.context.EzyZoneContext; import com.tvd12.ezyfoxserver.setting.EzyAppSetting; import com.tvd12.ezyfoxserver.support.entry.EzyDefaultAppEntry; +import java.util.Properties; + public class AppEntry extends EzyDefaultAppEntry { @Override @@ -19,7 +24,17 @@ protected void postConfig(EzyAppContext ctx) { @Override protected void setupBeanContext(EzyAppContext context, EzyBeanContextBuilder builder) { + EzyZoneContext zoneContext = context.getParent(); + EzyDatabaseContext databaseContext = zoneContext.getProperty( + EzyDatabaseContext.class + ); + databaseContext.getRepositories().forEach((repoType, repo) -> { + builder.addSingleton(EzyBeanNameParser.getBeanName(repoType), repo); + }); + Properties pluginProperties = zoneContext.getProperty("pluginProperties"); EzyAppSetting setting = context.getApp().getSetting(); + builder.addProperties("EzySmashers-common-config.properties"); + builder.addProperties(pluginProperties); builder.addProperties(getConfigFile(setting)); } diff --git a/server/EzySmashers-common/pom.xml b/server/EzySmashers-common/pom.xml index 94570e7..cec2005 100644 --- a/server/EzySmashers-common/pom.xml +++ b/server/EzySmashers-common/pom.xml @@ -16,8 +16,61 @@ com.tvd12 ezyfox-server-support + ${ezy.server.version} + + + com.tvd12 + ezydata-jpa ${ezy.version} + + com.tvd12 + ezyhttp-client + ${ezy.http.version} + + + com.zaxxer + HikariCP + ${hikaricp.version} + + + org.slf4j + slf4j-api + + + + + javax.persistence + javax.persistence-api + ${javax.persistence.version} + + + javax.transaction + javax.transaction-api + ${javax.transaction.version} + + + javax.servlet + javax.servlet-api + ${javax.servlet.version} + true + + + org.hibernate + hibernate-core + ${hibernate.version} + + + com.mysql + mysql-connector-j + ${mysql.connector.version} + + + com.google.protobuf + protobuf-java + + + diff --git a/server/EzySmashers-common/src/main/java/org/youngmonkeys/ezysmashers/common/entity/User.java b/server/EzySmashers-common/src/main/java/org/youngmonkeys/ezysmashers/common/entity/User.java index 1603b40..efb7cbd 100644 --- a/server/EzySmashers-common/src/main/java/org/youngmonkeys/ezysmashers/common/entity/User.java +++ b/server/EzySmashers-common/src/main/java/org/youngmonkeys/ezysmashers/common/entity/User.java @@ -1,16 +1,17 @@ package org.youngmonkeys.ezysmashers.common.entity; -import com.tvd12.ezyfox.annotation.EzyId; -import com.tvd12.ezyfox.database.annotation.EzyCollection; import lombok.Data; +import javax.persistence.*; + @Data -@EzyCollection +@Entity +@Table(name = "users") public class User { - @EzyId - Long id; - - String username; - String password; + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String username; + private String password; } diff --git a/server/EzySmashers-common/src/main/java/org/youngmonkeys/ezysmashers/common/repo/UserRepo.java b/server/EzySmashers-common/src/main/java/org/youngmonkeys/ezysmashers/common/repo/UserRepo.java index 68039a9..bb7c19c 100644 --- a/server/EzySmashers-common/src/main/java/org/youngmonkeys/ezysmashers/common/repo/UserRepo.java +++ b/server/EzySmashers-common/src/main/java/org/youngmonkeys/ezysmashers/common/repo/UserRepo.java @@ -1,10 +1,10 @@ package org.youngmonkeys.ezysmashers.common.repo; -import com.tvd12.ezydata.mongodb.EzyMongoRepository; +import com.tvd12.ezydata.database.EzyDatabaseRepository; import com.tvd12.ezyfox.database.annotation.EzyRepository; import org.youngmonkeys.ezysmashers.common.entity.User; @EzyRepository("userRepo") -public interface UserRepo extends EzyMongoRepository { +public interface UserRepo extends EzyDatabaseRepository { } diff --git a/server/EzySmashers-common/src/main/resources/EzySmashers-common-config.properties b/server/EzySmashers-common/src/main/resources/EzySmashers-common-config.properties index 417ad8c..79410dd 100644 --- a/server/EzySmashers-common/src/main/resources/EzySmashers-common-config.properties +++ b/server/EzySmashers-common/src/main/resources/EzySmashers-common-config.properties @@ -1,5 +1,2 @@ -hello=world -database.mongo.uri=mongodb://root:123456@127.0.0.1:27017/ezy-smashers -database.mongo.database=ezy-smashers -database.mongo.collection.naming.case=UNDERSCORE -database.mongo.collection.naming.ignored_suffix=Entity +datasource.jdbc_url=jdbc:mysql://root:12345678@localhost:3306/EzySmashers +datasource.driver_class_name=com.mysql.cj.jdbc.Driver diff --git a/server/EzySmashers-plugin/src/main/java/org/youngmonkeys/ezysmashers/plugin/PluginEntry.java b/server/EzySmashers-plugin/src/main/java/org/youngmonkeys/ezysmashers/plugin/PluginEntry.java index dbb828b..5abaab7 100644 --- a/server/EzySmashers-plugin/src/main/java/org/youngmonkeys/ezysmashers/plugin/PluginEntry.java +++ b/server/EzySmashers-plugin/src/main/java/org/youngmonkeys/ezysmashers/plugin/PluginEntry.java @@ -1,8 +1,20 @@ package org.youngmonkeys.ezysmashers.plugin; +import com.tvd12.ezydata.database.EzyDatabaseContext; +import com.tvd12.ezydata.jpa.EzyJpaDatabaseContextBuilder; +import com.tvd12.ezydata.jpa.loader.EzyJpaDataSourceLoader; +import com.tvd12.ezydata.jpa.loader.EzyJpaEntityManagerFactoryLoader; +import com.tvd12.ezyfox.bean.EzyBeanContextBuilder; +import com.tvd12.ezyfox.bean.impl.EzyBeanNameParser; import com.tvd12.ezyfoxserver.context.EzyPluginContext; +import com.tvd12.ezyfoxserver.context.EzyZoneContext; +import com.tvd12.ezyfoxserver.setting.EzyPluginSetting; import com.tvd12.ezyfoxserver.support.entry.EzyDefaultPluginEntry; +import javax.persistence.EntityManagerFactory; +import javax.sql.DataSource; +import java.util.Properties; + public class PluginEntry extends EzyDefaultPluginEntry { @Override @@ -15,6 +27,45 @@ protected void postConfig(EzyPluginContext ctx) { logger.info("\n=================== EzySmashers PLUGIN END CONFIG ================\n"); } + @Override + protected void setupBeanContext( + EzyPluginContext context, + EzyBeanContextBuilder builder + ) { + EzyPluginSetting setting = context.getPlugin().getSetting(); + builder.addProperties("EzySmashers-common-config.properties"); + Properties properties = builder.getProperties(); + EzyDatabaseContext databaseContext = databaseContext(properties); + databaseContext.getRepositories().forEach((repoType, repo) -> { + builder.addSingleton(EzyBeanNameParser.getBeanName(repoType), repo); + }); + EzyZoneContext zoneContext = context.getParent(); + zoneContext.setProperty("pluginProperties", properties); + zoneContext.setProperty(EzyDatabaseContext.class, databaseContext); + } + + private EzyDatabaseContext databaseContext(Properties properties) { + return new EzyJpaDatabaseContextBuilder() + .properties(properties) + .entityManagerFactory(entityManagerFactory(properties)) + .scan("org.youngmonkeys.ezysmashers") + .build(); + } + + private EntityManagerFactory entityManagerFactory(Properties properties) { + return new EzyJpaEntityManagerFactoryLoader() + .entityPackage("org.youngmonkeys.ezysmashers") + .dataSource(dataSource(properties)) + .properties(properties) + .load("Default"); + } + + private DataSource dataSource(Properties properties) { + return new EzyJpaDataSourceLoader() + .properties(properties, "datasource") + .load(); + } + @Override protected String[] getScanablePackages() { return new String[]{ diff --git a/server/EzySmashers-plugin/src/main/java/org/youngmonkeys/ezysmashers/plugin/service/MaxIdService.java b/server/EzySmashers-plugin/src/main/java/org/youngmonkeys/ezysmashers/plugin/service/MaxIdService.java deleted file mode 100644 index d4f8a63..0000000 --- a/server/EzySmashers-plugin/src/main/java/org/youngmonkeys/ezysmashers/plugin/service/MaxIdService.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.youngmonkeys.ezysmashers.plugin.service; - -import com.tvd12.ezydata.database.repository.EzyMaxIdRepository; -import com.tvd12.ezyfox.bean.annotation.EzySingleton; -import com.tvd12.ezyfox.database.service.EzyMaxIdService; -import lombok.AllArgsConstructor; -import lombok.Setter; - -@Setter -@AllArgsConstructor -@EzySingleton("maxIdService") -public class MaxIdService implements EzyMaxIdService { - - private final EzyMaxIdRepository maxIdRepository; - - @Override - public void loadAll() { - // - } - - @Override - public Long incrementAndGet(String key) { - return maxIdRepository.incrementAndGet(key); - } - - @Override - public Long incrementAndGet(String key, int delta) { - return maxIdRepository.incrementAndGet(key, delta); - } -} diff --git a/server/EzySmashers-plugin/src/main/java/org/youngmonkeys/ezysmashers/plugin/service/UserService.java b/server/EzySmashers-plugin/src/main/java/org/youngmonkeys/ezysmashers/plugin/service/UserService.java index bfea51a..276f89e 100644 --- a/server/EzySmashers-plugin/src/main/java/org/youngmonkeys/ezysmashers/plugin/service/UserService.java +++ b/server/EzySmashers-plugin/src/main/java/org/youngmonkeys/ezysmashers/plugin/service/UserService.java @@ -14,7 +14,6 @@ public class UserService { private final UserRepo userRepo; - private final MaxIdService maxIdService; public void saveUser(User user) { userRepo.save(user); @@ -22,7 +21,6 @@ public void saveUser(User user) { public User createUser(String username, String password) { User user = new User(); - user.setId(maxIdService.incrementAndGet("user")); user.setUsername(username); user.setPassword(password); userRepo.save(user); diff --git a/server/EzySmashers-startup/pom.xml b/server/EzySmashers-startup/pom.xml index 5864e4c..928eaa2 100644 --- a/server/EzySmashers-startup/pom.xml +++ b/server/EzySmashers-startup/pom.xml @@ -36,7 +36,7 @@ com.tvd12 ezyfox-server-embedded - ${ezy.version} + ${ezy.server.version} com.tvd12 diff --git a/server/pom.xml b/server/pom.xml index 9828ea9..4ac7c8e 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -22,7 +22,17 @@ entries common 1.2.8 + 1.2.8.1 1.1.0 + 1.2.5 + 1.2.7 + 2.2 + 1.3 + 2.3.8 + 5.6.15.Final + 4.0.3 + 8.0.32 + 3.1.0 @@ -61,12 +71,7 @@ com.tvd12 ezyfox-server-core - ${ezy.version} - - - com.tvd12 - ezydata-mongodb - ${ezy.version} + ${ezy.server.version} com.tvd12