10 | url: jdbc:sqlserver://localhost:1433;DatabaseName=code_with_nk_db
11 |
12 | autoconfigure:
13 | exclude:
14 | - org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration
15 | - org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration
16 |
17 |
18 | server:
19 | port: 8080
20 | servlet:
21 | session:
22 | cookie:
23 | http-only: true
24 | secure: true
25 |
26 | app:
27 | version: 1.0.0
28 | security:
29 | enabled: true
30 | swagger:
31 | enable-auth: false
32 | title: Sample Service
33 | desc: Helps to interact with Backend
34 | version: v1
35 | path-mapping: /
36 | contact:
37 | name: Backend Team
38 | email: test@test.com
39 | url: ""
40 | license: null
41 | license-uri: null
42 |
43 | logging:
44 | level:
45 | com:
46 | zaxxer:
47 | hikari: debug
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/application/sample-service/src/main/resources/bootstrap.yml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/application/sample-service/src/main/resources/bootstrap.yml
--------------------------------------------------------------------------------
/assets/images/create_maven_module.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/assets/images/create_maven_module.png
--------------------------------------------------------------------------------
/assets/images/json_logs.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/assets/images/json_logs.PNG
--------------------------------------------------------------------------------
/assets/images/load_parent_pom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/assets/images/load_parent_pom.png
--------------------------------------------------------------------------------
/assets/images/swagger_ui.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/assets/images/swagger_ui.PNG
--------------------------------------------------------------------------------
/backend-starter/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | backend-parent
7 | com.app
8 | 1.0.0-SNAPSHOT
9 |
10 | 4.0.0
11 |
12 | backend-starter
13 | jar
14 |
15 |
16 |
17 | com.app
18 | security
19 | ${project.version}
20 |
21 |
22 | com.app
23 | logging
24 | ${project.version}
25 |
26 |
27 | com.app
28 | exception
29 | ${project.version}
30 |
31 |
32 |
33 |
37 |
38 |
39 |
40 | com.konghq
41 | unirest-java
42 | ${unirest.version}
43 |
44 |
45 |
46 |
47 | org.springframework.security
48 | spring-security-oauth2-jose
49 | 5.4.5
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/docs/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-hacker
--------------------------------------------------------------------------------
/docs/apidocs/annotations/package-tree.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | apidocs.annotations Class Hierarchy
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
70 |
71 |
72 | Annotation Type Hierarchy
73 |
74 | - apidocs.annotations.EnableDocs (implements java.lang.annotation.Annotation)
75 |
76 |
77 |
78 |
79 |
105 |
106 |
107 |
108 |
109 |
--------------------------------------------------------------------------------
/docs/apidocs/config/package-summary.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | apidocs.config
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
66 |
67 |
68 |
69 | -
70 |
71 |
72 | Class Summary
73 |
74 |
75 | Class |
76 | Description |
77 |
78 |
79 |
80 |
81 | SwaggerConfig |
82 | |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
118 |
119 |
120 |
121 |
122 |
--------------------------------------------------------------------------------
/docs/apidocs/config/package-tree.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | apidocs.config Class Hierarchy
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
70 |
71 |
72 | Class Hierarchy
73 |
74 | - java.lang.Object
75 |
78 |
79 |
80 |
81 |
82 |
83 |
109 |
110 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/docs/deprecated-list.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Deprecated List
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
96 |
97 |
98 |
--------------------------------------------------------------------------------
/docs/element-list:
--------------------------------------------------------------------------------
1 | apidocs.annotations
2 | apidocs.config
3 | exception.annotation
4 | exception.constant
5 | exception.custom
6 | exception.dto
7 | exception.handler
8 | exception.message
9 | exception.util
10 | file_handler.constant
11 | file_handler.util
12 | logging.annotations
13 | logging.aspects
14 | notification
15 | notification.constant
16 | notification.dto
17 | notification.mapper
18 | notification.SignalR
19 | security.aad
20 | security.config
21 | security.constant
22 | security.hashing
23 | utility.annotations
24 | utility.aspect
25 | utility.constant
26 | utility.custom_data_type
27 | utility.dto
28 | utility.mapper
29 | utility.repository
30 | utility.request
31 | utility.service
32 |
--------------------------------------------------------------------------------
/docs/exception/annotation/package-tree.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | exception.annotation Class Hierarchy
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
70 |
71 |
72 | Annotation Type Hierarchy
73 |
76 |
77 |
78 |
79 |
105 |
106 |
107 |
108 |
109 |
--------------------------------------------------------------------------------
/docs/file_handler/util/package-tree.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | file_handler.util Class Hierarchy
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
70 |
71 |
72 | Class Hierarchy
73 |
74 | - java.lang.Object
75 |
78 |
79 |
80 |
81 |
82 |
83 |
109 |
110 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/docs/logging/annotations/package-tree.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | logging.annotations Class Hierarchy
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
70 |
71 |
72 | Annotation Type Hierarchy
73 |
74 | - logging.annotations.Loggable (implements java.lang.annotation.Annotation)
75 |
76 |
77 |
78 |
79 |
105 |
106 |
107 |
108 |
109 |
--------------------------------------------------------------------------------
/docs/member-search-index.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/docs/member-search-index.zip
--------------------------------------------------------------------------------
/docs/notification/SignalR/package-tree.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | notification.SignalR Class Hierarchy
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
70 |
71 |
72 | Class Hierarchy
73 |
74 | - java.lang.Object
75 |
78 |
79 |
80 |
81 |
82 |
83 |
109 |
110 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/docs/notification/dto/package-tree.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | notification.dto Class Hierarchy
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
70 |
71 |
72 | Class Hierarchy
73 |
74 | - java.lang.Object
75 |
78 |
79 |
80 |
81 |
82 |
83 |
109 |
110 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/docs/notification/mapper/package-tree.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | notification.mapper Class Hierarchy
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
70 |
71 |
72 | Class Hierarchy
73 |
74 | - java.lang.Object
75 |
78 |
79 |
80 |
81 |
82 |
83 |
109 |
110 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/docs/notification/package-summary.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | notification
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
66 |
67 |
68 |
69 | -
70 |
71 |
72 | Class Summary
73 |
74 |
75 | Class |
76 | Description |
77 |
78 |
79 |
80 |
81 | NotificationUtil |
82 | |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
118 |
119 |
120 |
121 |
122 |
--------------------------------------------------------------------------------
/docs/notification/package-tree.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | notification Class Hierarchy
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
70 |
71 |
72 | Class Hierarchy
73 |
74 | - java.lang.Object
75 |
78 |
79 |
80 |
81 |
82 |
83 |
109 |
110 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/docs/overview-summary.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Generated Documentation (Untitled)
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
23 | index.html
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/docs/package-search-index.js:
--------------------------------------------------------------------------------
1 | packageSearchIndex = [{"l":"All Packages","url":"allpackages-index.html"},{"l":"apidocs.annotations"},{"l":"apidocs.config"},{"l":"exception.annotation"},{"l":"exception.constant"},{"l":"exception.custom"},{"l":"exception.dto"},{"l":"exception.handler"},{"l":"exception.message"},{"l":"exception.util"},{"l":"file_handler.constant"},{"l":"file_handler.util"},{"l":"logging.annotations"},{"l":"logging.aspects"},{"l":"notification"},{"l":"notification.constant"},{"l":"notification.dto"},{"l":"notification.mapper"},{"l":"notification.SignalR"},{"l":"security.aad"},{"l":"security.config"},{"l":"security.constant"},{"l":"security.hashing"},{"l":"utility.annotations"},{"l":"utility.aspect"},{"l":"utility.constant"},{"l":"utility.custom_data_type"},{"l":"utility.dto"},{"l":"utility.mapper"},{"l":"utility.repository"},{"l":"utility.request"},{"l":"utility.service"}]
--------------------------------------------------------------------------------
/docs/package-search-index.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/docs/package-search-index.zip
--------------------------------------------------------------------------------
/docs/resources/glass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/docs/resources/glass.png
--------------------------------------------------------------------------------
/docs/resources/x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/docs/resources/x.png
--------------------------------------------------------------------------------
/docs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/docs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png
--------------------------------------------------------------------------------
/docs/script-dir/images/ui-bg_glass_65_dadada_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/docs/script-dir/images/ui-bg_glass_65_dadada_1x400.png
--------------------------------------------------------------------------------
/docs/script-dir/images/ui-bg_glass_75_dadada_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/docs/script-dir/images/ui-bg_glass_75_dadada_1x400.png
--------------------------------------------------------------------------------
/docs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/docs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png
--------------------------------------------------------------------------------
/docs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/docs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png
--------------------------------------------------------------------------------
/docs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/docs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png
--------------------------------------------------------------------------------
/docs/script-dir/images/ui-icons_222222_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/docs/script-dir/images/ui-icons_222222_256x240.png
--------------------------------------------------------------------------------
/docs/script-dir/images/ui-icons_2e83ff_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/docs/script-dir/images/ui-icons_2e83ff_256x240.png
--------------------------------------------------------------------------------
/docs/script-dir/images/ui-icons_454545_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/docs/script-dir/images/ui-icons_454545_256x240.png
--------------------------------------------------------------------------------
/docs/script-dir/images/ui-icons_888888_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/docs/script-dir/images/ui-icons_888888_256x240.png
--------------------------------------------------------------------------------
/docs/script-dir/images/ui-icons_cd0a0a_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/docs/script-dir/images/ui-icons_cd0a0a_256x240.png
--------------------------------------------------------------------------------
/docs/script-dir/jquery-ui.structure.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * jQuery UI CSS Framework 1.12.1
3 | * http://jqueryui.com
4 | *
5 | * Copyright jQuery Foundation and other contributors
6 | * Released under the MIT license.
7 | * http://jquery.org/license
8 | *
9 | * http://api.jqueryui.com/category/theming/
10 | */
11 | /* Layout helpers
12 | ----------------------------------*/
13 | .ui-helper-hidden {
14 | display: none;
15 | }
16 | .ui-helper-hidden-accessible {
17 | border: 0;
18 | clip: rect(0 0 0 0);
19 | height: 1px;
20 | margin: -1px;
21 | overflow: hidden;
22 | padding: 0;
23 | position: absolute;
24 | width: 1px;
25 | }
26 | .ui-helper-reset {
27 | margin: 0;
28 | padding: 0;
29 | border: 0;
30 | outline: 0;
31 | line-height: 1.3;
32 | text-decoration: none;
33 | font-size: 100%;
34 | list-style: none;
35 | }
36 | .ui-helper-clearfix:before,
37 | .ui-helper-clearfix:after {
38 | content: "";
39 | display: table;
40 | border-collapse: collapse;
41 | }
42 | .ui-helper-clearfix:after {
43 | clear: both;
44 | }
45 | .ui-helper-zfix {
46 | width: 100%;
47 | height: 100%;
48 | top: 0;
49 | left: 0;
50 | position: absolute;
51 | opacity: 0;
52 | filter:Alpha(Opacity=0); /* support: IE8 */
53 | }
54 |
55 | .ui-front {
56 | z-index: 100;
57 | }
58 |
59 |
60 | /* Interaction Cues
61 | ----------------------------------*/
62 | .ui-state-disabled {
63 | cursor: default !important;
64 | pointer-events: none;
65 | }
66 |
67 |
68 | /* Icons
69 | ----------------------------------*/
70 | .ui-icon {
71 | display: inline-block;
72 | vertical-align: middle;
73 | margin-top: -.25em;
74 | position: relative;
75 | text-indent: -99999px;
76 | overflow: hidden;
77 | background-repeat: no-repeat;
78 | }
79 |
80 | .ui-widget-icon-block {
81 | left: 50%;
82 | margin-left: -8px;
83 | display: block;
84 | }
85 |
86 | /* Misc visuals
87 | ----------------------------------*/
88 |
89 | /* Overlays */
90 | .ui-widget-overlay {
91 | position: fixed;
92 | top: 0;
93 | left: 0;
94 | width: 100%;
95 | height: 100%;
96 | }
97 | .ui-autocomplete {
98 | position: absolute;
99 | top: 0;
100 | left: 0;
101 | cursor: default;
102 | }
103 | .ui-menu {
104 | list-style: none;
105 | padding: 0;
106 | margin: 0;
107 | display: block;
108 | outline: 0;
109 | }
110 | .ui-menu .ui-menu {
111 | position: absolute;
112 | }
113 | .ui-menu .ui-menu-item {
114 | margin: 0;
115 | cursor: pointer;
116 | /* support: IE10, see #8844 */
117 | list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
118 | }
119 | .ui-menu .ui-menu-item-wrapper {
120 | position: relative;
121 | padding: 3px 1em 3px .4em;
122 | }
123 | .ui-menu .ui-menu-divider {
124 | margin: 5px 0;
125 | height: 0;
126 | font-size: 0;
127 | line-height: 0;
128 | border-width: 1px 0 0 0;
129 | }
130 | .ui-menu .ui-state-focus,
131 | .ui-menu .ui-state-active {
132 | margin: -1px;
133 | }
134 |
135 | /* icon support */
136 | .ui-menu-icons {
137 | position: relative;
138 | }
139 | .ui-menu-icons .ui-menu-item-wrapper {
140 | padding-left: 2em;
141 | }
142 |
143 | /* left-aligned */
144 | .ui-menu .ui-icon {
145 | position: absolute;
146 | top: 0;
147 | bottom: 0;
148 | left: .2em;
149 | margin: auto 0;
150 | }
151 |
152 | /* right-aligned */
153 | .ui-menu .ui-menu-icon {
154 | left: auto;
155 | right: 0;
156 | }
157 |
--------------------------------------------------------------------------------
/docs/script-dir/jquery-ui.structure.min.css:
--------------------------------------------------------------------------------
1 | /*! jQuery UI - v1.12.1 - 2018-12-06
2 | * http://jqueryui.com
3 | * Copyright jQuery Foundation and other contributors; Licensed MIT */
4 |
5 | .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}
--------------------------------------------------------------------------------
/docs/script-dir/jszip-utils/dist/jszip-utils-ie.js:
--------------------------------------------------------------------------------
1 | /*!
2 |
3 | JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
4 |
5 |
6 | (c) 2014 Stuart Knightley, David Duponchel
7 | Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
8 |
9 | */
10 | ;(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o\r\n"+
18 | "\r\n";
32 |
33 | // inject VBScript
34 | document.write(IEBinaryToArray_ByteStr_Script);
35 |
36 | global.JSZipUtils._getBinaryFromXHR = function (xhr) {
37 | var binary = xhr.responseBody;
38 | var byteMapping = {};
39 | for ( var i = 0; i < 256; i++ ) {
40 | for ( var j = 0; j < 256; j++ ) {
41 | byteMapping[ String.fromCharCode( i + (j << 8) ) ] =
42 | String.fromCharCode(i) + String.fromCharCode(j);
43 | }
44 | }
45 | var rawBytes = IEBinaryToArray_ByteStr(binary);
46 | var lastChr = IEBinaryToArray_ByteStr_Last(binary);
47 | return rawBytes.replace(/[\s\S]/g, function( match ) {
48 | return byteMapping[match];
49 | }) + lastChr;
50 | };
51 |
52 | // enforcing Stuk's coding style
53 | // vim: set shiftwidth=4 softtabstop=4:
54 |
55 | },{}]},{},[1])
56 | ;
57 |
--------------------------------------------------------------------------------
/docs/script-dir/jszip-utils/dist/jszip-utils-ie.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 |
3 | JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
4 |
5 |
6 | (c) 2014 Stuart Knightley, David Duponchel
7 | Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
8 |
9 | */
10 | !function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g\r\n\r\n";document.write(b),a.JSZipUtils._getBinaryFromXHR=function(a){for(var b=a.responseBody,c={},d=0;256>d;d++)for(var e=0;256>e;e++)c[String.fromCharCode(d+(e<<8))]=String.fromCharCode(d)+String.fromCharCode(e);var f=IEBinaryToArray_ByteStr(b),g=IEBinaryToArray_ByteStr_Last(b);return f.replace(/[\s\S]/g,function(a){return c[a]})+g}},{}]},{},[1]);
11 |
--------------------------------------------------------------------------------
/docs/script-dir/jszip-utils/dist/jszip-utils.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 |
3 | JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
4 |
5 |
6 | (c) 2014 Stuart Knightley, David Duponchel
7 | Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
8 |
9 | */
10 | !function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.JSZipUtils=a():"undefined"!=typeof global?global.JSZipUtils=a():"undefined"!=typeof self&&(self.JSZipUtils=a())}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g
2 |
3 |
4 |
5 |
6 | security.constant Class Hierarchy
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
70 |
71 |
72 | Class Hierarchy
73 |
74 | - java.lang.Object
75 |
78 |
79 |
80 |
81 |
82 |
83 |
109 |
110 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/docs/security/hashing/package-summary.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | security.hashing
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
66 |
67 |
68 |
69 | -
70 |
71 |
72 | Class Summary
73 |
74 |
75 | Class |
76 | Description |
77 |
78 |
79 |
80 |
81 | MD5 |
82 | |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
118 |
119 |
120 |
121 |
122 |
--------------------------------------------------------------------------------
/docs/security/hashing/package-tree.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | security.hashing Class Hierarchy
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
70 |
71 |
72 | Class Hierarchy
73 |
74 | - java.lang.Object
75 |
76 | - security.hashing.MD5
77 |
78 |
79 |
80 |
81 |
82 |
83 |
109 |
110 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/docs/system-properties.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | System Properties
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
59 |
60 |
61 |
64 |
65 |
66 |
67 | System Properties Summary
68 |
69 |
70 | Property |
71 | Referenced In |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
104 |
105 |
106 |
--------------------------------------------------------------------------------
/docs/type-search-index.js:
--------------------------------------------------------------------------------
1 | typeSearchIndex = [{"p":"utility.constant","l":"ActionType"},{"l":"All Classes","url":"allclasses-index.html"},{"p":"utility.constant","l":"AppConstant"},{"p":"utility.mapper","l":"AppObjectMapper"},{"p":"exception.dto","l":"AuthErrorDTO"},{"p":"security.constant","l":"AuthorizationPermission"},{"p":"utility.annotations","l":"AvoidDuplicate"},{"p":"utility.aspect","l":"AvoidDuplicateAspect"},{"p":"utility.repository","l":"BaseRepository"},{"p":"utility.request","l":"BaseRequest"},{"p":"utility.service","l":"BaseService"},{"p":"utility.annotations","l":"ControllerV1"},{"p":"security.aad","l":"CustomAccessDeniedHandler"},{"p":"security.aad","l":"CustomAuthEntryPoint"},{"p":"utility.dto","l":"DetailDTO"},{"p":"exception.custom","l":"DuplicateRecordException"},{"p":"apidocs.annotations","l":"EnableDocs"},{"p":"exception.annotation","l":"EnableExceptionHandler"},{"p":"exception.custom","l":"EntityNotFoundException"},{"p":"utility.constant","l":"EntityType"},{"p":"exception.dto","l":"ErrorDTO"},{"p":"exception.message","l":"ExceptionMessages"},{"p":"exception.custom","l":"FileHandlingException"},{"p":"file_handler.util","l":"FileUtil"},{"p":"notification.dto","l":"GetNotificationDTO"},{"p":"exception.handler","l":"GlobalExceptionHandler"},{"p":"exception.custom","l":"InvalidStateTransitionException"},{"p":"logging.annotations","l":"Loggable"},{"p":"logging.aspects","l":"LoggableAspect"},{"p":"logging.aspects","l":"LoggableControllerAspect"},{"p":"logging.aspects","l":"LoggableMapperAspect"},{"p":"logging.aspects","l":"LoggableRepositoryAspect"},{"p":"logging.aspects","l":"LoggableServiceAspect"},{"p":"exception.util","l":"LowerCaseNameResolver"},{"p":"security.hashing","l":"MD5"},{"p":"security.config","l":"MDCLogConfig"},{"p":"utility.constant","l":"Messages"},{"p":"utility.constant","l":"Misc"},{"p":"exception.dto","l":"MultipleActionErrorDTO"},{"p":"exception.custom","l":"MultipleActionFailedException"},{"p":"exception.custom","l":"NotificationException"},{"p":"notification.mapper","l":"NotificationMapper"},{"p":"notification.constant","l":"NotificationMethod"},{"p":"notification","l":"NotificationUtil"},{"p":"utility.aspect","l":"NotNullAspect"},{"p":"exception.custom","l":"OperationFailedException"},{"p":"exception.custom","l":"OperationNotAllowedException"},{"p":"file_handler.constant","l":"OperationType"},{"p":"utility.dto","l":"PartialSuccessDTO"},{"p":"utility.dto","l":"ResponseDTO"},{"p":"security.aad","l":"ServletExceptionHandler"},{"p":"notification.SignalR","l":"SignalRMessage"},{"p":"exception.dto","l":"SubErrorDTO"},{"p":"apidocs.config","l":"SwaggerConfig"},{"p":"exception.message","l":"ValidationConstraintMessage"},{"p":"exception.dto","l":"ValidationErrorDTO"},{"p":"exception.constant","l":"ValidationExceptionType"},{"p":"utility.custom_data_type","l":"ValidList"},{"p":"security.aad","l":"WebSecurityConfig"},{"p":"utility.constant","l":"WorkorderState"},{"p":"utility.constant","l":"WorkorderTagState"}]
--------------------------------------------------------------------------------
/docs/type-search-index.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/docs/type-search-index.zip
--------------------------------------------------------------------------------
/docs/utility/custom_data_type/package-tree.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | utility.custom_data_type Class Hierarchy
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
70 |
71 |
72 | Class Hierarchy
73 |
74 | - java.lang.Object
75 |
76 | - utility.custom_data_type.ValidList<E> (implements java.util.List<E>)
77 |
78 |
79 |
80 |
81 |
82 |
83 |
109 |
110 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/docs/utility/mapper/package-tree.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | utility.mapper Class Hierarchy
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
70 |
71 |
72 | Class Hierarchy
73 |
74 | - java.lang.Object
75 |
78 |
79 |
80 |
81 |
82 |
83 |
109 |
110 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/docs/utility/repository/package-tree.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | utility.repository Class Hierarchy
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
70 |
71 |
72 | Class Hierarchy
73 |
74 | - java.lang.Object
75 |
78 |
79 |
80 |
81 |
82 |
83 |
109 |
110 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/docs/utility/request/package-tree.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | utility.request Class Hierarchy
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
70 |
71 |
72 | Class Hierarchy
73 |
74 | - java.lang.Object
75 |
78 |
79 |
80 |
81 |
82 |
83 |
109 |
110 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/docs/utility/service/package-tree.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | utility.service Class Hierarchy
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
25 |
28 |
29 |
61 |
62 |
63 |
70 |
71 |
72 | Interface Hierarchy
73 |
76 |
77 |
78 |
79 |
105 |
106 |
107 |
108 |
109 |
--------------------------------------------------------------------------------
/lib/api-docs/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | backend-parent
7 | com.app
8 | 1.0.0-SNAPSHOT
9 | ../../pom.xml
10 |
11 | 4.0.0
12 |
13 | api-docs
14 |
15 |
16 |
17 |
18 | io.springfox
19 | springfox-boot-starter
20 | ${springfox-swagger2.version}
21 |
22 |
23 |
24 |
25 |
26 | jcenter-snapshots
27 | jcenter
28 | https://jcenter.bintray.com/
29 |
30 |
31 |
--------------------------------------------------------------------------------
/lib/api-docs/src/main/java/apidocs/annotations/EnableDocs.java:
--------------------------------------------------------------------------------
1 | package apidocs.annotations;
2 |
3 | import apidocs.config.SwaggerConfig;
4 | import org.springframework.context.annotation.Configuration;
5 | import org.springframework.context.annotation.Import;
6 | import springfox.documentation.swagger2.annotations.EnableSwagger2;
7 |
8 | import java.lang.annotation.*;
9 |
10 | @Retention (RetentionPolicy.RUNTIME)
11 | @Target ({ ElementType.TYPE})
12 | @Documented
13 | @Import ({SwaggerConfig.class})
14 | public @interface EnableDocs {
15 |
16 | public String title() default "Swagger API Documentation";
17 | public String desc() default "Allows to interact with Backend";
18 | public String ver() default "v1";
19 | public String pathMapping() default "/";
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/lib/api-docs/src/main/resources/META-INF/spring.factories:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nadeem4/spring_boot_multi_module_framework/a07adb095d759730d24af48c69b8125759f3d24d/lib/api-docs/src/main/resources/META-INF/spring.factories
--------------------------------------------------------------------------------
/lib/exception/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | backend-parent
7 | com.app
8 | 1.0.0-SNAPSHOT
9 | ../../pom.xml
10 |
11 | 4.0.0
12 |
13 | exception
14 |
15 | jar
16 |
17 |
--------------------------------------------------------------------------------
/lib/exception/src/main/java/exception/annotation/EnableExceptionHandler.java:
--------------------------------------------------------------------------------
1 | package exception.annotation;
2 |
3 | import exception.handler.GlobalExceptionHandler;
4 | import org.springframework.context.annotation.Configuration;
5 | import org.springframework.context.annotation.Import;
6 |
7 | import java.lang.annotation.*;
8 |
9 | @Retention (RetentionPolicy.RUNTIME)
10 | @Target ({ ElementType.TYPE})
11 | @Documented
12 | @Import (GlobalExceptionHandler.class)
13 | @Configuration
14 | public @interface EnableExceptionHandler {
15 | }
16 |
--------------------------------------------------------------------------------
/lib/exception/src/main/java/exception/constant/ValidationExceptionType.java:
--------------------------------------------------------------------------------
1 | package exception.constant;
2 |
3 |
4 | public enum ValidationExceptionType {
5 | MISSING_FIELD_ERROR,
6 | EMPTY_PROPERTY_ERROR,
7 | NEGATIVE_NOT_ALLOWED_ERROR,
8 | INVALID_LENGTH_ERROR,
9 | INVALID_DATA_ERROR,
10 | INVALID_REQUEST_BODY
11 | }
12 |
--------------------------------------------------------------------------------
/lib/exception/src/main/java/exception/custom/DuplicateRecordException.java:
--------------------------------------------------------------------------------
1 | package exception.custom;
2 |
3 | import lombok.Getter;
4 |
5 | public class DuplicateRecordException extends RuntimeException {
6 |
7 | @Getter
8 | String type = "DuplicateRecordException";
9 |
10 | public DuplicateRecordException( String entity, Object id ) {
11 |
12 | super(entity + ": "+ id + " is already present");
13 | }
14 |
15 | public DuplicateRecordException( String entity ) {
16 |
17 | super(entity + " is already present");
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/lib/exception/src/main/java/exception/custom/EntityNotFoundException.java:
--------------------------------------------------------------------------------
1 | package exception.custom;
2 |
3 | import lombok.Getter;
4 |
5 | public class EntityNotFoundException extends RuntimeException {
6 |
7 | @Getter
8 | String type = "EntityNotFoundException";
9 |
10 |
11 | public EntityNotFoundException( String entity, Object id ) {
12 | super(entity + ": " + id + " is not found.");
13 | }
14 |
15 | public EntityNotFoundException(String s) {
16 | super(s);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/lib/exception/src/main/java/exception/custom/FileHandlingException.java:
--------------------------------------------------------------------------------
1 | package exception.custom;
2 |
3 | import lombok.Getter;
4 | import lombok.Setter;
5 |
6 | public class FileHandlingException extends RuntimeException {
7 |
8 | @Getter
9 | @Setter
10 | private String fileName;
11 |
12 | @Getter
13 | @Setter
14 | private String operation;
15 |
16 | @Getter
17 | private String type = "FileHandlingException";
18 |
19 | @Getter
20 | @Setter
21 | private String detailError;
22 |
23 | public FileHandlingException(String fileName, String operation, String detailError) {
24 | super( String.format("Error occurred while % file: %", operation, fileName));
25 | this.fileName = fileName;
26 | this.operation = operation;
27 | this.detailError =detailError;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/lib/exception/src/main/java/exception/custom/InvalidStateTransitionException.java:
--------------------------------------------------------------------------------
1 | package exception.custom;
2 |
3 | import lombok.Getter;
4 |
5 | public class InvalidStateTransitionException extends RuntimeException {
6 |
7 | @Getter
8 | String type = "InvalidStateTransitionException";
9 |
10 | public InvalidStateTransitionException( String currentState, String nextState ) {
11 |
12 | super("Transition from " + currentState + " to " + nextState + " is not allowed");
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/lib/exception/src/main/java/exception/custom/MultipleActionFailedException.java:
--------------------------------------------------------------------------------
1 | package exception.custom;
2 |
3 | import exception.dto.MultipleActionErrorDTO;
4 | import lombok.Getter;
5 |
6 | import java.util.List;
7 |
8 | public class MultipleActionFailedException extends RuntimeException {
9 |
10 | @Getter
11 | private String type = "MultipleActionFailedException";
12 |
13 | @Getter
14 | private List actionErrorDTOS;
15 |
16 | public MultipleActionFailedException( String message, List actionErrorDTOS ) {
17 | super(message );
18 | this.actionErrorDTOS = actionErrorDTOS;
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/lib/exception/src/main/java/exception/custom/NotificationException.java:
--------------------------------------------------------------------------------
1 | package exception.custom;
2 |
3 | import lombok.Getter;
4 | import lombok.Setter;
5 |
6 | public class NotificationException extends RuntimeException{
7 |
8 | @Getter
9 | @Setter
10 | private String source;
11 |
12 | @Getter
13 | private String type = "NotificationException";
14 |
15 | public NotificationException( String src, String message) { super(message + " Unable to send notification via "+ src); }
16 |
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/lib/exception/src/main/java/exception/custom/OperationFailedException.java:
--------------------------------------------------------------------------------
1 | package exception.custom;
2 |
3 | import lombok.Getter;
4 |
5 | public class OperationFailedException extends RuntimeException {
6 |
7 | @Getter
8 | String type = "OperationFailedException";
9 |
10 | public OperationFailedException( String operationName, String reason ) {
11 |
12 | super("Unable to perform "+ operationName + ". " + reason);
13 | }
14 |
15 | public OperationFailedException(String message) {
16 | super(message);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/lib/exception/src/main/java/exception/custom/OperationNotAllowedException.java:
--------------------------------------------------------------------------------
1 | package exception.custom;
2 |
3 | import lombok.Getter;
4 |
5 | public class OperationNotAllowedException extends RuntimeException {
6 |
7 | @Getter
8 | String type = "OperationNotAllowedException";
9 |
10 | public OperationNotAllowedException( String operationName, String reason ) {
11 | super("Operation failed: "+ operationName + ". " + reason);
12 | }
13 | public OperationNotAllowedException( String message ) {
14 | super(message);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/lib/exception/src/main/java/exception/dto/AuthErrorDTO.java:
--------------------------------------------------------------------------------
1 | package exception.dto;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 |
6 | @Getter
7 | @AllArgsConstructor
8 | public class AuthErrorDTO extends SubErrorDTO {
9 | private String message;
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/lib/exception/src/main/java/exception/dto/MultipleActionErrorDTO.java:
--------------------------------------------------------------------------------
1 | package exception.dto;
2 |
3 | import lombok.*;
4 |
5 | @Data
6 | @Getter
7 | @Setter
8 | @AllArgsConstructor
9 | @EqualsAndHashCode (callSuper = false)
10 | public class MultipleActionErrorDTO extends SubErrorDTO {
11 | private String entity;
12 |
13 | private String entityId;
14 |
15 | private String message;
16 |
17 | private String remedy;
18 | }
19 |
--------------------------------------------------------------------------------
/lib/exception/src/main/java/exception/dto/SubErrorDTO.java:
--------------------------------------------------------------------------------
1 | package exception.dto;
2 |
3 | public abstract class SubErrorDTO {
4 | }
5 |
--------------------------------------------------------------------------------
/lib/exception/src/main/java/exception/dto/ValidationErrorDTO.java:
--------------------------------------------------------------------------------
1 | package exception.dto;
2 |
3 | import lombok.*;
4 |
5 | @Data
6 | @AllArgsConstructor
7 | @Getter
8 | @Setter
9 | @EqualsAndHashCode (callSuper = false)
10 | public class ValidationErrorDTO extends SubErrorDTO {
11 | private String object;
12 | private String field;
13 | private Object rejectedValue;
14 | private String message;
15 |
16 | ValidationErrorDTO(String object, String message) {
17 | this.object = object;
18 | this.message = message;
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/lib/exception/src/main/java/exception/message/ExceptionMessages.java:
--------------------------------------------------------------------------------
1 | package exception.message;
2 |
3 | import exception.constant.ValidationExceptionType;
4 |
5 | import javax.validation.ConstraintValidatorContext;
6 |
7 | public class ExceptionMessages {
8 |
9 | public static void setValidationErrorMessage( ConstraintValidatorContext context, ValidationExceptionType exceptionType, String key ) {
10 | switch ( exceptionType) {
11 | case MISSING_FIELD_ERROR:
12 | context.buildConstraintViolationWithTemplate(
13 | ValidationConstraintMessage.setFieldMissingErrorMessage(key))
14 | .addConstraintViolation();
15 | break;
16 | case EMPTY_PROPERTY_ERROR:
17 | context.buildConstraintViolationWithTemplate(
18 | ValidationConstraintMessage.setEmptyPropertyMessage(key))
19 | .addConstraintViolation();
20 | break;
21 |
22 | case NEGATIVE_NOT_ALLOWED_ERROR:
23 | context.buildConstraintViolationWithTemplate(
24 | ValidationConstraintMessage.setNegativeNotAllowedErrorMessage(key))
25 | .addConstraintViolation();
26 | break;
27 | }
28 |
29 | }
30 |
31 | public static void setValidationErrorMessage( ConstraintValidatorContext context, ValidationExceptionType exceptionType, String key, int allowedLength ) {
32 | switch ( exceptionType) {
33 | case INVALID_LENGTH_ERROR:
34 | context.buildConstraintViolationWithTemplate(
35 | ValidationConstraintMessage.setInvalidLengthErrorMessage(key, allowedLength))
36 | .addConstraintViolation();
37 | }
38 |
39 | }
40 |
41 | public static void setValidationErrorMessage( ConstraintValidatorContext context, ValidationExceptionType exceptionType, String key, String additionalMsg ){
42 | switch ( exceptionType) {
43 | case INVALID_DATA_ERROR:
44 | context.buildConstraintViolationWithTemplate(
45 | ValidationConstraintMessage.setInvalidDataErrorMessage(key, additionalMsg))
46 | .addConstraintViolation();
47 | break;
48 | }
49 |
50 | }
51 |
52 | public static String setValidationErrorMessage(String key, ValidationExceptionType exceptionType) {
53 | switch ( exceptionType ) {
54 | case INVALID_REQUEST_BODY:
55 | return ValidationConstraintMessage.setInvalidRequestBody(key);
56 |
57 | default:
58 | return "";
59 |
60 | }
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/lib/exception/src/main/java/exception/message/ValidationConstraintMessage.java:
--------------------------------------------------------------------------------
1 | package exception.message;
2 |
3 | public class ValidationConstraintMessage {
4 |
5 | public static String setInvalidLengthErrorMessage( String key, int allowedLength ) {
6 | return String.format("Max allowed length of %s is %d.", key, allowedLength);
7 | }
8 |
9 | public static String setFieldMissingErrorMessage(String key) {
10 | return String.format("Key Missing: %s", key);
11 | }
12 |
13 | public static String setInvalidDataErrorMessage(String key, String message) {
14 | return String.format("Invalid Key: %s; %s", key, message);
15 | }
16 |
17 | public static String setNegativeNotAllowedErrorMessage(String key) {
18 | return String.format("%s does not allow negative.", key);
19 | }
20 |
21 | public static String setEmptyPropertyMessage( String key ) {
22 | return String.format("Please provide %s", key);
23 | }
24 |
25 | public static String setInvalidRequestBody( String key ) {
26 | return String.format("%s request body is invalid", key);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/lib/exception/src/main/java/exception/util/LowerCaseNameResolver.java:
--------------------------------------------------------------------------------
1 | package exception.util;
2 |
3 | import com.fasterxml.jackson.annotation.JsonTypeInfo;
4 | import com.fasterxml.jackson.databind.jsontype.impl.TypeIdResolverBase;
5 |
6 | public class LowerCaseNameResolver extends TypeIdResolverBase {
7 |
8 | @Override
9 | public String idFromValue(Object value) {
10 | return value.getClass().getSimpleName().toLowerCase();
11 | }
12 |
13 | @Override
14 | public String idFromValueAndType(Object value, Class> suggestedType) {
15 | return idFromValue(value);
16 | }
17 |
18 | @Override
19 | public JsonTypeInfo.Id getMechanism() {
20 | return JsonTypeInfo.Id.CUSTOM;
21 | }
22 | }
--------------------------------------------------------------------------------
/lib/exception/src/main/resources/META-INF/spring.factories:
--------------------------------------------------------------------------------
1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
2 | exception.handler.GlobalExceptionHandler
--------------------------------------------------------------------------------
/lib/file-handler/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | backend-parent
7 | com.app
8 | 1.0.0-SNAPSHOT
9 | ../../pom.xml
10 |
11 | 4.0.0
12 |
13 | file-handler
14 |
15 |
16 |
17 | com.app
18 | exception
19 | ${project.version}
20 |
21 |
22 |
23 | com.microsoft.azure
24 | azure-storage
25 | 8.6.5
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/lib/file-handler/src/main/java/file_handler/constant/OperationType.java:
--------------------------------------------------------------------------------
1 | package file_handler.constant;
2 |
3 | public enum OperationType {
4 | UPLOAD("Upload"),
5 | FETCH("Fetch"),
6 | DOWNLOAD("Download"),
7 | DELETE("Delete");
8 |
9 | private String values;
10 |
11 | public String getValues() {
12 | return this.values;
13 | }
14 |
15 | private OperationType( String values) {
16 | this.values = values;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/lib/file-handler/src/main/resources/META-INF/spring.factories:
--------------------------------------------------------------------------------
1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
2 | file_handler.util.FileUtil
--------------------------------------------------------------------------------
/lib/logging/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | backend-parent
7 | com.app
8 | 1.0.0-SNAPSHOT
9 | ../../pom.xml
10 |
11 | 4.0.0
12 |
13 | logging
14 | jar
15 |
16 |
17 |
18 |
19 |
20 | com.microsoft.azure
21 | applicationinsights-spring-boot-starter
22 | ${ai-spring-boot-starter.version}
23 |
24 |
25 | com.microsoft.azure
26 | applicationinsights-logging-logback
27 | ${ai-logging-logback.version}
28 |
29 |
30 |
31 |
32 | com.app
33 | utility
34 | ${project.version}
35 |
36 |
37 |
38 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/lib/logging/src/main/java/logging/annotations/Loggable.java:
--------------------------------------------------------------------------------
1 | package logging.annotations;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | @Target ({ElementType.METHOD, ElementType.CONSTRUCTOR})
9 | @Retention (RetentionPolicy.RUNTIME)
10 | public @interface Loggable {
11 |
12 | public String valueBefore() default "";
13 | public String valueAfter() default "";
14 | public String valueAfterReturning() default "";
15 | public String valueAround() default "";
16 | }
17 |
--------------------------------------------------------------------------------
/lib/logging/src/main/java/logging/aspects/LoggableMapperAspect.java:
--------------------------------------------------------------------------------
1 | package logging.aspects;
2 |
3 | import org.aspectj.lang.JoinPoint;
4 | import org.aspectj.lang.annotation.After;
5 | import org.aspectj.lang.annotation.AfterReturning;
6 | import org.aspectj.lang.annotation.Aspect;
7 | import org.aspectj.lang.annotation.Before;
8 | import org.springframework.context.annotation.Configuration;
9 |
10 | @Aspect
11 | @Configuration
12 | public class LoggableMapperAspect {
13 |
14 | @Before ("execution(*.mapper.*)")
15 | public void logBefore( JoinPoint joinPoint ) throws Throwable {
16 |
17 | }
18 |
19 | @After ("execution(*.mapper.*)")
20 | public void logAfter( JoinPoint joinPoint ) throws Throwable {
21 |
22 | }
23 |
24 |
25 | @AfterReturning ("execution(*.mapper.*)")
26 | public void logAfterReturning( JoinPoint joinPoint ) throws Throwable {
27 |
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/lib/logging/src/main/resources/META-INF/spring.factories:
--------------------------------------------------------------------------------
1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
2 | logging.aspects.LoggableControllerAspect,\
3 | logging.aspects.LoggableRepositoryAspect,\
4 | logging.aspects.LoggableComponentAspect,\
5 | logging.aspects.LoggableServiceAspect
--------------------------------------------------------------------------------
/lib/logging/src/main/resources/aaplication.yml:
--------------------------------------------------------------------------------
1 | azure:
2 | application-insights:
3 | enabled: false
4 | quick-pulse.enabled: true
5 | heart-beat:
6 | enabled: true
7 | heart-beat-interval: 900
8 | jmx:
9 | jmx-counters[0]: java.lang:type=ClassLoading/LoadedClassCount/Current Loaded Class Count
10 | jmx-counters[1]: java.lang:type=Memory/HeapMemoryUsage.init/Initial Heap Memory Usage/Composite
11 | jmx-counters[2]: java.lang:name=PS MarkSweep,type=GarbageCollector/CollectionTime/GC MarkSweep Time
12 |
13 | default-modules:
14 | ProcessPerformanceCountersModule.enabled: true
15 | JvmPerformanceCountersModule.enabled: true
16 | WebRequestTrackingTelemetryModule.enabled: true
17 | WebSessionTrackingTelemetryModule.enabled: true
18 | WebUserTrackingTelemetryModule.enabled: true
19 | WebPerformanceCounterModule.enabled: true
20 | WebOperationIdTelemetryInitializer.enabled: true
21 | WebOperationNameTelemetryInitializer.enabled: true
22 | WebSessionTelemetryInitializer.enabled: true
23 | WebUserTelemetryInitializer.enabled: true
24 | WebUserAgentTelemetryInitializer.enabled: true
--------------------------------------------------------------------------------
/lib/logging/src/main/resources/logback-spring.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | %-4relative [%thread] %-5level %logger{35} - %msg %n
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/lib/notification/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | backend-parent
7 | com.app
8 | 1.0.0-SNAPSHOT
9 | ../../pom.xml
10 |
11 | 4.0.0
12 |
13 | notification
14 |
15 |
16 |
17 | io.jsonwebtoken
18 | jjwt-api
19 | ${jsonwebtoken.version}
20 |
21 |
22 | io.jsonwebtoken
23 | jjwt-impl
24 | ${jsonwebtoken.version}
25 | runtime
26 |
27 |
28 | io.jsonwebtoken
29 | jjwt-jackson
30 | ${jsonwebtoken.version}
31 | runtime
32 |
33 |
34 |
35 | com.konghq
36 | unirest-java
37 | 3.3.00
38 |
39 |
40 | com.app
41 | exception
42 | ${project.version}
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/lib/notification/src/main/java/notification/NotificationUtil.java:
--------------------------------------------------------------------------------
1 |
2 | package notification;
3 |
4 |
5 | import exception.custom.NotificationException;
6 | import notification.constant.NotificationMethod;
7 | import notification.mapper.NotificationMapper;
8 | import notification.dto.GetNotificationDTO;
9 | import io.jsonwebtoken.JwtBuilder;
10 | import io.jsonwebtoken.Jwts;
11 | import io.jsonwebtoken.SignatureAlgorithm;
12 | import kong.unirest.Unirest;
13 | import org.springframework.beans.factory.annotation.Autowired;
14 | import org.springframework.beans.factory.annotation.Value;
15 | import org.springframework.boot.configurationprocessor.json.JSONException;
16 | import org.springframework.boot.configurationprocessor.json.JSONObject;
17 | import org.springframework.stereotype.Component;
18 | import notification.SignalR.SignalRMessage;
19 | import javax.crypto.spec.SecretKeySpec;
20 | import java.nio.charset.StandardCharsets;
21 | import java.security.Key;
22 | import java.util.Date;
23 | import java.util.List;
24 |
25 |
26 | @Component
27 | public class NotificationUtil {
28 |
29 | @Value("${app.notification.signal-r.hub-name}")
30 | private String HUB_NAME;
31 |
32 | @Value("${app.url}")
33 | private String url;
34 |
35 | @Value("${app.notification.signal-r.name}")
36 | private String signalRName;
37 |
38 | @Value("${app.notification.signal-r.key}")
39 | private String signalRServiceKey;
40 |
41 | @Autowired
42 | private NotificationMapper notificationMapper;
43 |
44 | public void broadcastMessage(List