diff --git a/component/pom.xml b/component/pom.xml
index e88f9ee..03e9211 100644
--- a/component/pom.xml
+++ b/component/pom.xml
@@ -15,8 +15,8 @@
sample
-
+ user-management
+
\ No newline at end of file
diff --git a/component/user-management/pom.xml b/component/user-management/pom.xml
new file mode 100644
index 0000000..8c1ff88
--- /dev/null
+++ b/component/user-management/pom.xml
@@ -0,0 +1,22 @@
+
+ 4.0.0
+
+
+ com.github.cimela.erestaurant
+ component
+ 1.0-SNAPSHOT
+
+
+ user-management
+ pom
+
+
+ user-management-shared
+ user-management-service
+ user-management-webapp
+
+
+
\ No newline at end of file
diff --git a/component/user-management/user-management-service/pom.xml b/component/user-management/user-management-service/pom.xml
new file mode 100644
index 0000000..3037fa9
--- /dev/null
+++ b/component/user-management/user-management-service/pom.xml
@@ -0,0 +1,20 @@
+
+
+ 4.0.0
+
+
+ com.github.cimela.erestaurant
+ user-management
+ 1.0-SNAPSHOT
+
+
+ user-management-service
+
+
+
+ ${project.groupId}
+ user-management-shared
+
+
+
\ No newline at end of file
diff --git a/component/user-management/user-management-service/src/main/java/java/com/github/cimela/e/restaurant/user/repository/UserRepository.java b/component/user-management/user-management-service/src/main/java/java/com/github/cimela/e/restaurant/user/repository/UserRepository.java
new file mode 100644
index 0000000..f6bd404
--- /dev/null
+++ b/component/user-management/user-management-service/src/main/java/java/com/github/cimela/e/restaurant/user/repository/UserRepository.java
@@ -0,0 +1,11 @@
+package java.com.github.cimela.e.restaurant.user.repository;
+
+import org.bson.types.ObjectId;
+
+import com.github.cimela.e.restaurant.base.repository.BaseCustomRepository;
+import com.github.cimela.e.restaurant.base.repository.BaseRepository;
+import com.github.cimela.e.restaurant.user.model.User;
+
+public interface UserRepository extends BaseRepository, BaseCustomRepository {
+
+}
diff --git a/component/user-management/user-management-service/src/main/java/java/com/github/cimela/e/restaurant/user/repository/UserRepositoryImpl.java b/component/user-management/user-management-service/src/main/java/java/com/github/cimela/e/restaurant/user/repository/UserRepositoryImpl.java
new file mode 100644
index 0000000..20b2518
--- /dev/null
+++ b/component/user-management/user-management-service/src/main/java/java/com/github/cimela/e/restaurant/user/repository/UserRepositoryImpl.java
@@ -0,0 +1,10 @@
+package java.com.github.cimela.e.restaurant.user.repository;
+
+import org.bson.types.ObjectId;
+
+import com.github.cimela.e.restaurant.base.repository.BaseRepositoryImpl;
+import com.github.cimela.e.restaurant.user.model.User;
+
+public class UserRepositoryImpl extends BaseRepositoryImpl {
+
+}
diff --git a/component/user-management/user-management-service/src/main/java/java/com/github/cimela/e/restaurant/user/service/SampleService.java b/component/user-management/user-management-service/src/main/java/java/com/github/cimela/e/restaurant/user/service/SampleService.java
new file mode 100644
index 0000000..a5f8390
--- /dev/null
+++ b/component/user-management/user-management-service/src/main/java/java/com/github/cimela/e/restaurant/user/service/SampleService.java
@@ -0,0 +1,43 @@
+package java.com.github.cimela.e.restaurant.user.service;
+
+import com.github.cimela.e.restaurant.base.appserver.BaseResponse;
+import com.github.cimela.e.restaurant.base.model.MessageObject;
+import com.github.cimela.e.restaurant.base.service.AbstractComponentService;
+import com.github.cimela.e.restaurant.user.appserver.UserRequest;
+import com.github.cimela.e.restaurant.user.model.UserVO;
+
+public class SampleService extends AbstractComponentService {
+
+ protected static final String TARGET_SAMPLE = "sample";
+ protected static final String MSG_SAMPLE_FAILED = "sample.failed";
+ protected static final String MSG_SAMPLE_SUCCESS = "sample.success";
+
+ @Override
+ public String getTarget() {
+ return TARGET_SAMPLE;
+ }
+
+ @Override
+ public BaseResponse handle(UserRequest request) {
+ BaseResponse response = new BaseResponse();
+ switch (request.getType()) {
+ case CREATE:
+ response.setSuccess(true);
+ response.setData(new UserVO());
+ break;
+ case UPDATE:
+ default:
+ if(request.getSample() != null) {
+ response.setSuccess(true);
+ response.setData(new MessageObject(MSG_SAMPLE_SUCCESS));
+ } else {
+ response.setSuccess(false);
+ response.setData(new MessageObject(MSG_SAMPLE_FAILED));
+ }
+ break;
+
+ }
+ return response;
+ }
+
+}
diff --git a/component/user-management/user-management-shared/pom.xml b/component/user-management/user-management-shared/pom.xml
new file mode 100644
index 0000000..26afb9d
--- /dev/null
+++ b/component/user-management/user-management-shared/pom.xml
@@ -0,0 +1,20 @@
+
+
+ 4.0.0
+
+
+ com.github.cimela.erestaurant
+ user-management
+ 1.0-SNAPSHOT
+
+
+ user-management-shared
+
+
+
+ ${project.groupId}
+ model
+
+
+
\ No newline at end of file
diff --git a/component/user-management/user-management-shared/src/main/java/com/github/cimela/e/restaurant/user/appserver/UserRequest.java b/component/user-management/user-management-shared/src/main/java/com/github/cimela/e/restaurant/user/appserver/UserRequest.java
new file mode 100644
index 0000000..f94b6be
--- /dev/null
+++ b/component/user-management/user-management-shared/src/main/java/com/github/cimela/e/restaurant/user/appserver/UserRequest.java
@@ -0,0 +1,19 @@
+package com.github.cimela.e.restaurant.user.appserver;
+
+import com.github.cimela.e.restaurant.base.appserver.BaseRequest;
+import com.github.cimela.e.restaurant.user.model.UserVO;
+
+public class UserRequest extends BaseRequest {
+
+ private UserVO sample;
+
+ public UserVO getSample() {
+ return sample;
+ }
+
+ public void setSample(UserVO sample) {
+ this.sample = sample;
+ }
+
+
+}
diff --git a/component/user-management/user-management-shared/src/main/java/com/github/cimela/e/restaurant/user/model/User.java b/component/user-management/user-management-shared/src/main/java/com/github/cimela/e/restaurant/user/model/User.java
new file mode 100644
index 0000000..bb0284d
--- /dev/null
+++ b/component/user-management/user-management-shared/src/main/java/com/github/cimela/e/restaurant/user/model/User.java
@@ -0,0 +1,13 @@
+package com.github.cimela.e.restaurant.user.model;
+
+import org.bson.types.ObjectId;
+import org.springframework.data.mongodb.core.index.Indexed;
+
+import com.github.cimela.e.restaurant.base.model.GenericModel;
+
+public class User extends GenericModel {
+ @Indexed(unique=true)
+ private String username;
+
+ private String password;
+}
diff --git a/component/user-management/user-management-shared/src/main/java/com/github/cimela/e/restaurant/user/model/UserVO.java b/component/user-management/user-management-shared/src/main/java/com/github/cimela/e/restaurant/user/model/UserVO.java
new file mode 100644
index 0000000..3bf3203
--- /dev/null
+++ b/component/user-management/user-management-shared/src/main/java/com/github/cimela/e/restaurant/user/model/UserVO.java
@@ -0,0 +1,15 @@
+package com.github.cimela.e.restaurant.user.model;
+
+import com.github.cimela.e.restaurant.base.model.GenericModelVO;
+
+public class UserVO extends GenericModelVO {
+
+ public UserVO() {
+ super(User.class);
+ }
+
+ public UserVO(User sample, String...excludeAttrs) {
+ super(sample, User.class, excludeAttrs);
+ }
+
+}
diff --git a/component/user-management/user-management-webapp/pom.xml b/component/user-management/user-management-webapp/pom.xml
new file mode 100644
index 0000000..d69b6e6
--- /dev/null
+++ b/component/user-management/user-management-webapp/pom.xml
@@ -0,0 +1,20 @@
+
+
+ 4.0.0
+
+
+ com.github.cimela.erestaurant
+ user-management
+ 1.0-SNAPSHOT
+
+
+ user-management-webapp
+
+
+
+ ${project.groupId}
+ user-management-shared
+
+
+
\ No newline at end of file
diff --git a/root/pom.xml b/root/pom.xml
index 4ff04e7..e04d49a 100644
--- a/root/pom.xml
+++ b/root/pom.xml
@@ -106,6 +106,21 @@
${project.version}
+
+ ${project.groupId}
+ user-management-shared
+ ${project.version}
+
+
+ ${project.groupId}
+ user-management-service
+ ${project.version}
+
+
+ ${project.groupId}
+ user-management-webapp
+ ${project.version}
+