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